diff --git a/CHANGELOG.md b/CHANGELOG.md
index a6b7d6e71..d8921aa78 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -12,6 +12,7 @@ All notable changes to this project will be documented in this file.
### Changed
- Refactored library UDisplay (#24007)
+- LVGL library from v9.3.0 to v9.4.0
### Fixed
- TLS fix ECDSA and add `SetOption165 1` to enable ECDSA in addition to RSA (#24000)
diff --git a/lib/libesp32_lvgl/lv_binding_berry/generate/LVGL_API_Reference.md b/lib/libesp32_lvgl/lv_binding_berry/generate/LVGL_API_Reference.md
index 0e3c31e0f..739c968b8 100644
--- a/lib/libesp32_lvgl/lv_binding_berry/generate/LVGL_API_Reference.md
+++ b/lib/libesp32_lvgl/lv_binding_berry/generate/LVGL_API_Reference.md
@@ -19,6 +19,29 @@ anim_resolve_speed|int, int, int|int|[lv_anim_resolve_speed](https://docs.lvgl.i
anim_speed|int|int|[lv_anim_speed](https://docs.lvgl.io/9.0/search.html?q=lv_anim_speed)
anim_speed_clamped|int, int, int|int|[lv_anim_speed_clamped](https://docs.lvgl.io/9.0/search.html?q=lv_anim_speed_clamped)
anim_speed_to_time|int, int, int|int|[lv_anim_speed_to_time](https://docs.lvgl.io/9.0/search.html?q=lv_anim_speed_to_time)
+arclabel_create|lv.obj|lv.obj|[lv_arclabel_create](https://docs.lvgl.io/9.0/search.html?q=lv_arclabel_create)
+arclabel_get_angle_size|lv.obj|int|[lv_arclabel_get_angle_size](https://docs.lvgl.io/9.0/search.html?q=lv_arclabel_get_angle_size)
+arclabel_get_angle_start|lv.obj|int|[lv_arclabel_get_angle_start](https://docs.lvgl.io/9.0/search.html?q=lv_arclabel_get_angle_start)
+arclabel_get_center_offset_x|lv.obj|int|[lv_arclabel_get_center_offset_x](https://docs.lvgl.io/9.0/search.html?q=lv_arclabel_get_center_offset_x)
+arclabel_get_center_offset_y|lv.obj|int|[lv_arclabel_get_center_offset_y](https://docs.lvgl.io/9.0/search.html?q=lv_arclabel_get_center_offset_y)
+arclabel_get_dir|lv.obj|int|[lv_arclabel_get_dir](https://docs.lvgl.io/9.0/search.html?q=lv_arclabel_get_dir)
+arclabel_get_radius|lv.obj|int|[lv_arclabel_get_radius](https://docs.lvgl.io/9.0/search.html?q=lv_arclabel_get_radius)
+arclabel_get_recolor|lv.obj|bool|[lv_arclabel_get_recolor](https://docs.lvgl.io/9.0/search.html?q=lv_arclabel_get_recolor)
+arclabel_get_text_horizontal_align|lv.obj|int|[lv_arclabel_get_text_horizontal_align](https://docs.lvgl.io/9.0/search.html?q=lv_arclabel_get_text_horizontal_align)
+arclabel_get_text_vertical_align|lv.obj|int|[lv_arclabel_get_text_vertical_align](https://docs.lvgl.io/9.0/search.html?q=lv_arclabel_get_text_vertical_align)
+arclabel_set_angle_size|lv.obj, int||[lv_arclabel_set_angle_size](https://docs.lvgl.io/9.0/search.html?q=lv_arclabel_set_angle_size)
+arclabel_set_angle_start|lv.obj, int||[lv_arclabel_set_angle_start](https://docs.lvgl.io/9.0/search.html?q=lv_arclabel_set_angle_start)
+arclabel_set_center_offset_x|lv.obj, int||[lv_arclabel_set_center_offset_x](https://docs.lvgl.io/9.0/search.html?q=lv_arclabel_set_center_offset_x)
+arclabel_set_center_offset_y|lv.obj, int||[lv_arclabel_set_center_offset_y](https://docs.lvgl.io/9.0/search.html?q=lv_arclabel_set_center_offset_y)
+arclabel_set_dir|lv.obj, int||[lv_arclabel_set_dir](https://docs.lvgl.io/9.0/search.html?q=lv_arclabel_set_dir)
+arclabel_set_offset|lv.obj, int||[lv_arclabel_set_offset](https://docs.lvgl.io/9.0/search.html?q=lv_arclabel_set_offset)
+arclabel_set_radius|lv.obj, int||[lv_arclabel_set_radius](https://docs.lvgl.io/9.0/search.html?q=lv_arclabel_set_radius)
+arclabel_set_recolor|lv.obj, bool||[lv_arclabel_set_recolor](https://docs.lvgl.io/9.0/search.html?q=lv_arclabel_set_recolor)
+arclabel_set_text|lv.obj, string||[lv_arclabel_set_text](https://docs.lvgl.io/9.0/search.html?q=lv_arclabel_set_text)
+arclabel_set_text_fmt|lv.obj, string, [\]||[lv_arclabel_set_text_fmt](https://docs.lvgl.io/9.0/search.html?q=lv_arclabel_set_text_fmt)
+arclabel_set_text_horizontal_align|lv.obj, int||[lv_arclabel_set_text_horizontal_align](https://docs.lvgl.io/9.0/search.html?q=lv_arclabel_set_text_horizontal_align)
+arclabel_set_text_static|lv.obj, string||[lv_arclabel_set_text_static](https://docs.lvgl.io/9.0/search.html?q=lv_arclabel_set_text_static)
+arclabel_set_text_vertical_align|lv.obj, int||[lv_arclabel_set_text_vertical_align](https://docs.lvgl.io/9.0/search.html?q=lv_arclabel_set_text_vertical_align)
area_align|lv.area, lv.area, int, int, int||[lv_area_align](https://docs.lvgl.io/9.0/search.html?q=lv_area_align)
area_copy|lv.area, lv.area||[lv_area_copy](https://docs.lvgl.io/9.0/search.html?q=lv_area_copy)
area_get_height|lv.area|int|[lv_area_get_height](https://docs.lvgl.io/9.0/search.html?q=lv_area_get_height)
@@ -46,6 +69,7 @@ color_format_has_alpha|int|bool|[lv_color_format_has_alpha](https://docs.lvgl.io
color_hex|int|lv.color|[lv_color_hex](https://docs.lvgl.io/9.0/search.html?q=lv_color_hex)
color_hex3|int|lv.color|[lv_color_hex3](https://docs.lvgl.io/9.0/search.html?q=lv_color_hex3)
color_hsv_to_rgb|int, int, int|lv.color|[lv_color_hsv_to_rgb](https://docs.lvgl.io/9.0/search.html?q=lv_color_hsv_to_rgb)
+color_is_in_range|lv.color, lv.color, lv.color|bool|[lv_color_is_in_range](https://docs.lvgl.io/9.0/search.html?q=lv_color_is_in_range)
color_lighten|lv.color, int|lv.color|[lv_color_lighten](https://docs.lvgl.io/9.0/search.html?q=lv_color_lighten)
color_luminance|lv.color|int|[lv_color_luminance](https://docs.lvgl.io/9.0/search.html?q=lv_color_luminance)
color_make|int, int, int|lv.color|[lv_color_make](https://docs.lvgl.io/9.0/search.html?q=lv_color_make)
@@ -89,6 +113,7 @@ draw_line|lv.layer, lv.draw_line_dsc||[lv_draw_line](https://docs.lvgl.io/9.0/se
draw_line_dsc_init|lv.draw_line_dsc||[lv_draw_line_dsc_init](https://docs.lvgl.io/9.0/search.html?q=lv_draw_line_dsc_init)
draw_rect|lv.layer, lv.draw_rect_dsc, lv.area||[lv_draw_rect](https://docs.lvgl.io/9.0/search.html?q=lv_draw_rect)
draw_rect_dsc_init|lv.draw_rect_dsc||[lv_draw_rect_dsc_init](https://docs.lvgl.io/9.0/search.html?q=lv_draw_rect_dsc_init)
+draw_unit_send_event|string, int, \||[lv_draw_unit_send_event](https://docs.lvgl.io/9.0/search.html?q=lv_draw_unit_send_event)
draw_wait_for_finish|||[lv_draw_wait_for_finish](https://docs.lvgl.io/9.0/search.html?q=lv_draw_wait_for_finish)
event_code_get_name|int|string|[lv_event_code_get_name](https://docs.lvgl.io/9.0/search.html?q=lv_event_code_get_name)
event_dsc_get_cb|lv.event_dsc|lv.event_cb|[lv_event_dsc_get_cb](https://docs.lvgl.io/9.0/search.html?q=lv_event_dsc_get_cb)
@@ -158,9 +183,6 @@ style_prop_lookup_flags|int|int|[lv_style_prop_lookup_flags](https://docs.lvgl.i
style_register_prop|int|int|[lv_style_register_prop](https://docs.lvgl.io/9.0/search.html?q=lv_style_register_prop)
task_handler||int|[lv_task_handler](https://docs.lvgl.io/9.0/search.html?q=lv_task_handler)
text_get_size|comptr, string, lv.font, int, int, int, int||[lv_text_get_size](https://docs.lvgl.io/9.0/search.html?q=lv_text_get_size)
-text_get_width|string, int, lv.font, int|int|[lv_text_get_width](https://docs.lvgl.io/9.0/search.html?q=lv_text_get_width)
-text_get_width_with_flags|string, int, lv.font, int, int|int|[lv_text_get_width_with_flags](https://docs.lvgl.io/9.0/search.html?q=lv_text_get_width_with_flags)
-text_is_cmd|comptr, int|bool|[lv_text_is_cmd](https://docs.lvgl.io/9.0/search.html?q=lv_text_is_cmd)
theme_apply|lv.obj||[lv_theme_apply](https://docs.lvgl.io/9.0/search.html?q=lv_theme_apply)
theme_get_color_primary|lv.obj|lv.color|[lv_theme_get_color_primary](https://docs.lvgl.io/9.0/search.html?q=lv_theme_get_color_primary)
theme_get_color_secondary|lv.obj|lv.color|[lv_theme_get_color_secondary](https://docs.lvgl.io/9.0/search.html?q=lv_theme_get_color_secondary)
@@ -274,6 +296,7 @@ get_rotation||int|[lv_display_get_rotation](https://docs.lvgl.io/9.0/search.html
get_scr_act||lv.obj|[lv_display_get_screen_active](https://docs.lvgl.io/9.0/search.html?q=lv_display_get_screen_active)
get_scr_prev||lv.obj|[lv_display_get_screen_prev](https://docs.lvgl.io/9.0/search.html?q=lv_display_get_screen_prev)
get_screen_active||lv.obj|[lv_display_get_screen_active](https://docs.lvgl.io/9.0/search.html?q=lv_display_get_screen_active)
+get_screen_loading||lv.obj|[lv_display_get_screen_loading](https://docs.lvgl.io/9.0/search.html?q=lv_display_get_screen_loading)
get_screen_prev||lv.obj|[lv_display_get_screen_prev](https://docs.lvgl.io/9.0/search.html?q=lv_display_get_screen_prev)
get_theme||lv.theme|[lv_display_get_theme](https://docs.lvgl.io/9.0/search.html?q=lv_display_get_theme)
get_theme||lv.theme|[lv_display_get_theme](https://docs.lvgl.io/9.0/search.html?q=lv_display_get_theme)
@@ -319,6 +342,7 @@ unregister_vsync_event|\, \|bool|[lv_display_unregister_vsync_ev
Method|Arguments|Return type|LVGL equivalent
:---|:---|:---|:---
+free_user_data_cb|||[lv_event_free_user_data_cb](https://docs.lvgl.io/9.0/search.html?q=lv_event_free_user_data_cb)
get_code||int|[lv_event_get_code](https://docs.lvgl.io/9.0/search.html?q=lv_event_get_code)
get_cover_area||lv.area|[lv_event_get_cover_area](https://docs.lvgl.io/9.0/search.html?q=lv_event_get_cover_area)
get_current_target||comptr|[lv_event_get_current_target](https://docs.lvgl.io/9.0/search.html?q=lv_event_get_current_target)
@@ -340,6 +364,7 @@ set_cover_res|int||[lv_event_set_cover_res](https://docs.lvgl.io/9.0/search.html
set_ext_draw_size|int||[lv_event_set_ext_draw_size](https://docs.lvgl.io/9.0/search.html?q=lv_event_set_ext_draw_size)
stop_bubbling|||[lv_event_stop_bubbling](https://docs.lvgl.io/9.0/search.html?q=lv_event_stop_bubbling)
stop_processing|||[lv_event_stop_processing](https://docs.lvgl.io/9.0/search.html?q=lv_event_stop_processing)
+stop_trickling|||[lv_event_stop_trickling](https://docs.lvgl.io/9.0/search.html?q=lv_event_stop_trickling)
### class `lv.group`
@@ -433,6 +458,7 @@ Method|Arguments|Return type|LVGL equivalent
copy|lv.style||[lv_style_copy](https://docs.lvgl.io/9.0/search.html?q=lv_style_copy)
is_const||bool|[lv_style_is_const](https://docs.lvgl.io/9.0/search.html?q=lv_style_is_const)
is_empty||bool|[lv_style_is_empty](https://docs.lvgl.io/9.0/search.html?q=lv_style_is_empty)
+merge|lv.style||[lv_style_merge](https://docs.lvgl.io/9.0/search.html?q=lv_style_merge)
remove_prop|int|bool|[lv_style_remove_prop](https://docs.lvgl.io/9.0/search.html?q=lv_style_remove_prop)
reset|||[lv_style_reset](https://docs.lvgl.io/9.0/search.html?q=lv_style_reset)
set_align|int||[lv_style_set_align](https://docs.lvgl.io/9.0/search.html?q=lv_style_set_align)
@@ -490,6 +516,7 @@ set_grid_column_dsc_array|lv.int_arr||[lv_style_set_grid_column_dsc_array](https
set_grid_row_align|int||[lv_style_set_grid_row_align](https://docs.lvgl.io/9.0/search.html?q=lv_style_set_grid_row_align)
set_grid_row_dsc_array|lv.int_arr||[lv_style_set_grid_row_dsc_array](https://docs.lvgl.io/9.0/search.html?q=lv_style_set_grid_row_dsc_array)
set_height|int||[lv_style_set_height](https://docs.lvgl.io/9.0/search.html?q=lv_style_set_height)
+set_image_colorkey|comptr||[lv_style_set_image_colorkey](https://docs.lvgl.io/9.0/search.html?q=lv_style_set_image_colorkey)
set_image_opa|int||[lv_style_set_image_opa](https://docs.lvgl.io/9.0/search.html?q=lv_style_set_image_opa)
set_image_recolor|lv.color||[lv_style_set_image_recolor](https://docs.lvgl.io/9.0/search.html?q=lv_style_set_image_recolor)
set_image_recolor_opa|int||[lv_style_set_image_recolor_opa](https://docs.lvgl.io/9.0/search.html?q=lv_style_set_image_recolor_opa)
@@ -606,6 +633,8 @@ Method|Arguments|Return type|LVGL equivalent
:---|:---|:---|:---
add_event_cb|\, int, \|lv.event_dsc|[lv_obj_add_event_cb](https://docs.lvgl.io/9.0/search.html?q=lv_obj_add_event_cb)
add_flag|int||[lv_obj_add_flag](https://docs.lvgl.io/9.0/search.html?q=lv_obj_add_flag)
+add_play_timeline_event|int, lv.anim_timeline_dsc, int, bool||[lv_obj_add_play_timeline_event](https://docs.lvgl.io/9.0/search.html?q=lv_obj_add_play_timeline_event)
+add_screen_load_event|int, lv.obj, int, int, int||[lv_obj_add_screen_load_event](https://docs.lvgl.io/9.0/search.html?q=lv_obj_add_screen_load_event)
add_state|int||[lv_obj_add_state](https://docs.lvgl.io/9.0/search.html?q=lv_obj_add_state)
add_style|lv.style, int||[lv_obj_add_style](https://docs.lvgl.io/9.0/search.html?q=lv_obj_add_style)
align|int, int, int||[lv_obj_align](https://docs.lvgl.io/9.0/search.html?q=lv_obj_align)
@@ -724,6 +753,7 @@ get_style_grid_column_dsc_array|int|lv.int_arr|[lv_obj_get_style_grid_column_dsc
get_style_grid_row_align|int|int|[lv_obj_get_style_grid_row_align](https://docs.lvgl.io/9.0/search.html?q=lv_obj_get_style_grid_row_align)
get_style_grid_row_dsc_array|int|lv.int_arr|[lv_obj_get_style_grid_row_dsc_array](https://docs.lvgl.io/9.0/search.html?q=lv_obj_get_style_grid_row_dsc_array)
get_style_height|int|int|[lv_obj_get_style_height](https://docs.lvgl.io/9.0/search.html?q=lv_obj_get_style_height)
+get_style_image_colorkey|int|comptr|[lv_obj_get_style_image_colorkey](https://docs.lvgl.io/9.0/search.html?q=lv_obj_get_style_image_colorkey)
get_style_image_opa|int|int|[lv_obj_get_style_image_opa](https://docs.lvgl.io/9.0/search.html?q=lv_obj_get_style_image_opa)
get_style_image_recolor|int|lv.color|[lv_obj_get_style_image_recolor](https://docs.lvgl.io/9.0/search.html?q=lv_obj_get_style_image_recolor)
get_style_image_recolor_filtered|int|lv.color|[lv_obj_get_style_image_recolor_filtered](https://docs.lvgl.io/9.0/search.html?q=lv_obj_get_style_image_recolor_filtered)
@@ -951,6 +981,7 @@ set_style_grid_column_dsc_array|lv.int_arr, int||[lv_obj_set_style_grid_column_d
set_style_grid_row_align|int, int||[lv_obj_set_style_grid_row_align](https://docs.lvgl.io/9.0/search.html?q=lv_obj_set_style_grid_row_align)
set_style_grid_row_dsc_array|lv.int_arr, int||[lv_obj_set_style_grid_row_dsc_array](https://docs.lvgl.io/9.0/search.html?q=lv_obj_set_style_grid_row_dsc_array)
set_style_height|int, int||[lv_obj_set_style_height](https://docs.lvgl.io/9.0/search.html?q=lv_obj_set_style_height)
+set_style_image_colorkey|comptr, int||[lv_obj_set_style_image_colorkey](https://docs.lvgl.io/9.0/search.html?q=lv_obj_set_style_image_colorkey)
set_style_image_opa|int, int||[lv_obj_set_style_image_opa](https://docs.lvgl.io/9.0/search.html?q=lv_obj_set_style_image_opa)
set_style_image_recolor|lv.color, int||[lv_obj_set_style_image_recolor](https://docs.lvgl.io/9.0/search.html?q=lv_obj_set_style_image_recolor)
set_style_image_recolor_opa|int, int||[lv_obj_set_style_image_recolor_opa](https://docs.lvgl.io/9.0/search.html?q=lv_obj_set_style_image_recolor_opa)
@@ -1044,6 +1075,8 @@ stop_scroll_anim|||[lv_obj_stop_scroll_anim](https://docs.lvgl.io/9.0/search.htm
stringify_id|comptr, int|string|[lv_obj_stringify_id](https://docs.lvgl.io/9.0/search.html?q=lv_obj_stringify_id)
style_apply_color_filter|int, int|int|[lv_obj_style_apply_color_filter](https://docs.lvgl.io/9.0/search.html?q=lv_obj_style_apply_color_filter)
style_apply_recolor|int, int|int|[lv_obj_style_apply_recolor](https://docs.lvgl.io/9.0/search.html?q=lv_obj_style_apply_recolor)
+style_get_disabled|lv.style, int|bool|[lv_obj_style_get_disabled](https://docs.lvgl.io/9.0/search.html?q=lv_obj_style_get_disabled)
+style_set_disabled|lv.style, int, bool||[lv_obj_style_set_disabled](https://docs.lvgl.io/9.0/search.html?q=lv_obj_style_set_disabled)
swap|lv.obj||[lv_obj_swap](https://docs.lvgl.io/9.0/search.html?q=lv_obj_swap)
transform_point|comptr, int||[lv_obj_transform_point](https://docs.lvgl.io/9.0/search.html?q=lv_obj_transform_point)
transform_point_array|lv.point_arr, int, int||[lv_obj_transform_point_array](https://docs.lvgl.io/9.0/search.html?q=lv_obj_transform_point_array)
@@ -1076,6 +1109,8 @@ set_bg_start_angle|int||[lv_arc_set_bg_start_angle](https://docs.lvgl.io/9.0/sea
set_change_rate|int||[lv_arc_set_change_rate](https://docs.lvgl.io/9.0/search.html?q=lv_arc_set_change_rate)
set_end_angle|int||[lv_arc_set_end_angle](https://docs.lvgl.io/9.0/search.html?q=lv_arc_set_end_angle)
set_knob_offset|int||[lv_arc_set_knob_offset](https://docs.lvgl.io/9.0/search.html?q=lv_arc_set_knob_offset)
+set_max_value|int||[lv_arc_set_max_value](https://docs.lvgl.io/9.0/search.html?q=lv_arc_set_max_value)
+set_min_value|int||[lv_arc_set_min_value](https://docs.lvgl.io/9.0/search.html?q=lv_arc_set_min_value)
set_mode|int||[lv_arc_set_mode](https://docs.lvgl.io/9.0/search.html?q=lv_arc_set_mode)
set_range|int, int||[lv_arc_set_range](https://docs.lvgl.io/9.0/search.html?q=lv_arc_set_range)
set_rotation|int||[lv_arc_set_rotation](https://docs.lvgl.io/9.0/search.html?q=lv_arc_set_rotation)
@@ -1095,6 +1130,8 @@ get_orientation||int|[lv_bar_get_orientation](https://docs.lvgl.io/9.0/search.ht
get_start_value||int|[lv_bar_get_start_value](https://docs.lvgl.io/9.0/search.html?q=lv_bar_get_start_value)
get_value||int|[lv_bar_get_value](https://docs.lvgl.io/9.0/search.html?q=lv_bar_get_value)
is_symmetrical||bool|[lv_bar_is_symmetrical](https://docs.lvgl.io/9.0/search.html?q=lv_bar_is_symmetrical)
+set_max_value|int||[lv_bar_set_max_value](https://docs.lvgl.io/9.0/search.html?q=lv_bar_set_max_value)
+set_min_value|int||[lv_bar_set_min_value](https://docs.lvgl.io/9.0/search.html?q=lv_bar_set_min_value)
set_mode|int||[lv_bar_set_mode](https://docs.lvgl.io/9.0/search.html?q=lv_bar_set_mode)
set_orientation|int||[lv_bar_set_orientation](https://docs.lvgl.io/9.0/search.html?q=lv_bar_set_orientation)
set_range|int, int||[lv_bar_set_range](https://docs.lvgl.io/9.0/search.html?q=lv_bar_set_range)
@@ -1208,6 +1245,8 @@ set_inner_align|int||[lv_image_set_inner_align](https://docs.lvgl.io/9.0/search.
set_offset_x|int||[lv_image_set_offset_x](https://docs.lvgl.io/9.0/search.html?q=lv_image_set_offset_x)
set_offset_y|int||[lv_image_set_offset_y](https://docs.lvgl.io/9.0/search.html?q=lv_image_set_offset_y)
set_pivot|int, int||[lv_image_set_pivot](https://docs.lvgl.io/9.0/search.html?q=lv_image_set_pivot)
+set_pivot_x|int||[lv_image_set_pivot_x](https://docs.lvgl.io/9.0/search.html?q=lv_image_set_pivot_x)
+set_pivot_y|int||[lv_image_set_pivot_y](https://docs.lvgl.io/9.0/search.html?q=lv_image_set_pivot_y)
set_rotation|int||[lv_image_set_rotation](https://docs.lvgl.io/9.0/search.html?q=lv_image_set_rotation)
set_rotation|int||[lv_image_set_rotation](https://docs.lvgl.io/9.0/search.html?q=lv_image_set_rotation)
set_scale|int||[lv_image_set_scale](https://docs.lvgl.io/9.0/search.html?q=lv_image_set_scale)
@@ -1259,6 +1298,7 @@ Method|Arguments|Return type|LVGL equivalent
:---|:---|:---|:---
get_option_cnt||int|[lv_roller_get_option_count](https://docs.lvgl.io/9.0/search.html?q=lv_roller_get_option_count)
get_option_count||int|[lv_roller_get_option_count](https://docs.lvgl.io/9.0/search.html?q=lv_roller_get_option_count)
+get_option_str|int, comptr, int|int|[lv_roller_get_option_str](https://docs.lvgl.io/9.0/search.html?q=lv_roller_get_option_str)
get_options||string|[lv_roller_get_options](https://docs.lvgl.io/9.0/search.html?q=lv_roller_get_options)
get_selected||int|[lv_roller_get_selected](https://docs.lvgl.io/9.0/search.html?q=lv_roller_get_selected)
get_selected_str|comptr, int||[lv_roller_get_selected_str](https://docs.lvgl.io/9.0/search.html?q=lv_roller_get_selected_str)
@@ -1280,6 +1320,8 @@ get_orientation||int|[lv_slider_get_orientation](https://docs.lvgl.io/9.0/search
get_value||int|[lv_slider_get_value](https://docs.lvgl.io/9.0/search.html?q=lv_slider_get_value)
is_dragged||bool|[lv_slider_is_dragged](https://docs.lvgl.io/9.0/search.html?q=lv_slider_is_dragged)
is_symmetrical||bool|[lv_slider_is_symmetrical](https://docs.lvgl.io/9.0/search.html?q=lv_slider_is_symmetrical)
+set_max_value|int||[lv_slider_set_max_value](https://docs.lvgl.io/9.0/search.html?q=lv_slider_set_max_value)
+set_min_value|int||[lv_slider_set_min_value](https://docs.lvgl.io/9.0/search.html?q=lv_slider_set_min_value)
set_mode|int||[lv_slider_set_mode](https://docs.lvgl.io/9.0/search.html?q=lv_slider_set_mode)
set_orientation|int||[lv_slider_set_orientation](https://docs.lvgl.io/9.0/search.html?q=lv_slider_set_orientation)
set_range|int, int||[lv_slider_set_range](https://docs.lvgl.io/9.0/search.html?q=lv_slider_set_range)
@@ -1387,6 +1429,7 @@ set_mode|int||[lv_spangroup_set_mode](https://docs.lvgl.io/9.0/search.html?q=lv_
set_overflow|int||[lv_spangroup_set_overflow](https://docs.lvgl.io/9.0/search.html?q=lv_spangroup_set_overflow)
set_span_style|lv.span, lv.style||[lv_spangroup_set_span_style](https://docs.lvgl.io/9.0/search.html?q=lv_spangroup_set_span_style)
set_span_text|lv.span, string||[lv_spangroup_set_span_text](https://docs.lvgl.io/9.0/search.html?q=lv_spangroup_set_span_text)
+set_span_text_fmt|lv.span, string, [\]||[lv_spangroup_set_span_text_fmt](https://docs.lvgl.io/9.0/search.html?q=lv_spangroup_set_span_text_fmt)
set_span_text_static|lv.span, string||[lv_spangroup_set_span_text_static](https://docs.lvgl.io/9.0/search.html?q=lv_spangroup_set_span_text_static)
### widget `lv.span`
@@ -1396,6 +1439,7 @@ Method|Arguments|Return type|LVGL equivalent
get_style||lv.style|[lv_span_get_style](https://docs.lvgl.io/9.0/search.html?q=lv_span_get_style)
get_text||string|[lv_span_get_text](https://docs.lvgl.io/9.0/search.html?q=lv_span_get_text)
set_text|string||[lv_span_set_text](https://docs.lvgl.io/9.0/search.html?q=lv_span_set_text)
+set_text_fmt|string, [\]||[lv_span_set_text_fmt](https://docs.lvgl.io/9.0/search.html?q=lv_span_set_text_fmt)
set_text_static|string||[lv_span_set_text_static](https://docs.lvgl.io/9.0/search.html?q=lv_span_set_text_static)
set_text_static|string||[lv_span_set_text_static](https://docs.lvgl.io/9.0/search.html?q=lv_span_set_text_static)
@@ -1428,11 +1472,15 @@ set_image_needle_value|lv.obj, int||[lv_scale_set_image_needle_value](https://do
set_label_show|bool||[lv_scale_set_label_show](https://docs.lvgl.io/9.0/search.html?q=lv_scale_set_label_show)
set_line_needle_value|lv.obj, int, int||[lv_scale_set_line_needle_value](https://docs.lvgl.io/9.0/search.html?q=lv_scale_set_line_needle_value)
set_major_tick_every|int||[lv_scale_set_major_tick_every](https://docs.lvgl.io/9.0/search.html?q=lv_scale_set_major_tick_every)
+set_max_value|int||[lv_scale_set_max_value](https://docs.lvgl.io/9.0/search.html?q=lv_scale_set_max_value)
+set_min_value|int||[lv_scale_set_min_value](https://docs.lvgl.io/9.0/search.html?q=lv_scale_set_min_value)
set_mode|int||[lv_scale_set_mode](https://docs.lvgl.io/9.0/search.html?q=lv_scale_set_mode)
set_post_draw|bool||[lv_scale_set_post_draw](https://docs.lvgl.io/9.0/search.html?q=lv_scale_set_post_draw)
set_range|int, int||[lv_scale_set_range](https://docs.lvgl.io/9.0/search.html?q=lv_scale_set_range)
set_rotation|int||[lv_scale_set_rotation](https://docs.lvgl.io/9.0/search.html?q=lv_scale_set_rotation)
set_rotation|int||[lv_scale_set_rotation](https://docs.lvgl.io/9.0/search.html?q=lv_scale_set_rotation)
+set_section_max_value|lv.scale_section, int||[lv_scale_set_section_max_value](https://docs.lvgl.io/9.0/search.html?q=lv_scale_set_section_max_value)
+set_section_min_value|lv.scale_section, int||[lv_scale_set_section_min_value](https://docs.lvgl.io/9.0/search.html?q=lv_scale_set_section_min_value)
set_section_range|lv.scale_section, int, int||[lv_scale_set_section_range](https://docs.lvgl.io/9.0/search.html?q=lv_scale_set_section_range)
set_section_style_indicator|lv.scale_section, lv.style||[lv_scale_set_section_style_indicator](https://docs.lvgl.io/9.0/search.html?q=lv_scale_set_section_style_indicator)
set_section_style_items|lv.scale_section, lv.style||[lv_scale_set_section_style_items](https://docs.lvgl.io/9.0/search.html?q=lv_scale_set_section_style_items)
@@ -1459,14 +1507,18 @@ get_type||int|[lv_chart_get_type](https://docs.lvgl.io/9.0/search.html?q=lv_char
get_x_start_point|lv.chart_series|int|[lv_chart_get_x_start_point](https://docs.lvgl.io/9.0/search.html?q=lv_chart_get_x_start_point)
hide_series|lv.chart_series, bool||[lv_chart_hide_series](https://docs.lvgl.io/9.0/search.html?q=lv_chart_hide_series)
refresh|||[lv_chart_refresh](https://docs.lvgl.io/9.0/search.html?q=lv_chart_refresh)
+remove_cursor|lv.chart_cursor||[lv_chart_remove_cursor](https://docs.lvgl.io/9.0/search.html?q=lv_chart_remove_cursor)
remove_series|lv.chart_series||[lv_chart_remove_series](https://docs.lvgl.io/9.0/search.html?q=lv_chart_remove_series)
set_all_values|lv.chart_series, int||[lv_chart_set_all_values](https://docs.lvgl.io/9.0/search.html?q=lv_chart_set_all_values)
+set_axis_max_value|int, int||[lv_chart_set_axis_max_value](https://docs.lvgl.io/9.0/search.html?q=lv_chart_set_axis_max_value)
+set_axis_min_value|int, int||[lv_chart_set_axis_min_value](https://docs.lvgl.io/9.0/search.html?q=lv_chart_set_axis_min_value)
set_axis_range|int, int, int||[lv_chart_set_axis_range](https://docs.lvgl.io/9.0/search.html?q=lv_chart_set_axis_range)
set_cursor_point|lv.chart_cursor, lv.chart_series, int||[lv_chart_set_cursor_point](https://docs.lvgl.io/9.0/search.html?q=lv_chart_set_cursor_point)
set_cursor_pos|lv.chart_cursor, comptr||[lv_chart_set_cursor_pos](https://docs.lvgl.io/9.0/search.html?q=lv_chart_set_cursor_pos)
set_cursor_pos_x|lv.chart_cursor, int||[lv_chart_set_cursor_pos_x](https://docs.lvgl.io/9.0/search.html?q=lv_chart_set_cursor_pos_x)
set_cursor_pos_y|lv.chart_cursor, int||[lv_chart_set_cursor_pos_y](https://docs.lvgl.io/9.0/search.html?q=lv_chart_set_cursor_pos_y)
set_div_line_count|int, int||[lv_chart_set_div_line_count](https://docs.lvgl.io/9.0/search.html?q=lv_chart_set_div_line_count)
+set_hor_div_line_count|int||[lv_chart_set_hor_div_line_count](https://docs.lvgl.io/9.0/search.html?q=lv_chart_set_hor_div_line_count)
set_next_value|lv.chart_series, int||[lv_chart_set_next_value](https://docs.lvgl.io/9.0/search.html?q=lv_chart_set_next_value)
set_next_value2|lv.chart_series, int, int||[lv_chart_set_next_value2](https://docs.lvgl.io/9.0/search.html?q=lv_chart_set_next_value2)
set_point_count|int||[lv_chart_set_point_count](https://docs.lvgl.io/9.0/search.html?q=lv_chart_set_point_count)
@@ -1480,6 +1532,7 @@ set_series_values|lv.chart_series, lv.int_arr, int||[lv_chart_set_series_values]
set_series_values2|lv.chart_series, lv.int_arr, lv.int_arr, int||[lv_chart_set_series_values2](https://docs.lvgl.io/9.0/search.html?q=lv_chart_set_series_values2)
set_type|int||[lv_chart_set_type](https://docs.lvgl.io/9.0/search.html?q=lv_chart_set_type)
set_update_mode|int||[lv_chart_set_update_mode](https://docs.lvgl.io/9.0/search.html?q=lv_chart_set_update_mode)
+set_ver_div_line_count|int||[lv_chart_set_ver_div_line_count](https://docs.lvgl.io/9.0/search.html?q=lv_chart_set_ver_div_line_count)
set_x_start_point|lv.chart_series, int||[lv_chart_set_x_start_point](https://docs.lvgl.io/9.0/search.html?q=lv_chart_set_x_start_point)
### widget `lv.imagebutton`
@@ -1526,8 +1579,12 @@ get_step||int|[lv_spinbox_get_step](https://docs.lvgl.io/9.0/search.html?q=lv_sp
get_value||int|[lv_spinbox_get_value](https://docs.lvgl.io/9.0/search.html?q=lv_spinbox_get_value)
increment|||[lv_spinbox_increment](https://docs.lvgl.io/9.0/search.html?q=lv_spinbox_increment)
set_cursor_pos|int||[lv_spinbox_set_cursor_pos](https://docs.lvgl.io/9.0/search.html?q=lv_spinbox_set_cursor_pos)
+set_dec_point_pos|int||[lv_spinbox_set_dec_point_pos](https://docs.lvgl.io/9.0/search.html?q=lv_spinbox_set_dec_point_pos)
+set_digit_count|int||[lv_spinbox_set_digit_count](https://docs.lvgl.io/9.0/search.html?q=lv_spinbox_set_digit_count)
set_digit_format|int, int||[lv_spinbox_set_digit_format](https://docs.lvgl.io/9.0/search.html?q=lv_spinbox_set_digit_format)
set_digit_step_direction|int||[lv_spinbox_set_digit_step_direction](https://docs.lvgl.io/9.0/search.html?q=lv_spinbox_set_digit_step_direction)
+set_max_value|int||[lv_spinbox_set_max_value](https://docs.lvgl.io/9.0/search.html?q=lv_spinbox_set_max_value)
+set_min_value|int||[lv_spinbox_set_min_value](https://docs.lvgl.io/9.0/search.html?q=lv_spinbox_set_min_value)
set_range|int, int||[lv_spinbox_set_range](https://docs.lvgl.io/9.0/search.html?q=lv_spinbox_set_range)
set_rollover|bool||[lv_spinbox_set_rollover](https://docs.lvgl.io/9.0/search.html?q=lv_spinbox_set_rollover)
set_step|int||[lv_spinbox_set_step](https://docs.lvgl.io/9.0/search.html?q=lv_spinbox_set_step)
@@ -1566,6 +1623,7 @@ get_tab_act||int|[lv_tabview_get_tab_active](https://docs.lvgl.io/9.0/search.htm
get_tab_active||int|[lv_tabview_get_tab_active](https://docs.lvgl.io/9.0/search.html?q=lv_tabview_get_tab_active)
get_tab_bar||lv.obj|[lv_tabview_get_tab_bar](https://docs.lvgl.io/9.0/search.html?q=lv_tabview_get_tab_bar)
get_tab_btns||lv.obj|[lv_tabview_get_tab_bar](https://docs.lvgl.io/9.0/search.html?q=lv_tabview_get_tab_bar)
+get_tab_button|int|lv.obj|[lv_tabview_get_tab_button](https://docs.lvgl.io/9.0/search.html?q=lv_tabview_get_tab_button)
get_tab_count||int|[lv_tabview_get_tab_count](https://docs.lvgl.io/9.0/search.html?q=lv_tabview_get_tab_count)
rename_tab|int, string||[lv_tabview_rename_tab](https://docs.lvgl.io/9.0/search.html?q=lv_tabview_rename_tab)
set_act|int, int||[lv_tabview_set_active](https://docs.lvgl.io/9.0/search.html?q=lv_tabview_set_active)
@@ -1630,7 +1688,12 @@ header_dropdown_set_year_list|string||[lv_calendar_header_dropdown_set_year_list
set_chinese_mode|bool||[lv_calendar_set_chinese_mode](https://docs.lvgl.io/9.0/search.html?q=lv_calendar_set_chinese_mode)
set_day_names|comptr||[lv_calendar_set_day_names](https://docs.lvgl.io/9.0/search.html?q=lv_calendar_set_day_names)
set_month_shown|int, int||[lv_calendar_set_month_shown](https://docs.lvgl.io/9.0/search.html?q=lv_calendar_set_month_shown)
+set_shown_month|int||[lv_calendar_set_shown_month](https://docs.lvgl.io/9.0/search.html?q=lv_calendar_set_shown_month)
+set_shown_year|int||[lv_calendar_set_shown_year](https://docs.lvgl.io/9.0/search.html?q=lv_calendar_set_shown_year)
set_today_date|int, int, int||[lv_calendar_set_today_date](https://docs.lvgl.io/9.0/search.html?q=lv_calendar_set_today_date)
+set_today_day|int||[lv_calendar_set_today_day](https://docs.lvgl.io/9.0/search.html?q=lv_calendar_set_today_day)
+set_today_month|int||[lv_calendar_set_today_month](https://docs.lvgl.io/9.0/search.html?q=lv_calendar_set_today_month)
+set_today_year|int||[lv_calendar_set_today_year](https://docs.lvgl.io/9.0/search.html?q=lv_calendar_set_today_year)
### widget `lv.menu_page`
@@ -1677,7 +1740,9 @@ set_sidebar_page|lv.obj||[lv_menu_set_sidebar_page](https://docs.lvgl.io/9.0/sea
Method|Arguments|Return type|LVGL equivalent
:---|:---|:---|:---
set_dark_color|lv.color||[lv_qrcode_set_dark_color](https://docs.lvgl.io/9.0/search.html?q=lv_qrcode_set_dark_color)
+set_data|string||[lv_qrcode_set_data](https://docs.lvgl.io/9.0/search.html?q=lv_qrcode_set_data)
set_light_color|lv.color||[lv_qrcode_set_light_color](https://docs.lvgl.io/9.0/search.html?q=lv_qrcode_set_light_color)
+set_quiet_zone|bool||[lv_qrcode_set_quiet_zone](https://docs.lvgl.io/9.0/search.html?q=lv_qrcode_set_quiet_zone)
set_size|int||[lv_qrcode_set_size](https://docs.lvgl.io/9.0/search.html?q=lv_qrcode_set_size)
update|\, int|int|[lv_qrcode_update](https://docs.lvgl.io/9.0/search.html?q=lv_qrcode_update)
diff --git a/lib/libesp32_lvgl/lv_binding_berry/generate/be_lv_c_mapping.h b/lib/libesp32_lvgl/lv_binding_berry/generate/be_lv_c_mapping.h
index 4a2ca9498..65a71cbcc 100644
--- a/lib/libesp32_lvgl/lv_binding_berry/generate/be_lv_c_mapping.h
+++ b/lib/libesp32_lvgl/lv_binding_berry/generate/be_lv_c_mapping.h
@@ -16,6 +16,7 @@ const be_ntv_func_def_t lv_style_func[] = {
{ "copy", { (const void*) &lv_style_copy, "", "(lv.style)(lv.style)" } },
{ "is_const", { (const void*) &lv_style_is_const, "b", "(lv.style)" } },
{ "is_empty", { (const void*) &lv_style_is_empty, "b", "(lv.style)" } },
+ { "merge", { (const void*) &lv_style_merge, "", "(lv.style)(lv.style)" } },
{ "remove_prop", { (const void*) &lv_style_remove_prop, "b", "(lv.style)i" } },
{ "reset", { (const void*) &lv_style_reset, "", "(lv.style)" } },
{ "set_align", { (const void*) &lv_style_set_align, "", "(lv.style)i" } },
@@ -73,6 +74,7 @@ const be_ntv_func_def_t lv_style_func[] = {
{ "set_grid_row_align", { (const void*) &lv_style_set_grid_row_align, "", "(lv.style)i" } },
{ "set_grid_row_dsc_array", { (const void*) &lv_style_set_grid_row_dsc_array, "", "(lv.style)(lv.int_arr)" } },
{ "set_height", { (const void*) &lv_style_set_height, "", "(lv.style)i" } },
+ { "set_image_colorkey", { (const void*) &lv_style_set_image_colorkey, "", "(lv.style)c" } },
{ "set_image_opa", { (const void*) &lv_style_set_image_opa, "", "(lv.style)i" } },
{ "set_image_recolor", { (const void*) &lv_style_set_image_recolor, "", "(lv.style)(lv.color)" } },
{ "set_image_recolor_opa", { (const void*) &lv_style_set_image_recolor_opa, "", "(lv.style)i" } },
@@ -206,6 +208,8 @@ const be_ntv_func_def_t lv_group_func[] = {
const be_ntv_func_def_t lv_obj_func[] = {
{ "add_event_cb", { (const void*) &lv_obj_add_event_cb, "lv.event_dsc", "(lv.obj)^lv_event_cb^i." } },
{ "add_flag", { (const void*) &lv_obj_add_flag, "", "(lv.obj)i" } },
+ { "add_play_timeline_event", { (const void*) &lv_obj_add_play_timeline_event, "", "(lv.obj)i(lv.anim_timeline_dsc)ib" } },
+ { "add_screen_load_event", { (const void*) &lv_obj_add_screen_load_event, "", "(lv.obj)i(lv.obj)iii" } },
{ "add_state", { (const void*) &lv_obj_add_state, "", "(lv.obj)i" } },
{ "add_style", { (const void*) &lv_obj_add_style, "", "(lv.obj)(lv.style)i" } },
{ "align", { (const void*) &lv_obj_align, "", "(lv.obj)iii" } },
@@ -324,6 +328,7 @@ const be_ntv_func_def_t lv_obj_func[] = {
{ "get_style_grid_row_align", { (const void*) &lv_obj_get_style_grid_row_align, "i", "(lv.obj)i" } },
{ "get_style_grid_row_dsc_array", { (const void*) &lv_obj_get_style_grid_row_dsc_array, "lv.int_arr", "(lv.obj)i" } },
{ "get_style_height", { (const void*) &lv_obj_get_style_height, "i", "(lv.obj)i" } },
+ { "get_style_image_colorkey", { (const void*) &lv_obj_get_style_image_colorkey, "c", "(lv.obj)i" } },
{ "get_style_image_opa", { (const void*) &lv_obj_get_style_image_opa, "i", "(lv.obj)i" } },
{ "get_style_image_recolor", { (const void*) &lv_obj_get_style_image_recolor, "lv.color", "(lv.obj)i" } },
{ "get_style_image_recolor_filtered", { (const void*) &lv_obj_get_style_image_recolor_filtered, "lv.color", "(lv.obj)i" } },
@@ -549,6 +554,7 @@ const be_ntv_func_def_t lv_obj_func[] = {
{ "set_style_grid_row_align", { (const void*) &lv_obj_set_style_grid_row_align, "", "(lv.obj)ii" } },
{ "set_style_grid_row_dsc_array", { (const void*) &lv_obj_set_style_grid_row_dsc_array, "", "(lv.obj)(lv.int_arr)i" } },
{ "set_style_height", { (const void*) &lv_obj_set_style_height, "", "(lv.obj)ii" } },
+ { "set_style_image_colorkey", { (const void*) &lv_obj_set_style_image_colorkey, "", "(lv.obj)ci" } },
{ "set_style_image_opa", { (const void*) &lv_obj_set_style_image_opa, "", "(lv.obj)ii" } },
{ "set_style_image_recolor", { (const void*) &lv_obj_set_style_image_recolor, "", "(lv.obj)(lv.color)i" } },
{ "set_style_image_recolor_opa", { (const void*) &lv_obj_set_style_image_recolor_opa, "", "(lv.obj)ii" } },
@@ -642,6 +648,8 @@ const be_ntv_func_def_t lv_obj_func[] = {
{ "stringify_id", { (const void*) &lv_obj_stringify_id, "s", "(lv.obj)ci" } },
{ "style_apply_color_filter", { (const void*) &lv_obj_style_apply_color_filter, "i", "(lv.obj)ii" } },
{ "style_apply_recolor", { (const void*) &lv_obj_style_apply_recolor, "i", "(lv.obj)ii" } },
+ { "style_get_disabled", { (const void*) &lv_obj_style_get_disabled, "b", "(lv.obj)(lv.style)i" } },
+ { "style_set_disabled", { (const void*) &lv_obj_style_set_disabled, "", "(lv.obj)(lv.style)ib" } },
{ "swap", { (const void*) &lv_obj_swap, "", "(lv.obj)(lv.obj)" } },
{ "transform_point", { (const void*) &lv_obj_transform_point, "", "(lv.obj)ci" } },
{ "transform_point_array", { (const void*) &lv_obj_transform_point_array, "", "(lv.obj)(lv.point_arr)ii" } },
@@ -652,6 +660,7 @@ const be_ntv_func_def_t lv_obj_func[] = {
/* `lv_event` methods */
const be_ntv_func_def_t lv_event_func[] = {
+ { "free_user_data_cb", { (const void*) &lv_event_free_user_data_cb, "", "(lv.event)" } },
{ "get_code", { (const void*) &lv_event_get_code, "i", "(lv.event)" } },
{ "get_cover_area", { (const void*) &lv_event_get_cover_area, "lv.area", "(lv.event)" } },
{ "get_current_target", { (const void*) &lv_event_get_current_target, "c", "(lv.event)" } },
@@ -673,6 +682,7 @@ const be_ntv_func_def_t lv_event_func[] = {
{ "set_ext_draw_size", { (const void*) &lv_event_set_ext_draw_size, "", "(lv.event)i" } },
{ "stop_bubbling", { (const void*) &lv_event_stop_bubbling, "", "(lv.event)" } },
{ "stop_processing", { (const void*) &lv_event_stop_processing, "", "(lv.event)" } },
+ { "stop_trickling", { (const void*) &lv_event_stop_trickling, "", "(lv.event)" } },
};
/* `lv_display` methods */
@@ -714,6 +724,7 @@ const be_ntv_func_def_t lv_display_func[] = {
{ "get_scr_act", { (const void*) &lv_display_get_screen_active, "lv.obj", "(lv.display)" } },
{ "get_scr_prev", { (const void*) &lv_display_get_screen_prev, "lv.obj", "(lv.display)" } },
{ "get_screen_active", { (const void*) &lv_display_get_screen_active, "lv.obj", "(lv.display)" } },
+ { "get_screen_loading", { (const void*) &lv_display_get_screen_loading, "lv.obj", "(lv.display)" } },
{ "get_screen_prev", { (const void*) &lv_display_get_screen_prev, "lv.obj", "(lv.display)" } },
{ "get_theme", { (const void*) &lv_display_get_theme, "lv.theme", "(lv.display)" } },
{ "get_tile_cnt", { (const void*) &lv_display_get_tile_cnt, "i", "(lv.display)" } },
@@ -806,7 +817,9 @@ const be_ntv_func_def_t lv_indev_func[] = {
#ifdef BE_LV_WIDGET_QRCODE
const be_ntv_func_def_t lv_qrcode_func[] = {
{ "set_dark_color", { (const void*) &lv_qrcode_set_dark_color, "", "(lv.obj)(lv.color)" } },
+ { "set_data", { (const void*) &lv_qrcode_set_data, "", "(lv.obj)s" } },
{ "set_light_color", { (const void*) &lv_qrcode_set_light_color, "", "(lv.obj)(lv.color)" } },
+ { "set_quiet_zone", { (const void*) &lv_qrcode_set_quiet_zone, "", "(lv.obj)b" } },
{ "set_size", { (const void*) &lv_qrcode_set_size, "", "(lv.obj)i" } },
{ "update", { (const void*) &lv_qrcode_update, "i", "(lv.obj).i" } },
};
@@ -914,6 +927,8 @@ const be_ntv_func_def_t lv_arc_func[] = {
{ "set_change_rate", { (const void*) &lv_arc_set_change_rate, "", "(lv.obj)i" } },
{ "set_end_angle", { (const void*) &lv_arc_set_end_angle, "", "(lv.obj)i" } },
{ "set_knob_offset", { (const void*) &lv_arc_set_knob_offset, "", "(lv.obj)i" } },
+ { "set_max_value", { (const void*) &lv_arc_set_max_value, "", "(lv.obj)i" } },
+ { "set_min_value", { (const void*) &lv_arc_set_min_value, "", "(lv.obj)i" } },
{ "set_mode", { (const void*) &lv_arc_set_mode, "", "(lv.obj)i" } },
{ "set_range", { (const void*) &lv_arc_set_range, "", "(lv.obj)ii" } },
{ "set_rotation", { (const void*) &lv_arc_set_rotation, "", "(lv.obj)i" } },
@@ -933,6 +948,8 @@ const be_ntv_func_def_t lv_bar_func[] = {
{ "get_start_value", { (const void*) &lv_bar_get_start_value, "i", "(lv.obj)" } },
{ "get_value", { (const void*) &lv_bar_get_value, "i", "(lv.obj)" } },
{ "is_symmetrical", { (const void*) &lv_bar_is_symmetrical, "b", "(lv.obj)" } },
+ { "set_max_value", { (const void*) &lv_bar_set_max_value, "", "(lv.obj)i" } },
+ { "set_min_value", { (const void*) &lv_bar_set_min_value, "", "(lv.obj)i" } },
{ "set_mode", { (const void*) &lv_bar_set_mode, "", "(lv.obj)i" } },
{ "set_orientation", { (const void*) &lv_bar_set_orientation, "", "(lv.obj)i" } },
{ "set_range", { (const void*) &lv_bar_set_range, "", "(lv.obj)ii" } },
@@ -978,7 +995,12 @@ const be_ntv_func_def_t lv_calendar_func[] = {
{ "set_chinese_mode", { (const void*) &lv_calendar_set_chinese_mode, "", "(lv.obj)b" } },
{ "set_day_names", { (const void*) &lv_calendar_set_day_names, "", "(lv.obj)c" } },
{ "set_month_shown", { (const void*) &lv_calendar_set_month_shown, "", "(lv.obj)ii" } },
+ { "set_shown_month", { (const void*) &lv_calendar_set_shown_month, "", "(lv.obj)i" } },
+ { "set_shown_year", { (const void*) &lv_calendar_set_shown_year, "", "(lv.obj)i" } },
{ "set_today_date", { (const void*) &lv_calendar_set_today_date, "", "(lv.obj)iii" } },
+ { "set_today_day", { (const void*) &lv_calendar_set_today_day, "", "(lv.obj)i" } },
+ { "set_today_month", { (const void*) &lv_calendar_set_today_month, "", "(lv.obj)i" } },
+ { "set_today_year", { (const void*) &lv_calendar_set_today_year, "", "(lv.obj)i" } },
};
#endif // BE_LV_WIDGET_CALENDAR
@@ -1015,14 +1037,18 @@ const be_ntv_func_def_t lv_chart_func[] = {
{ "get_x_start_point", { (const void*) &lv_chart_get_x_start_point, "i", "(lv.obj)(lv.chart_series)" } },
{ "hide_series", { (const void*) &lv_chart_hide_series, "", "(lv.obj)(lv.chart_series)b" } },
{ "refresh", { (const void*) &lv_chart_refresh, "", "(lv.obj)" } },
+ { "remove_cursor", { (const void*) &lv_chart_remove_cursor, "", "(lv.obj)(lv.chart_cursor)" } },
{ "remove_series", { (const void*) &lv_chart_remove_series, "", "(lv.obj)(lv.chart_series)" } },
{ "set_all_values", { (const void*) &lv_chart_set_all_values, "", "(lv.obj)(lv.chart_series)i" } },
+ { "set_axis_max_value", { (const void*) &lv_chart_set_axis_max_value, "", "(lv.obj)ii" } },
+ { "set_axis_min_value", { (const void*) &lv_chart_set_axis_min_value, "", "(lv.obj)ii" } },
{ "set_axis_range", { (const void*) &lv_chart_set_axis_range, "", "(lv.obj)iii" } },
{ "set_cursor_point", { (const void*) &lv_chart_set_cursor_point, "", "(lv.obj)(lv.chart_cursor)(lv.chart_series)i" } },
{ "set_cursor_pos", { (const void*) &lv_chart_set_cursor_pos, "", "(lv.obj)(lv.chart_cursor)c" } },
{ "set_cursor_pos_x", { (const void*) &lv_chart_set_cursor_pos_x, "", "(lv.obj)(lv.chart_cursor)i" } },
{ "set_cursor_pos_y", { (const void*) &lv_chart_set_cursor_pos_y, "", "(lv.obj)(lv.chart_cursor)i" } },
{ "set_div_line_count", { (const void*) &lv_chart_set_div_line_count, "", "(lv.obj)ii" } },
+ { "set_hor_div_line_count", { (const void*) &lv_chart_set_hor_div_line_count, "", "(lv.obj)i" } },
{ "set_next_value", { (const void*) &lv_chart_set_next_value, "", "(lv.obj)(lv.chart_series)i" } },
{ "set_next_value2", { (const void*) &lv_chart_set_next_value2, "", "(lv.obj)(lv.chart_series)ii" } },
{ "set_point_count", { (const void*) &lv_chart_set_point_count, "", "(lv.obj)i" } },
@@ -1036,6 +1062,7 @@ const be_ntv_func_def_t lv_chart_func[] = {
{ "set_series_values2", { (const void*) &lv_chart_set_series_values2, "", "(lv.obj)(lv.chart_series)(lv.int_arr)(lv.int_arr)i" } },
{ "set_type", { (const void*) &lv_chart_set_type, "", "(lv.obj)i" } },
{ "set_update_mode", { (const void*) &lv_chart_set_update_mode, "", "(lv.obj)i" } },
+ { "set_ver_div_line_count", { (const void*) &lv_chart_set_ver_div_line_count, "", "(lv.obj)i" } },
{ "set_x_start_point", { (const void*) &lv_chart_set_x_start_point, "", "(lv.obj)(lv.chart_series)i" } },
};
#endif // BE_LV_WIDGET_CHART
@@ -1107,6 +1134,8 @@ const be_ntv_func_def_t lv_image_func[] = {
{ "set_offset_x", { (const void*) &lv_image_set_offset_x, "", "(lv.obj)i" } },
{ "set_offset_y", { (const void*) &lv_image_set_offset_y, "", "(lv.obj)i" } },
{ "set_pivot", { (const void*) &lv_image_set_pivot, "", "(lv.obj)ii" } },
+ { "set_pivot_x", { (const void*) &lv_image_set_pivot_x, "", "(lv.obj)i" } },
+ { "set_pivot_y", { (const void*) &lv_image_set_pivot_y, "", "(lv.obj)i" } },
{ "set_rotation", { (const void*) &lv_image_set_rotation, "", "(lv.obj)i" } },
{ "set_scale", { (const void*) &lv_image_set_scale, "", "(lv.obj)i" } },
{ "set_scale_x", { (const void*) &lv_image_set_scale_x, "", "(lv.obj)i" } },
@@ -1271,6 +1300,7 @@ const be_ntv_func_def_t lv_msgbox_func[] = {
const be_ntv_func_def_t lv_roller_func[] = {
{ "get_option_cnt", { (const void*) &lv_roller_get_option_count, "i", "(lv.obj)" } },
{ "get_option_count", { (const void*) &lv_roller_get_option_count, "i", "(lv.obj)" } },
+ { "get_option_str", { (const void*) &lv_roller_get_option_str, "i", "(lv.obj)ici" } },
{ "get_options", { (const void*) &lv_roller_get_options, "s", "(lv.obj)" } },
{ "get_selected", { (const void*) &lv_roller_get_selected, "i", "(lv.obj)" } },
{ "get_selected_str", { (const void*) &lv_roller_get_selected_str, "", "(lv.obj)ci" } },
@@ -1302,10 +1332,14 @@ const be_ntv_func_def_t lv_scale_func[] = {
{ "set_label_show", { (const void*) &lv_scale_set_label_show, "", "(lv.obj)b" } },
{ "set_line_needle_value", { (const void*) &lv_scale_set_line_needle_value, "", "(lv.obj)(lv.obj)ii" } },
{ "set_major_tick_every", { (const void*) &lv_scale_set_major_tick_every, "", "(lv.obj)i" } },
+ { "set_max_value", { (const void*) &lv_scale_set_max_value, "", "(lv.obj)i" } },
+ { "set_min_value", { (const void*) &lv_scale_set_min_value, "", "(lv.obj)i" } },
{ "set_mode", { (const void*) &lv_scale_set_mode, "", "(lv.obj)i" } },
{ "set_post_draw", { (const void*) &lv_scale_set_post_draw, "", "(lv.obj)b" } },
{ "set_range", { (const void*) &lv_scale_set_range, "", "(lv.obj)ii" } },
{ "set_rotation", { (const void*) &lv_scale_set_rotation, "", "(lv.obj)i" } },
+ { "set_section_max_value", { (const void*) &lv_scale_set_section_max_value, "", "(lv.obj)(lv.scale_section)i" } },
+ { "set_section_min_value", { (const void*) &lv_scale_set_section_min_value, "", "(lv.obj)(lv.scale_section)i" } },
{ "set_section_range", { (const void*) &lv_scale_set_section_range, "", "(lv.obj)(lv.scale_section)ii" } },
{ "set_section_style_indicator", { (const void*) &lv_scale_set_section_style_indicator, "", "(lv.obj)(lv.scale_section)(lv.style)" } },
{ "set_section_style_items", { (const void*) &lv_scale_set_section_style_items, "", "(lv.obj)(lv.scale_section)(lv.style)" } },
@@ -1334,6 +1368,8 @@ const be_ntv_func_def_t lv_slider_func[] = {
{ "get_value", { (const void*) &lv_slider_get_value, "i", "(lv.obj)" } },
{ "is_dragged", { (const void*) &lv_slider_is_dragged, "b", "(lv.obj)" } },
{ "is_symmetrical", { (const void*) &lv_slider_is_symmetrical, "b", "(lv.obj)" } },
+ { "set_max_value", { (const void*) &lv_slider_set_max_value, "", "(lv.obj)i" } },
+ { "set_min_value", { (const void*) &lv_slider_set_min_value, "", "(lv.obj)i" } },
{ "set_mode", { (const void*) &lv_slider_set_mode, "", "(lv.obj)i" } },
{ "set_orientation", { (const void*) &lv_slider_set_orientation, "", "(lv.obj)i" } },
{ "set_range", { (const void*) &lv_slider_set_range, "", "(lv.obj)ii" } },
@@ -1348,6 +1384,7 @@ const be_ntv_func_def_t lv_span_func[] = {
{ "get_style", { (const void*) &lv_span_get_style, "lv.style", "(lv.span)" } },
{ "get_text", { (const void*) &lv_span_get_text, "s", "(lv.span)" } },
{ "set_text", { (const void*) &lv_span_set_text, "", "(lv.span)s" } },
+ { "set_text_fmt", { (const void*) &lv_span_set_text_fmt, "", "(lv.span)s[......]" } },
{ "set_text_static", { (const void*) &lv_span_set_text_static, "", "(lv.span)s" } },
};
#endif // BE_LV_WIDGET_SPAN
@@ -1377,6 +1414,7 @@ const be_ntv_func_def_t lv_spangroup_func[] = {
{ "set_overflow", { (const void*) &lv_spangroup_set_overflow, "", "(lv.obj)i" } },
{ "set_span_style", { (const void*) &lv_spangroup_set_span_style, "", "(lv.obj)(lv.span)(lv.style)" } },
{ "set_span_text", { (const void*) &lv_spangroup_set_span_text, "", "(lv.obj)(lv.span)s" } },
+ { "set_span_text_fmt", { (const void*) &lv_spangroup_set_span_text_fmt, "", "(lv.obj)(lv.span)s[......]" } },
{ "set_span_text_static", { (const void*) &lv_spangroup_set_span_text_static, "", "(lv.obj)(lv.span)s" } },
};
#endif // BE_LV_WIDGET_SPANGROUP
@@ -1390,8 +1428,12 @@ const be_ntv_func_def_t lv_spinbox_func[] = {
{ "get_value", { (const void*) &lv_spinbox_get_value, "i", "(lv.obj)" } },
{ "increment", { (const void*) &lv_spinbox_increment, "", "(lv.obj)" } },
{ "set_cursor_pos", { (const void*) &lv_spinbox_set_cursor_pos, "", "(lv.obj)i" } },
+ { "set_dec_point_pos", { (const void*) &lv_spinbox_set_dec_point_pos, "", "(lv.obj)i" } },
+ { "set_digit_count", { (const void*) &lv_spinbox_set_digit_count, "", "(lv.obj)i" } },
{ "set_digit_format", { (const void*) &lv_spinbox_set_digit_format, "", "(lv.obj)ii" } },
{ "set_digit_step_direction", { (const void*) &lv_spinbox_set_digit_step_direction, "", "(lv.obj)i" } },
+ { "set_max_value", { (const void*) &lv_spinbox_set_max_value, "", "(lv.obj)i" } },
+ { "set_min_value", { (const void*) &lv_spinbox_set_min_value, "", "(lv.obj)i" } },
{ "set_range", { (const void*) &lv_spinbox_set_range, "", "(lv.obj)ii" } },
{ "set_rollover", { (const void*) &lv_spinbox_set_rollover, "", "(lv.obj)b" } },
{ "set_step", { (const void*) &lv_spinbox_set_step, "", "(lv.obj)i" } },
@@ -1453,6 +1495,7 @@ const be_ntv_func_def_t lv_tabview_func[] = {
{ "get_tab_active", { (const void*) &lv_tabview_get_tab_active, "i", "(lv.obj)" } },
{ "get_tab_bar", { (const void*) &lv_tabview_get_tab_bar, "lv.obj", "(lv.obj)" } },
{ "get_tab_btns", { (const void*) &lv_tabview_get_tab_bar, "lv.obj", "(lv.obj)" } },
+ { "get_tab_button", { (const void*) &lv_tabview_get_tab_button, "lv.obj", "(lv.obj)i" } },
{ "get_tab_count", { (const void*) &lv_tabview_get_tab_count, "i", "(lv.obj)" } },
{ "rename_tab", { (const void*) &lv_tabview_rename_tab, "", "(lv.obj)is" } },
{ "set_act", { (const void*) &lv_tabview_set_active, "", "(lv.obj)ii" } },
diff --git a/lib/libesp32_lvgl/lv_binding_berry/generate/be_lvgl_module.c b/lib/libesp32_lvgl/lv_binding_berry/generate/be_lvgl_module.c
index 201969a06..54e20f17e 100644
--- a/lib/libesp32_lvgl/lv_binding_berry/generate/be_lvgl_module.c
+++ b/lib/libesp32_lvgl/lv_binding_berry/generate/be_lvgl_module.c
@@ -41,6 +41,29 @@ const be_ntv_func_def_t lv_func[] = {
{ "anim_speed", { (const void*) &lv_anim_speed, "i", "i" } },
{ "anim_speed_clamped", { (const void*) &lv_anim_speed_clamped, "i", "iii" } },
{ "anim_speed_to_time", { (const void*) &lv_anim_speed_to_time, "i", "iii" } },
+ { "arclabel_create", { (const void*) &lv_arclabel_create, "lv.obj", "(lv.obj)" } },
+ { "arclabel_get_angle_size", { (const void*) &lv_arclabel_get_angle_size, "i", "(lv.obj)" } },
+ { "arclabel_get_angle_start", { (const void*) &lv_arclabel_get_angle_start, "i", "(lv.obj)" } },
+ { "arclabel_get_center_offset_x", { (const void*) &lv_arclabel_get_center_offset_x, "i", "(lv.obj)" } },
+ { "arclabel_get_center_offset_y", { (const void*) &lv_arclabel_get_center_offset_y, "i", "(lv.obj)" } },
+ { "arclabel_get_dir", { (const void*) &lv_arclabel_get_dir, "i", "(lv.obj)" } },
+ { "arclabel_get_radius", { (const void*) &lv_arclabel_get_radius, "i", "(lv.obj)" } },
+ { "arclabel_get_recolor", { (const void*) &lv_arclabel_get_recolor, "b", "(lv.obj)" } },
+ { "arclabel_get_text_horizontal_align", { (const void*) &lv_arclabel_get_text_horizontal_align, "i", "(lv.obj)" } },
+ { "arclabel_get_text_vertical_align", { (const void*) &lv_arclabel_get_text_vertical_align, "i", "(lv.obj)" } },
+ { "arclabel_set_angle_size", { (const void*) &lv_arclabel_set_angle_size, "", "(lv.obj)i" } },
+ { "arclabel_set_angle_start", { (const void*) &lv_arclabel_set_angle_start, "", "(lv.obj)i" } },
+ { "arclabel_set_center_offset_x", { (const void*) &lv_arclabel_set_center_offset_x, "", "(lv.obj)i" } },
+ { "arclabel_set_center_offset_y", { (const void*) &lv_arclabel_set_center_offset_y, "", "(lv.obj)i" } },
+ { "arclabel_set_dir", { (const void*) &lv_arclabel_set_dir, "", "(lv.obj)i" } },
+ { "arclabel_set_offset", { (const void*) &lv_arclabel_set_offset, "", "(lv.obj)i" } },
+ { "arclabel_set_radius", { (const void*) &lv_arclabel_set_radius, "", "(lv.obj)i" } },
+ { "arclabel_set_recolor", { (const void*) &lv_arclabel_set_recolor, "", "(lv.obj)b" } },
+ { "arclabel_set_text", { (const void*) &lv_arclabel_set_text, "", "(lv.obj)s" } },
+ { "arclabel_set_text_fmt", { (const void*) &lv_arclabel_set_text_fmt, "", "(lv.obj)s[......]" } },
+ { "arclabel_set_text_horizontal_align", { (const void*) &lv_arclabel_set_text_horizontal_align, "", "(lv.obj)i" } },
+ { "arclabel_set_text_static", { (const void*) &lv_arclabel_set_text_static, "", "(lv.obj)s" } },
+ { "arclabel_set_text_vertical_align", { (const void*) &lv_arclabel_set_text_vertical_align, "", "(lv.obj)i" } },
{ "area_align", { (const void*) &lv_area_align, "", "(lv.area)(lv.area)iii" } },
{ "area_copy", { (const void*) &lv_area_copy, "", "(lv.area)(lv.area)" } },
{ "area_get_height", { (const void*) &lv_area_get_height, "i", "(lv.area)" } },
@@ -68,6 +91,7 @@ const be_ntv_func_def_t lv_func[] = {
{ "color_hex", { (const void*) &lv_color_hex, "lv.color", "i" } },
{ "color_hex3", { (const void*) &lv_color_hex3, "lv.color", "i" } },
{ "color_hsv_to_rgb", { (const void*) &lv_color_hsv_to_rgb, "lv.color", "iii" } },
+ { "color_is_in_range", { (const void*) &lv_color_is_in_range, "b", "(lv.color)(lv.color)(lv.color)" } },
{ "color_lighten", { (const void*) &lv_color_lighten, "lv.color", "(lv.color)i" } },
{ "color_luminance", { (const void*) &lv_color_luminance, "i", "(lv.color)" } },
{ "color_make", { (const void*) &lv_color_make, "lv.color", "iii" } },
@@ -111,6 +135,7 @@ const be_ntv_func_def_t lv_func[] = {
{ "draw_line_dsc_init", { (const void*) &lv_draw_line_dsc_init, "", "(lv.draw_line_dsc)" } },
{ "draw_rect", { (const void*) &lv_draw_rect, "", "(lv.layer)(lv.draw_rect_dsc)(lv.area)" } },
{ "draw_rect_dsc_init", { (const void*) &lv_draw_rect_dsc_init, "", "(lv.draw_rect_dsc)" } },
+ { "draw_unit_send_event", { (const void*) &lv_draw_unit_send_event, "", "si." } },
{ "draw_wait_for_finish", { (const void*) &lv_draw_wait_for_finish, "", "" } },
{ "event_code_get_name", { (const void*) &lv_event_code_get_name, "s", "i" } },
{ "event_dsc_get_cb", { (const void*) &lv_event_dsc_get_cb, "lv.event_cb", "(lv.event_dsc)" } },
@@ -180,9 +205,6 @@ const be_ntv_func_def_t lv_func[] = {
{ "style_register_prop", { (const void*) &lv_style_register_prop, "i", "i" } },
{ "task_handler", { (const void*) &lv_task_handler, "i", "" } },
{ "text_get_size", { (const void*) &lv_text_get_size, "", "cs(lv.font)iiii" } },
- { "text_get_width", { (const void*) &lv_text_get_width, "i", "si(lv.font)i" } },
- { "text_get_width_with_flags", { (const void*) &lv_text_get_width_with_flags, "i", "si(lv.font)ii" } },
- { "text_is_cmd", { (const void*) &lv_text_is_cmd, "b", "ci" } },
{ "theme_apply", { (const void*) &lv_theme_apply, "", "(lv.obj)" } },
{ "theme_get_color_primary", { (const void*) &lv_theme_get_color_primary, "lv.color", "(lv.obj)" } },
{ "theme_get_color_secondary", { (const void*) &lv_theme_get_color_secondary, "lv.color", "(lv.obj)" } },
@@ -241,6 +263,12 @@ const be_const_member_t lv0_constants[] = {
{ "ANIM_ON", be_cconst_int(LV_ANIM_ON) },
{ "ANIM_PLAYTIME_INFINITE", be_cconst_int(LV_ANIM_PLAYTIME_INFINITE) },
{ "ANIM_REPEAT_INFINITE", be_cconst_int(LV_ANIM_REPEAT_INFINITE) },
+ { "ARCLABEL_DIR_CLOCKWISE", be_cconst_int(LV_ARCLABEL_DIR_CLOCKWISE) },
+ { "ARCLABEL_DIR_COUNTER_CLOCKWISE", be_cconst_int(LV_ARCLABEL_DIR_COUNTER_CLOCKWISE) },
+ { "ARCLABEL_TEXT_ALIGN_CENTER", be_cconst_int(LV_ARCLABEL_TEXT_ALIGN_CENTER) },
+ { "ARCLABEL_TEXT_ALIGN_DEFAULT", be_cconst_int(LV_ARCLABEL_TEXT_ALIGN_DEFAULT) },
+ { "ARCLABEL_TEXT_ALIGN_LEADING", be_cconst_int(LV_ARCLABEL_TEXT_ALIGN_LEADING) },
+ { "ARCLABEL_TEXT_ALIGN_TRAILING", be_cconst_int(LV_ARCLABEL_TEXT_ALIGN_TRAILING) },
{ "ARC_MODE_NORMAL", be_cconst_int(LV_ARC_MODE_NORMAL) },
{ "ARC_MODE_REVERSE", be_cconst_int(LV_ARC_MODE_REVERSE) },
{ "ARC_MODE_SYMMETRICAL", be_cconst_int(LV_ARC_MODE_SYMMETRICAL) },
@@ -316,6 +344,7 @@ const be_const_member_t lv0_constants[] = {
{ "CHART_TYPE_LINE", be_cconst_int(LV_CHART_TYPE_LINE) },
{ "CHART_TYPE_NONE", be_cconst_int(LV_CHART_TYPE_NONE) },
{ "CHART_TYPE_SCATTER", be_cconst_int(LV_CHART_TYPE_SCATTER) },
+ { "CHART_TYPE_STACKED", be_cconst_int(LV_CHART_TYPE_STACKED) },
{ "CHART_UPDATE_MODE_CIRCULAR", be_cconst_int(LV_CHART_UPDATE_MODE_CIRCULAR) },
{ "CHART_UPDATE_MODE_SHIFT", be_cconst_int(LV_CHART_UPDATE_MODE_SHIFT) },
{ "COLOR_AQUA", be_cconst_int(0x00FFFF) },
@@ -433,9 +462,10 @@ const be_const_member_t lv0_constants[] = {
{ "DISP_ROTATION_180", be_cconst_int(LV_DISPLAY_ROTATION_180) },
{ "DISP_ROTATION_270", be_cconst_int(LV_DISPLAY_ROTATION_270) },
{ "DISP_ROTATION_90", be_cconst_int(LV_DISPLAY_ROTATION_90) },
+ { "DRAW_TASK_STATE_BLOCKED", be_cconst_int(LV_DRAW_TASK_STATE_BLOCKED) },
+ { "DRAW_TASK_STATE_FINISHED", be_cconst_int(LV_DRAW_TASK_STATE_FINISHED) },
{ "DRAW_TASK_STATE_IN_PROGRESS", be_cconst_int(LV_DRAW_TASK_STATE_IN_PROGRESS) },
{ "DRAW_TASK_STATE_QUEUED", be_cconst_int(LV_DRAW_TASK_STATE_QUEUED) },
- { "DRAW_TASK_STATE_READY", be_cconst_int(LV_DRAW_TASK_STATE_READY) },
{ "DRAW_TASK_STATE_WAITING", be_cconst_int(LV_DRAW_TASK_STATE_WAITING) },
{ "DRAW_TASK_TYPE_ARC", be_cconst_int(LV_DRAW_TASK_TYPE_ARC) },
{ "DRAW_TASK_TYPE_BORDER", be_cconst_int(LV_DRAW_TASK_TYPE_BORDER) },
@@ -584,7 +614,6 @@ const be_const_member_t lv0_constants[] = {
{ "IMAGEBUTTON_STATE_NUM", be_cconst_int(LV_IMAGEBUTTON_STATE_NUM) },
{ "IMAGEBUTTON_STATE_PRESSED", be_cconst_int(LV_IMAGEBUTTON_STATE_PRESSED) },
{ "IMAGEBUTTON_STATE_RELEASED", be_cconst_int(LV_IMAGEBUTTON_STATE_RELEASED) },
- { "IMAGE_ALIGN_AUTO_TRANSFORM", be_cconst_int(LV_IMAGE_ALIGN_AUTO_TRANSFORM) },
{ "IMAGE_ALIGN_BOTTOM_LEFT", be_cconst_int(LV_IMAGE_ALIGN_BOTTOM_LEFT) },
{ "IMAGE_ALIGN_BOTTOM_MID", be_cconst_int(LV_IMAGE_ALIGN_BOTTOM_MID) },
{ "IMAGE_ALIGN_BOTTOM_RIGHT", be_cconst_int(LV_IMAGE_ALIGN_BOTTOM_RIGHT) },
@@ -686,6 +715,7 @@ const be_const_member_t lv0_constants[] = {
{ "OBJ_FLAG_CLICKABLE", be_cconst_int(LV_OBJ_FLAG_CLICKABLE) },
{ "OBJ_FLAG_CLICK_FOCUSABLE", be_cconst_int(LV_OBJ_FLAG_CLICK_FOCUSABLE) },
{ "OBJ_FLAG_EVENT_BUBBLE", be_cconst_int(LV_OBJ_FLAG_EVENT_BUBBLE) },
+ { "OBJ_FLAG_EVENT_TRICKLE", be_cconst_int(LV_OBJ_FLAG_EVENT_TRICKLE) },
{ "OBJ_FLAG_FLEX_IN_NEW_TRACK", be_cconst_int(LV_OBJ_FLAG_FLEX_IN_NEW_TRACK) },
{ "OBJ_FLAG_FLOATING", be_cconst_int(LV_OBJ_FLAG_FLOATING) },
{ "OBJ_FLAG_GESTURE_BUBBLE", be_cconst_int(LV_OBJ_FLAG_GESTURE_BUBBLE) },
@@ -706,6 +736,7 @@ const be_const_member_t lv0_constants[] = {
{ "OBJ_FLAG_SCROLL_WITH_ARROW", be_cconst_int(LV_OBJ_FLAG_SCROLL_WITH_ARROW) },
{ "OBJ_FLAG_SEND_DRAW_TASK_EVENTS", be_cconst_int(LV_OBJ_FLAG_SEND_DRAW_TASK_EVENTS) },
{ "OBJ_FLAG_SNAPPABLE", be_cconst_int(LV_OBJ_FLAG_SNAPPABLE) },
+ { "OBJ_FLAG_STATE_TRICKLE", be_cconst_int(LV_OBJ_FLAG_STATE_TRICKLE) },
{ "OBJ_FLAG_USER_1", be_cconst_int(LV_OBJ_FLAG_USER_1) },
{ "OBJ_FLAG_USER_2", be_cconst_int(LV_OBJ_FLAG_USER_2) },
{ "OBJ_FLAG_USER_3", be_cconst_int(LV_OBJ_FLAG_USER_3) },
@@ -786,6 +817,22 @@ const be_const_member_t lv0_constants[] = {
{ "SCALE_NONE", be_cconst_int(LV_SCALE_NONE) },
{ "SCALE_ROTATION_ANGLE_MASK", be_cconst_int(LV_SCALE_ROTATION_ANGLE_MASK) },
{ "SCALE_TOTAL_TICK_COUNT_DEFAULT", be_cconst_int(LV_SCALE_TOTAL_TICK_COUNT_DEFAULT) },
+ { "SCREEN_LOAD_ANIM_FADE_IN", be_cconst_int(LV_SCREEN_LOAD_ANIM_FADE_IN) },
+ { "SCREEN_LOAD_ANIM_FADE_ON", be_cconst_int(LV_SCREEN_LOAD_ANIM_FADE_ON) },
+ { "SCREEN_LOAD_ANIM_FADE_OUT", be_cconst_int(LV_SCREEN_LOAD_ANIM_FADE_OUT) },
+ { "SCREEN_LOAD_ANIM_MOVE_BOTTOM", be_cconst_int(LV_SCREEN_LOAD_ANIM_MOVE_BOTTOM) },
+ { "SCREEN_LOAD_ANIM_MOVE_LEFT", be_cconst_int(LV_SCREEN_LOAD_ANIM_MOVE_LEFT) },
+ { "SCREEN_LOAD_ANIM_MOVE_RIGHT", be_cconst_int(LV_SCREEN_LOAD_ANIM_MOVE_RIGHT) },
+ { "SCREEN_LOAD_ANIM_MOVE_TOP", be_cconst_int(LV_SCREEN_LOAD_ANIM_MOVE_TOP) },
+ { "SCREEN_LOAD_ANIM_NONE", be_cconst_int(LV_SCREEN_LOAD_ANIM_NONE) },
+ { "SCREEN_LOAD_ANIM_OUT_BOTTOM", be_cconst_int(LV_SCREEN_LOAD_ANIM_OUT_BOTTOM) },
+ { "SCREEN_LOAD_ANIM_OUT_LEFT", be_cconst_int(LV_SCREEN_LOAD_ANIM_OUT_LEFT) },
+ { "SCREEN_LOAD_ANIM_OUT_RIGHT", be_cconst_int(LV_SCREEN_LOAD_ANIM_OUT_RIGHT) },
+ { "SCREEN_LOAD_ANIM_OUT_TOP", be_cconst_int(LV_SCREEN_LOAD_ANIM_OUT_TOP) },
+ { "SCREEN_LOAD_ANIM_OVER_BOTTOM", be_cconst_int(LV_SCREEN_LOAD_ANIM_OVER_BOTTOM) },
+ { "SCREEN_LOAD_ANIM_OVER_LEFT", be_cconst_int(LV_SCREEN_LOAD_ANIM_OVER_LEFT) },
+ { "SCREEN_LOAD_ANIM_OVER_RIGHT", be_cconst_int(LV_SCREEN_LOAD_ANIM_OVER_RIGHT) },
+ { "SCREEN_LOAD_ANIM_OVER_TOP", be_cconst_int(LV_SCREEN_LOAD_ANIM_OVER_TOP) },
{ "SCROLLBAR_MODE_ACTIVE", be_cconst_int(LV_SCROLLBAR_MODE_ACTIVE) },
{ "SCROLLBAR_MODE_AUTO", be_cconst_int(LV_SCROLLBAR_MODE_AUTO) },
{ "SCROLLBAR_MODE_OFF", be_cconst_int(LV_SCROLLBAR_MODE_OFF) },
@@ -794,22 +841,6 @@ const be_const_member_t lv0_constants[] = {
{ "SCROLL_SNAP_END", be_cconst_int(LV_SCROLL_SNAP_END) },
{ "SCROLL_SNAP_NONE", be_cconst_int(LV_SCROLL_SNAP_NONE) },
{ "SCROLL_SNAP_START", be_cconst_int(LV_SCROLL_SNAP_START) },
- { "SCR_LOAD_ANIM_FADE_IN", be_cconst_int(LV_SCR_LOAD_ANIM_FADE_IN) },
- { "SCR_LOAD_ANIM_FADE_ON", be_cconst_int(LV_SCR_LOAD_ANIM_FADE_ON) },
- { "SCR_LOAD_ANIM_FADE_OUT", be_cconst_int(LV_SCR_LOAD_ANIM_FADE_OUT) },
- { "SCR_LOAD_ANIM_MOVE_BOTTOM", be_cconst_int(LV_SCR_LOAD_ANIM_MOVE_BOTTOM) },
- { "SCR_LOAD_ANIM_MOVE_LEFT", be_cconst_int(LV_SCR_LOAD_ANIM_MOVE_LEFT) },
- { "SCR_LOAD_ANIM_MOVE_RIGHT", be_cconst_int(LV_SCR_LOAD_ANIM_MOVE_RIGHT) },
- { "SCR_LOAD_ANIM_MOVE_TOP", be_cconst_int(LV_SCR_LOAD_ANIM_MOVE_TOP) },
- { "SCR_LOAD_ANIM_NONE", be_cconst_int(LV_SCR_LOAD_ANIM_NONE) },
- { "SCR_LOAD_ANIM_OUT_BOTTOM", be_cconst_int(LV_SCR_LOAD_ANIM_OUT_BOTTOM) },
- { "SCR_LOAD_ANIM_OUT_LEFT", be_cconst_int(LV_SCR_LOAD_ANIM_OUT_LEFT) },
- { "SCR_LOAD_ANIM_OUT_RIGHT", be_cconst_int(LV_SCR_LOAD_ANIM_OUT_RIGHT) },
- { "SCR_LOAD_ANIM_OUT_TOP", be_cconst_int(LV_SCR_LOAD_ANIM_OUT_TOP) },
- { "SCR_LOAD_ANIM_OVER_BOTTOM", be_cconst_int(LV_SCR_LOAD_ANIM_OVER_BOTTOM) },
- { "SCR_LOAD_ANIM_OVER_LEFT", be_cconst_int(LV_SCR_LOAD_ANIM_OVER_LEFT) },
- { "SCR_LOAD_ANIM_OVER_RIGHT", be_cconst_int(LV_SCR_LOAD_ANIM_OVER_RIGHT) },
- { "SCR_LOAD_ANIM_OVER_TOP", be_cconst_int(LV_SCR_LOAD_ANIM_OVER_TOP) },
{ "SIZE_CONTENT", be_cconst_int(LV_SIZE_CONTENT) },
{ "SLIDER_MODE_NORMAL", be_cconst_int(LV_SLIDER_MODE_NORMAL) },
{ "SLIDER_MODE_RANGE", be_cconst_int(LV_SLIDER_MODE_RANGE) },
@@ -889,6 +920,7 @@ const be_const_member_t lv0_constants[] = {
{ "STYLE_GRID_ROW_ALIGN", be_cconst_int(LV_STYLE_GRID_ROW_ALIGN) },
{ "STYLE_GRID_ROW_DSC_ARRAY", be_cconst_int(LV_STYLE_GRID_ROW_DSC_ARRAY) },
{ "STYLE_HEIGHT", be_cconst_int(LV_STYLE_HEIGHT) },
+ { "STYLE_IMAGE_COLORKEY", be_cconst_int(LV_STYLE_IMAGE_COLORKEY) },
{ "STYLE_IMAGE_OPA", be_cconst_int(LV_STYLE_IMAGE_OPA) },
{ "STYLE_IMAGE_RECOLOR", be_cconst_int(LV_STYLE_IMAGE_RECOLOR) },
{ "STYLE_IMAGE_RECOLOR_OPA", be_cconst_int(LV_STYLE_IMAGE_RECOLOR_OPA) },
@@ -1050,9 +1082,6 @@ const be_const_member_t lv0_constants[] = {
{ "TEXT_ALIGN_CENTER", be_cconst_int(LV_TEXT_ALIGN_CENTER) },
{ "TEXT_ALIGN_LEFT", be_cconst_int(LV_TEXT_ALIGN_LEFT) },
{ "TEXT_ALIGN_RIGHT", be_cconst_int(LV_TEXT_ALIGN_RIGHT) },
- { "TEXT_CMD_STATE_IN", be_cconst_int(LV_TEXT_CMD_STATE_IN) },
- { "TEXT_CMD_STATE_PAR", be_cconst_int(LV_TEXT_CMD_STATE_PAR) },
- { "TEXT_CMD_STATE_WAIT", be_cconst_int(LV_TEXT_CMD_STATE_WAIT) },
{ "TEXT_DECOR_NONE", be_cconst_int(LV_TEXT_DECOR_NONE) },
{ "TEXT_DECOR_STRIKETHROUGH", be_cconst_int(LV_TEXT_DECOR_STRIKETHROUGH) },
{ "TEXT_DECOR_UNDERLINE", be_cconst_int(LV_TEXT_DECOR_UNDERLINE) },
diff --git a/lib/libesp32_lvgl/lv_binding_berry/mapping/lv_enum.h b/lib/libesp32_lvgl/lv_binding_berry/mapping/lv_enum.h
index f9aa9be14..372abd662 100644
--- a/lib/libesp32_lvgl/lv_binding_berry/mapping/lv_enum.h
+++ b/lib/libesp32_lvgl/lv_binding_berry/mapping/lv_enum.h
@@ -213,6 +213,7 @@ LV_OBJ_FLAG_CHECKABLE
LV_OBJ_FLAG_CLICKABLE
LV_OBJ_FLAG_CLICK_FOCUSABLE
LV_OBJ_FLAG_EVENT_BUBBLE
+LV_OBJ_FLAG_EVENT_TRICKLE
LV_OBJ_FLAG_FLEX_IN_NEW_TRACK
LV_OBJ_FLAG_FLOATING
LV_OBJ_FLAG_GESTURE_BUBBLE
@@ -233,35 +234,13 @@ LV_OBJ_FLAG_SCROLL_ON_FOCUS
LV_OBJ_FLAG_SCROLL_WITH_ARROW
LV_OBJ_FLAG_SEND_DRAW_TASK_EVENTS
LV_OBJ_FLAG_SNAPPABLE
+LV_OBJ_FLAG_STATE_TRICKLE
LV_OBJ_FLAG_USER_1
LV_OBJ_FLAG_USER_2
LV_OBJ_FLAG_USER_3
LV_OBJ_FLAG_USER_4
LV_OBJ_FLAG_WIDGET_1
LV_OBJ_FLAG_WIDGET_2
-LV_PART_ANY
-LV_PART_CURSOR
-LV_PART_CUSTOM_FIRST
-LV_PART_INDICATOR
-LV_PART_ITEMS
-LV_PART_KNOB
-LV_PART_MAIN
-LV_PART_SCROLLBAR
-LV_PART_SELECTED
-LV_STATE_ANY
-LV_STATE_CHECKED
-LV_STATE_DEFAULT
-LV_STATE_DISABLED
-LV_STATE_EDITED
-LV_STATE_FOCUSED
-LV_STATE_FOCUS_KEY
-LV_STATE_HOVERED
-LV_STATE_PRESSED
-LV_STATE_SCROLLED
-LV_STATE_USER_1
-LV_STATE_USER_2
-LV_STATE_USER_3
-LV_STATE_USER_4
// File: ../../lvgl/src/core/lv_obj_class.h
LV_OBJ_CLASS_EDITABLE_FALSE
@@ -300,6 +279,29 @@ LV_SCROLL_SNAP_NONE
LV_SCROLL_SNAP_START
// File: ../../lvgl/src/core/lv_obj_style.h
+LV_PART_ANY
+LV_PART_CURSOR
+LV_PART_CUSTOM_FIRST
+LV_PART_INDICATOR
+LV_PART_ITEMS
+LV_PART_KNOB
+LV_PART_MAIN
+LV_PART_SCROLLBAR
+LV_PART_SELECTED
+LV_STATE_ANY
+LV_STATE_CHECKED
+LV_STATE_DEFAULT
+LV_STATE_DISABLED
+LV_STATE_EDITED
+LV_STATE_FOCUSED
+LV_STATE_FOCUS_KEY
+LV_STATE_HOVERED
+LV_STATE_PRESSED
+LV_STATE_SCROLLED
+LV_STATE_USER_1
+LV_STATE_USER_2
+LV_STATE_USER_3
+LV_STATE_USER_4
LV_STYLE_STATE_CMP_DIFF_DRAW_PAD
LV_STYLE_STATE_CMP_DIFF_LAYOUT
LV_STYLE_STATE_CMP_DIFF_REDRAW
@@ -322,27 +324,28 @@ LV_DISPLAY_ROTATION_0
LV_DISPLAY_ROTATION_180
LV_DISPLAY_ROTATION_270
LV_DISPLAY_ROTATION_90
-LV_SCR_LOAD_ANIM_FADE_IN
-LV_SCR_LOAD_ANIM_FADE_ON
-LV_SCR_LOAD_ANIM_FADE_OUT
-LV_SCR_LOAD_ANIM_MOVE_BOTTOM
-LV_SCR_LOAD_ANIM_MOVE_LEFT
-LV_SCR_LOAD_ANIM_MOVE_RIGHT
-LV_SCR_LOAD_ANIM_MOVE_TOP
-LV_SCR_LOAD_ANIM_NONE
-LV_SCR_LOAD_ANIM_OUT_BOTTOM
-LV_SCR_LOAD_ANIM_OUT_LEFT
-LV_SCR_LOAD_ANIM_OUT_RIGHT
-LV_SCR_LOAD_ANIM_OUT_TOP
-LV_SCR_LOAD_ANIM_OVER_BOTTOM
-LV_SCR_LOAD_ANIM_OVER_LEFT
-LV_SCR_LOAD_ANIM_OVER_RIGHT
-LV_SCR_LOAD_ANIM_OVER_TOP
+LV_SCREEN_LOAD_ANIM_FADE_IN
+LV_SCREEN_LOAD_ANIM_FADE_ON
+LV_SCREEN_LOAD_ANIM_FADE_OUT
+LV_SCREEN_LOAD_ANIM_MOVE_BOTTOM
+LV_SCREEN_LOAD_ANIM_MOVE_LEFT
+LV_SCREEN_LOAD_ANIM_MOVE_RIGHT
+LV_SCREEN_LOAD_ANIM_MOVE_TOP
+LV_SCREEN_LOAD_ANIM_NONE
+LV_SCREEN_LOAD_ANIM_OUT_BOTTOM
+LV_SCREEN_LOAD_ANIM_OUT_LEFT
+LV_SCREEN_LOAD_ANIM_OUT_RIGHT
+LV_SCREEN_LOAD_ANIM_OUT_TOP
+LV_SCREEN_LOAD_ANIM_OVER_BOTTOM
+LV_SCREEN_LOAD_ANIM_OVER_LEFT
+LV_SCREEN_LOAD_ANIM_OVER_RIGHT
+LV_SCREEN_LOAD_ANIM_OVER_TOP
// File: ../../lvgl/src/draw/lv_draw.h
+LV_DRAW_TASK_STATE_BLOCKED
+LV_DRAW_TASK_STATE_FINISHED
LV_DRAW_TASK_STATE_IN_PROGRESS
LV_DRAW_TASK_STATE_QUEUED
-LV_DRAW_TASK_STATE_READY
LV_DRAW_TASK_STATE_WAITING
LV_DRAW_TASK_TYPE_ARC
LV_DRAW_TASK_TYPE_BORDER
@@ -772,6 +775,7 @@ LV_STYLE_GRID_COLUMN_DSC_ARRAY
LV_STYLE_GRID_ROW_ALIGN
LV_STYLE_GRID_ROW_DSC_ARRAY
LV_STYLE_HEIGHT
+LV_STYLE_IMAGE_COLORKEY
LV_STYLE_IMAGE_OPA
LV_STYLE_IMAGE_RECOLOR
LV_STYLE_IMAGE_RECOLOR_OPA
@@ -861,9 +865,6 @@ LV_TEXT_ALIGN_AUTO
LV_TEXT_ALIGN_CENTER
LV_TEXT_ALIGN_LEFT
LV_TEXT_ALIGN_RIGHT
-LV_TEXT_CMD_STATE_IN
-LV_TEXT_CMD_STATE_PAR
-LV_TEXT_CMD_STATE_WAIT
LV_TEXT_FLAG_BREAK_ALL
LV_TEXT_FLAG_EXPAND
LV_TEXT_FLAG_FIT
@@ -892,6 +893,14 @@ LV_ARC_MODE_NORMAL
LV_ARC_MODE_REVERSE
LV_ARC_MODE_SYMMETRICAL
+// File: ../../lvgl/src/widgets/arclabel/lv_arclabel.h
+LV_ARCLABEL_DIR_CLOCKWISE
+LV_ARCLABEL_DIR_COUNTER_CLOCKWISE
+LV_ARCLABEL_TEXT_ALIGN_CENTER
+LV_ARCLABEL_TEXT_ALIGN_DEFAULT
+LV_ARCLABEL_TEXT_ALIGN_LEADING
+LV_ARCLABEL_TEXT_ALIGN_TRAILING
+
// File: ../../lvgl/src/widgets/bar/lv_bar.h
LV_BAR_MODE_NORMAL
LV_BAR_MODE_RANGE
@@ -954,6 +963,7 @@ LV_CHART_TYPE_BAR
LV_CHART_TYPE_LINE
LV_CHART_TYPE_NONE
LV_CHART_TYPE_SCATTER
+LV_CHART_TYPE_STACKED
LV_CHART_UPDATE_MODE_CIRCULAR
LV_CHART_UPDATE_MODE_SHIFT
@@ -963,7 +973,6 @@ LV_CHART_UPDATE_MODE_SHIFT
LV_DROPDOWN_POS_LAST
// File: ../../lvgl/src/widgets/image/lv_image.h
-LV_IMAGE_ALIGN_AUTO_TRANSFORM
LV_IMAGE_ALIGN_BOTTOM_LEFT
LV_IMAGE_ALIGN_BOTTOM_MID
LV_IMAGE_ALIGN_BOTTOM_RIGHT
diff --git a/lib/libesp32_lvgl/lv_binding_berry/mapping/lv_funcs.h b/lib/libesp32_lvgl/lv_binding_berry/mapping/lv_funcs.h
index 24b7e2b77..b75b0f532 100644
--- a/lib/libesp32_lvgl/lv_binding_berry/mapping/lv_funcs.h
+++ b/lib/libesp32_lvgl/lv_binding_berry/mapping/lv_funcs.h
@@ -76,6 +76,9 @@ bool lv_obj_has_class(const lv_obj_t * obj, const lv_obj_class_t * class_p)
const lv_obj_class_t * lv_obj_get_class(const lv_obj_t * obj)
bool lv_obj_is_valid(const lv_obj_t * obj)
void lv_obj_null_on_delete(lv_obj_t ** obj_ptr)
+void lv_obj_add_screen_load_event(lv_obj_t * obj, lv_event_code_t trigger, lv_obj_t * screen, lv_screen_load_anim_t anim_type, uint32_t duration, uint32_t delay)
+void lv_obj_add_screen_create_event(lv_obj_t * obj, lv_event_code_t trigger, lv_screen_create_cb_t screen_create_cb, lv_screen_load_anim_t anim_type, uint32_t duration, uint32_t delay)
+void lv_obj_add_play_timeline_event(lv_obj_t * obj, lv_event_code_t trigger, lv_anim_timeline_t * at, uint32_t delay, bool reverse)
void lv_obj_set_id(lv_obj_t * obj, void * id)
void * lv_obj_get_id(const lv_obj_t * obj)
lv_obj_t * lv_obj_find_by_id(const lv_obj_t * obj, const void * id)
@@ -214,6 +217,8 @@ void lv_obj_remove_style(lv_obj_t * obj, const lv_style_t * style, lv_style_sele
void lv_obj_remove_style_all(lv_obj_t * obj)
void lv_obj_report_style_change(lv_style_t * style)
void lv_obj_refresh_style(lv_obj_t * obj, lv_part_t part, lv_style_prop_t prop)
+void lv_obj_style_set_disabled(lv_obj_t * obj, const lv_style_t * style, lv_style_selector_t selector, bool dis)
+bool lv_obj_style_get_disabled(lv_obj_t * obj, const lv_style_t * style, lv_style_selector_t selector)
void lv_obj_enable_style_refresh(bool en)
lv_style_value_t lv_obj_get_style_prop(const lv_obj_t * obj, lv_part_t part, lv_style_prop_t prop)
bool lv_obj_has_style_prop(const lv_obj_t * obj, lv_style_selector_t selector, lv_style_prop_t prop)
@@ -318,6 +323,7 @@ static inline lv_opa_t lv_obj_get_style_image_opa(const lv_obj_t * obj, lv_part_
static inline lv_color_t lv_obj_get_style_image_recolor(const lv_obj_t * obj, lv_part_t part)
static inline lv_color_t lv_obj_get_style_image_recolor_filtered(const lv_obj_t * obj, lv_part_t part)
static inline lv_opa_t lv_obj_get_style_image_recolor_opa(const lv_obj_t * obj, lv_part_t part)
+static inline const lv_image_colorkey_t * lv_obj_get_style_image_colorkey(const lv_obj_t * obj, lv_part_t part)
static inline int32_t lv_obj_get_style_line_width(const lv_obj_t * obj, lv_part_t part)
static inline int32_t lv_obj_get_style_line_dash_width(const lv_obj_t * obj, lv_part_t part)
static inline int32_t lv_obj_get_style_line_dash_gap(const lv_obj_t * obj, lv_part_t part)
@@ -440,6 +446,7 @@ void lv_obj_set_style_shadow_opa(lv_obj_t * obj, lv_opa_t value, lv_style_select
void lv_obj_set_style_image_opa(lv_obj_t * obj, lv_opa_t value, lv_style_selector_t selector)
void lv_obj_set_style_image_recolor(lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector)
void lv_obj_set_style_image_recolor_opa(lv_obj_t * obj, lv_opa_t value, lv_style_selector_t selector)
+void lv_obj_set_style_image_colorkey(lv_obj_t * obj, const lv_image_colorkey_t * value, lv_style_selector_t selector)
void lv_obj_set_style_line_width(lv_obj_t * obj, int32_t value, lv_style_selector_t selector)
void lv_obj_set_style_line_dash_width(lv_obj_t * obj, int32_t value, lv_style_selector_t selector)
void lv_obj_set_style_line_dash_gap(lv_obj_t * obj, int32_t value, lv_style_selector_t selector)
@@ -561,6 +568,7 @@ bool lv_display_get_antialiasing(lv_display_t * disp)
bool lv_display_is_double_buffered(lv_display_t * disp)
lv_obj_t * lv_display_get_screen_active(lv_display_t * disp)
lv_obj_t * lv_display_get_screen_prev(lv_display_t * disp)
+lv_obj_t * lv_display_get_screen_loading(lv_display_t * disp)
lv_obj_t * lv_display_get_layer_top(lv_display_t * disp)
lv_obj_t * lv_display_get_layer_sys(lv_display_t * disp)
lv_obj_t * lv_display_get_layer_bottom(lv_display_t * disp)
@@ -614,6 +622,7 @@ uint32_t lv_draw_get_unit_count(void)
lv_draw_task_t * lv_draw_get_available_task(lv_layer_t * layer, lv_draw_task_t * t_prev, uint8_t draw_unit_id)
lv_draw_task_t * lv_draw_get_next_available_task(lv_layer_t * layer, lv_draw_task_t * t_prev, uint8_t draw_unit_id)
uint32_t lv_draw_get_dependent_count(lv_draw_task_t * t_check)
+void lv_draw_unit_send_event(const char * name, lv_event_code_t code, void * param)
void lv_layer_init(lv_layer_t * layer)
void lv_layer_reset(lv_layer_t * layer)
lv_layer_t * lv_draw_layer_create(lv_layer_t * parent_layer, lv_color_format_t color_format, const lv_area_t * area)
@@ -752,6 +761,8 @@ void lv_qrcode_set_size(lv_obj_t * obj, int32_t size)
void lv_qrcode_set_dark_color(lv_obj_t * obj, lv_color_t color)
void lv_qrcode_set_light_color(lv_obj_t * obj, lv_color_t color)
lv_result_t lv_qrcode_update(lv_obj_t * obj, const void * data, uint32_t data_len)
+void lv_qrcode_set_data(lv_obj_t * obj, const char * data)
+void lv_qrcode_set_quiet_zone(lv_obj_t * obj, bool enable)
// ../../lvgl/src/lv_api_map_v8.h
static inline uint32_t lv_task_handler(void)
@@ -762,6 +773,10 @@ static inline void lv_obj_move_background(lv_obj_t * obj)
// ../../lvgl/src/lv_api_map_v9_1.h
+// ../../lvgl/src/lv_api_map_v9_2.h
+
+// ../../lvgl/src/lv_api_map_v9_3.h
+
// ../../lvgl/src/misc/lv_anim.h
void lv_anim_init(lv_anim_t * a)
void lv_anim_set_var(lv_anim_t * a, void * var)
@@ -840,6 +855,8 @@ lv_color_t lv_color_hex(uint32_t c)
lv_color_t lv_color_make(uint8_t r, uint8_t g, uint8_t b)
lv_color32_t lv_color32_make(uint8_t r, uint8_t g, uint8_t b, uint8_t a)
lv_color_t lv_color_hex3(uint32_t c)
+static inline bool lv_color_is_in_range(lv_color_t color, lv_color_t l_color, lv_color_t h_color)
+static inline lv_color_t lv_color16_to_color(lv_color16_t c)
uint16_t lv_color_to_u16(lv_color_t color)
uint32_t lv_color_to_u32(lv_color_t color)
uint16_t lv_color_16_16_mix(uint16_t c1, uint16_t c2, uint8_t mix)
@@ -882,7 +899,9 @@ lv_event_code_t lv_event_get_code(lv_event_t * e)
void * lv_event_get_param(lv_event_t * e)
void * lv_event_get_user_data(lv_event_t * e)
void lv_event_stop_bubbling(lv_event_t * e)
+void lv_event_stop_trickling(lv_event_t * e)
void lv_event_stop_processing(lv_event_t * e)
+void lv_event_free_user_data_cb(lv_event_t * e)
uint32_t lv_event_register_id(void)
const char * lv_event_code_get_name(lv_event_code_t code)
@@ -895,6 +914,7 @@ lv_color_t lv_palette_darken(lv_palette_t p, uint8_t lvl)
void lv_style_init(lv_style_t * style)
void lv_style_reset(lv_style_t * style)
void lv_style_copy(lv_style_t * dst, const lv_style_t * src)
+void lv_style_merge(lv_style_t * dst, const lv_style_t * src)
static inline bool lv_style_is_const(const lv_style_t * style)
lv_style_prop_t lv_style_register_prop(uint8_t flag)
lv_style_prop_t lv_style_get_num_custom_props(void)
@@ -984,6 +1004,7 @@ void lv_style_set_shadow_opa(lv_style_t * style, lv_opa_t value)
void lv_style_set_image_opa(lv_style_t * style, lv_opa_t value)
void lv_style_set_image_recolor(lv_style_t * style, lv_color_t value)
void lv_style_set_image_recolor_opa(lv_style_t * style, lv_opa_t value)
+void lv_style_set_image_colorkey(lv_style_t * style, const lv_image_colorkey_t * value)
void lv_style_set_line_width(lv_style_t * style, int32_t value)
void lv_style_set_line_dash_width(lv_style_t * style, int32_t value)
void lv_style_set_line_dash_gap(lv_style_t * style, int32_t value)
@@ -1040,9 +1061,6 @@ void lv_style_set_grid_cell_row_span(lv_style_t * style, int32_t value)
// ../../lvgl/src/misc/lv_text.h
void lv_text_get_size(lv_point_t * size_res, const char * text, const lv_font_t * font, int32_t letter_space, int32_t line_space, int32_t max_width, lv_text_flag_t flag)
-int32_t lv_text_get_width(const char * txt, uint32_t length, const lv_font_t * font, int32_t letter_space)
-int32_t lv_text_get_width_with_flags(const char * txt, uint32_t length, const lv_font_t * font, int32_t letter_space, lv_text_flag_t flags)
-bool lv_text_is_cmd(lv_text_cmd_state_t * state, uint32_t c)
// ../../lvgl/src/misc/lv_timer.h
uint32_t lv_timer_handler(void)
@@ -1109,6 +1127,8 @@ void lv_arc_set_rotation(lv_obj_t * obj, int32_t rotation)
void lv_arc_set_mode(lv_obj_t * obj, lv_arc_mode_t type)
void lv_arc_set_value(lv_obj_t * obj, int32_t value)
void lv_arc_set_range(lv_obj_t * obj, int32_t min, int32_t max)
+void lv_arc_set_min_value(lv_obj_t * obj, int32_t min)
+void lv_arc_set_max_value(lv_obj_t * obj, int32_t max)
void lv_arc_set_change_rate(lv_obj_t * obj, uint32_t rate)
void lv_arc_set_knob_offset(lv_obj_t * obj, int32_t offset)
lv_value_precise_t lv_arc_get_angle_start(lv_obj_t * obj)
@@ -1124,11 +1144,38 @@ int32_t lv_arc_get_knob_offset(const lv_obj_t * obj)
void lv_arc_align_obj_to_angle(const lv_obj_t * obj, lv_obj_t * obj_to_align, int32_t r_offset)
void lv_arc_rotate_obj_to_angle(const lv_obj_t * obj, lv_obj_t * obj_to_rotate, int32_t r_offset)
+// ../../lvgl/src/widgets/arclabel/lv_arclabel.h
+lv_obj_t * lv_arclabel_create(lv_obj_t * parent)
+void lv_arclabel_set_text(lv_obj_t * obj, const char * text)
+void lv_arclabel_set_text_fmt(lv_obj_t * obj, const char * fmt, ...) LV_FORMAT_ATTRIBUTE(2, 3)
+void lv_arclabel_set_text_static(lv_obj_t * obj, const char * text)
+void lv_arclabel_set_angle_start(lv_obj_t * obj, lv_value_precise_t start)
+void lv_arclabel_set_angle_size(lv_obj_t * obj, lv_value_precise_t size)
+void lv_arclabel_set_offset(lv_obj_t * obj, int32_t offset)
+void lv_arclabel_set_dir(lv_obj_t * obj, lv_arclabel_dir_t dir)
+void lv_arclabel_set_recolor(lv_obj_t * obj, bool en)
+void lv_arclabel_set_radius(lv_obj_t * obj, uint32_t radius)
+void lv_arclabel_set_center_offset_x(lv_obj_t * obj, uint32_t x)
+void lv_arclabel_set_center_offset_y(lv_obj_t * obj, uint32_t y)
+void lv_arclabel_set_text_vertical_align(lv_obj_t * obj, lv_arclabel_text_align_t align)
+void lv_arclabel_set_text_horizontal_align(lv_obj_t * obj, lv_arclabel_text_align_t align)
+lv_value_precise_t lv_arclabel_get_angle_start(lv_obj_t * obj)
+lv_value_precise_t lv_arclabel_get_angle_size(lv_obj_t * obj)
+lv_arclabel_dir_t lv_arclabel_get_dir(const lv_obj_t * obj)
+bool lv_arclabel_get_recolor(lv_obj_t * obj)
+uint32_t lv_arclabel_get_radius(lv_obj_t * obj)
+uint32_t lv_arclabel_get_center_offset_x(lv_obj_t * obj)
+uint32_t lv_arclabel_get_center_offset_y(lv_obj_t * obj)
+lv_arclabel_text_align_t lv_arclabel_get_text_vertical_align(lv_obj_t * obj)
+lv_arclabel_text_align_t lv_arclabel_get_text_horizontal_align(lv_obj_t * obj)
+
// ../../lvgl/src/widgets/bar/lv_bar.h
lv_obj_t * lv_bar_create(lv_obj_t * parent)
void lv_bar_set_value(lv_obj_t * obj, int32_t value, lv_anim_enable_t anim)
void lv_bar_set_start_value(lv_obj_t * obj, int32_t start_value, lv_anim_enable_t anim)
void lv_bar_set_range(lv_obj_t * obj, int32_t min, int32_t max)
+void lv_bar_set_min_value(lv_obj_t * obj, int32_t min)
+void lv_bar_set_max_value(lv_obj_t * obj, int32_t max)
void lv_bar_set_mode(lv_obj_t * obj, lv_bar_mode_t mode)
void lv_bar_set_orientation(lv_obj_t * obj, lv_bar_orientation_t orientation)
int32_t lv_bar_get_value(const lv_obj_t * obj)
@@ -1162,7 +1209,12 @@ bool lv_buttonmatrix_get_one_checked(const lv_obj_t * obj)
// ../../lvgl/src/widgets/calendar/lv_calendar.h
lv_obj_t * lv_calendar_create(lv_obj_t * parent)
void lv_calendar_set_today_date(lv_obj_t * obj, uint32_t year, uint32_t month, uint32_t day)
+void lv_calendar_set_today_year(lv_obj_t * obj, uint32_t year)
+void lv_calendar_set_today_month(lv_obj_t * obj, uint32_t month)
+void lv_calendar_set_today_day(lv_obj_t * obj, uint32_t day)
void lv_calendar_set_month_shown(lv_obj_t * obj, uint32_t year, uint32_t month)
+void lv_calendar_set_shown_year(lv_obj_t * obj, uint32_t year)
+void lv_calendar_set_shown_month(lv_obj_t * obj, uint32_t month)
void lv_calendar_set_highlighted_dates(lv_obj_t * obj, lv_calendar_date_t highlighted[], size_t date_num)
void lv_calendar_set_day_names(lv_obj_t * obj, const char ** day_names)
lv_obj_t * lv_calendar_get_btnmatrix(const lv_obj_t * obj)
@@ -1205,8 +1257,12 @@ lv_obj_t * lv_chart_create(lv_obj_t * parent)
void lv_chart_set_type(lv_obj_t * obj, lv_chart_type_t type)
void lv_chart_set_point_count(lv_obj_t * obj, uint32_t cnt)
void lv_chart_set_axis_range(lv_obj_t * obj, lv_chart_axis_t axis, int32_t min, int32_t max)
+void lv_chart_set_axis_min_value(lv_obj_t * obj, lv_chart_axis_t axis, int32_t min)
+void lv_chart_set_axis_max_value(lv_obj_t * obj, lv_chart_axis_t axis, int32_t max)
void lv_chart_set_update_mode(lv_obj_t * obj, lv_chart_update_mode_t update_mode)
-void lv_chart_set_div_line_count(lv_obj_t * obj, uint8_t hdiv, uint8_t vdiv)
+void lv_chart_set_div_line_count(lv_obj_t * obj, uint32_t hdiv, uint32_t vdiv)
+void lv_chart_set_hor_div_line_count(lv_obj_t * obj, uint32_t cnt)
+void lv_chart_set_ver_div_line_count(lv_obj_t * obj, uint32_t cnt)
lv_chart_type_t lv_chart_get_type(const lv_obj_t * obj)
uint32_t lv_chart_get_point_count(const lv_obj_t * obj)
uint32_t lv_chart_get_x_start_point(const lv_obj_t * obj, lv_chart_series_t * ser)
@@ -1220,6 +1276,7 @@ lv_color_t lv_chart_get_series_color(lv_obj_t * chart, const lv_chart_series_t *
void lv_chart_set_x_start_point(lv_obj_t * obj, lv_chart_series_t * ser, uint32_t id)
lv_chart_series_t * lv_chart_get_series_next(const lv_obj_t * chart, const lv_chart_series_t * ser)
lv_chart_cursor_t * lv_chart_add_cursor(lv_obj_t * obj, lv_color_t color, lv_dir_t dir)
+void lv_chart_remove_cursor(lv_obj_t * obj, lv_chart_cursor_t * cursor)
void lv_chart_set_cursor_pos(lv_obj_t * chart, lv_chart_cursor_t * cursor, lv_point_t * pos)
void lv_chart_set_cursor_pos_x(lv_obj_t * chart, lv_chart_cursor_t * cursor, int32_t x)
void lv_chart_set_cursor_pos_y(lv_obj_t * chart, lv_chart_cursor_t * cursor, int32_t y)
@@ -1277,6 +1334,8 @@ void lv_image_set_offset_x(lv_obj_t * obj, int32_t x)
void lv_image_set_offset_y(lv_obj_t * obj, int32_t y)
void lv_image_set_rotation(lv_obj_t * obj, int32_t angle)
void lv_image_set_pivot(lv_obj_t * obj, int32_t x, int32_t y)
+void lv_image_set_pivot_x(lv_obj_t * obj, int32_t x)
+void lv_image_set_pivot_y(lv_obj_t * obj, int32_t y)
void lv_image_set_scale(lv_obj_t * obj, uint32_t zoom)
void lv_image_set_scale_x(lv_obj_t * obj, uint32_t zoom)
void lv_image_set_scale_y(lv_obj_t * obj, uint32_t zoom)
@@ -1323,6 +1382,7 @@ const char * lv_keyboard_get_button_text(const lv_obj_t * obj, uint32_t btn_id)
lv_obj_t * lv_label_create(lv_obj_t * parent)
void lv_label_set_text(lv_obj_t * obj, const char * text)
void lv_label_set_text_fmt(lv_obj_t * obj, const char * fmt, ...) LV_FORMAT_ATTRIBUTE(2, 3)
+void lv_label_set_text_vfmt(lv_obj_t * obj, const char * fmt, va_list args)
void lv_label_set_text_static(lv_obj_t * obj, const char * text)
void lv_label_set_long_mode(lv_obj_t * obj, lv_label_long_mode_t long_mode)
void lv_label_set_text_selection_start(lv_obj_t * obj, uint32_t index)
@@ -1414,6 +1474,7 @@ uint32_t lv_roller_get_selected(const lv_obj_t * obj)
void lv_roller_get_selected_str(const lv_obj_t * obj, char * buf, uint32_t buf_size)
const char * lv_roller_get_options(const lv_obj_t * obj)
uint32_t lv_roller_get_option_count(const lv_obj_t * obj)
+lv_result_t lv_roller_get_option_str(const lv_obj_t * obj, uint32_t option, char * buf, uint32_t buf_size)
// ../../lvgl/src/widgets/scale/lv_scale.h
lv_obj_t * lv_scale_create(lv_obj_t * parent)
@@ -1422,6 +1483,8 @@ void lv_scale_set_total_tick_count(lv_obj_t * obj, uint32_t total_tick_count)
void lv_scale_set_major_tick_every(lv_obj_t * obj, uint32_t major_tick_every)
void lv_scale_set_label_show(lv_obj_t * obj, bool show_label)
void lv_scale_set_range(lv_obj_t * obj, int32_t min, int32_t max)
+void lv_scale_set_min_value(lv_obj_t * obj, int32_t min)
+void lv_scale_set_max_value(lv_obj_t * obj, int32_t max)
void lv_scale_set_angle_range(lv_obj_t * obj, uint32_t angle_range)
void lv_scale_set_rotation(lv_obj_t * obj, int32_t rotation)
void lv_scale_set_line_needle_value(lv_obj_t * obj, lv_obj_t * needle_line, int32_t needle_length, int32_t value)
@@ -1432,6 +1495,8 @@ void lv_scale_set_draw_ticks_on_top(lv_obj_t * obj, bool en)
lv_scale_section_t * lv_scale_add_section(lv_obj_t * obj)
void lv_scale_section_set_range(lv_scale_section_t * section, int32_t min, int32_t max)
void lv_scale_set_section_range(lv_obj_t * scale, lv_scale_section_t * section, int32_t min, int32_t max)
+void lv_scale_set_section_min_value(lv_obj_t * scale, lv_scale_section_t * section, int32_t min)
+void lv_scale_set_section_max_value(lv_obj_t * scale, lv_scale_section_t * section, int32_t max)
void lv_scale_section_set_style(lv_scale_section_t * section, lv_part_t part, lv_style_t * section_part_style)
void lv_scale_set_section_style_main(lv_obj_t * scale, lv_scale_section_t * section, const lv_style_t * style)
void lv_scale_set_section_style_indicator(lv_obj_t * scale, lv_scale_section_t * section, const lv_style_t * style)
@@ -1450,6 +1515,8 @@ lv_obj_t * lv_slider_create(lv_obj_t * parent)
void lv_slider_set_value(lv_obj_t * obj, int32_t value, lv_anim_enable_t anim)
void lv_slider_set_start_value(lv_obj_t * obj, int32_t value, lv_anim_enable_t anim)
void lv_slider_set_range(lv_obj_t * obj, int32_t min, int32_t max)
+void lv_slider_set_min_value(lv_obj_t * obj, int32_t min)
+void lv_slider_set_max_value(lv_obj_t * obj, int32_t max)
void lv_slider_set_mode(lv_obj_t * obj, lv_slider_mode_t mode)
void lv_slider_set_orientation(lv_obj_t * obj, lv_slider_orientation_t orientation)
int32_t lv_slider_get_value(const lv_obj_t * obj)
@@ -1468,9 +1535,11 @@ lv_obj_t * lv_spangroup_create(lv_obj_t * parent)
lv_span_t * lv_spangroup_add_span(lv_obj_t * obj)
void lv_spangroup_delete_span(lv_obj_t * obj, lv_span_t * span)
void lv_span_set_text(lv_span_t * span, const char * text)
+void lv_span_set_text_fmt(lv_span_t * span, const char * fmt, ...) LV_FORMAT_ATTRIBUTE(2, 3)
void lv_span_set_text_static(lv_span_t * span, const char * text)
void lv_spangroup_set_span_text(lv_obj_t * obj, lv_span_t * span, const char * text)
void lv_spangroup_set_span_text_static(lv_obj_t * obj, lv_span_t * span, const char * text)
+void lv_spangroup_set_span_text_fmt(lv_obj_t * obj, lv_span_t * span, const char * fmt, ...) LV_FORMAT_ATTRIBUTE(3, 4)
void lv_span_set_text_static(lv_span_t * span, const char * text)
void lv_spangroup_set_span_style(lv_obj_t * obj, lv_span_t * span, const lv_style_t * style)
void lv_spangroup_set_align(lv_obj_t * obj, lv_text_align_t align)
@@ -1499,8 +1568,12 @@ lv_obj_t * lv_spinbox_create(lv_obj_t * parent)
void lv_spinbox_set_value(lv_obj_t * obj, int32_t v)
void lv_spinbox_set_rollover(lv_obj_t * obj, bool rollover)
void lv_spinbox_set_digit_format(lv_obj_t * obj, uint32_t digit_count, uint32_t sep_pos)
+void lv_spinbox_set_digit_count(lv_obj_t * obj, uint32_t digit_count)
+void lv_spinbox_set_dec_point_pos(lv_obj_t * obj, uint32_t dec_point_pos)
void lv_spinbox_set_step(lv_obj_t * obj, uint32_t step)
-void lv_spinbox_set_range(lv_obj_t * obj, int32_t range_min, int32_t range_max)
+void lv_spinbox_set_range(lv_obj_t * obj, int32_t min_value, int32_t max_value)
+void lv_spinbox_set_min_value(lv_obj_t * obj, int32_t min_value)
+void lv_spinbox_set_max_value(lv_obj_t * obj, int32_t max_value)
void lv_spinbox_set_cursor_pos(lv_obj_t * obj, uint32_t pos)
void lv_spinbox_set_digit_step_direction(lv_obj_t * obj, lv_dir_t direction)
bool lv_spinbox_get_rollover(lv_obj_t * obj)
@@ -1548,6 +1621,7 @@ void lv_tabview_set_tab_bar_position(lv_obj_t * obj, lv_dir_t dir)
void lv_tabview_set_tab_bar_size(lv_obj_t * obj, int32_t size)
uint32_t lv_tabview_get_tab_count(lv_obj_t * obj)
uint32_t lv_tabview_get_tab_active(lv_obj_t * obj)
+lv_obj_t * lv_tabview_get_tab_button(lv_obj_t * obj, int32_t idx)
lv_obj_t * lv_tabview_get_content(lv_obj_t * obj)
lv_obj_t * lv_tabview_get_tab_bar(lv_obj_t * obj)
diff --git a/lib/libesp32_lvgl/lv_binding_berry/src/be_lvgl_ctypes_definitions.c b/lib/libesp32_lvgl/lv_binding_berry/src/be_lvgl_ctypes_definitions.c
index c4fdb10fb..7163ea0a4 100644
--- a/lib/libesp32_lvgl/lv_binding_berry/src/be_lvgl_ctypes_definitions.c
+++ b/lib/libesp32_lvgl/lv_binding_berry/src/be_lvgl_ctypes_definitions.c
@@ -51,16 +51,6 @@ const be_ctypes_structure_t be_lv_grad_stop = {
{ "opa", 3, 0, 0, ctypes_u8, 0 },
}};
-const be_ctypes_structure_t be_lv_gradient_stop = {
- 8, /* size in bytes */
- 3, /* number of elements */
- be_ctypes_instance_mappings,
- (const be_ctypes_structure_item_t[3]) {
- { "color", 0, 0, 0, ctypes_u24, 1 },
- { "frac", 4, 0, 0, ctypes_u8, 0 },
- { "opa", 3, 0, 0, ctypes_u8, 0 },
-}};
-
const be_ctypes_structure_t be_lv_grad_dsc = {
12, /* size in bytes */
9, /* number of elements */
@@ -93,9 +83,9 @@ const be_ctypes_structure_t be_lv_draw_dsc_base = {
const be_ctypes_structure_t be_lv_draw_rect_dsc = {
112, /* size in bytes */
- 40, /* number of elements */
+ 41, /* number of elements */
be_ctypes_instance_mappings,
- (const be_ctypes_structure_item_t[40]) {
+ (const be_ctypes_structure_item_t[41]) {
{ "base_dsc_size", 20, 0, 0, ctypes_u32, 0 },
{ "base_id1", 8, 0, 0, ctypes_u32, 0 },
{ "base_id2", 12, 0, 0, ctypes_u32, 0 },
@@ -103,39 +93,40 @@ const be_ctypes_structure_t be_lv_draw_rect_dsc = {
{ "base_obj", 0, 0, 0, ctypes_ptr32, 0 },
{ "base_part", 4, 0, 0, ctypes_u32, 0 },
{ "base_user_data", 24, 0, 0, ctypes_ptr32, 0 },
- { "bg_color", 33, 0, 0, ctypes_u24, 1 },
- { "bg_grad_dir", 47, 0, 4, ctypes_bf, 0 },
- { "bg_grad_extend", 47, 4, 3, ctypes_bf, 0 },
- { "bg_grad_stops_0_color", 36, 0, 0, ctypes_u24, 1 },
- { "bg_grad_stops_0_frac", 40, 0, 0, ctypes_u8, 0 },
- { "bg_grad_stops_0_opa", 39, 0, 0, ctypes_u8, 0 },
- { "bg_grad_stops_1_color", 41, 0, 0, ctypes_u24, 1 },
- { "bg_grad_stops_1_frac", 45, 0, 0, ctypes_u8, 0 },
- { "bg_grad_stops_1_opa", 44, 0, 0, ctypes_u8, 0 },
- { "bg_grad_stops_count", 46, 0, 0, ctypes_u8, 0 },
- { "bg_img_opa", 59, 0, 0, ctypes_u8, 0 },
- { "bg_img_recolor", 56, 0, 0, ctypes_u24, 1 },
- { "bg_img_recolor_opa", 60, 0, 0, ctypes_u8, 0 },
- { "bg_img_src", 48, 0, 0, ctypes_ptr32, 0 },
- { "bg_img_symbol_font", 52, 0, 0, ctypes_ptr32, 0 },
- { "bg_img_tiled", 61, 0, 0, ctypes_u8, 0 },
- { "bg_opa", 32, 0, 0, ctypes_u8, 0 },
- { "border_color", 62, 0, 0, ctypes_u24, 1 },
- { "border_opa", 72, 0, 0, ctypes_u8, 0 },
- { "border_post", 73, 5, 1, ctypes_bf, 0 },
- { "border_side", 73, 0, 5, ctypes_bf, 0 },
- { "border_width", 68, 0, 0, ctypes_i32, 0 },
- { "outline_color", 74, 0, 0, ctypes_u24, 1 },
- { "outline_opa", 88, 0, 0, ctypes_u8, 0 },
- { "outline_pad", 84, 0, 0, ctypes_i32, 0 },
- { "outline_width", 80, 0, 0, ctypes_i32, 0 },
+ { "bg_color", 56, 0, 0, ctypes_u24, 1 },
+ { "bg_grad_dir", 71, 0, 4, ctypes_bf, 0 },
+ { "bg_grad_extend", 71, 4, 3, ctypes_bf, 0 },
+ { "bg_grad_stops_0_color", 60, 0, 0, ctypes_u24, 1 },
+ { "bg_grad_stops_0_frac", 64, 0, 0, ctypes_u8, 0 },
+ { "bg_grad_stops_0_opa", 63, 0, 0, ctypes_u8, 0 },
+ { "bg_grad_stops_1_color", 65, 0, 0, ctypes_u24, 1 },
+ { "bg_grad_stops_1_frac", 69, 0, 0, ctypes_u8, 0 },
+ { "bg_grad_stops_1_opa", 68, 0, 0, ctypes_u8, 0 },
+ { "bg_grad_stops_count", 70, 0, 0, ctypes_u8, 0 },
+ { "bg_image_colorkey", 52, 0, 0, ctypes_ptr32, 0 },
+ { "bg_img_opa", 43, 0, 0, ctypes_u8, 0 },
+ { "bg_img_recolor", 40, 0, 0, ctypes_u24, 1 },
+ { "bg_img_recolor_opa", 44, 0, 0, ctypes_u8, 0 },
+ { "bg_img_src", 32, 0, 0, ctypes_ptr32, 0 },
+ { "bg_img_symbol_font", 36, 0, 0, ctypes_ptr32, 0 },
+ { "bg_img_tiled", 45, 0, 0, ctypes_u8, 0 },
+ { "bg_opa", 46, 0, 0, ctypes_u8, 0 },
+ { "border_color", 72, 0, 0, ctypes_u24, 1 },
+ { "border_opa", 47, 0, 0, ctypes_u8, 0 },
+ { "border_post", 80, 5, 1, ctypes_bf, 0 },
+ { "border_side", 80, 0, 5, ctypes_bf, 0 },
+ { "border_width", 76, 0, 0, ctypes_i32, 0 },
+ { "outline_color", 81, 0, 0, ctypes_u24, 1 },
+ { "outline_opa", 48, 0, 0, ctypes_u8, 0 },
+ { "outline_pad", 88, 0, 0, ctypes_i32, 0 },
+ { "outline_width", 84, 0, 0, ctypes_i32, 0 },
{ "radius", 28, 0, 0, ctypes_i32, 0 },
- { "shadow_color", 89, 0, 0, ctypes_u24, 1 },
- { "shadow_ofs_x", 96, 0, 0, ctypes_i32, 0 },
- { "shadow_ofs_y", 100, 0, 0, ctypes_i32, 0 },
- { "shadow_opa", 108, 0, 0, ctypes_u8, 0 },
- { "shadow_spread", 104, 0, 0, ctypes_i32, 0 },
- { "shadow_width", 92, 0, 0, ctypes_i32, 0 },
+ { "shadow_color", 92, 0, 0, ctypes_u24, 1 },
+ { "shadow_ofs_x", 100, 0, 0, ctypes_i32, 0 },
+ { "shadow_ofs_y", 104, 0, 0, ctypes_i32, 0 },
+ { "shadow_opa", 49, 0, 0, ctypes_u8, 0 },
+ { "shadow_spread", 108, 0, 0, ctypes_i32, 0 },
+ { "shadow_width", 96, 0, 0, ctypes_i32, 0 },
}};
const be_ctypes_structure_t be_lv_draw_line_dsc = {
@@ -165,7 +156,7 @@ const be_ctypes_structure_t be_lv_draw_line_dsc = {
}};
const be_ctypes_structure_t be_lv_draw_arc_dsc = {
- 64, /* size in bytes */
+ 60, /* size in bytes */
17, /* number of elements */
be_ctypes_instance_mappings,
(const be_ctypes_structure_item_t[17]) {
@@ -180,10 +171,10 @@ const be_ctypes_structure_t be_lv_draw_arc_dsc = {
{ "center_y", 48, 0, 0, ctypes_i32, 0 },
{ "color", 28, 0, 0, ctypes_u24, 1 },
{ "end_angle", 40, 0, 0, ctypes_i32, 0 },
- { "img_src", 56, 0, 0, ctypes_ptr32, 0 },
- { "opa", 60, 0, 0, ctypes_u8, 0 },
- { "radius", 52, 0, 0, ctypes_u16, 0 },
- { "rounded", 61, 0, 1, ctypes_bf, 0 },
+ { "img_src", 52, 0, 0, ctypes_ptr32, 0 },
+ { "opa", 58, 0, 0, ctypes_u8, 0 },
+ { "radius", 56, 0, 0, ctypes_u16, 0 },
+ { "rounded", 59, 0, 1, ctypes_bf, 0 },
{ "start_angle", 36, 0, 0, ctypes_i32, 0 },
{ "width", 32, 0, 0, ctypes_i32, 0 },
}};
@@ -203,10 +194,10 @@ const be_ctypes_structure_t be_lv_image_header = {
}};
const be_ctypes_structure_t be_lv_draw_image_dsc = {
- 108, /* size in bytes */
- 35, /* number of elements */
+ 112, /* size in bytes */
+ 36, /* number of elements */
be_ctypes_instance_mappings,
- (const be_ctypes_structure_item_t[35]) {
+ (const be_ctypes_structure_item_t[36]) {
{ "antialias", 81, 4, 1, ctypes_bf, 0 },
{ "base_dsc_size", 20, 0, 0, ctypes_u32, 0 },
{ "base_id1", 8, 0, 0, ctypes_u32, 0 },
@@ -215,7 +206,7 @@ const be_ctypes_structure_t be_lv_draw_image_dsc = {
{ "base_obj", 0, 0, 0, ctypes_ptr32, 0 },
{ "base_part", 4, 0, 0, ctypes_u32, 0 },
{ "base_user_data", 24, 0, 0, ctypes_ptr32, 0 },
- { "bitmap_mask_src", 104, 0, 0, ctypes_ptr32, 0 },
+ { "bitmap_mask_src", 108, 0, 0, ctypes_ptr32, 0 },
{ "blend_mode", 81, 0, 4, ctypes_bf, 0 },
{ "clip_radius", 44, 0, 0, ctypes_i32, 0 },
{ "header_cf", 33, 0, 0, ctypes_u8, 0 },
@@ -225,10 +216,11 @@ const be_ctypes_structure_t be_lv_draw_image_dsc = {
{ "header_reserved_2", 42, 0, 0, ctypes_u16, 0 },
{ "header_stride", 40, 0, 0, ctypes_u16, 0 },
{ "header_w", 36, 0, 0, ctypes_u16, 0 },
- { "image_area_x1", 88, 0, 0, ctypes_i32, 0 },
- { "image_area_x2", 96, 0, 0, ctypes_i32, 0 },
- { "image_area_y1", 92, 0, 0, ctypes_i32, 0 },
- { "image_area_y2", 100, 0, 0, ctypes_i32, 0 },
+ { "image_area_x1", 92, 0, 0, ctypes_i32, 0 },
+ { "image_area_x2", 100, 0, 0, ctypes_i32, 0 },
+ { "image_area_y1", 96, 0, 0, ctypes_i32, 0 },
+ { "image_area_y2", 104, 0, 0, ctypes_i32, 0 },
+ { "lv_image_colorkey_t", 84, 0, 0, ctypes_ptr32, 0 },
{ "opa", 80, 0, 0, ctypes_u8, 0 },
{ "pivot_x", 68, 0, 0, ctypes_i32, 0 },
{ "pivot_y", 72, 0, 0, ctypes_i32, 0 },
@@ -240,7 +232,7 @@ const be_ctypes_structure_t be_lv_draw_image_dsc = {
{ "skew_x", 60, 0, 0, ctypes_i32, 0 },
{ "skew_y", 64, 0, 0, ctypes_i32, 0 },
{ "src", 28, 0, 0, ctypes_ptr32, 0 },
- { "sup", 84, 0, 0, ctypes_ptr32, 0 },
+ { "sup", 88, 0, 0, ctypes_ptr32, 0 },
{ "tile", 81, 5, 1, ctypes_bf, 0 },
}};
@@ -249,7 +241,7 @@ const be_ctypes_structure_t be_lv_draw_label_dsc = {
35, /* number of elements */
be_ctypes_instance_mappings,
(const be_ctypes_structure_item_t[35]) {
- { "align", 89, 0, 0, ctypes_u8, 0 },
+ { "align", 88, 0, 0, ctypes_u8, 0 },
{ "base_dsc_size", 20, 0, 0, ctypes_u32, 0 },
{ "base_id1", 8, 0, 0, ctypes_u32, 0 },
{ "base_id2", 12, 0, 0, ctypes_u32, 0 },
@@ -257,21 +249,21 @@ const be_ctypes_structure_t be_lv_draw_label_dsc = {
{ "base_obj", 0, 0, 0, ctypes_ptr32, 0 },
{ "base_part", 4, 0, 0, ctypes_u32, 0 },
{ "base_user_data", 24, 0, 0, ctypes_ptr32, 0 },
- { "bidi_dir", 90, 0, 0, ctypes_u8, 0 },
- { "blend_mode", 93, 0, 3, ctypes_bf, 0 },
+ { "bidi_dir", 89, 0, 0, ctypes_u8, 0 },
+ { "blend_mode", 94, 0, 3, ctypes_bf, 0 },
{ "color", 44, 0, 0, ctypes_u24, 1 },
- { "decor", 92, 0, 3, ctypes_bf, 0 },
- { "flag", 92, 3, 5, ctypes_bf, 0 },
+ { "decor", 93, 0, 3, ctypes_bf, 0 },
+ { "flag", 93, 3, 5, ctypes_bf, 0 },
{ "font", 40, 0, 0, ctypes_ptr32, 0 },
- { "has_bided", 93, 5, 1, ctypes_bf, 0 },
+ { "has_bided", 94, 5, 1, ctypes_bf, 0 },
{ "hint", 96, 0, 0, ctypes_ptr32, 0 },
{ "letter_space", 52, 0, 0, ctypes_i32, 0 },
{ "line_space", 48, 0, 0, ctypes_i32, 0 },
{ "ofs_x", 56, 0, 0, ctypes_i32, 0 },
{ "ofs_y", 60, 0, 0, ctypes_i32, 0 },
- { "opa", 88, 0, 0, ctypes_u8, 0 },
- { "outline_stroke_color", 101, 0, 0, ctypes_u24, 1 },
- { "outline_stroke_opa", 100, 0, 0, ctypes_u8, 0 },
+ { "opa", 90, 0, 0, ctypes_u8, 0 },
+ { "outline_stroke_color", 100, 0, 0, ctypes_u24, 1 },
+ { "outline_stroke_opa", 91, 0, 0, ctypes_u8, 0 },
{ "outline_stroke_width", 104, 0, 0, ctypes_i32, 0 },
{ "rotation", 64, 0, 0, ctypes_i32, 0 },
{ "sel_bg_color", 79, 0, 0, ctypes_u24, 1 },
@@ -280,10 +272,10 @@ const be_ctypes_structure_t be_lv_draw_label_dsc = {
{ "sel_start", 68, 0, 0, ctypes_u32, 0 },
{ "text", 28, 0, 0, ctypes_ptr32, 0 },
{ "text_length", 84, 0, 0, ctypes_u32, 0 },
- { "text_local", 93, 3, 1, ctypes_bf, 0 },
+ { "text_local", 94, 3, 1, ctypes_bf, 0 },
{ "text_size_x", 32, 0, 0, ctypes_i32, 0 },
{ "text_size_y", 36, 0, 0, ctypes_i32, 0 },
- { "text_static", 93, 4, 1, ctypes_bf, 0 },
+ { "text_static", 94, 4, 1, ctypes_bf, 0 },
}};
const be_ctypes_structure_t be_lv_chart_series = {
@@ -337,9 +329,9 @@ const be_ctypes_structure_t be_lv_obj_class = {
const be_ctypes_structure_t be_lv_event = {
28, /* size in bytes */
- 9, /* number of elements */
+ 10, /* number of elements */
be_ctypes_instance_mappings,
- (const be_ctypes_structure_item_t[9]) {
+ (const be_ctypes_structure_item_t[10]) {
{ "code", 8, 0, 0, ctypes_i32, 0 },
{ "current_target", 0, 0, 0, ctypes_ptr32, 0 },
{ "deleted", 24, 0, 1, ctypes_bf, 0 },
@@ -348,6 +340,7 @@ const be_ctypes_structure_t be_lv_event = {
{ "prev", 20, 0, 0, ctypes_ptr32, 0 },
{ "stop_bubbling", 24, 2, 1, ctypes_bf, 0 },
{ "stop_processing", 24, 1, 1, ctypes_bf, 0 },
+ { "stop_trickling", 24, 3, 1, ctypes_bf, 0 },
{ "user_data", 12, 0, 0, ctypes_ptr32, 0 },
}};
@@ -381,32 +374,46 @@ const be_ctypes_structure_t be_lv_style_transition_dsc = {
{ "user_data", 4, 0, 0, ctypes_ptr32, 0 },
}};
+const be_ctypes_structure_t be_lv_anim_timeline_dsc = {
+ 28, /* size in bytes */
+ 7, /* number of elements */
+ be_ctypes_instance_mappings,
+ (const be_ctypes_structure_item_t[7]) {
+ { "act_time", 8, 0, 0, ctypes_u32, 0 },
+ { "anim_dsc", 0, 0, 0, ctypes_ptr32, 0 },
+ { "anim_dsc_cnt", 4, 0, 0, ctypes_u32, 0 },
+ { "delay", 12, 0, 0, ctypes_u32, 0 },
+ { "repeat_count", 16, 0, 0, ctypes_u32, 0 },
+ { "repeat_delay", 20, 0, 0, ctypes_u32, 0 },
+ { "user_data", 24, 0, 0, ctypes_ptr32, 0 },
+}};
+
const be_ctypes_structure_t be_lv_layer = {
84, /* size in bytes */
21, /* number of elements */
be_ctypes_instance_mappings,
(const be_ctypes_structure_item_t[21]) {
- { "_clip_area_x1", 24, 0, 0, ctypes_i32, 0 },
- { "_clip_area_x2", 32, 0, 0, ctypes_i32, 0 },
- { "_clip_area_y1", 28, 0, 0, ctypes_i32, 0 },
- { "_clip_area_y2", 36, 0, 0, ctypes_i32, 0 },
- { "buf_area_x1", 4, 0, 0, ctypes_i32, 0 },
- { "buf_area_x2", 12, 0, 0, ctypes_i32, 0 },
- { "buf_area_y1", 8, 0, 0, ctypes_i32, 0 },
- { "buf_area_y2", 16, 0, 0, ctypes_i32, 0 },
- { "color_format", 20, 0, 0, ctypes_u32, 0 },
+ { "_clip_area_x1", 52, 0, 0, ctypes_i32, 0 },
+ { "_clip_area_x2", 60, 0, 0, ctypes_i32, 0 },
+ { "_clip_area_y1", 56, 0, 0, ctypes_i32, 0 },
+ { "_clip_area_y2", 64, 0, 0, ctypes_i32, 0 },
+ { "buf_area_x1", 20, 0, 0, ctypes_i32, 0 },
+ { "buf_area_x2", 28, 0, 0, ctypes_i32, 0 },
+ { "buf_area_y1", 24, 0, 0, ctypes_i32, 0 },
+ { "buf_area_y2", 32, 0, 0, ctypes_i32, 0 },
+ { "color_format", 76, 0, 0, ctypes_u32, 0 },
{ "draw_buf", 0, 0, 0, ctypes_ptr32, 0 },
- { "draw_task_head", 68, 0, 0, ctypes_ptr32, 0 },
- { "next", 76, 0, 0, ctypes_ptr32, 0 },
- { "opa", 56, 0, 0, ctypes_u8, 0 },
- { "parent", 72, 0, 0, ctypes_ptr32, 0 },
- { "partial_y_offset", 64, 0, 0, ctypes_i32, 0 },
- { "phy_clip_area_x1", 40, 0, 0, ctypes_i32, 0 },
- { "phy_clip_area_x2", 48, 0, 0, ctypes_i32, 0 },
- { "phy_clip_area_y1", 44, 0, 0, ctypes_i32, 0 },
- { "phy_clip_area_y2", 52, 0, 0, ctypes_i32, 0 },
- { "recolor", 60, 0, 0, ctypes_u32, 0 },
- { "user_data", 80, 0, 0, ctypes_ptr32, 0 },
+ { "draw_task_head", 4, 0, 0, ctypes_ptr32, 0 },
+ { "next", 12, 0, 0, ctypes_ptr32, 0 },
+ { "opa", 80, 0, 0, ctypes_u8, 0 },
+ { "parent", 8, 0, 0, ctypes_ptr32, 0 },
+ { "partial_y_offset", 68, 0, 0, ctypes_i32, 0 },
+ { "phy_clip_area_x1", 36, 0, 0, ctypes_i32, 0 },
+ { "phy_clip_area_x2", 44, 0, 0, ctypes_i32, 0 },
+ { "phy_clip_area_y1", 40, 0, 0, ctypes_i32, 0 },
+ { "phy_clip_area_y2", 48, 0, 0, ctypes_i32, 0 },
+ { "recolor", 72, 0, 0, ctypes_u32, 0 },
+ { "user_data", 16, 0, 0, ctypes_ptr32, 0 },
}};
const be_ctypes_structure_t be_lv_color_filter_dsc = {
@@ -419,13 +426,13 @@ const be_ctypes_structure_t be_lv_color_filter_dsc = {
}};
const be_ctypes_structure_t be_lv_timer_ntv = {
- 24, /* size in bytes */
+ 28, /* size in bytes */
7, /* number of elements */
be_ctypes_instance_mappings,
(const be_ctypes_structure_item_t[7]) {
- { "auto_delete", 20, 1, 1, ctypes_bf, 0 },
+ { "auto_delete", 24, 0, 1, ctypes_bf, 0 },
{ "last_run", 4, 0, 0, ctypes_u32, 0 },
- { "paused", 20, 0, 1, ctypes_bf, 0 },
+ { "paused", 20, 0, 0, ctypes_i32, 0 },
{ "period", 0, 0, 0, ctypes_u32, 0 },
{ "repeat_count", 16, 0, 0, ctypes_i32, 0 },
{ "timer_cb", 8, 0, 0, ctypes_ptr32, 0 },
@@ -498,7 +505,7 @@ const be_ctypes_structure_t be_lv_draw_letter_dsc = {
{ "base_obj", 0, 0, 0, ctypes_ptr32, 0 },
{ "base_part", 4, 0, 0, ctypes_u32, 0 },
{ "base_user_data", 24, 0, 0, ctypes_ptr32, 0 },
- { "blend_mode", 69, 3, 3, ctypes_bf, 0 },
+ { "blend_mode", 69, 3, 4, ctypes_bf, 0 },
{ "color", 36, 0, 0, ctypes_u24, 1 },
{ "decor", 69, 0, 3, ctypes_bf, 0 },
{ "font", 32, 0, 0, ctypes_ptr32, 0 },
@@ -521,6 +528,7 @@ static const char * be_ctypes_instance_mappings[] = {
NULL
};
+static be_define_ctypes_class(lv_anim_timeline_dsc, &be_lv_anim_timeline_dsc, &be_class_ctypes_bytes, "lv_anim_timeline_dsc");
static be_define_ctypes_class(lv_area, &be_lv_area, &be_class_ctypes_bytes, "lv_area");
static be_define_ctypes_class(lv_chart_cursor, &be_lv_chart_cursor, &be_class_ctypes_bytes, "lv_chart_cursor");
static be_define_ctypes_class(lv_chart_series, &be_lv_chart_series, &be_class_ctypes_bytes, "lv_chart_series");
@@ -537,7 +545,6 @@ static be_define_ctypes_class(lv_event_dsc, &be_lv_event_dsc, &be_class_ctypes_b
static be_define_ctypes_class(lv_font_info, &be_lv_font_info, &be_class_ctypes_bytes, "lv_font_info");
static be_define_ctypes_class(lv_grad_dsc, &be_lv_grad_dsc, &be_class_ctypes_bytes, "lv_grad_dsc");
static be_define_ctypes_class(lv_grad_stop, &be_lv_grad_stop, &be_class_ctypes_bytes, "lv_grad_stop");
-static be_define_ctypes_class(lv_gradient_stop, &be_lv_gradient_stop, &be_class_ctypes_bytes, "lv_gradient_stop");
static be_define_ctypes_class(lv_image_dsc, &be_lv_image_dsc, &be_class_ctypes_bytes, "lv_image_dsc");
static be_define_ctypes_class(lv_image_header, &be_lv_image_header, &be_class_ctypes_bytes, "lv_image_header");
static be_define_ctypes_class(lv_layer, &be_lv_layer, &be_class_ctypes_bytes, "lv_layer");
@@ -550,6 +557,7 @@ static be_define_ctypes_class(lv_timer_ntv, &be_lv_timer_ntv, &be_class_ctypes_b
static be_define_ctypes_class(lv_ts_calibration, &be_lv_ts_calibration, &be_class_ctypes_bytes, "lv_ts_calibration");
be_ctypes_class_by_name_t be_ctypes_lvgl_classes[] = {
+ { "lv_anim_timeline_dsc", &be_class_lv_anim_timeline_dsc },
{ "lv_area", &be_class_lv_area },
{ "lv_chart_cursor", &be_class_lv_chart_cursor },
{ "lv_chart_series", &be_class_lv_chart_series },
@@ -566,7 +574,6 @@ be_ctypes_class_by_name_t be_ctypes_lvgl_classes[] = {
{ "lv_font_info", &be_class_lv_font_info },
{ "lv_grad_dsc", &be_class_lv_grad_dsc },
{ "lv_grad_stop", &be_class_lv_grad_stop },
- { "lv_gradient_stop", &be_class_lv_gradient_stop },
{ "lv_image_dsc", &be_class_lv_image_dsc },
{ "lv_image_header", &be_class_lv_image_header },
{ "lv_layer", &be_class_lv_layer },
diff --git a/lib/libesp32_lvgl/lv_binding_berry/src/embedded/lvgl_ctypes.py b/lib/libesp32_lvgl/lv_binding_berry/src/embedded/lvgl_ctypes.py
index 148ab33d5..c10ffa39c 100644
--- a/lib/libesp32_lvgl/lv_binding_berry/src/embedded/lvgl_ctypes.py
+++ b/lib/libesp32_lvgl/lv_binding_berry/src/embedded/lvgl_ctypes.py
@@ -52,7 +52,7 @@ int32_t = ct.i32
size_t = ct.u32
ptr = ct.ptr32
-lv_point = [ # valid LVGL93
+lv_point = [ # valid LVGL94
[int32_t, "x"],
[int32_t, "y"],
]
@@ -62,13 +62,13 @@ lv_point = ct.structure(lv_point, "lv_point")
# lv_value_precise_t x;
# lv_value_precise_t y;
# } lv_point_precise_t;
-lv_point_precise = [ # valid LVGL93
+lv_point_precise = [ # valid LVGL94
[lv_value_precise, "x"],
[lv_value_precise, "y"],
]
lv_point_precise = ct.structure(lv_point_precise, "lv_point_precise")
-lv_area = [ # valid LVGL93
+lv_area = [ # valid LVGL94
[int32_t, "x1"],
[int32_t, "y1"],
[int32_t, "x2"],
@@ -83,13 +83,12 @@ lv_area = ct.structure(lv_area, "lv_area")
# lv_opa_t opa; /**< The opacity of the color*/
# uint8_t frac; /**< The stop position in 1/255 unit */
# } lv_grad_stop_t;
-lv_gradient_stop = [ # valid LVGL93
+lv_grad_stop = [ # valid LVGL94
[lv_color, "color"],
[lv_opa, "opa"],
[uint8_t, "frac"],
]
-lv_grad_stop = ct.structure(lv_gradient_stop, "lv_grad_stop")
-lv_gradient_stop = ct.structure(lv_gradient_stop, "lv_gradient_stop")
+lv_grad_stop = ct.structure(lv_grad_stop, "lv_grad_stop")
# typedef struct {
# lv_grad_stop_t stops[LV_GRADIENT_MAX_STOPS]; /**< A gradient stop array */
@@ -124,7 +123,7 @@ lv_gradient_stop = ct.structure(lv_gradient_stop, "lv_gradient_stop")
# void * state;
# #endif
# } lv_grad_dsc_t;
-lv_grad_dsc = [ # valid LVGL93
+lv_grad_dsc = [ # valid LVGL94
# since it's an array and not two structures, we need to explicitly unroll it here or the alignment is wrong
# [lv_gradient_stop, "stops_0"],
[lv_color, "stops_0_color"],
@@ -164,7 +163,7 @@ lv_grad_dsc = ct.structure(lv_grad_dsc, "lv_grad_dsc")
# /**Any custom user data*/
# void * user_data;
# } lv_draw_dsc_base_t;
-lv_draw_dsc_base = [ # valid LVGL93
+lv_draw_dsc_base = [ # valid LVGL94
[ptr, "obj"],
[uint32_t, "part"],
[uint32_t, "id1"],
@@ -180,11 +179,6 @@ lv_draw_dsc_base = ct.structure(lv_draw_dsc_base, "lv_draw_dsc_base")
# int32_t radius;
-# /*Background*/
-# lv_opa_t bg_opa;
-# lv_color_t bg_color; /**< First element of a gradient is a color, so it maps well here*/
-# lv_grad_dsc_t bg_grad;
-
# /*Background img*/
# const void * bg_image_src;
# const void * bg_image_symbol_font;
@@ -192,11 +186,24 @@ lv_draw_dsc_base = ct.structure(lv_draw_dsc_base, "lv_draw_dsc_base")
# lv_opa_t bg_image_opa;
# lv_opa_t bg_image_recolor_opa;
# uint8_t bg_image_tiled;
+# /*Background*/
+# lv_opa_t bg_opa;
+# /*Border*/
+# lv_opa_t border_opa;
+# /*Outline */
+# lv_opa_t outline_opa;
+# /*Shadow*/
+# lv_opa_t shadow_opa;
+
+# /*Background*/
+# lv_color_t bg_color; /**< First element of a gradient is a color, so it maps well here*/
+# lv_grad_dsc_t bg_grad;
+
+# const lv_image_colorkey_t * bg_image_colorkey;
# /*Border*/
# lv_color_t border_color;
# int32_t border_width;
-# lv_opa_t border_opa;
# lv_border_side_t border_side : 5;
# uint8_t border_post : 1; /*The border will be drawn later*/
@@ -204,7 +211,6 @@ lv_draw_dsc_base = ct.structure(lv_draw_dsc_base, "lv_draw_dsc_base")
# lv_color_t outline_color;
# int32_t outline_width;
# int32_t outline_pad;
-# lv_opa_t outline_opa;
# /*Shadow*/
# lv_color_t shadow_color;
@@ -212,18 +218,12 @@ lv_draw_dsc_base = ct.structure(lv_draw_dsc_base, "lv_draw_dsc_base")
# int32_t shadow_offset_x;
# int32_t shadow_offset_y;
# int32_t shadow_spread;
-# lv_opa_t shadow_opa;
# } lv_draw_rect_dsc_t;
-lv_draw_rect_dsc = [ # valid LVGL93
+lv_draw_rect_dsc = [ # valid LVGL94
[lv_draw_dsc_base, "base"],
[int32_t, "radius"],
- #/*Background*/
- [lv_opa, "bg_opa"],
- [lv_color, "bg_color"],
- [lv_grad_dsc, "bg_grad"],
-
#/*Background img*/
[ptr, "bg_img_src"],
[ptr, "bg_img_symbol_font"],
@@ -232,10 +232,20 @@ lv_draw_rect_dsc = [ # valid LVGL93
[lv_opa, "bg_img_recolor_opa"],
[uint8_t, "bg_img_tiled"],
+ #/*Background*/
+ [lv_opa, "bg_opa"],
+ [lv_opa, "border_opa"],
+ [lv_opa, "outline_opa"],
+ [lv_opa, "shadow_opa"],
+
+ [ptr, "bg_image_colorkey"],
+
+ [lv_color, "bg_color"],
+ [lv_grad_dsc, "bg_grad"],
+
#/*Border*/
[lv_color, "border_color"],
[int32_t, "border_width"],
- [lv_opa, "border_opa"],
[uint8_t_5, "border_side"],
[uint8_t_1, "border_post"],
@@ -243,7 +253,6 @@ lv_draw_rect_dsc = [ # valid LVGL93
[lv_color, "outline_color"],
[int32_t, "outline_width"],
[int32_t, "outline_pad"],
- [lv_opa, "outline_opa"],
#/*Shadow*/
[lv_color, "shadow_color"],
@@ -251,7 +260,6 @@ lv_draw_rect_dsc = [ # valid LVGL93
[int32_t, "shadow_ofs_x"],
[int32_t, "shadow_ofs_y"],
[int32_t, "shadow_spread"],
- [lv_opa, "shadow_opa"],
]
lv_draw_rect_dsc = ct.structure(lv_draw_rect_dsc, "lv_draw_rect_dsc")
@@ -289,7 +297,7 @@ lv_draw_rect_dsc = ct.structure(lv_draw_rect_dsc, "lv_draw_rect_dsc")
# /**1: Do not bother with line ending (if it's not visible for any reason) */
# uint8_t raw_end : 1;
# } lv_draw_line_dsc_t;
-lv_draw_line_dsc = [ # valid LVGL93
+lv_draw_line_dsc = [ # valid LVGL94
[lv_draw_dsc_base, "base"],
[lv_point_precise, "p1"],
@@ -324,12 +332,12 @@ lv_draw_line_dsc = ct.structure(lv_draw_line_dsc, "lv_draw_line_dsc")
# /**The center point of the arc. */
# lv_point_t center;
-# /**The outer radius of the arc*/
-# uint16_t radius;
-
# /**An image source to be used instead of `color`. `NULL` if unused*/
# const void * img_src;
+# /**The outer radius of the arc*/
+# uint16_t radius;
+
# /**Opacity of the arc in 0...255 range.
# * LV_OPA_TRANSP, LV_OPA_10, LV_OPA_20, .. LV_OPA_COVER can be used as well*/
# lv_opa_t opa;
@@ -337,7 +345,7 @@ lv_draw_line_dsc = ct.structure(lv_draw_line_dsc, "lv_draw_line_dsc")
# /**1: Make the arc ends rounded*/
# uint8_t rounded : 1;
# } lv_draw_arc_dsc_t;
-lv_draw_arc_dsc = [ # valid LVGL93
+lv_draw_arc_dsc = [ # valid LVGL94
[lv_draw_dsc_base, "base"],
[lv_color, "color"],
@@ -345,8 +353,8 @@ lv_draw_arc_dsc = [ # valid LVGL93
[lv_value_precise, "start_angle"],
[lv_value_precise, "end_angle"],
[lv_point, "center"],
- [uint16_t, "radius"],
[ptr, "img_src"],
+ [uint16_t, "radius"],
[lv_opa, "opa"],
[uint8_t_1, "rounded"],
]
@@ -363,7 +371,7 @@ lv_draw_arc_dsc = ct.structure(lv_draw_arc_dsc, "lv_draw_arc_dsc")
# uint32_t stride: 16; /**< Number of bytes in a row*/
# uint32_t reserved_2: 16; /**< Reserved to be used later*/
# } lv_image_header_t;
-lv_image_header = [ # valid LVGL93
+lv_image_header = [ # valid LVGL94
[uint8_t, "magic"],
[uint8_t, "cf"],
[uint16_t, "flags"],
@@ -422,7 +430,7 @@ lv_image_header = ct.structure(lv_image_header, "lv_image_header")
# */
# lv_blend_mode_t blend_mode : 4;
-# /**1: perform the transformation with anti-alaising */
+# /**1: perform the transformation with anti-aliasing */
# uint16_t antialias : 1;
# /**If the image is smaller than the `image_area` field of `lv_draw_image_dsc_t`
@@ -430,6 +438,8 @@ lv_image_header = ct.structure(lv_image_header, "lv_image_header")
# * `image_area` area*/
# uint16_t tile : 1;
+# const lv_image_colorkey_t * colorkey;
+
# /**Used internally to store some information about the palette or the color of A8 images*/
# lv_draw_image_sup_t * sup;
@@ -445,7 +455,7 @@ lv_image_header = ct.structure(lv_image_header, "lv_image_header")
# * The mask is always center aligned. */
# const lv_image_dsc_t * bitmap_mask_src;
# };
-lv_draw_image_dsc = [ # valid LVGL93
+lv_draw_image_dsc = [ # valid LVGL94
[lv_draw_dsc_base, "base"],
[ptr, "src"],
@@ -466,6 +476,7 @@ lv_draw_image_dsc = [ # valid LVGL93
[uint8_t_4, "blend_mode"],
[uint8_t_1, "antialias"],
[uint8_t_1, "tile"],
+ [ptr, "lv_image_colorkey_t"],
[ptr, "sup"],
[lv_area, "image_area"],
@@ -519,16 +530,19 @@ lv_draw_image_dsc = ct.structure(lv_draw_image_dsc, "lv_draw_image_dsc")
# /**The number of characters to render. 0: means render until reaching the `\0` termination.*/
# uint32_t text_length;
-# /**Opacity of the text in 0...255 range.
-# * LV_OPA_TRANSP, LV_OPA_10, LV_OPA_20, .. LV_OPA_COVER can be used as well*/
-# lv_opa_t opa;
-
# /**The alignment of the text `LV_TEXT_ALIGN_LEFT/RIGHT/CENTER`*/
# lv_text_align_t align;
# /**The base direction. Used when type setting Right-to-left (e.g. Arabic) texts*/
# lv_base_dir_t bidi_dir;
+# /**Opacity of the text in 0...255 range.
+# * LV_OPA_TRANSP, LV_OPA_10, LV_OPA_20, .. LV_OPA_COVER can be used as well*/
+# lv_opa_t opa;
+
+# /**Letter outline stroke opacity */
+# lv_opa_t outline_stroke_opa;
+
# /**Text decoration, e.g. underline*/
# lv_text_decor_t decor : 3;
@@ -550,12 +564,11 @@ lv_draw_image_dsc = ct.structure(lv_draw_image_dsc, "lv_draw_image_dsc")
# lv_draw_label_hint_t * hint;
# /* Properties of the letter outlines */
-# lv_opa_t outline_stroke_opa;
# lv_color_t outline_stroke_color;
# int32_t outline_stroke_width;
# } lv_draw_label_dsc_t;
-lv_draw_label_dsc = [ # valid LVGL93
+lv_draw_label_dsc = [ # valid LVGL94
[lv_draw_dsc_base, "base"],
[ptr, "text"],
[lv_point, "text_size"],
@@ -571,9 +584,10 @@ lv_draw_label_dsc = [ # valid LVGL93
[lv_color, "sel_color"],
[lv_color, "sel_bg_color"],
[uint32_t, "text_length"],
- [lv_opa, "opa"],
[lv_text_align, "align"],
[lv_base_dir, "bidi_dir"],
+ [lv_opa, "opa"],
+ [lv_opa, "outline_stroke_opa"],
[lv_text_flag, "flag"],
[uint8_t_3, "decor"],
[uint8_t_5, "flag"],
@@ -582,7 +596,6 @@ lv_draw_label_dsc = [ # valid LVGL93
[uint8_t_1, "text_static"],
[uint8_t_1, "has_bided"],
[ptr, "hint"],
- [lv_opa, "outline_stroke_opa"],
[lv_color, "outline_stroke_color"],
[int32_t, "outline_stroke_width"],
]
@@ -599,7 +612,7 @@ lv_draw_label_dsc = ct.structure(lv_draw_label_dsc, "lv_draw_label_dsc")
# uint32_t x_axis_sec : 1;
# uint32_t y_axis_sec : 1;
# };
-lv_chart_series = [ # valid LVGL93
+lv_chart_series = [ # valid LVGL94
[ptr, "x_points"],
[ptr, "y_points"],
[lv_color, "color"],
@@ -620,7 +633,7 @@ lv_chart_series = ct.structure(lv_chart_series, "lv_chart_series")
# lv_dir_t dir;
# uint32_t pos_set: 1; /**< 1: pos is set; 0: point_id is set */
# };
-lv_chart_cursor = [ # valid LVGL93
+lv_chart_cursor = [ # valid LVGL94
[lv_point, "pos"],
[int32_t, "point_id"],
[lv_color, "color"],
@@ -671,7 +684,7 @@ lv_event_code = ct.i32
# uint32_t instance_size : 16;
# uint32_t theme_inheritable : 1; /**< Value from ::lv_obj_class_theme_inheritable_t*/
# };
-lv_obj_class = [ # valid LVGL93
+lv_obj_class = [ # valid LVGL94
[lv_obj_class_ptr, "base_class"],
[constructor_cb, "constructor_cb"],
[destructor_cb, "destructor_cb"],
@@ -697,8 +710,9 @@ lv_obj_class = ct.structure(lv_obj_class, "lv_obj_class")
# uint8_t deleted : 1;
# uint8_t stop_processing : 1;
# uint8_t stop_bubbling : 1;
+# uint8_t stop_trickling : 1;
# };
-lv_event = [ # valid LVGL93
+lv_event = [ # valid LVGL94
[lv_obj_ptr, "current_target"],
[lv_obj_ptr, "original_target"],
[lv_event_code, "code"],
@@ -708,6 +722,7 @@ lv_event = [ # valid LVGL93
[uint8_t_1, "deleted"],
[uint8_t_1, "stop_processing"],
[uint8_t_1, "stop_bubbling"],
+ [uint8_t_1, "stop_trickling"],
]
lv_event = ct.structure(lv_event, "lv_event")
@@ -721,7 +736,7 @@ lv_event = ct.structure(lv_event, "lv_event")
# const void * reserved; /**< A reserved field to make it has same size as lv_draw_buf_t*/
# const void * reserved_2; /**< A reserved field to make it has same size as lv_draw_buf_t*/
# } lv_image_dsc_t;
-lv_image_dsc = [ # valid LVGL93
+lv_image_dsc = [ # valid LVGL94
[lv_image_header, "header"],
[uint32_t, "data_size"],
[ptr, "data"],
@@ -740,7 +755,7 @@ lv_image_dsc = ct.structure(lv_image_dsc, "lv_image_dsc")
# uint32_t time; /**< Duration of the transition in [ms]*/
# uint32_t delay; /**< Delay before the transition in [ms]*/
# } lv_style_transition_dsc_t;
-lv_style_transition_dsc = [ # valid LVGL93
+lv_style_transition_dsc = [ # valid LVGL94
[ptr, "props"],
[ptr, "user_data"],
[ptr, "path_xcb"],
@@ -749,17 +764,53 @@ lv_style_transition_dsc = [ # valid LVGL93
]
lv_style_transition_dsc = ct.structure(lv_style_transition_dsc, "lv_style_transition_dsc")
+#######################################################################
+# lv_anim_timeline
+
+# /*Data of anim_timeline*/
+# struct _lv_anim_timeline_t {
+# struct _lv_anim_timeline_dsc_t * anim_dsc;
+# uint32_t anim_dsc_cnt;
+# uint32_t act_time;
+# bool reverse;
+# uint32_t delay;
+# uint32_t repeat_count;
+# uint32_t repeat_delay;
+# void * user_data;
+# };
+lv_anim_timeline_dsc = [ # valid LVGL94
+ [ptr, "anim_dsc"],
+ [uint32_t, "anim_dsc_cnt"],
+ [uint32_t, "act_time"],
+ [bool, "reverse"],
+ [uint32_t, "delay"],
+ [uint32_t, "repeat_count"],
+ [uint32_t, "repeat_delay"],
+ [ptr, "user_data"],
+]
+lv_anim_timeline_dsc = ct.structure(lv_anim_timeline_dsc, "lv_anim_timeline_dsc")
# struct _lv_layer_t {
-
-# /** Target draw buffer of the layer*/
+# /** Target draw buffer of the layer */
# lv_draw_buf_t * draw_buf;
+# /** Linked list of draw tasks */
+# lv_draw_task_t * draw_task_head;
+
+# /** Parent layer */
+# lv_layer_t * parent;
+
+# /** Next layer */
+# lv_layer_t * next;
+
+# /** User data */
+# void * user_data;
+
# /** The absolute coordinates of the buffer */
# lv_area_t buf_area;
-# /** The color format of the layer. LV_COLOR_FORMAT_... */
-# lv_color_format_t color_format;
+# /** The physical clipping area relative to the display */
+# lv_area_t phy_clip_area;
# /**
# * NEVER USE IT DRAW UNITS. USED INTERNALLY DURING DRAW TASK CREATION.
@@ -771,47 +822,43 @@ lv_style_transition_dsc = ct.structure(lv_style_transition_dsc, "lv_style_transi
# */
# lv_area_t _clip_area;
-# /**
-# * The physical clipping area relative to the display.
-# */
-# lv_area_t phy_clip_area;
-
# #if LV_DRAW_TRANSFORM_USE_MATRIX
# /** Transform matrix to be applied when rendering the layer */
# lv_matrix_t matrix;
# #endif
-# /** Opacity of the layer */
-# lv_opa_t opa;
-
-# /*Recolor of the layer*/
-# lv_color32_t recolor;
-
# /** Partial y offset */
# int32_t partial_y_offset;
-# /** Linked list of draw tasks */
-# lv_draw_task_t * draw_task_head;
+# /** Recolor of the layer */
+# lv_color32_t recolor;
-# lv_layer_t * parent;
-# lv_layer_t * next;
+# /** The color format of the layer. LV_COLOR_FORMAT_... */
+# lv_color_format_t color_format;
+
+# /** Flag indicating all tasks are added */
# bool all_tasks_added;
-# void * user_data;
+
+# /** Opacity of the layer */
+# lv_opa_t opa;
# };
-lv_layer = [ # valid LVGL93
+lv_layer = [ # valid LVGL94
[ptr, "draw_buf"],
- [lv_area, "buf_area"],
- [uint32_t, "color_format"],
- [lv_area, "_clip_area"],
- [lv_area, "phy_clip_area"],
- [lv_opa, "opa"],
- [lv_color32, "recolor"],
- [int32_t, "partial_y_offset"],
+
[ptr, "draw_task_head"],
[ptr, "parent"],
[ptr, "next"],
- [bool, "all_tasks_added"],
[ptr, "user_data"],
+
+ [lv_area, "buf_area"],
+ [lv_area, "phy_clip_area"],
+ [lv_area, "_clip_area"],
+
+ [int32_t, "partial_y_offset"],
+ [lv_color32, "recolor"],
+ [uint32_t, "color_format"],
+ [bool, "all_tasks_added"],
+ [lv_opa, "opa"],
]
lv_layer = ct.structure(lv_layer, "lv_layer")
@@ -822,7 +869,7 @@ lv_layer = ct.structure(lv_layer, "lv_layer")
# lv_color_filter_cb_t filter_cb;
# void * user_data;
# };
-lv_color_filter_dsc = [ # valid LVGL93
+lv_color_filter_dsc = [ # valid LVGL94
[ptr, "filter_cb"],
[ptr, "user_data"],
]
@@ -837,16 +884,16 @@ lv_color_filter_dsc = ct.structure(lv_color_filter_dsc, "lv_color_filter_dsc")
# lv_timer_cb_t timer_cb; /**< Timer function */
# void * user_data; /**< Custom user data */
# int32_t repeat_count; /**< 1: One time; -1 : infinity; n>0: residual times */
-# uint32_t paused : 1;
+# volatile int paused;
# uint32_t auto_delete : 1;
# };
-lv_timer_ntv = [ # valid LVGL93
+lv_timer_ntv = [ # valid LVGL94
[uint32_t, "period"],
[uint32_t, "last_run"],
[ptr, "timer_cb"],
[ptr, "user_data"],
[int32_t, "repeat_count"],
- [uint8_t_1, "paused"],
+ [int32_t, "paused"],
[uint8_t_1, "auto_delete"],
]
lv_timer_ntv = ct.structure(lv_timer_ntv, "lv_timer_ntv")
@@ -859,7 +906,7 @@ lv_timer_ntv = ct.structure(lv_timer_ntv, "lv_timer_ntv")
# void * user_data;
# uint32_t filter;
# };
-lv_event_dsc = [ # valid LVGL93
+lv_event_dsc = [ # valid LVGL94
[ptr, "cb"],
[ptr, "user_data"],
[uint32_t, "filter"],
@@ -869,7 +916,7 @@ lv_event_dsc = ct.structure(lv_event_dsc, "lv_event_dsc")
#######################################################################
# Special structure used to calibrate resistive touchscreens
#######################################################################
-lv_ts_calibration = [ # valid LVGL93
+lv_ts_calibration = [ # valid LVGL94
[lv_coord_t, "raw_x"],
[lv_coord_t, "raw_y"],
[lv_coord_t, "x"],
@@ -887,7 +934,7 @@ lv_ts_calibration = ct.structure(lv_ts_calibration, "lv_ts_calibration")
# lv_area_t middle;
# lv_area_t trailing;
# } lv_span_coords_t;
-lv_span_coords = [
+lv_span_coords = [ # valid LVGL94
[lv_area, "heading"],
[lv_area, "middle"],
[lv_area, "trailing"],
@@ -906,7 +953,7 @@ lv_span_coords = ct.structure(lv_span_coords, "lv_span_coords")
# uint32_t style; /**< Font style, see `lv_freetype_font_style_t`*/
# lv_font_kerning_t kerning; /**< Font kerning, see `lv_font_kerning_t`*/
# };
-lv_font_info = [ # valid LVGL92
+lv_font_info = [ # valid LVGL94
[ptr, "name"],
[ptr, "class_p"],
[uint32_t, "size"],
@@ -936,7 +983,7 @@ lv_font_info = ct.structure(lv_font_info, "lv_font_info")
# lv_opa_t opa;
# lv_text_decor_t decor : 3;
-# lv_blend_mode_t blend_mode : 3;
+# lv_blend_mode_t blend_mode : 4;
# /* Properties of the letter outlines */
# lv_opa_t outline_stroke_opa;
@@ -957,7 +1004,7 @@ lv_draw_letter_dsc = [ # valid LVGL93
[lv_point, "pivot"],
[lv_opa, "opa"],
[uint8_t_3, "decor"],
- [uint8_t_3, "blend_mode"],
+ [uint8_t_4, "blend_mode"],
[lv_opa, "outline_stroke_opa"],
[int32_t, "outline_stroke_width"],
[lv_color, "outline_stroke_color"],
diff --git a/lib/libesp32_lvgl/lv_binding_berry/tools/convert.py b/lib/libesp32_lvgl/lv_binding_berry/tools/convert.py
index 639a42c84..a4e92b6ed 100644
--- a/lib/libesp32_lvgl/lv_binding_berry/tools/convert.py
+++ b/lib/libesp32_lvgl/lv_binding_berry/tools/convert.py
@@ -279,6 +279,7 @@ class type_mapper_class:
"lv_anim_deleted_cb_t",
"lv_timer_handler_resume_cb_t",
"lv_theme_apply_cb_t",
+ "lv_screen_create_cb_t", # new in 9.4.0
"lv_color32_t *",
"lv_color16_t *",
"lv_color_filter_cb_t",
@@ -465,11 +466,16 @@ class type_mapper_class:
"void * []": "c", # treat as a simple pointer, decoding needs to be done at Berry level
"constchar * *": "c",
# new in 9.3.0
- "lv_text_cmd_state_t *": "c",
+ # "lv_text_cmd_state_t *": "c", # not used anymore in 9.4.0
"lv_font_info_t *": "lv_font_info",
"lv_switch_orientation_t": "i",
"lv_slider_orientation_t": "i",
"lv_draw_letter_dsc_t *": "lv_draw_letter_dsc",
+ # new in 9.4.0
+ "lv_image_colorkey_t *": "c",
+ "lv_arclabel_dir_t": "i",
+ "lv_arclabel_text_align_t": "i",
+ "lv_anim_timeline_t *": "lv_anim_timeline_dsc",
# callbacks
"lv_group_focus_cb_t": "lv_group_focus_cb",
diff --git a/lib/libesp32_lvgl/lv_binding_berry/tools/preprocessor.py b/lib/libesp32_lvgl/lv_binding_berry/tools/preprocessor.py
index a1870147f..c69524803 100644
--- a/lib/libesp32_lvgl/lv_binding_berry/tools/preprocessor.py
+++ b/lib/libesp32_lvgl/lv_binding_berry/tools/preprocessor.py
@@ -57,6 +57,9 @@ class LVGLPreprocessor:
r"^lv_obj_get_property",
r"^lv_win_",
r"^lv_obj.*name", # we don't enable #if LV_USE_OBJ_NAME
+ r".*_bind_.*", # 9.4.0 remove observer methods
+ r".*_get_.*_by_name", # 9.4.0
+ r".*_translation_", # 9.4.0
]
# Enum exclusion patterns
@@ -65,6 +68,7 @@ class LVGLPreprocessor:
"LV_TASK_PRIO_", "LV_THEME_", "LV_LRU_", "LV_VECTOR_",
"LV_KEYBOARD_MODE_TEXT_ARABIC", "LV_DRAW_TASK_TYPE_3D",
"LV_DRAW_TASK_TYPE_VECTOR",
+ "LV_EVENT_TRANSLATION_"
}
def comment_remover(self, text: str) -> str:
diff --git a/lib/libesp32_lvgl/lv_haspmota/src/embedded/lv_1_constants.be b/lib/libesp32_lvgl/lv_haspmota/src/embedded/lv_1_constants.be
index c614cbb3f..885ef4ed7 100644
--- a/lib/libesp32_lvgl/lv_haspmota/src/embedded/lv_1_constants.be
+++ b/lib/libesp32_lvgl/lv_haspmota/src/embedded/lv_1_constants.be
@@ -1,5 +1,5 @@
# LVGL integer constants
-# LVGL version 9.3.0
+# LVGL version 9.4.0
lv.ALIGN_BOTTOM_LEFT = 4
lv.ALIGN_BOTTOM_MID = 5
@@ -28,6 +28,12 @@ lv.ANIM_OFF = 0
lv.ANIM_ON = 1
lv.ANIM_PLAYTIME_INFINITE = -1
lv.ANIM_REPEAT_INFINITE = -1
+lv.ARCLABEL_DIR_CLOCKWISE = 0
+lv.ARCLABEL_DIR_COUNTER_CLOCKWISE = 1
+lv.ARCLABEL_TEXT_ALIGN_CENTER = 2
+lv.ARCLABEL_TEXT_ALIGN_DEFAULT = 0
+lv.ARCLABEL_TEXT_ALIGN_LEADING = 1
+lv.ARCLABEL_TEXT_ALIGN_TRAILING = 3
lv.ARC_MODE_NORMAL = 0
lv.ARC_MODE_REVERSE = 2
lv.ARC_MODE_SYMMETRICAL = 1
@@ -102,7 +108,8 @@ lv.CHART_POINT_NONE = 2147483647
lv.CHART_TYPE_BAR = 2
lv.CHART_TYPE_LINE = 1
lv.CHART_TYPE_NONE = 0
-lv.CHART_TYPE_SCATTER = 3
+lv.CHART_TYPE_SCATTER = 4
+lv.CHART_TYPE_STACKED = 3
lv.CHART_UPDATE_MODE_CIRCULAR = 1
lv.CHART_UPDATE_MODE_SHIFT = 0
lv.COLOR_AQUA = 65535
@@ -220,10 +227,11 @@ lv.DISP_ROTATION_0 = 0
lv.DISP_ROTATION_180 = 2
lv.DISP_ROTATION_270 = 3
lv.DISP_ROTATION_90 = 1
-lv.DRAW_TASK_STATE_IN_PROGRESS = 2
-lv.DRAW_TASK_STATE_QUEUED = 1
-lv.DRAW_TASK_STATE_READY = 3
-lv.DRAW_TASK_STATE_WAITING = 0
+lv.DRAW_TASK_STATE_BLOCKED = 0
+lv.DRAW_TASK_STATE_FINISHED = 4
+lv.DRAW_TASK_STATE_IN_PROGRESS = 3
+lv.DRAW_TASK_STATE_QUEUED = 2
+lv.DRAW_TASK_STATE_WAITING = 1
lv.DRAW_TASK_TYPE_ARC = 9
lv.DRAW_TASK_TYPE_BORDER = 2
lv.DRAW_TASK_TYPE_BOX_SHADOW = 3
@@ -371,7 +379,6 @@ lv.IMAGEBUTTON_STATE_DISABLED = 2
lv.IMAGEBUTTON_STATE_NUM = 6
lv.IMAGEBUTTON_STATE_PRESSED = 1
lv.IMAGEBUTTON_STATE_RELEASED = 0
-lv.IMAGE_ALIGN_AUTO_TRANSFORM = 10
lv.IMAGE_ALIGN_BOTTOM_LEFT = 4
lv.IMAGE_ALIGN_BOTTOM_MID = 5
lv.IMAGE_ALIGN_BOTTOM_RIGHT = 6
@@ -473,7 +480,8 @@ lv.OBJ_FLAG_CHECKABLE = 8
lv.OBJ_FLAG_CLICKABLE = 2
lv.OBJ_FLAG_CLICK_FOCUSABLE = 4
lv.OBJ_FLAG_EVENT_BUBBLE = 16384
-lv.OBJ_FLAG_FLEX_IN_NEW_TRACK = 2097152
+lv.OBJ_FLAG_EVENT_TRICKLE = 2097152
+lv.OBJ_FLAG_FLEX_IN_NEW_TRACK = 8388608
lv.OBJ_FLAG_FLOATING = 262144
lv.OBJ_FLAG_GESTURE_BUBBLE = 32768
lv.OBJ_FLAG_HIDDEN = 1
@@ -493,6 +501,7 @@ lv.OBJ_FLAG_SCROLL_ON_FOCUS = 1024
lv.OBJ_FLAG_SCROLL_WITH_ARROW = 2048
lv.OBJ_FLAG_SEND_DRAW_TASK_EVENTS = 524288
lv.OBJ_FLAG_SNAPPABLE = 4096
+lv.OBJ_FLAG_STATE_TRICKLE = 4194304
lv.OBJ_FLAG_USER_1 = 134217728
lv.OBJ_FLAG_USER_2 = 268435456
lv.OBJ_FLAG_USER_3 = 536870912
@@ -573,6 +582,22 @@ lv.SCALE_MODE_VERTICAL_RIGHT = 4
lv.SCALE_NONE = 256
lv.SCALE_ROTATION_ANGLE_MASK = 524287
lv.SCALE_TOTAL_TICK_COUNT_DEFAULT = 11
+lv.SCREEN_LOAD_ANIM_FADE_IN = 9
+lv.SCREEN_LOAD_ANIM_FADE_ON = 9
+lv.SCREEN_LOAD_ANIM_FADE_OUT = 10
+lv.SCREEN_LOAD_ANIM_MOVE_BOTTOM = 8
+lv.SCREEN_LOAD_ANIM_MOVE_LEFT = 5
+lv.SCREEN_LOAD_ANIM_MOVE_RIGHT = 6
+lv.SCREEN_LOAD_ANIM_MOVE_TOP = 7
+lv.SCREEN_LOAD_ANIM_NONE = 0
+lv.SCREEN_LOAD_ANIM_OUT_BOTTOM = 14
+lv.SCREEN_LOAD_ANIM_OUT_LEFT = 11
+lv.SCREEN_LOAD_ANIM_OUT_RIGHT = 12
+lv.SCREEN_LOAD_ANIM_OUT_TOP = 13
+lv.SCREEN_LOAD_ANIM_OVER_BOTTOM = 4
+lv.SCREEN_LOAD_ANIM_OVER_LEFT = 1
+lv.SCREEN_LOAD_ANIM_OVER_RIGHT = 2
+lv.SCREEN_LOAD_ANIM_OVER_TOP = 3
lv.SCROLLBAR_MODE_ACTIVE = 2
lv.SCROLLBAR_MODE_AUTO = 3
lv.SCROLLBAR_MODE_OFF = 0
@@ -581,22 +606,6 @@ lv.SCROLL_SNAP_CENTER = 3
lv.SCROLL_SNAP_END = 2
lv.SCROLL_SNAP_NONE = 0
lv.SCROLL_SNAP_START = 1
-lv.SCR_LOAD_ANIM_FADE_IN = 9
-lv.SCR_LOAD_ANIM_FADE_ON = 9
-lv.SCR_LOAD_ANIM_FADE_OUT = 10
-lv.SCR_LOAD_ANIM_MOVE_BOTTOM = 8
-lv.SCR_LOAD_ANIM_MOVE_LEFT = 5
-lv.SCR_LOAD_ANIM_MOVE_RIGHT = 6
-lv.SCR_LOAD_ANIM_MOVE_TOP = 7
-lv.SCR_LOAD_ANIM_NONE = 0
-lv.SCR_LOAD_ANIM_OUT_BOTTOM = 14
-lv.SCR_LOAD_ANIM_OUT_LEFT = 11
-lv.SCR_LOAD_ANIM_OUT_RIGHT = 12
-lv.SCR_LOAD_ANIM_OUT_TOP = 13
-lv.SCR_LOAD_ANIM_OVER_BOTTOM = 4
-lv.SCR_LOAD_ANIM_OVER_LEFT = 1
-lv.SCR_LOAD_ANIM_OVER_RIGHT = 2
-lv.SCR_LOAD_ANIM_OVER_TOP = 3
lv.SIZE_CONTENT = 1073741823
lv.SLIDER_MODE_NORMAL = 0
lv.SLIDER_MODE_RANGE = 2
@@ -676,13 +685,14 @@ lv.STYLE_GRID_COLUMN_DSC_ARRAY = 130
lv.STYLE_GRID_ROW_ALIGN = 128
lv.STYLE_GRID_ROW_DSC_ARRAY = 129
lv.STYLE_HEIGHT = 2
+lv.STYLE_IMAGE_COLORKEY = 137
lv.STYLE_IMAGE_OPA = 68
lv.STYLE_IMAGE_RECOLOR = 69
lv.STYLE_IMAGE_RECOLOR_OPA = 70
lv.STYLE_IMG_OPA = 68
lv.STYLE_IMG_RECOLOR = 69
lv.STYLE_IMG_RECOLOR_OPA = 70
-lv.STYLE_LAST_BUILT_IN_PROP = 137
+lv.STYLE_LAST_BUILT_IN_PROP = 138
lv.STYLE_LAYOUT = 22
lv.STYLE_LENGTH = 3
lv.STYLE_LINE_COLOR = 76
@@ -699,7 +709,7 @@ lv.STYLE_MAX_HEIGHT = 7
lv.STYLE_MAX_WIDTH = 5
lv.STYLE_MIN_HEIGHT = 6
lv.STYLE_MIN_WIDTH = 4
-lv.STYLE_NUM_BUILT_IN_PROPS = 138
+lv.STYLE_NUM_BUILT_IN_PROPS = 139
lv.STYLE_OPA = 98
lv.STYLE_OPA_LAYERED = 99
lv.STYLE_OUTLINE_COLOR = 57
@@ -778,9 +788,6 @@ lv.TEXT_ALIGN_AUTO = 0
lv.TEXT_ALIGN_CENTER = 2
lv.TEXT_ALIGN_LEFT = 1
lv.TEXT_ALIGN_RIGHT = 3
-lv.TEXT_CMD_STATE_IN = 2
-lv.TEXT_CMD_STATE_PAR = 1
-lv.TEXT_CMD_STATE_WAIT = 0
lv.TEXT_DECOR_NONE = 0
lv.TEXT_DECOR_STRIKETHROUGH = 2
lv.TEXT_DECOR_UNDERLINE = 1
diff --git a/lib/libesp32_lvgl/lv_haspmota/src/embedded/lv_haspmota.be b/lib/libesp32_lvgl/lv_haspmota/src/embedded/lv_haspmota.be
index 10167ce54..278161735 100644
--- a/lib/libesp32_lvgl/lv_haspmota/src/embedded/lv_haspmota.be
+++ b/lib/libesp32_lvgl/lv_haspmota/src/embedded/lv_haspmota.be
@@ -2698,7 +2698,7 @@ end
# Encapsulates a `lv_screen` which is `lv.obj(0)` object
#################################################################################
#
-# ex of transition: lv.scr_load_anim(scr, lv.SCR_LOAD_ANIM_MOVE_RIGHT, 500, 0, false)
+# ex of transition: lv.scr_load_anim(scr, lv.SCREEN_LOAD_ANIM_MOVE_RIGHT, 500, 0, false)
#@ solidify:lvh_page,weak
class lvh_page
var _obj_id # (map) of `lvh_obj` objects by id numbers
@@ -2867,11 +2867,11 @@ class lvh_page
# show this page, with animation
#====================================================================
static show_anim = {
- 1: lv.SCR_LOAD_ANIM_MOVE_LEFT,
- -1: lv.SCR_LOAD_ANIM_MOVE_RIGHT,
- -2: lv.SCR_LOAD_ANIM_MOVE_TOP,
- 2: lv.SCR_LOAD_ANIM_MOVE_BOTTOM,
- 0: lv.SCR_LOAD_ANIM_NONE,
+ 1: lv.SCREEN_LOAD_ANIM_MOVE_LEFT,
+ -1: lv.SCREEN_LOAD_ANIM_MOVE_RIGHT,
+ -2: lv.SCREEN_LOAD_ANIM_MOVE_TOP,
+ 2: lv.SCREEN_LOAD_ANIM_MOVE_BOTTOM,
+ 0: lv.SCREEN_LOAD_ANIM_NONE,
}
def show(anim, duration)
# ignore if the page does not contain a screen, like when id==0
@@ -2901,7 +2901,7 @@ class lvh_page
if (anim == 0)
lv.screen_load(self._lv_scr)
else # animation
- var anim_lvgl = self.show_anim.find(anim, lv.SCR_LOAD_ANIM_NONE)
+ var anim_lvgl = self.show_anim.find(anim, lv.SCREEN_LOAD_ANIM_NONE)
# load new screen with animation, no delay, 500ms transition time, no auto-delete
lv.screen_load_anim(self._lv_scr, anim_lvgl, duration, 0, false)
end
diff --git a/lib/libesp32_lvgl/lv_haspmota/src/solidify/solidified_lv_haspmota.h b/lib/libesp32_lvgl/lv_haspmota/src/solidify/solidified_lv_haspmota.h
index 6058b6542..11dd9a73a 100644
--- a/lib/libesp32_lvgl/lv_haspmota/src/solidify/solidified_lv_haspmota.h
+++ b/lib/libesp32_lvgl/lv_haspmota/src/solidify/solidified_lv_haspmota.h
@@ -12000,7 +12000,7 @@ static const bvalue be_ktab_class_lvh_page[45] = {
/* K39 */ be_nested_str_weak(_X7B_X22hasp_X22_X3A_X7B_X22p_X25i_X22_X3A_X22in_X22_X7D_X7D),
/* K40 */ be_nested_str_weak(screen_load),
/* K41 */ be_nested_str_weak(show_anim),
- /* K42 */ be_nested_str_weak(SCR_LOAD_ANIM_NONE),
+ /* K42 */ be_nested_str_weak(SCREEN_LOAD_ANIM_NONE),
/* K43 */ be_nested_str_weak(screen_load_anim),
/* K44 */ be_nested_str_weak(_remove_page),
};
diff --git a/lib/libesp32_lvgl/lvgl/README.md b/lib/libesp32_lvgl/lvgl/README.md
index cc3c1a903..e02ca5f4b 100644
--- a/lib/libesp32_lvgl/lvgl/README.md
+++ b/lib/libesp32_lvgl/lvgl/README.md
@@ -1,8 +1,5 @@
-
-
-
- English | 中文 | Português do Brasil | 日本語
+ English | 中文 | Português do Brasil | 日本語 | עברית
@@ -11,87 +8,85 @@
- Light and Versatile Graphics Library
-
+Light and Versatile Graphics Library
+
+
+
-
+
+
+
-Website |
-Docs |
-Forum |
-Demos |
+ Website |
+ LVGL Pro Editor |
+ Docs |
+ Forum |
+ Demos |
Services
-
-## :ledger: Overview
+
-**Mature and Well-known**
-LVGL is the most popular free and open source embedded graphics library to create beautiful UIs for any MCU, MPU and display type. It's supported by industry leading vendors and projects like Arm, STM32, NXP, Espressif, Nuvoton, Arduino, RT-Thread, Zephyr, NuttX, Adafruit and many more.
+### Table of Contents
+
+ Overview
+ Features
+ Platform Support
+ LVGL Pro Editor
+ Commercial Services
+ Integrating LVGL
+ Examples
+ Contributing
+
-**Feature Rich**
-It has all the features to create modern and beautiful GUIs: 30+ built-in widgets, a powerful style system, web inspired layout managers, and a typography system supporting many languages. To integrate LVGL into your platform, all you need is at least 32kB RAM and 128 kB Flash, a C compiler, a frame buffer, and at least an 1/10 screen sized buffer for rendering.
+
-**Services**
-Our team is ready to help you with graphics design, UI implementation and consulting services. Contact us if you need some support during the development of your next GUI project.
+## 📒 Overview
-## :rocket: Features
+**LVGL** is a free and open-source UI library that enables you to create graphical user interfaces
+for any MCUs and MPUs from any vendor on any platform.
+
+**Requirements**: LVGL has no external dependencies, which makes it easy to compile for any modern target,
+from small MCUs to multi-core Linux-based MPUs with 3D support. For a simple UI, you need only ~100kB RAM,
+~200–300kB flash, and a buffer size of 1/10 of the screen for rendering.
+
+**To get started**, pick a ready-to-use VSCode, Eclipse, or any other project and try out LVGL
+on your PC. The LVGL UI code is fully platform-independent, so you can use the same UI code
+on embedded targets too.
+
+**LVGL Pro** is a complete toolkit to help you build, test, share, and ship UIs faster.
+It comes with an XML Editor where you can quickly create and test reusable components,
+export C code, or load the XMLs at runtime. Learn more here.
+
+## 💡 Features
**Free and Portable**
- A fully portable C (C++ compatible) library with no external dependencies.
- - Can be compiled to any MCU or MPU, with any (RT)OS.
- - Supports monochrome, ePaper, OLED or TFT displays, or even monitors. [Displays](https://docs.lvgl.io/master/details/main-modules/display/index.html)
+ - Can be compiled for any MCU or MPU, with any (RT)OS. Make, CMake, and simple globbing are all supported.
+ - Supports monochrome, ePaper, OLED, or TFT displays, or even monitors. [Displays](https://docs.lvgl.io/master/details/main-modules/display/index.html)
- Distributed under the MIT license, so you can easily use it in commercial projects too.
- - Needs only 32kB RAM and 128 kB Flash, a frame buffer, and at least an 1/10 screen sized buffer for rendering.
- - OS, External memory and GPU are supported but not required.
+ - Needs only 32kB RAM and 128kB Flash, a frame buffer, and at least a 1/10 screen-sized buffer for rendering.
+ - OS, external memory, and GPU are supported but not required.
-**Widgets, Styles, Layouts and more**
- - 30+ built-in [Widgets](https://docs.lvgl.io/master/details/widgets/index.html): Button, Label, Slider, Chart, Keyboard, Meter, Arc, Table and many more.
- - Flexible [Style system](https://docs.lvgl.io/master/details/common-widget-features/styles/style.html) with ~100 style properties to customize any part of the widgets in any state.
- - [Flexbox](https://docs.lvgl.io/master/details/common-widget-features/layouts/flex.html) and [Grid](https://docs.lvgl.io/master/details/common-widget-features/layouts/grid.html)-like layouts engines to automatically size and position the widgets in a responsive way.
- - Texts are rendered with UTF-8 encoding supporting CJK, Thai, Hindi, Arabic, Persian writing systems.
- - Word wrapping, kerning, text scrolling, sub-pixel rendering, Pinyin-IME Chinese input, Emojis in texts.
- - Rendering engine supporting animations, anti-aliasing, opacity, smooth scrolling, shadows, image transformation, etc
+**Widgets, Styles, Layouts, and More**
+ - 30+ built-in [Widgets](https://docs.lvgl.io/master/details/widgets/index.html): Button, Label, Slider, Chart, Keyboard, Meter, Arc, Table, and many more.
+ - Flexible [Style system](https://docs.lvgl.io/master/details/common-widget-features/styles/index.html) with ~100 style properties to customize any part of the widgets in any state.
+ - [Flexbox](https://docs.lvgl.io/master/details/common-widget-features/layouts/flex.html) and [Grid](https://docs.lvgl.io/master/details/common-widget-features/layouts/grid.html)-like layout engines to automatically size and position the widgets responsively.
+ - Text is rendered with UTF-8 encoding, supporting CJK, Thai, Hindi, Arabic, and Persian writing systems.
+ - [Data bindings](https://docs.lvgl.io/master/details/auxiliary-modules/observer/index.html) to easily connect the UI with the application.
+ - Rendering engine supports animations, anti-aliasing, opacity, smooth scrolling, shadows, image transformation, etc.
+ - [Powerful 3D rendering engine](https://docs.lvgl.io/master/details/libs/gltf.html) to show [glTF models](https://sketchfab.com/) with OpenGL.
- Supports Mouse, Touchpad, Keypad, Keyboard, External buttons, Encoder [Input devices](https://docs.lvgl.io/master/details/main-modules/indev.html).
- [Multiple display](https://docs.lvgl.io/master/details/main-modules/display/overview.html#how-many-displays-can-lvgl-use) support.
-**Binding and Build Support**
- - [MicroPython Binding](https://blog.lvgl.io/2019-02-20/micropython-bindings) exposes LVGL API
- - [PikaScript Binding](https://blog.lvgl.io/2022-08-24/pikascript-and-lvgl) python on MCU lighter and easier.
- - No custom build system is used. You can build LVGL as you build the other files of your project.
- - Support for Make and [CMake](https://docs.lvgl.io/master/details/integration/building/cmake.html) is included out of the box.
- - [Develop on PC](https://docs.lvgl.io/master/details/integration/ide/pc-simulator.html) and use the same UI code on embedded hardware.
- - Convert the C UI code to HTML file with our [Emscripten port](https://github.com/lvgl/lv_web_emscripten).
+## 📦️ Platform Support
-**Docs, Tools, and Services**
- - Detailed [Documentation](https://docs.lvgl.io/) with [100+ simple examples](https://docs.lvgl.io/master/examples.html)
- - [Services](https://lvgl.io/services) such as User interface design, Implementation and Consulting to make UI development simpler and faster.
+LVGL has no external dependencies, so it can be easily compiled for any devices and it's also available in many package managers and RTOSes:
-## :heart: Sponsor
-
-If LVGL saved you a lot of time and money or you just had fun using it, consider [Supporting its Development](https://github.com/sponsors/lvgl).
-
-**How do we spend the donations?**
-Our goal is to provide financial compensation for people who do the most for LVGL. It means not only the maintainers but anyone who implements a great feature should get a payment from the accumulated money. We use the donations to cover our operational costs like servers and related services.
-
-**How to donate?**
-We use [GitHub Sponsors](https://github.com/sponsors/lvgl) where you can easily send one time or recurring donations. You can also see all of our expenses in a transparent way.
-
-**How to get paid for your contribution?**
-If someone implements or fixes an issue labeled as [Sponsored](https://github.com/lvgl/lvgl/labels/Sponsored) he or she will get a payment for that work. We estimate the required time, complexity and importance of the issue and set a price accordingly. To jump in just comment on a [Sponsored](https://github.com/lvgl/lvgl/labels/Sponsored) issue saying "Hi, I'd like to deal with it. This is how I'm planning to fix/implement it...". A work is considered ready when it's approved and merged by a maintainer. After that you can submit and expense at [opencollective.com](https://opencollective.com/lvgl) and you will receive the payment in a few days.
-
-**Organizations supporting LVGL**
-[](https://opencollective.com/lvgl)
-
-**Individuals supporting LVGL**
-[](https://opencollective.com/lvgl)
-
-## :package: Packages
-LVGL is available as:
- [Arduino library](https://docs.lvgl.io/master/details/integration/framework/arduino.html)
- [PlatformIO package](https://registry.platformio.org/libraries/lvgl/lvgl)
- [Zephyr library](https://docs.lvgl.io/master/details/integration/os/zephyr.html)
@@ -102,367 +97,287 @@ LVGL is available as:
- CMSIS-Pack
- [RIOT OS package](https://doc.riot-os.org/group__pkg__lvgl.html#details)
+## 🚀 LVGL Pro Editor
-## :robot: Examples
+LVGL Pro is a complete toolkit to build, test, share, and ship embedded UIs efficiently.
-See some examples of creating widgets, using layouts and applying styles. You will find C and MicroPython code, and links to try out or edit the examples in an online MicroPython editor.
+It consists of four tightly related tools:
-For more examples check out the [Examples](https://github.com/lvgl/lvgl/tree/master/examples) folder.
+1. **XML Editor**: The heart of LVGL Pro. A desktop app to build components and screens in XML, manage data bindings, translations, animations, tests, and more. Learn more about the [XML Format](https://docs.lvgl.io/master/details/xml/xml/index.html) and the [Editor](https://docs.lvgl.io/master/details/xml/editor/index.html).
+2. **Online Viewer**: Run the Editor in your browser, open GitHub projects, and share easily without setting up a developer environment. Visit [https://viewer.lvgl.io](https://viewer.lvgl.io).
+3. **CLI Tool**: Generate C code and run tests in CI/CD. See the details [here](https://docs.lvgl.io/master/details/xml/tools/cli.html).
+4. **Figma Plugin**: Sync and extract styles directly from Figma. See how it works [here](https://docs.lvgl.io/master/details/xml/tools/figma.html).
+Together, these tools let developers build UIs efficiently, test them reliably, and collaborate with team members and customers.
-### Hello world label
+Learn more at https://pro.lvgl.io
-
+## 🤝 Commercial Services
-
- C code
+LVGL LLC provides several types of commercial services to help you with UI development. With 15+ years of experience in the user interface and graphics industry, we can help bring your UI to the next level.
+
+- **Graphics design**: Our in-house graphic designers are experts in creating beautiful modern designs that fit your product and the capabilities of your hardware.
+- **UI implementation**: We can implement your UI based on the design you or we have created. You can be sure that we will make the most of your hardware and LVGL. If a feature or widget is missing from LVGL, don't worry, we will implement it for you.
+- **Consulting and Support**: We also offer consulting to help you avoid costly and time-consuming mistakes during UI development.
+- **Board certification**: For companies offering development boards or production-ready kits, we provide board certification to show how the board can run LVGL.
+
+Check out our [Demos](https://lvgl.io/demos) as references. For more information, take a look at the [Services page](https://lvgl.io/services).
+
+[Contact us](https://lvgl.io/#contact) and tell us how we can help.
+
+## 🧑💻 Integrating LVGL
+
+Integrating LVGL is very simple. Just drop it into any project and compile it as you would compile other files.
+To configure LVGL, copy `lv_conf_template.h` as `lv_conf.h`, enable the first `#if 0`, and adjust the configs as needed.
+(The default config is usually fine.) If available, LVGL can also be used with Kconfig.
+
+Once in the project, you can initialize LVGL and create display and input devices as follows:
```c
-/*Change the active screen's background color*/
-lv_obj_set_style_bg_color(lv_screen_active(), lv_color_hex(0x003a57), LV_PART_MAIN);
+#include "lvgl/lvgl.h" /*Define LV_LVGL_H_INCLUDE_SIMPLE to include as "lvgl.h"*/
-/*Create a white label, set its text and align it to the center*/
-lv_obj_t * label = lv_label_create(lv_screen_active());
-lv_label_set_text(label, "Hello world");
-lv_obj_set_style_text_color(label, lv_color_hex(0xffffff), LV_PART_MAIN);
-lv_obj_align(label, LV_ALIGN_CENTER, 0, 0);
-```
-
+#define TFT_HOR_RES 320
+#define TFT_VER_RES 240
-
- MicroPython code | Online Simulator
-
-```python
-# Change the active screen's background color
-scr = lv.screen_active()
-scr.set_style_bg_color(lv.color_hex(0x003a57), lv.PART.MAIN)
-
-# Create a white label, set its text and align it to the center
-label = lv.label(lv.screen_active())
-label.set_text("Hello world")
-label.set_style_text_color(lv.color_hex(0xffffff), lv.PART.MAIN)
-label.align(lv.ALIGN.CENTER, 0, 0)
-```
-
-
-
-### Button with Click Event
-
-
-
-
- C code
-
-```c
-lv_obj_t * button = lv_button_create(lv_screen_active()); /*Add a button to the current screen*/
-lv_obj_center(button); /*Set its position*/
-lv_obj_set_size(button, 100, 50); /*Set its size*/
-lv_obj_add_event_cb(button, button_event_cb, LV_EVENT_CLICKED, NULL); /*Assign a callback to the button*/
-
-lv_obj_t * label = lv_label_create(button); /*Add a label to the button*/
-lv_label_set_text(label, "Button"); /*Set the labels text*/
-lv_obj_center(label); /*Align the label to the center*/
-...
-
-void button_event_cb(lv_event_t * e)
+static uint32_t my_tick_cb(void)
{
- printf("Clicked\n");
+ return my_get_millisec();
+}
+
+static void my_flush_cb(lv_display_t * disp, const lv_area_t * area, uint8_t * px_map)
+{
+ /*Write px_map to the area->x1, area->x2, area->y1, area->y2 area of the
+ *frame buffer or external display controller. */
+}
+
+static void my_touch_read_cb(lv_indev_t * indev, lv_indev_data_t * data)
+{
+ if(my_touch_is_pressed()) {
+ data->point.x = touchpad_x;
+ data->point.y = touchpad_y;
+ data->state = LV_INDEV_STATE_PRESSED;
+ } else {
+ data->state = LV_INDEV_STATE_RELEASED;
+ }
+}
+
+void main(void)
+{
+ my_hardware_init();
+
+ /*Initialize LVGL*/
+ lv_init();
+
+ /*Set millisecond-based tick source for LVGL so that it can track time.*/
+ lv_tick_set_cb(my_tick_cb);
+
+ /*Create a display where screens and widgets can be added*/
+ lv_display_t * display = lv_display_create(TFT_HOR_RES, TFT_VER_RES);
+
+ /*Add rendering buffers to the screen.
+ *Here adding a smaller partial buffer assuming 16-bit (RGB565 color format)*/
+ static uint8_t buf[TFT_HOR_RES * TFT_VER_RES / 10 * 2]; /* x2 because of 16-bit color depth */
+ lv_display_set_buffers(display, buf, NULL, sizeof(buf), LV_DISPLAY_RENDER_MODE_PARTIAL);
+
+ /*Add a callback that can flush the content from `buf` when it has been rendered*/
+ lv_display_set_flush_cb(display, my_flush_cb);
+
+ /*Create an input device for touch handling*/
+ lv_indev_t * indev = lv_indev_create();
+ lv_indev_set_type(indev, LV_INDEV_TYPE_POINTER);
+ lv_indev_set_read_cb(indev, my_touch_read_cb);
+
+ /*The drivers are in place; now we can create the UI*/
+ lv_obj_t * label = lv_label_create(lv_screen_active());
+ lv_label_set_text(label, "Hello world");
+ lv_obj_center(label);
+
+ /*Execute the LVGL-related tasks in a loop*/
+ while(1) {
+ lv_timer_handler();
+ my_sleep_ms(5); /*Wait a little to let the system breathe*/
+ }
}
```
+
+## 🤖 Examples
+
+You can check out more than 100 examples at https://docs.lvgl.io/master/examples.html
+
+The Online Viewer also contains tutorials to easily learn XML: https://viewer.lvgl.io/
+
+
+### Hello World Button with an Event
+
+
+
+
+ C code
+
+ ```c
+static void button_clicked_cb(lv_event_t * e)
+{
+ printf("Clicked\n");
+}
+
+[...]
+
+ lv_obj_t * button = lv_button_create(lv_screen_active());
+ lv_obj_center(button);
+ lv_obj_add_event_cb(button, button_clicked_cb, LV_EVENT_CLICKED, NULL);
+
+ lv_obj_t * label = lv_label_create(button);
+ lv_label_set_text(label, "Hello from LVGL!");
+```
- MicroPython code | Online Simulator
+ In XML with LVGL Pro
-```python
-def button_event_cb(e):
- print("Clicked")
-
-# Create a Button and a Label
-button = lv.button(lv.screen_active())
-button.center()
-button.set_size(100, 50)
-button.add_event_cb(button_event_cb, lv.EVENT.CLICKED, None)
-
-label = lv.label(button)
-label.set_text("Button")
-label.center()
+```xml
+
+
+
+
+
+
+
+
```
-
-
-### Checkboxes with Layout
-
+
+
+### Styled Slider with Data-binding
+
+
C code
```c
+static void my_observer_cb(lv_observer_t * observer, lv_subject_t * subject)
+{
+ printf("Slider value: %d\n", lv_subject_get_int(subject));
+}
-lv_obj_set_flex_flow(lv_screen_active(), LV_FLEX_FLOW_COLUMN);
-lv_obj_set_flex_align(lv_screen_active(), LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_START, LV_FLEX_ALIGN_CENTER);
+[...]
-lv_obj_t * cb;
-cb = lv_checkbox_create(lv_screen_active());
-lv_checkbox_set_text(cb, "Apple");
-lv_obj_add_event_cb(cb, event_handler, LV_EVENT_ALL, NULL);
+static lv_subject_t subject_value;
+lv_subject_init_int(&subject_value, 35);
+lv_subject_add_observer(&subject_value, my_observer_cb, NULL);
-cb = lv_checkbox_create(lv_screen_active());
-lv_checkbox_set_text(cb, "Banana");
-lv_obj_add_state(cb, LV_STATE_CHECKED);
-lv_obj_add_event_cb(cb, event_handler, LV_EVENT_ALL, NULL);
+lv_style_t style_base;
+lv_style_init(&style_base);
+lv_style_set_bg_color(&style_base, lv_color_hex(0xff8800));
+lv_style_set_bg_opa(&style_base, 255);
+lv_style_set_radius(&style_base, 4);
-cb = lv_checkbox_create(lv_screen_active());
-lv_checkbox_set_text(cb, "Lemon");
-lv_obj_add_state(cb, LV_STATE_DISABLED);
-lv_obj_add_event_cb(cb, event_handler, LV_EVENT_ALL, NULL);
-
-cb = lv_checkbox_create(lv_screen_active());
-lv_obj_add_state(cb, LV_STATE_CHECKED | LV_STATE_DISABLED);
-lv_checkbox_set_text(cb, "Melon\nand a new line");
-lv_obj_add_event_cb(cb, event_handler, LV_EVENT_ALL, NULL);
-```
-
-
-
-
- MicroPython code | Online Simulator
-
-```python
-def event_handler(e):
- code = e.get_code()
- obj = e.get_target_obj()
- if code == lv.EVENT.VALUE_CHANGED:
- txt = obj.get_text()
- if obj.get_state() & lv.STATE.CHECKED:
- state = "Checked"
- else:
- state = "Unchecked"
- print(txt + ":" + state)
-
-
-lv.screen_active().set_flex_flow(lv.FLEX_FLOW.COLUMN)
-lv.screen_active().set_flex_align(lv.FLEX_ALIGN.CENTER, lv.FLEX_ALIGN.START, lv.FLEX_ALIGN.CENTER)
-
-cb = lv.checkbox(lv.screen_active())
-cb.set_text("Apple")
-cb.add_event_cb(event_handler, lv.EVENT.ALL, None)
-
-cb = lv.checkbox(lv.screen_active())
-cb.set_text("Banana")
-cb.add_state(lv.STATE.CHECKED)
-cb.add_event_cb(event_handler, lv.EVENT.ALL, None)
-
-cb = lv.checkbox(lv.screen_active())
-cb.set_text("Lemon")
-cb.add_state(lv.STATE.DISABLED)
-cb.add_event_cb(event_handler, lv.EVENT.ALL, None)
-
-cb = lv.checkbox(lv.screen_active())
-cb.add_state(lv.STATE.CHECKED | lv.STATE.DISABLED)
-cb.set_text("Melon")
-cb.add_event_cb(event_handler, lv.EVENT.ALL, None)
-```
-
-
-
-
-### Styling a Slider
-
-
-
-
- C code
-
-```c
lv_obj_t * slider = lv_slider_create(lv_screen_active());
-lv_slider_set_value(slider, 70, LV_ANIM_OFF);
-lv_obj_set_size(slider, 300, 20);
lv_obj_center(slider);
+lv_obj_set_size(slider, lv_pct(80), 16);
+lv_obj_add_style(slider, &style_base, LV_PART_INDICATOR);
+lv_obj_add_style(slider, &style_base, LV_PART_KNOB);
+lv_obj_add_style(slider, &style_base, 0);
+lv_obj_set_style_bg_opa(slider, LV_OPA_50, 0);
+lv_obj_set_style_border_width(slider, 3, LV_PART_KNOB);
+lv_obj_set_style_border_color(slider, lv_color_hex3(0xfff), LV_PART_KNOB);
+lv_slider_bind_value(slider, &subject_value);
-/*Add local styles to MAIN part (background rectangle)*/
-lv_obj_set_style_bg_color(slider, lv_color_hex(0x0F1215), LV_PART_MAIN);
-lv_obj_set_style_bg_opa(slider, 255, LV_PART_MAIN);
-lv_obj_set_style_border_color(slider, lv_color_hex(0x333943), LV_PART_MAIN);
-lv_obj_set_style_border_width(slider, 5, LV_PART_MAIN);
-lv_obj_set_style_pad_all(slider, 5, LV_PART_MAIN);
-
-/*Create a reusable style sheet for the INDICATOR part*/
-static lv_style_t style_indicator;
-lv_style_init(&style_indicator);
-lv_style_set_bg_color(&style_indicator, lv_color_hex(0x37B9F5));
-lv_style_set_bg_grad_color(&style_indicator, lv_color_hex(0x1464F0));
-lv_style_set_bg_grad_dir(&style_indicator, LV_GRAD_DIR_HOR);
-lv_style_set_shadow_color(&style_indicator, lv_color_hex(0x37B9F5));
-lv_style_set_shadow_width(&style_indicator, 15);
-lv_style_set_shadow_spread(&style_indicator, 5);
-4
-/*Add the style sheet to the slider's INDICATOR part*/
-lv_obj_add_style(slider, &style_indicator, LV_PART_INDICATOR);
-
-/*Add the same style to the KNOB part too and locally overwrite some properties*/
-lv_obj_add_style(slider, &style_indicator, LV_PART_KNOB);
-
-lv_obj_set_style_outline_color(slider, lv_color_hex(0x0096FF), LV_PART_KNOB);
-lv_obj_set_style_outline_width(slider, 3, LV_PART_KNOB);
-lv_obj_set_style_outline_pad(slider, -5, LV_PART_KNOB);
-lv_obj_set_style_shadow_spread(slider, 2, LV_PART_KNOB);
+lv_obj_t * label = lv_label_create(lv_screen_active());
+lv_obj_align(label, LV_ALIGN_CENTER, 0, -30);
+lv_label_bind_text(label, &subject_value, "Temperature: %d °C");
```
- MicroPython code |
-Online Simulator
-
+ In XML with LVGL Pro
+```xml
+
+
+
+
+
-```python
-# Create a slider and add the style
-slider = lv.slider(lv.screen_active())
-slider.set_value(70, lv.ANIM.OFF)
-slider.set_size(300, 20)
-slider.center()
-
-# Add local styles to MAIN part (background rectangle)
-slider.set_style_bg_color(lv.color_hex(0x0F1215), lv.PART.MAIN)
-slider.set_style_bg_opa(255, lv.PART.MAIN)
-slider.set_style_border_color(lv.color_hex(0x333943), lv.PART.MAIN)
-slider.set_style_border_width(5, lv.PART.MAIN)
-slider.set_style_pad_all(5, lv.PART.MAIN)
-
-# Create a reusable style sheet for the INDICATOR part
-style_indicator = lv.style_t()
-style_indicator.init()
-style_indicator.set_bg_color(lv.color_hex(0x37B9F5))
-style_indicator.set_bg_grad_color(lv.color_hex(0x1464F0))
-style_indicator.set_bg_grad_dir(lv.GRAD_DIR.HOR)
-style_indicator.set_shadow_color(lv.color_hex(0x37B9F5))
-style_indicator.set_shadow_width(15)
-style_indicator.set_shadow_spread(5)
-
-# Add the style sheet to the slider's INDICATOR part
-slider.add_style(style_indicator, lv.PART.INDICATOR)
-slider.add_style(style_indicator, lv.PART.KNOB)
-
-# Add the same style to the KNOB part too and locally overwrite some properties
-slider.set_style_outline_color(lv.color_hex(0x0096FF), lv.PART.KNOB)
-slider.set_style_outline_width(3, lv.PART.KNOB)
-slider.set_style_outline_pad(-5, lv.PART.KNOB)
-slider.set_style_shadow_spread(2, lv.PART.KNOB)
+
+
+
+
+
+
+
+
+
+
```
+
-
-### English, Hebrew (mixed LTR-RTL) and Chinese texts
+### Checkboxes in a Layout
-
+
C code
-```c
-lv_obj_t * ltr_label = lv_label_create(lv_screen_active());
-lv_label_set_text(ltr_label, "In modern terminology, a microcontroller is similar to a system on a chip (SoC).");
-lv_obj_set_style_text_font(ltr_label, &lv_font_montserrat_16, 0);
-lv_obj_set_width(ltr_label, 310);
-lv_obj_align(ltr_label, LV_ALIGN_TOP_LEFT, 5, 5);
+ ```c
+/*Create a new screen and load it*/
+lv_obj_t * scr = lv_obj_create(NULL);
+lv_screen_load(scr);
-lv_obj_t * rtl_label = lv_label_create(lv_screen_active());
-lv_label_set_text(rtl_label,"מעבד, או בשמו המלא יחידת עיבוד מרכזית (באנגלית: CPU - Central Processing Unit).");
-lv_obj_set_style_base_dir(rtl_label, LV_BASE_DIR_RTL, 0);
-lv_obj_set_style_text_font(rtl_label, &lv_font_dejavu_16_persian_hebrew, 0);
-lv_obj_set_width(rtl_label, 310);
-lv_obj_align(rtl_label, LV_ALIGN_LEFT_MID, 5, 0);
+/*Set a column layout*/
+lv_obj_set_flex_flow(scr, LV_FLEX_FLOW_COLUMN);
+lv_obj_set_flex_align(scr, LV_FLEX_ALIGN_SPACE_EVENLY, /*Vertical alignment*/
+ LV_FLEX_ALIGN_START, /*Horizontal alignment in the track*/
+ LV_FLEX_ALIGN_CENTER); /*Horizontal alignment of the track*/
-lv_obj_t * cz_label = lv_label_create(lv_screen_active());
-lv_label_set_text(cz_label,
- "嵌入式系统(Embedded System),\n是一种嵌入机械或电气系统内部、具有专一功能和实时计算性能的计算机系统。");
-lv_obj_set_style_text_font(cz_label, &lv_font_source_han_sans_sc_16_cjk, 0);
-lv_obj_set_width(cz_label, 310);
-lv_obj_align(cz_label, LV_ALIGN_BOTTOM_LEFT, 5, -5);
+/*Create 5 checkboxes*/
+const char * texts[5] = {"Input 1", "Input 2", "Input 3", "Output 1", "Output 2"};
+for(int i = 0; i < 5; i++) {
+ lv_obj_t * cb = lv_checkbox_create(scr);
+ lv_checkbox_set_text(cb, texts[i]);
+}
+
+/*Change some states*/
+lv_obj_add_state(lv_obj_get_child(scr, 1), LV_STATE_CHECKED);
+lv_obj_add_state(lv_obj_get_child(scr, 3), LV_STATE_DISABLED);
```
- MicroPython code | Online Simulator
-
-```python
-ltr_label = lv.label(lv.screen_active())
-ltr_label.set_text("In modern terminology, a microcontroller is similar to a system on a chip (SoC).")
-ltr_label.set_style_text_font(lv.font_montserrat_16, 0);
-
-ltr_label.set_width(310)
-ltr_label.align(lv.ALIGN.TOP_LEFT, 5, 5)
-
-rtl_label = lv.label(lv.screen_active())
-rtl_label.set_text("מעבד, או בשמו המלא יחידת עיבוד מרכזית (באנגלית: CPU - Central Processing Unit).")
-rtl_label.set_style_base_dir(lv.BASE_DIR.RTL, 0)
-rtl_label.set_style_text_font(lv.font_dejavu_16_persian_hebrew, 0)
-rtl_label.set_width(310)
-rtl_label.align(lv.ALIGN.LEFT_MID, 5, 0)
-
-font_hans_sans_16_cjk = lv.font_load("S:../../assets/font/lv_font_source_han_sans_sc_16_cjk.fnt")
-
-cz_label = lv.label(lv.screen_active())
-cz_label.set_style_text_font(font_hans_sans_16_cjk, 0)
-cz_label.set_text("嵌入式系统(Embedded System),\n是一种嵌入机械或电气系统内部、具有专一功能和实时计算性能的计算机系统。")
-cz_label.set_width(310)
-cz_label.align(lv.ALIGN.BOTTOM_LEFT, 5, -5)
+ In XML with LVGL Pro
+```xml
+
+
+
+
+
+
+
+
+
```
+
-## :arrow_forward: Get started
-This list will guide you to get started with LVGL step-by-step.
-**Get Familiar with LVGL**
+## 🌟 Contributing
- 1. Check the [Online demos](https://lvgl.io/demos) to see LVGL in action (3 minutes).
- 2. Read the [Introduction](https://docs.lvgl.io/master/intro/index.html) page of the documentation (5 minutes).
- 3. Get familiar with the basics on the [Quick overview](https://docs.lvgl.io/master/intro/getting_started.html#lvgl-basics) page (15 minutes).
+LVGL is an open project, and contributions are very welcome. There are many ways to contribute, from simply speaking about your project, writing examples, improving the documentation, fixing bugs, or even hosting your own project under the LVGL organization.
-**Start to Use LVGL**
+For a detailed description of contribution opportunities, visit the [Contributing](https://docs.lvgl.io/master/contributing/index.html)
+section of the documentation.
- 4. Set up a [Simulator](https://docs.lvgl.io/master/details/integration/ide/pc-simulator.html#simulator) (10 minutes).
- 5. Try out some [Examples](https://github.com/lvgl/lvgl/tree/master/examples).
- 6. Port LVGL to a board. See the [Porting](https://docs.lvgl.io/master/details/integration/adding-lvgl-to-your-project/index.html) guide or check out the ready-to-use [Projects](https://github.com/lvgl?q=lv_port_).
+More than 600 people have already left their fingerprint on LVGL. Be one of them! See you here! 🙂
-**Become a Pro**
+
- 7. Read the [Main-Modules](https://docs.lvgl.io/master/details/main-modules/index.html) page to get a better understanding of the library (2-3 hours)
- 8. Check the documentation of the [Widgets](https://docs.lvgl.io/master/details/widgets/index.html) to see their features and usage
-
-**Get Help and Help Others**
-
- 9. If you have questions go to the [Forum](http://forum.lvgl.io/)
- 10. Read the [Contributing](https://docs.lvgl.io/master/contributing/index.html) guide to see how you can help to improve LVGL (15 minutes)
-
-
-## :handshake: Services
-LVGL LLC was established to provide a solid background for LVGL library and to offer several type of services to help you in UI development. With 15+ years of experience in the user interface and graphics industry we can help you the bring your UI to the next level.
-
-- **Graphics design** Our in-house graphics designers are experts in creating beautiful modern designs which fit to your product and the resources of your hardware.
-- **UI implementation** We can also implement your UI based on the design you or we have created. You can be sure that we will make the most out of your hardware and LVGL. If a feature or widget is missing from LVGL, don't worry, we will implement it for you.
-- **Consulting and Support** We can support you with consulting as well to avoid pricey and time consuming mistakes during the UI development.
-- **Board certification** For companies who are offering development boards, or production ready kits we do board certification which shows how board can run LVGL.
-
-
-Check out our [Demos](https://lvgl.io/demos) as reference. For more information take look at the [Services page](https://lvgl.io/services).
-
-[Contact us](https://lvgl.io/#contact) and tell how we can help.
-
-
-## :star2: Contributing
-LVGL is an open project and contribution is very welcome. There are many ways to contribute from simply speaking about your project, through writing examples, improving the documentation, fixing bugs or even hosting your own project under the LVGL organization.
-
-For a detailed description of contribution opportunities visit the [Contributing](https://docs.lvgl.io/master/contributing/index.html) section of the documentation.
-
-More than 300 people already left their fingerprint in LVGL. Be one them! See you here! :slightly_smiling_face:
-
-
-
-
-
-... and many other.
+... and many more.
diff --git a/lib/libesp32_lvgl/lvgl/library.json b/lib/libesp32_lvgl/lvgl/library.json
index 3b386e5a0..26918c5bb 100644
--- a/lib/libesp32_lvgl/lvgl/library.json
+++ b/lib/libesp32_lvgl/lvgl/library.json
@@ -1,6 +1,6 @@
{
"name": "lvgl",
- "version": "9.3.0",
+ "version": "9.4.0",
"keywords": "graphics, gui, embedded, tft, lvgl",
"description": "Graphics library to create embedded GUI with easy-to-use graphical elements, beautiful visual effects and low memory footprint. It offers anti-aliasing, opacity, and animations using only one frame buffer.",
"repository": {
diff --git a/lib/libesp32_lvgl/lvgl/library.properties b/lib/libesp32_lvgl/lvgl/library.properties
index 911743009..f57b5fa61 100644
--- a/lib/libesp32_lvgl/lvgl/library.properties
+++ b/lib/libesp32_lvgl/lvgl/library.properties
@@ -1,5 +1,5 @@
name=lvgl
-version=9.3.0
+version=9.4.0
author=kisvegabor
maintainer=kisvegabor,embeddedt,pete-pjb
sentence=Full-featured Graphics Library for Embedded Systems
diff --git a/lib/libesp32_lvgl/lvgl/lv_conf_template.h b/lib/libesp32_lvgl/lvgl/lv_conf_template.h
index 9afdf2341..79d79ec5f 100644
--- a/lib/libesp32_lvgl/lvgl/lv_conf_template.h
+++ b/lib/libesp32_lvgl/lvgl/lv_conf_template.h
@@ -1,6 +1,6 @@
/**
* @file lv_conf.h
- * Configuration file for v9.3.0
+ * Configuration file for v9.4.0
*/
/*
@@ -250,30 +250,6 @@
#endif
#endif
-/** Use NXP's VG-Lite GPU on iMX RTxxx platforms. */
-#define LV_USE_DRAW_VGLITE 0
-
-#if LV_USE_DRAW_VGLITE
- /** Enable blit quality degradation workaround recommended for screen's dimension > 352 pixels. */
- #define LV_USE_VGLITE_BLIT_SPLIT 0
-
- #if LV_USE_OS
- /** Use additional draw thread for VG-Lite processing. */
- #define LV_USE_VGLITE_DRAW_THREAD 1
-
- #if LV_USE_VGLITE_DRAW_THREAD
- /** Enable VGLite draw async. Queue multiple tasks and flash them once to the GPU. */
- #define LV_USE_VGLITE_DRAW_ASYNC 1
- #endif
- #endif
-
- /** Enable VGLite asserts. */
- #define LV_USE_VGLITE_ASSERT 0
-
- /** Enable VGLite error checks. */
- #define LV_USE_VGLITE_CHECK_ERROR 0
-#endif
-
/** Use NXP's PXP on iMX RTxxx platforms. */
#define LV_USE_PXP 0
@@ -294,14 +270,20 @@
#endif
/** Use NXP's G2D on MPU platforms. */
-#define LV_USE_DRAW_G2D 0
+#define LV_USE_G2D 0
+
+#if LV_USE_G2D
+ /** Use G2D for drawing. **/
+ #define LV_USE_DRAW_G2D 1
+
+ /** Use G2D to rotate display. **/
+ #define LV_USE_ROTATE_G2D 0
-#if LV_USE_DRAW_G2D
/** Maximum number of buffers that can be stored for G2D draw unit.
* Includes the frame buffers and assets. */
#define LV_G2D_HASH_TABLE_SIZE 50
- #if LV_USE_OS
+ #if LV_USE_DRAW_G2D && LV_USE_OS
/** Use additional draw thread for G2D processing.*/
#define LV_USE_G2D_DRAW_THREAD 1
#endif
@@ -318,7 +300,6 @@
/** Use VG-Lite GPU. */
#define LV_USE_DRAW_VG_LITE 0
-
#if LV_USE_DRAW_VG_LITE
/** Enable VG-Lite custom external 'gpu_init()' function */
#define LV_VG_LITE_USE_GPU_INIT 0
@@ -340,11 +321,53 @@
/** VG-Lite stroke maximum cache number. */
#define LV_VG_LITE_STROKE_CACHE_CNT 32
+
+ /** Remove VLC_OP_CLOSE path instruction (Workaround for NXP) **/
+ #define LV_VG_LITE_DISABLE_VLC_OP_CLOSE 0
+
+ /** Disable linear gradient extension for some older versions of drivers. */
+ #define LV_VG_LITE_DISABLE_LINEAR_GRADIENT_EXT 0
+
+ /** Enable usage of the LVGL's built-in vg_lite driver */
+ #define LV_USE_VG_LITE_DRIVER 0
+ #if LV_USE_VG_LITE_DRIVER
+ /** Used to pick the correct GPU series folder valid options are gc255, gc355 and gc555*/
+ #define LV_VG_LITE_HAL_GPU_SERIES gc255
+
+ /** Used to pick the correct GPU revision header it depends on the vendor */
+ #define LV_VG_LITE_HAL_GPU_REVISION 0x40
+
+ /** Base memory address of the GPU IP it depends on SoC,
+ * default value is for NXP based devices */
+ #define LV_VG_LITE_HAL_GPU_BASE_ADDRESS 0x40240000
+ #endif /*LV_USE_VG_LITE_DRIVER*/
+
+ /** Use ThorVG (a software vector library) as VG-Lite driver to allow testing VGLite on PC
+ * Requires: LV_USE_THORVG_INTERNAL or LV_USE_THORVG_EXTERNAL */
+ #define LV_USE_VG_LITE_THORVG 0
+ #if LV_USE_VG_LITE_THORVG
+ /** Enable LVGL's blend mode support */
+ #define LV_VG_LITE_THORVG_LVGL_BLEND_SUPPORT 0
+
+ /** Enable YUV color format support */
+ #define LV_VG_LITE_THORVG_YUV_SUPPORT 0
+
+ /** Enable Linear gradient extension support */
+ #define LV_VG_LITE_THORVG_LINEAR_GRADIENT_EXT_SUPPORT 0
+
+ /** Enable alignment on 16 pixels */
+ #define LV_VG_LITE_THORVG_16PIXELS_ALIGN 1
+
+ /** Buffer address alignment */
+ #define LV_VG_LITE_THORVG_BUF_ADDR_ALIGN 64
+
+ /** Enable multi-thread render */
+ #define LV_VG_LITE_THORVG_THREAD_RENDER 0
+ #endif /*LV_USE_VG_LITE_THORVG*/
#endif
/** Accelerate blends, fills, etc. with STM32 DMA2D */
#define LV_USE_DRAW_DMA2D 0
-
#if LV_USE_DRAW_DMA2D
#define LV_DRAW_DMA2D_HAL_INCLUDE "stm32h7xx_hal.h"
@@ -354,8 +377,29 @@
#define LV_USE_DRAW_DMA2D_INTERRUPT 0
#endif
-/** Draw using cached OpenGLES textures */
+/** Draw using cached OpenGLES textures. Requires LV_USE_OPENGLES */
#define LV_USE_DRAW_OPENGLES 0
+#if LV_USE_DRAW_OPENGLES
+ #define LV_DRAW_OPENGLES_TEXTURE_CACHE_COUNT 64
+#endif
+
+/** Draw using espressif PPA accelerator */
+#define LV_USE_PPA 0
+#if LV_USE_PPA
+ #define LV_USE_PPA_IMG 0
+#endif
+
+/* Use EVE FT81X GPU. */
+#define LV_USE_DRAW_EVE 0
+#if LV_USE_DRAW_EVE
+ /* EVE_GEN value: 2, 3, or 4 */
+ #define LV_DRAW_EVE_EVE_GENERATION 4
+
+ /* The maximum number of bytes to buffer before a single SPI transmission.
+ * Set it to 0 to disable write buffering.
+ */
+ #define LV_DRAW_EVE_WRITE_BUFFER_SIZE 2048
+#endif
/*=======================
* FEATURE CONFIGURATION
@@ -497,30 +541,6 @@
/** Enable property name support. */
#define LV_USE_OBJ_PROPERTY_NAME 1
-/* Use VG-Lite Simulator.
- * - Requires: LV_USE_THORVG_INTERNAL or LV_USE_THORVG_EXTERNAL */
-#define LV_USE_VG_LITE_THORVG 0
-
-#if LV_USE_VG_LITE_THORVG
- /** Enable LVGL's blend mode support */
- #define LV_VG_LITE_THORVG_LVGL_BLEND_SUPPORT 0
-
- /** Enable YUV color format support */
- #define LV_VG_LITE_THORVG_YUV_SUPPORT 0
-
- /** Enable Linear gradient extension support */
- #define LV_VG_LITE_THORVG_LINEAR_GRADIENT_EXT_SUPPORT 0
-
- /** Enable alignment on 16 pixels */
- #define LV_VG_LITE_THORVG_16PIXELS_ALIGN 1
-
- /** Buffer address alignment */
- #define LV_VG_LITE_THORVG_BUF_ADDR_ALIGN 64
-
- /** Enable multi-thread render */
- #define LV_VG_LITE_THORVG_THREAD_RENDER 0
-#endif
-
/* Enable the multi-touch gesture recognition feature */
/* Gesture recognition requires the use of floats */
#define LV_USE_GESTURE_RECOGNITION 0
@@ -608,8 +628,6 @@
/* Demonstrate special features */
#define LV_FONT_MONTSERRAT_28_COMPRESSED 0 /**< bpp = 3 */
#define LV_FONT_DEJAVU_16_PERSIAN_HEBREW 0 /**< Hebrew, Arabic, Persian letters and all their forms */
-#define LV_FONT_SIMSUN_14_CJK 0 /**< 1000 most common CJK radicals */
-#define LV_FONT_SIMSUN_16_CJK 0 /**< 1000 most common CJK radicals */
#define LV_FONT_SOURCE_HAN_SANS_SC_14_CJK 0 /**< 1338 most common CJK radicals */
#define LV_FONT_SOURCE_HAN_SANS_SC_16_CJK 0 /**< 1338 most common CJK radicals */
@@ -699,6 +717,7 @@
* - lv_dropdown_t : Options set to "Option 1", "Option 2", "Option 3", else no values are set.
* - lv_roller_t : Options set to "Option 1", "Option 2", "Option 3", "Option 4", "Option 5", else no values are set.
* - lv_label_t : Text set to "Text", else empty string.
+ * - lv_arclabel_t : Text set to "Arced Text", else empty string.
* */
#define LV_WIDGETS_HAS_DEFAULT_VALUE 1
@@ -706,6 +725,8 @@
#define LV_USE_ARC 1
+#define LV_USE_ARCLABEL 1
+
#define LV_USE_BAR 1
#define LV_USE_BUTTON 1
@@ -796,7 +817,7 @@
/*==================
* THEMES
*==================*/
-/* Documentation for themes can be found here: https://docs.lvgl.io/master/details/common-widget-features/styles/style.html#themes . */
+/* Documentation for themes can be found here: https://docs.lvgl.io/master/details/common-widget-features/styles/styles.html#themes . */
/** A simple, impressive and very complete theme */
#define LV_USE_THEME_DEFAULT 1
@@ -905,6 +926,11 @@
#define LV_FS_UEFI_LETTER '\0' /**< Set an upper-case driver-identifier letter for this driver (e.g. 'A'). */
#endif
+#define LV_USE_FS_FROGFS 0
+#if LV_USE_FS_FROGFS
+ #define LV_FS_FROGFS_LETTER '\0'
+#endif
+
/** LODEPNG decoder library */
#define LV_USE_LODEPNG 0
@@ -929,6 +955,8 @@
#define LV_GIF_CACHE_DECODE_DATA 0
#endif
+/** GStreamer library */
+#define LV_USE_GSTREAMER 0
/** Decode bin images to RAM */
#define LV_BIN_DECODER_RAM_LOAD 0
@@ -958,20 +986,26 @@
#if LV_USE_TINY_TTF
/* Enable loading TTF data from files */
#define LV_TINY_TTF_FILE_SUPPORT 0
- #define LV_TINY_TTF_CACHE_GLYPH_CNT 256
+ #define LV_TINY_TTF_CACHE_GLYPH_CNT 128
+ #define LV_TINY_TTF_CACHE_KERNING_CNT 256
#endif
/** Rlottie library */
#define LV_USE_RLOTTIE 0
+/** Requires `LV_USE_3DTEXTURE = 1` */
+#define LV_USE_GLTF 0
+
/** Enable Vector Graphic APIs
- * - Requires `LV_USE_MATRIX = 1` */
+ * Requires `LV_USE_MATRIX = 1` */
#define LV_USE_VECTOR_GRAPHIC 0
-/** Enable ThorVG (vector graphics library) from the src/libs folder */
+/** Enable ThorVG (vector graphics library) from the src/libs folder.
+ * Requires LV_USE_VECTOR_GRAPHIC */
#define LV_USE_THORVG_INTERNAL 0
-/** Enable ThorVG by assuming that its installed and linked to the project */
+/** Enable ThorVG by assuming that its installed and linked to the project
+ * Requires LV_USE_VECTOR_GRAPHIC */
#define LV_USE_THORVG_EXTERNAL 0
/** Use lvgl built-in LZ4 lib */
@@ -1011,6 +1045,13 @@
#if LV_USE_SYSMON
/** Get the idle percentage. E.g. uint32_t my_get_idle(void); */
#define LV_SYSMON_GET_IDLE lv_os_get_idle_percent
+ /** 1: Enable usage of lv_os_get_proc_idle_percent.*/
+ #define LV_SYSMON_PROC_IDLE_AVAILABLE 0
+ #if LV_SYSMON_PROC_IDLE_AVAILABLE
+ /** Get the applications idle percentage.
+ * - Requires `LV_USE_OS == LV_OS_PTHREAD` */
+ #define LV_SYSMON_GET_PROC_IDLE lv_os_get_proc_idle_percent
+ #endif
/** 1: Show CPU usage and FPS count.
* - Requires `LV_USE_SYSMON = 1` */
@@ -1040,6 +1081,7 @@
/** Default profiler trace buffer size */
#define LV_PROFILER_BUILTIN_BUF_SIZE (16 * 1024) /**< [bytes] */
#define LV_PROFILER_BUILTIN_DEFAULT_ENABLE 1
+ #define LV_USE_PROFILER_BUILTIN_POSIX 0 /**< Enable POSIX profiler port */
#endif
/** Header to include for profiler */
@@ -1149,15 +1191,19 @@
#if LV_USE_TEST
/** Enable `lv_test_screenshot_compare`.
- * Requires libpng and a few MB of extra RAM. */
+ * Requires lodepng and a few MB of extra RAM. */
#define LV_USE_TEST_SCREENSHOT_COMPARE 0
#endif /*LV_USE_TEST*/
/** Enable loading XML UIs runtime */
#define LV_USE_XML 0
+/** 1: Enable text translation support */
+#define LV_USE_TRANSLATION 0
+
/*1: Enable color filter style*/
#define LV_USE_COLOR_FILTER 0
+
/*==================
* DEVICES
*==================*/
@@ -1193,7 +1239,6 @@
#define LV_WAYLAND_RENDER_MODE LV_DISPLAY_RENDER_MODE_PARTIAL /**< DMABUF supports LV_DISPLAY_RENDER_MODE_FULL and LV_DISPLAY_RENDER_MODE_DIRECT*/
/**< When LV_WAYLAND_USE_DMABUF is disabled, only LV_DISPLAY_RENDER_MODE_PARTIAL is supported*/
#define LV_WAYLAND_WINDOW_DECORATIONS 0 /**< Draw client side window decorations only necessary on Mutter/GNOME. Not supported using DMABUF*/
- #define LV_WAYLAND_WL_SHELL 0 /**< Use the legacy wl_shell protocol instead of the default XDG shell*/
#endif
/** Driver for /dev/fb */
@@ -1230,8 +1275,21 @@
/** Driver for /dev/input */
#define LV_USE_NUTTX_TOUCHSCREEN 0
- /*Touchscreen cursor size in pixels(<=0: disable cursor)*/
+ /** Touchscreen cursor size in pixels(<=0: disable cursor) */
#define LV_NUTTX_TOUCHSCREEN_CURSOR_SIZE 0
+
+ /** Driver for /dev/mouse */
+ #define LV_USE_NUTTX_MOUSE 0
+
+ /** Mouse movement step (pixels) */
+ #define LV_USE_NUTTX_MOUSE_MOVE_STEP 1
+
+ /*NuttX trace file and its path*/
+ #define LV_USE_NUTTX_TRACE_FILE 0
+ #if LV_USE_NUTTX_TRACE_FILE
+ #define LV_NUTTX_TRACE_FILE_PATH "/data/lvgl-trace.log"
+ #endif
+
#endif
/** Driver for /dev/dri/card */
@@ -1243,12 +1301,22 @@
* shared across sub-systems and libraries using the Linux DMA-BUF API.
* The GBM library aims to provide a platform independent memory management system
* it supports the major GPU vendors - This option requires linking with libgbm */
- #define LV_LINUX_DRM_GBM_BUFFERS 0
+ #define LV_USE_LINUX_DRM_GBM_BUFFERS 0
+
+ #define LV_LINUX_DRM_USE_EGL 0
#endif
/** Interface for TFT_eSPI */
#define LV_USE_TFT_ESPI 0
+/** Interface for Lovyan_GFX */
+#define LV_USE_LOVYAN_GFX 0
+
+#if LV_USE_LOVYAN_GFX
+ #define LV_LGFX_USER_INCLUDE "lv_lgfx_user.hpp"
+
+#endif /*LV_USE_LOVYAN_GFX*/
+
/** Driver for evdev input devices */
#define LV_USE_EVDEV 0
@@ -1272,8 +1340,9 @@
#define LV_USE_ST7796 0
#define LV_USE_ILI9341 0
#define LV_USE_FT81X 0
+#define LV_USE_NV3007 0
-#if (LV_USE_ST7735 | LV_USE_ST7789 | LV_USE_ST7796 | LV_USE_ILI9341)
+#if (LV_USE_ST7735 | LV_USE_ST7789 | LV_USE_ST7796 | LV_USE_ILI9341 | LV_USE_NV3007)
#define LV_USE_GENERIC_MIPI 1
#else
#define LV_USE_GENERIC_MIPI 0
@@ -1289,6 +1358,9 @@
#define LV_ST_LTDC_USE_DMA2D_FLUSH 0
#endif
+/** Driver for NXP ELCDIF */
+#define LV_USE_NXP_ELCDIF 0
+
/** LVGL Windows backend */
#define LV_USE_WINDOWS 0
@@ -1299,12 +1371,16 @@
#define LV_UEFI_USE_MEMORY_SERVICES 0 /**< Use the memory functions from the boot services table */
#endif
-/** Use OpenGL to open window on PC and handle mouse and keyboard */
+/** Use a generic OpenGL driver that can be used to embed in other applications or used with GLFW/EGL */
#define LV_USE_OPENGLES 0
#if LV_USE_OPENGLES
#define LV_USE_OPENGLES_DEBUG 1 /**< Enable or disable debug for opengles */
#endif
+/** Use GLFW to open window on PC and handle mouse and keyboard. Requires*/
+#define LV_USE_GLFW 0
+
+
/** QNX Screen display and input drivers */
#define LV_USE_QNX 0
#if LV_USE_QNX
@@ -1328,10 +1404,10 @@
#if LV_BUILD_DEMOS
/** Show some widgets. This might be required to increase `LV_MEM_SIZE`. */
#define LV_USE_DEMO_WIDGETS 0
-
+
/** Demonstrate usage of encoder and keyboard. */
#define LV_USE_DEMO_KEYPAD_AND_ENCODER 0
-
+
/** Benchmark your system */
#define LV_USE_DEMO_BENCHMARK 0
@@ -1343,10 +1419,10 @@
/** Render test for each primitive.
* - Requires at least 480x272 display. */
#define LV_USE_DEMO_RENDER 0
-
+
/** Stress test for LVGL */
#define LV_USE_DEMO_STRESS 0
-
+
/** Music player demo */
#define LV_USE_DEMO_MUSIC 0
#if LV_USE_DEMO_MUSIC
@@ -1356,38 +1432,41 @@
#define LV_DEMO_MUSIC_LARGE 0
#define LV_DEMO_MUSIC_AUTO_PLAY 0
#endif
-
+
/** Vector graphic demo */
#define LV_USE_DEMO_VECTOR_GRAPHIC 0
-
+
+ /** GLTF demo */
+ #define LV_USE_DEMO_GLTF 0
+
/*---------------------------
* Demos from lvgl/lv_demos
---------------------------*/
-
+
/** Flex layout demo */
#define LV_USE_DEMO_FLEX_LAYOUT 0
-
+
/** Smart-phone like multi-language demo */
#define LV_USE_DEMO_MULTILANG 0
-
+
/** Widget transformation demo */
#define LV_USE_DEMO_TRANSFORM 0
-
+
/** Demonstrate scroll settings */
#define LV_USE_DEMO_SCROLL 0
-
+
/*E-bike demo with Lottie animations (if LV_USE_LOTTIE is enabled)*/
#define LV_USE_DEMO_EBIKE 0
#if LV_USE_DEMO_EBIKE
#define LV_DEMO_EBIKE_PORTRAIT 0 /*0: for 480x270..480x320, 1: for 480x800..720x1280*/
#endif
-
+
/** High-resolution demo */
#define LV_USE_DEMO_HIGH_RES 0
-
+
/* Smart watch demo */
#define LV_USE_DEMO_SMARTWATCH 0
-#endif /* LV_BUILD_DEMOS */
+#endif /* LV_BUILD_DEMOS */
/*--END OF LV_CONF_H--*/
diff --git a/lib/libesp32_lvgl/lvgl/lv_version.h b/lib/libesp32_lvgl/lvgl/lv_version.h
index 8bbd5506e..eba90b1f6 100644
--- a/lib/libesp32_lvgl/lvgl/lv_version.h
+++ b/lib/libesp32_lvgl/lvgl/lv_version.h
@@ -3,12 +3,12 @@
* The current version of LVGL
*/
-#ifndef LVGL_VERSION_H
-#define LVGL_VERSION_H
+#ifndef LV_VERSION_H
+#define LV_VERSION_H
#define LVGL_VERSION_MAJOR 9
-#define LVGL_VERSION_MINOR 3
+#define LVGL_VERSION_MINOR 4
#define LVGL_VERSION_PATCH 0
#define LVGL_VERSION_INFO ""
-#endif /* LVGL_VERSION_H */
+#endif /* LV_VERSION_H */
diff --git a/lib/libesp32_lvgl/lvgl/lvgl.h b/lib/libesp32_lvgl/lvgl/lvgl.h
index 42f958539..41b1ec99b 100644
--- a/lib/libesp32_lvgl/lvgl/lvgl.h
+++ b/lib/libesp32_lvgl/lvgl/lvgl.h
@@ -36,7 +36,8 @@ extern "C" {
#include "src/misc/lv_iter.h"
#include "src/misc/lv_circle_buf.h"
#include "src/misc/lv_tree.h"
-#include "src/misc/cache/lv_cache.h"
+
+#include "src/osal/lv_os.h"
#include "src/tick/lv_tick.h"
@@ -53,6 +54,7 @@ extern "C" {
#include "src/widgets/animimage/lv_animimage.h"
#include "src/widgets/arc/lv_arc.h"
+#include "src/widgets/arclabel/lv_arclabel.h"
#include "src/widgets/bar/lv_bar.h"
#include "src/widgets/button/lv_button.h"
#include "src/widgets/buttonmatrix/lv_buttonmatrix.h"
@@ -95,8 +97,8 @@ extern "C" {
#include "src/others/ime/lv_ime_pinyin.h"
#include "src/others/file_explorer/lv_file_explorer.h"
#include "src/others/font_manager/lv_font_manager.h"
+#include "src/others/translation/lv_translation.h"
#include "src/others/xml/lv_xml.h"
-#include "src/others/xml/lv_xml_component.h"
#include "src/others/test/lv_test.h"
#include "src/libs/barcode/lv_barcode.h"
@@ -106,7 +108,10 @@ extern "C" {
#include "src/libs/fsdrv/lv_fsdrv.h"
#include "src/libs/lodepng/lv_lodepng.h"
#include "src/libs/libpng/lv_libpng.h"
+#include "src/libs/gltf/gltf_data/lv_gltf_model.h"
+#include "src/libs/gltf/gltf_view/lv_gltf.h"
#include "src/libs/gif/lv_gif.h"
+#include "src/libs/gstreamer/lv_gstreamer.h"
#include "src/libs/qrcode/lv_qrcode.h"
#include "src/libs/tjpgd/lv_tjpgd.h"
#include "src/libs/libjpeg_turbo/lv_libjpeg_turbo.h"
@@ -122,14 +127,21 @@ extern "C" {
#include "src/draw/lv_draw_buf.h"
#include "src/draw/lv_draw_vector.h"
#include "src/draw/sw/lv_draw_sw_utils.h"
+#include "src/draw/eve/lv_draw_eve_target.h"
#include "src/themes/lv_theme.h"
#include "src/drivers/lv_drivers.h"
-#include "src/lv_api_map_v8.h"
-#include "src/lv_api_map_v9_0.h"
-#include "src/lv_api_map_v9_1.h"
+/* Define LV_DISABLE_API_MAPPING using a compiler option
+ * to make sure your application is not using deprecated names */
+#ifndef LV_DISABLE_API_MAPPING
+ #include "src/lv_api_map_v8.h"
+ #include "src/lv_api_map_v9_0.h"
+ #include "src/lv_api_map_v9_1.h"
+ #include "src/lv_api_map_v9_2.h"
+ #include "src/lv_api_map_v9_3.h"
+#endif /*LV_DISABLE_API_MAPPING*/
#if LV_USE_PRIVATE_API
#include "src/lvgl_private.h"
diff --git a/lib/libesp32_lvgl/lvgl/lvgl_private.h b/lib/libesp32_lvgl/lvgl/lvgl_private.h
index 426a4ca41..9a4ee0f8d 100644
--- a/lib/libesp32_lvgl/lvgl/lvgl_private.h
+++ b/lib/libesp32_lvgl/lvgl/lvgl_private.h
@@ -18,6 +18,7 @@ extern "C" {
#include "src/display/lv_display_private.h"
#include "src/indev/lv_indev_private.h"
#include "src/misc/lv_text_private.h"
+#include "src/misc/cache/lv_cache.h"
#include "src/misc/cache/lv_cache_entry_private.h"
#include "src/misc/cache/lv_cache_private.h"
#include "src/layouts/lv_layout_private.h"
@@ -31,7 +32,6 @@ extern "C" {
#include "src/others/xml/lv_xml_private.h"
#include "src/libs/qrcode/lv_qrcode_private.h"
#include "src/libs/barcode/lv_barcode_private.h"
-#include "src/libs/gif/lv_gif_private.h"
#include "src/draw/lv_draw_triangle_private.h"
#include "src/draw/lv_draw_private.h"
#include "src/draw/lv_draw_rect_private.h"
diff --git a/lib/libesp32_lvgl/lvgl/src/core/lv_global.h b/lib/libesp32_lvgl/lvgl/src/core/lv_global.h
index 4515c01c9..da32f8ccc 100644
--- a/lib/libesp32_lvgl/lvgl/src/core/lv_global.h
+++ b/lib/libesp32_lvgl/lvgl/src/core/lv_global.h
@@ -27,7 +27,7 @@ extern "C" {
#include "../misc/lv_log.h"
#include "../misc/lv_style.h"
#include "../misc/lv_timer.h"
-#include "../osal/lv_os.h"
+#include "../osal/lv_os_private.h"
#include "../others/sysmon/lv_sysmon.h"
#include "../stdlib/builtin/lv_tlsf.h"
@@ -35,10 +35,6 @@ extern "C" {
#include "../font/lv_font_fmt_txt_private.h"
#endif
-#if LV_USE_OS != LV_OS_NONE && defined(__linux__)
-#include "../osal/lv_linux_private.h"
-#endif
-
#include "../tick/lv_tick.h"
#include "../layouts/lv_layout.h"
@@ -82,6 +78,14 @@ struct _lv_nuttx_ctx_t;
#endif
typedef struct _lv_global_t {
+ /**
+ * User data for the LVGL library. Move from the bottom of the struct
+ * to avoid breaking the ABI. E.g., if the user data is used by a
+ * closed-source library, this can help to avoid re-compiling the library
+ * when the lvgl-related configs are changed.
+ */
+ void * user_data;
+
bool inited;
bool deinit_in_progress; /**< Can be used e.g. in the LV_EVENT_DELETE to deinit the drivers too */
@@ -122,6 +126,10 @@ typedef struct _lv_global_t {
* can be managed by image cache. */
lv_ll_t img_decoder_ll;
+#if LV_USE_OS != LV_OS_NONE
+ lv_mutex_t img_decoder_info_lock;
+ lv_mutex_t img_decoder_open_lock;
+#endif
lv_cache_t * img_cache;
lv_cache_t * img_header_cache;
@@ -191,6 +199,10 @@ typedef struct _lv_global_t {
lv_fs_drv_t arduino_sd_fs_drv;
#endif
+#if LV_USE_FS_FROGFS
+ lv_fs_drv_t frogfs_fs_drv;
+#endif
+
#if LV_USE_FREETYPE
struct _lv_freetype_context_t * ft_context;
#endif
@@ -207,8 +219,10 @@ typedef struct _lv_global_t {
struct _lv_profiler_builtin_ctx_t * profiler_context;
#endif
-#if LV_USE_FILE_EXPLORER != 0
- lv_style_t fe_list_button_style;
+
+#if LV_USE_FILE_EXPLORER
+ lv_style_t file_explorer_quick_access_style;
+ size_t file_explorer_count;
#endif
#if LV_USE_MEM_MONITOR
@@ -228,14 +242,24 @@ typedef struct _lv_global_t {
lv_test_state_t test_state;
#endif
+#if LV_USE_TRANSLATION
+ lv_ll_t translation_packs_ll;
+ const char * translation_selected_lang;
+#endif
+
#if LV_USE_NUTTX
struct _lv_nuttx_ctx_t * nuttx_ctx;
#endif
#if LV_USE_OS != LV_OS_NONE
lv_mutex_t lv_general_mutex;
+#endif
+
#if defined(__linux__)
- lv_proc_stat_t linux_last_proc_stat;
+ lv_linux_proc_stat_t linux_last_proc_stat;
+#if LV_SYSMON_PROC_IDLE_AVAILABLE
+ uint64_t linux_last_self_proc_time_ticks;
+ lv_linux_proc_stat_t linux_last_system_total_ticks_stat;
#endif
#endif
@@ -250,7 +274,15 @@ typedef struct _lv_global_t {
lv_evdev_discovery_t * evdev_discovery;
#endif
- void * user_data;
+#if LV_USE_XML
+ const char * xml_path_prefix;
+ uint32_t lv_event_xml_store_timeline;
+ lv_ll_t xml_loads;
+#endif
+
+#if LV_USE_DRAW_EVE
+ lv_draw_eve_unit_t * draw_eve_unit;
+#endif
} lv_global_t;
/**********************
diff --git a/lib/libesp32_lvgl/lvgl/src/core/lv_obj.c b/lib/libesp32_lvgl/lvgl/src/core/lv_obj.c
index fa19d4a98..fa0c81f44 100644
--- a/lib/libesp32_lvgl/lvgl/src/core/lv_obj.c
+++ b/lib/libesp32_lvgl/lvgl/src/core/lv_obj.c
@@ -23,6 +23,7 @@
#include "../misc/lv_math.h"
#include "../misc/lv_log.h"
#include "../misc/lv_types.h"
+#include "../misc/lv_anim_timeline.h"
#include "../tick/lv_tick.h"
#include "../stdlib/lv_string.h"
#include "lv_obj_draw_private.h"
@@ -39,6 +40,22 @@
* TYPEDEFS
**********************/
+typedef struct {
+ lv_screen_load_anim_t anim_type;
+ uint32_t duration;
+ uint32_t delay;
+ union {
+ lv_obj_t * screen;
+ lv_screen_create_cb_t create_cb;
+ } target;
+} screen_load_anim_dsc_t;
+
+typedef struct {
+ lv_anim_timeline_t * at;
+ uint32_t delay;
+ bool reverse;
+} timeline_play_dsc_t;
+
/**********************
* STATIC PROTOTYPES
**********************/
@@ -50,7 +67,13 @@ static void draw_scrollbar(lv_obj_t * obj, lv_layer_t * layer);
static lv_result_t scrollbar_init_draw_dsc(lv_obj_t * obj, lv_draw_rect_dsc_t * dsc);
static bool obj_valid_child(const lv_obj_t * parent, const lv_obj_t * obj_to_find);
static void update_obj_state(lv_obj_t * obj, lv_state_t new_state);
+static void lv_obj_children_add_state(lv_obj_t * obj, lv_state_t state);
+static void lv_obj_children_remove_state(lv_obj_t * obj, lv_state_t state);
static void null_on_delete_cb(lv_event_t * e);
+static void screen_load_on_trigger_event_cb(lv_event_t * e);
+static void screen_create_on_trigger_event_cb(lv_event_t * e);
+static void play_timeline_on_trigger_event_cb(lv_event_t * e);
+static void delete_on_screen_unloaded_event_cb(lv_event_t * e);
#if LV_USE_OBJ_PROPERTY
static lv_result_t lv_obj_set_any(lv_obj_t *, lv_prop_id_t, const lv_property_t *);
@@ -308,6 +331,9 @@ void lv_obj_add_state(lv_obj_t * obj, lv_state_t state)
lv_state_t new_state = obj->state | state;
if(obj->state != new_state) {
update_obj_state(obj, new_state);
+ if(lv_obj_has_flag(obj, LV_OBJ_FLAG_STATE_TRICKLE)) {
+ lv_obj_children_add_state(obj, state);
+ }
}
}
@@ -318,6 +344,9 @@ void lv_obj_remove_state(lv_obj_t * obj, lv_state_t state)
lv_state_t new_state = obj->state & (~state);
if(obj->state != new_state) {
update_obj_state(obj, new_state);
+ if(lv_obj_has_flag(obj, LV_OBJ_FLAG_STATE_TRICKLE)) {
+ lv_obj_children_remove_state(obj, state);
+ }
}
}
@@ -461,6 +490,55 @@ lv_obj_t * lv_obj_find_by_id(const lv_obj_t * obj, const void * id)
}
#endif
+void lv_obj_add_screen_load_event(lv_obj_t * obj, lv_event_code_t trigger, lv_obj_t * screen,
+ lv_screen_load_anim_t anim_type, uint32_t duration, uint32_t delay)
+{
+ if(screen == NULL) {
+ LV_LOG_WARN("`screen` is NULL, can't load a non existing screens");
+ return;
+ }
+
+ screen_load_anim_dsc_t * dsc = lv_malloc(sizeof(screen_load_anim_dsc_t));
+ LV_ASSERT_MALLOC(dsc);
+ lv_memzero(dsc, sizeof(screen_load_anim_dsc_t));
+ dsc->anim_type = anim_type;
+ dsc->duration = duration;
+ dsc->delay = delay;
+ dsc->target.screen = screen;
+
+ lv_obj_add_event_cb(obj, screen_load_on_trigger_event_cb, trigger, dsc);
+ lv_obj_add_event_cb(obj, lv_event_free_user_data_cb, LV_EVENT_DELETE, dsc);
+}
+
+void lv_obj_add_screen_create_event(lv_obj_t * obj, lv_event_code_t trigger, lv_screen_create_cb_t screen_create_cb,
+ lv_screen_load_anim_t anim_type, uint32_t duration, uint32_t delay)
+{
+ screen_load_anim_dsc_t * dsc = lv_malloc(sizeof(screen_load_anim_dsc_t));
+ LV_ASSERT_MALLOC(dsc);
+ lv_memzero(dsc, sizeof(screen_load_anim_dsc_t));
+ dsc->anim_type = anim_type;
+ dsc->duration = duration;
+ dsc->delay = delay;
+ dsc->target.create_cb = screen_create_cb;
+
+ lv_obj_add_event_cb(obj, screen_create_on_trigger_event_cb, trigger, dsc);
+ lv_obj_add_event_cb(obj, lv_event_free_user_data_cb, LV_EVENT_DELETE, dsc);
+}
+
+void lv_obj_add_play_timeline_event(lv_obj_t * obj, lv_event_code_t trigger, lv_anim_timeline_t * at, uint32_t delay,
+ bool reverse)
+{
+ timeline_play_dsc_t * dsc = lv_malloc(sizeof(timeline_play_dsc_t));
+ LV_ASSERT_MALLOC(dsc);
+ lv_memzero(dsc, sizeof(timeline_play_dsc_t));
+ dsc->at = at;
+ dsc->delay = delay;
+ dsc->reverse = reverse;
+
+ lv_obj_add_event_cb(obj, play_timeline_on_trigger_event_cb, trigger, dsc);
+ lv_obj_add_event_cb(obj, lv_event_free_user_data_cb, LV_EVENT_DELETE, dsc);
+}
+
void lv_obj_set_user_data(lv_obj_t * obj, void * user_data)
{
obj->user_data = user_data;
@@ -592,14 +670,14 @@ static void lv_obj_draw(lv_event_t * e)
return;
}
- if(lv_obj_get_style_bg_grad_dir(obj, 0) != LV_GRAD_DIR_NONE) {
- if(lv_obj_get_style_bg_grad_opa(obj, 0) < LV_OPA_MAX ||
- lv_obj_get_style_bg_main_opa(obj, 0) < LV_OPA_MAX) {
+ if(lv_obj_get_style_bg_grad_dir(obj, LV_PART_MAIN) != LV_GRAD_DIR_NONE) {
+ if(lv_obj_get_style_bg_grad_opa(obj, LV_PART_MAIN) < LV_OPA_MAX ||
+ lv_obj_get_style_bg_main_opa(obj, LV_PART_MAIN) < LV_OPA_MAX) {
info->res = LV_COVER_RES_NOT_COVER;
return;
}
}
- const lv_grad_dsc_t * grad_dsc = lv_obj_get_style_bg_grad(obj, 0);
+ const lv_grad_dsc_t * grad_dsc = lv_obj_get_style_bg_grad(obj, LV_PART_MAIN);
if(grad_dsc) {
uint32_t i;
for(i = 0; i < grad_dsc->stops_count; i++) {
@@ -982,6 +1060,40 @@ static void update_obj_state(lv_obj_t * obj, lv_state_t new_state)
}
}
+/**
+ * Apply the state to the children of the object
+ * @param obj pointer to an object
+ * @param state the state to apply
+ */
+static void lv_obj_children_add_state(lv_obj_t * obj, lv_state_t state)
+{
+ uint32_t child_count = lv_obj_get_child_count(obj);
+
+ for(uint32_t i = 0; i < child_count; i++) {
+ lv_obj_t * child = lv_obj_get_child(obj, i);
+ if(child) {
+ lv_obj_add_state(child, state);
+ }
+ }
+}
+
+/**
+ * Remove the state from the children of the object
+ * @param obj pointer to an object
+ * @param state the state to remove
+ */
+static void lv_obj_children_remove_state(lv_obj_t * obj, lv_state_t state)
+{
+ uint32_t child_count = lv_obj_get_child_count(obj);
+
+ for(uint32_t i = 0; i < child_count; i++) {
+ lv_obj_t * child = lv_obj_get_child(obj, i);
+ if(child) {
+ lv_obj_remove_state(child, state);
+ }
+ }
+}
+
static bool obj_valid_child(const lv_obj_t * parent, const lv_obj_t * obj_to_find)
{
/*Check all children of `parent`*/
@@ -1009,6 +1121,61 @@ static void null_on_delete_cb(lv_event_t * e)
*obj_ptr = NULL;
}
+static void screen_load_on_trigger_event_cb(lv_event_t * e)
+{
+ screen_load_anim_dsc_t * dsc = lv_event_get_user_data(e);
+ LV_ASSERT_NULL(dsc);
+ lv_screen_load_anim(dsc->target.screen, dsc->anim_type, dsc->duration, dsc->delay, false);
+}
+
+static void screen_create_on_trigger_event_cb(lv_event_t * e)
+{
+ screen_load_anim_dsc_t * dsc = lv_event_get_user_data(e);
+ LV_ASSERT_NULL(dsc);
+
+ lv_obj_t * screen = dsc->target.create_cb();
+ lv_screen_load_anim(screen, dsc->anim_type, dsc->duration, dsc->delay, false);
+ lv_obj_add_event_cb(screen, delete_on_screen_unloaded_event_cb, LV_EVENT_SCREEN_UNLOADED, NULL);
+}
+
+static void play_timeline_on_trigger_event_cb(lv_event_t * e)
+{
+ timeline_play_dsc_t * dsc = lv_event_get_user_data(e);
+ LV_ASSERT_NULL(dsc);
+
+ /*Reset the progress only if the animation was finished*/
+ uint16_t progress = lv_anim_timeline_get_progress(dsc->at);
+ if(dsc->reverse) {
+ if(progress == 0) {
+ lv_anim_timeline_set_progress(dsc->at, LV_ANIM_TIMELINE_PROGRESS_MAX);
+ }
+
+ if(lv_anim_timeline_get_progress(dsc->at) == LV_ANIM_TIMELINE_PROGRESS_MAX) {
+ lv_anim_timeline_set_delay(dsc->at, dsc->delay);
+ }
+
+ lv_anim_timeline_set_reverse(dsc->at, true);
+ }
+ else {
+ if(progress == LV_ANIM_TIMELINE_PROGRESS_MAX) {
+ lv_anim_timeline_set_progress(dsc->at, 0);
+ }
+
+ if(lv_anim_timeline_get_progress(dsc->at) == 0) {
+ lv_anim_timeline_set_delay(dsc->at, dsc->delay);
+ }
+
+ lv_anim_timeline_set_reverse(dsc->at, false);
+ }
+ lv_anim_timeline_start(dsc->at);
+}
+
+
+static void delete_on_screen_unloaded_event_cb(lv_event_t * e)
+{
+ lv_obj_delete(lv_event_get_target_obj(e));
+}
+
#if LV_USE_OBJ_PROPERTY
static lv_result_t lv_obj_set_any(lv_obj_t * obj, lv_prop_id_t id, const lv_property_t * prop)
{
diff --git a/lib/libesp32_lvgl/lvgl/src/core/lv_obj.h b/lib/libesp32_lvgl/lvgl/src/core/lv_obj.h
index 49c71aac3..ead6ba5a5 100644
--- a/lib/libesp32_lvgl/lvgl/src/core/lv_obj.h
+++ b/lib/libesp32_lvgl/lvgl/src/core/lv_obj.h
@@ -38,50 +38,6 @@ extern "C" {
/**********************
* TYPEDEFS
**********************/
-
-/**
- * Possible states of a widget.
- * OR-ed values are possible
- */
-enum {
- LV_STATE_DEFAULT = 0x0000,
- LV_STATE_CHECKED = 0x0001,
- LV_STATE_FOCUSED = 0x0002,
- LV_STATE_FOCUS_KEY = 0x0004,
- LV_STATE_EDITED = 0x0008,
- LV_STATE_HOVERED = 0x0010,
- LV_STATE_PRESSED = 0x0020,
- LV_STATE_SCROLLED = 0x0040,
- LV_STATE_DISABLED = 0x0080,
- LV_STATE_USER_1 = 0x1000,
- LV_STATE_USER_2 = 0x2000,
- LV_STATE_USER_3 = 0x4000,
- LV_STATE_USER_4 = 0x8000,
-
- LV_STATE_ANY = 0xFFFF, /**< Special value can be used in some functions to target all states*/
-};
-
-/**
- * The possible parts of widgets.
- * The parts can be considered as the internal building block of the widgets.
- * E.g. slider = background + indicator + knob
- * Not all parts are used by every widget
- */
-
-enum {
- LV_PART_MAIN = 0x000000, /**< A background like rectangle*/
- LV_PART_SCROLLBAR = 0x010000, /**< The scrollbar(s)*/
- LV_PART_INDICATOR = 0x020000, /**< Indicator, e.g. for slider, bar, switch, or the tick box of the checkbox*/
- LV_PART_KNOB = 0x030000, /**< Like handle to grab to adjust the value*/
- LV_PART_SELECTED = 0x040000, /**< Indicate the currently selected option or section*/
- LV_PART_ITEMS = 0x050000, /**< Used if the widget has multiple similar elements (e.g. table cells)*/
- LV_PART_CURSOR = 0x060000, /**< Mark a specific place e.g. for text area's cursor or on a chart*/
-
- LV_PART_CUSTOM_FIRST = 0x080000, /**< Extension point for custom widgets*/
-
- LV_PART_ANY = 0x0F0000, /**< Special value can be used in some functions to target all parts*/
-};
-
/**
* On/Off features controlling the object's behavior.
* OR-ed values are possible
@@ -112,12 +68,14 @@ typedef enum {
LV_OBJ_FLAG_FLOATING = (1L << 18), /**< Do not scroll the object when the parent scrolls and ignore layout*/
LV_OBJ_FLAG_SEND_DRAW_TASK_EVENTS = (1L << 19), /**< Send `LV_EVENT_DRAW_TASK_ADDED` events*/
LV_OBJ_FLAG_OVERFLOW_VISIBLE = (1L << 20),/**< Do not clip the children to the parent's ext draw size*/
-#if LV_USE_FLEX
- LV_OBJ_FLAG_FLEX_IN_NEW_TRACK = (1L << 21), /**< Start a new flex track on this item*/
-#endif
+ LV_OBJ_FLAG_EVENT_TRICKLE = (1L << 21), /**< Propagate the events to the children too*/
+ LV_OBJ_FLAG_STATE_TRICKLE = (1L << 22), /**< Propagate the states to the children too*/
LV_OBJ_FLAG_LAYOUT_1 = (1L << 23), /**< Custom flag, free to use by layouts*/
LV_OBJ_FLAG_LAYOUT_2 = (1L << 24), /**< Custom flag, free to use by layouts*/
+#if LV_USE_FLEX
+ LV_OBJ_FLAG_FLEX_IN_NEW_TRACK = LV_OBJ_FLAG_LAYOUT_1, /**< Start a new flex track on this item*/
+#endif
LV_OBJ_FLAG_WIDGET_1 = (1L << 25), /**< Custom flag, free to use by widget*/
LV_OBJ_FLAG_WIDGET_2 = (1L << 26), /**< Custom flag, free to use by widget*/
@@ -128,7 +86,7 @@ typedef enum {
} lv_obj_flag_t;
#if LV_USE_OBJ_PROPERTY
-enum {
+enum _lv_signed_prop_id_t {
/*OBJ flag properties */
LV_PROPERTY_ID(OBJ, FLAG_START, LV_PROPERTY_TYPE_INT, 0),
LV_PROPERTY_ID(OBJ, FLAG_HIDDEN, LV_PROPERTY_TYPE_INT, 0),
@@ -152,9 +110,11 @@ enum {
LV_PROPERTY_ID(OBJ, FLAG_FLOATING, LV_PROPERTY_TYPE_INT, 18),
LV_PROPERTY_ID(OBJ, FLAG_SEND_DRAW_TASK_EVENTS, LV_PROPERTY_TYPE_INT, 19),
LV_PROPERTY_ID(OBJ, FLAG_OVERFLOW_VISIBLE, LV_PROPERTY_TYPE_INT, 20),
- LV_PROPERTY_ID(OBJ, FLAG_FLEX_IN_NEW_TRACK, LV_PROPERTY_TYPE_INT, 21),
+ LV_PROPERTY_ID(OBJ, FLAG_EVENT_TRICKLE, LV_PROPERTY_TYPE_INT, 21),
+ LV_PROPERTY_ID(OBJ, FLAG_STATE_TRICKLE, LV_PROPERTY_TYPE_INT, 22),
LV_PROPERTY_ID(OBJ, FLAG_LAYOUT_1, LV_PROPERTY_TYPE_INT, 23),
LV_PROPERTY_ID(OBJ, FLAG_LAYOUT_2, LV_PROPERTY_TYPE_INT, 24),
+ LV_PROPERTY_ID(OBJ, FLAG_FLEX_IN_NEW_TRACK, LV_PROPERTY_TYPE_INT, 23), /*Mapped to FLAG_LAYOUT_1*/
LV_PROPERTY_ID(OBJ, FLAG_WIDGET_1, LV_PROPERTY_TYPE_INT, 25),
LV_PROPERTY_ID(OBJ, FLAG_WIDGET_2, LV_PROPERTY_TYPE_INT, 26),
LV_PROPERTY_ID(OBJ, FLAG_USER_1, LV_PROPERTY_TYPE_INT, 27),
@@ -383,6 +343,43 @@ bool lv_obj_is_valid(const lv_obj_t * obj);
*/
void lv_obj_null_on_delete(lv_obj_t ** obj_ptr);
+/**
+ * Add an event handler to a widget that will load a screen on a trigger.
+ * @param obj pointer to widget which should load the screen
+ * @param trigger an event code, e.g. `LV_EVENT_CLICKED`
+ * @param screen the screen to load (must be a valid widget)
+ * @param anim_type element of `lv_screen_load_anim_t` the screen load animation
+ * @param duration duration of the animation in milliseconds
+ * @param delay delay before the screen load in milliseconds
+ */
+void lv_obj_add_screen_load_event(lv_obj_t * obj, lv_event_code_t trigger, lv_obj_t * screen,
+ lv_screen_load_anim_t anim_type, uint32_t duration, uint32_t delay);
+
+/**
+ * Add an event handler to a widget that will create a screen on a trigger.
+ * The created screen will be deleted when it's unloaded
+ * @param obj pointer to widget which should load the screen
+ * @param trigger an event code, e.g. `LV_EVENT_CLICKED`
+ * @param screen_create_cb a callback to create the screen, e.g. `lv_obj_t * myscreen_create(void)`
+ * @param anim_type element of `lv_screen_load_anim_t` the screen load animation
+ * @param duration duration of the animation in milliseconds
+ * @param delay delay before the screen load in milliseconds
+ */
+void lv_obj_add_screen_create_event(lv_obj_t * obj, lv_event_code_t trigger, lv_screen_create_cb_t screen_create_cb,
+ lv_screen_load_anim_t anim_type, uint32_t duration, uint32_t delay);
+
+
+/**
+ * Play a timeline animation on a trigger
+ * @param obj pointer to widget which should trigger playing the animation
+ * @param trigger an event code, e.g. `LV_EVENT_CLICKED`
+ * @param at pointer to an animation timeline
+ * @param delay wait time before starting the animation
+ * @param reverse true: play in reverse
+ */
+void lv_obj_add_play_timeline_event(lv_obj_t * obj, lv_event_code_t trigger, lv_anim_timeline_t * at, uint32_t delay,
+ bool reverse);
+
#if LV_USE_OBJ_ID
/**
* Set an id for an object.
diff --git a/lib/libesp32_lvgl/lvgl/src/core/lv_obj_draw.c b/lib/libesp32_lvgl/lvgl/src/core/lv_obj_draw.c
index 56fa3f95e..03f10aad4 100644
--- a/lib/libesp32_lvgl/lvgl/src/core/lv_obj_draw.c
+++ b/lib/libesp32_lvgl/lvgl/src/core/lv_obj_draw.c
@@ -132,6 +132,8 @@ void lv_obj_init_draw_rect_dsc(lv_obj_t * obj, lv_part_t part, lv_draw_rect_dsc_
draw_dsc->bg_image_recolor = lv_color_make(result.red, result.green, result.blue);
draw_dsc->bg_image_tiled = lv_obj_get_style_bg_image_tiled(obj, part);
}
+
+ draw_dsc->bg_image_colorkey = lv_obj_get_style_image_colorkey(obj, part);
}
}
}
@@ -234,6 +236,8 @@ void lv_obj_init_draw_image_dsc(lv_obj_t * obj, lv_part_t part, lv_draw_image_ds
draw_dsc->recolor_opa = result.alpha;
draw_dsc->recolor = lv_color_make(result.red, result.green, result.blue);
+ draw_dsc->colorkey = lv_obj_get_style_image_colorkey(obj, part);
+
if(part != LV_PART_MAIN) draw_dsc->blend_mode = lv_obj_get_style_blend_mode(obj, part);
LV_PROFILER_DRAW_END;
diff --git a/lib/libesp32_lvgl/lvgl/src/core/lv_obj_draw.h b/lib/libesp32_lvgl/lvgl/src/core/lv_obj_draw.h
index 9df48c5eb..4ad447c97 100644
--- a/lib/libesp32_lvgl/lvgl/src/core/lv_obj_draw.h
+++ b/lib/libesp32_lvgl/lvgl/src/core/lv_obj_draw.h
@@ -20,6 +20,7 @@ extern "C" {
#include "../draw/lv_draw_line.h"
#include "../draw/lv_draw_arc.h"
#include "../draw/lv_draw_triangle.h"
+#include "lv_obj_style.h"
/*********************
* DEFINES
@@ -36,7 +37,7 @@ typedef enum {
/**Simple layer means that the layer can be rendered in chunks.
* For example with opa_layered = 140 it's possible to render only 10 lines
- * from the layer. When it's ready go the the next 10 lines.
+ * from the layer. When it's ready go to the next 10 lines.
* It avoids large memory allocations for the layer buffer.
* The buffer size for a chunk can be set by `LV_DRAW_LAYER_SIMPLE_BUF_SIZE` in lv_conf.h.*/
LV_LAYER_TYPE_SIMPLE,
diff --git a/lib/libesp32_lvgl/lvgl/src/core/lv_obj_event.c b/lib/libesp32_lvgl/lvgl/src/core/lv_obj_event.c
index 05e01525e..36fb7e1f7 100644
--- a/lib/libesp32_lvgl/lvgl/src/core/lv_obj_event.c
+++ b/lib/libesp32_lvgl/lvgl/src/core/lv_obj_event.c
@@ -27,6 +27,7 @@
**********************/
static lv_result_t event_send_core(lv_event_t * e);
static bool event_is_bubbled(lv_event_t * e);
+static bool event_is_trickled(lv_event_t * e);
/**********************
* STATIC VARIABLES
@@ -60,6 +61,7 @@ lv_result_t lv_obj_send_event(lv_obj_t * obj, lv_event_code_t event_code, void *
e.deleted = 0;
e.stop_bubbling = 0;
e.stop_processing = 0;
+ e.stop_trickling = 0;
lv_event_push(&e);
@@ -140,8 +142,11 @@ uint32_t lv_obj_remove_event_cb(lv_obj_t * obj, lv_event_cb_t event_cb)
uint32_t event_cnt = lv_obj_get_event_count(obj);
uint32_t removed_count = 0;
- uint32_t i;
- for(i = 0; i < event_cnt; i++) {
+ int32_t i;
+
+ if(event_cnt == 0) return 0;
+
+ for(i = event_cnt - 1; i >= 0; i--) {
lv_event_dsc_t * dsc = lv_obj_get_event_dsc(obj, i);
if(dsc && dsc->cb == event_cb) {
lv_obj_remove_event(obj, i);
@@ -352,7 +357,6 @@ static lv_result_t event_send_core(lv_event_t * e)
{
LV_TRACE_EVENT("Sending event %d to %p with %p param", e->code, (void *)e->original_target, e->param);
- /*Call the input device's feedback callback if set*/
lv_indev_t * indev_act = lv_indev_active();
if(indev_act) {
if(e->stop_processing) return LV_RESULT_OK;
@@ -377,6 +381,27 @@ static lv_result_t event_send_core(lv_event_t * e)
e->current_target = parent;
res = event_send_core(e);
}
+ if(res != LV_RESULT_OK) return res;
+
+ /*Trickle down to children if enabled*/
+ if(event_is_trickled(e)) {
+ uint32_t child_count = lv_obj_get_child_count(target);
+
+ /* we don't want the event to bubble up again when trickling down */
+ e->stop_bubbling = 1;
+
+ for(uint32_t i = 0; i < child_count && res == LV_RESULT_OK && !e->stop_processing; i++) {
+ lv_obj_t * child = lv_obj_get_child(target, i);
+ if(child) {
+ e->current_target = child;
+ res = event_send_core(e);
+ if(res != LV_RESULT_OK) {
+ LV_LOG_WARN("Trickle down event %d to child %p failed", e->code, (void *)child);
+ break;
+ }
+ }
+ }
+ }
return res;
}
@@ -421,3 +446,35 @@ static bool event_is_bubbled(lv_event_t * e)
return true;
}
}
+
+static bool event_is_trickled(lv_event_t * e)
+{
+ if(e->stop_trickling) return false;
+
+ /*Check other codes only if trickle is enabled*/
+ if(lv_obj_has_flag(e->current_target, LV_OBJ_FLAG_EVENT_TRICKLE) == false) return false;
+
+ switch(e->code) {
+ case LV_EVENT_HIT_TEST:
+ case LV_EVENT_COVER_CHECK:
+ case LV_EVENT_REFR_EXT_DRAW_SIZE:
+ case LV_EVENT_DRAW_MAIN_BEGIN:
+ case LV_EVENT_DRAW_MAIN:
+ case LV_EVENT_DRAW_MAIN_END:
+ case LV_EVENT_DRAW_POST_BEGIN:
+ case LV_EVENT_DRAW_POST:
+ case LV_EVENT_DRAW_POST_END:
+ case LV_EVENT_DRAW_TASK_ADDED:
+ case LV_EVENT_REFRESH:
+ case LV_EVENT_DELETE:
+ case LV_EVENT_CHILD_CREATED:
+ case LV_EVENT_CHILD_DELETED:
+ case LV_EVENT_CHILD_CHANGED:
+ case LV_EVENT_SIZE_CHANGED:
+ case LV_EVENT_STYLE_CHANGED:
+ case LV_EVENT_GET_SELF_SIZE:
+ return false;
+ default:
+ return true;
+ }
+}
diff --git a/lib/libesp32_lvgl/lvgl/src/core/lv_obj_id_builtin.c b/lib/libesp32_lvgl/lvgl/src/core/lv_obj_id_builtin.c
index ed8f745ff..f717760f3 100644
--- a/lib/libesp32_lvgl/lvgl/src/core/lv_obj_id_builtin.c
+++ b/lib/libesp32_lvgl/lvgl/src/core/lv_obj_id_builtin.c
@@ -1,5 +1,5 @@
/**
- * @file lv_obj_id.c
+ * @file lv_obj_id_builtin.c
*
*/
@@ -9,7 +9,7 @@
#include "lv_obj_class_private.h"
#include "lv_obj_private.h"
#include "lv_global.h"
-#include "../osal/lv_os.h"
+#include "../osal/lv_os_private.h"
#include "../stdlib/lv_sprintf.h"
/*********************
diff --git a/lib/libesp32_lvgl/lvgl/src/core/lv_obj_pos.c b/lib/libesp32_lvgl/lvgl/src/core/lv_obj_pos.c
index 708e3f4c6..a88ace397 100644
--- a/lib/libesp32_lvgl/lvgl/src/core/lv_obj_pos.c
+++ b/lib/libesp32_lvgl/lvgl/src/core/lv_obj_pos.c
@@ -84,6 +84,56 @@ void lv_obj_set_y(lv_obj_t * obj, int32_t y)
}
}
+static int32_t calc_dynamic_width(lv_obj_t * obj, int32_t width, int32_t * const content_width)
+{
+ if(width == LV_SIZE_CONTENT) {
+ if(*content_width < 0) {
+ *content_width = calc_content_width(obj);
+ }
+ width = *content_width;
+ }
+ else if(LV_COORD_IS_PCT(width)) {
+ lv_obj_t * parent = lv_obj_get_parent(obj);
+ if(parent->w_layout == 0 && lv_obj_get_style_width(parent, 0) == LV_SIZE_CONTENT) {
+ /*If parent has content size and the child has pct size
+ *a circular dependency will occur. To solve it keep child size at zero */
+ width = lv_obj_get_style_space_left(obj, 0) + lv_obj_get_style_space_right(obj, 0);
+ }
+ else {
+ int32_t parent_w = lv_obj_get_content_width(parent);
+ width = (LV_COORD_GET_PCT(width) * parent_w) / 100;
+ width -= lv_obj_get_style_margin_left(obj, LV_PART_MAIN) + lv_obj_get_style_margin_right(obj, LV_PART_MAIN);
+ }
+ }
+ return width;
+}
+
+static int32_t calc_dynamic_height(lv_obj_t * obj, int32_t height, int32_t * const content_height)
+{
+ if(height == LV_SIZE_CONTENT) {
+ if(*content_height < 0) {
+ *content_height = calc_content_height(obj);
+ }
+ height = *content_height;
+ }
+ else if(LV_COORD_IS_PCT(height)) {
+ lv_obj_t * parent = lv_obj_get_parent(obj);
+ if(parent->h_layout == 0 && lv_obj_get_style_height(parent, 0) == LV_SIZE_CONTENT) {
+ /*If parent has content size and the child has pct size
+ *a circular dependency will occur. To solve it keep child size at zero */
+ height = lv_obj_get_style_space_top(obj, 0) + lv_obj_get_style_space_bottom(obj, 0);
+ }
+
+ else {
+ int32_t parent_h = lv_obj_get_content_height(parent);
+ height = (LV_COORD_GET_PCT(height) * parent_h) / 100;
+ height -=
+ lv_obj_get_style_margin_top(obj, LV_PART_MAIN) + lv_obj_get_style_margin_bottom(obj, LV_PART_MAIN);
+ }
+ }
+ return height;
+}
+
bool lv_obj_refr_size(lv_obj_t * obj)
{
LV_ASSERT_OBJ(obj, MY_CLASS);
@@ -94,74 +144,34 @@ bool lv_obj_refr_size(lv_obj_t * obj)
lv_obj_t * parent = lv_obj_get_parent(obj);
if(parent == NULL) return false;
- bool w_is_content = false;
- bool w_is_pct = false;
-
int32_t w;
if(obj->w_layout) {
w = lv_obj_get_width(obj);
}
else {
- w = lv_obj_get_style_width(obj, LV_PART_MAIN);
- w_is_content = w == LV_SIZE_CONTENT;
- w_is_pct = LV_COORD_IS_PCT(w);
- int32_t parent_w = lv_obj_get_content_width(parent);
-
- if(w_is_content) {
- w = calc_content_width(obj);
- }
- else if(w_is_pct) {
- /*If parent has content size and the child has pct size
- *a circular dependency will occur. To solve it keep child size at zero */
- if(parent->w_layout == 0 && lv_obj_get_style_width(parent, 0) == LV_SIZE_CONTENT) {
- w = lv_obj_get_style_space_left(obj, 0) + lv_obj_get_style_space_right(obj, 0);
- }
- else {
- w = (LV_COORD_GET_PCT(w) * parent_w) / 100;
- w -= lv_obj_get_style_margin_left(obj, LV_PART_MAIN) + lv_obj_get_style_margin_right(obj, LV_PART_MAIN);
- }
- }
-
- int32_t minw = lv_obj_get_style_min_width(obj, LV_PART_MAIN);
- int32_t maxw = lv_obj_get_style_max_width(obj, LV_PART_MAIN);
- w = lv_clamp_width(w, minw, maxw, parent_w);
+ int32_t content_width = -1;
+ w = calc_dynamic_width(obj, lv_obj_get_style_width(obj, LV_PART_MAIN), &content_width);
+ int32_t minw = calc_dynamic_width(obj, lv_obj_get_style_min_width(obj, LV_PART_MAIN), &content_width);
+ int32_t maxw = calc_dynamic_width(obj, lv_obj_get_style_max_width(obj, LV_PART_MAIN), &content_width);
+ w = LV_CLAMP(minw, w, maxw);
}
int32_t h;
- bool h_is_content = false;
- bool h_is_pct = false;
if(obj->h_layout) {
h = lv_obj_get_height(obj);
}
else {
- h = lv_obj_get_style_height(obj, LV_PART_MAIN);
- h_is_content = h == LV_SIZE_CONTENT;
- h_is_pct = LV_COORD_IS_PCT(h);
- int32_t parent_h = lv_obj_get_content_height(parent);
-
- if(h_is_content) {
- h = calc_content_height(obj);
- }
- else if(h_is_pct) {
- /*If parent has content size and the child has pct size
- *a circular dependency will occur. To solve it keep child size at zero */
- if(parent->h_layout == 0 && lv_obj_get_style_height(parent, 0) == LV_SIZE_CONTENT) {
- h = lv_obj_get_style_space_top(obj, 0) + lv_obj_get_style_space_bottom(obj, 0);
- }
- else {
- h = (LV_COORD_GET_PCT(h) * parent_h) / 100;
- h -= lv_obj_get_style_margin_top(obj, LV_PART_MAIN) + lv_obj_get_style_margin_bottom(obj, LV_PART_MAIN);
- }
- }
-
- int32_t minh = lv_obj_get_style_min_height(obj, LV_PART_MAIN);
- int32_t maxh = lv_obj_get_style_max_height(obj, LV_PART_MAIN);
- h = lv_clamp_height(h, minh, maxh, parent_h);
+ int32_t content_height = -1;
+ h = calc_dynamic_height(obj, lv_obj_get_style_height(obj, LV_PART_MAIN), &content_height);
+ int32_t minh = calc_dynamic_height(obj, lv_obj_get_style_min_height(obj, LV_PART_MAIN), &content_height);
+ int32_t maxh = calc_dynamic_height(obj, lv_obj_get_style_max_height(obj, LV_PART_MAIN), &content_height);
+ h = LV_CLAMP(minh, h, maxh);
}
/*Do nothing if the size is not changed*/
/*It is very important else recursive resizing can occur without size change*/
- if(lv_obj_get_width(obj) == w && lv_obj_get_height(obj) == h) return false;
+ if(lv_obj_get_width(obj) == w && lv_obj_get_height(obj) == h)
+ return false;
/*Invalidate the original area*/
lv_obj_invalidate(obj);
@@ -177,7 +187,8 @@ bool lv_obj_refr_size(lv_obj_t * obj)
/*If the object is already out of the parent and its position is changes
*surely the scrollbars also changes so invalidate them*/
bool on1 = lv_area_is_in(&ori, &parent_fit_area, 0);
- if(!on1) lv_obj_scrollbar_invalidate(parent);
+ if(!on1)
+ lv_obj_scrollbar_invalidate(parent);
/*Set the length and height
*Be sure the content is not scrolled in an invalid position on the new size*/
@@ -203,7 +214,8 @@ bool lv_obj_refr_size(lv_obj_t * obj)
/*If the object was out of the parent invalidate the new scrollbar area too.
*If it wasn't out of the parent but out now, also invalidate the scrollbars*/
bool on2 = lv_area_is_in(&obj->coords, &parent_fit_area, 0);
- if(on1 || (!on1 && on2)) lv_obj_scrollbar_invalidate(parent);
+ if(on1 || (!on1 && on2))
+ lv_obj_scrollbar_invalidate(parent);
lv_obj_refresh_ext_draw_size(obj);
@@ -627,12 +639,12 @@ void lv_obj_refr_pos(lv_obj_t * obj)
int32_t pw = lv_obj_get_content_width(parent);
int32_t ph = lv_obj_get_content_height(parent);
if(LV_COORD_IS_PCT(x)) {
- if(lv_obj_get_style_width(parent, 0) == LV_SIZE_CONTENT) x = 0; /*Avoid circular dependency*/
+ if(lv_obj_get_style_width(parent, LV_PART_MAIN) == LV_SIZE_CONTENT) x = 0; /*Avoid circular dependency*/
else x = (pw * LV_COORD_GET_PCT(x)) / 100;
}
if(LV_COORD_IS_PCT(y)) {
- if(lv_obj_get_style_height(parent, 0) == LV_SIZE_CONTENT) y = 0; /*Avoid circular dependency*/
+ if(lv_obj_get_style_height(parent, LV_PART_MAIN) == LV_SIZE_CONTENT) y = 0; /*Avoid circular dependency*/
y = (ph * LV_COORD_GET_PCT(y)) / 100;
}
@@ -997,7 +1009,7 @@ void lv_obj_set_transform(lv_obj_t * obj, const lv_matrix_t * matrix)
lv_obj_allocate_spec_attr(obj);
if(!obj->spec_attr->matrix) {
- obj->spec_attr->matrix = lv_malloc(sizeof(lv_matrix_t));;
+ obj->spec_attr->matrix = lv_malloc(sizeof(lv_matrix_t));
LV_ASSERT_MALLOC(obj->spec_attr->matrix);
}
@@ -1096,7 +1108,7 @@ static int32_t calc_content_width(lv_obj_t * obj)
if(lv_obj_has_flag_any(child, LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_FLOATING)) continue;
if(!lv_obj_is_layout_positioned(child)) {
- lv_align_t align = lv_obj_get_style_align(child, 0);
+ lv_align_t align = lv_obj_get_style_align(child, LV_PART_MAIN);
switch(align) {
case LV_ALIGN_DEFAULT:
case LV_ALIGN_TOP_RIGHT:
@@ -1108,7 +1120,7 @@ static int32_t calc_content_width(lv_obj_t * obj)
default:
/* Consider other cases only if x=0 and use the width of the object.
* With x!=0 circular dependency could occur. */
- if(lv_obj_get_style_x(child, 0) == 0) {
+ if(lv_obj_get_style_x(child, LV_PART_MAIN) == 0) {
child_res_tmp = lv_area_get_width(&child->coords) + space_right;
child_res_tmp += lv_obj_get_style_margin_left(child, LV_PART_MAIN);
}
@@ -1132,7 +1144,7 @@ static int32_t calc_content_width(lv_obj_t * obj)
if(lv_obj_has_flag_any(child, LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_FLOATING)) continue;
if(!lv_obj_is_layout_positioned(child)) {
- lv_align_t align = lv_obj_get_style_align(child, 0);
+ lv_align_t align = lv_obj_get_style_align(child, LV_PART_MAIN);
switch(align) {
case LV_ALIGN_DEFAULT:
case LV_ALIGN_TOP_LEFT:
@@ -1144,7 +1156,7 @@ static int32_t calc_content_width(lv_obj_t * obj)
default:
/* Consider other cases only if x=0 and use the width of the object.
* With x!=0 circular dependency could occur. */
- if(lv_obj_get_style_x(child, 0) == 0) {
+ if(lv_obj_get_style_x(child, LV_PART_MAIN) == 0) {
child_res_tmp = lv_area_get_width(&child->coords) + space_left;
child_res_tmp += lv_obj_get_style_margin_right(child, LV_PART_MAIN);
}
@@ -1189,7 +1201,7 @@ static int32_t calc_content_height(lv_obj_t * obj)
if(lv_obj_has_flag_any(child, LV_OBJ_FLAG_HIDDEN | LV_OBJ_FLAG_FLOATING)) continue;
if(!lv_obj_is_layout_positioned(child)) {
- lv_align_t align = lv_obj_get_style_align(child, 0);
+ lv_align_t align = lv_obj_get_style_align(child, LV_PART_MAIN);
switch(align) {
case LV_ALIGN_DEFAULT:
case LV_ALIGN_TOP_RIGHT:
@@ -1201,7 +1213,7 @@ static int32_t calc_content_height(lv_obj_t * obj)
default:
/* Consider other cases only if y=0 and use the height of the object.
* With y!=0 circular dependency could occur. */
- if(lv_obj_get_style_y(child, 0) == 0) {
+ if(lv_obj_get_style_y(child, LV_PART_MAIN) == 0) {
child_res_tmp = lv_area_get_height(&child->coords) + space_top;
child_res_tmp += lv_obj_get_style_margin_top(child, LV_PART_MAIN);
}
@@ -1273,17 +1285,17 @@ static void transform_point_array(const lv_obj_t * obj, lv_point_t * p, size_t p
}
#endif /* LV_DRAW_TRANSFORM_USE_MATRIX */
- int32_t angle = lv_obj_get_style_transform_rotation(obj, 0);
- int32_t scale_x = lv_obj_get_style_transform_scale_x_safe(obj, 0);
- int32_t scale_y = lv_obj_get_style_transform_scale_y_safe(obj, 0);
+ int32_t angle = lv_obj_get_style_transform_rotation(obj, LV_PART_MAIN);
+ int32_t scale_x = lv_obj_get_style_transform_scale_x_safe(obj, LV_PART_MAIN);
+ int32_t scale_y = lv_obj_get_style_transform_scale_y_safe(obj, LV_PART_MAIN);
if(scale_x == 0) scale_x = 1;
if(scale_y == 0) scale_y = 1;
if(angle == 0 && scale_x == LV_SCALE_NONE && scale_y == LV_SCALE_NONE) return;
lv_point_t pivot = {
- .x = lv_obj_get_style_transform_pivot_x(obj, 0),
- .y = lv_obj_get_style_transform_pivot_y(obj, 0)
+ .x = lv_obj_get_style_transform_pivot_x(obj, LV_PART_MAIN),
+ .y = lv_obj_get_style_transform_pivot_y(obj, LV_PART_MAIN)
};
if(LV_COORD_IS_PCT(pivot.x)) {
diff --git a/lib/libesp32_lvgl/lvgl/src/core/lv_obj_private.h b/lib/libesp32_lvgl/lvgl/src/core/lv_obj_private.h
index 5b1100fb8..1a6540bf2 100644
--- a/lib/libesp32_lvgl/lvgl/src/core/lv_obj_private.h
+++ b/lib/libesp32_lvgl/lvgl/src/core/lv_obj_private.h
@@ -67,7 +67,7 @@ struct _lv_obj_t {
#endif
lv_area_t coords;
lv_obj_flag_t flags;
- lv_state_t state;
+ uint16_t state;
uint16_t layout_inv : 1;
uint16_t readjust_scroll_after_layout : 1;
uint16_t scr_layout_inv : 1;
@@ -78,7 +78,6 @@ struct _lv_obj_t {
uint16_t is_deleting : 1;
};
-
/**********************
* GLOBAL PROTOTYPES
**********************/
diff --git a/lib/libesp32_lvgl/lvgl/src/core/lv_obj_property.c b/lib/libesp32_lvgl/lvgl/src/core/lv_obj_property.c
index 7f45e6c7f..60b084401 100644
--- a/lib/libesp32_lvgl/lvgl/src/core/lv_obj_property.c
+++ b/lib/libesp32_lvgl/lvgl/src/core/lv_obj_property.c
@@ -1,5 +1,5 @@
/**
- * @file lv_obj_id.c
+ * @file lv_obj_property.c
*
*/
diff --git a/lib/libesp32_lvgl/lvgl/src/core/lv_obj_property.h b/lib/libesp32_lvgl/lvgl/src/core/lv_obj_property.h
index 5cd16aa2d..35f55f112 100644
--- a/lib/libesp32_lvgl/lvgl/src/core/lv_obj_property.h
+++ b/lib/libesp32_lvgl/lvgl/src/core/lv_obj_property.h
@@ -38,7 +38,19 @@ extern "C" {
#define LV_PROPERTY_TYPE_SHIFT 28
#define LV_PROPERTY_TYPE2_SHIFT 24
-#define LV_PROPERTY_ID(clz, name, type, index) LV_PROPERTY_## clz ##_##name = (LV_PROPERTY_## clz ##_START + (index)) | ((type) << LV_PROPERTY_TYPE_SHIFT)
+
+/* Example:
+ * LV_PROPERTY_ID(OBJ, FLAG_CLICKABLE, LV_PROPERTY_TYPE_INT, 1),
+ * produces
+ * LV_PROPERTY_OBJ_FLAG_CLICKABLE = (LV_PROPERTY_OBJ_START + (1)) | ((LV_PROPERTY_TYPE_INT) << LV_PROPERTY_TYPE_SHIFT)
+ */
+#define LV_PROPERTY_ID(clz, name, type, index) LV_PROPERTY_## clz ##_##name = (LV_PROPERTY_## clz ##_START + ((int)index)) | ((type) << LV_PROPERTY_TYPE_SHIFT)
+
+/* Example:
+ * LV_PROPERTY_ID2(SLIDER, VALUE, LV_PROPERTY_TYPE_INT, LV_PROPERTY_TYPE_BOOL, 0)
+ * produces
+ * LV_PROPERTY_SLIDER_VALUE = (LV_PROPERTY_SLIDER_START + (0)) | ((LV_PROPERTY_TYPE_INT) << LV_PROPERTY_TYPE_SHIFT) | ((LV_PROPERTY_TYPE_BOOL) << LV_PROPERTY_TYPE2_SHIFT)
+ */
#define LV_PROPERTY_ID2(clz, name, type, type2, index) LV_PROPERTY_ID(clz, name, type, index) | ((type2) << LV_PROPERTY_TYPE2_SHIFT)
#define LV_PROPERTY_ID_TYPE(id) ((id) >> LV_PROPERTY_TYPE_SHIFT)
@@ -56,7 +68,7 @@ extern "C" {
/**
* Group of predefined widget ID start value.
*/
-enum {
+enum _lv_prop_id_range_boundary_t {
LV_PROPERTY_ID_INVALID = 0,
/*ID 0x01 to 0xff are style ID, check lv_style_prop_t*/
diff --git a/lib/libesp32_lvgl/lvgl/src/core/lv_obj_style.c b/lib/libesp32_lvgl/lvgl/src/core/lv_obj_style.c
index afffffa15..91cb91e8e 100644
--- a/lib/libesp32_lvgl/lvgl/src/core/lv_obj_style.c
+++ b/lib/libesp32_lvgl/lvgl/src/core/lv_obj_style.c
@@ -36,14 +36,6 @@ typedef struct {
lv_style_value_t end_value;
} trans_t;
-typedef enum {
- CACHE_ZERO = 0,
- CACHE_TRUE = 1,
- CACHE_UNSET = 2,
- CACHE_255 = 3,
- CACHE_NEED_CHECK = 4,
-} cache_t;
-
/**********************
* GLOBAL PROTOTYPES
**********************/
@@ -52,7 +44,7 @@ typedef enum {
* STATIC PROTOTYPES
**********************/
static lv_style_t * get_local_style(lv_obj_t * obj, lv_style_selector_t selector);
-static lv_obj_style_t * get_trans_style(lv_obj_t * obj, lv_part_t part);
+static lv_obj_style_t * get_trans_style(lv_obj_t * obj, lv_style_selector_t selector);
static lv_style_res_t get_prop_core(const lv_obj_t * obj, lv_style_selector_t selector, lv_style_prop_t prop,
lv_style_value_t * v);
static void report_style_change_core(void * style, lv_obj_t * obj);
@@ -272,7 +264,7 @@ void lv_obj_report_style_change(lv_style_t * style)
}
}
-void lv_obj_refresh_style(lv_obj_t * obj, lv_style_selector_t selector, lv_style_prop_t prop)
+void lv_obj_refresh_style(lv_obj_t * obj, lv_part_t part, lv_style_prop_t prop)
{
LV_ASSERT_OBJ(obj, MY_CLASS);
@@ -282,8 +274,6 @@ void lv_obj_refresh_style(lv_obj_t * obj, lv_style_selector_t selector, lv_style
lv_obj_invalidate(obj);
- lv_part_t part = lv_obj_style_get_selector_part(selector);
-
bool is_layout_refr = lv_style_prop_has_flag(prop, LV_STYLE_PROP_FLAG_LAYOUT_UPDATE);
bool is_ext_draw = lv_style_prop_has_flag(prop, LV_STYLE_PROP_FLAG_EXT_DRAW_UPDATE);
bool is_inheritable = lv_style_prop_has_flag(prop, LV_STYLE_PROP_FLAG_INHERITABLE);
@@ -292,8 +282,8 @@ void lv_obj_refresh_style(lv_obj_t * obj, lv_style_selector_t selector, lv_style
if(is_layout_refr) {
if(part == LV_PART_ANY ||
part == LV_PART_MAIN ||
- lv_obj_get_style_height(obj, 0) == LV_SIZE_CONTENT ||
- lv_obj_get_style_width(obj, 0) == LV_SIZE_CONTENT) {
+ lv_obj_get_style_height(obj, LV_PART_MAIN) == LV_SIZE_CONTENT ||
+ lv_obj_get_style_width(obj, LV_PART_MAIN) == LV_SIZE_CONTENT) {
lv_obj_send_event(obj, LV_EVENT_STYLE_CHANGED, NULL);
lv_obj_mark_layout_as_dirty(obj);
}
@@ -322,6 +312,37 @@ void lv_obj_refresh_style(lv_obj_t * obj, lv_style_selector_t selector, lv_style
LV_PROFILER_STYLE_END;
}
+void lv_obj_style_set_disabled(lv_obj_t * obj, const lv_style_t * style, lv_style_selector_t selector, bool dis)
+{
+ uint32_t i;
+ for(i = 0; i < obj->style_cnt; i++) {
+ if(obj->styles[i].style == style && obj->styles[i].selector == selector) {
+ if(dis == obj->styles[i].is_disabled) {
+ return; /*Already in the right state*/
+ }
+ obj->styles[i].is_disabled = dis;
+ full_cache_refresh(obj, lv_obj_style_get_selector_part(selector));
+ lv_obj_refresh_style(obj, selector, LV_STYLE_PROP_ANY);
+ return;
+ }
+ }
+ LV_LOG_WARN("%p style was not found on %p widget with %6" LV_PRIx32 " selector", (void *)style, (void *)obj, selector);
+}
+
+bool lv_obj_style_get_disabled(lv_obj_t * obj, const lv_style_t * style, lv_style_selector_t selector)
+{
+ uint32_t i;
+ for(i = 0; i < obj->style_cnt; i++) {
+ if(obj->styles[i].style == style && obj->styles[i].selector == selector) {
+ return obj->styles[i].is_disabled;
+ }
+ }
+
+ LV_LOG_WARN("%p style was not found on %p widget with %6" LV_PRIx32 " selector", (void *)style, (void *)obj, selector);
+ return false;
+}
+
+
void lv_obj_enable_style_refresh(bool en)
{
style_refr = en;
@@ -573,7 +594,7 @@ void lv_obj_fade_out(lv_obj_t * obj, uint32_t time, uint32_t delay)
lv_anim_t a;
lv_anim_init(&a);
lv_anim_set_var(&a, obj);
- lv_anim_set_values(&a, lv_obj_get_style_opa(obj, 0), LV_OPA_TRANSP);
+ lv_anim_set_values(&a, lv_obj_get_style_opa(obj, LV_PART_MAIN), LV_OPA_TRANSP);
lv_anim_set_exec_cb(&a, fade_anim_cb);
lv_anim_set_duration(&a, time);
lv_anim_set_delay(&a, delay);
@@ -773,6 +794,7 @@ static lv_style_res_t get_prop_core(const lv_obj_t * obj, lv_style_selector_t se
lv_obj_style_t * obj_style = &obj->styles[i];
if(obj_style->is_trans == false) break;
if(skip_trans) continue;
+ if(obj_style->is_disabled) continue;
lv_part_t part_act = lv_obj_style_get_selector_part(obj->styles[i].selector);
@@ -786,6 +808,7 @@ static lv_style_res_t get_prop_core(const lv_obj_t * obj, lv_style_selector_t se
for(; i < obj->style_cnt; i++) {
if((obj->styles[i].style->has_group & group) == 0) continue;
+ if(obj->styles[i].is_disabled) continue;
lv_obj_style_t * obj_style = &obj->styles[i];
lv_part_t part_act = lv_obj_style_get_selector_part(obj->styles[i].selector);
if(part_act != part) continue;
@@ -796,7 +819,7 @@ static lv_style_res_t get_prop_core(const lv_obj_t * obj, lv_style_selector_t se
if((state_act & state_inv)) continue;
/*Check only better candidates*/
- if(state_act <= weight) continue;
+ if((int32_t)state_act <= weight) continue;
found = lv_style_get_prop_inlined(obj_style->style, prop, v);
if(found == LV_STYLE_RES_FOUND) {
@@ -1026,14 +1049,14 @@ static lv_layer_type_t calculate_layer_type(lv_obj_t * obj)
#if LV_DRAW_TRANSFORM_USE_MATRIX
if(lv_obj_get_transform(obj) != NULL) return LV_LAYER_TYPE_TRANSFORM;
#endif
- if(lv_obj_get_style_transform_rotation(obj, 0) != 0) return LV_LAYER_TYPE_TRANSFORM;
- if(lv_obj_get_style_transform_scale_x(obj, 0) != 256) return LV_LAYER_TYPE_TRANSFORM;
- if(lv_obj_get_style_transform_scale_y(obj, 0) != 256) return LV_LAYER_TYPE_TRANSFORM;
- if(lv_obj_get_style_transform_skew_x(obj, 0) != 0) return LV_LAYER_TYPE_TRANSFORM;
- if(lv_obj_get_style_transform_skew_y(obj, 0) != 0) return LV_LAYER_TYPE_TRANSFORM;
- if(lv_obj_get_style_opa_layered(obj, 0) != LV_OPA_COVER) return LV_LAYER_TYPE_SIMPLE;
- if(lv_obj_get_style_bitmap_mask_src(obj, 0) != NULL) return LV_LAYER_TYPE_SIMPLE;
- if(lv_obj_get_style_blend_mode(obj, 0) != LV_BLEND_MODE_NORMAL) return LV_LAYER_TYPE_SIMPLE;
+ if(lv_obj_get_style_transform_rotation(obj, LV_PART_MAIN) != 0) return LV_LAYER_TYPE_TRANSFORM;
+ if(lv_obj_get_style_transform_scale_x(obj, LV_PART_MAIN) != 256) return LV_LAYER_TYPE_TRANSFORM;
+ if(lv_obj_get_style_transform_scale_y(obj, LV_PART_MAIN) != 256) return LV_LAYER_TYPE_TRANSFORM;
+ if(lv_obj_get_style_transform_skew_x(obj, LV_PART_MAIN) != 0) return LV_LAYER_TYPE_TRANSFORM;
+ if(lv_obj_get_style_transform_skew_y(obj, LV_PART_MAIN) != 0) return LV_LAYER_TYPE_TRANSFORM;
+ if(lv_obj_get_style_opa_layered(obj, LV_PART_MAIN) != LV_OPA_COVER) return LV_LAYER_TYPE_SIMPLE;
+ if(lv_obj_get_style_bitmap_mask_src(obj, LV_PART_MAIN) != NULL) return LV_LAYER_TYPE_SIMPLE;
+ if(lv_obj_get_style_blend_mode(obj, LV_PART_MAIN) != LV_BLEND_MODE_NORMAL) return LV_LAYER_TYPE_SIMPLE;
return LV_LAYER_TYPE_NONE;
}
@@ -1045,6 +1068,7 @@ static void full_cache_refresh(lv_obj_t * obj, lv_part_t part)
obj->style_main_prop_is_set = 0;
for(i = 0; i < obj->style_cnt; i++) {
if(lv_obj_style_get_selector_part(obj->styles[i].selector) != LV_PART_MAIN) continue;
+ if(obj->styles[i].is_disabled) continue;
lv_style_t * style = (lv_style_t *)obj->styles[i].style;
uint32_t j;
if(lv_style_is_const(style)) {
@@ -1065,6 +1089,8 @@ static void full_cache_refresh(lv_obj_t * obj, lv_part_t part)
obj->style_other_prop_is_set = 0;
for(i = 0; i < obj->style_cnt; i++) {
if(lv_obj_style_get_selector_part(obj->styles[i].selector) == LV_PART_MAIN) continue;
+ if(obj->styles[i].is_disabled) continue;
+
lv_style_t * style = (lv_style_t *)obj->styles[i].style;
uint32_t j;
if(lv_style_is_const(style)) {
diff --git a/lib/libesp32_lvgl/lvgl/src/core/lv_obj_style.h b/lib/libesp32_lvgl/lvgl/src/core/lv_obj_style.h
index f94a63a49..a5306d244 100644
--- a/lib/libesp32_lvgl/lvgl/src/core/lv_obj_style.h
+++ b/lib/libesp32_lvgl/lvgl/src/core/lv_obj_style.h
@@ -25,6 +25,49 @@ extern "C" {
* TYPEDEFS
**********************/
+/**
+ * Possible states of a widget.
+ * OR-ed values are possible
+ */
+typedef enum {
+ LV_STATE_DEFAULT = 0x0000,
+ LV_STATE_CHECKED = 0x0001,
+ LV_STATE_FOCUSED = 0x0002,
+ LV_STATE_FOCUS_KEY = 0x0004,
+ LV_STATE_EDITED = 0x0008,
+ LV_STATE_HOVERED = 0x0010,
+ LV_STATE_PRESSED = 0x0020,
+ LV_STATE_SCROLLED = 0x0040,
+ LV_STATE_DISABLED = 0x0080,
+ LV_STATE_USER_1 = 0x1000,
+ LV_STATE_USER_2 = 0x2000,
+ LV_STATE_USER_3 = 0x4000,
+ LV_STATE_USER_4 = 0x8000,
+
+ LV_STATE_ANY = 0xFFFF, /**< Special value can be used in some functions to target all states*/
+} lv_state_t;
+
+/**
+ * The possible parts of widgets.
+ * The parts can be considered as the internal building block of the widgets.
+ * E.g. slider = background + indicator + knob
+ * Not all parts are used by every widget
+ */
+
+typedef enum {
+ LV_PART_MAIN = 0x000000, /**< A background like rectangle*/
+ LV_PART_SCROLLBAR = 0x010000, /**< The scrollbar(s)*/
+ LV_PART_INDICATOR = 0x020000, /**< Indicator, e.g. for slider, bar, switch, or the tick box of the checkbox*/
+ LV_PART_KNOB = 0x030000, /**< Like handle to grab to adjust the value*/
+ LV_PART_SELECTED = 0x040000, /**< Indicate the currently selected option or section*/
+ LV_PART_ITEMS = 0x050000, /**< Used if the widget has multiple similar elements (e.g. table cells)*/
+ LV_PART_CURSOR = 0x060000, /**< Mark a specific place e.g. for text area's cursor or on a chart*/
+
+ LV_PART_CUSTOM_FIRST = 0x080000, /**< Extension point for custom widgets*/
+
+ LV_PART_ANY = 0x0F0000, /**< Special value can be used in some functions to target all parts*/
+} lv_part_t;
+
typedef enum {
LV_STYLE_STATE_CMP_SAME, /**< The style properties in the 2 states are identical */
LV_STYLE_STATE_CMP_DIFF_REDRAW, /**< The differences can be shown with a simple redraw */
@@ -32,6 +75,13 @@ typedef enum {
LV_STYLE_STATE_CMP_DIFF_LAYOUT, /**< The differences can be shown with a simple redraw */
} lv_style_state_cmp_t;
+/**
+ * A joint type for `lv_part_t` and `lv_state_t`. Example values
+ * - `0`: means `LV_PART_MAIN | LV_STATE_DEFAULT`
+ * - `LV_STATE_PRSSED`
+ * - `LV_PART_KNOB`
+ * - `LV_PART_KNOB | LV_STATE_PRESSED | LV_STATE_CHECKED`
+ */
typedef uint32_t lv_style_selector_t;
/**********************
@@ -110,6 +160,24 @@ void lv_obj_report_style_change(lv_style_t * style);
*/
void lv_obj_refresh_style(lv_obj_t * obj, lv_part_t part, lv_style_prop_t prop);
+/**
+ * Temporary disable a style for a selector. It will look like is the style wasn't added
+ * @param obj pointer to an object
+ * @param style pointer to a style
+ * @param selector the selector of a style (e.g. LV_STATE_PRESSED | LV_PART_KNOB)
+ * @param dis true: disable the style, false: enable the style
+ */
+void lv_obj_style_set_disabled(lv_obj_t * obj, const lv_style_t * style, lv_style_selector_t selector, bool dis);
+
+/**
+ * Get if a given style is disabled on an object.
+ * @param obj pointer to an object
+ * @param style pointer to a style
+ * @param selector the selector of a style (e.g. LV_STATE_PRESSED | LV_PART_KNOB)
+ * @return true: disable the style, false: enable the style
+ */
+bool lv_obj_style_get_disabled(lv_obj_t * obj, const lv_style_t * style, lv_style_selector_t selector);
+
/**
* Enable or disable automatic style refreshing when a new style is added/removed to/from an object
* or any other style change happens.
@@ -183,12 +251,12 @@ void lv_obj_fade_out(lv_obj_t * obj, uint32_t time, uint32_t delay);
static inline lv_state_t lv_obj_style_get_selector_state(lv_style_selector_t selector)
{
- return selector & 0xFFFF;
+ return (lv_state_t)(selector & 0xFFFF);
}
static inline lv_part_t lv_obj_style_get_selector_part(lv_style_selector_t selector)
{
- return selector & 0xFF0000;
+ return (lv_part_t)(selector & 0xFF0000);
}
#include "lv_obj_style_gen.h"
diff --git a/lib/libesp32_lvgl/lvgl/src/core/lv_obj_style_gen.c b/lib/libesp32_lvgl/lvgl/src/core/lv_obj_style_gen.c
index 8910d9a0e..4b73f5c72 100644
--- a/lib/libesp32_lvgl/lvgl/src/core/lv_obj_style_gen.c
+++ b/lib/libesp32_lvgl/lvgl/src/core/lv_obj_style_gen.c
@@ -530,6 +530,14 @@ void lv_obj_set_style_image_recolor_opa(lv_obj_t * obj, lv_opa_t value, lv_style
lv_obj_set_local_style_prop(obj, LV_STYLE_IMAGE_RECOLOR_OPA, v, selector);
}
+void lv_obj_set_style_image_colorkey(lv_obj_t * obj, const lv_image_colorkey_t * value, lv_style_selector_t selector)
+{
+ lv_style_value_t v = {
+ .ptr = value
+ };
+ lv_obj_set_local_style_prop(obj, LV_STYLE_IMAGE_COLORKEY, v, selector);
+}
+
void lv_obj_set_style_line_width(lv_obj_t * obj, int32_t value, lv_style_selector_t selector)
{
lv_style_value_t v = {
diff --git a/lib/libesp32_lvgl/lvgl/src/core/lv_obj_style_gen.h b/lib/libesp32_lvgl/lvgl/src/core/lv_obj_style_gen.h
index ff85e38b9..5be2b8940 100644
--- a/lib/libesp32_lvgl/lvgl/src/core/lv_obj_style_gen.h
+++ b/lib/libesp32_lvgl/lvgl/src/core/lv_obj_style_gen.h
@@ -451,6 +451,12 @@ static inline lv_opa_t lv_obj_get_style_image_recolor_opa(const lv_obj_t * obj,
return (lv_opa_t)v.num;
}
+static inline const lv_image_colorkey_t * lv_obj_get_style_image_colorkey(const lv_obj_t * obj, lv_part_t part)
+{
+ lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_IMAGE_COLORKEY);
+ return (const lv_image_colorkey_t *)v.ptr;
+}
+
static inline int32_t lv_obj_get_style_line_width(const lv_obj_t * obj, lv_part_t part)
{
lv_style_value_t v = lv_obj_get_style_prop(obj, part, LV_STYLE_LINE_WIDTH);
@@ -864,6 +870,7 @@ void lv_obj_set_style_shadow_opa(lv_obj_t * obj, lv_opa_t value, lv_style_select
void lv_obj_set_style_image_opa(lv_obj_t * obj, lv_opa_t value, lv_style_selector_t selector);
void lv_obj_set_style_image_recolor(lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector);
void lv_obj_set_style_image_recolor_opa(lv_obj_t * obj, lv_opa_t value, lv_style_selector_t selector);
+void lv_obj_set_style_image_colorkey(lv_obj_t * obj, const lv_image_colorkey_t * value, lv_style_selector_t selector);
void lv_obj_set_style_line_width(lv_obj_t * obj, int32_t value, lv_style_selector_t selector);
void lv_obj_set_style_line_dash_width(lv_obj_t * obj, int32_t value, lv_style_selector_t selector);
void lv_obj_set_style_line_dash_gap(lv_obj_t * obj, int32_t value, lv_style_selector_t selector);
diff --git a/lib/libesp32_lvgl/lvgl/src/core/lv_obj_style_private.h b/lib/libesp32_lvgl/lvgl/src/core/lv_obj_style_private.h
index e6be1279e..97bb607f7 100644
--- a/lib/libesp32_lvgl/lvgl/src/core/lv_obj_style_private.h
+++ b/lib/libesp32_lvgl/lvgl/src/core/lv_obj_style_private.h
@@ -29,6 +29,7 @@ struct _lv_obj_style_t {
uint32_t selector : 24;
uint32_t is_local : 1;
uint32_t is_trans : 1;
+ uint32_t is_disabled : 1;
};
struct _lv_obj_style_transition_dsc_t {
diff --git a/lib/libesp32_lvgl/lvgl/src/core/lv_obj_tree.h b/lib/libesp32_lvgl/lvgl/src/core/lv_obj_tree.h
index e86957634..9850b5ad1 100644
--- a/lib/libesp32_lvgl/lvgl/src/core/lv_obj_tree.h
+++ b/lib/libesp32_lvgl/lvgl/src/core/lv_obj_tree.h
@@ -40,7 +40,7 @@ typedef lv_obj_tree_walk_res_t (*lv_obj_tree_walk_cb_t)(lv_obj_t *, void *);
/**
* Delete an object and all of its children.
* Also remove the objects from their group and remove all animations (if any).
- * Send `LV_EVENT_DELETED` to deleted objects.
+ * Send `LV_EVENT_DELETE` to deleted objects.
* @param obj pointer to an object
*/
void lv_obj_delete(lv_obj_t * obj);
@@ -48,7 +48,7 @@ void lv_obj_delete(lv_obj_t * obj);
/**
* Delete all children of an object.
* Also remove the objects from their group and remove all animations (if any).
- * Send `LV_EVENT_DELETED` to deleted objects.
+ * Send `LV_EVENT_DELETE` to deleted objects.
* @param obj pointer to an object
*/
void lv_obj_clean(lv_obj_t * obj);
diff --git a/lib/libesp32_lvgl/lvgl/src/core/lv_refr.c b/lib/libesp32_lvgl/lvgl/src/core/lv_refr.c
index 3d5860473..9e546c862 100644
--- a/lib/libesp32_lvgl/lvgl/src/core/lv_refr.c
+++ b/lib/libesp32_lvgl/lvgl/src/core/lv_refr.c
@@ -44,13 +44,18 @@ static void refr_invalid_areas(void);
static void refr_sync_areas(void);
static void refr_area(const lv_area_t * area_p, int32_t y_offset);
static void refr_configured_layer(lv_layer_t * layer);
-static lv_obj_t * lv_refr_get_top_obj(const lv_area_t * area_p, lv_obj_t * obj);
static void refr_obj_and_children(lv_layer_t * layer, lv_obj_t * top_obj);
-static void refr_obj(lv_layer_t * layer, lv_obj_t * obj);
static uint32_t get_max_row(lv_display_t * disp, int32_t area_w, int32_t area_h);
static void draw_buf_flush(lv_display_t * disp);
static void call_flush_cb(lv_display_t * disp, const lv_area_t * area, uint8_t * px_map);
static void wait_for_flushing(lv_display_t * disp);
+static lv_result_t layer_get_area(lv_layer_t * layer, lv_obj_t * obj, lv_layer_type_t layer_type,
+ lv_area_t * layer_area_out, lv_area_t * obj_draw_size_out);
+static bool alpha_test_area_on_obj(lv_obj_t * obj, const lv_area_t * area);
+#if LV_DRAW_TRANSFORM_USE_MATRIX
+ static bool refr_check_obj_clip_overflow(lv_layer_t * layer, lv_obj_t * obj);
+ static void refr_obj_matrix(lv_layer_t * layer, lv_obj_t * obj);
+#endif
/**********************
* STATIC VARIABLES
@@ -167,7 +172,7 @@ void lv_obj_redraw(lv_layer_t * layer, lv_obj_t * obj)
if(clip_corner == false) {
for(i = 0; i < child_cnt; i++) {
lv_obj_t * child = obj->spec_attr->children[i];
- refr_obj(layer, child);
+ lv_obj_refr(layer, child);
}
/*If the object was visible on the clip area call the post draw events too*/
@@ -196,7 +201,7 @@ void lv_obj_redraw(lv_layer_t * layer, lv_obj_t * obj)
for(i = 0; i < child_cnt; i++) {
lv_obj_t * child = obj->spec_attr->children[i];
- refr_obj(layer_children, child);
+ lv_obj_refr(layer_children, child);
}
/*If all the children are redrawn send 'post draw' draw*/
@@ -217,7 +222,7 @@ void lv_obj_redraw(lv_layer_t * layer, lv_obj_t * obj)
for(i = 0; i < child_cnt; i++) {
lv_obj_t * child = obj->spec_attr->children[i];
- refr_obj(layer_children, child);
+ lv_obj_refr(layer_children, child);
}
/*If all the children are redrawn send 'post draw' draw*/
@@ -239,7 +244,7 @@ void lv_obj_redraw(lv_layer_t * layer, lv_obj_t * obj)
layer->_clip_area = mid;
for(i = 0; i < child_cnt; i++) {
lv_obj_t * child = obj->spec_attr->children[i];
- refr_obj(layer, child);
+ lv_obj_refr(layer, child);
}
/*If all the children are redrawn make 'post draw' draw*/
@@ -379,7 +384,12 @@ void lv_display_refr_timer(lv_timer_t * tmr)
return;
}
- lv_display_send_event(disp_refr, LV_EVENT_REFR_START, NULL);
+ lv_result_t res = lv_display_send_event(disp_refr, LV_EVENT_REFR_START, NULL);
+ if(res == LV_RESULT_INVALID) {
+ LV_TRACE_REFR("deleted");
+ LV_PROFILER_REFR_END;
+ return;
+ }
/*Refresh the screen's layout if required*/
LV_PROFILER_LAYOUT_BEGIN_TAG("layout");
@@ -432,6 +442,162 @@ refr_finish:
LV_PROFILER_REFR_END;
}
+/**
+ * Search the most top object which fully covers an area
+ * @param area_p pointer to an area
+ * @param obj the first object to start the searching (typically a screen)
+ * @return
+ */
+lv_obj_t * lv_refr_get_top_obj(const lv_area_t * area_p, lv_obj_t * obj)
+{
+ lv_obj_t * found_p = NULL;
+
+ if(lv_area_is_in(area_p, &obj->coords, 0) == false) return NULL;
+ if(lv_obj_has_flag(obj, LV_OBJ_FLAG_HIDDEN)) return NULL;
+ if(lv_obj_get_layer_type(obj) != LV_LAYER_TYPE_NONE) return NULL;
+ if(lv_obj_get_style_opa(obj, LV_PART_MAIN) < LV_OPA_MAX) return NULL;
+
+ /*If this object is fully cover the draw area then check the children too*/
+ lv_cover_check_info_t info;
+ info.res = LV_COVER_RES_COVER;
+ info.area = area_p;
+ lv_obj_send_event(obj, LV_EVENT_COVER_CHECK, &info);
+ if(info.res == LV_COVER_RES_MASKED) return NULL;
+
+ int32_t i;
+ int32_t child_cnt = lv_obj_get_child_count(obj);
+ for(i = child_cnt - 1; i >= 0; i--) {
+ lv_obj_t * child = obj->spec_attr->children[i];
+ found_p = lv_refr_get_top_obj(area_p, child);
+
+ /*If a children is ok then break*/
+ if(found_p != NULL) {
+ break;
+ }
+ }
+
+ /*If no better children use this object*/
+ if(found_p == NULL && info.res == LV_COVER_RES_COVER) {
+ found_p = obj;
+ }
+
+ return found_p;
+}
+
+
+void lv_obj_refr(lv_layer_t * layer, lv_obj_t * obj)
+{
+ LV_ASSERT_NULL(layer);
+ LV_ASSERT_NULL(obj);
+ if(lv_obj_has_flag(obj, LV_OBJ_FLAG_HIDDEN)) return;
+
+ /*If `opa_layered != LV_OPA_COVER` draw the widget on a new layer and blend that layer with the given opacity.*/
+ const lv_opa_t opa_layered = lv_obj_get_style_opa_layered(obj, LV_PART_MAIN);
+ if(opa_layered <= LV_OPA_MIN) return;
+
+ const lv_opa_t layer_opa_ori = layer->opa;
+ const lv_color32_t layer_recolor = layer->recolor;
+
+ /*Normal `opa` (not layered) will just scale down `bg_opa`, `text_opa`, etc, in the upcoming drawings.*/
+ const lv_opa_t opa_main = lv_obj_get_style_opa(obj, LV_PART_MAIN);
+ if(opa_main < LV_OPA_MAX) {
+ layer->opa = LV_OPA_MIX2(layer_opa_ori, opa_main);
+ }
+
+ layer->recolor = lv_obj_style_apply_recolor(obj, LV_PART_MAIN, layer->recolor);
+
+ lv_layer_type_t layer_type = lv_obj_get_layer_type(obj);
+ if(layer_type == LV_LAYER_TYPE_NONE) {
+ lv_obj_redraw(layer, obj);
+ }
+#if LV_DRAW_TRANSFORM_USE_MATRIX
+ /*If the layer opa is full then use the matrix transform*/
+ else if(opa_layered >= LV_OPA_MAX && !refr_check_obj_clip_overflow(layer, obj)) {
+ refr_obj_matrix(layer, obj);
+ }
+#endif /* LV_DRAW_TRANSFORM_USE_MATRIX */
+ else {
+ lv_area_t layer_area_full;
+ lv_area_t obj_draw_size;
+ lv_result_t res = layer_get_area(layer, obj, layer_type, &layer_area_full, &obj_draw_size);
+ if(res != LV_RESULT_OK) return;
+
+ /*Simple layers can be subdivided into smaller layers*/
+ uint32_t max_rgb_row_height = lv_area_get_height(&layer_area_full);
+ uint32_t max_argb_row_height = lv_area_get_height(&layer_area_full);
+ if(layer_type == LV_LAYER_TYPE_SIMPLE) {
+ int32_t w = lv_area_get_width(&layer_area_full);
+ uint8_t px_size = lv_color_format_get_size(disp_refr->color_format);
+ max_rgb_row_height = LV_DRAW_LAYER_SIMPLE_BUF_SIZE / w / px_size;
+ max_argb_row_height = LV_DRAW_LAYER_SIMPLE_BUF_SIZE / w / sizeof(lv_color32_t);
+ }
+
+ lv_area_t layer_area_act;
+ layer_area_act.x1 = layer_area_full.x1;
+ layer_area_act.x2 = layer_area_full.x2;
+ layer_area_act.y1 = layer_area_full.y1;
+ layer_area_act.y2 = layer_area_full.y1;
+
+ while(layer_area_act.y2 < layer_area_full.y2) {
+ /* Test with an RGB layer size (which is larger than the ARGB layer size)
+ * If it really doesn't need alpha use it. Else switch to the ARGB size*/
+ layer_area_act.y2 = layer_area_act.y1 + max_rgb_row_height - 1;
+ if(layer_area_act.y2 > layer_area_full.y2) layer_area_act.y2 = layer_area_full.y2;
+
+ const void * bitmap_mask_src = lv_obj_get_style_bitmap_mask_src(obj, LV_PART_MAIN);
+ bool area_need_alpha = bitmap_mask_src || alpha_test_area_on_obj(obj, &layer_area_act);
+
+ if(area_need_alpha) {
+ layer_area_act.y2 = layer_area_act.y1 + max_argb_row_height - 1;
+ if(layer_area_act.y2 > layer_area_full.y2) layer_area_act.y2 = layer_area_full.y2;
+ }
+
+ lv_layer_t * new_layer = lv_draw_layer_create(layer,
+ area_need_alpha ? LV_COLOR_FORMAT_ARGB8888 : LV_COLOR_FORMAT_NATIVE, &layer_area_act);
+ lv_obj_redraw(new_layer, obj);
+
+ lv_point_t pivot = {
+ .x = lv_obj_get_style_transform_pivot_x(obj, LV_PART_MAIN),
+ .y = lv_obj_get_style_transform_pivot_y(obj, LV_PART_MAIN)
+ };
+
+ if(LV_COORD_IS_PCT(pivot.x)) {
+ pivot.x = (LV_COORD_GET_PCT(pivot.x) * lv_area_get_width(&obj->coords)) / 100;
+ }
+ if(LV_COORD_IS_PCT(pivot.y)) {
+ pivot.y = (LV_COORD_GET_PCT(pivot.y) * lv_area_get_height(&obj->coords)) / 100;
+ }
+
+ lv_draw_image_dsc_t layer_draw_dsc;
+ lv_draw_image_dsc_init(&layer_draw_dsc);
+ layer_draw_dsc.pivot.x = obj->coords.x1 + pivot.x - new_layer->buf_area.x1;
+ layer_draw_dsc.pivot.y = obj->coords.y1 + pivot.y - new_layer->buf_area.y1;
+
+ layer_draw_dsc.opa = opa_layered;
+ layer_draw_dsc.rotation = lv_obj_get_style_transform_rotation(obj, LV_PART_MAIN);
+ while(layer_draw_dsc.rotation > 3600) layer_draw_dsc.rotation -= 3600;
+ while(layer_draw_dsc.rotation < 0) layer_draw_dsc.rotation += 3600;
+ layer_draw_dsc.scale_x = lv_obj_get_style_transform_scale_x(obj, LV_PART_MAIN);
+ layer_draw_dsc.scale_y = lv_obj_get_style_transform_scale_y(obj, LV_PART_MAIN);
+ layer_draw_dsc.skew_x = lv_obj_get_style_transform_skew_x(obj, LV_PART_MAIN);
+ layer_draw_dsc.skew_y = lv_obj_get_style_transform_skew_y(obj, LV_PART_MAIN);
+ layer_draw_dsc.blend_mode = lv_obj_get_style_blend_mode(obj, LV_PART_MAIN);
+ layer_draw_dsc.antialias = disp_refr->antialiasing;
+ layer_draw_dsc.bitmap_mask_src = bitmap_mask_src;
+ layer_draw_dsc.image_area = obj_draw_size;
+ layer_draw_dsc.src = new_layer;
+
+ lv_draw_layer(layer, &layer_draw_dsc, &layer_area_act);
+
+ layer_area_act.y1 = layer_area_act.y2 + 1;
+ }
+ }
+
+ /* Restore the original layer opa and recolor */
+ layer->opa = layer_opa_ori;
+ layer->recolor = layer_recolor;
+}
+
/**********************
* STATIC FUNCTIONS
**********************/
@@ -585,6 +751,9 @@ static void refr_invalid_areas(void)
if(disp_refr->inv_p == 0) return;
LV_PROFILER_REFR_BEGIN;
+ /*Notify the display driven rendering has started*/
+ lv_display_send_event(disp_refr, LV_EVENT_RENDER_START, NULL);
+
/*Find the last area which will be drawn*/
int32_t i;
int32_t last_i = 0;
@@ -595,9 +764,6 @@ static void refr_invalid_areas(void)
}
}
- /*Notify the display driven rendering has started*/
- lv_display_send_event(disp_refr, LV_EVENT_RENDER_START, NULL);
-
disp_refr->last_area = 0;
disp_refr->last_part = 0;
disp_refr->rendering_in_progress = true;
@@ -695,7 +861,7 @@ static void refr_area(const lv_area_t * area_p, int32_t y_offset)
}
else if(disp_refr->render_mode == LV_DISPLAY_RENDER_MODE_DIRECT ||
disp_refr->render_mode == LV_DISPLAY_RENDER_MODE_FULL) {
- /*In direct mode and full mode the the buffer area is always the whole screen, not considering rotation*/
+ /*In direct mode and full mode the buffer area is always the whole screen, not considering rotation*/
layer->buf_area.x1 = 0;
layer->buf_area.y1 = 0;
if(lv_display_get_matrix_rotation(disp_refr)) {
@@ -713,7 +879,7 @@ static void refr_area(const lv_area_t * area_p, int32_t y_offset)
uint32_t tile_cnt = 1;
int32_t tile_h = lv_area_get_height(area_p);
if(LV_COLOR_FORMAT_IS_INDEXED(layer->color_format) == false) {
- /* Assume that the the buffer size (can be screen sized or smaller in case of partial mode)
+ /* Assume that the buffer size (can be screen sized or smaller in case of partial mode)
* and max tile size are the optimal scenario. From this calculate the ideal tile size
* and set the tile count and tile height accordingly.
*/
@@ -902,48 +1068,6 @@ static void refr_configured_layer(lv_layer_t * layer)
LV_PROFILER_REFR_END;
}
-/**
- * Search the most top object which fully covers an area
- * @param area_p pointer to an area
- * @param obj the first object to start the searching (typically a screen)
- * @return
- */
-static lv_obj_t * lv_refr_get_top_obj(const lv_area_t * area_p, lv_obj_t * obj)
-{
- lv_obj_t * found_p = NULL;
-
- if(lv_area_is_in(area_p, &obj->coords, 0) == false) return NULL;
- if(lv_obj_has_flag(obj, LV_OBJ_FLAG_HIDDEN)) return NULL;
- if(lv_obj_get_layer_type(obj) != LV_LAYER_TYPE_NONE) return NULL;
- if(lv_obj_get_style_opa(obj, LV_PART_MAIN) < LV_OPA_MAX) return NULL;
-
- /*If this object is fully cover the draw area then check the children too*/
- lv_cover_check_info_t info;
- info.res = LV_COVER_RES_COVER;
- info.area = area_p;
- lv_obj_send_event(obj, LV_EVENT_COVER_CHECK, &info);
- if(info.res == LV_COVER_RES_MASKED) return NULL;
-
- int32_t i;
- int32_t child_cnt = lv_obj_get_child_count(obj);
- for(i = child_cnt - 1; i >= 0; i--) {
- lv_obj_t * child = obj->spec_attr->children[i];
- found_p = lv_refr_get_top_obj(area_p, child);
-
- /*If a children is ok then break*/
- if(found_p != NULL) {
- break;
- }
- }
-
- /*If no better children use this object*/
- if(found_p == NULL && info.res == LV_COVER_RES_COVER) {
- found_p = obj;
- }
-
- return found_p;
-}
-
/**
* Make the refreshing from an object. Draw all its children and the youngers too.
* @param top_p pointer to an objects. Start the drawing from it.
@@ -970,7 +1094,7 @@ static void refr_obj_and_children(lv_layer_t * layer, lv_obj_t * top_obj)
}
/*Refresh the top object and its children*/
- refr_obj(layer, top_obj);
+ lv_obj_refr(layer, top_obj);
/*Do until not reach the screen*/
while(parent != NULL) {
@@ -984,7 +1108,7 @@ static void refr_obj_and_children(lv_layer_t * layer, lv_obj_t * top_obj)
}
else {
/*Refresh the objects*/
- refr_obj(layer, child);
+ lv_obj_refr(layer, child);
}
}
@@ -1075,18 +1199,18 @@ static bool obj_get_matrix(lv_obj_t * obj, lv_matrix_t * matrix)
}
lv_point_t pivot = {
- .x = lv_obj_get_style_transform_pivot_x(obj, 0),
- .y = lv_obj_get_style_transform_pivot_y(obj, 0)
+ .x = lv_obj_get_style_transform_pivot_x(obj, LV_PART_MAIN),
+ .y = lv_obj_get_style_transform_pivot_y(obj, LV_PART_MAIN)
};
pivot.x = obj->coords.x1 + lv_pct_to_px(pivot.x, lv_area_get_width(&obj->coords));
pivot.y = obj->coords.y1 + lv_pct_to_px(pivot.y, lv_area_get_height(&obj->coords));
- int32_t rotation = lv_obj_get_style_transform_rotation(obj, 0);
- int32_t scale_x = lv_obj_get_style_transform_scale_x(obj, 0);
- int32_t scale_y = lv_obj_get_style_transform_scale_y(obj, 0);
- int32_t skew_x = lv_obj_get_style_transform_skew_x(obj, 0);
- int32_t skew_y = lv_obj_get_style_transform_skew_y(obj, 0);
+ int32_t rotation = lv_obj_get_style_transform_rotation(obj, LV_PART_MAIN);
+ int32_t scale_x = lv_obj_get_style_transform_scale_x(obj, LV_PART_MAIN);
+ int32_t scale_y = lv_obj_get_style_transform_scale_y(obj, LV_PART_MAIN);
+ int32_t skew_x = lv_obj_get_style_transform_skew_x(obj, LV_PART_MAIN);
+ int32_t skew_y = lv_obj_get_style_transform_skew_y(obj, LV_PART_MAIN);
if(scale_x <= 0 || scale_y <= 0) {
/* NOT draw if scale is negative or zero */
@@ -1162,7 +1286,7 @@ static void refr_obj_matrix(lv_layer_t * layer, lv_obj_t * obj)
static bool refr_check_obj_clip_overflow(lv_layer_t * layer, lv_obj_t * obj)
{
- if(lv_obj_get_style_transform_rotation(obj, 0) == 0) {
+ if(lv_obj_get_style_transform_rotation(obj, LV_PART_MAIN) == 0) {
return false;
}
@@ -1185,117 +1309,6 @@ static bool refr_check_obj_clip_overflow(lv_layer_t * layer, lv_obj_t * obj)
#endif /* LV_DRAW_TRANSFORM_USE_MATRIX */
-static void refr_obj(lv_layer_t * layer, lv_obj_t * obj)
-{
- if(lv_obj_has_flag(obj, LV_OBJ_FLAG_HIDDEN)) return;
-
- /*If `opa_layered != LV_OPA_COVER` draw the widget on a new layer and blend that layer with the given opacity.*/
- const lv_opa_t opa_layered = lv_obj_get_style_opa_layered(obj, LV_PART_MAIN);
- if(opa_layered <= LV_OPA_MIN) return;
-
- const lv_opa_t layer_opa_ori = layer->opa;
- const lv_color32_t layer_recolor = layer->recolor;
-
- /*Normal `opa` (not layered) will just scale down `bg_opa`, `text_opa`, etc, in the upcoming drawings.*/
- const lv_opa_t opa_main = lv_obj_get_style_opa(obj, LV_PART_MAIN);
- if(opa_main < LV_OPA_MAX) {
- layer->opa = LV_OPA_MIX2(layer_opa_ori, opa_main);
- }
-
- layer->recolor = lv_obj_style_apply_recolor(obj, LV_PART_MAIN, layer->recolor);
-
- lv_layer_type_t layer_type = lv_obj_get_layer_type(obj);
- if(layer_type == LV_LAYER_TYPE_NONE) {
- lv_obj_redraw(layer, obj);
- }
-#if LV_DRAW_TRANSFORM_USE_MATRIX
- /*If the layer opa is full then use the matrix transform*/
- else if(opa_layered >= LV_OPA_MAX && !refr_check_obj_clip_overflow(layer, obj)) {
- refr_obj_matrix(layer, obj);
- }
-#endif /* LV_DRAW_TRANSFORM_USE_MATRIX */
- else {
- lv_area_t layer_area_full;
- lv_area_t obj_draw_size;
- lv_result_t res = layer_get_area(layer, obj, layer_type, &layer_area_full, &obj_draw_size);
- if(res != LV_RESULT_OK) return;
-
- /*Simple layers can be subdivided into smaller layers*/
- uint32_t max_rgb_row_height = lv_area_get_height(&layer_area_full);
- uint32_t max_argb_row_height = lv_area_get_height(&layer_area_full);
- if(layer_type == LV_LAYER_TYPE_SIMPLE) {
- int32_t w = lv_area_get_width(&layer_area_full);
- uint8_t px_size = lv_color_format_get_size(disp_refr->color_format);
- max_rgb_row_height = LV_DRAW_LAYER_SIMPLE_BUF_SIZE / w / px_size;
- max_argb_row_height = LV_DRAW_LAYER_SIMPLE_BUF_SIZE / w / sizeof(lv_color32_t);
- }
-
- lv_area_t layer_area_act;
- layer_area_act.x1 = layer_area_full.x1;
- layer_area_act.x2 = layer_area_full.x2;
- layer_area_act.y1 = layer_area_full.y1;
- layer_area_act.y2 = layer_area_full.y1;
-
- while(layer_area_act.y2 < layer_area_full.y2) {
- /* Test with an RGB layer size (which is larger than the ARGB layer size)
- * If it really doesn't need alpha use it. Else switch to the ARGB size*/
- layer_area_act.y2 = layer_area_act.y1 + max_rgb_row_height - 1;
- if(layer_area_act.y2 > layer_area_full.y2) layer_area_act.y2 = layer_area_full.y2;
-
- const void * bitmap_mask_src = lv_obj_get_style_bitmap_mask_src(obj, 0);
- bool area_need_alpha = bitmap_mask_src || alpha_test_area_on_obj(obj, &layer_area_act);
-
- if(area_need_alpha) {
- layer_area_act.y2 = layer_area_act.y1 + max_argb_row_height - 1;
- if(layer_area_act.y2 > layer_area_full.y2) layer_area_act.y2 = layer_area_full.y2;
- }
-
- lv_layer_t * new_layer = lv_draw_layer_create(layer,
- area_need_alpha ? LV_COLOR_FORMAT_ARGB8888 : LV_COLOR_FORMAT_NATIVE, &layer_area_act);
- lv_obj_redraw(new_layer, obj);
-
- lv_point_t pivot = {
- .x = lv_obj_get_style_transform_pivot_x(obj, 0),
- .y = lv_obj_get_style_transform_pivot_y(obj, 0)
- };
-
- if(LV_COORD_IS_PCT(pivot.x)) {
- pivot.x = (LV_COORD_GET_PCT(pivot.x) * lv_area_get_width(&obj->coords)) / 100;
- }
- if(LV_COORD_IS_PCT(pivot.y)) {
- pivot.y = (LV_COORD_GET_PCT(pivot.y) * lv_area_get_height(&obj->coords)) / 100;
- }
-
- lv_draw_image_dsc_t layer_draw_dsc;
- lv_draw_image_dsc_init(&layer_draw_dsc);
- layer_draw_dsc.pivot.x = obj->coords.x1 + pivot.x - new_layer->buf_area.x1;
- layer_draw_dsc.pivot.y = obj->coords.y1 + pivot.y - new_layer->buf_area.y1;
-
- layer_draw_dsc.opa = opa_layered;
- layer_draw_dsc.rotation = lv_obj_get_style_transform_rotation(obj, 0);
- while(layer_draw_dsc.rotation > 3600) layer_draw_dsc.rotation -= 3600;
- while(layer_draw_dsc.rotation < 0) layer_draw_dsc.rotation += 3600;
- layer_draw_dsc.scale_x = lv_obj_get_style_transform_scale_x(obj, 0);
- layer_draw_dsc.scale_y = lv_obj_get_style_transform_scale_y(obj, 0);
- layer_draw_dsc.skew_x = lv_obj_get_style_transform_skew_x(obj, 0);
- layer_draw_dsc.skew_y = lv_obj_get_style_transform_skew_y(obj, 0);
- layer_draw_dsc.blend_mode = lv_obj_get_style_blend_mode(obj, 0);
- layer_draw_dsc.antialias = disp_refr->antialiasing;
- layer_draw_dsc.bitmap_mask_src = bitmap_mask_src;
- layer_draw_dsc.image_area = obj_draw_size;
- layer_draw_dsc.src = new_layer;
-
- lv_draw_layer(layer, &layer_draw_dsc, &layer_area_act);
-
- layer_area_act.y1 = layer_area_act.y2 + 1;
- }
- }
-
- /* Restore the original layer opa and recolor */
- layer->opa = layer_opa_ori;
- layer->recolor = layer_recolor;
-}
-
static uint32_t get_max_row(lv_display_t * disp, int32_t area_w, int32_t area_h)
{
lv_color_format_t cf = disp->color_format;
diff --git a/lib/libesp32_lvgl/lvgl/src/core/lv_refr_private.h b/lib/libesp32_lvgl/lvgl/src/core/lv_refr_private.h
index 3b2985b70..0519d6529 100644
--- a/lib/libesp32_lvgl/lvgl/src/core/lv_refr_private.h
+++ b/lib/libesp32_lvgl/lvgl/src/core/lv_refr_private.h
@@ -58,6 +58,21 @@ lv_display_t * lv_refr_get_disp_refreshing(void);
*/
void lv_refr_set_disp_refreshing(lv_display_t * disp);
+/**
+ * Search the most top object which fully covers an area
+ * @param area_p pointer to an area
+ * @param obj the first object to start the searching (typically a screen)
+ * @return
+ */
+lv_obj_t * lv_refr_get_top_obj(const lv_area_t * area_p, lv_obj_t * obj);
+
+/**
+ * Render an object to a layer
+ * @param layer target drawing layer
+ * @param obj object to render
+ */
+void lv_obj_refr(lv_layer_t * layer, lv_obj_t * obj);
+
/**********************
* MACROS
**********************/
diff --git a/lib/libesp32_lvgl/lvgl/src/display/lv_display.c b/lib/libesp32_lvgl/lvgl/src/display/lv_display.c
index c183b392f..0a261f3e5 100644
--- a/lib/libesp32_lvgl/lvgl/src/display/lv_display.c
+++ b/lib/libesp32_lvgl/lvgl/src/display/lv_display.c
@@ -1,5 +1,5 @@
/**
- * @file lv_disp.c
+ * @file lv_display.c
*
*/
@@ -178,6 +178,7 @@ void lv_display_delete(lv_display_t * disp)
if(disp == lv_refr_get_disp_refreshing()) was_refr = true;
lv_display_send_event(disp, LV_EVENT_DELETE, NULL);
+ lv_event_mark_deleted(disp);
lv_event_remove_all(&(disp->event_list));
/*Detach the input devices*/
@@ -592,6 +593,8 @@ uint32_t lv_display_get_tile_cnt(lv_display_t * disp)
void lv_display_set_antialiasing(lv_display_t * disp, bool en)
{
+ LV_LOG_WARN("Disabling anti-aliasing is not supported since v9. This function will be removed.");
+
if(disp == NULL) disp = lv_display_get_default();
if(disp == NULL) return;
@@ -636,6 +639,17 @@ lv_obj_t * lv_display_get_screen_active(lv_display_t * disp)
return disp->act_scr;
}
+lv_obj_t * lv_display_get_screen_loading(lv_display_t * disp)
+{
+ if(!disp) disp = lv_display_get_default();
+ if(!disp) {
+ LV_LOG_WARN("no display registered to get the current screen being loaded");
+ return NULL;
+ }
+
+ return disp->scr_to_load;
+}
+
lv_obj_t * lv_display_get_screen_prev(lv_display_t * disp)
{
if(!disp) disp = lv_display_get_default();
@@ -680,9 +694,31 @@ lv_obj_t * lv_display_get_layer_bottom(lv_display_t * disp)
return disp->bottom_layer;
}
+#if LV_USE_OBJ_NAME
+
+lv_obj_t * lv_display_get_screen_by_name(const lv_display_t * disp, const char * screen_name)
+{
+ if(!disp) disp = lv_display_get_default();
+ if(!disp) {
+ LV_LOG_WARN("no display registered to get a screen by name");
+ return NULL;
+ }
+
+ uint32_t i;
+ for(i = 0; i < disp->screen_cnt; i++) {
+ const char * n = lv_obj_get_name(disp->screens[i]);
+ if(n && lv_streq(screen_name, n)) return disp->screens[i];
+ }
+
+ return NULL;
+
+}
+
+#endif /*LV_USE_OBJ_NAME*/
+
void lv_screen_load(struct _lv_obj_t * scr)
{
- lv_screen_load_anim(scr, LV_SCR_LOAD_ANIM_NONE, 0, 0, false);
+ lv_screen_load_anim(scr, LV_SCREEN_LOAD_ANIM_NONE, 0, 0, false);
}
void lv_screen_load_anim(lv_obj_t * new_scr, lv_screen_load_anim_t anim_type, uint32_t time, uint32_t delay,
@@ -748,76 +784,76 @@ void lv_screen_load_anim(lv_obj_t * new_scr, lv_screen_load_anim_t anim_type, ui
lv_anim_set_delay(&a_old, delay);
switch(anim_type) {
- case LV_SCR_LOAD_ANIM_NONE:
+ case LV_SCREEN_LOAD_ANIM_NONE:
/*Create a dummy animation to apply the delay*/
lv_anim_set_exec_cb(&a_new, set_x_anim);
lv_anim_set_values(&a_new, 0, 0);
break;
- case LV_SCR_LOAD_ANIM_OVER_LEFT:
+ case LV_SCREEN_LOAD_ANIM_OVER_LEFT:
lv_anim_set_exec_cb(&a_new, set_x_anim);
lv_anim_set_values(&a_new, lv_display_get_horizontal_resolution(d), 0);
break;
- case LV_SCR_LOAD_ANIM_OVER_RIGHT:
+ case LV_SCREEN_LOAD_ANIM_OVER_RIGHT:
lv_anim_set_exec_cb(&a_new, set_x_anim);
lv_anim_set_values(&a_new, -lv_display_get_horizontal_resolution(d), 0);
break;
- case LV_SCR_LOAD_ANIM_OVER_TOP:
+ case LV_SCREEN_LOAD_ANIM_OVER_TOP:
lv_anim_set_exec_cb(&a_new, set_y_anim);
lv_anim_set_values(&a_new, lv_display_get_vertical_resolution(d), 0);
break;
- case LV_SCR_LOAD_ANIM_OVER_BOTTOM:
+ case LV_SCREEN_LOAD_ANIM_OVER_BOTTOM:
lv_anim_set_exec_cb(&a_new, set_y_anim);
lv_anim_set_values(&a_new, -lv_display_get_vertical_resolution(d), 0);
break;
- case LV_SCR_LOAD_ANIM_MOVE_LEFT:
+ case LV_SCREEN_LOAD_ANIM_MOVE_LEFT:
lv_anim_set_exec_cb(&a_new, set_x_anim);
lv_anim_set_values(&a_new, lv_display_get_horizontal_resolution(d), 0);
lv_anim_set_exec_cb(&a_old, set_x_anim);
lv_anim_set_values(&a_old, 0, -lv_display_get_horizontal_resolution(d));
break;
- case LV_SCR_LOAD_ANIM_MOVE_RIGHT:
+ case LV_SCREEN_LOAD_ANIM_MOVE_RIGHT:
lv_anim_set_exec_cb(&a_new, set_x_anim);
lv_anim_set_values(&a_new, -lv_display_get_horizontal_resolution(d), 0);
lv_anim_set_exec_cb(&a_old, set_x_anim);
lv_anim_set_values(&a_old, 0, lv_display_get_horizontal_resolution(d));
break;
- case LV_SCR_LOAD_ANIM_MOVE_TOP:
+ case LV_SCREEN_LOAD_ANIM_MOVE_TOP:
lv_anim_set_exec_cb(&a_new, set_y_anim);
lv_anim_set_values(&a_new, lv_display_get_vertical_resolution(d), 0);
lv_anim_set_exec_cb(&a_old, set_y_anim);
lv_anim_set_values(&a_old, 0, -lv_display_get_vertical_resolution(d));
break;
- case LV_SCR_LOAD_ANIM_MOVE_BOTTOM:
+ case LV_SCREEN_LOAD_ANIM_MOVE_BOTTOM:
lv_anim_set_exec_cb(&a_new, set_y_anim);
lv_anim_set_values(&a_new, -lv_display_get_vertical_resolution(d), 0);
lv_anim_set_exec_cb(&a_old, set_y_anim);
lv_anim_set_values(&a_old, 0, lv_display_get_vertical_resolution(d));
break;
- case LV_SCR_LOAD_ANIM_FADE_IN:
+ case LV_SCREEN_LOAD_ANIM_FADE_IN:
lv_anim_set_exec_cb(&a_new, opa_scale_anim);
lv_anim_set_values(&a_new, LV_OPA_TRANSP, LV_OPA_COVER);
break;
- case LV_SCR_LOAD_ANIM_FADE_OUT:
+ case LV_SCREEN_LOAD_ANIM_FADE_OUT:
lv_anim_set_exec_cb(&a_old, opa_scale_anim);
lv_anim_set_values(&a_old, LV_OPA_COVER, LV_OPA_TRANSP);
break;
- case LV_SCR_LOAD_ANIM_OUT_LEFT:
+ case LV_SCREEN_LOAD_ANIM_OUT_LEFT:
lv_anim_set_exec_cb(&a_old, set_x_anim);
lv_anim_set_values(&a_old, 0, -lv_display_get_horizontal_resolution(d));
break;
- case LV_SCR_LOAD_ANIM_OUT_RIGHT:
+ case LV_SCREEN_LOAD_ANIM_OUT_RIGHT:
lv_anim_set_exec_cb(&a_old, set_x_anim);
lv_anim_set_values(&a_old, 0, lv_display_get_horizontal_resolution(d));
break;
- case LV_SCR_LOAD_ANIM_OUT_TOP:
+ case LV_SCREEN_LOAD_ANIM_OUT_TOP:
lv_anim_set_exec_cb(&a_old, set_y_anim);
lv_anim_set_values(&a_old, 0, -lv_display_get_vertical_resolution(d));
break;
- case LV_SCR_LOAD_ANIM_OUT_BOTTOM:
+ case LV_SCREEN_LOAD_ANIM_OUT_BOTTOM:
lv_anim_set_exec_cb(&a_old, set_y_anim);
lv_anim_set_values(&a_old, 0, lv_display_get_vertical_resolution(d));
break;
@@ -881,21 +917,7 @@ uint32_t lv_display_remove_event_cb_with_user_data(lv_display_t * disp, lv_event
lv_result_t lv_display_send_event(lv_display_t * disp, lv_event_code_t code, void * param)
{
-
- lv_event_t e;
- lv_memzero(&e, sizeof(e));
- e.code = code;
- e.current_target = disp;
- e.original_target = disp;
- e.param = param;
- lv_result_t res;
- res = lv_event_send(&disp->event_list, &e, true);
- if(res != LV_RESULT_OK) return res;
-
- res = lv_event_send(&disp->event_list, &e, false);
- if(res != LV_RESULT_OK) return res;
-
- return res;
+ return lv_event_push_and_send(&disp->event_list, code, disp, param);
}
lv_area_t * lv_event_get_invalidated_area(lv_event_t * e)
@@ -1328,11 +1350,11 @@ static void scr_anim_completed(lv_anim_t * a)
static bool is_out_anim(lv_screen_load_anim_t anim_type)
{
- return anim_type == LV_SCR_LOAD_ANIM_FADE_OUT ||
- anim_type == LV_SCR_LOAD_ANIM_OUT_LEFT ||
- anim_type == LV_SCR_LOAD_ANIM_OUT_RIGHT ||
- anim_type == LV_SCR_LOAD_ANIM_OUT_TOP ||
- anim_type == LV_SCR_LOAD_ANIM_OUT_BOTTOM;
+ return anim_type == LV_SCREEN_LOAD_ANIM_FADE_OUT ||
+ anim_type == LV_SCREEN_LOAD_ANIM_OUT_LEFT ||
+ anim_type == LV_SCREEN_LOAD_ANIM_OUT_RIGHT ||
+ anim_type == LV_SCREEN_LOAD_ANIM_OUT_TOP ||
+ anim_type == LV_SCREEN_LOAD_ANIM_OUT_BOTTOM;
}
static void disp_event_cb(lv_event_t * e)
diff --git a/lib/libesp32_lvgl/lvgl/src/display/lv_display.h b/lib/libesp32_lvgl/lvgl/src/display/lv_display.h
index ddcd1ee05..9ac4e10c2 100644
--- a/lib/libesp32_lvgl/lvgl/src/display/lv_display.h
+++ b/lib/libesp32_lvgl/lvgl/src/display/lv_display.h
@@ -60,22 +60,22 @@ typedef enum {
} lv_display_render_mode_t;
typedef enum {
- LV_SCR_LOAD_ANIM_NONE,
- LV_SCR_LOAD_ANIM_OVER_LEFT,
- LV_SCR_LOAD_ANIM_OVER_RIGHT,
- LV_SCR_LOAD_ANIM_OVER_TOP,
- LV_SCR_LOAD_ANIM_OVER_BOTTOM,
- LV_SCR_LOAD_ANIM_MOVE_LEFT,
- LV_SCR_LOAD_ANIM_MOVE_RIGHT,
- LV_SCR_LOAD_ANIM_MOVE_TOP,
- LV_SCR_LOAD_ANIM_MOVE_BOTTOM,
- LV_SCR_LOAD_ANIM_FADE_IN,
- LV_SCR_LOAD_ANIM_FADE_ON = LV_SCR_LOAD_ANIM_FADE_IN, /*For backward compatibility*/
- LV_SCR_LOAD_ANIM_FADE_OUT,
- LV_SCR_LOAD_ANIM_OUT_LEFT,
- LV_SCR_LOAD_ANIM_OUT_RIGHT,
- LV_SCR_LOAD_ANIM_OUT_TOP,
- LV_SCR_LOAD_ANIM_OUT_BOTTOM,
+ LV_SCREEN_LOAD_ANIM_NONE,
+ LV_SCREEN_LOAD_ANIM_OVER_LEFT,
+ LV_SCREEN_LOAD_ANIM_OVER_RIGHT,
+ LV_SCREEN_LOAD_ANIM_OVER_TOP,
+ LV_SCREEN_LOAD_ANIM_OVER_BOTTOM,
+ LV_SCREEN_LOAD_ANIM_MOVE_LEFT,
+ LV_SCREEN_LOAD_ANIM_MOVE_RIGHT,
+ LV_SCREEN_LOAD_ANIM_MOVE_TOP,
+ LV_SCREEN_LOAD_ANIM_MOVE_BOTTOM,
+ LV_SCREEN_LOAD_ANIM_FADE_IN,
+ LV_SCREEN_LOAD_ANIM_FADE_ON = LV_SCREEN_LOAD_ANIM_FADE_IN, /*For backward compatibility*/
+ LV_SCREEN_LOAD_ANIM_FADE_OUT,
+ LV_SCREEN_LOAD_ANIM_OUT_LEFT,
+ LV_SCREEN_LOAD_ANIM_OUT_RIGHT,
+ LV_SCREEN_LOAD_ANIM_OUT_TOP,
+ LV_SCREEN_LOAD_ANIM_OUT_BOTTOM,
} lv_screen_load_anim_t;
typedef void (*lv_display_flush_cb_t)(lv_display_t * disp, const lv_area_t * area, uint8_t * px_map);
@@ -358,6 +358,7 @@ void lv_display_set_tile_cnt(lv_display_t * disp, uint32_t tile_cnt);
uint32_t lv_display_get_tile_cnt(lv_display_t * disp);
/**
+ * Disabling anti-aliasing is not supported since v9. This function will be removed.
* Enable anti-aliasing for the render engine
* @param disp pointer to a display
* @param en true/false
@@ -408,6 +409,13 @@ lv_obj_t * lv_display_get_screen_active(lv_display_t * disp);
*/
lv_obj_t * lv_display_get_screen_prev(lv_display_t * disp);
+/**
+ * Return the screen that is currently being loaded by the display
+ * @param disp pointer to a display object (NULL to use the default screen)
+ * @return pointer to the screen being loaded or NULL if no screen is currently being loaded
+ */
+lv_obj_t * lv_display_get_screen_loading(lv_display_t * disp);
+
/**
* Return the top layer. The top layer is the same on all screens and it is above the normal screen layer.
* @param disp pointer to display which top layer should be get. (NULL to use the default screen)
@@ -430,6 +438,20 @@ lv_obj_t * lv_display_get_layer_sys(lv_display_t * disp);
*/
lv_obj_t * lv_display_get_layer_bottom(lv_display_t * disp);
+
+#if LV_USE_OBJ_NAME
+
+/**
+ * Get screen by its name on a display. The name should be set by
+ * `lv_obj_set_name()` or `lv_obj_set_name_static()`.
+ * @param disp pointer to a display or NULL to use default display
+ * @param screen_name name of the screen to get
+ * @return pointer to the screen, or NULL if not found.
+ */
+lv_obj_t * lv_display_get_screen_by_name(const lv_display_t * disp, const char * screen_name);
+
+#endif /*LV_USE_OBJ_NAME*/
+
/**
* Load a screen on the default display
* @param scr pointer to a screen
@@ -439,7 +461,7 @@ void lv_screen_load(struct _lv_obj_t * scr);
/**
* Switch screen with animation
* @param scr pointer to the new screen to load
- * @param anim_type type of the animation from `lv_screen_load_anim_t`, e.g. `LV_SCR_LOAD_ANIM_MOVE_LEFT`
+ * @param anim_type type of the animation from `lv_screen_load_anim_t`, e.g. `LV_SCREEN_LOAD_ANIM_MOVE_LEFT`
* @param time time of the animation
* @param delay delay before the transition
* @param auto_del true: automatically delete the old screen
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/convert/helium/lv_draw_buf_convert_helium.c b/lib/libesp32_lvgl/lvgl/src/draw/convert/helium/lv_draw_buf_convert_helium.c
new file mode 100644
index 000000000..ff5b8cd68
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/draw/convert/helium/lv_draw_buf_convert_helium.c
@@ -0,0 +1,100 @@
+/**
+ * @file lv_draw_buf_convert_helium.c
+ *
+ */
+
+/*********************
+ * INCLUDES
+ *********************/
+#include "../../../lv_conf_internal.h"
+
+#if LV_USE_DRAW_SW_ASM == LV_DRAW_SW_ASM_HELIUM
+#include "lv_draw_buf_convert_helium.h"
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * STATIC PROTOTYPES
+ **********************/
+
+/**********************
+ * STATIC FUNCTIONS
+ **********************/
+
+/**********************
+ * MACROS
+ **********************/
+
+/**********************
+ * GLOBAL FUNCTIONS
+ **********************/
+
+lv_result_t _lv_draw_buf_convert_premultiply_indexed_helium(lv_draw_buf_t * buf)
+{
+ lv_draw_buf_t palette_draw_buf;
+
+ LV_ASSERT_NULL(buf);
+
+ if(!LV_COLOR_FORMAT_IS_INDEXED(buf->header.cf)) {
+ LV_LOG_WARN("Unsupported color format : %d", buf->header.cf);
+ return LV_RESULT_INVALID;
+ }
+
+ lv_memcpy(&palette_draw_buf, buf, sizeof(lv_draw_buf_t));
+
+ palette_draw_buf.header.w = LV_COLOR_INDEXED_PALETTE_SIZE(buf->header.cf);
+ palette_draw_buf.header.h = 1;
+ palette_draw_buf.header.cf = LV_COLOR_FORMAT_ARGB8888;
+ palette_draw_buf.header.stride = 4 * palette_draw_buf.header.w;
+
+ return _lv_draw_buf_convert_premultiply_argb8888_helium(&palette_draw_buf);
+}
+
+lv_result_t _lv_draw_buf_convert_premultiply_argb8888_helium(lv_draw_buf_t * buf)
+{
+ LV_ASSERT_NULL(buf);
+
+ uint32_t h = buf->header.h;
+ uint32_t w = buf->header.w;
+ uint32_t stride = buf->header.stride;
+ uint8_t * data = (uint8_t *)buf->data;
+
+ if(buf->header.cf != LV_COLOR_FORMAT_ARGB8888) {
+ LV_LOG_WARN("Unsupported color format : %d", buf->header.cf);
+ return LV_RESULT_INVALID;
+ }
+
+ __asm volatile(
+ " .p2align 2 \n"
+ " 1: \n"
+ " mov r0, %[pSource] \n"
+ " mov r1, %[pTarget] \n"
+ " wlstp.8 lr, %[w], 3f \n"
+ " 2: \n"
+ " vld40.u8 {q0, q1, q2, q3}, [r0] \n"
+ " vld41.u8 {q0, q1, q2, q3}, [r0] \n"
+ " vld42.u8 {q0, q1, q2, q3}, [r0] \n"
+ " vld43.u8 {q0, q1, q2, q3}, [r0]! \n"
+ " vrmulh.u8 q0, q0, q3 \n"
+ " vrmulh.u8 q1, q1, q3 \n"
+ " vrmulh.u8 q2, q2, q3 \n"
+ " vst40.u8 {q0, q1, q2, q3}, [r1] \n"
+ " vst41.u8 {q0, q1, q2, q3}, [r1] \n"
+ " vst42.u8 {q0, q1, q2, q3}, [r1] \n"
+ " vst43.u8 {q0, q1, q2, q3}, [r1]! \n"
+ " letp lr, 2b \n"
+ " 3: \n"
+ " adds %[pSource], %[src_stride] \n"
+ " adds %[pTarget], %[dst_stride] \n"
+ " subs %[h], #1 \n"
+ " bne 1b \n"
+ : [pSource] "+r"(data), [pTarget] "+r"(data), [h] "+r"(h)
+ : [w] "r"(w), [src_stride] "r"(stride), [dst_stride] "r"(stride)
+ : "q0", "q1", "q2", "q3", "r0", "r1", "lr", "memory");
+
+ return LV_RESULT_OK;
+}
+
+#endif /* LV_USE_DRAW_SW_ASM == LV_DRAW_SW_ASM_HELIUM */
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/convert/helium/lv_draw_buf_convert_helium.h b/lib/libesp32_lvgl/lvgl/src/draw/convert/helium/lv_draw_buf_convert_helium.h
new file mode 100644
index 000000000..3fb670d6c
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/draw/convert/helium/lv_draw_buf_convert_helium.h
@@ -0,0 +1,57 @@
+/**
+ * @file lv_draw_buf_convert_helium.h
+ *
+ */
+
+#ifndef LV_DRAW_BUF_CONVERT_HELIUM_H
+#define LV_DRAW_BUF_CONVERT_HELIUM_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "../../../misc/lv_color.h"
+#include "../../lv_draw_buf.h"
+
+#if LV_USE_DRAW_SW_ASM == LV_DRAW_SW_ASM_HELIUM
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+#ifndef LV_DRAW_CONVERT_PREMULTIPLY_INDEXED
+#define LV_DRAW_CONVERT_PREMULTIPLY_INDEXED(buf) \
+ _lv_draw_buf_convert_premultiply_indexed_helium(buf)
+#endif
+
+#ifndef LV_DRAW_CONVERT_PREMULTIPLY_ARGB8888
+#define LV_DRAW_CONVERT_PREMULTIPLY_ARGB8888(buf) \
+ _lv_draw_buf_convert_premultiply_argb8888_helium(buf)
+#endif
+
+/**********************
+ * GLOBAL PROTOTYPES
+ **********************/
+
+/**
+ * Convert indexed draw_buf to premultiplied format with helium specific optimizations
+ * @param buf pointer to a draw buf
+ */
+lv_result_t _lv_draw_buf_convert_premultiply_indexed_helium(lv_draw_buf_t * buf);
+
+/**
+ * Convert argb8888 draw_buf to premultiplied format with helium specific optimizations
+ * @param buf pointer to a draw buf
+ */
+lv_result_t _lv_draw_buf_convert_premultiply_argb8888_helium(lv_draw_buf_t * buf);
+
+#endif /*LV_USE_DRAW_SW_ASM == LV_DRAW_SW_ASM_HELIUM*/
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* LV_DRAW_BUF_CONVERT_HELIUM_H */
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/convert/lv_draw_buf_convert.c b/lib/libesp32_lvgl/lvgl/src/draw/convert/lv_draw_buf_convert.c
new file mode 100644
index 000000000..7e01b4eb3
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/draw/convert/lv_draw_buf_convert.c
@@ -0,0 +1,130 @@
+/**
+ * @file lv_draw_buf_convert.c
+ *
+ */
+
+/*********************
+ * INCLUDES
+ *********************/
+#include "lv_draw_buf_convert.h"
+
+#if LV_USE_DRAW_SW_ASM == LV_DRAW_SW_ASM_NEON
+ #include "neon/lv_draw_buf_convert_neon.h"
+#elif LV_USE_DRAW_SW_ASM == LV_DRAW_SW_ASM_HELIUM
+ #include "helium/lv_draw_buf_convert_helium.h"
+#elif LV_USE_DRAW_SW_ASM == LV_DRAW_SW_ASM_CUSTOM
+ #include LV_DRAW_SW_ASM_CUSTOM_INCLUDE
+#endif
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * STATIC PROTOTYPES
+ **********************/
+
+/**********************
+ * STATIC FUNCTIONS
+ **********************/
+
+/**********************
+ * MACROS
+ **********************/
+
+#ifndef LV_DRAW_CONVERT_PREMULTIPLY_INDEXED
+ #define LV_DRAW_CONVERT_PREMULTIPLY_INDEXED(...) LV_RESULT_INVALID
+#endif
+
+#ifndef LV_DRAW_CONVERT_PREMULTIPLY_ARGB8888
+ #define LV_DRAW_CONVERT_PREMULTIPLY_ARGB8888(...) LV_RESULT_INVALID
+#endif
+
+#ifndef LV_DRAW_CONVERT_PREMULTIPLY_RGB565A8
+ #define LV_DRAW_CONVERT_PREMULTIPLY_RGB565A8(...) LV_RESULT_INVALID
+#endif
+
+#ifndef LV_DRAW_CONVERT_PREMULTIPLY_ARGB8565
+ #define LV_DRAW_CONVERT_PREMULTIPLY_ARGB8565(...) LV_RESULT_INVALID
+#endif
+
+/**********************
+ * GLOBAL FUNCTIONS
+ **********************/
+
+lv_result_t lv_draw_buf_convert_premultiply(lv_draw_buf_t * draw_buf)
+{
+ LV_ASSERT_NULL(draw_buf);
+
+ /*Premultiply color with alpha, do case by case by judging color format*/
+ lv_color_format_t cf = draw_buf->header.cf;
+ if(LV_COLOR_FORMAT_IS_INDEXED(cf)) {
+ if(LV_RESULT_INVALID == LV_DRAW_CONVERT_PREMULTIPLY_INDEXED(draw_buf)) {
+ int size = LV_COLOR_INDEXED_PALETTE_SIZE(cf);
+ lv_color32_t * palette = (lv_color32_t *)draw_buf->data;
+ for(int i = 0; i < size; i++) {
+ lv_color_premultiply(&palette[i]);
+ }
+ }
+ }
+ else if(cf == LV_COLOR_FORMAT_ARGB8888) {
+ if(LV_RESULT_INVALID == LV_DRAW_CONVERT_PREMULTIPLY_ARGB8888(draw_buf)) {
+ uint32_t h = draw_buf->header.h;
+ uint32_t w = draw_buf->header.w;
+ uint32_t stride = draw_buf->header.stride;
+ uint8_t * line = (uint8_t *)draw_buf->data;
+ for(uint32_t y = 0; y < h; y++) {
+ lv_color32_t * pixel = (lv_color32_t *)line;
+ for(uint32_t x = 0; x < w; x++) {
+ lv_color_premultiply(pixel);
+ pixel++;
+ }
+ line += stride;
+ }
+ }
+ }
+ else if(cf == LV_COLOR_FORMAT_RGB565A8) {
+ if(LV_RESULT_INVALID == LV_DRAW_CONVERT_PREMULTIPLY_RGB565A8(draw_buf)) {
+ uint32_t h = draw_buf->header.h;
+ uint32_t w = draw_buf->header.w;
+ uint32_t stride = draw_buf->header.stride;
+ uint32_t alpha_stride = stride / 2;
+ uint8_t * line = (uint8_t *)draw_buf->data;
+ lv_opa_t * alpha = (lv_opa_t *)(line + stride * h);
+ for(uint32_t y = 0; y < h; y++) {
+ lv_color16_t * pixel = (lv_color16_t *)line;
+ for(uint32_t x = 0; x < w; x++) {
+ lv_color16_premultiply(pixel, alpha[x]);
+ pixel++;
+ }
+ line += stride;
+ alpha += alpha_stride;
+ }
+ }
+ }
+ else if(cf == LV_COLOR_FORMAT_ARGB8565) {
+ if(LV_RESULT_INVALID == LV_DRAW_CONVERT_PREMULTIPLY_ARGB8565(draw_buf)) {
+ uint32_t h = draw_buf->header.h;
+ uint32_t w = draw_buf->header.w;
+ uint32_t stride = draw_buf->header.stride;
+ uint8_t * line = (uint8_t *)draw_buf->data;
+ for(uint32_t y = 0; y < h; y++) {
+ uint8_t * pixel = line;
+ for(uint32_t x = 0; x < w; x++) {
+ uint8_t alpha = pixel[2];
+ lv_color16_premultiply((lv_color16_t *)pixel, alpha);
+ pixel += 3;
+ }
+ line += stride;
+ }
+ }
+ }
+ else if(LV_COLOR_FORMAT_IS_ALPHA_ONLY(cf)) {
+ /*Pass*/
+ }
+ else {
+ LV_LOG_WARN("draw buf has no alpha, cf: %d", cf);
+ }
+
+ return LV_RESULT_OK;
+}
\ No newline at end of file
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/convert/lv_draw_buf_convert.h b/lib/libesp32_lvgl/lvgl/src/draw/convert/lv_draw_buf_convert.h
new file mode 100644
index 000000000..6c2d79e91
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/draw/convert/lv_draw_buf_convert.h
@@ -0,0 +1,39 @@
+/**
+ * @file lv_draw_buf_convert.h
+ *
+ */
+
+#ifndef LV_DRAW_BUF_CONVERT_H
+#define LV_DRAW_BUF_CONVERT_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "../../misc/lv_color.h"
+#include "../lv_draw_buf.h"
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+/**********************
+ * GLOBAL PROTOTYPES
+ **********************/
+
+/**
+ * Convert draw_buf to premultiplied format
+ * @param buf pointer to a draw buf
+ */
+lv_result_t lv_draw_buf_convert_premultiply(lv_draw_buf_t * buf);
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* LV_DRAW_BUF_CONVERT_H */
\ No newline at end of file
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/convert/neon/lv_draw_buf_convert_neon.c b/lib/libesp32_lvgl/lvgl/src/draw/convert/neon/lv_draw_buf_convert_neon.c
new file mode 100644
index 000000000..991f55fb2
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/draw/convert/neon/lv_draw_buf_convert_neon.c
@@ -0,0 +1,132 @@
+/**
+ * @file lv_draw_buf_convert_neon.c
+ *
+ */
+
+/*********************
+ * INCLUDES
+ *********************/
+#include "../../../lv_conf_internal.h"
+
+#if LV_USE_DRAW_SW_ASM == LV_DRAW_SW_ASM_NEON
+
+#include
+#include "lv_draw_buf_convert_neon.h"
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * STATIC PROTOTYPES
+ **********************/
+
+/**********************
+ * STATIC FUNCTIONS
+ **********************/
+
+/**********************
+ * MACROS
+ **********************/
+
+/**********************
+ * GLOBAL FUNCTIONS
+ **********************/
+
+lv_result_t _lv_draw_buf_convert_premultiply_indexed_neon(lv_draw_buf_t * buf)
+{
+ lv_draw_buf_t palette_draw_buf;
+
+ LV_ASSERT_NULL(buf);
+
+ if(!LV_COLOR_FORMAT_IS_INDEXED(buf->header.cf)) {
+ LV_LOG_WARN("Unsupported color format : %d", buf->header.cf);
+ return LV_RESULT_INVALID;
+ }
+
+ lv_memcpy(&palette_draw_buf, buf, sizeof(lv_draw_buf_t));
+
+ palette_draw_buf.header.w = LV_COLOR_INDEXED_PALETTE_SIZE(buf->header.cf);
+ palette_draw_buf.header.h = 1;
+ palette_draw_buf.header.cf = LV_COLOR_FORMAT_ARGB8888;
+ palette_draw_buf.header.stride = 4 * palette_draw_buf.header.w;
+
+ return _lv_draw_buf_convert_premultiply_argb8888_neon(&palette_draw_buf);
+
+}
+
+lv_result_t _lv_draw_buf_convert_premultiply_argb8888_neon(lv_draw_buf_t * buf)
+{
+ LV_ASSERT_NULL(buf);
+
+ uint32_t h = buf->header.h;
+ uint32_t w = buf->header.w;
+ uint32_t stride = buf->header.stride;
+ uint8_t * data = (uint8_t *)buf->data;
+
+ if(buf->header.cf != LV_COLOR_FORMAT_ARGB8888) {
+ LV_LOG_WARN("Unsupported color format : %d", buf->header.cf);
+ return LV_RESULT_INVALID;
+ }
+
+ for(uint32_t y = 0; y < h; y++) {
+ uint8_t * p = (uint8_t *)data;
+ uint32_t remaining_pixels = w;
+
+ while(remaining_pixels >= 8) {
+ uint8x8x4_t rgba = vld4_u8(p);
+
+ uint16x8_t r16 = vmovl_u8(rgba.val[0]);
+ uint16x8_t g16 = vmovl_u8(rgba.val[1]);
+ uint16x8_t b16 = vmovl_u8(rgba.val[2]);
+ uint16x8_t a16 = vmovl_u8(rgba.val[3]);
+
+ rgba.val[0] = vshrn_n_u16(vmulq_u16(r16, a16), 8);
+ rgba.val[1] = vshrn_n_u16(vmulq_u16(g16, a16), 8);
+ rgba.val[2] = vshrn_n_u16(vmulq_u16(b16, a16), 8);
+
+ vst4_u8(p, rgba);
+
+ p += 8 * 4;
+ remaining_pixels -= 8;
+ }
+
+ if(remaining_pixels >= 4) {
+ uint8x8x4_t rgba;
+ rgba = vld4_lane_u8(p, rgba, 0);
+ rgba = vld4_lane_u8(p + 4, rgba, 1);
+ rgba = vld4_lane_u8(p + 8, rgba, 2);
+ rgba = vld4_lane_u8(p + 12, rgba, 3);
+
+ uint16x8_t r16 = vmovl_u8(rgba.val[0]);
+ uint16x8_t g16 = vmovl_u8(rgba.val[1]);
+ uint16x8_t b16 = vmovl_u8(rgba.val[2]);
+ uint16x8_t a16 = vmovl_u8(rgba.val[3]);
+
+ rgba.val[0] = vshrn_n_u16(vmulq_u16(r16, a16), 8);
+ rgba.val[1] = vshrn_n_u16(vmulq_u16(g16, a16), 8);
+ rgba.val[2] = vshrn_n_u16(vmulq_u16(b16, a16), 8);
+
+ vst4_lane_u8(p, rgba, 0);
+ vst4_lane_u8(p + 4, rgba, 1);
+ vst4_lane_u8(p + 8, rgba, 2);
+ vst4_lane_u8(p + 12, rgba, 3);
+
+ p += 4 * 4;
+ remaining_pixels -= 4;
+ }
+
+ while(remaining_pixels--) {
+ uint8_t a = p[3];
+ p[0] = ((uint16_t)(p[0]) * a) >> 8;
+ p[1] = ((uint16_t)(p[1]) * a) >> 8;
+ p[2] = ((uint16_t)(p[2]) * a) >> 8;
+ p += 4;
+ }
+
+ data += stride;
+ }
+
+ return LV_RESULT_OK;
+}
+#endif /* LV_USE_DRAW_SW_ASM == LV_DRAW_SW_ASM_NEON */
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/convert/neon/lv_draw_buf_convert_neon.h b/lib/libesp32_lvgl/lvgl/src/draw/convert/neon/lv_draw_buf_convert_neon.h
new file mode 100644
index 000000000..d97f61e3f
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/draw/convert/neon/lv_draw_buf_convert_neon.h
@@ -0,0 +1,58 @@
+/**
+ * @file lv_draw_buf_convert_neon.h
+ *
+ */
+
+#ifndef LV_DRAW_BUF_CONVERT_NEON_H
+#define LV_DRAW_BUF_CONVERT_NEON_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "../../../misc/lv_color.h"
+#include "../../lv_draw_buf.h"
+
+#if LV_USE_DRAW_SW_ASM == LV_DRAW_SW_ASM_NEON
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+#ifndef LV_DRAW_CONVERT_PREMULTIPLY_INDEXED
+#define LV_DRAW_CONVERT_PREMULTIPLY_INDEXED(buf) \
+ _lv_draw_buf_convert_premultiply_indexed_neon(buf)
+#endif
+
+#ifndef LV_DRAW_CONVERT_PREMULTIPLY_ARGB8888
+#define LV_DRAW_CONVERT_PREMULTIPLY_ARGB8888(buf) \
+ _lv_draw_buf_convert_premultiply_argb8888_neon(buf)
+#endif
+
+/**********************
+ * GLOBAL PROTOTYPES
+ **********************/
+
+/**
+ * Convert indexed draw_buf to premultiplied format with neon specific optimizations
+ * @param buf pointer to a draw buf
+ */
+
+lv_result_t _lv_draw_buf_convert_premultiply_indexed_neon(lv_draw_buf_t * buf);
+
+/**
+ * Convert argb8888 draw_buf to premultiplied format with neon specific optimizations
+ * @param buf pointer to a draw buf
+ */
+lv_result_t _lv_draw_buf_convert_premultiply_argb8888_neon(lv_draw_buf_t * buf);
+#endif /*LV_USE_DRAW_SW_ASM == LV_DRAW_SW_ASM_NEON*/
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* LV_DRAW_BUF_CONVERT_NEON_H */
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/dma2d/lv_draw_dma2d.c b/lib/libesp32_lvgl/lvgl/src/draw/dma2d/lv_draw_dma2d.c
index 465de8c11..afac5121d 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/dma2d/lv_draw_dma2d.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/dma2d/lv_draw_dma2d.c
@@ -35,7 +35,7 @@ static int32_t evaluate_cb(lv_draw_unit_t * draw_unit, lv_draw_task_t * task);
static int32_t dispatch_cb(lv_draw_unit_t * draw_unit, lv_layer_t * layer);
static int32_t delete_cb(lv_draw_unit_t * draw_unit);
#if LV_DRAW_DMA2D_ASYNC
- static void thread_cb(void * arg);
+ static int32_t wait_finish_cb(lv_draw_unit_t * u);
#endif
#if !LV_DRAW_DMA2D_ASYNC
static bool check_transfer_completion(void);
@@ -64,22 +64,22 @@ void lv_draw_dma2d_init(void)
draw_dma2d_unit->base_unit.evaluate_cb = evaluate_cb;
draw_dma2d_unit->base_unit.dispatch_cb = dispatch_cb;
draw_dma2d_unit->base_unit.delete_cb = delete_cb;
+#if LV_DRAW_DMA2D_ASYNC
+ draw_dma2d_unit->base_unit.wait_for_finish_cb = wait_finish_cb;
+#endif
draw_dma2d_unit->base_unit.name = "DMA2D";
#if LV_DRAW_DMA2D_ASYNC
g_unit = draw_dma2d_unit;
-
- lv_result_t res = lv_thread_init(&draw_dma2d_unit->thread, "dma2d", LV_DRAW_THREAD_PRIO, thread_cb, 2 * 1024,
- draw_dma2d_unit);
- LV_ASSERT(res == LV_RESULT_OK);
+ lv_thread_sync_init(&draw_dma2d_unit->interrupt_signal);
#endif
/* enable the DMA2D clock */
-#if defined(STM32F4) || defined(STM32F7) || defined(STM32U5)
+#if defined(STM32F4) || defined(STM32F7) || defined(STM32U5) || defined(STM32L4)
RCC->AHB1ENR |= RCC_AHB1ENR_DMA2DEN;
#elif defined(STM32H7)
RCC->AHB3ENR |= RCC_AHB3ENR_DMA2DEN;
-#elif defined(STM32H7RS)
+#elif defined(STM32H7RS) || defined(STM32N6)
RCC->AHB5ENR |= RCC_AHB5ENR_DMA2DEN;
#else
#warning "LVGL can't enable the clock for DMA2D"
@@ -102,15 +102,12 @@ void lv_draw_dma2d_deinit(void)
RCC->AHB1ENR &= ~RCC_AHB1ENR_DMA2DEN;
#elif defined(STM32H7)
RCC->AHB3ENR &= ~RCC_AHB3ENR_DMA2DEN;
-#elif defined(STM32H7RS)
+#elif defined(STM32H7RS) || defined(STM32N6)
RCC->AHB5ENR &= ~RCC_AHB5ENR_DMA2DEN;
#endif
#if LV_DRAW_DMA2D_ASYNC
- lv_result_t res = lv_thread_delete(&g_unit->thread);
- LV_ASSERT(res == LV_RESULT_OK);
-
- res = lv_thread_sync_delete(&g_unit->interrupt_signal);
+ lv_result_t res = lv_thread_sync_delete(&g_unit->interrupt_signal);
LV_ASSERT(res == LV_RESULT_OK);
g_unit = NULL;
@@ -211,72 +208,16 @@ void lv_draw_dma2d_configure_and_start_transfer(const lv_draw_dma2d_configuratio
#if LV_DRAW_DMA2D_CACHE
void lv_draw_dma2d_invalidate_cache(const lv_draw_dma2d_cache_area_t * mem_area)
{
- if((SCB->CCR & SCB_CCR_DC_Msk) == 0) return; /* data cache is disabled */
-
- uint32_t rows_remaining = mem_area->height;
- uint32_t row_addr = (uint32_t)(uintptr_t) mem_area->first_byte;
- uint32_t row_end_addr = 0;
-
- __DSB();
-
- while(rows_remaining) {
- uint32_t addr = row_addr & ~(__SCB_DCACHE_LINE_SIZE - 1U);
- uint32_t cache_lines = ((((row_addr + mem_area->width_bytes - 1) & ~(__SCB_DCACHE_LINE_SIZE - 1U)) - addr) /
- __SCB_DCACHE_LINE_SIZE) + 1;
-
- if(addr == row_end_addr) {
- addr += __SCB_DCACHE_LINE_SIZE;
- cache_lines--;
- }
-
- while(cache_lines) {
- SCB->DCIMVAC = addr;
- addr += __SCB_DCACHE_LINE_SIZE;
- cache_lines--;
- }
-
- row_end_addr = addr - __SCB_DCACHE_LINE_SIZE;
- row_addr += mem_area->stride;
- rows_remaining--;
- };
-
- __DSB();
- __ISB();
+ if(SCB->CCR & SCB_CCR_DC_Msk) {
+ SCB_InvalidateDCache();
+ }
}
void lv_draw_dma2d_clean_cache(const lv_draw_dma2d_cache_area_t * mem_area)
{
- if((SCB->CCR & SCB_CCR_DC_Msk) == 0) return; /* data cache is disabled */
-
- uint32_t rows_remaining = mem_area->height;
- uint32_t row_addr = (uint32_t)(uintptr_t) mem_area->first_byte;
- uint32_t row_end_addr = 0;
-
- __DSB();
-
- while(rows_remaining) {
- uint32_t addr = row_addr & ~(__SCB_DCACHE_LINE_SIZE - 1U);
- uint32_t cache_lines = ((((row_addr + mem_area->width_bytes - 1) & ~(__SCB_DCACHE_LINE_SIZE - 1U)) - addr) /
- __SCB_DCACHE_LINE_SIZE) + 1;
-
- if(addr == row_end_addr) {
- addr += __SCB_DCACHE_LINE_SIZE;
- cache_lines--;
- }
-
- while(cache_lines) {
- SCB->DCCMVAC = addr;
- addr += __SCB_DCACHE_LINE_SIZE;
- cache_lines--;
- }
-
- row_end_addr = addr - __SCB_DCACHE_LINE_SIZE;
- row_addr += mem_area->stride;
- rows_remaining--;
- };
-
- __DSB();
- __ISB();
+ if(SCB->CCR & SCB_CCR_DC_Msk) {
+ SCB_CleanDCache();
+ }
}
#endif
@@ -344,7 +285,7 @@ static int32_t dispatch_cb(lv_draw_unit_t * draw_unit, lv_layer_t * layer)
if(draw_dma2d_unit->task_act) {
#if LV_DRAW_DMA2D_ASYNC
/*Return immediately if it's busy with draw task*/
- return 0;
+ return LV_DRAW_UNIT_IDLE;
#else
if(!check_transfer_completion()) {
return LV_DRAW_UNIT_IDLE;
@@ -402,29 +343,15 @@ static int32_t dispatch_cb(lv_draw_unit_t * draw_unit, lv_layer_t * layer)
return LV_DRAW_UNIT_IDLE;
}
- void * dest = lv_draw_layer_go_to_xy(layer,
- clipped_coords.x1 - layer->buf_area.x1,
- clipped_coords.y1 - layer->buf_area.y1);
-
if(dsc->opa >= LV_OPA_MAX) {
- lv_draw_dma2d_opaque_image(
- t,
- dest,
- &clipped_coords,
- lv_draw_buf_width_to_stride(lv_area_get_width(&layer->buf_area), dsc->base.layer->color_format));
+ lv_draw_dma2d_opaque_image(t, dsc, &t->area);
}
else {
- lv_draw_dma2d_image(
- t,
- dest,
- &clipped_coords,
- lv_draw_buf_width_to_stride(lv_area_get_width(&layer->buf_area), dsc->base.layer->color_format));
+ lv_draw_dma2d_image(t, dsc, &t->area);
}
}
-#if !LV_DRAW_DMA2D_ASYNC
lv_draw_dispatch_request();
-#endif
return 1;
}
@@ -435,23 +362,18 @@ static int32_t delete_cb(lv_draw_unit_t * draw_unit)
}
#if LV_DRAW_DMA2D_ASYNC
-static void thread_cb(void * arg)
+static int32_t wait_finish_cb(lv_draw_unit_t * draw_unit)
{
- lv_draw_dma2d_unit_t * u = arg;
+ lv_draw_dma2d_unit_t * u = (lv_draw_dma2d_unit_t *) draw_unit;
- lv_thread_sync_init(&u->interrupt_signal);
+ /* If a DMA2D task has been dispatched, wait its interrupt */
+ lv_thread_sync_wait(&u->interrupt_signal);
- while(1) {
-
- do {
- lv_thread_sync_wait(&u->interrupt_signal);
- } while(u->task_act != NULL);
-
- post_transfer_tasks(u);
- lv_draw_dispatch_request();
- }
+ /* Then cleanup the DMA2D draw unit to accept a new task */
+ post_transfer_tasks(u);
+ return 0;
}
-#endif
+#endif /*LV_DRAW_DMA2D_ASYNC*/
#if !LV_DRAW_DMA2D_ASYNC
static bool check_transfer_completion(void)
@@ -465,7 +387,7 @@ static void post_transfer_tasks(lv_draw_dma2d_unit_t * u)
#if LV_DRAW_DMA2D_CACHE
lv_draw_dma2d_invalidate_cache(&u->writing_area);
#endif
- u->task_act->state = LV_DRAW_TASK_STATE_READY;
+ u->task_act->state = LV_DRAW_TASK_STATE_FINISHED;
u->task_act = NULL;
}
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/dma2d/lv_draw_dma2d_fill.c b/lib/libesp32_lvgl/lvgl/src/draw/dma2d/lv_draw_dma2d_fill.c
index 1c0b3a0fc..d4ecdb36c 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/dma2d/lv_draw_dma2d_fill.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/dma2d/lv_draw_dma2d_fill.c
@@ -93,8 +93,9 @@ void lv_draw_dma2d_fill(lv_draw_task_t * t, void * first_pixel, int32_t w, int32
#endif
uint32_t output_offset = (stride / cf_size) - w;
+
lv_draw_dma2d_configuration_t conf = {
- .mode = LV_DRAW_DMA2D_MODE_MEMORY_TO_MEMORY_WITH_BLENDING_AND_FIXED_COLOR_FG,
+ .mode = LV_DRAW_DMA2D_MODE_MEMORY_TO_MEMORY_WITH_BLENDING,
.w = w,
.h = h,
@@ -103,11 +104,16 @@ void lv_draw_dma2d_fill(lv_draw_task_t * t, void * first_pixel, int32_t w, int32
.output_cf = output_cf,
.fg_color = lv_color_to_u32(color),
+ .fg_address = first_pixel,
+ .fg_offset = output_offset,
.fg_alpha_mode = LV_DRAW_DMA2D_ALPHA_MODE_REPLACE_ALPHA_CHANNEL,
.fg_alpha = opa,
+ .fg_cf = LV_DRAW_DMA2D_FGBG_CF_A8,
.bg_address = first_pixel,
.bg_offset = output_offset,
+ .bg_alpha_mode = LV_DRAW_DMA2D_ALPHA_MODE_NO_MODIFY_IMAGE_ALPHA_CHANNEL,
+ .bg_alpha = opa,
.bg_cf = (lv_draw_dma2d_fgbg_cf_t) output_cf
};
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/dma2d/lv_draw_dma2d_img.c b/lib/libesp32_lvgl/lvgl/src/draw/dma2d/lv_draw_dma2d_img.c
index e78bc2b9c..1b569c677 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/dma2d/lv_draw_dma2d_img.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/dma2d/lv_draw_dma2d_img.c
@@ -1,5 +1,5 @@
/**
- * @file lv_draw_dma2d_image.c
+ * @file lv_draw_dma2d_img.c
*
*/
@@ -10,6 +10,10 @@
#include "lv_draw_dma2d_private.h"
#if LV_USE_DRAW_DMA2D
+#include "../lv_draw_image_private.h"
+#include "../lv_image_decoder_private.h"
+#include "../../misc/lv_area_private.h"
+
/*********************
* DEFINES
*********************/
@@ -22,6 +26,14 @@
* STATIC PROTOTYPES
**********************/
+static void lv_draw_dma2d_opaque_image_core(lv_draw_task_t * t, const lv_draw_image_dsc_t * draw_dsc,
+ const lv_image_decoder_dsc_t * decoder_dsc, lv_draw_image_sup_t * sup,
+ const lv_area_t * img_coords, const lv_area_t * clipped_img_area);
+
+static void lv_draw_dma2d_image_core(lv_draw_task_t * t, const lv_draw_image_dsc_t * draw_dsc,
+ const lv_image_decoder_dsc_t * decoder_dsc, lv_draw_image_sup_t * sup,
+ const lv_area_t * img_coords, const lv_area_t * clipped_img_area);
+
/**********************
* STATIC VARIABLES
**********************/
@@ -34,25 +46,60 @@
* GLOBAL FUNCTIONS
**********************/
-void lv_draw_dma2d_opaque_image(lv_draw_task_t * t, void * dest_first_pixel, lv_area_t * clipped_coords,
- int32_t dest_stride)
+void lv_draw_dma2d_opaque_image(lv_draw_task_t * t, const lv_draw_image_dsc_t * draw_dsc,
+ const lv_area_t * coords)
{
- int32_t w = lv_area_get_width(clipped_coords);
- int32_t h = lv_area_get_height(clipped_coords);
+ if(!draw_dsc->tile) {
+ lv_draw_image_normal_helper(t, draw_dsc, coords, lv_draw_dma2d_opaque_image_core);
+ }
+ else {
+ lv_draw_image_tiled_helper(t, draw_dsc, coords, lv_draw_dma2d_opaque_image_core);
+ }
+}
- lv_draw_image_dsc_t * dsc = t->draw_dsc;
- lv_color_format_t output_cf = dsc->base.layer->color_format;
- lv_color_format_t image_cf = dsc->header.cf;
+void lv_draw_dma2d_image(lv_draw_task_t * t, const lv_draw_image_dsc_t * draw_dsc,
+ const lv_area_t * coords)
+{
+ if(!draw_dsc->tile) {
+ lv_draw_image_normal_helper(t, draw_dsc, coords, lv_draw_dma2d_image_core);
+ }
+ else {
+ lv_draw_image_tiled_helper(t, draw_dsc, coords, lv_draw_dma2d_image_core);
+ }
+}
+/**********************
+ * STATIC FUNCTIONS
+ **********************/
+
+static void lv_draw_dma2d_opaque_image_core(lv_draw_task_t * t, const lv_draw_image_dsc_t * draw_dsc,
+ const lv_image_decoder_dsc_t * decoder_dsc, lv_draw_image_sup_t * sup,
+ const lv_area_t * img_coords, const lv_area_t * clipped_img_area)
+{
+ LV_UNUSED(sup);
+ LV_UNUSED(img_coords);
+
+ lv_layer_t * layer = t->target_layer;
+
+ void * dest_first_pixel = lv_draw_layer_go_to_xy(layer,
+ clipped_img_area->x1 - layer->buf_area.x1,
+ clipped_img_area->y1 - layer->buf_area.y1);
+ int32_t dest_stride = lv_draw_buf_width_to_stride(lv_area_get_width(&layer->buf_area), layer->color_format);
+
+ int32_t w = lv_area_get_width(clipped_img_area);
+ int32_t h = lv_area_get_height(clipped_img_area);
+
+ lv_color_format_t output_cf = layer->color_format;
+ uint32_t output_cf_size = lv_color_format_get_size(output_cf);
lv_draw_dma2d_output_cf_t output_cf_dma2d = lv_draw_dma2d_cf_to_dma2d_output_cf(output_cf);
- uint32_t output_cf_size = LV_COLOR_FORMAT_GET_SIZE(output_cf);
+ const lv_draw_buf_t * decoded = decoder_dsc->decoded;
+ const uint8_t * src_buf = decoded->data;
+ uint32_t image_stride = decoded->header.stride;
+ lv_color_format_t image_cf = decoded->header.cf;
lv_draw_dma2d_fgbg_cf_t image_cf_dma2d = (lv_draw_dma2d_fgbg_cf_t) lv_draw_dma2d_cf_to_dma2d_output_cf(image_cf);
uint32_t image_cf_size = LV_COLOR_FORMAT_GET_SIZE(image_cf);
-
- const lv_image_dsc_t * img_dsc = dsc->src;
- uint32_t image_stride = img_dsc->header.stride;
- if(image_stride == 0) image_stride = image_cf_size * img_dsc->header.w;
+ if(image_stride == 0) image_stride = image_cf_size * decoded->header.w;
#if LV_DRAW_DMA2D_CACHE
lv_draw_dma2d_cache_area_t dest_area = {
@@ -69,9 +116,9 @@ void lv_draw_dma2d_opaque_image(lv_draw_task_t * t, void * dest_first_pixel, lv_
}
#endif
- const void * image_first_byte = img_dsc->data
- + (image_stride * (clipped_coords->y1 - dsc->image_area.y1))
- + (image_cf_size * (clipped_coords->x1 - dsc->image_area.x1));
+ const void * image_first_byte = src_buf
+ + (image_stride * (clipped_img_area->y1 - draw_dsc->image_area.y1))
+ + (image_cf_size * (clipped_img_area->x1 - draw_dsc->image_area.x1));
#if LV_DRAW_DMA2D_CACHE
lv_draw_dma2d_cache_area_t src_area = {
@@ -121,26 +168,35 @@ void lv_draw_dma2d_opaque_image(lv_draw_task_t * t, void * dest_first_pixel, lv_
lv_draw_dma2d_configure_and_start_transfer(&conf);
}
-void lv_draw_dma2d_image(lv_draw_task_t * t, void * dest_first_pixel, lv_area_t * clipped_coords,
- int32_t dest_stride)
+static void lv_draw_dma2d_image_core(lv_draw_task_t * t, const lv_draw_image_dsc_t * draw_dsc,
+ const lv_image_decoder_dsc_t * decoder_dsc, lv_draw_image_sup_t * sup,
+ const lv_area_t * img_coords, const lv_area_t * clipped_img_area)
{
- int32_t w = lv_area_get_width(clipped_coords);
- int32_t h = lv_area_get_height(clipped_coords);
+ LV_UNUSED(sup);
+ LV_UNUSED(img_coords);
- lv_draw_image_dsc_t * dsc = t->draw_dsc;
- lv_color_format_t output_cf = dsc->base.layer->color_format;
- lv_color_format_t image_cf = dsc->header.cf;
- lv_opa_t opa = dsc->opa;
+ lv_layer_t * layer = t->target_layer;
+ void * dest_first_pixel = lv_draw_layer_go_to_xy(layer,
+ clipped_img_area->x1 - layer->buf_area.x1,
+ clipped_img_area->y1 - layer->buf_area.y1);
+ int32_t dest_stride = lv_draw_buf_width_to_stride(lv_area_get_width(&layer->buf_area), layer->color_format);
+
+ int32_t w = lv_area_get_width(clipped_img_area);
+ int32_t h = lv_area_get_height(clipped_img_area);
+
+ lv_color_format_t output_cf = layer->color_format;
+ uint32_t output_cf_size = lv_color_format_get_size(output_cf);
lv_draw_dma2d_output_cf_t output_cf_dma2d = lv_draw_dma2d_cf_to_dma2d_output_cf(output_cf);
- uint32_t output_cf_size = LV_COLOR_FORMAT_GET_SIZE(output_cf);
+ const lv_draw_buf_t * decoded = decoder_dsc->decoded;
+ const uint8_t * src_buf = decoded->data;
+ uint32_t image_stride = decoded->header.stride;
+ lv_color_format_t image_cf = decoded->header.cf;
+ lv_opa_t opa = draw_dsc->opa;
lv_draw_dma2d_fgbg_cf_t image_cf_dma2d = (lv_draw_dma2d_fgbg_cf_t) lv_draw_dma2d_cf_to_dma2d_output_cf(image_cf);
uint32_t image_cf_size = LV_COLOR_FORMAT_GET_SIZE(image_cf);
-
- const lv_image_dsc_t * img_dsc = dsc->src;
- uint32_t image_stride = img_dsc->header.stride;
- if(image_stride == 0) image_stride = image_cf_size * img_dsc->header.w;
+ if(image_stride == 0) image_stride = image_cf_size * decoded->header.w;
#if LV_DRAW_DMA2D_CACHE
lv_draw_dma2d_cache_area_t dest_area = {
@@ -155,9 +211,9 @@ void lv_draw_dma2d_image(lv_draw_task_t * t, void * dest_first_pixel, lv_area_t
lv_draw_dma2d_clean_cache(&dest_area);
#endif
- const void * image_first_byte = img_dsc->data
- + (image_stride * (clipped_coords->y1 - dsc->image_area.y1))
- + (image_cf_size * (clipped_coords->x1 - dsc->image_area.x1));
+ const void * image_first_byte = src_buf
+ + (image_stride * (clipped_img_area->y1 - draw_dsc->image_area.y1))
+ + (image_cf_size * (clipped_img_area->x1 - draw_dsc->image_area.x1));
#if LV_DRAW_DMA2D_CACHE
lv_draw_dma2d_cache_area_t src_area = {
@@ -203,8 +259,4 @@ void lv_draw_dma2d_image(lv_draw_task_t * t, void * dest_first_pixel, lv_area_t
lv_draw_dma2d_configure_and_start_transfer(&conf);
}
-/**********************
- * STATIC FUNCTIONS
- **********************/
-
#endif /*LV_USE_DRAW_DMA2D*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/dma2d/lv_draw_dma2d_private.h b/lib/libesp32_lvgl/lvgl/src/draw/dma2d/lv_draw_dma2d_private.h
index 1326351cd..1ba8d97d5 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/dma2d/lv_draw_dma2d_private.h
+++ b/lib/libesp32_lvgl/lvgl/src/draw/dma2d/lv_draw_dma2d_private.h
@@ -31,7 +31,7 @@ extern "C" {
#define LV_DRAW_DMA2D_ASYNC 0
#endif
-#if defined(__CORTEX_M) && (__CORTEX_M == 7)
+#if defined(__CORTEX_M) && ((__CORTEX_M == 7) || (__CORTEX_M == 55))
#define LV_DRAW_DMA2D_CACHE 1
#else
#define LV_DRAW_DMA2D_CACHE 0
@@ -120,7 +120,6 @@ typedef struct {
lv_draw_dma2d_cache_area_t writing_area;
#endif
#if LV_DRAW_DMA2D_ASYNC
- lv_thread_t thread;
lv_thread_sync_t interrupt_signal;
#endif
} lv_draw_dma2d_unit_t;
@@ -131,10 +130,10 @@ typedef struct {
void lv_draw_dma2d_opaque_fill(lv_draw_task_t * t, void * first_pixel, int32_t w, int32_t h, int32_t stride);
void lv_draw_dma2d_fill(lv_draw_task_t * t, void * first_pixel, int32_t w, int32_t h, int32_t stride);
-void lv_draw_dma2d_opaque_image(lv_draw_task_t * t, void * dest_first_pixel, lv_area_t * clipped_coords,
- int32_t dest_stride);
-void lv_draw_dma2d_image(lv_draw_task_t * t, void * dest_first_pixel, lv_area_t * clipped_coords,
- int32_t dest_stride);
+void lv_draw_dma2d_opaque_image(lv_draw_task_t * t, const lv_draw_image_dsc_t * draw_dsc,
+ const lv_area_t * coords);
+void lv_draw_dma2d_image(lv_draw_task_t * t, const lv_draw_image_dsc_t * draw_dsc,
+ const lv_area_t * coords);
lv_draw_dma2d_output_cf_t lv_draw_dma2d_cf_to_dma2d_output_cf(lv_color_format_t cf);
uint32_t lv_draw_dma2d_color_to_dma2d_color(lv_draw_dma2d_output_cf_t cf, lv_color_t color);
void lv_draw_dma2d_configure_and_start_transfer(const lv_draw_dma2d_configuration_t * conf);
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/espressif/ppa/lv_draw_ppa.c b/lib/libesp32_lvgl/lvgl/src/draw/espressif/ppa/lv_draw_ppa.c
new file mode 100644
index 000000000..17a394549
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/draw/espressif/ppa/lv_draw_ppa.c
@@ -0,0 +1,255 @@
+/**
+ * @file lv_draw_ppa.c
+ *
+ */
+
+/*********************
+* INCLUDES
+*********************/
+
+#include "lv_draw_ppa_private.h"
+#include "lv_draw_ppa.h"
+
+#if LV_USE_PPA
+
+/*********************
+* DEFINES
+*********************/
+
+#define DRAW_UNIT_ID_PPA 80
+#define DRAW_UNIT_PPA_PREF_SCORE 70
+
+/**********************
+* STATIC PROTOTYPES
+**********************/
+
+static int32_t ppa_evaluate(lv_draw_unit_t * draw_unit, lv_draw_task_t * task);
+static int32_t ppa_dispatch(lv_draw_unit_t * draw_unit, lv_layer_t * layer);
+static int32_t ppa_delete(lv_draw_unit_t * draw_unit);
+static void ppa_execute_drawing(lv_draw_ppa_unit_t * u);
+static bool ppa_isr(ppa_client_handle_t ppa_client, ppa_event_data_t * event_data, void * user_data);
+
+#if LV_PPA_NONBLOCKING_OPS
+ static void ppa_thread(void * arg);
+#endif
+
+static bool g_ppa_complete = true;
+
+/**********************
+* GLOBAL FUNCTIONS
+**********************/
+
+void lv_draw_ppa_init(void)
+{
+ esp_err_t res;
+ ppa_client_config_t cfg = {0};
+ ppa_event_callbacks_t ppa_cbs = {
+ .on_trans_done = ppa_isr,
+
+ };
+
+ /* Create draw unit */
+ lv_draw_buf_ppa_init_handlers();
+ lv_draw_ppa_unit_t * draw_ppa_unit = lv_draw_create_unit(sizeof(lv_draw_ppa_unit_t));
+ draw_ppa_unit->base_unit.evaluate_cb = ppa_evaluate;
+ draw_ppa_unit->base_unit.dispatch_cb = ppa_dispatch;
+ draw_ppa_unit->base_unit.delete_cb = ppa_delete;
+ draw_ppa_unit->base_unit.name = "ESP_PPA";
+
+ /* Register SRM client */
+ cfg.oper_type = PPA_OPERATION_SRM;
+ cfg.max_pending_trans_num = 8;
+ cfg.data_burst_length = PPA_DATA_BURST_LENGTH_128;
+
+ res = ppa_register_client(&cfg, &draw_ppa_unit->srm_client);
+ LV_ASSERT(res == ESP_OK);
+
+ /* Register Fill client */
+ cfg.oper_type = PPA_OPERATION_FILL;
+ cfg.data_burst_length = PPA_DATA_BURST_LENGTH_128;
+ res = ppa_register_client(&cfg, &draw_ppa_unit->fill_client);
+ LV_ASSERT(res == ESP_OK);
+
+ /* Register Blend client */
+ cfg.oper_type = PPA_OPERATION_BLEND;
+ cfg.data_burst_length = PPA_DATA_BURST_LENGTH_32;
+
+ res = ppa_register_client(&cfg, &draw_ppa_unit->blend_client);
+ LV_ASSERT(res == ESP_OK);
+
+ ppa_client_register_event_callbacks(draw_ppa_unit->srm_client, &ppa_cbs);
+ ppa_client_register_event_callbacks(draw_ppa_unit->fill_client, &ppa_cbs);
+ ppa_client_register_event_callbacks(draw_ppa_unit->blend_client, &ppa_cbs);
+
+#if LV_PPA_NONBLOCKING_OPS
+ lv_result_t lv_res = lv_thread_init(&draw_ppa_unit->thread, "ppa_thread", LV_DRAW_THREAD_PRIO, ppa_thread, 8192,
+ draw_ppa_unit);
+ LV_ASSERT(lv_res == LV_RESULT_OK);
+#endif
+
+}
+
+void lv_draw_ppa_deinit(void)
+{
+ /* No global deinit required */
+}
+
+/**********************
+* STATIC FUNCTIONS
+**********************/
+
+static bool ppa_isr(ppa_client_handle_t ppa_client, ppa_event_data_t * event_data, void * user_data)
+{
+ g_ppa_complete = true;
+
+#if LV_PPA_NONBLOCKING_OPS
+ lv_draw_ppa_unit_t * u = (lv_draw_ppa_unit_t *)user_data;
+ lv_thread_sync_signal_isr(&u->interrupt_signal);
+#endif
+
+ return false;
+}
+
+static int32_t ppa_evaluate(lv_draw_unit_t * u, lv_draw_task_t * t)
+{
+ LV_UNUSED(u);
+ const lv_draw_dsc_base_t * base = (lv_draw_dsc_base_t *)t->draw_dsc;
+
+ if(!ppa_dest_cf_supported(base->layer->color_format)) return 0;
+
+ switch(t->type) {
+ case LV_DRAW_TASK_TYPE_FILL: {
+ const lv_draw_fill_dsc_t * dsc = (lv_draw_fill_dsc_t *)t->draw_dsc;
+ if((dsc->radius != 0 || dsc->grad.dir != LV_GRAD_DIR_NONE)) return 0;
+ if(dsc->opa <= (lv_opa_t)LV_OPA_MAX) return 0;
+
+ if(t->preference_score > DRAW_UNIT_PPA_PREF_SCORE) {
+ t->preference_score = DRAW_UNIT_PPA_PREF_SCORE;
+ t->preferred_draw_unit_id = DRAW_UNIT_ID_PPA;
+ }
+ return 1;
+ }
+
+#if LV_USE_PPA_IMG
+ case LV_DRAW_TASK_TYPE_IMAGE: {
+ lv_draw_image_dsc_t * dsc = t->draw_dsc;
+ if(!(dsc->header.cf < LV_COLOR_FORMAT_PROPRIETARY_START
+ && dsc->clip_radius == 0
+ && dsc->bitmap_mask_src == NULL
+ && dsc->sup == NULL
+ && dsc->tile == 0
+ && dsc->blend_mode == LV_BLEND_MODE_NORMAL
+ && dsc->recolor_opa <= LV_OPA_MIN
+ && dsc->opa <= (lv_opa_t)LV_OPA_MAX
+ && dsc->skew_y == 0
+ && dsc->skew_x == 0
+ && dsc->scale_x == 256
+ && dsc->scale_y == 256
+ && dsc->rotation == 0
+ && lv_image_src_get_type(dsc->src) == LV_IMAGE_SRC_VARIABLE
+ && (dsc->header.cf == LV_COLOR_FORMAT_RGB888
+ || dsc->header.cf == LV_COLOR_FORMAT_RGB565)
+ && (dsc->base.layer->color_format == LV_COLOR_FORMAT_RGB888
+ || dsc->base.layer->color_format == LV_COLOR_FORMAT_RGB565))) {
+ return 0;
+ }
+
+ if(t->preference_score > DRAW_UNIT_PPA_PREF_SCORE) {
+ t->preference_score = DRAW_UNIT_PPA_PREF_SCORE;
+ t->preferred_draw_unit_id = DRAW_UNIT_ID_PPA;
+ }
+ return 1;
+ }
+#endif
+ default:
+ return 0;
+ }
+}
+
+static int32_t ppa_dispatch(lv_draw_unit_t * draw_unit, lv_layer_t * layer)
+{
+ lv_draw_ppa_unit_t * u = (lv_draw_ppa_unit_t *)draw_unit;
+ if(u->task_act) {
+ if(!g_ppa_complete) {
+ return LV_DRAW_UNIT_IDLE;
+ }
+ else {
+ u->task_act->state = LV_DRAW_TASK_STATE_FINISHED;
+ u->task_act = NULL;
+ }
+ }
+
+ lv_draw_task_t * t = lv_draw_get_available_task(layer, NULL, DRAW_UNIT_ID_PPA);
+ if(!t || t->preferred_draw_unit_id != DRAW_UNIT_ID_PPA) return LV_DRAW_UNIT_IDLE;
+ if(!lv_draw_layer_alloc_buf(layer)) return LV_DRAW_UNIT_IDLE;
+
+ t->state = LV_DRAW_TASK_STATE_IN_PROGRESS;
+ u->task_act = t;
+ u->task_act->draw_unit = draw_unit;
+
+ ppa_execute_drawing(u);
+
+#if !LV_PPA_NONBLOCKING_OPS
+ u->task_act->state = LV_DRAW_TASK_STATE_FINISHED;
+ u->task_act = NULL;
+ lv_draw_dispatch_request();
+#endif
+
+ return 1;
+}
+
+static int32_t ppa_delete(lv_draw_unit_t * draw_unit)
+{
+ lv_draw_ppa_unit_t * u = (lv_draw_ppa_unit_t *)draw_unit;
+ ppa_unregister_client(u->srm_client);
+ ppa_unregister_client(u->fill_client);
+ ppa_unregister_client(u->blend_client);
+ return 0;
+}
+
+static void ppa_execute_drawing(lv_draw_ppa_unit_t * u)
+{
+ lv_draw_task_t * t = u->task_act;
+ lv_layer_t * layer = t->target_layer;
+ lv_draw_buf_t * buf = layer->draw_buf;
+ lv_area_t area;
+ lv_area_t draw_area;
+
+ if(!lv_area_intersect(&area, &t->area, &t->clip_area)) return;
+
+ lv_area_move(&draw_area, -layer->buf_area.x1, -layer->buf_area.y1);
+ lv_draw_buf_invalidate_cache(buf, &draw_area);
+
+ switch(t->type) {
+ case LV_DRAW_TASK_TYPE_FILL:
+ g_ppa_complete = false;
+ lv_draw_ppa_fill(t, (lv_draw_fill_dsc_t *)t->draw_dsc, &area);
+ break;
+ case LV_DRAW_TASK_TYPE_IMAGE:
+ g_ppa_complete = false;
+ lv_draw_ppa_img(t, (lv_draw_image_dsc_t *)t->draw_dsc, &area);
+ break;
+ default:
+ break;
+ }
+}
+
+#if LV_PPA_NONBLOCKING_OPS
+static void ppa_thread(void * arg)
+{
+ lv_draw_ppa_unit_t * u = arg;
+ lv_thread_sync_init(&u->interrupt_signal);
+
+ while(1) {
+ do {
+ lv_thread_sync_wait(&u->interrupt_signal);
+ } while(u->task_act != NULL);
+
+ u->task_act->state = LV_DRAW_TASK_STATE_FINISHED;
+ u->task_act = NULL;
+ lv_draw_dispatch_request();
+ }
+}
+#endif
+
+#endif /*LV_USE_PPA*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/espressif/ppa/lv_draw_ppa.h b/lib/libesp32_lvgl/lvgl/src/draw/espressif/ppa/lv_draw_ppa.h
new file mode 100644
index 000000000..542b0fed9
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/draw/espressif/ppa/lv_draw_ppa.h
@@ -0,0 +1,57 @@
+/**
+ * @file lv_draw_ppa.h
+ *
+ */
+
+#ifndef LV_DRAW_PPA_H
+#define LV_DRAW_PPA_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*********************
+ * INCLUDES
+ *********************/
+
+#include "../../../lv_conf_internal.h"
+
+#if LV_USE_PPA
+
+#include "../../lv_draw_private.h"
+#include "../../../display/lv_display_private.h"
+#include "../../../misc/lv_area_private.h"
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+/**********************
+ * GLOBAL PROTOTYPES
+ **********************/
+
+void lv_draw_ppa_init(void);
+void lv_draw_ppa_deinit(void);
+void lv_draw_buf_ppa_init_handlers(void);
+
+void lv_draw_ppa_fill(lv_draw_task_t * t, const lv_draw_fill_dsc_t * dsc,
+ const lv_area_t * coords);
+
+void lv_draw_ppa_img(lv_draw_task_t * t, const lv_draw_image_dsc_t * dsc,
+ const lv_area_t * coords);
+
+/**********************
+ * MACROS
+ **********************/
+
+#endif /* LV_USE_PPA */
+
+#ifdef __cplusplus
+} /*extern "C"*/
+#endif
+
+#endif /* LV_DRAW_PPA_H */
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/espressif/ppa/lv_draw_ppa_buf.c b/lib/libesp32_lvgl/lvgl/src/draw/espressif/ppa/lv_draw_ppa_buf.c
new file mode 100644
index 000000000..1ec6d59a6
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/draw/espressif/ppa/lv_draw_ppa_buf.c
@@ -0,0 +1,52 @@
+/**
+ * @file lv_draw_ppa_buf.c
+ *
+ */
+
+/*********************
+ * INCLUDES
+ *********************/
+#include "lv_draw_ppa_private.h"
+#include "lv_draw_ppa.h"
+
+#if LV_USE_PPA
+#include LV_STDINT_INCLUDE
+#include "../../lv_draw_buf_private.h"
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ *********************/
+
+/**********************
+ * STATIC PROTOTYPES
+ *********************/
+static void invalidate_cache(const lv_draw_buf_t * draw_buf, const lv_area_t * area);
+
+/**********************
+ * GLOBAL FUNCTIONS
+ *********************/
+
+void lv_draw_buf_ppa_init_handlers(void)
+{
+ lv_draw_buf_handlers_t * handlers = lv_draw_buf_get_handlers();
+ lv_draw_buf_handlers_t * image_handlers = lv_draw_buf_get_image_handlers();
+
+ handlers->invalidate_cache_cb = invalidate_cache;
+ image_handlers->invalidate_cache_cb = invalidate_cache;
+}
+
+/**********************
+ * STATIC FUNCTIONS
+ *********************/
+
+static void invalidate_cache(const lv_draw_buf_t * draw_buf, const lv_area_t * area)
+{
+ esp_cache_msync((void *)PPA_PTR_ALIGN_DOWN(draw_buf->data, CONFIG_CACHE_L1_CACHE_LINE_SIZE),
+ PPA_ALIGN_DOWN(draw_buf->data_size, CONFIG_CACHE_L1_CACHE_LINE_SIZE),
+ ESP_CACHE_MSYNC_FLAG_DIR_C2M | ESP_CACHE_MSYNC_FLAG_TYPE_DATA);
+}
+#endif /* LV_USE_PPA */
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/espressif/ppa/lv_draw_ppa_fill.c b/lib/libesp32_lvgl/lvgl/src/draw/espressif/ppa/lv_draw_ppa_fill.c
new file mode 100644
index 000000000..77e322a9d
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/draw/espressif/ppa/lv_draw_ppa_fill.c
@@ -0,0 +1,48 @@
+/**
+ * @file lv_draw_ppa_fill.c
+ *
+ */
+
+#include "lv_draw_ppa_private.h"
+#include "lv_draw_ppa.h"
+
+#if LV_USE_PPA
+
+void lv_draw_ppa_fill(lv_draw_task_t * t, const lv_draw_fill_dsc_t * dsc,
+ const lv_area_t * coords)
+{
+ lv_draw_ppa_unit_t * u = (lv_draw_ppa_unit_t *)t->draw_unit;
+ lv_draw_buf_t * draw_buf = t->target_layer->draw_buf;
+ int width = lv_area_get_width(coords);
+ int height = lv_area_get_height(coords);
+
+ if(width <= 0 || height <= 0) {
+ LV_LOG_WARN("Invalid draw area for filling!");
+ return;
+ }
+
+ ppa_fill_oper_config_t cfg = {
+ .fill_argb_color.val = lv_color_to_u32(dsc->color),
+ .fill_block_w = width,
+ .fill_block_h = height,
+ .out = {
+ .buffer = draw_buf->data,
+ .buffer_size = draw_buf->data_size,
+ .pic_w = width,
+ .pic_h = height,
+ .block_offset_x = 0,
+ .block_offset_y = 0,
+ .fill_cm = lv_color_format_to_ppa_fill(draw_buf->header.cf),
+ },
+
+ .mode = PPA_TRANS_MODE_NON_BLOCKING,
+ .user_data = u,
+ };
+
+ esp_err_t ret = ppa_do_fill(u->fill_client, &cfg);
+ if(ret != ESP_OK) {
+ LV_LOG_ERROR("PPA fill failed: %d", ret);
+ }
+}
+
+#endif /* LV_USE_PPA */
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/espressif/ppa/lv_draw_ppa_img.c b/lib/libesp32_lvgl/lvgl/src/draw/espressif/ppa/lv_draw_ppa_img.c
new file mode 100644
index 000000000..8235ad4ff
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/draw/espressif/ppa/lv_draw_ppa_img.c
@@ -0,0 +1,77 @@
+/**
+ * @file lv_draw_ppa_img.c
+ *
+ */
+
+#include "lv_draw_ppa_private.h"
+#include "lv_draw_ppa.h"
+
+#if LV_USE_PPA
+
+void lv_draw_ppa_img(lv_draw_task_t * t, const lv_draw_image_dsc_t * dsc,
+ const lv_area_t * coords)
+{
+ if(dsc->opa <= (lv_opa_t)LV_OPA_MIN) {
+ return;
+ }
+
+ lv_draw_ppa_unit_t * u = (lv_draw_ppa_unit_t *)t->draw_unit;
+ lv_draw_buf_t * draw_buf = t->target_layer->draw_buf;
+ const lv_image_dsc_t * img_dsc = dsc->src;
+ int width = lv_area_get_width(coords);
+ int height = lv_area_get_height(coords);
+
+ ppa_blend_oper_config_t cfg = {
+ .in_bg = {
+ .buffer = (void *)draw_buf->data,
+ .pic_w = draw_buf->header.w,
+ .pic_h = draw_buf->header.h,
+ .block_w = width,
+ .block_h = height,
+ .block_offset_x = 0,
+ .block_offset_y = 0,
+ .blend_cm = lv_color_format_to_ppa_blend(draw_buf->header.cf),
+ },
+ .bg_rgb_swap = false,
+ .bg_byte_swap = false,
+ .bg_alpha_update_mode = PPA_ALPHA_NO_CHANGE,
+ .bg_alpha_fix_val = 0,
+ .bg_ck_en = false,
+
+ .in_fg = {
+ .buffer = (void *)img_dsc->data,
+ .pic_w = width,
+ .pic_h = height,
+ .block_w = width,
+ .block_h = height,
+ .block_offset_x = 0,
+ .block_offset_y = 0,
+ .blend_cm = lv_color_format_to_ppa_blend(dsc->header.cf),
+ },
+ .fg_rgb_swap = false,
+ .fg_byte_swap = false,
+ .fg_alpha_update_mode = PPA_ALPHA_NO_CHANGE,
+ .fg_alpha_fix_val = 0xFF,
+ .fg_ck_en = false,
+
+ .out = {
+ .buffer = draw_buf->data,
+ .buffer_size = PPA_ALIGN_UP(draw_buf->data_size, CONFIG_CACHE_L1_CACHE_LINE_SIZE),
+ .pic_w = draw_buf->header.w,
+ .pic_h = draw_buf->header.h,
+ .block_offset_x = 0,
+ .block_offset_y = 0,
+ .blend_cm = lv_color_format_to_ppa_blend(draw_buf->header.cf),
+ },
+
+ .mode = PPA_TRANS_MODE_NON_BLOCKING,
+ .user_data = u,
+ };
+
+ esp_err_t ret = ppa_do_blend(u->blend_client, &cfg);
+ if(ret != ESP_OK) {
+ LV_LOG_WARN("PPA draw_img blend failed: %d", ret);
+ }
+}
+
+#endif /* LV_USE_PPA */
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/espressif/ppa/lv_draw_ppa_private.h b/lib/libesp32_lvgl/lvgl/src/draw/espressif/ppa/lv_draw_ppa_private.h
new file mode 100644
index 000000000..0e6a3cf1b
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/draw/espressif/ppa/lv_draw_ppa_private.h
@@ -0,0 +1,185 @@
+/**
+ * @file lv_draw_ppa_private.h
+ *
+ */
+
+#ifndef LV_DRAW_PPA_PRIVATE_H
+#define LV_DRAW_PPA_PRIVATE_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*********************
+* INCLUDES
+*********************/
+#include "../../../lv_conf_internal.h"
+
+#if LV_USE_PPA
+#if LV_PPA_NONBLOCKING_OPS
+#error "PPA draw in nonblocking is experimental and not supported yet, please make it to 0!"
+#endif
+
+#ifndef LV_PPA_NONBLOCKING_OPS
+#define LV_PPA_NONBLOCKING_OPS 0
+#endif
+
+#include LV_STDDEF_INCLUDE
+#include LV_STDBOOL_INCLUDE
+#include LV_STDINT_INCLUDE
+
+#include "../../../misc/lv_color.h"
+#include "../../../misc/lv_log.h"
+#include "../../lv_draw_private.h"
+#include "../../../display/lv_display_private.h"
+#include "../../../misc/lv_area_private.h"
+
+/* The ppa driver depends heavily on the esp-idf headers*/
+#include "sdkconfig.h"
+
+#if CONFIG_LV_ATTRIBUTE_MEM_ALIGN_SIZE != CONFIG_CACHE_L1_CACHE_LINE_SIZE || CONFIG_LV_DRAW_BUF_ALIGN != CONFIG_CACHE_L1_CACHE_LINE_SIZE
+#error "For using PPA buffers need to be aligned to 64-byte boundary!"
+#endif
+
+
+#ifndef CONFIG_SOC_PPA_SUPPORTED
+#error "This SoC does not support PPA"
+#endif
+
+#include "driver/ppa.h"
+#include "esp_heap_caps.h"
+#include "esp_err.h"
+#include "hal/color_hal.h"
+#include "esp_cache.h"
+#include "esp_log.h"
+/*********************
+* DEFINES
+*********************/
+
+/**********************
+* TYPEDEFS
+**********************/
+typedef struct lv_draw_ppa_unit {
+ lv_draw_unit_t base_unit;
+ lv_draw_task_t * task_act;
+ ppa_client_handle_t srm_client;
+ ppa_client_handle_t fill_client;
+ ppa_client_handle_t blend_client;
+ uint8_t * buf;
+#if LV_PPA_NONBLOCKING_OPS
+ lv_thread_t thread;
+ lv_thread_sync_t interrupt_signal;
+#endif
+} lv_draw_ppa_unit_t;
+
+/**********************
+* STATIC PROTOTYPES
+**********************/
+
+/**********************
+* GLOBAL PROTOTYPES
+**********************/
+
+/**********************
+* MACROS
+**********************/
+
+/**********************
+* STATIC FUNCTIONS
+**********************/
+
+static inline bool ppa_src_cf_supported(lv_color_format_t cf)
+{
+ bool is_cf_supported = false;
+
+ switch(cf) {
+ case LV_COLOR_FORMAT_RGB565:
+ case LV_COLOR_FORMAT_ARGB8888:
+ case LV_COLOR_FORMAT_XRGB8888:
+ is_cf_supported = true;
+ break;
+ default:
+ break;
+ }
+
+ return is_cf_supported;
+}
+
+static inline bool ppa_dest_cf_supported(lv_color_format_t cf)
+{
+ bool is_cf_supported = false;
+
+ switch(cf) {
+ case LV_COLOR_FORMAT_RGB565:
+ case LV_COLOR_FORMAT_RGB888:
+ case LV_COLOR_FORMAT_ARGB8888:
+ case LV_COLOR_FORMAT_XRGB8888:
+ is_cf_supported = true;
+ break;
+ default:
+ break;
+ }
+
+ return is_cf_supported;
+}
+
+static inline ppa_fill_color_mode_t lv_color_format_to_ppa_fill(lv_color_format_t lv_fmt)
+{
+ switch(lv_fmt) {
+ case LV_COLOR_FORMAT_RGB565:
+ return PPA_FILL_COLOR_MODE_RGB565;
+ case LV_COLOR_FORMAT_RGB888:
+ return PPA_FILL_COLOR_MODE_RGB888;
+ case LV_COLOR_FORMAT_ARGB8888:
+ case LV_COLOR_FORMAT_XRGB8888:
+ return PPA_FILL_COLOR_MODE_ARGB8888;
+ default:
+ return PPA_FILL_COLOR_MODE_RGB565;
+ }
+}
+
+static inline ppa_blend_color_mode_t lv_color_format_to_ppa_blend(lv_color_format_t lv_fmt)
+{
+ switch(lv_fmt) {
+ case LV_COLOR_FORMAT_RGB565:
+ return PPA_BLEND_COLOR_MODE_RGB565;
+ case LV_COLOR_FORMAT_RGB888:
+ return PPA_BLEND_COLOR_MODE_RGB888;
+ case LV_COLOR_FORMAT_ARGB8888:
+ case LV_COLOR_FORMAT_XRGB8888:
+ return PPA_BLEND_COLOR_MODE_ARGB8888;
+ default:
+ return PPA_BLEND_COLOR_MODE_RGB565;
+ }
+}
+
+static inline ppa_srm_color_mode_t lv_color_format_to_ppa_srm(lv_color_format_t lv_fmt)
+{
+ switch(lv_fmt) {
+ case LV_COLOR_FORMAT_RGB565:
+ return PPA_SRM_COLOR_MODE_RGB565;
+ case LV_COLOR_FORMAT_RGB888:
+ return PPA_SRM_COLOR_MODE_RGB888;
+ case LV_COLOR_FORMAT_XRGB8888:
+ case LV_COLOR_FORMAT_ARGB8888:
+ return PPA_SRM_COLOR_MODE_ARGB8888;
+ default:
+ return PPA_SRM_COLOR_MODE_RGB565;
+ }
+}
+
+#define PPA_ALIGN_UP(x, align) ((((x) + (align) - 1) / (align)) * (align))
+#define PPA_PTR_ALIGN_UP(p, align) \
+ ((void*)(((uintptr_t)(p) + (uintptr_t)((align) - 1)) & ~(uintptr_t)((align) - 1)))
+
+#define PPA_ALIGN_DOWN(x, align) ((((x) - (align) - 1) / (align)) * (align))
+#define PPA_PTR_ALIGN_DOWN(p, align) \
+ ((void*)(((uintptr_t)(p) - (uintptr_t)((align) - 1)) & ~(uintptr_t)((align) - 1)))
+
+#endif /* LV_USE_PPA */
+
+#ifdef __cplusplus
+} /*extern "C"*/
+#endif
+
+#endif /* LV_DRAW_PPA_PRIVATE_H */
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/eve/lv_draw_eve.c b/lib/libesp32_lvgl/lvgl/src/draw/eve/lv_draw_eve.c
new file mode 100644
index 000000000..2ba207457
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/draw/eve/lv_draw_eve.c
@@ -0,0 +1,164 @@
+/**
+ * @file lv_draw_eve.c
+ *
+ */
+
+/* Created on: 3 dic 2023
+ * Author: juanj
+ *
+ * Modified by LVGL
+ */
+
+/*********************
+ * INCLUDES
+ *********************/
+
+#include "lv_draw_eve_private.h"
+#if LV_USE_DRAW_EVE
+
+#include "../../core/lv_refr.h"
+#include "../../display/lv_display_private.h"
+#include "../../stdlib/lv_string.h"
+#include "lv_draw_eve_ram_g.h"
+#include "lv_draw_eve.h"
+#include "lv_eve.h"
+
+/*********************
+ * DEFINES
+ *********************/
+
+#define DRAW_UNIT_ID_EVE 9
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+/**********************
+ * STATIC PROTOTYPES
+ **********************/
+static void eve_execute_drawing(lv_draw_eve_unit_t * u);
+
+static int32_t eve_dispatch(lv_draw_unit_t * draw_unit, lv_layer_t * layer);
+
+static int32_t eve_evaluate(lv_draw_unit_t * draw_unit, lv_draw_task_t * task);
+
+static void disp_delete_cb(lv_event_t * e);
+
+/**********************
+ * GLOBAL PROTOTYPES
+ **********************/
+
+/**********************
+ * STATIC VARIABLES
+ **********************/
+
+/**********************
+ * MACROS
+ **********************/
+
+/**********************
+ * GLOBAL FUNCTIONS
+ **********************/
+
+void lv_draw_eve_init(void)
+{
+ lv_draw_eve_unit_t * draw_eve_unit = lv_draw_create_unit(sizeof(lv_draw_eve_unit_t));
+ draw_eve_unit->base_unit.dispatch_cb = eve_dispatch;
+ draw_eve_unit->base_unit.evaluate_cb = eve_evaluate;
+
+ lv_draw_eve_unit_g = draw_eve_unit;
+}
+
+void lv_draw_eve_set_display_data(lv_display_t * disp, const lv_draw_eve_parameters_t * params,
+ lv_draw_eve_operation_cb_t op_cb)
+{
+ if(lv_draw_eve_unit_g == NULL) {
+ LV_LOG_WARN("lv_draw_eve is not initialized.");
+ return;
+ }
+
+ lv_draw_eve_unit_g->disp = disp;
+ lv_draw_eve_unit_g->params = *params; /* make a copy */
+ lv_draw_eve_unit_g->op_cb = op_cb;
+
+ lv_display_add_event_cb(disp, disp_delete_cb, LV_EVENT_DELETE, NULL);
+}
+
+/**********************
+ * STATIC FUNCTIONS
+ **********************/
+
+static int32_t eve_dispatch(lv_draw_unit_t * draw_unit, lv_layer_t * layer)
+{
+ lv_draw_eve_unit_t * draw_eve_unit = (lv_draw_eve_unit_t *) draw_unit;
+
+ lv_draw_task_t * t = NULL;
+ t = lv_draw_get_next_available_task(layer, NULL, DRAW_UNIT_ID_EVE);
+ if(t == NULL) return LV_DRAW_UNIT_IDLE;
+
+
+ t->state = LV_DRAW_TASK_STATE_IN_PROGRESS;
+ draw_eve_unit->task_act = t;
+
+ eve_execute_drawing(draw_eve_unit);
+
+ draw_eve_unit->task_act->state = LV_DRAW_TASK_STATE_FINISHED;
+ draw_eve_unit->task_act = NULL;
+
+ /*The draw unit is free now. Request a new dispatching as it can get a new task*/
+ lv_draw_dispatch_request();
+
+
+ return 1;
+}
+
+static int32_t eve_evaluate(lv_draw_unit_t * draw_unit, lv_draw_task_t * task)
+{
+ LV_UNUSED(draw_unit);
+
+ if(((lv_draw_dsc_base_t *)task->draw_dsc)->user_data == NULL) {
+ task->preference_score = 0;
+ task->preferred_draw_unit_id = DRAW_UNIT_ID_EVE;
+ }
+ return 0;
+}
+
+static void eve_execute_drawing(lv_draw_eve_unit_t * u)
+{
+ lv_draw_task_t * t = u->task_act;
+
+ switch(t->type) {
+ case LV_DRAW_TASK_TYPE_LINE:
+ lv_draw_eve_line(t, t->draw_dsc);
+ break;
+ case LV_DRAW_TASK_TYPE_BORDER:
+ lv_draw_eve_border(t, t->draw_dsc, &t->area);
+ break;
+ case LV_DRAW_TASK_TYPE_FILL:
+ lv_draw_eve_fill(t, t->draw_dsc, &t->area);
+ break;
+ case LV_DRAW_TASK_TYPE_IMAGE:
+ lv_draw_eve_image(t, t->draw_dsc, &t->area);
+ break;
+ case LV_DRAW_TASK_TYPE_LABEL:
+ lv_draw_eve_label(t, t->draw_dsc, &t->area);
+ break;
+ case LV_DRAW_TASK_TYPE_ARC:
+ lv_draw_eve_arc(t, t->draw_dsc, &t->area);
+ break;
+ case LV_DRAW_TASK_TYPE_TRIANGLE:
+ lv_draw_eve_triangle(t, t->draw_dsc);
+ break;
+ default:
+ break;
+ }
+}
+
+static void disp_delete_cb(lv_event_t * e)
+{
+ lv_draw_eve_unit_g->disp = NULL;
+ lv_draw_eve_unit_g = NULL;
+}
+
+
+#endif /*LV_USE_DRAW_EVE*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/eve/lv_draw_eve.h b/lib/libesp32_lvgl/lvgl/src/draw/eve/lv_draw_eve.h
new file mode 100644
index 000000000..003638ad4
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/draw/eve/lv_draw_eve.h
@@ -0,0 +1,57 @@
+/**
+ * @file lv_draw_eve.h
+ *
+ */
+
+/* Created on: 3 dic 2023
+ * Author: juanj
+ *
+ * Modified by LVGL
+ */
+
+#ifndef LV_DRAW_EVE_H
+#define LV_DRAW_EVE_H
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*********************
+ * INCLUDES
+ *********************/
+
+#include "../../lv_conf_internal.h"
+#if LV_USE_DRAW_EVE
+
+#include "lv_draw_eve_target.h"
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+/**********************
+ * GLOBAL PROTOTYPES
+ **********************/
+
+void lv_draw_eve_init(void);
+
+void lv_draw_eve_set_display_data(lv_display_t * disp, const lv_draw_eve_parameters_t * params,
+ lv_draw_eve_operation_cb_t op_cb);
+
+/**********************
+ * MACROS
+ **********************/
+
+#endif /*LV_USE_DRAW_EVE*/
+
+#ifdef __cplusplus
+} /*extern "C"*/
+#endif
+
+
+#endif /* LV_DRAW_EVE_H */
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/eve/lv_draw_eve_arc.c b/lib/libesp32_lvgl/lvgl/src/draw/eve/lv_draw_eve_arc.c
new file mode 100644
index 000000000..2a19128c9
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/draw/eve/lv_draw_eve_arc.c
@@ -0,0 +1,325 @@
+/**
+ * @file lv_draw_eve_arc.c
+ *
+ */
+
+/* Created on: 11 dic 2023
+ * Author: juanj
+ *
+ * Modified by LVGL
+ */
+
+/*********************
+ * INCLUDES
+ *********************/
+#include "lv_draw_eve_private.h"
+#if LV_USE_DRAW_EVE
+
+#include "../lv_draw_arc.h"
+#include "lv_eve.h"
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * STATIC PROTOTYPES
+ **********************/
+
+static void draw_eve_arc(lv_draw_task_t * t, const lv_draw_arc_dsc_t * dsc, const lv_area_t * coords);
+static bool is_same_quadrant(int16_t start_angle, int16_t end_angle) ;
+static void draw_rounded_end(lv_point_t center, int32_t radius, int32_t angle, int32_t width);
+static void lv_draw_eve_mask_angle(const lv_draw_arc_dsc_t * dsc, int32_t vertex_x, int32_t vertex_y,
+ int32_t start_angle, int32_t end_angle);
+static lv_eve_primitive_t get_mask_direction(int16_t angle);
+static int32_t chord_length(int16_t radius, int16_t angle_degrees);
+
+/**********************
+ * GLOBAL FUNCTIONS
+ **********************/
+
+void lv_draw_eve_arc(lv_draw_task_t * t, const lv_draw_arc_dsc_t * dsc, const lv_area_t * coords)
+{
+ draw_eve_arc(t, dsc, coords);
+}
+
+/**********************
+ * STATIC FUNCTIONS
+ **********************/
+
+
+static int32_t chord_length(int16_t radius, int16_t angle_degrees)
+{
+ angle_degrees %= 360;
+ if(angle_degrees < 0) angle_degrees += 360;
+ int32_t sin_value = lv_trigo_sin(angle_degrees / 2);
+ int64_t chord_length = 2 * radius * sin_value / 32768.0;
+ return (int32_t)chord_length ;
+}
+
+
+static lv_eve_primitive_t get_mask_direction(int16_t angle)
+{
+ if(angle >= 315 || angle < 45) {
+ return LV_EVE_PRIMITIVE_EDGE_STRIP_R;
+ }
+ if(angle >= 45 && angle < 135) {
+ return LV_EVE_PRIMITIVE_EDGE_STRIP_B;
+ }
+ if(angle >= 135 && angle < 225) {
+ return LV_EVE_PRIMITIVE_EDGE_STRIP_L;
+ }
+ if(angle >= 225 && angle < 315) {
+ return LV_EVE_PRIMITIVE_EDGE_STRIP_A;
+ }
+ return 0;
+}
+
+
+static void draw_rounded_end(lv_point_t center, int32_t radius, int32_t angle, int32_t width)
+{
+ int32_t rounded_y = center.y + ((lv_trigo_sin(angle) * radius) >> LV_TRIGO_SHIFT);
+ int32_t rounded_x = center.x + ((lv_trigo_cos(angle) * radius) >> LV_TRIGO_SHIFT);
+ lv_eve_draw_circle_simple(rounded_x, rounded_y, width);
+}
+
+
+
+static bool is_same_quadrant(int16_t start_angle, int16_t end_angle)
+{
+ if(start_angle > end_angle) {
+ if((start_angle >= 0 && start_angle < 90) && (end_angle >= 0 && end_angle < 90)) {
+ return true;
+ }
+ else if((start_angle >= 90 && start_angle < 180) && (end_angle >= 90 && end_angle < 180)) {
+ return true;
+ }
+ else if((start_angle >= 180 && start_angle < 270) && (end_angle >= 180 && end_angle < 270)) {
+ return true;
+ }
+ else if((start_angle >= 270 && start_angle < 360) && (end_angle >= 270 && end_angle < 360)) {
+ return true;
+ }
+ else {
+ return false;
+ }
+ }
+ else {
+ return false;
+ }
+}
+
+
+
+static void lv_draw_eve_mask_angle(const lv_draw_arc_dsc_t * dsc, int32_t vertex_x, int32_t vertex_y,
+ int32_t start_angle, int32_t end_angle)
+{
+
+ /*Constrain the input angles*/
+
+
+ if(start_angle < 0)
+ start_angle = 0;
+ else if(start_angle > 359)
+ start_angle = 359;
+
+ if(end_angle < 0)
+ end_angle = 0;
+ else if(end_angle > 359)
+ end_angle = 359;
+
+ LV_ASSERT_MSG(start_angle >= 0 && start_angle <= 360, "Unexpected start angle");
+
+ int32_t mid_angle_op;
+ int32_t angle_range;
+ int32_t mask_dir_start;
+ int32_t mask_dir_end;
+ lv_point_t start;
+ lv_point_t end;
+ lv_point_t angle_range_op;
+
+ if(end_angle > start_angle) {
+ angle_range = LV_ABS(end_angle - start_angle);
+ }
+ else {
+ angle_range = 360 - start_angle + end_angle;
+ }
+
+ mid_angle_op = (angle_range / 2) + start_angle + 180;
+ mid_angle_op = mid_angle_op % 360;
+
+ mask_dir_end = LV_ABS(((360 - angle_range) / 4) + end_angle);
+ mask_dir_start = LV_ABS(((360 - angle_range) / 4) + mid_angle_op);
+
+ mask_dir_start = mask_dir_start % 360;
+ mask_dir_end = mask_dir_end % 360;
+
+ start.y = (lv_trigo_sin(start_angle) >> 5) + vertex_y;
+ start.x = (lv_trigo_cos(start_angle) >> 5) + vertex_x;
+
+ end.y = (lv_trigo_sin(end_angle) >> 5) + vertex_y;
+ end.x = (lv_trigo_cos(end_angle) >> 5) + vertex_x;
+
+ angle_range_op.y = (lv_trigo_sin(mid_angle_op) >> 5) + vertex_y;
+ angle_range_op.x = (lv_trigo_cos(mid_angle_op) >> 5) + vertex_x;
+
+ if(angle_range <= 180) {
+ /* Two sides mask and 6 vertex points */
+
+ /* Masking end angle */
+ lv_eve_primitive_t edge = get_mask_direction(mask_dir_end);
+ lv_eve_primitive(edge); /* Side one */
+ lv_eve_vertex_2f(angle_range_op.x, angle_range_op.y);
+ lv_eve_vertex_2f(vertex_x, vertex_y);
+ lv_eve_vertex_2f(end.x, end.y);
+
+ /* Masking start angle */
+ edge = get_mask_direction(mask_dir_start);
+ lv_eve_primitive(edge); /* Side two */
+ lv_eve_vertex_2f(angle_range_op.x, angle_range_op.y);
+ lv_eve_vertex_2f(vertex_x, vertex_y);
+ lv_eve_vertex_2f(start.x, start.y);
+
+ }
+
+ else {
+
+ if(is_same_quadrant(start_angle,
+ end_angle)) { /* "It is not an optimal implementation for the case where both angles (start and end) are in the same quadrant */
+ /* todo */
+ lv_point_t end_line_cntr;
+ lv_point_t start_line_cntr;
+
+ lv_point_t end_line_brd;
+ lv_point_t start_line_brd;
+
+ int16_t chord = chord_length(dsc->radius, 360 - angle_range);
+ int16_t w = ((chord / 4) < 1) ? 1 : chord / 4;
+ int16_t r_width = w;
+
+ end_line_brd.y = vertex_y + ((lv_trigo_sin(end_angle) * dsc->radius) >> LV_TRIGO_SHIFT);
+ end_line_brd.x = vertex_x + ((lv_trigo_cos(end_angle) * dsc->radius) >> LV_TRIGO_SHIFT);
+
+ start_line_brd.y = vertex_y + ((lv_trigo_sin(start_angle) * dsc->radius) >> LV_TRIGO_SHIFT);
+ start_line_brd.x = vertex_x + ((lv_trigo_cos(start_angle) * dsc->radius) >> LV_TRIGO_SHIFT);
+
+ lv_eve_draw_rect_simple(start_line_brd.x, start_line_brd.y, end_line_brd.x, end_line_brd.y, 0);
+
+ start_line_brd.y = start_line_brd.y + ((lv_trigo_sin(start_angle - 90) * r_width) >> LV_TRIGO_SHIFT);
+ start_line_brd.x = start_line_brd.x + ((lv_trigo_cos(start_angle - 90) * r_width) >> LV_TRIGO_SHIFT);
+
+ end_line_brd.y = end_line_brd.y + ((lv_trigo_sin(end_angle + 90) * r_width) >> LV_TRIGO_SHIFT);
+ end_line_brd.x = end_line_brd.x + ((lv_trigo_cos(end_angle + 90) * r_width) >> LV_TRIGO_SHIFT);
+
+ end_line_cntr.y = vertex_y + ((lv_trigo_sin(end_angle + 90) * r_width) >> LV_TRIGO_SHIFT);
+ end_line_cntr.x = vertex_x + ((lv_trigo_cos(end_angle + 90) * r_width) >> LV_TRIGO_SHIFT);
+
+ start_line_cntr.y = vertex_y + ((lv_trigo_sin(start_angle + 270) * r_width) >> LV_TRIGO_SHIFT);
+ start_line_cntr.x = vertex_x + ((lv_trigo_cos(start_angle + 270) * r_width) >> LV_TRIGO_SHIFT);
+
+ lv_eve_primitive(LV_EVE_PRIMITIVE_LINE_STRIP);
+ lv_eve_line_width(r_width * 16);
+ lv_eve_vertex_2f(start_line_cntr.x, start_line_cntr.y);
+ lv_eve_vertex_2f(start_line_brd.x, start_line_brd.y);
+ lv_eve_vertex_2f(end_line_brd.x, end_line_brd.y);
+ lv_eve_vertex_2f(end_line_cntr.x, end_line_cntr.y);
+
+ }
+ else { /* One side mask and 3 vertex points */
+ /* Masking end and start angles */
+ lv_eve_primitive_t edge = get_mask_direction(mid_angle_op);
+ lv_eve_primitive(edge);
+ lv_eve_vertex_2f(end.x, end.y);
+ lv_eve_vertex_2f(vertex_x, vertex_y);
+ lv_eve_vertex_2f(start.x, start.y);
+ }
+ }
+
+}
+
+
+
+static void draw_eve_arc(lv_draw_task_t * t, const lv_draw_arc_dsc_t * dsc, const lv_area_t * coords)
+{
+
+ if(dsc->opa <= LV_OPA_MIN)
+ return;
+ if(dsc->width == 0)
+ return;
+ if(dsc->start_angle == dsc->end_angle)
+ return;
+
+ lv_color_t color = dsc->color;
+ lv_opa_t opa = dsc->opa;
+ lv_point_t center = dsc->center;
+ int32_t width = dsc->width;
+ uint16_t radius_out = dsc->radius;
+ uint16_t radius_in = dsc->radius - dsc->width;
+ int32_t start_angle = (int32_t) dsc->start_angle;
+ int32_t end_angle = (int32_t) dsc->end_angle;
+
+ if(width > radius_out)
+ width = radius_out;
+
+ while(start_angle >= 360)
+ start_angle -= 360;
+ while(end_angle >= 360)
+ end_angle -= 360;
+
+ lv_eve_scissor(t->clip_area.x1, t->clip_area.y1, t->clip_area.x2, t->clip_area.y2);
+
+ lv_eve_save_context();
+
+ lv_eve_color(color);
+ lv_eve_color_opa(opa);
+
+ lv_eve_color_mask(0, 0, 0, 1);
+ lv_eve_stencil_func(EVE_ALWAYS, 0, 1);
+ lv_eve_stencil_op(EVE_REPLACE, EVE_REPLACE);
+ lv_eve_draw_circle_simple(center.x, center.y, radius_out); /* radius_out */
+
+ lv_eve_blend_func(EVE_ONE, EVE_ZERO);
+ lv_eve_draw_circle_simple(center.x, center.y, radius_in + 2); /* radius_in */
+
+ lv_eve_stencil_func(EVE_ALWAYS, 1, 1);
+ lv_eve_stencil_op(EVE_REPLACE, EVE_REPLACE);
+ lv_eve_blend_func(EVE_ZERO, EVE_ONE_MINUS_SRC_ALPHA);
+ lv_eve_color_opa(0XFF);
+
+ /* Start masking arc */
+
+ lv_draw_eve_mask_angle(dsc, center.x, center.y, start_angle, end_angle);
+
+ /* End masking arc */
+
+ lv_eve_draw_circle_simple(center.x, center.y, radius_in); /* radius_in */
+
+ lv_eve_color_mask(1, 1, 1, 1);
+ lv_eve_blend_func(EVE_DST_ALPHA, EVE_ONE_MINUS_DST_ALPHA);
+ lv_eve_draw_circle_simple(center.x, center.y, radius_in); /* radius_in */
+
+ lv_eve_stencil_func(EVE_NOTEQUAL, 1, 0XFF);
+ lv_eve_stencil_op(EVE_KEEP, EVE_KEEP);
+ lv_eve_blend_func(EVE_SRC_ALPHA, EVE_ONE_MINUS_SRC_ALPHA);
+
+ lv_eve_color_opa(opa);
+ lv_eve_draw_circle_simple(center.x, center.y, radius_out); /* radius_out */
+
+ if(dsc->rounded) {
+ lv_eve_stencil_func(EVE_EQUAL, 1, 0XFF);
+ if(opa < 255) {
+ lv_eve_stencil_op(EVE_ZERO, EVE_ZERO);
+ }
+
+ int32_t half_width = width / 2;
+ int32_t adjusted_radius = radius_out - half_width;
+ draw_rounded_end(center, adjusted_radius, end_angle, half_width);
+ draw_rounded_end(center, adjusted_radius, start_angle, half_width);
+ }
+
+ lv_eve_restore_context();
+}
+
+
+
+#endif /*LV_USE_DRAW_EVE*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/eve/lv_draw_eve_fill.c b/lib/libesp32_lvgl/lvgl/src/draw/eve/lv_draw_eve_fill.c
new file mode 100644
index 000000000..d0221a711
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/draw/eve/lv_draw_eve_fill.c
@@ -0,0 +1,121 @@
+/**
+ * @file lv_draw_eve_fill.c
+ *
+ */
+
+/* Created on: 27 mar 2023
+ * Author: juanj
+ *
+ * Modified by LVGL
+ */
+
+/*********************
+ * INCLUDES
+ *********************/
+#include "lv_draw_eve_private.h"
+#if LV_USE_DRAW_EVE
+#include "lv_eve.h"
+
+
+/**********************
+ * STATIC PROTOTYPES
+ **********************/
+
+/**********************
+ * GLOBAL FUNCTIONS
+ **********************/
+
+void lv_draw_eve_fill(lv_draw_task_t * t, const lv_draw_fill_dsc_t * dsc, const lv_area_t * coords)
+{
+
+ int32_t rad = dsc->radius;
+ int32_t bg_w = lv_area_get_width(coords);
+ int32_t bg_h = lv_area_get_height(coords);
+ int32_t real_radius = LV_MIN3(bg_w / 2, bg_h / 2, rad);
+
+ lv_eve_scissor(t->clip_area.x1, t->clip_area.y1, t->clip_area.x2, t->clip_area.y2);
+ lv_eve_save_context();
+
+ lv_eve_color(dsc->color);
+ lv_eve_color_opa(dsc->opa);
+
+ if(bg_w == bg_h && rad == LV_RADIUS_CIRCLE) {
+ lv_eve_draw_circle_simple(coords->x1 + (bg_w / 2), coords->y1 + (bg_h / 2), real_radius);
+ }
+ else {
+ lv_eve_draw_rect_simple(coords->x1, coords->y1, coords->x2, coords->y2, real_radius);
+ }
+
+ lv_eve_restore_context();
+}
+
+
+/**********************
+ * STATIC FUNCTIONS
+ **********************/
+
+
+
+void lv_draw_eve_border(lv_draw_task_t * t, const lv_draw_border_dsc_t * dsc, const lv_area_t * coords)
+{
+
+ if(dsc->opa <= LV_OPA_MIN) return;
+ if(dsc->width == 0) return;
+ if(dsc->side == LV_BORDER_SIDE_NONE) return;
+
+ int32_t coords_w = lv_area_get_width(coords);
+ int32_t coords_h = lv_area_get_height(coords);
+ int32_t rout = dsc->radius;
+ int32_t short_side = LV_MIN(coords_w, coords_h);
+ if(rout > short_side >> 1) rout = short_side >> 1;
+
+ /*Get the inner area*/
+ lv_area_t area_inner;
+ lv_area_copy(&area_inner, coords);
+ area_inner.x1 += ((dsc->side & LV_BORDER_SIDE_LEFT) ? dsc->width : - (dsc->width));
+ area_inner.x2 -= ((dsc->side & LV_BORDER_SIDE_RIGHT) ? dsc->width : - (dsc->width));
+ area_inner.y1 += ((dsc->side & LV_BORDER_SIDE_TOP) ? dsc->width : - (dsc->width));
+ area_inner.y2 -= ((dsc->side & LV_BORDER_SIDE_BOTTOM) ? dsc->width : - (dsc->width));
+
+ int32_t rin = rout - dsc->width;
+ if(rin < 0) rin = 0;
+
+ lv_eve_save_context();
+
+ lv_eve_scissor(t->clip_area.x1, t->clip_area.y1, t->clip_area.x2, t->clip_area.y2);
+
+ lv_eve_color(dsc->color);
+ lv_eve_color_opa(dsc->opa);
+
+ lv_eve_color_mask(0, 0, 0, 1);
+ lv_eve_stencil_func(EVE_ALWAYS, 0, 1);
+ lv_eve_stencil_op(EVE_REPLACE, EVE_REPLACE);
+ lv_eve_draw_rect_simple(coords->x1, coords->y1, coords->x2, coords->y2, 0);
+
+ lv_eve_blend_func(EVE_ONE, EVE_ZERO);
+ lv_eve_draw_rect_simple(area_inner.x1 - 2, area_inner.y1 - 1, area_inner.x2 + 1, area_inner.y2 + 2, rin);
+
+ lv_eve_stencil_func(EVE_ALWAYS, 1, 1);
+ lv_eve_stencil_op(EVE_REPLACE, EVE_REPLACE);
+ lv_eve_blend_func(EVE_ZERO, EVE_ONE_MINUS_SRC_ALPHA);
+ lv_eve_color_opa(255);
+ lv_eve_draw_rect_simple(area_inner.x1, area_inner.y1, area_inner.x2, area_inner.y2, rin);
+
+ lv_eve_color_mask(1, 1, 1, 1);
+
+ if(dsc->side == LV_BORDER_SIDE_FULL) {
+ lv_eve_blend_func(EVE_DST_ALPHA, EVE_ONE_MINUS_DST_ALPHA);
+ lv_eve_draw_rect_simple(area_inner.x1, area_inner.y1, area_inner.x2, area_inner.y2, rin);
+ }
+
+ lv_eve_stencil_func(EVE_NOTEQUAL, 1, 255);
+ lv_eve_blend_func(EVE_SRC_ALPHA, EVE_ONE_MINUS_SRC_ALPHA);
+
+ lv_eve_color_opa(dsc->opa);
+ lv_eve_draw_rect_simple(coords->x1, coords->y1, coords->x2, coords->y2, rout);
+
+ lv_eve_restore_context();
+}
+
+#endif /*LV_USE_DRAW_EVE*/
+
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/eve/lv_draw_eve_image.c b/lib/libesp32_lvgl/lvgl/src/draw/eve/lv_draw_eve_image.c
new file mode 100644
index 000000000..1c6d999dd
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/draw/eve/lv_draw_eve_image.c
@@ -0,0 +1,299 @@
+/**
+ * @file lv_draw_eve_image.c
+ *
+ */
+
+/* Created on: 17 jun 2023
+ * Author: juanj
+ *
+ * Modified by LVGL
+ */
+
+/*********************
+ * INCLUDES
+ *********************/
+#include "lv_draw_eve_private.h"
+#if LV_USE_DRAW_EVE
+
+#include "../lv_draw_image_private.h"
+#include "lv_draw_eve_ram_g.h"
+#include "lv_eve.h"
+
+/*********************
+ * DEFINES
+ *********************/
+
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+/**********************
+ * STATIC PROTOTYPES
+ **********************/
+static void convert_row_rgb565a8_to_argb4444(const uint8_t * src, const uint8_t * src_alpha, uint8_t * dst,
+ uint32_t width);
+static void convert_row_argb8888_to_argb4444(const uint8_t * src, uint8_t * dst, uint32_t width);
+
+/**********************
+ * STATIC VARIABLES
+ **********************/
+
+
+
+/**********************
+ * MACROS
+ **********************/
+
+#define F16_PIVOT_SHIFT(x) ((int32_t)((((x) >> 1)) * 65536L))
+#define F16_SCALE_DIV_256(x) ((int32_t)(((x) / 256.0f) * 65536L))
+
+/**********************
+ * GLOBAL FUNCTIONS
+ **********************/
+
+void lv_draw_eve_image(lv_draw_task_t * t, const lv_draw_image_dsc_t * draw_dsc, const lv_area_t * coords)
+{
+ if(!lv_draw_eve_image_src_check(draw_dsc->src)) {
+ return;
+ }
+
+ const lv_image_dsc_t * img_dsc = draw_dsc->src;
+
+ int32_t src_w = img_dsc->header.w;
+ int32_t src_h = img_dsc->header.h;
+ int32_t src_stride = img_dsc->header.stride;
+ lv_color_format_t src_cf = img_dsc->header.cf;
+
+ if(src_stride == 0) {
+ src_stride = src_w * lv_color_format_get_size(src_cf);
+ }
+
+ uint8_t eve_format;
+ int32_t eve_stride;
+
+ switch(src_cf) {
+ case LV_COLOR_FORMAT_L8:
+ eve_format = EVE_L8;
+ eve_stride = src_stride;
+ break;
+ case LV_COLOR_FORMAT_RGB565:
+ eve_format = EVE_RGB565;
+ eve_stride = src_stride;
+ break;
+ case LV_COLOR_FORMAT_RGB565A8:
+ case LV_COLOR_FORMAT_ARGB8888:
+ eve_format = EVE_ARGB4;
+ eve_stride = src_w * 2;
+ break;
+ default :
+ LV_ASSERT(0);
+ }
+
+ uint32_t ramg_addr = lv_draw_eve_image_upload_image(true, img_dsc);
+ if(ramg_addr == LV_DRAW_EVE_RAMG_OUT_OF_RAMG) {
+ LV_LOG_WARN("Could not load image because space could not be allocated in RAM_G.");
+ return;
+ }
+
+ lv_eve_scissor(t->clip_area.x1, t->clip_area.y1, t->clip_area.x2, t->clip_area.y2);
+
+ lv_eve_save_context();
+
+ lv_eve_color_opa(draw_dsc->opa);
+
+ if(draw_dsc->recolor_opa > LV_OPA_MIN) {
+ lv_eve_color(lv_color_mix(draw_dsc->recolor, lv_color_white(), draw_dsc->recolor_opa));
+ }
+
+ lv_eve_primitive(LV_EVE_PRIMITIVE_BITMAPS);
+ lv_eve_bitmap_source(ramg_addr);
+ /*real height and width is mandatory for rotation and scale (Clip Area)*/
+ lv_eve_bitmap_size(EVE_NEAREST, EVE_BORDER, EVE_BORDER, src_w, src_h);
+
+ lv_eve_bitmap_layout(eve_format, eve_stride, src_h);
+
+ if(draw_dsc->rotation || draw_dsc->scale_x != LV_SCALE_NONE || draw_dsc->scale_y != LV_SCALE_NONE) {
+ EVE_cmd_dl_burst(CMD_LOADIDENTITY);
+
+ EVE_cmd_translate_burst(F16(coords->x1 - t->clip_area.x1 + draw_dsc->pivot.x),
+ F16(coords->y1 - t->clip_area.y1 + draw_dsc->pivot.y));
+ if(draw_dsc->scale_x != LV_SCALE_NONE || draw_dsc->scale_y != LV_SCALE_NONE) {
+ /*Image Scale*/
+ EVE_cmd_scale_burst(F16_SCALE_DIV_256(draw_dsc->scale_x), F16_SCALE_DIV_256(draw_dsc->scale_y));
+ }
+ if(draw_dsc->rotation != 0) {
+ /*Image Rotate*/
+ EVE_cmd_rotate_burst(DEGREES(draw_dsc->rotation));
+ }
+ EVE_cmd_translate_burst(-F16(draw_dsc->pivot.x), -F16(draw_dsc->pivot.y));
+ EVE_cmd_dl_burst(CMD_SETMATRIX);
+ EVE_cmd_dl_burst(CMD_LOADIDENTITY);
+ lv_eve_vertex_2f(t->clip_area.x1, t->clip_area.y1);
+ }
+ else {
+ lv_eve_vertex_2f(coords->x1, coords->y1);
+ }
+ lv_eve_restore_context();
+}
+
+bool lv_draw_eve_image_src_check(const void * src)
+{
+ if(lv_image_src_get_type(src) != LV_IMAGE_SRC_VARIABLE) {
+ LV_LOG_WARN("lv_draw_eve can only render images from variables (not files or symbols) for now.");
+ return false;
+ }
+
+ const lv_image_dsc_t * img_dsc = src;
+
+ switch(img_dsc->header.cf) {
+ case LV_COLOR_FORMAT_L8:
+ case LV_COLOR_FORMAT_RGB565:
+ case LV_COLOR_FORMAT_RGB565A8:
+ case LV_COLOR_FORMAT_ARGB8888:
+ break;
+ default :
+ LV_LOG_WARN("lv_draw_eve can only render L8, RGB565, RGB565A8, and ARGB8888 images for now.");
+ return false;
+ }
+
+ return true;
+}
+
+uint32_t lv_draw_eve_image_upload_image(bool burst_is_active, const lv_image_dsc_t * img_dsc)
+{
+ const uint8_t * src_buf = img_dsc->data;
+ int32_t src_w = img_dsc->header.w;
+ int32_t src_h = img_dsc->header.h;
+ int32_t src_stride = img_dsc->header.stride;
+ lv_color_format_t src_cf = img_dsc->header.cf;
+
+ if(src_stride == 0) {
+ src_stride = src_w * lv_color_format_get_size(src_cf);
+ }
+
+ int32_t eve_stride;
+ uint8_t eve_alignment;
+
+ switch(src_cf) {
+ case LV_COLOR_FORMAT_L8:
+ eve_stride = src_stride;
+ eve_alignment = 1;
+ break;
+ case LV_COLOR_FORMAT_RGB565:
+ eve_stride = src_stride;
+ eve_alignment = 2;
+ break;
+ case LV_COLOR_FORMAT_RGB565A8:
+ case LV_COLOR_FORMAT_ARGB8888:
+ eve_stride = src_w * 2;
+ eve_alignment = 2;
+ break;
+ default :
+ LV_ASSERT(0);
+ }
+
+ int32_t eve_size = eve_stride * src_h;
+
+ uint32_t ramg_addr;
+ bool img_is_loaded = lv_draw_eve_ramg_get_addr(&ramg_addr, (uintptr_t) src_buf, eve_size, eve_alignment);
+
+ /* New image to load */
+ if(!img_is_loaded && ramg_addr != LV_DRAW_EVE_RAMG_OUT_OF_RAMG) {
+
+ /* Load image to RAM_G */
+
+ if(burst_is_active) {
+ EVE_end_cmd_burst();
+ }
+
+ switch(src_cf) {
+ case LV_COLOR_FORMAT_L8:
+ case LV_COLOR_FORMAT_RGB565:
+ EVE_memWrite_flash_buffer(ramg_addr, src_buf, eve_size);
+ break;
+ case LV_COLOR_FORMAT_RGB565A8: {
+ uint8_t * tmp_buf = lv_malloc(eve_stride);
+ LV_ASSERT_MALLOC(tmp_buf);
+ const uint8_t * src_alpha_buf = src_buf + src_h * src_stride;
+ int32_t src_alpha_stride = src_stride / 2;
+ for(uint32_t y = 0; y < src_h; y++) {
+ convert_row_rgb565a8_to_argb4444(src_buf + y * src_stride, src_alpha_buf + y * src_alpha_stride, tmp_buf, src_w);
+ EVE_memWrite_flash_buffer(ramg_addr + y * eve_stride, tmp_buf, eve_stride);
+ }
+ lv_free(tmp_buf);
+ break;
+ }
+ case LV_COLOR_FORMAT_ARGB8888: {
+ uint8_t * tmp_buf = lv_malloc(eve_stride);
+ LV_ASSERT_MALLOC(tmp_buf);
+ for(uint32_t y = 0; y < src_h; y++) {
+ convert_row_argb8888_to_argb4444(src_buf + y * src_stride, tmp_buf, src_w);
+ EVE_memWrite_flash_buffer(ramg_addr + y * eve_stride, tmp_buf, eve_stride);
+ }
+ lv_free(tmp_buf);
+ break;
+ }
+ default:
+ LV_ASSERT(0);
+ }
+
+ if(burst_is_active) {
+ EVE_start_cmd_burst();
+ }
+ }
+
+ return ramg_addr;
+}
+
+
+
+
+/**********************
+ * STATIC FUNCTIONS
+ **********************/
+
+static void convert_row_rgb565a8_to_argb4444(const uint8_t * src, const uint8_t * src_alpha, uint8_t * dst,
+ uint32_t width)
+{
+ for(uint32_t x = 0; x < width; x++) {
+ uint16_t rgb565 = ((const uint16_t *) src)[x];
+
+ uint8_t r5 = (rgb565 >> 11) & 0x1F;
+ uint8_t g6 = (rgb565 >> 5) & 0x3F;
+ uint8_t b5 = rgb565 & 0x1F;
+ uint8_t alpha = src_alpha[x];
+
+ uint8_t r4 = r5 >> 1;
+ uint8_t g4 = g6 >> 2;
+ uint8_t b4 = b5 >> 1;
+ uint8_t a4 = alpha >> 4;
+
+ uint16_t argb4444 = (a4 << 12) | (r4 << 8) | (g4 << 4) | b4;
+
+ dst[2 * x] = argb4444 & 0xFF;
+ dst[2 * x + 1] = (argb4444 >> 8) & 0xFF;
+ }
+}
+
+static void convert_row_argb8888_to_argb4444(const uint8_t * src, uint8_t * dst, uint32_t width)
+{
+ for(uint32_t x = 0; x < width; x++) {
+ uint8_t blue = src[4 * x];
+ uint8_t green = src[4 * x + 1];
+ uint8_t red = src[4 * x + 2];
+ uint8_t alpha = src[4 * x + 3];
+
+ uint8_t r4 = red >> 4;
+ uint8_t g4 = green >> 4;
+ uint8_t b4 = blue >> 4;
+ uint8_t a4 = alpha >> 4;
+
+ uint16_t argb4444 = (a4 << 12) | (r4 << 8) | (g4 << 4) | b4;
+
+ dst[2 * x] = argb4444 & 0xFF;
+ dst[2 * x + 1] = (argb4444 >> 8) & 0xFF;
+ }
+}
+
+#endif /*LV_USE_DRAW_EVE*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/eve/lv_draw_eve_letter.c b/lib/libesp32_lvgl/lvgl/src/draw/eve/lv_draw_eve_letter.c
new file mode 100644
index 000000000..b7786e140
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/draw/eve/lv_draw_eve_letter.c
@@ -0,0 +1,233 @@
+/**
+ * @file lv_draw_eve_letter.c
+ *
+ */
+
+/* Author: juanj
+ *
+ * Modified by LVGL
+ */
+
+/*********************
+ * INCLUDES
+ *********************/
+#include "lv_draw_eve_private.h"
+#if LV_USE_DRAW_EVE
+
+#include "../lv_draw_private.h"
+#include "../lv_draw_label_private.h"
+#include "../lv_draw_rect.h"
+#include "lv_eve.h"
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+/**********************
+ * STATIC PROTOTYPES
+ **********************/
+
+static void lv_draw_eve_letter_cb(lv_draw_task_t * t, lv_draw_glyph_dsc_t * glyph_draw_dsc,
+ lv_draw_fill_dsc_t * fill_draw_dsc, const lv_area_t * fill_area);
+static void font_bitmap_to_ramg(uint32_t addr, const uint8_t * src, uint32_t width,
+ uint32_t height, uint8_t src_stride_align);
+
+/**********************
+ * STATIC VARIABLES
+ **********************/
+
+/**********************
+ * MACROS
+ **********************/
+
+#define GET_NIBBLE_1(w) ((uint8_t) ((w) >> 4))
+#define GET_NIBBLE_2(w) ((uint8_t) ((w) & 0xf))
+
+/**********************
+ * GLOBAL FUNCTIONS
+ **********************/
+
+void lv_draw_eve_label(lv_draw_task_t * t, const lv_draw_label_dsc_t * dsc, const lv_area_t * coords)
+{
+ if(dsc->opa <= LV_OPA_MIN) return;
+
+ lv_eve_scissor(t->clip_area.x1, t->clip_area.y1, t->clip_area.x2, t->clip_area.y2);
+ lv_eve_save_context();
+ lv_eve_primitive(LV_EVE_PRIMITIVE_BITMAPS);
+ lv_draw_label_iterate_characters(t, dsc, coords, lv_draw_eve_letter_cb);
+ lv_eve_restore_context();
+}
+
+bool lv_draw_eve_label_font_check(const lv_font_t * font)
+{
+ if(font->get_glyph_bitmap != lv_font_get_bitmap_fmt_txt) {
+ LV_LOG_WARN("lv_draw_eve can only render static fonts for now.");
+ return false;
+ }
+
+ const lv_font_fmt_txt_dsc_t * font_dsc = font->dsc;
+
+ /* Only 4 bpp is supported for now. Support for 1 and 8 bpp can be added. (EVE_L1, EVE_L8) */
+ if(font_dsc->bpp != 4) {
+ LV_LOG_WARN("lv_draw_eve can only render static fonts for now.");
+ return false;
+ }
+
+ return true;
+}
+
+uint32_t lv_draw_eve_label_upload_glyph(bool burst_is_active, const lv_font_fmt_txt_dsc_t * font_dsc,
+ uint32_t gid_index)
+{
+ const lv_font_fmt_txt_glyph_dsc_t * glyph_dsc = &font_dsc->glyph_dsc[gid_index];
+ const uint8_t * glyph_bitmap = &font_dsc->glyph_bitmap[glyph_dsc->bitmap_index];
+
+ uint16_t g_box_w = glyph_dsc->box_w;
+ uint16_t g_box_h = glyph_dsc->box_h;
+
+ uint16_t g_aligned_stride = (g_box_w + 1) / 2;
+
+ uint32_t glyph_ramg_size = g_aligned_stride * g_box_h;
+
+ uint32_t ramg_addr;
+ uintptr_t glyph_ramg_key = (uintptr_t) glyph_bitmap;
+ bool font_is_loaded = lv_draw_eve_ramg_get_addr(&ramg_addr, glyph_ramg_key, glyph_ramg_size, 1);
+
+ /* If the font is not yet loaded in ramG, load it */
+ if(!font_is_loaded && ramg_addr != LV_DRAW_EVE_RAMG_OUT_OF_RAMG) {
+ if(burst_is_active) {
+ EVE_end_cmd_burst();
+ }
+
+ uint8_t glyph_bitmap_stride_align = font_dsc->stride;
+ font_bitmap_to_ramg(ramg_addr, glyph_bitmap, g_box_w, g_box_h, glyph_bitmap_stride_align);
+
+ if(burst_is_active) {
+ EVE_start_cmd_burst();
+ }
+ }
+
+ return ramg_addr;
+}
+
+/**********************
+ * STATIC FUNCTIONS
+ **********************/
+
+static void lv_draw_eve_letter_cb(lv_draw_task_t * t, lv_draw_glyph_dsc_t * glyph_draw_dsc,
+ lv_draw_fill_dsc_t * fill_draw_dsc, const lv_area_t * fill_area)
+{
+
+ if(fill_draw_dsc && fill_area) {
+ /* draw UNDERLINE and STRIKETHROUGH */
+ lv_eve_draw_rect_simple(fill_area->x1, fill_area->y1, fill_area->x2, fill_area->y2, 0);
+ }
+
+ if(glyph_draw_dsc == NULL)
+ return; /* Important */
+
+ const lv_font_t * font = glyph_draw_dsc->g->resolved_font;
+
+ if(!lv_draw_eve_label_font_check(font)) {
+ return;
+ }
+
+ const lv_font_fmt_txt_dsc_t * font_dsc = font->dsc;
+ uint32_t gid_index = glyph_draw_dsc->g->gid.index;
+ const lv_font_fmt_txt_glyph_dsc_t * glyph_dsc = &font_dsc->glyph_dsc[gid_index];
+
+ uint16_t g_box_w = glyph_dsc->box_w;
+ uint16_t g_box_h = glyph_dsc->box_h;
+
+ uint16_t g_aligned_stride = (g_box_w + 1) / 2;
+
+ uint8_t bpp_eve = EVE_L4;
+
+ uint32_t ramg_addr = lv_draw_eve_label_upload_glyph(true, font_dsc, gid_index);
+ if(ramg_addr == LV_DRAW_EVE_RAMG_OUT_OF_RAMG) {
+ LV_LOG_WARN("Could not load glyph because space could not be allocated in RAM_G.");
+ return;
+ }
+
+ lv_eve_color_opa(glyph_draw_dsc->opa);
+ lv_eve_color(glyph_draw_dsc->color);
+
+ lv_eve_bitmap_source(ramg_addr);
+
+ lv_eve_bitmap_size(EVE_NEAREST, EVE_BORDER, EVE_BORDER, g_box_w, g_box_h);
+ lv_eve_bitmap_layout(bpp_eve, g_aligned_stride, g_box_h);
+
+ lv_eve_vertex_2f(glyph_draw_dsc->letter_coords->x1, glyph_draw_dsc->letter_coords->y1);
+}
+
+static void font_bitmap_to_ramg(uint32_t addr, const uint8_t * src, uint32_t width,
+ uint32_t height, uint8_t src_stride_align)
+{
+ uint32_t stride = (width + 1) / 2;
+
+ if(src_stride_align == 1 || (src_stride_align == 0 && width % 2 == 0)) {
+ uint32_t size = stride * height;
+ EVE_memWrite_flash_buffer(addr, src, size);
+ return;
+ }
+
+ if(src_stride_align > 0) {
+ uint32_t src_stride = LV_ALIGN_UP(stride, src_stride_align);
+ for(uint32_t y = 0; y < height; y++) {
+ EVE_memWrite_sram_buffer(addr, src, stride);
+ addr += stride;
+ src += src_stride;
+ }
+ return;
+ }
+
+ uint8_t * row_buf = lv_malloc(stride);
+ LV_ASSERT_MALLOC(row_buf);
+
+ uint32_t src_i = 0;
+ uint8_t nibble_1;
+ uint8_t nibble_2;
+ uint8_t key = 0;
+
+ /* Iterate through each row of the bitmap*/
+ for(uint32_t y = 0; y < height; y++) {
+ /* Iterate through each byte of the row*/
+ uint32_t row_i;
+ for(row_i = 0; row_i < (width / 2); ++row_i) {
+ /*Get the two nibbles from the current byte*/
+ if(key == 0) {
+ nibble_1 = GET_NIBBLE_1(src[src_i]);
+ nibble_2 = GET_NIBBLE_2(src[src_i]);
+ }
+ else {
+ nibble_1 = GET_NIBBLE_2(src[src_i - 1]);
+ nibble_2 = GET_NIBBLE_1(src[src_i]);
+ }
+
+ /*Combine the nibbles and assign the result to the output byte*/
+ row_buf[row_i] = (nibble_1 << 4) | nibble_2;
+
+ src_i++;
+ }
+
+ /*process the last remaining nibble*/
+ row_buf[row_i] =
+ (key == 0) ?
+ (GET_NIBBLE_1(src[src_i])) << 4 | 0x0 : (GET_NIBBLE_2(src[src_i - 1])) << 4 | 0x0;
+ key = (key == 0) ? 1 : 0;
+ src_i += (key == 1) ? 1 : 0;
+
+ EVE_memWrite_sram_buffer(addr, row_buf, stride);
+ addr += stride;
+ }
+
+ lv_free(row_buf);
+}
+
+
+#endif /*LV_USE_DRAW_EVE*/
+
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/eve/lv_draw_eve_line.c b/lib/libesp32_lvgl/lvgl/src/draw/eve/lv_draw_eve_line.c
new file mode 100644
index 000000000..c38357e28
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/draw/eve/lv_draw_eve_line.c
@@ -0,0 +1,63 @@
+/**
+ * @file lv_draw_eve_line.c
+ *
+ */
+
+/* Created on: 8 abr 2023
+ * Author: juanj
+ *
+ * Modified by LVGL
+ */
+
+/*********************
+ * INCLUDES
+ *********************/
+
+#include "lv_draw_eve_private.h"
+#if LV_USE_DRAW_EVE
+#include "lv_eve.h"
+
+
+void lv_draw_eve_line(lv_draw_task_t * t, const lv_draw_line_dsc_t * dsc)
+{
+
+ if(dsc->width == 0)
+ return;
+ if(dsc->opa <= LV_OPA_MIN)
+ return;
+ if(dsc->p1.x == dsc->p2.x && dsc->p1.y == dsc->p2.y)
+ return;
+
+
+
+ uint32_t line_w = dsc->width * 8;
+ lv_eve_scissor(t->clip_area.x1, t->clip_area.y1, t->clip_area.x2, t->clip_area.y2);
+ lv_eve_save_context();
+ lv_eve_color_opa(dsc->opa);
+ lv_eve_color(dsc->color);
+
+ if(dsc->dash_gap || dsc->dash_width) {
+ LV_LOG_WARN("line dash_gap and dash_width not implemented by EVE yet.");
+ }
+ /* Check if it's a vertical or horizontal line without rounding */
+ bool is_vertical = (dsc->p1.x == dsc->p2.x);
+ bool is_horizontal = (dsc->p1.y == dsc->p2.y);
+ bool no_round = (!dsc->round_end || !dsc->round_start);
+
+ if((is_vertical || is_horizontal) && no_round) {
+ lv_eve_primitive(LV_EVE_PRIMITIVE_RECTS);
+ lv_eve_vertex_2f(dsc->p1.x, dsc->p1.y);
+ lv_eve_vertex_2f(dsc->p2.x, dsc->p2.y);
+ }
+ else {
+ /* Draw inclined line or line with rounding (not possible without rounding)*/
+ lv_eve_primitive(LV_EVE_PRIMITIVE_LINE_STRIP);
+ lv_eve_line_width(line_w);
+ lv_eve_vertex_2f(dsc->p1.x, dsc->p1.y);
+ lv_eve_vertex_2f(dsc->p2.x, dsc->p2.y);
+ }
+
+ lv_eve_restore_context();
+}
+
+#endif /*LV_USE_DRAW_EVE*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/eve/lv_draw_eve_private.h b/lib/libesp32_lvgl/lvgl/src/draw/eve/lv_draw_eve_private.h
new file mode 100644
index 000000000..c67719b21
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/draw/eve/lv_draw_eve_private.h
@@ -0,0 +1,117 @@
+/**
+ * @file lv_draw_eve_private.h
+ *
+ */
+
+/* Author: juanj
+ *
+ * Modified by LVGL
+ */
+
+#ifndef LV_DRAW_EVE_PRIVATE_H
+#define LV_DRAW_EVE_PRIVATE_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*********************
+ * INCLUDES
+ *********************/
+
+#include "lv_draw_eve.h"
+#if LV_USE_DRAW_EVE
+
+#include "lv_draw_eve_target.h"
+#include "lv_draw_eve_ram_g.h"
+#include "../lv_draw_private.h"
+#include "../../misc/lv_types.h"
+#include "../../core/lv_global.h"
+#include "../lv_draw_triangle.h"
+#include "../lv_draw_line.h"
+#include "../lv_draw_label.h"
+#include "../../font/lv_font_fmt_txt.h"
+#include "../lv_draw_arc.h"
+
+#if LV_DRAW_EVE_WRITE_BUFFER_SIZE != 0 && LV_DRAW_EVE_WRITE_BUFFER_SIZE < 4
+#warning LV_DRAW_EVE_WRITE_BUFFER_SIZE cannot be less than 4. Using 0 (buffering disabled).
+#define LV_DRAW_EVE_WRITE_BUFFER_SIZE_INTERNAL 0
+#else
+#define LV_DRAW_EVE_WRITE_BUFFER_SIZE_INTERNAL LV_DRAW_EVE_WRITE_BUFFER_SIZE
+#endif
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+typedef struct {
+ uintptr_t key;
+ uint32_t addr;
+} lv_draw_eve_ramg_hash_table_cell_t;
+
+typedef struct {
+ uint32_t ramg_addr_end;
+ uint32_t hash_table_cell_count;
+ uint32_t hash_table_cells_occupied;
+ lv_draw_eve_ramg_hash_table_cell_t * hash_table;
+} lv_draw_eve_ramg_t;
+
+struct _lv_draw_eve_unit_t {
+ lv_draw_unit_t base_unit;
+ lv_draw_task_t * task_act;
+ lv_display_t * disp;
+ lv_draw_eve_ramg_t ramg;
+ lv_draw_eve_parameters_t params;
+ lv_draw_eve_operation_cb_t op_cb;
+#if LV_DRAW_EVE_WRITE_BUFFER_SIZE_INTERNAL
+ uint32_t lv_eve_write_buf_len;
+ uint8_t lv_eve_write_buf[LV_DRAW_EVE_WRITE_BUFFER_SIZE_INTERNAL];
+#endif
+};
+
+/**********************
+ * GLOBAL PROTOTYPES
+ **********************/
+
+void lv_draw_eve_image(lv_draw_task_t * t, const lv_draw_image_dsc_t * draw_dsc,
+ const lv_area_t * coords);
+bool lv_draw_eve_image_src_check(const void * src);
+uint32_t lv_draw_eve_image_upload_image(bool burst_is_active, const lv_image_dsc_t * img_dsc);
+
+void lv_draw_eve_fill(lv_draw_task_t * t, const lv_draw_fill_dsc_t * dsc, const lv_area_t * coords);
+
+void lv_draw_eve_border(lv_draw_task_t * t, const lv_draw_border_dsc_t * dsc,
+ const lv_area_t * coords);
+
+void lv_draw_eve_line(lv_draw_task_t * t, const lv_draw_line_dsc_t * dsc);
+
+void lv_draw_eve_label(lv_draw_task_t * t, const lv_draw_label_dsc_t * dsc,
+ const lv_area_t * coords);
+bool lv_draw_eve_label_font_check(const lv_font_t * font);
+uint32_t lv_draw_eve_label_upload_glyph(bool burst_is_active, const lv_font_fmt_txt_dsc_t * font_dsc,
+ uint32_t gid_index);
+
+void lv_draw_eve_arc(lv_draw_task_t * t, const lv_draw_arc_dsc_t * dsc, const lv_area_t * coords);
+
+void lv_draw_eve_triangle(lv_draw_task_t * t, const lv_draw_triangle_dsc_t * dsc);
+
+/**********************
+ * MACROS
+ **********************/
+
+#define DEGREES(n) ((65536UL * (n)) / 3600)
+#define F16(x) ((int32_t)((x) * 65536L))
+
+#define lv_draw_eve_unit_g (LV_GLOBAL_DEFAULT()->draw_eve_unit)
+
+#endif /*LV_USE_DRAW_EVE*/
+
+#ifdef __cplusplus
+} /*extern "C"*/
+#endif
+
+#endif /*LV_DRAW_EVE_PRIVATE_H*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/eve/lv_draw_eve_ram_g.c b/lib/libesp32_lvgl/lvgl/src/draw/eve/lv_draw_eve_ram_g.c
new file mode 100644
index 000000000..1ad544cd6
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/draw/eve/lv_draw_eve_ram_g.c
@@ -0,0 +1,221 @@
+/**
+ * @file lv_draw_eve_ram_g.c
+ *
+ */
+
+/* Created on: 19 nov 2023
+ * Author: juanj
+ *
+ * Modified by LVGL
+ */
+
+/*********************
+ * INCLUDES
+ *********************/
+#include "lv_draw_eve_private.h"
+#if LV_USE_DRAW_EVE
+#include "lv_draw_eve_ram_g.h"
+#include "lv_eve.h"
+
+/*********************
+ * DEFINES
+ *********************/
+
+#define RAMG_DEBUG 0
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+/**********************
+ * STATIC PROTOTYPES
+ **********************/
+
+static void ramg_init(lv_draw_eve_ramg_t * ramg);
+static uint32_t hash_key(uintptr_t key);
+static uint32_t fnv_1a_hash(const void * src, size_t len);
+static void grow_hash_table(lv_draw_eve_ramg_t * ramg);
+
+#if RAMG_DEBUG
+ static void ramg_debug(lv_draw_eve_ramg_t * ramg, uint32_t key_hash, uint32_t table_index);
+#endif
+
+/**********************
+ * STATIC VARIABLES
+ **********************/
+
+/**********************
+ * MACROS
+ **********************/
+
+/**********************
+ * GLOBAL FUNCTIONS
+ **********************/
+
+bool lv_draw_eve_ramg_get_addr(uint32_t * addr_dst, uintptr_t key,
+ uint32_t addr_size, uint32_t addr_align)
+{
+ LV_ASSERT(key != 0);
+
+ lv_draw_eve_ramg_t * ramg = &lv_draw_eve_unit_g->ramg;
+
+ if(ramg->hash_table_cell_count == 0) {
+ ramg_init(ramg);
+ }
+
+ uint32_t key_hash = hash_key(key);
+ uint32_t table_index = key_hash % ramg->hash_table_cell_count;
+ lv_draw_eve_ramg_hash_table_cell_t * cell;
+
+ while(1) {
+ cell = &ramg->hash_table[table_index];
+
+ if(cell->key == key) {
+#if RAMG_DEBUG
+ ramg_debug(ramg, key_hash, table_index);
+#endif
+
+ *addr_dst = cell->addr;
+ return true;
+ }
+
+ if(cell->key == 0) {
+ break;
+ }
+
+ table_index++;
+ if(table_index >= ramg->hash_table_cell_count) table_index = 0;
+ }
+
+ uint32_t addr_ret = LV_ALIGN_UP(ramg->ramg_addr_end, addr_align);
+ uint32_t addr_new_end = addr_ret + addr_size;
+
+ if(addr_new_end > 1024 * 1024) {
+ LV_LOG_WARN("EVE on-chip 1 MB RAM_G for images and fonts has run out.");
+ *addr_dst = LV_DRAW_EVE_RAMG_OUT_OF_RAMG;
+ return false;
+ }
+
+ ramg->ramg_addr_end = addr_new_end;
+ ramg->hash_table_cells_occupied++;
+
+ cell->key = key;
+ cell->addr = addr_ret;
+ *addr_dst = addr_ret;
+
+#if RAMG_DEBUG
+ ramg_debug(ramg, key_hash, table_index);
+#endif
+
+ if(ramg->hash_table_cells_occupied > ramg->hash_table_cell_count / 4 * 3) {
+ grow_hash_table(ramg);
+ }
+
+ return false;
+}
+
+/**********************
+ * STATIC FUNCTIONS
+ **********************/
+
+static void ramg_init(lv_draw_eve_ramg_t * ramg)
+{
+ ramg->hash_table_cell_count = 32;
+ ramg->hash_table = lv_calloc(32, sizeof(lv_draw_eve_ramg_hash_table_cell_t));
+ LV_ASSERT_MALLOC(ramg->hash_table);
+}
+
+static uint32_t hash_key(uintptr_t key)
+{
+ return fnv_1a_hash(&key, sizeof(key));
+}
+
+static uint32_t fnv_1a_hash(const void * src, size_t len)
+{
+ const uint8_t * src_u8 = src;
+ uint32_t hash = 2166136261u;
+ for(size_t i = 0; i < len; i++) {
+ hash ^= src_u8[i];
+ hash *= 16777619u;
+ }
+ return hash;
+}
+
+static void grow_hash_table(lv_draw_eve_ramg_t * ramg)
+{
+ uint32_t old_cell_count = ramg->hash_table_cell_count;
+ lv_draw_eve_ramg_hash_table_cell_t * old_hash_table = ramg->hash_table;
+
+ ramg->hash_table_cell_count += ramg->hash_table_cell_count / 2;
+ ramg->hash_table = lv_calloc(ramg->hash_table_cell_count,
+ sizeof(lv_draw_eve_ramg_hash_table_cell_t));
+ LV_ASSERT_MALLOC(ramg->hash_table);
+
+ for(uint32_t i = 0; i < old_cell_count; i++) {
+ lv_draw_eve_ramg_hash_table_cell_t * old_cell = &old_hash_table[i];
+
+ if(old_cell->key == 0) continue;
+
+ uint32_t key_hash = hash_key(old_cell->key);
+ uint32_t new_table_index = key_hash % ramg->hash_table_cell_count;
+ lv_draw_eve_ramg_hash_table_cell_t * new_cell_dst = &ramg->hash_table[new_table_index];
+
+ while(new_cell_dst->key != 0) {
+ new_table_index++;
+ if(new_table_index >= ramg->hash_table_cell_count) new_table_index = 0;
+ new_cell_dst = &ramg->hash_table[new_table_index];
+ }
+ *new_cell_dst = *old_cell;
+ }
+
+ lv_free(old_hash_table);
+}
+
+#if RAMG_DEBUG
+/*
+Print tables like this:
+ 113 kB of RAM_G used
+ ================================-==-=====---=---===---=====-=-=-=-==--=======----=-==-==---=--===--=-=-=========================
+ ========^$==========--=-==-=-=--=--=========---=----========-------===--=====----=======--=====--====--=====-=--=-=
+
+'-' unoccupied cells
+'=' occupied cells
+'^' where the hash pointed to in the table initially and linear probing started
+'$' where linear probing ended because a matching or unoccupied cell
+ was found. This symbol is not shown if the initial guess was correct.
+
+This example has 244 cells. Each cell uses 8 bytes of local RAM, so just under 2 kB.
+Each cell represents an allocation in EVE RAM_G. The RAM_G allocation sizes are not
+represented in this table, except for the overall "113 kB of RAM_G used" message.
+*/
+static void ramg_debug(lv_draw_eve_ramg_t * ramg, uint32_t key_hash, uint32_t table_index)
+{
+ uint32_t table_index_initial_guess = key_hash % ramg->hash_table_cell_count;
+
+ lv_log("%u kB of RAM_G used\n", (unsigned) ramg->ramg_addr_end / 1024);
+
+ for(uint32_t i = 0; i < ramg->hash_table_cell_count; i++) {
+ if(i != 0 && i % 128 == 0) {
+ lv_log("\n");
+ }
+
+ if(i == table_index_initial_guess) {
+ lv_log("^");
+ }
+ else if(i == table_index) {
+ lv_log("$");
+ }
+ else if(ramg->hash_table[i].key) {
+ lv_log("=");
+ }
+ else {
+ lv_log("-");
+ }
+ }
+
+ lv_log("\n\n");
+}
+#endif
+
+#endif/*LV_USE_EVE_DRAW*/
+
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/eve/lv_draw_eve_ram_g.h b/lib/libesp32_lvgl/lvgl/src/draw/eve/lv_draw_eve_ram_g.h
new file mode 100644
index 000000000..ec6ae7535
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/draw/eve/lv_draw_eve_ram_g.h
@@ -0,0 +1,48 @@
+/**
+ * @file lv_draw_eve_ram_g.h
+ *
+ */
+
+/* Created on: 19 nov 2023
+ * Author: juanj
+ *
+ * Modified by LVGL
+ */
+
+#ifndef LV_DRAW_EVE_RAM_G_H
+#define LV_DRAW_EVE_RAM_G_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*********************
+ * INCLUDES
+ *********************/
+#include "lv_draw_eve.h"
+#if LV_USE_DRAW_EVE
+
+/*********************
+ * DEFINES
+ *********************/
+
+#define LV_DRAW_EVE_RAMG_OUT_OF_RAMG UINT32_MAX
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+/**********************
+ * GLOBAL PROTOTYPES
+ **********************/
+
+bool lv_draw_eve_ramg_get_addr(uint32_t * addr_dst, uintptr_t key,
+ uint32_t addr_size, uint32_t addr_align);
+
+#endif/*LV_USE_DRAW_EVE*/
+
+#ifdef __cplusplus
+} /*extern "C"*/
+#endif
+
+#endif /* LV_DRAW_EVE_RAM_G_H */
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/eve/lv_draw_eve_target.h b/lib/libesp32_lvgl/lvgl/src/draw/eve/lv_draw_eve_target.h
new file mode 100644
index 000000000..90e938bb3
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/draw/eve/lv_draw_eve_target.h
@@ -0,0 +1,79 @@
+/**
+ * @file lv_draw_eve_target.h
+ *
+ */
+
+#ifndef LV_DRAW_EVE_TARGET_H
+#define LV_DRAW_EVE_TARGET_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*********************
+ * INCLUDES
+ *********************/
+
+#include "../../lv_conf_internal.h"
+#if LV_USE_DRAW_EVE
+
+#include "../../misc/lv_types.h"
+#include LV_STDBOOL_INCLUDE
+#include LV_STDINT_INCLUDE
+
+typedef struct {
+ uint16_t hor_res; /**< active display width */
+ uint16_t ver_res; /**< active display height */
+ uint16_t hcycle; /**< total number of clocks per line, incl front/back porch */
+ uint16_t hoffset; /**< start of active line */
+ uint16_t hsync0; /**< start of horizontal sync pulse */
+ uint16_t hsync1; /**< end of horizontal sync pulse */
+ uint16_t vcycle; /**< total number of lines per screen, including pre/post */
+ uint16_t voffset; /**< start of active screen */
+ uint16_t vsync0; /**< start of vertical sync pulse */
+ uint16_t vsync1; /**< end of vertical sync pulse */
+ uint8_t swizzle; /**< FT8xx output to LCD - pin order */
+ uint8_t pclkpol; /**< LCD data is clocked in on this PCLK edge */
+ uint8_t cspread; /**< helps with noise, when set to 1 fewer signals are changed simultaneously, reset-default: 1 */
+ uint8_t pclk; /**< 60MHz / pclk = pclk frequency */
+ bool has_crystal; /**< has an external clock crystal */
+ bool has_gt911; /**< has a touch controller */
+ uint8_t backlight_pwm; /**< backlight PWM duty cycle 0 = off, 128 = max */
+ uint16_t backlight_freq; /**< backlight PWM frequency. try 4000 if unsure */
+} lv_draw_eve_parameters_t;
+
+typedef enum {
+ LV_DRAW_EVE_OPERATION_POWERDOWN_SET, /**< set the "PD_N" pin low */
+ LV_DRAW_EVE_OPERATION_POWERDOWN_CLEAR, /**< set the "PD_N" pin high */
+ LV_DRAW_EVE_OPERATION_CS_ASSERT, /**< set the "CS_N" pin low */
+ LV_DRAW_EVE_OPERATION_CS_DEASSERT, /**< set the "CS_N" pin high */
+ LV_DRAW_EVE_OPERATION_SPI_SEND, /**< send `length` bytes of `data` over SPI */
+ LV_DRAW_EVE_OPERATION_SPI_RECEIVE /**< receive `length` bytes into `data` from SPI */
+} lv_draw_eve_operation_t;
+
+typedef void (*lv_draw_eve_operation_cb_t)(lv_display_t * disp, lv_draw_eve_operation_t operation, void * data,
+ uint32_t length);
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+/**********************
+ * GLOBAL PROTOTYPES
+ **********************/
+
+/**********************
+ * MACROS
+ **********************/
+
+#endif /*LV_USE_DRAW_EVE*/
+
+#ifdef __cplusplus
+} /*extern "C"*/
+#endif
+
+#endif /*LV_DRAW_EVE_TARGET_H*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/eve/lv_draw_eve_triangle.c b/lib/libesp32_lvgl/lvgl/src/draw/eve/lv_draw_eve_triangle.c
new file mode 100644
index 000000000..b48411f59
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/draw/eve/lv_draw_eve_triangle.c
@@ -0,0 +1,127 @@
+/**
+ * @file lv_draw_eve_triangle.c
+ *
+ */
+
+/* Created on: 10 ene 2024
+ * Author: juanj
+ *
+ * Modified by LVGL
+ */
+
+/*********************
+ * INCLUDES
+ *********************/
+#include "lv_draw_eve_private.h"
+#if LV_USE_DRAW_EVE
+
+#include "../../misc/lv_math.h"
+#include "../../stdlib/lv_mem.h"
+#include "../../misc/lv_area_private.h"
+#include "../../misc/lv_color.h"
+#include "../../stdlib/lv_string.h"
+#include "lv_eve.h"
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+/**********************
+ * STATIC PROTOTYPES
+ **********************/
+
+/**********************
+ * STATIC VARIABLES
+ **********************/
+
+/**********************
+ * MACROS
+ **********************/
+
+/**********************
+ * GLOBAL FUNCTIONS
+ **********************/
+
+void lv_draw_eve_triangle(lv_draw_task_t * t, const lv_draw_triangle_dsc_t * dsc)
+{
+
+ lv_area_t tri_area;
+ tri_area.x1 = (int32_t)LV_MIN3(dsc->p[0].x, dsc->p[1].x, dsc->p[2].x);
+ tri_area.y1 = (int32_t)LV_MIN3(dsc->p[0].y, dsc->p[1].y, dsc->p[2].y);
+ tri_area.x2 = (int32_t)LV_MAX3(dsc->p[0].x, dsc->p[1].x, dsc->p[2].x);
+ tri_area.y2 = (int32_t)LV_MAX3(dsc->p[0].y, dsc->p[1].y, dsc->p[2].y);
+
+ bool is_common;
+ lv_area_t draw_area;
+ is_common = lv_area_intersect(&draw_area, &tri_area, &t->clip_area);
+ if(!is_common) return;
+
+ lv_point_t p[3];
+ /*If there is a vertical side use it as p[0] and p[1]*/
+ if(dsc->p[0].x == dsc->p[1].x) {
+ p[0] = lv_point_from_precise(&dsc->p[0]);
+ p[1] = lv_point_from_precise(&dsc->p[1]);
+ p[2] = lv_point_from_precise(&dsc->p[2]);
+ }
+ else if(dsc->p[0].x == dsc->p[2].x) {
+ p[0] = lv_point_from_precise(&dsc->p[0]);
+ p[1] = lv_point_from_precise(&dsc->p[2]);
+ p[2] = lv_point_from_precise(&dsc->p[1]);
+ }
+ else if(dsc->p[1].x == dsc->p[2].x) {
+ p[0] = lv_point_from_precise(&dsc->p[1]);
+ p[1] = lv_point_from_precise(&dsc->p[2]);
+ p[2] = lv_point_from_precise(&dsc->p[0]);
+ }
+ else {
+ p[0] = lv_point_from_precise(&dsc->p[0]);
+ p[1] = lv_point_from_precise(&dsc->p[1]);
+ p[2] = lv_point_from_precise(&dsc->p[2]);
+
+ /*Set the smallest y as p[0]*/
+ if(p[0].y > p[1].y) lv_point_swap(&p[0], &p[1]);
+ if(p[0].y > p[2].y) lv_point_swap(&p[0], &p[2]);
+
+ /*Set the greatest y as p[1]*/
+ if(p[1].y < p[2].y) lv_point_swap(&p[1], &p[2]);
+ }
+
+ /*Be sure p[0] is on the top*/
+ if(p[0].y > p[1].y) lv_point_swap(&p[0], &p[1]);
+
+ lv_eve_save_context();
+
+ lv_eve_scissor(t->clip_area.x1, t->clip_area.y1, t->clip_area.x2, t->clip_area.y2);
+
+ lv_eve_color(dsc->color);
+ lv_eve_color_opa(dsc->opa);
+
+ lv_eve_color_mask(0, 0, 0, 0);
+ lv_eve_stencil_op(EVE_KEEP, EVE_INVERT);
+ lv_eve_stencil_func(EVE_ALWAYS, 255, 255);
+ lv_eve_primitive(LV_EVE_PRIMITIVE_EDGE_STRIP_A);
+
+ lv_eve_vertex_2f(p[0].x, p[0].y);
+ lv_eve_vertex_2f(p[1].x, p[1].y);
+ lv_eve_vertex_2f(p[2].x, p[2].y);
+
+ lv_eve_color_mask(1, 1, 1, 1);
+ lv_eve_stencil_func(EVE_EQUAL, 255, 255) ;
+
+ lv_eve_vertex_2f(0, 0);
+ lv_eve_vertex_2f(1022, 0);
+
+ lv_eve_restore_context();
+}
+
+/**********************
+ * STATIC FUNCTIONS
+ **********************/
+
+#endif /*LV_USE_DRAW_EVE*/
+
+
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/eve/lv_eve.c b/lib/libesp32_lvgl/lvgl/src/draw/eve/lv_eve.c
new file mode 100644
index 000000000..145c4c7f2
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/draw/eve/lv_eve.c
@@ -0,0 +1,265 @@
+/**
+ * @file lv_eve.c
+ *
+ */
+
+/* Created on: 8 jun 2023
+ * Author: juanj
+ *
+ * Modified by LVGL
+ */
+
+/*********************
+ * INCLUDES
+ *********************/
+#include "lv_draw_eve.h"
+#if LV_USE_DRAW_EVE
+#include "lv_eve.h"
+#include "../../libs/FT800-FT813/EVE_commands.h"
+
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+/**********************
+ * STATIC PROTOTYPES
+ **********************/
+
+/**********************
+ * STATIC VARIABLES
+ **********************/
+
+static uint16_t scissor_x1 = 0;
+static uint16_t scissor_y1 = 0;
+static uint16_t scissor_x2 = 0;
+static uint16_t scissor_y2 = 0;
+
+static lv_eve_drawing_context_t ct = {
+ .primitive = LV_EVE_PRIMITIVE_ZERO_VALUE,
+ .color = {0xff, 0xff, 0xff},
+ .opa = 255,
+ .line_width = 1, /* for format(0) */
+ .point_size = 1,
+ .color_mask = {1, 1, 1, 1},
+ .stencil_func = {EVE_ALWAYS, 0, 255},
+ .stencil_op = {EVE_KEEP, EVE_KEEP},
+ .blend_func = {EVE_SRC_ALPHA, EVE_ONE_MINUS_SRC_ALPHA},
+ .scx = 0,
+ .scy = 0,
+};
+
+static lv_eve_drawing_context_t ct_temp;
+
+static lv_eve_drawing_state_t st;
+
+/**********************
+ * MACROS
+ **********************/
+
+/**********************
+ * GLOBAL FUNCTIONS
+ **********************/
+
+void lv_eve_save_context(void)
+{
+ EVE_cmd_dl_burst(DL_SAVE_CONTEXT);
+ ct_temp = ct;
+}
+
+void lv_eve_restore_context(void)
+{
+ EVE_cmd_dl_burst(DL_RESTORE_CONTEXT);
+ ct = ct_temp;
+}
+
+
+void lv_eve_primitive(uint8_t context)
+{
+ if(context != ct.primitive && context != LV_EVE_PRIMITIVE_ZERO_VALUE) {
+ EVE_cmd_dl_burst(DL_BEGIN | context);
+ ct.primitive = context;
+ }
+}
+
+void lv_eve_scissor(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2)
+{
+ if(x1 != scissor_x1 || y1 != scissor_y1) {
+ int16_t adjusted_x1 = x1 > 0 ? x1 - 1 : 0;
+ int16_t adjusted_y1 = y1 > 0 ? y1 - 1 : 0;
+ EVE_cmd_dl_burst(SCISSOR_XY(adjusted_x1, adjusted_y1));
+ scissor_x1 = x1;
+ scissor_y1 = y1;
+ }
+
+ if(x2 != scissor_x2 || y2 != scissor_y2) {
+ uint16_t w = x2 - x1 + 3;
+ uint16_t h = y2 - y1 + 3;
+ EVE_cmd_dl_burst(SCISSOR_SIZE(w, h));
+ scissor_x2 = x2;
+ scissor_y2 = y2;
+ }
+}
+
+void lv_eve_color(lv_color_t color)
+{
+ if((ct.color.red != color.red) || (ct.color.green != color.green) || (ct.color.blue != color.blue)) {
+ EVE_cmd_dl_burst(COLOR_RGB(color.red, color.green, color.blue));
+ ct.color = color;
+ }
+}
+
+void lv_eve_color_mask(uint8_t r, uint8_t g, uint8_t b, uint8_t a)
+{
+ if((ct.color_mask[0] != r) ||
+ (ct.color_mask[1] != g) ||
+ (ct.color_mask[2] != b) ||
+ (ct.color_mask[3] != a)) {
+
+ EVE_cmd_dl_burst(COLOR_MASK(r, g, b, a));
+ ct.color_mask[0] = r;
+ ct.color_mask[1] = g;
+ ct.color_mask[2] = b;
+ ct.color_mask[3] = a;
+ }
+}
+
+void lv_eve_stencil_func(uint8_t func, uint8_t ref, uint8_t mask)
+{
+ if(func != ct.stencil_func[0] || ref != ct.stencil_func[1] || mask != ct.stencil_func[2]) {
+
+ EVE_cmd_dl_burst(STENCIL_FUNC(func, ref, mask));
+ ct.stencil_func[0] = func;
+ ct.stencil_func[1] = ref;
+ ct.stencil_func[2] = mask;
+ }
+}
+
+void lv_eve_stencil_op(uint8_t sfail, uint8_t spass)
+{
+ if(sfail != ct.stencil_op[0] || spass != ct.stencil_op[1]) {
+ EVE_cmd_dl_burst(STENCIL_OP(sfail, spass));
+ ct.stencil_op[0] = sfail;
+ ct.stencil_op[1] = spass;
+
+ }
+}
+
+void lv_eve_blend_func(uint8_t src, uint8_t dst)
+{
+ if(src != ct.blend_func[0] || dst != ct.blend_func[1]) {
+ EVE_cmd_dl_burst(BLEND_FUNC(src, dst));
+ ct.blend_func[0] = src;
+ ct.blend_func[1] = dst;
+ }
+}
+
+void lv_eve_color_opa(lv_opa_t opa)
+{
+ if(opa != ct.opa) {
+ EVE_cmd_dl_burst(COLOR_A(opa));
+ ct.opa = opa;
+ }
+}
+
+void lv_eve_line_width(int32_t width)
+{
+ if(width != ct.line_width) {
+ EVE_cmd_dl_burst(LINE_WIDTH(width));
+ ct.line_width = width;
+ }
+}
+
+void lv_eve_point_size(uint16_t radius)
+{
+ if(radius != ct.point_size) {
+ EVE_cmd_dl_burst(POINT_SIZE(radius * 16));
+ ct.point_size = radius;
+ }
+}
+
+void lv_eve_vertex_2f(int16_t x, int16_t y)
+{
+ EVE_cmd_dl_burst(VERTEX2F(x, y));
+}
+
+void lv_eve_draw_circle_simple(int16_t coord_x1, int16_t coord_y1, uint16_t radius_t)
+{
+ lv_eve_primitive(LV_EVE_PRIMITIVE_POINTS);
+ lv_eve_point_size(radius_t);
+ lv_eve_vertex_2f(coord_x1, coord_y1);
+}
+
+
+void lv_eve_draw_rect_simple(int16_t coord_x1, int16_t coord_y1, int16_t coord_x2, int16_t coord_y2, uint16_t radius)
+{
+ lv_eve_primitive(LV_EVE_PRIMITIVE_RECTS);
+ if(radius > 1) {
+ lv_eve_line_width(radius * 16);
+ }
+
+ lv_eve_vertex_2f(coord_x1 + radius, coord_y1 + radius);
+ lv_eve_vertex_2f(coord_x2 - radius, coord_y2 - radius);
+}
+
+void lv_eve_mask_round(int16_t coord_x1, int16_t coord_y1, int16_t coord_x2, int16_t coord_y2, int16_t radius)
+{
+ lv_eve_color_mask(0, 0, 0, 1);
+ EVE_cmd_dl_burst(CLEAR(1, 1, 1));
+
+
+ lv_eve_draw_rect_simple(coord_x1, coord_y1, coord_x2, coord_y2, radius);
+ lv_eve_color_mask(1, 1, 1, 0);
+ lv_eve_blend_func(EVE_DST_ALPHA, EVE_ONE_MINUS_DST_ALPHA);
+}
+
+void lv_eve_bitmap_source(uint32_t addr)
+{
+ uint32_t bitmap_source = BITMAP_SOURCE(addr);
+ if(st.bitmap_source != bitmap_source) {
+ EVE_cmd_dl_burst(bitmap_source);
+ st.bitmap_source = bitmap_source;
+ }
+}
+
+void lv_eve_bitmap_size(uint8_t filter, uint8_t wrapx, uint8_t wrapy, uint16_t width, uint16_t height)
+{
+ uint32_t bitmap_size = BITMAP_SIZE(filter, wrapx, wrapy, width, height);
+ if(st.bitmap_size != bitmap_size) {
+ EVE_cmd_dl_burst(bitmap_size);
+ st.bitmap_size = bitmap_size;
+ }
+ /* set the high bits too, of the width and height */
+ uint32_t bitmap_size_h = BITMAP_SIZE_H(width, height);
+ if(st.bitmap_size_h != bitmap_size_h) {
+ EVE_cmd_dl_burst(bitmap_size_h);
+ st.bitmap_size_h = bitmap_size_h;
+ }
+}
+
+void lv_eve_bitmap_layout(uint8_t format, uint16_t linestride, uint16_t height)
+{
+ uint32_t bitmap_layout = BITMAP_LAYOUT(format, linestride, height);
+ if(st.bitmap_layout != bitmap_layout) {
+ EVE_cmd_dl_burst(bitmap_layout);
+ st.bitmap_layout = bitmap_layout;
+ }
+ /* set the high bits too, of the linestride and height */
+ uint32_t bitmap_layout_h = BITMAP_LAYOUT_H(linestride, height);
+ if(st.bitmap_layout_h != bitmap_layout_h) {
+ EVE_cmd_dl_burst(bitmap_layout_h);
+ st.bitmap_layout_h = bitmap_layout_h;
+ }
+}
+
+
+
+/**********************
+ * STATIC FUNCTIONS
+ **********************/
+
+#endif /*LV_USE_DRAW_EVE*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/eve/lv_eve.h b/lib/libesp32_lvgl/lvgl/src/draw/eve/lv_eve.h
new file mode 100644
index 000000000..b48bd1151
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/draw/eve/lv_eve.h
@@ -0,0 +1,151 @@
+/**
+ * @file lv_eve.h
+ *
+ */
+
+/* Created on: 8 jun 2023
+ * Author: juanj
+ *
+ * Modified by LVGL
+ */
+
+#ifndef LV_EVE_H
+#define LV_EVE_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*********************
+ * INCLUDES
+ *********************/
+
+#include "lv_draw_eve.h"
+
+#if LV_USE_DRAW_EVE
+
+#include "../../misc/lv_types.h"
+#include "../../misc/lv_color.h"
+#include "../../libs/FT800-FT813/EVE.h"
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+typedef enum {
+ LV_EVE_PRIMITIVE_ZERO_VALUE,
+ LV_EVE_PRIMITIVE_BITMAPS = 1UL, /* Bitmap drawing primitive */
+ LV_EVE_PRIMITIVE_POINTS = 2UL, /* Point drawing primitive */
+ LV_EVE_PRIMITIVE_LINES = 3UL, /* Line drawing primitive */
+ LV_EVE_PRIMITIVE_LINE_STRIP = 4UL, /* Line strip drawing primitive */
+ LV_EVE_PRIMITIVE_EDGE_STRIP_R = 5UL, /* Edge strip right side drawing primitive */
+ LV_EVE_PRIMITIVE_EDGE_STRIP_L = 6UL, /* Edge strip left side drawing primitive */
+ LV_EVE_PRIMITIVE_EDGE_STRIP_A = 7UL, /* Edge strip above drawing primitive */
+ LV_EVE_PRIMITIVE_EDGE_STRIP_B = 8UL, /* Edge strip below side drawing primitive */
+ LV_EVE_PRIMITIVE_RECTS = 9UL, /* Rectangle drawing primitive */
+} lv_eve_primitive_t;
+
+
+typedef struct {
+ lv_eve_primitive_t primitive;
+ lv_color_t color;
+ lv_opa_t opa;
+ int32_t line_width;
+ uint16_t point_size;
+ uint8_t color_mask[4];
+ uint8_t stencil_func[3];
+ uint8_t stencil_op[2];
+ uint8_t blend_func[2];
+ uint16_t scx;
+ uint16_t scy;
+} lv_eve_drawing_context_t;
+
+/* drawing context that is not saved and restored
+ * by SAVE_CONTEXT and RESTORE_CONTEXT
+ */
+typedef struct {
+ uint32_t bitmap_source;
+ uint32_t bitmap_size;
+ uint32_t bitmap_size_h;
+ uint32_t bitmap_layout;
+ uint32_t bitmap_layout_h;
+} lv_eve_drawing_state_t;
+
+/**********************
+ * GLOBAL PROTOTYPES
+ **********************/
+
+void lv_eve_save_context(void);
+void lv_eve_restore_context(void);
+void lv_eve_scissor(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2);
+void lv_eve_primitive(uint8_t context);
+void lv_eve_color(lv_color_t color);
+void lv_eve_color_opa(lv_opa_t opa);
+void lv_eve_line_width(int32_t width);
+void lv_eve_point_size(uint16_t radius);
+void lv_eve_vertex_2f(int16_t x, int16_t y);
+void lv_eve_color_mask(uint8_t r, uint8_t g, uint8_t b, uint8_t a);
+void lv_eve_stencil_func(uint8_t func, uint8_t ref, uint8_t mask);
+void lv_eve_stencil_op(uint8_t sfail, uint8_t spass);
+void lv_eve_blend_func(uint8_t src, uint8_t dst);
+
+void lv_eve_draw_circle_simple(int16_t coord_x1, int16_t coord_y1, uint16_t radius_t);
+void lv_eve_draw_rect_simple(int16_t coord_x1, int16_t coord_y1, int16_t coord_x2, int16_t coord_y2,
+ uint16_t radius);
+void lv_eve_mask_round(int16_t coord_x1, int16_t coord_y1, int16_t coord_x2, int16_t coord_y2, int16_t radius);
+
+/**
+ * Set the bitmap source to `addr`. SPI transmission will occur unless it is already set to this value.
+ * The bitmap source is not part of the saved and restored context.
+ * @param addr the remote EVE memory address to set as the bitmap source
+ */
+void lv_eve_bitmap_source(uint32_t addr);
+
+/**
+ * Set the bitmap size and sampling parameters. SPI transmission will occur unless the currently set parameters are already these.
+ * The bitmap size is not part of the saved and restored context.
+ * @param filter the sampling method. Either EVE_NEAREST or EVE_BILINEAR
+ * @param wrapx the out of bounds sampling behavior in the X direction. Either EVE_BORDER or EVE_REPEAT
+ * @param wrapy the out of bounds sampling behavior in the Y direction. Either EVE_BORDER or EVE_REPEAT
+ * @param width the width of the bitmap in pixels
+ * @param height the height of the bitmap in pixels
+ */
+void lv_eve_bitmap_size(uint8_t filter, uint8_t wrapx, uint8_t wrapy, uint16_t width, uint16_t height);
+
+/**
+ * Set the bitmap format/layout parameters. SPI transmission will occur unless the currently set parameters are already these.
+ * The bitmap layout is not part of the saved and restored context.
+ * @param format an eve color format value like EVE_RGB565
+ * @param linestride the stride of the bitmap rows in bytes
+ * @param height the number of rows in the bitmap
+ */
+void lv_eve_bitmap_layout(uint8_t format, uint16_t linestride, uint16_t height);
+
+/**********************
+ * EXTERN VARIABLES
+ **********************/
+
+
+/**********************
+ * MACROS
+ **********************/
+
+/**********************
+ * INLINE FUNCTIONS
+ **********************/
+
+/**********************
+ * STATIC FUNCTIONS
+ **********************/
+
+#endif /*LV_USE_DRAW_EVE*/
+
+
+#ifdef __cplusplus
+} /*extern "C"*/
+#endif
+
+#endif /* LV_EVE_H */
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/lv_draw.c b/lib/libesp32_lvgl/lvgl/src/draw/lv_draw.c
index a80ae196f..24eecdadb 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/lv_draw.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/lv_draw.c
@@ -12,6 +12,7 @@
*********************/
#include "../misc/lv_area_private.h"
#include "../misc/lv_assert.h"
+#include "../misc/lv_event_private.h"
#include "lv_draw_private.h"
#include "lv_draw_mask_private.h"
#include "lv_draw_vector_private.h"
@@ -34,7 +35,7 @@
/**********************
* STATIC PROTOTYPES
**********************/
-static bool is_independent(lv_layer_t * layer, lv_draw_task_t * t_check);
+static bool is_independent(lv_layer_t * layer, lv_draw_task_t * t_check, uint8_t draw_unit_id);
static void cleanup_task(lv_draw_task_t * t, lv_display_t * disp);
static inline size_t get_draw_dsc_size(lv_draw_task_type_t type);
static lv_draw_task_t * get_first_available_task(lv_layer_t * layer);
@@ -110,9 +111,10 @@ lv_draw_task_t * lv_draw_add_task(lv_layer_t * layer, const lv_area_t * coords,
#if LV_DRAW_TRANSFORM_USE_MATRIX
new_task->matrix = layer->matrix;
#endif
+ new_task->opa = layer->opa;
new_task->type = type;
new_task->draw_dsc = (uint8_t *)new_task + LV_ALIGN_UP(sizeof(lv_draw_task_t), 8);
- new_task->state = LV_DRAW_TASK_STATE_QUEUED;
+ new_task->state = LV_DRAW_TASK_STATE_WAITING;
/*Find the tail*/
if(layer->draw_task_head == NULL) {
@@ -165,7 +167,7 @@ void lv_draw_finalize_task_creation(lv_layer_t * layer, lv_draw_task_t * t)
}
if(t->preferred_draw_unit_id == LV_DRAW_UNIT_NONE) {
LV_LOG_WARN("the draw task was not taken by any units");
- t->state = LV_DRAW_TASK_STATE_READY;
+ t->state = LV_DRAW_TASK_STATE_FINISHED;
}
else {
lv_draw_dispatch();
@@ -213,19 +215,18 @@ void lv_draw_dispatch(void)
{
LV_PROFILER_DRAW_BEGIN;
bool task_dispatched = false;
- lv_display_t * disp = lv_display_get_next(NULL);
- while(disp) {
+ lv_display_t * disp = lv_refr_get_disp_refreshing();
+ if(disp != NULL) {
lv_layer_t * layer = disp->layer_head;
while(layer) {
if(lv_draw_dispatch_layer(disp, layer))
task_dispatched = true;
layer = layer->next;
}
- if(!task_dispatched) {
- lv_draw_wait_for_finish();
- lv_draw_dispatch_request();
- }
- disp = lv_display_get_next(disp);
+ }
+ if(!task_dispatched) {
+ lv_draw_wait_for_finish();
+ lv_draw_dispatch_request();
}
LV_PROFILER_DRAW_END;
}
@@ -240,7 +241,7 @@ bool lv_draw_dispatch_layer(lv_display_t * disp, lv_layer_t * layer)
bool remove_task = false;
while(t) {
t_next = t->next;
- if(t->state == LV_DRAW_TASK_STATE_READY) {
+ if(t->state == LV_DRAW_TASK_STATE_FINISHED) {
cleanup_task(t, disp);
remove_task = true;
if(t_prev != NULL)
@@ -261,10 +262,10 @@ bool lv_draw_dispatch_layer(lv_display_t * disp, lv_layer_t * layer)
/*Find a draw task with TYPE_LAYER in the layer where the src is this layer*/
lv_draw_task_t * t_src = layer->parent->draw_task_head;
while(t_src) {
- if(t_src->type == LV_DRAW_TASK_TYPE_LAYER && t_src->state == LV_DRAW_TASK_STATE_WAITING) {
+ if(t_src->type == LV_DRAW_TASK_TYPE_LAYER && t_src->state == LV_DRAW_TASK_STATE_BLOCKED) {
lv_draw_image_dsc_t * draw_dsc = t_src->draw_dsc;
if(draw_dsc->src == layer) {
- t_src->state = LV_DRAW_TASK_STATE_QUEUED;
+ t_src->state = LV_DRAW_TASK_STATE_WAITING;
lv_draw_dispatch_request();
break;
}
@@ -339,7 +340,7 @@ lv_draw_task_t * lv_draw_get_next_available_task(lv_layer_t * layer, lv_draw_tas
int32_t hor_res = lv_display_get_horizontal_resolution(lv_refr_get_disp_refreshing());
int32_t ver_res = lv_display_get_vertical_resolution(lv_refr_get_disp_refreshing());
lv_draw_task_t * t = layer->draw_task_head;
- if(t->state != LV_DRAW_TASK_STATE_QUEUED &&
+ if(t->state != LV_DRAW_TASK_STATE_WAITING &&
t->area.x1 <= 0 && t->area.x2 >= hor_res - 1 &&
t->area.y1 <= 0 && t->area.y2 >= ver_res - 1) {
LV_PROFILER_DRAW_END;
@@ -349,13 +350,14 @@ lv_draw_task_t * lv_draw_get_next_available_task(lv_layer_t * layer, lv_draw_tas
lv_draw_task_t * t = t_prev ? t_prev->next : layer->draw_task_head;
while(t) {
- /*Find a queued and independent task*/
- if(t->state == LV_DRAW_TASK_STATE_QUEUED &&
- (t->preferred_draw_unit_id == LV_DRAW_UNIT_NONE || t->preferred_draw_unit_id == draw_unit_id) &&
- is_independent(layer, t)) {
+ /*Find a draw task for this draw unit which is waiting and independent?*/
+ if((t->preferred_draw_unit_id == draw_unit_id || t->preferred_draw_unit_id == LV_DRAW_UNIT_NONE) &&
+ t->state == LV_DRAW_TASK_STATE_WAITING &&
+ is_independent(layer, t, draw_unit_id)) {
LV_PROFILER_DRAW_END;
return t;
}
+
t = t->next;
}
@@ -373,7 +375,7 @@ uint32_t lv_draw_get_dependent_count(lv_draw_task_t * t_check)
lv_draw_task_t * t = t_check->next;
while(t) {
- if((t->state == LV_DRAW_TASK_STATE_QUEUED || t->state == LV_DRAW_TASK_STATE_WAITING) &&
+ if((t->state == LV_DRAW_TASK_STATE_WAITING || t->state == LV_DRAW_TASK_STATE_BLOCKED) &&
lv_area_is_on(&t_check->area, &t->area)) {
cnt++;
}
@@ -384,6 +386,29 @@ uint32_t lv_draw_get_dependent_count(lv_draw_task_t * t_check)
return cnt;
}
+void lv_draw_unit_send_event(const char * name, lv_event_code_t code, void * param)
+{
+ LV_PROFILER_DRAW_BEGIN;
+
+ lv_event_t event = { 0 };
+ event.code = code;
+ event.param = param;
+ lv_draw_unit_t * u = _draw_info.unit_head;
+ while(u) {
+ if(u->event_cb && (!name || lv_strcmp(name, u->name) == 0)) {
+ event.current_target = event.original_target = u;
+ LV_PROFILER_DRAW_BEGIN_TAG("event_cb");
+ LV_PROFILER_DRAW_BEGIN_TAG(u->name);
+ u->event_cb(&event);
+ LV_PROFILER_DRAW_END_TAG(u->name);
+ LV_PROFILER_DRAW_END_TAG("event_cb");
+ }
+ u = u->next;
+ }
+
+ LV_PROFILER_DRAW_END;
+}
+
void lv_layer_init(lv_layer_t * layer)
{
LV_ASSERT_NULL(layer);
@@ -518,23 +543,30 @@ void lv_draw_task_get_area(const lv_draw_task_t * t, lv_area_t * area)
/**
* Check if there are older draw task overlapping the area of `t_check`
- * @param layer the draw ctx to search in
+ * @param layer the draw ctx to search in
* @param t_check check this task if it overlaps with the older ones
+ * @param draw_unit_id draw unit ID for which the independence check is called
* @return true: `t_check` is not overlapping with older tasks so it's independent
*/
-static bool is_independent(lv_layer_t * layer, lv_draw_task_t * t_check)
+static bool is_independent(lv_layer_t * layer, lv_draw_task_t * t_check, uint8_t draw_unit_id)
{
LV_PROFILER_DRAW_BEGIN;
lv_draw_task_t * t = layer->draw_task_head;
/*If t_check is outside of the older tasks then it's independent*/
while(t && t != t_check) {
- if(t->state != LV_DRAW_TASK_STATE_READY) {
- lv_area_t a;
- if(lv_area_intersect(&a, &t->_real_area, &t_check->_real_area)) {
- LV_PROFILER_DRAW_END;
- return false;
- }
+ /*It's independent of finished draw tasks, and queued draw tasks of the same draw unit,
+ *so no need to check it*/
+ if(t->state == LV_DRAW_TASK_STATE_FINISHED ||
+ (t->state == LV_DRAW_TASK_STATE_QUEUED && t->preferred_draw_unit_id == draw_unit_id)) {
+ t = t->next;
+ continue;
+ }
+
+ lv_area_t a;
+ if(lv_area_intersect(&a, &t->_real_area, &t_check->_real_area)) {
+ LV_PROFILER_DRAW_END;
+ return false;
}
t = t->next;
}
@@ -581,7 +613,7 @@ static inline size_t get_draw_dsc_size(lv_draw_task_type_t type)
return 0;
#if LV_USE_VECTOR_GRAPHIC
case LV_DRAW_TASK_TYPE_VECTOR:
- return sizeof(lv_draw_vector_task_dsc_t);
+ return sizeof(lv_draw_vector_dsc_t);
#endif
#if LV_USE_3DTEXTURE
case LV_DRAW_TASK_TYPE_3D:
@@ -662,16 +694,16 @@ static lv_draw_task_t * get_first_available_task(lv_layer_t * layer)
* all its tasks are ready. As other areas might be on top of that
* layer-to-blend don't skip it. Instead stop there, so that the
* draw tasks of that layer can be consumed and can be finished.
- * After that this layer-to-blenf will have `LV_DRAW_TASK_STATE_QUEUED`
+ * After that this layer-to-blenf will have `LV_DRAW_TASK_STATE_WAITING`
* so it can be blended normally.*/
lv_draw_task_t * t = layer->draw_task_head;
while(t) {
- /*Not queued yet, leave this layer while the first task is queued*/
- if(t->state != LV_DRAW_TASK_STATE_QUEUED) {
+ /*Not waiting to be rendered, leave this layer while the first task is ready (i.e. not blocked)*/
+ if(t->state != LV_DRAW_TASK_STATE_WAITING) {
t = NULL;
break;
}
- /*It's a supported and queued task, process it*/
+ /*Waiting to be rendered, use it*/
else {
break;
}
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/lv_draw.h b/lib/libesp32_lvgl/lvgl/src/draw/lv_draw.h
index d394de87c..dd8291da5 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/lv_draw.h
+++ b/lib/libesp32_lvgl/lvgl/src/draw/lv_draw.h
@@ -24,6 +24,7 @@ extern "C" {
#include "../misc/lv_text.h"
#include "../misc/lv_profiler.h"
#include "../misc/lv_matrix.h"
+#include "../misc/lv_event.h"
#include "lv_image_decoder.h"
#include "lv_draw_buf.h"
@@ -66,22 +67,52 @@ typedef enum {
} lv_draw_task_type_t;
typedef enum {
- LV_DRAW_TASK_STATE_WAITING, /*Waiting for something to be finished. E.g. rendering a layer*/
+ /** Waiting for an other task to be finished.
+ * For example in case of `LV_DRAW_TASK_TYPE_LAYER` (used to blend a layer)
+ * is blocked until all the draw tasks of the layer is rendered. */
+ LV_DRAW_TASK_STATE_BLOCKED,
+
+ /** The draw task is added to the layers list and waits to be rendered. */
+ LV_DRAW_TASK_STATE_WAITING,
+
+ /** The draw task is added to the command queue of the draw unit.
+ * As the queued task are executed in order it's possible to queue multiple draw task
+ * (for the same draw unit) even if they are depending on each other.
+ * Therefore `lv_draw_get_available_task` and `lv_draw_get_next_available_task` can return
+ * draw task for the same draw unit even if a dependent draw task is not finished ready yet.*/
LV_DRAW_TASK_STATE_QUEUED,
+
+ /** The draw task is being rendered. This draw task needs to be finished before
+ * `lv_draw_get_available_task` and `lv_draw_get_next_available_task` would
+ * return any depending draw tasks.*/
LV_DRAW_TASK_STATE_IN_PROGRESS,
- LV_DRAW_TASK_STATE_READY,
+
+ /** The draw task is rendered. It will be removed from the draw task list of the layer
+ * and freed automatically. */
+ LV_DRAW_TASK_STATE_FINISHED,
} lv_draw_task_state_t;
struct _lv_layer_t {
-
- /** Target draw buffer of the layer*/
+ /** Target draw buffer of the layer */
lv_draw_buf_t * draw_buf;
+ /** Linked list of draw tasks */
+ lv_draw_task_t * draw_task_head;
+
+ /** Parent layer */
+ lv_layer_t * parent;
+
+ /** Next layer */
+ lv_layer_t * next;
+
+ /** User data */
+ void * user_data;
+
/** The absolute coordinates of the buffer */
lv_area_t buf_area;
- /** The color format of the layer. LV_COLOR_FORMAT_... */
- lv_color_format_t color_format;
+ /** The physical clipping area relative to the display */
+ lv_area_t phy_clip_area;
/**
* NEVER USE IT DRAW UNITS. USED INTERNALLY DURING DRAW TASK CREATION.
@@ -93,32 +124,25 @@ struct _lv_layer_t {
*/
lv_area_t _clip_area;
- /**
- * The physical clipping area relative to the display.
- */
- lv_area_t phy_clip_area;
-
#if LV_DRAW_TRANSFORM_USE_MATRIX
/** Transform matrix to be applied when rendering the layer */
lv_matrix_t matrix;
#endif
- /** Opacity of the layer */
- lv_opa_t opa;
-
- /*Recolor of the layer*/
- lv_color32_t recolor;
-
/** Partial y offset */
int32_t partial_y_offset;
- /** Linked list of draw tasks */
- lv_draw_task_t * draw_task_head;
+ /** Recolor of the layer */
+ lv_color32_t recolor;
- lv_layer_t * parent;
- lv_layer_t * next;
+ /** The color format of the layer. LV_COLOR_FORMAT_... */
+ lv_color_format_t color_format;
+
+ /** Flag indicating all tasks are added */
bool all_tasks_added;
- void * user_data;
+
+ /** Opacity of the layer */
+ lv_opa_t opa;
};
typedef struct {
@@ -126,7 +150,7 @@ typedef struct {
lv_obj_t * obj;
/**The widget part for which draw descriptor was created */
- lv_part_t part;
+ uint32_t part;
/**A widget type specific ID (e.g. table row index). See the docs of the given widget.*/
uint32_t id1;
@@ -248,6 +272,15 @@ lv_draw_task_t * lv_draw_get_next_available_task(lv_layer_t * layer, lv_draw_tas
*/
uint32_t lv_draw_get_dependent_count(lv_draw_task_t * t_check);
+
+/**
+ * Send an event to the draw units
+ * @param name the name of the draw unit to send the event to
+ * @param code the event code
+ * @param param the event parameter
+ */
+void lv_draw_unit_send_event(const char * name, lv_event_code_t code, void * param);
+
/**
* Initialize a layer
* @param layer pointer to a layer to initialize
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_3d.c b/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_3d.c
index 0ea6cbc75..110e0805c 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_3d.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_3d.c
@@ -41,6 +41,8 @@ void lv_draw_3d_dsc_init(lv_draw_3d_dsc_t * dsc)
lv_memzero(dsc, sizeof(lv_draw_3d_dsc_t));
dsc->base.dsc_size = sizeof(lv_draw_3d_dsc_t);
dsc->tex_id = LV_3DTEXTURE_ID_NULL;
+ dsc->h_flip = false;
+ dsc->v_flip = false;
dsc->opa = LV_OPA_COVER;
}
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_3d.h b/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_3d.h
index 436be9a8f..61bfb3622 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_3d.h
+++ b/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_3d.h
@@ -30,6 +30,8 @@ extern "C" {
typedef struct {
lv_draw_dsc_base_t base;
lv_3dtexture_id_t tex_id;
+ bool h_flip;
+ bool v_flip;
lv_opa_t opa;
} lv_draw_3d_dsc_t;
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_arc.h b/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_arc.h
index 1178ecb3a..9041b24c1 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_arc.h
+++ b/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_arc.h
@@ -45,12 +45,12 @@ typedef struct {
/**The center point of the arc. */
lv_point_t center;
- /**The outer radius of the arc*/
- uint16_t radius;
-
/**An image source to be used instead of `color`. `NULL` if unused*/
const void * img_src;
+ /**The outer radius of the arc*/
+ uint16_t radius;
+
/**Opacity of the arc in 0...255 range.
* LV_OPA_TRANSP, LV_OPA_10, LV_OPA_20, .. LV_OPA_COVER can be used as well*/
lv_opa_t opa;
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_buf.c b/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_buf.c
index 58562a86e..8e942dd3a 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_buf.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_buf.c
@@ -12,6 +12,7 @@
#include "../core/lv_global.h"
#include "../misc/lv_math.h"
#include "../misc/lv_area_private.h"
+#include "convert/lv_draw_buf_convert.h"
/*********************
* DEFINES
@@ -29,6 +30,8 @@
**********************/
static void * buf_malloc(size_t size, lv_color_format_t color_format);
static void buf_free(void * buf);
+static void buf_copy(lv_draw_buf_t * dest, const lv_area_t * dest_area,
+ const lv_draw_buf_t * src, const lv_area_t * src_area);
static void * buf_align(void * buf, lv_color_format_t color_format);
static void * draw_buf_malloc(const lv_draw_buf_handlers_t * handler, size_t size_bytes,
lv_color_format_t color_format);
@@ -58,20 +61,22 @@ void lv_draw_buf_init_handlers(void)
void lv_draw_buf_init_with_default_handlers(lv_draw_buf_handlers_t * handlers)
{
- lv_draw_buf_handlers_init(handlers, buf_malloc, buf_free, buf_align, NULL, NULL, width_to_stride);
+ lv_draw_buf_handlers_init(handlers, buf_malloc, buf_free, buf_copy, buf_align, NULL, NULL, width_to_stride);
}
void lv_draw_buf_handlers_init(lv_draw_buf_handlers_t * handlers,
- lv_draw_buf_malloc_cb buf_malloc_cb,
- lv_draw_buf_free_cb buf_free_cb,
- lv_draw_buf_align_cb align_pointer_cb,
- lv_draw_buf_cache_operation_cb invalidate_cache_cb,
- lv_draw_buf_cache_operation_cb flush_cache_cb,
- lv_draw_buf_width_to_stride_cb width_to_stride_cb)
+ lv_draw_buf_malloc_cb_t buf_malloc_cb,
+ lv_draw_buf_free_cb_t buf_free_cb,
+ lv_draw_buf_copy_cb_t buf_copy_cb,
+ lv_draw_buf_align_cb_t align_pointer_cb,
+ lv_draw_buf_cache_operation_cb_t invalidate_cache_cb,
+ lv_draw_buf_cache_operation_cb_t flush_cache_cb,
+ lv_draw_buf_width_to_stride_cb_t width_to_stride_cb)
{
lv_memzero(handlers, sizeof(lv_draw_buf_handlers_t));
handlers->buf_malloc_cb = buf_malloc_cb;
handlers->buf_free_cb = buf_free_cb;
+ handlers->buf_copy_cb = buf_copy_cb;
handlers->align_pointer_cb = align_pointer_cb;
handlers->invalidate_cache_cb = invalidate_cache_cb;
handlers->flush_cache_cb = flush_cache_cb;
@@ -210,64 +215,6 @@ void lv_draw_buf_clear(lv_draw_buf_t * draw_buf, const lv_area_t * a)
LV_PROFILER_DRAW_END;
}
-void lv_draw_buf_copy(lv_draw_buf_t * dest, const lv_area_t * dest_area,
- const lv_draw_buf_t * src, const lv_area_t * src_area)
-{
- LV_PROFILER_DRAW_BEGIN;
- uint8_t * dest_bufc;
- uint8_t * src_bufc;
- int32_t line_width;
-
- /*Source and dest color format must be same. Color conversion is not supported yet.*/
- LV_ASSERT_FORMAT_MSG(dest->header.cf == src->header.cf, "Color format mismatch: %d != %d",
- dest->header.cf, src->header.cf);
-
- if(dest_area == NULL) line_width = dest->header.w;
- else line_width = lv_area_get_width(dest_area);
-
- /* For indexed image, copy the palette if we are copying full image area*/
- if(dest_area == NULL || src_area == NULL) {
- if(LV_COLOR_FORMAT_IS_INDEXED(dest->header.cf)) {
- lv_memcpy(dest->data, src->data, LV_COLOR_INDEXED_PALETTE_SIZE(dest->header.cf) * sizeof(lv_color32_t));
- }
- }
-
- /*Check source and dest area have same width*/
- if((src_area == NULL && line_width != src->header.w) || \
- (src_area != NULL && line_width != lv_area_get_width(src_area))) {
- LV_ASSERT_MSG(0, "Source and destination areas have different width");
- LV_PROFILER_DRAW_END;
- return;
- }
-
- if(src_area) src_bufc = lv_draw_buf_goto_xy(src, src_area->x1, src_area->y1);
- else src_bufc = lv_draw_buf_goto_xy(src, 0, 0);
-
- if(dest_area) dest_bufc = lv_draw_buf_goto_xy(dest, dest_area->x1, dest_area->y1);
- else dest_bufc = lv_draw_buf_goto_xy(dest, 0, 0);
-
- int32_t start_y, end_y;
- if(dest_area) {
- start_y = dest_area->y1;
- end_y = dest_area->y2;
- }
- else {
- start_y = 0;
- end_y = dest->header.h - 1;
- }
-
- uint32_t dest_stride = dest->header.stride;
- uint32_t src_stride = src->header.stride;
- uint32_t line_bytes = (line_width * lv_color_format_get_bpp(dest->header.cf) + 7) >> 3;
-
- for(; start_y <= end_y; start_y++) {
- lv_memcpy(dest_bufc, src_bufc, line_bytes);
- dest_bufc += dest_stride;
- src_bufc += src_stride;
- }
- LV_PROFILER_DRAW_END;
-}
-
lv_result_t lv_draw_buf_init(lv_draw_buf_t * draw_buf, uint32_t w, uint32_t h, lv_color_format_t cf, uint32_t stride,
void * data, uint32_t data_size)
{
@@ -416,11 +363,28 @@ void lv_draw_buf_destroy(lv_draw_buf_t * draw_buf)
LV_PROFILER_DRAW_END;
}
+void lv_draw_buf_copy(lv_draw_buf_t * dest, const lv_area_t * dest_area,
+ const lv_draw_buf_t * src, const lv_area_t * src_area)
+{
+ LV_ASSERT_NULL(dest);
+ LV_ASSERT_NULL(dest->handlers);
+ LV_ASSERT_NULL(dest->handlers->buf_copy_cb);
+ LV_ASSERT_NULL(src);
+
+ dest->handlers->buf_copy_cb(dest, dest_area, src, src_area);
+}
+
void * lv_draw_buf_goto_xy(const lv_draw_buf_t * buf, uint32_t x, uint32_t y)
{
LV_ASSERT_NULL(buf);
if(buf == NULL) return NULL;
+ if(x >= buf->header.w || y >= buf->header.h) {
+ LV_LOG_ERROR("coordinates out of range, x: %" LV_PRIu32 ", y: %"LV_PRIu32", w: %"LV_PRIu32", h: %"LV_PRIu32, x, y,
+ (uint32_t)buf->header.w, (uint32_t)buf->header.h);
+ return NULL;
+ }
+
uint8_t * data = buf->data;
/*Skip palette*/
@@ -515,67 +479,7 @@ lv_result_t lv_draw_buf_premultiply(lv_draw_buf_t * draw_buf)
}
LV_PROFILER_DRAW_BEGIN;
- /*Premultiply color with alpha, do case by case by judging color format*/
- lv_color_format_t cf = draw_buf->header.cf;
- if(LV_COLOR_FORMAT_IS_INDEXED(cf)) {
- int size = LV_COLOR_INDEXED_PALETTE_SIZE(cf);
- lv_color32_t * palette = (lv_color32_t *)draw_buf->data;
- for(int i = 0; i < size; i++) {
- lv_color_premultiply(&palette[i]);
- }
- }
- else if(cf == LV_COLOR_FORMAT_ARGB8888) {
- uint32_t h = draw_buf->header.h;
- uint32_t w = draw_buf->header.w;
- uint32_t stride = draw_buf->header.stride;
- uint8_t * line = (uint8_t *)draw_buf->data;
- for(uint32_t y = 0; y < h; y++) {
- lv_color32_t * pixel = (lv_color32_t *)line;
- for(uint32_t x = 0; x < w; x++) {
- lv_color_premultiply(pixel);
- pixel++;
- }
- line += stride;
- }
- }
- else if(cf == LV_COLOR_FORMAT_RGB565A8) {
- uint32_t h = draw_buf->header.h;
- uint32_t w = draw_buf->header.w;
- uint32_t stride = draw_buf->header.stride;
- uint32_t alpha_stride = stride / 2;
- uint8_t * line = (uint8_t *)draw_buf->data;
- lv_opa_t * alpha = (lv_opa_t *)(line + stride * h);
- for(uint32_t y = 0; y < h; y++) {
- lv_color16_t * pixel = (lv_color16_t *)line;
- for(uint32_t x = 0; x < w; x++) {
- lv_color16_premultiply(pixel, alpha[x]);
- pixel++;
- }
- line += stride;
- alpha += alpha_stride;
- }
- }
- else if(cf == LV_COLOR_FORMAT_ARGB8565) {
- uint32_t h = draw_buf->header.h;
- uint32_t w = draw_buf->header.w;
- uint32_t stride = draw_buf->header.stride;
- uint8_t * line = (uint8_t *)draw_buf->data;
- for(uint32_t y = 0; y < h; y++) {
- uint8_t * pixel = line;
- for(uint32_t x = 0; x < w; x++) {
- uint8_t alpha = pixel[2];
- lv_color16_premultiply((lv_color16_t *)pixel, alpha);
- pixel += 3;
- }
- line += stride;
- }
- }
- else if(LV_COLOR_FORMAT_IS_ALPHA_ONLY(cf)) {
- /*Pass*/
- }
- else {
- LV_LOG_WARN("draw buf has no alpha, cf: %d", cf);
- }
+ lv_draw_buf_convert_premultiply(draw_buf);
draw_buf->header.flags |= LV_IMAGE_FLAGS_PREMULTIPLIED;
@@ -664,6 +568,64 @@ static void buf_free(void * buf)
lv_free(buf);
}
+static void buf_copy(lv_draw_buf_t * dest, const lv_area_t * dest_area,
+ const lv_draw_buf_t * src, const lv_area_t * src_area)
+{
+ LV_PROFILER_DRAW_BEGIN;
+ uint8_t * dest_bufc;
+ uint8_t * src_bufc;
+ int32_t line_width;
+
+ /*Source and dest color format must be same. Color conversion is not supported yet.*/
+ LV_ASSERT_FORMAT_MSG(dest->header.cf == src->header.cf, "Color format mismatch: %d != %d",
+ dest->header.cf, src->header.cf);
+
+ if(dest_area == NULL) line_width = dest->header.w;
+ else line_width = lv_area_get_width(dest_area);
+
+ /* For indexed image, copy the palette if we are copying full image area*/
+ if(dest_area == NULL || src_area == NULL) {
+ if(LV_COLOR_FORMAT_IS_INDEXED(dest->header.cf)) {
+ lv_memcpy(dest->data, src->data, LV_COLOR_INDEXED_PALETTE_SIZE(dest->header.cf) * sizeof(lv_color32_t));
+ }
+ }
+
+ /*Check source and dest area have same width*/
+ if((src_area == NULL && line_width != src->header.w) || \
+ (src_area != NULL && line_width != lv_area_get_width(src_area))) {
+ LV_ASSERT_MSG(0, "Source and destination areas have different width");
+ LV_PROFILER_DRAW_END;
+ return;
+ }
+
+ if(src_area) src_bufc = lv_draw_buf_goto_xy(src, src_area->x1, src_area->y1);
+ else src_bufc = lv_draw_buf_goto_xy(src, 0, 0);
+
+ if(dest_area) dest_bufc = lv_draw_buf_goto_xy(dest, dest_area->x1, dest_area->y1);
+ else dest_bufc = lv_draw_buf_goto_xy(dest, 0, 0);
+
+ int32_t start_y, end_y;
+ if(dest_area) {
+ start_y = dest_area->y1;
+ end_y = dest_area->y2;
+ }
+ else {
+ start_y = 0;
+ end_y = dest->header.h - 1;
+ }
+
+ uint32_t dest_stride = dest->header.stride;
+ uint32_t src_stride = src->header.stride;
+ uint32_t line_bytes = (line_width * lv_color_format_get_bpp(dest->header.cf) + 7) >> 3;
+
+ for(; start_y <= end_y; start_y++) {
+ lv_memcpy(dest_bufc, src_bufc, line_bytes);
+ dest_bufc += dest_stride;
+ src_bufc += src_stride;
+ }
+ LV_PROFILER_DRAW_END;
+}
+
static void * buf_align(void * buf, lv_color_format_t color_format)
{
LV_UNUSED(color_format);
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_buf.h b/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_buf.h
index c36e0a612..30d5a9e6d 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_buf.h
+++ b/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_buf.h
@@ -75,15 +75,18 @@ LV_EXPORT_CONST_INT(LV_STRIDE_AUTO);
* TYPEDEFS
**********************/
-typedef void * (*lv_draw_buf_malloc_cb)(size_t size, lv_color_format_t color_format);
+typedef void * (*lv_draw_buf_malloc_cb_t)(size_t size, lv_color_format_t color_format);
-typedef void (*lv_draw_buf_free_cb)(void * draw_buf);
+typedef void (*lv_draw_buf_free_cb_t)(void * draw_buf);
-typedef void * (*lv_draw_buf_align_cb)(void * buf, lv_color_format_t color_format);
+typedef void (*lv_draw_buf_copy_cb_t)(lv_draw_buf_t * dest, const lv_area_t * dest_area,
+ const lv_draw_buf_t * src, const lv_area_t * src_area);
-typedef void (*lv_draw_buf_cache_operation_cb)(const lv_draw_buf_t * draw_buf, const lv_area_t * area);
+typedef void * (*lv_draw_buf_align_cb_t)(void * buf, lv_color_format_t color_format);
-typedef uint32_t (*lv_draw_buf_width_to_stride_cb)(uint32_t w, lv_color_format_t color_format);
+typedef void (*lv_draw_buf_cache_operation_cb_t)(const lv_draw_buf_t * draw_buf, const lv_area_t * area);
+
+typedef uint32_t (*lv_draw_buf_width_to_stride_cb_t)(uint32_t w, lv_color_format_t color_format);
struct _lv_draw_buf_t {
lv_image_header_t header;
@@ -110,18 +113,20 @@ void lv_draw_buf_init_with_default_handlers(lv_draw_buf_handlers_t * handlers);
* @param handlers the draw buffer handlers to set
* @param buf_malloc_cb the callback to allocate memory for the buffer
* @param buf_free_cb the callback to free memory of the buffer
+ * @param buf_copy_cb the callback to copy a draw buffer to an other
* @param align_pointer_cb the callback to align the buffer
* @param invalidate_cache_cb the callback to invalidate the cache of the buffer
* @param flush_cache_cb the callback to flush buffer
* @param width_to_stride_cb the callback to calculate the stride based on the width and color format
*/
void lv_draw_buf_handlers_init(lv_draw_buf_handlers_t * handlers,
- lv_draw_buf_malloc_cb buf_malloc_cb,
- lv_draw_buf_free_cb buf_free_cb,
- lv_draw_buf_align_cb align_pointer_cb,
- lv_draw_buf_cache_operation_cb invalidate_cache_cb,
- lv_draw_buf_cache_operation_cb flush_cache_cb,
- lv_draw_buf_width_to_stride_cb width_to_stride_cb);
+ lv_draw_buf_malloc_cb_t buf_malloc_cb,
+ lv_draw_buf_free_cb_t buf_free_cb,
+ lv_draw_buf_copy_cb_t buf_copy_cb,
+ lv_draw_buf_align_cb_t align_pointer_cb,
+ lv_draw_buf_cache_operation_cb_t invalidate_cache_cb,
+ lv_draw_buf_cache_operation_cb_t flush_cache_cb,
+ lv_draw_buf_width_to_stride_cb_t width_to_stride_cb);
/**
* Get the struct which holds the callbacks for draw buf management.
@@ -192,17 +197,6 @@ uint32_t lv_draw_buf_width_to_stride_ex(const lv_draw_buf_handlers_t * handlers,
*/
void lv_draw_buf_clear(lv_draw_buf_t * draw_buf, const lv_area_t * a);
-/**
- * Copy an area from a buffer to another
- * @param dest pointer to the destination draw buffer
- * @param dest_area the area to copy from the destination buffer, if NULL, use the whole buffer
- * @param src pointer to the source draw buffer
- * @param src_area the area to copy from the destination buffer, if NULL, use the whole buffer
- * @note `dest_area` and `src_area` should have the same width and height
- * @note `dest` and `src` should have same color format. Color converting is not supported fow now.
- */
-void lv_draw_buf_copy(lv_draw_buf_t * dest, const lv_area_t * dest_area,
- const lv_draw_buf_t * src, const lv_area_t * src_area);
/**
* Note: Eventually, lv_draw_buf_malloc/free will be kept as private.
@@ -285,6 +279,19 @@ lv_draw_buf_t * lv_draw_buf_reshape(lv_draw_buf_t * draw_buf, lv_color_format_t
*/
void lv_draw_buf_destroy(lv_draw_buf_t * draw_buf);
+/**
+ * Copy an area from a buffer to another
+ * @param dest pointer to the destination draw buffer
+ * @param dest_area the area to copy from the destination buffer, if NULL, use the whole buffer
+ * @param src pointer to the source draw buffer
+ * @param src_area the area to copy from the destination buffer, if NULL, use the whole buffer
+ * @note `dest_area` and `src_area` should have the same width and height
+ * @note The default copy function required `dest` and `src` to have the same color format.
+ * Overwriting dest->handlers->buf_copy_cb can resolve this limitation.
+ */
+void lv_draw_buf_copy(lv_draw_buf_t * dest, const lv_area_t * dest_area,
+ const lv_draw_buf_t * src, const lv_area_t * src_area);
+
/**
* Return pointer to the buffer at the given coordinates
*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_buf_private.h b/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_buf_private.h
index a22640315..9245cab1d 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_buf_private.h
+++ b/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_buf_private.h
@@ -25,12 +25,13 @@ extern "C" {
**********************/
struct _lv_draw_buf_handlers_t {
- lv_draw_buf_malloc_cb buf_malloc_cb;
- lv_draw_buf_free_cb buf_free_cb;
- lv_draw_buf_align_cb align_pointer_cb;
- lv_draw_buf_cache_operation_cb invalidate_cache_cb;
- lv_draw_buf_cache_operation_cb flush_cache_cb;
- lv_draw_buf_width_to_stride_cb width_to_stride_cb;
+ lv_draw_buf_malloc_cb_t buf_malloc_cb;
+ lv_draw_buf_free_cb_t buf_free_cb;
+ lv_draw_buf_copy_cb_t buf_copy_cb;
+ lv_draw_buf_align_cb_t align_pointer_cb;
+ lv_draw_buf_cache_operation_cb_t invalidate_cache_cb;
+ lv_draw_buf_cache_operation_cb_t flush_cache_cb;
+ lv_draw_buf_width_to_stride_cb_t width_to_stride_cb;
};
/**********************
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_image.c b/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_image.c
index ee29d6b7a..6c0d65f00 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_image.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_image.c
@@ -1,5 +1,5 @@
/**
- * @file lv_draw_img.c
+ * @file lv_draw_image.c
*
*/
@@ -76,7 +76,7 @@ void lv_draw_layer(lv_layer_t * layer, const lv_draw_image_dsc_t * dsc, const lv
lv_draw_task_t * t = lv_draw_add_task(layer, coords, LV_DRAW_TASK_TYPE_LAYER);
lv_draw_image_dsc_t * new_image_dsc = t->draw_dsc;
lv_memcpy(new_image_dsc, dsc, sizeof(*dsc));
- t->state = LV_DRAW_TASK_STATE_WAITING;
+ t->state = LV_DRAW_TASK_STATE_BLOCKED;
lv_image_buf_get_transformed_area(&t->_real_area, lv_area_get_width(coords), lv_area_get_height(coords),
dsc->rotation, dsc->scale_x, dsc->scale_y, &dsc->pivot);
@@ -180,6 +180,8 @@ void lv_draw_image(lv_layer_t * layer, const lv_draw_image_dsc_t * dsc, const lv
}
}
+
+ lv_image_decoder_close(&decoder_dsc);
}
LV_PROFILER_DRAW_END;
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_image.h b/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_image.h
index de925e60e..1f58f7e38 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_image.h
+++ b/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_image.h
@@ -73,7 +73,7 @@ struct _lv_draw_image_dsc_t {
*/
lv_blend_mode_t blend_mode : 4;
- /**1: perform the transformation with anti-alaising */
+ /**1: perform the transformation with anti-aliasing */
uint16_t antialias : 1;
/**If the image is smaller than the `image_area` field of `lv_draw_image_dsc_t`
@@ -81,6 +81,8 @@ struct _lv_draw_image_dsc_t {
* `image_area` area*/
uint16_t tile : 1;
+ const lv_image_colorkey_t * colorkey;
+
/**Used internally to store some information about the palette or the color of A8 images*/
lv_draw_image_sup_t * sup;
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_label.c b/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_label.c
index 8f3715131..1e953817b 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_label.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_label.c
@@ -137,6 +137,7 @@ void LV_ATTRIBUTE_FAST_MEM lv_draw_character(lv_layer_t * layer, lv_draw_label_d
LV_PROFILER_DRAW_BEGIN;
lv_font_glyph_dsc_t g;
+
lv_font_get_glyph_dsc(dsc->font, &g, unicode_letter, 0);
lv_area_t a;
@@ -175,6 +176,7 @@ void LV_ATTRIBUTE_FAST_MEM lv_draw_letter(lv_layer_t * layer, lv_draw_letter_dsc
LV_PROFILER_DRAW_BEGIN;
lv_font_glyph_dsc_t g;
+
lv_font_get_glyph_dsc(font, &g, dsc->unicode, 0);
font = g.resolved_font ? g.resolved_font : dsc->font;
@@ -223,9 +225,15 @@ void lv_draw_label_iterate_characters(lv_draw_task_t * t, const lv_draw_label_ds
w = dsc->text_size.x;
}
else {
+ lv_text_attributes_t attributes = {0};
+
+ attributes.letter_space = dsc->letter_space;
+ attributes.line_space = dsc->line_space;
+ attributes.max_width = LV_COORD_MAX;
+ attributes.text_flags = dsc->flag;
+
lv_point_t p;
- lv_text_get_size(&p, dsc->text, dsc->font, dsc->letter_space, dsc->line_space, LV_COORD_MAX,
- dsc->flag);
+ lv_text_get_size_attributes(&p, dsc->text, dsc->font, &attributes);
w = p.x;
}
}
@@ -263,15 +271,19 @@ void lv_draw_label_iterate_characters(lv_draw_task_t * t, const lv_draw_label_ds
}
uint32_t remaining_len = dsc->text_length;
+ lv_text_attributes_t attributes = {0};
+ attributes.letter_space = dsc->letter_space;
+ attributes.text_flags = dsc->flag;
+ attributes.max_width = w;
- uint32_t line_end = line_start + lv_text_get_next_line(&dsc->text[line_start], remaining_len, font, dsc->letter_space,
- w, NULL, dsc->flag);
+ uint32_t line_end = line_start + lv_text_get_next_line(&dsc->text[line_start], remaining_len, font, NULL, &attributes);
/*Go the first visible line*/
while(pos.y + line_height_font < t->clip_area.y1) {
/*Go to next line*/
+ remaining_len -= line_end - line_start;
line_start = line_end;
- line_end += lv_text_get_next_line(&dsc->text[line_start], remaining_len, font, dsc->letter_space, w, NULL, dsc->flag);
+ line_end += lv_text_get_next_line(&dsc->text[line_start], remaining_len, font, NULL, &attributes);
pos.y += line_height;
/*Save at the threshold coordinate*/
@@ -286,16 +298,13 @@ void lv_draw_label_iterate_characters(lv_draw_task_t * t, const lv_draw_label_ds
/*Align to middle*/
if(align == LV_TEXT_ALIGN_CENTER) {
- line_width = lv_text_get_width_with_flags(&dsc->text[line_start], line_end - line_start, font, dsc->letter_space,
- dsc->flag);
-
+ line_width = lv_text_get_width(&dsc->text[line_start], line_end - line_start, font, &attributes);
pos.x += (lv_area_get_width(coords) - line_width) / 2;
}
/*Align to the right*/
else if(align == LV_TEXT_ALIGN_RIGHT) {
- line_width = lv_text_get_width_with_flags(&dsc->text[line_start], line_end - line_start, font, dsc->letter_space,
- dsc->flag);
+ line_width = lv_text_get_width(&dsc->text[line_start], line_end - line_start, font, &attributes);
pos.x += lv_area_get_width(coords) - line_width;
}
@@ -309,11 +318,13 @@ void lv_draw_label_iterate_characters(lv_draw_task_t * t, const lv_draw_label_ds
lv_area_t bg_coords;
lv_draw_glyph_dsc_t draw_letter_dsc;
+ lv_font_glyph_dsc_t glyph_dsc;
lv_draw_glyph_dsc_init(&draw_letter_dsc);
draw_letter_dsc.opa = dsc->opa;
draw_letter_dsc.bg_coords = &bg_coords;
draw_letter_dsc.color = dsc->color;
draw_letter_dsc.rotation = dsc->rotation;
+ draw_letter_dsc.g = &glyph_dsc;
/* Set letter outline stroke attributes */
draw_letter_dsc.outline_stroke_width = dsc->outline_stroke_width;
@@ -328,6 +339,7 @@ void lv_draw_label_iterate_characters(lv_draw_task_t * t, const lv_draw_label_ds
uint32_t next_char_offset;
uint32_t recolor_command_start_index = 0;
int32_t letter_w;
+
cmd_state_t recolor_cmd_state = RECOLOR_CMD_STATE_WAIT_FOR_PARAMETER;
lv_color_t recolor = lv_color_black(); /* Holds the selected color inside the recolor command */
uint8_t is_first_space_after_cmd = 0;
@@ -338,7 +350,6 @@ void lv_draw_label_iterate_characters(lv_draw_task_t * t, const lv_draw_label_ds
line_start_x = pos.x;
/*Write all letter of a line*/
- recolor_cmd_state = RECOLOR_CMD_STATE_WAIT_FOR_PARAMETER;
next_char_offset = 0;
#if LV_USE_BIDI
size_t bidi_size = line_end - line_start;
@@ -455,12 +466,13 @@ void lv_draw_label_iterate_characters(lv_draw_task_t * t, const lv_draw_label_ds
logical_char_pos -= (LABEL_RECOLOR_PAR_LENGTH + 1);
}
- letter_w = lv_font_get_glyph_width(font, letter, letter_next);
+ lv_font_get_glyph_dsc(font, &glyph_dsc, letter, letter_next);
+ letter_w = lv_text_is_marker(letter) ? 0 : glyph_dsc.adv_w;
/*Always set the bg_coordinates for placeholder drawing*/
- bg_coords.x1 = pos.x;
+ bg_coords.x1 = pos.x - dsc->letter_space / 2;
bg_coords.y1 = pos.y;
- bg_coords.x2 = pos.x + letter_w - 1;
+ bg_coords.x2 = pos.x + letter_w - 1 + (dsc->letter_space + 1) / 2;
bg_coords.y2 = pos.y + line_height - 1;
if(next_char_offset >= line_end - line_start) {
@@ -511,25 +523,31 @@ void lv_draw_label_iterate_characters(lv_draw_task_t * t, const lv_draw_label_ds
lv_free(bidi_txt);
bidi_txt = NULL;
#endif
+
+ lv_text_attributes_t text_attributes = {0};
+ text_attributes.letter_space = dsc->letter_space;
+ text_attributes.text_flags = dsc->flag;
+ text_attributes.max_width = w;
+
/*Go to next line*/
remaining_len -= line_end - line_start;
line_start = line_end;
if(remaining_len) {
- line_end += lv_text_get_next_line(&dsc->text[line_start], remaining_len, font, dsc->letter_space, w, NULL, dsc->flag);
+ line_end += lv_text_get_next_line(&dsc->text[line_start], remaining_len, font, NULL, &text_attributes);
}
pos.x = coords->x1;
/*Align to middle*/
if(align == LV_TEXT_ALIGN_CENTER) {
line_width =
- lv_text_get_width_with_flags(&dsc->text[line_start], line_end - line_start, font, dsc->letter_space, dsc->flag);
+ lv_text_get_width(&dsc->text[line_start], line_end - line_start, font, &text_attributes);
pos.x += (lv_area_get_width(coords) - line_width) / 2;
}
/*Align to the right*/
else if(align == LV_TEXT_ALIGN_RIGHT) {
line_width =
- lv_text_get_width_with_flags(&dsc->text[line_start], line_end - line_start, font, dsc->letter_space, dsc->flag);
+ lv_text_get_width(&dsc->text[line_start], line_end - line_start, font, &text_attributes);
pos.x += lv_area_get_width(coords) - line_width;
}
@@ -569,16 +587,23 @@ void lv_draw_unit_draw_letter(lv_draw_task_t * t, lv_draw_glyph_dsc_t * dsc, co
return;
LV_PROFILER_DRAW_BEGIN;
- bool g_ret = lv_font_get_glyph_dsc(font, &g, letter, '\0');
- if(g_ret == false) {
- /*Add warning if the dsc is not found*/
- LV_LOG_WARN("lv_draw_letter: glyph dsc. not found for U+%" LV_PRIX32, letter);
+ if(dsc->g == NULL) {
+ dsc->g = &g;
+ /*If the glyph dsc is not set then get it from the font*/
+ bool g_ret = lv_font_get_glyph_dsc(font, &g, letter, 0);
+ if(g_ret == false) {
+ /*Add warning if the dsc is not found*/
+ LV_LOG_WARN("lv_draw_letter: glyph dsc. not found for U+%" LV_PRIX32, letter);
+ }
+ }
+ else {
+ /*If the glyph dsc is set then use it*/
+ g = *dsc->g;
}
/*Don't draw anything if the character is empty. E.g. space*/
if((g.box_h == 0) || (g.box_w == 0)) {
- LV_PROFILER_DRAW_END;
- return;
+ goto exit;
}
lv_area_t letter_coords;
@@ -592,8 +617,7 @@ void lv_draw_unit_draw_letter(lv_draw_task_t * t, lv_draw_glyph_dsc_t * dsc, co
if(lv_area_is_out(&letter_coords, &t->clip_area, 0) &&
dsc->bg_coords &&
lv_area_is_out(dsc->bg_coords, &t->clip_area, 0)) {
- LV_PROFILER_DRAW_END;
- return;
+ goto exit;
}
if(g.resolved_font) {
@@ -617,8 +641,7 @@ void lv_draw_unit_draw_letter(lv_draw_task_t * t, lv_draw_glyph_dsc_t * dsc, co
if(g.format == LV_FONT_GLYPH_FORMAT_VECTOR) {
/*Load the outline of the glyph, even if the function says bitmap*/
- g.outline_stroke_width = dsc->outline_stroke_width;
- dsc->glyph_data = (void *) lv_font_get_glyph_bitmap(&g, draw_buf);
+ dsc->glyph_data = (void *) lv_font_get_glyph_bitmap(dsc->g, draw_buf);
dsc->format = dsc->glyph_data ? g.format : LV_FONT_GLYPH_FORMAT_NONE;
}
}
@@ -627,10 +650,14 @@ void lv_draw_unit_draw_letter(lv_draw_task_t * t, lv_draw_glyph_dsc_t * dsc, co
}
dsc->letter_coords = &letter_coords;
- dsc->g = &g;
cb(t, dsc, NULL, NULL);
- lv_font_glyph_release_draw_data(&g);
+ lv_font_glyph_release_draw_data(dsc->g);
+exit:
+ if(dsc->g == &g) {
+ /* If the glyph was created locally, we don't need to keep it */
+ dsc->g = NULL;
+ }
LV_PROFILER_DRAW_END;
}
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_label.h b/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_label.h
index 3420bd5b2..7d5f4786c 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_label.h
+++ b/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_label.h
@@ -74,16 +74,19 @@ typedef struct {
/**The number of characters to render. 0: means render until reaching the `\0` termination.*/
uint32_t text_length;
- /**Opacity of the text in 0...255 range.
- * LV_OPA_TRANSP, LV_OPA_10, LV_OPA_20, .. LV_OPA_COVER can be used as well*/
- lv_opa_t opa;
-
/**The alignment of the text `LV_TEXT_ALIGN_LEFT/RIGHT/CENTER`*/
lv_text_align_t align;
/**The base direction. Used when type setting Right-to-left (e.g. Arabic) texts*/
lv_base_dir_t bidi_dir;
+ /**Opacity of the text in 0...255 range.
+ * LV_OPA_TRANSP, LV_OPA_10, LV_OPA_20, .. LV_OPA_COVER can be used as well*/
+ lv_opa_t opa;
+
+ /**Letter outline stroke opacity */
+ lv_opa_t outline_stroke_opa;
+
/**Text decoration, e.g. underline*/
lv_text_decor_t decor : 3;
@@ -105,7 +108,6 @@ typedef struct {
lv_draw_label_hint_t * hint;
/* Properties of the letter outlines */
- lv_opa_t outline_stroke_opa;
lv_color_t outline_stroke_color;
int32_t outline_stroke_width;
@@ -127,7 +129,7 @@ typedef struct {
lv_opa_t opa;
lv_text_decor_t decor : 3;
- lv_blend_mode_t blend_mode : 3;
+ lv_blend_mode_t blend_mode : 4;
/* Properties of the letter outlines */
lv_opa_t outline_stroke_opa;
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_private.h b/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_private.h
index 057d4dd08..682f8b478 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_private.h
+++ b/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_private.h
@@ -19,7 +19,7 @@ extern "C" {
*********************/
#include "lv_draw.h"
-#include "../osal/lv_os.h"
+#include "../osal/lv_os_private.h"
#include "../misc/cache/lv_cache.h"
/*********************
@@ -68,6 +68,9 @@ struct _lv_draw_task_t {
void * draw_dsc;
+ /** Opacity of the layer */
+ lv_opa_t opa;
+
/**
* The ID of the draw_unit which should take this task
*/
@@ -171,6 +174,12 @@ struct _lv_draw_unit_t {
* @return
*/
int32_t (*delete_cb)(lv_draw_unit_t * draw_unit);
+
+ /**
+ * Called when an event is sent to the draw unit.
+ * @param event pointer to the event descriptor
+ */
+ void (*event_cb)(lv_event_t * event);
};
typedef struct {
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_rect.c b/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_rect.c
index 3ee299ac5..ec1af7720 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_rect.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_rect.c
@@ -10,6 +10,7 @@
#include "lv_draw_private.h"
#include "../core/lv_obj.h"
#include "../misc/lv_assert.h"
+#include "../misc/lv_text_private.h"
#include "../core/lv_obj_event.h"
#include "../stdlib/lv_string.h"
@@ -266,6 +267,7 @@ void lv_draw_rect(lv_layer_t * layer, const lv_draw_rect_dsc_t * dsc, const lv_a
bg_image_dsc->recolor = dsc->bg_image_recolor;
bg_image_dsc->recolor_opa = dsc->bg_image_recolor_opa;
bg_image_dsc->tile = dsc->bg_image_tiled;
+ bg_image_dsc->colorkey = dsc->bg_image_colorkey;
bg_image_dsc->header = header;
bg_image_dsc->clip_radius = dsc->radius;
bg_image_dsc->image_area = *coords;
@@ -273,7 +275,14 @@ void lv_draw_rect(lv_layer_t * layer, const lv_draw_rect_dsc_t * dsc, const lv_a
}
else {
lv_point_t s;
- lv_text_get_size(&s, dsc->bg_image_src, dsc->bg_image_symbol_font, 0, 0, LV_COORD_MAX, LV_TEXT_FLAG_NONE);
+
+ lv_text_attributes_t attributes = {0};
+ attributes.text_flags = LV_TEXT_FLAG_NONE;
+ attributes.max_width = LV_COORD_MAX;
+ attributes.line_space = 0;
+ attributes.letter_space = 0;
+
+ lv_text_get_size_attributes(&s, dsc->bg_image_src, dsc->bg_image_symbol_font, &attributes);
lv_area_t a = {0, 0, s.x - 1, s.y - 1};
lv_area_align(coords, &a, LV_ALIGN_CENTER, 0, 0);
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_rect.h b/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_rect.h
index 85ec3af17..9c870d1b8 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_rect.h
+++ b/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_rect.h
@@ -33,11 +33,6 @@ typedef struct {
int32_t radius;
- /*Background*/
- lv_opa_t bg_opa;
- lv_color_t bg_color; /**< First element of a gradient is a color, so it maps well here*/
- lv_grad_dsc_t bg_grad;
-
/*Background img*/
const void * bg_image_src;
const void * bg_image_symbol_font;
@@ -45,11 +40,24 @@ typedef struct {
lv_opa_t bg_image_opa;
lv_opa_t bg_image_recolor_opa;
uint8_t bg_image_tiled;
+ /*Background*/
+ lv_opa_t bg_opa;
+ /*Border*/
+ lv_opa_t border_opa;
+ /*Outline */
+ lv_opa_t outline_opa;
+ /*Shadow*/
+ lv_opa_t shadow_opa;
+
+ /*Background*/
+ lv_color_t bg_color; /**< First element of a gradient is a color, so it maps well here*/
+ lv_grad_dsc_t bg_grad;
+
+ const lv_image_colorkey_t * bg_image_colorkey;
/*Border*/
lv_color_t border_color;
int32_t border_width;
- lv_opa_t border_opa;
lv_border_side_t border_side : 5;
uint8_t border_post : 1; /*The border will be drawn later*/
@@ -57,7 +65,6 @@ typedef struct {
lv_color_t outline_color;
int32_t outline_width;
int32_t outline_pad;
- lv_opa_t outline_opa;
/*Shadow*/
lv_color_t shadow_color;
@@ -65,7 +72,6 @@ typedef struct {
int32_t shadow_offset_x;
int32_t shadow_offset_y;
int32_t shadow_spread;
- lv_opa_t shadow_opa;
} lv_draw_rect_dsc_t;
typedef struct {
@@ -116,7 +122,7 @@ typedef struct {
/**Radius, LV_RADIUS_CIRCLE for max. radius */
int32_t radius;
- /**Color of the the shadow */
+ /**Color of shadow */
lv_color_t color;
/**Width of the shadow. (radius of the blur)*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_vector.c b/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_vector.c
index 5ed6477f6..089554ded 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_vector.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_vector.c
@@ -12,12 +12,17 @@
#if LV_USE_VECTOR_GRAPHIC
+#if !((LV_USE_DRAW_SW && LV_USE_THORVG) || LV_USE_DRAW_VG_LITE || (LV_USE_NEMA_GFX && LV_USE_NEMA_VG))
+ #error "LV_USE_VECTOR_GRAPHIC requires (LV_USE_DRAW_SW and LV_USE_THORVG) or LV_USE_DRAW_VG_LITE or (LV_USE_NEMA_GFX and LV_USE_NEMA_VG)"
+#endif
+
#include "../misc/lv_ll.h"
#include "../misc/lv_types.h"
#include "../stdlib/lv_string.h"
#include
#include
+#define EPSILON 1e-6f
#define MATH_PI 3.14159265358979323846f
#define MATH_HALF_PI 1.57079632679489661923f
@@ -49,16 +54,11 @@
* TYPEDEFS
**********************/
-typedef struct {
- lv_vector_path_t * path;
- lv_vector_draw_dsc_t dsc;
-} lv_vector_draw_task;
-
/**********************
* STATIC PROTOTYPES
**********************/
-static void _copy_draw_dsc(lv_vector_draw_dsc_t * dst, const lv_vector_draw_dsc_t * src)
+static void _copy_draw_dsc(lv_vector_path_ctx_t * dst, const lv_vector_path_ctx_t * src)
{
lv_memcpy(&(dst->fill_dsc), &(src->fill_dsc), sizeof(lv_vector_fill_dsc_t));
@@ -70,11 +70,6 @@ static void _copy_draw_dsc(lv_vector_draw_dsc_t * dst, const lv_vector_draw_dsc_
dst->stroke_dsc.join = src->stroke_dsc.join;
dst->stroke_dsc.miter_limit = src->stroke_dsc.miter_limit;
lv_array_copy(&(dst->stroke_dsc.dash_pattern), &(src->stroke_dsc.dash_pattern));
- dst->stroke_dsc.gradient.style = src->stroke_dsc.gradient.style;
- dst->stroke_dsc.gradient.cx = src->stroke_dsc.gradient.cx;
- dst->stroke_dsc.gradient.cy = src->stroke_dsc.gradient.cy;
- dst->stroke_dsc.gradient.cr = src->stroke_dsc.gradient.cr;
- dst->stroke_dsc.gradient.spread = src->fill_dsc.gradient.spread;
lv_memcpy(&(dst->stroke_dsc.gradient), &(src->stroke_dsc.gradient), sizeof(lv_vector_gradient_t));
lv_memcpy(&(dst->stroke_dsc.matrix), &(src->stroke_dsc.matrix), sizeof(lv_matrix_t));
@@ -82,6 +77,8 @@ static void _copy_draw_dsc(lv_vector_draw_dsc_t * dst, const lv_vector_draw_dsc_
lv_memcpy(&(dst->matrix), &(src->matrix), sizeof(lv_matrix_t));
lv_area_copy(&(dst->scissor_area), &(src->scissor_area));
}
+
+
/**********************
* GLOBAL FUNCTIONS
**********************/
@@ -91,8 +88,8 @@ void lv_matrix_transform_point(const lv_matrix_t * matrix, lv_fpoint_t * point)
float x = point->x;
float y = point->y;
- point->x = x * matrix->m[0][0] + y * matrix->m[1][0] + matrix->m[0][2];
- point->y = x * matrix->m[0][1] + y * matrix->m[1][1] + matrix->m[1][2];
+ point->x = x * matrix->m[0][0] + y * matrix->m[0][1] + matrix->m[0][2];
+ point->y = x * matrix->m[1][0] + y * matrix->m[1][1] + matrix->m[1][2];
}
void lv_matrix_transform_path(const lv_matrix_t * matrix, lv_vector_path_t * path)
@@ -191,6 +188,162 @@ void lv_vector_path_cubic_to(lv_vector_path_t * path, const lv_fpoint_t * p1, co
lv_array_push_back(&path->points, p3);
}
+static lv_fpoint_t _point_on_ellipse(float rx, float ry, float cos_r, float sin_r,
+ float cx, float cy, float theta, float alpha)
+{
+ float cos_theta = cosf(theta);
+ float sin_theta = sinf(theta);
+
+ float x = rx * cos_theta;
+ float y = ry * sin_theta;
+
+ float x_rot = cos_r * x - sin_r * y;
+ float y_rot = sin_r * x + cos_r * y;
+
+ if(fabsf(alpha) > EPSILON) {
+ float dx = -rx * sin_theta;
+ float dy = ry * cos_theta;
+ float dx_rot = cos_r * dx - sin_r * dy;
+ float dy_rot = sin_r * dx + cos_r * dy;
+
+ x_rot += alpha * dx_rot;
+ y_rot += alpha * dy_rot;
+ }
+
+ return (lv_fpoint_t) {
+ x_rot + cx, y_rot + cy
+ };
+}
+
+void lv_vector_path_arc_to(lv_vector_path_t * path, float rx, float ry, float rotate_angle, bool large_arc,
+ bool clockwise, const lv_fpoint_t * p)
+{
+ LV_ASSERT_NULL(path);
+ LV_ASSERT_NULL(p);
+
+ if(lv_array_is_empty(&path->ops)) {
+ /*first op must be move_to*/
+ return;
+ }
+
+ if(rx <= 0 || ry <= 0) {
+ /*no needed to draw*/
+ return;
+ }
+
+ /*https://www.w3.org/TR/SVG/implnote.html#ArcImplementationNotes*/
+
+ lv_fpoint_t * cpt = lv_array_back(&path->points);
+
+ float x0 = cpt->x;
+ float y0 = cpt->y;
+
+ /*1. dealing with degradation*/
+ if(fabsf(x0 - p->x) < EPSILON && fabsf(y0 - p->y) < EPSILON) {
+ /*same point*/
+ return;
+ }
+
+ float rotate = MATH_RADIANS(rotate_angle);
+ float sin_r = sinf(rotate);
+ float cos_r = cosf(rotate);
+
+ /*2. transform point*/
+ float dx = (x0 - p->x) * 0.5f;
+ float dy = (y0 - p->y) * 0.5f;
+
+ float x1 = cos_r * dx + sin_r * dy;
+ float y1 = -sin_r * dx + cos_r * dy;
+
+ /*3. adjust radius*/
+ float lambda_val = (x1 * x1) / (rx * rx) + (y1 * y1) / (ry * ry);
+ if(lambda_val > 1.0f) {
+ rx *= sqrtf(lambda_val);
+ ry *= sqrtf(lambda_val);
+ }
+
+ /*4. calc center point*/
+ float rx_sq = rx * rx;
+ float ry_sq = ry * ry;
+ float x1_sq = x1 * x1;
+ float y1_sq = y1 * y1;
+
+ float num = rx_sq * ry_sq - rx_sq * y1_sq - ry_sq * x1_sq;
+ float denom = rx_sq * y1_sq + ry_sq * x1_sq;
+
+ float radicand = (denom > EPSILON) ? num / denom : 0.0f;
+ if(radicand < 0.0f) radicand = 0.0f;
+
+ float sign = (large_arc == clockwise) ? -1.0f : 1.0f;
+ float coef = sign * sqrtf(radicand);
+
+ float cx_prime = (coef * rx * y1) / ry;
+ float cy_prime = -(coef * ry * x1) / rx;
+
+ float cx = cos_r * cx_prime - sin_r * cy_prime + (x0 + p->x) * 0.5f;
+ float cy = sin_r * cx_prime + cos_r * cy_prime + (y0 + p->y) * 0.5f;
+
+ float ux = (x1 - cx_prime) / rx;
+ float uy = (y1 - cy_prime) / ry;
+
+ /*5. calculate the starting angle and ending angle*/
+ float n_sq = ux * ux + uy * uy;
+ float theta1 = 0.0f;
+ if(n_sq > EPSILON) {
+ theta1 = atan2f(uy, ux);
+ }
+
+ float vx = (-x1 - cx_prime) / rx;
+ float vy = (-y1 - cy_prime) / ry;
+
+ float n = sqrtf(n_sq * (vx * vx + vy * vy));
+ float delta = 0.0f;
+ if(n > EPSILON) {
+ float cos_delta = (ux * vx + uy * vy) / n;
+ if(cos_delta > 1.0f) cos_delta = 1.0f;
+ else if(cos_delta < -1.0f) cos_delta = -1.0f;
+
+ delta = acosf(cos_delta);
+ if(ux * vy - uy * vx < 0.0f) delta = -delta;
+ }
+
+ if(!clockwise && delta > 0.0f) {
+ delta -= 2.0f * MATH_PI;
+ }
+ else if(clockwise && delta < 0.0f) {
+ delta += 2.0f * MATH_PI;
+ }
+
+ /*6. split arc into segments within 90 degrees*/
+ float angle_left = fabsf(delta);
+ int seg_count = (int)ceilf(angle_left / MATH_HALF_PI);
+ if(seg_count == 0) seg_count = 1;
+
+ float segment_angle = delta / (float)seg_count;
+
+ float current_angle = theta1;
+ for(int i = 0; i < seg_count; i++) {
+ float next_angle = current_angle + segment_angle;
+
+ float alpha_val;
+ if(fabsf(segment_angle) < 0.1f) {
+ alpha_val = segment_angle / 6.0f;
+ }
+ else {
+ float tan_half = tanf(segment_angle * 0.5f);
+ alpha_val = sinf(segment_angle) * (sqrtf(4.0f + 3.0f * tan_half * tan_half) - 1.0f) / 3.0f;
+ }
+
+ lv_fpoint_t p1 = _point_on_ellipse(rx, ry, cos_r, sin_r, cx, cy, current_angle, alpha_val);
+ lv_fpoint_t p2 = _point_on_ellipse(rx, ry, cos_r, sin_r, cx, cy, next_angle, -alpha_val);
+ lv_fpoint_t p3 = _point_on_ellipse(rx, ry, cos_r, sin_r, cx, cy, next_angle, 0.0f);
+
+ lv_vector_path_cubic_to(path, &p1, &p2, &p3);
+
+ current_angle = next_angle;
+ }
+}
+
void lv_vector_path_close(lv_vector_path_t * path)
{
if(lv_array_is_empty(&path->ops)) {
@@ -234,12 +387,9 @@ void lv_vector_path_get_bounding(const lv_vector_path_t * path, lv_area_t * area
area->y2 = lroundf(y2);
}
-void lv_vector_path_append_rect(lv_vector_path_t * path, const lv_area_t * rect, float rx, float ry)
+void lv_vector_path_append_rectangle(lv_vector_path_t * path, float x, float y, float w, float h, float rx, float ry)
{
- float x = rect->x1;
- float y = rect->y1;
- float w = (float)lv_area_get_width(rect);
- float h = (float)lv_area_get_height(rect);
+ if(w <= 0.0f || h <= 0.0f) return;
float hw = w * 0.5f;
float hh = h * 0.5f;
@@ -247,7 +397,7 @@ void lv_vector_path_append_rect(lv_vector_path_t * path, const lv_area_t * rect,
if(rx > hw) rx = hw;
if(ry > hh) ry = hh;
- if(rx == 0 && ry == 0) {
+ if(rx <= 0.0f && ry <= 0.0f) {
lv_fpoint_t pt = {x, y};
lv_vector_path_move_to(path, &pt);
pt.x += w;
@@ -257,69 +407,72 @@ void lv_vector_path_append_rect(lv_vector_path_t * path, const lv_area_t * rect,
pt.x -= w;
lv_vector_path_line_to(path, &pt);
lv_vector_path_close(path);
+ return;
}
- else if(rx == hw && ry == hh) {
- lv_fpoint_t pt = {x + w * 0.5f, y + h * 0.5f};
+
+ if(rx == hw && ry == hh) {
+ lv_fpoint_t pt = {x + hw, y + hh};
lv_vector_path_append_circle(path, &pt, rx, ry);
+ return;
}
- else {
- float hrx = rx * 0.5f;
- float hry = ry * 0.5f;
- lv_fpoint_t pt, pt2, pt3;
- pt.x = x + rx;
- pt.y = y;
- lv_vector_path_move_to(path, &pt);
+ float hrx = rx * 0.5f;
+ float hry = ry * 0.5f;
+ lv_fpoint_t pt, pt2, pt3;
- pt.x = x + w - rx;
- pt.y = y;
- lv_vector_path_line_to(path, &pt);
+ pt.x = x + rx;
+ pt.y = y;
+ lv_vector_path_move_to(path, &pt);
- pt.x = x + w - rx + hrx;
- pt.y = y;
- pt2.x = x + w;
- pt2.y = y + ry - hry;
- pt3.x = x + w;
- pt3.y = y + ry;
- lv_vector_path_cubic_to(path, &pt, &pt2, &pt3);
+ pt.x = x + w - rx;
+ pt.y = y;
+ lv_vector_path_line_to(path, &pt);
- pt.x = x + w;
- pt.y = y + h - ry;
- lv_vector_path_line_to(path, &pt);
+ pt.x = x + w - rx + hrx;
+ pt.y = y;
+ pt2.x = x + w;
+ pt2.y = y + ry - hry;
+ pt3.x = x + w;
+ pt3.y = y + ry;
+ lv_vector_path_cubic_to(path, &pt, &pt2, &pt3);
- pt.x = x + w;
- pt.y = y + h - ry + hry;
- pt2.x = x + w - rx + hrx;
- pt2.y = y + h;
- pt3.x = x + w - rx;
- pt3.y = y + h;
- lv_vector_path_cubic_to(path, &pt, &pt2, &pt3);
+ pt.x = x + w;
+ pt.y = y + h - ry;
+ lv_vector_path_line_to(path, &pt);
- pt.x = x + rx;
- pt.y = y + h;
- lv_vector_path_line_to(path, &pt);
+ pt.x = x + w;
+ pt.y = y + h - ry + hry;
+ pt2.x = x + w - rx + hrx;
+ pt2.y = y + h;
+ pt3.x = x + w - rx;
+ pt3.y = y + h;
+ lv_vector_path_cubic_to(path, &pt, &pt2, &pt3);
- pt.x = x + rx - hrx;
- pt.y = y + h;
- pt2.x = x;
- pt2.y = y + h - ry + hry;
- pt3.x = x;
- pt3.y = y + h - ry;
- lv_vector_path_cubic_to(path, &pt, &pt2, &pt3);
+ pt.x = x + rx;
+ pt.y = y + h;
+ lv_vector_path_line_to(path, &pt);
- pt.x = x;
- pt.y = y + ry;
- lv_vector_path_line_to(path, &pt);
+ pt.x = x + rx - hrx;
+ pt.y = y + h;
+ pt2.x = x;
+ pt2.y = y + h - ry + hry;
+ pt3.x = x;
+ pt3.y = y + h - ry;
+ lv_vector_path_cubic_to(path, &pt, &pt2, &pt3);
- pt.x = x;
- pt.y = y + ry - hry;
- pt2.x = x + rx - hrx;
- pt2.y = y;
- pt3.x = x + rx;
- pt3.y = y;
- lv_vector_path_cubic_to(path, &pt, &pt2, &pt3);
- lv_vector_path_close(path);
- }
+ pt.x = x;
+ pt.y = y + ry;
+ lv_vector_path_line_to(path, &pt);
+
+ pt.x = x;
+ pt.y = y + ry - hry;
+ pt2.x = x + rx - hrx;
+ pt2.y = y;
+ pt3.x = x + rx;
+ pt3.y = y;
+ lv_vector_path_cubic_to(path, &pt, &pt2, &pt3);
+
+ lv_vector_path_close(path);
}
void lv_vector_path_append_circle(lv_vector_path_t * path, const lv_fpoint_t * c, float rx, float ry)
@@ -471,22 +624,33 @@ void lv_vector_path_append_path(lv_vector_path_t * path, const lv_vector_path_t
/* draw dsc functions */
-lv_vector_dsc_t * lv_vector_dsc_create(lv_layer_t * layer)
+lv_draw_vector_dsc_t * lv_draw_vector_dsc_create(lv_layer_t * layer)
{
- lv_vector_dsc_t * dsc = lv_malloc(sizeof(lv_vector_dsc_t));
+
+ lv_draw_vector_dsc_t * dsc = lv_zalloc(sizeof(lv_draw_vector_dsc_t));
LV_ASSERT_MALLOC(dsc);
- lv_memzero(dsc, sizeof(lv_vector_dsc_t));
+ if(dsc == NULL) {
+ LV_LOG_WARN("Couldn't allocate lv_draw_vector_dsc_t");
+ return NULL;
+ }
- dsc->layer = layer;
+ dsc->base.layer = layer;
- lv_vector_fill_dsc_t * fill_dsc = &(dsc->current_dsc.fill_dsc);
+ dsc->ctx = lv_zalloc(sizeof(lv_vector_path_ctx_t));
+ if(dsc->ctx == NULL) {
+ LV_LOG_WARN("Couldn't allocate vector path context");
+ lv_free(dsc);
+ return NULL;
+ }
+
+ lv_vector_fill_dsc_t * fill_dsc = &(dsc->ctx->fill_dsc);
fill_dsc->style = LV_VECTOR_DRAW_STYLE_SOLID;
fill_dsc->color = lv_color_to_32(lv_color_black(), 0xFF);
fill_dsc->opa = LV_OPA_COVER;
fill_dsc->fill_rule = LV_VECTOR_FILL_NONZERO;
lv_matrix_identity(&(fill_dsc->matrix)); /*identity matrix*/
- lv_vector_stroke_dsc_t * stroke_dsc = &(dsc->current_dsc.stroke_dsc);
+ lv_vector_stroke_dsc_t * stroke_dsc = &(dsc->ctx->stroke_dsc);
stroke_dsc->style = LV_VECTOR_DRAW_STYLE_SOLID;
stroke_dsc->color = lv_color_to_32(lv_color_black(), 0xFF);
stroke_dsc->opa = LV_OPA_0; /*default no stroke*/
@@ -496,138 +660,139 @@ lv_vector_dsc_t * lv_vector_dsc_create(lv_layer_t * layer)
stroke_dsc->miter_limit = 4.0f;
lv_matrix_identity(&(stroke_dsc->matrix)); /*identity matrix*/
- dsc->current_dsc.blend_mode = LV_VECTOR_BLEND_SRC_OVER;
- dsc->current_dsc.scissor_area = layer->_clip_area;
- lv_matrix_identity(&(dsc->current_dsc.matrix)); /*identity matrix*/
- dsc->tasks.task_list = NULL;
+ dsc->ctx->blend_mode = LV_VECTOR_BLEND_SRC_OVER;
+ dsc->ctx->scissor_area = layer->_clip_area;
+ lv_matrix_identity(&(dsc->ctx->matrix)); /*identity matrix*/
+ dsc->task_list = NULL;
return dsc;
}
-void lv_vector_dsc_delete(lv_vector_dsc_t * dsc)
+void lv_draw_vector_dsc_delete(lv_draw_vector_dsc_t * dsc)
{
- if(dsc->tasks.task_list) {
- lv_ll_t * task_list = dsc->tasks.task_list;
+ if(dsc->task_list) {
+ lv_ll_t * task_list = dsc->task_list;
lv_vector_for_each_destroy_tasks(task_list, NULL, NULL);
- dsc->tasks.task_list = NULL;
+ dsc->task_list = NULL;
}
- lv_array_deinit(&(dsc->current_dsc.stroke_dsc.dash_pattern));
+ lv_array_deinit(&(dsc->ctx->stroke_dsc.dash_pattern));
+ lv_free(dsc->ctx);
lv_free(dsc);
}
-void lv_vector_dsc_set_blend_mode(lv_vector_dsc_t * dsc, lv_vector_blend_t blend)
+void lv_draw_vector_dsc_set_blend_mode(lv_draw_vector_dsc_t * dsc, lv_vector_blend_t blend)
{
- dsc->current_dsc.blend_mode = blend;
+ dsc->ctx->blend_mode = blend;
}
-void lv_vector_dsc_set_transform(lv_vector_dsc_t * dsc, const lv_matrix_t * matrix)
+void lv_draw_vector_dsc_set_transform(lv_draw_vector_dsc_t * dsc, const lv_matrix_t * matrix)
{
- lv_memcpy(&(dsc->current_dsc.matrix), matrix, sizeof(lv_matrix_t));
+ lv_memcpy(&(dsc->ctx->matrix), matrix, sizeof(lv_matrix_t));
}
-void lv_vector_dsc_set_fill_color(lv_vector_dsc_t * dsc, lv_color_t color)
+void lv_draw_vector_dsc_set_fill_color(lv_draw_vector_dsc_t * dsc, lv_color_t color)
{
- dsc->current_dsc.fill_dsc.style = LV_VECTOR_DRAW_STYLE_SOLID;
- dsc->current_dsc.fill_dsc.color = lv_color_to_32(color, 0xFF);
+ dsc->ctx->fill_dsc.style = LV_VECTOR_DRAW_STYLE_SOLID;
+ dsc->ctx->fill_dsc.color = lv_color_to_32(color, 0xFF);
}
-void lv_vector_dsc_set_fill_color32(lv_vector_dsc_t * dsc, lv_color32_t color)
+void lv_draw_vector_dsc_set_fill_color32(lv_draw_vector_dsc_t * dsc, lv_color32_t color)
{
- dsc->current_dsc.fill_dsc.style = LV_VECTOR_DRAW_STYLE_SOLID;
- dsc->current_dsc.fill_dsc.color = color;
+ dsc->ctx->fill_dsc.style = LV_VECTOR_DRAW_STYLE_SOLID;
+ dsc->ctx->fill_dsc.color = color;
}
-void lv_vector_dsc_set_fill_opa(lv_vector_dsc_t * dsc, lv_opa_t opa)
+void lv_draw_vector_dsc_set_fill_opa(lv_draw_vector_dsc_t * dsc, lv_opa_t opa)
{
- dsc->current_dsc.fill_dsc.opa = opa;
+ dsc->ctx->fill_dsc.opa = opa;
}
-void lv_vector_dsc_set_fill_rule(lv_vector_dsc_t * dsc, lv_vector_fill_t rule)
+void lv_draw_vector_dsc_set_fill_rule(lv_draw_vector_dsc_t * dsc, lv_vector_fill_t rule)
{
- dsc->current_dsc.fill_dsc.fill_rule = rule;
+ dsc->ctx->fill_dsc.fill_rule = rule;
}
-void lv_vector_dsc_set_fill_units(lv_vector_dsc_t * dsc, const lv_vector_fill_units_t units)
+void lv_draw_vector_dsc_set_fill_units(lv_draw_vector_dsc_t * dsc, const lv_vector_fill_units_t units)
{
- dsc->current_dsc.fill_dsc.fill_units = units;
+ dsc->ctx->fill_dsc.fill_units = units;
}
-void lv_vector_dsc_set_fill_image(lv_vector_dsc_t * dsc, const lv_draw_image_dsc_t * img_dsc)
+void lv_draw_vector_dsc_set_fill_image(lv_draw_vector_dsc_t * dsc, const lv_draw_image_dsc_t * img_dsc)
{
- dsc->current_dsc.fill_dsc.style = LV_VECTOR_DRAW_STYLE_PATTERN;
- lv_memcpy(&(dsc->current_dsc.fill_dsc.img_dsc), img_dsc, sizeof(lv_draw_image_dsc_t));
+ dsc->ctx->fill_dsc.style = LV_VECTOR_DRAW_STYLE_PATTERN;
+ lv_memcpy(&(dsc->ctx->fill_dsc.img_dsc), img_dsc, sizeof(lv_draw_image_dsc_t));
}
-void lv_vector_dsc_set_fill_linear_gradient(lv_vector_dsc_t * dsc, float x1, float y1, float x2, float y2)
+void lv_draw_vector_dsc_set_fill_linear_gradient(lv_draw_vector_dsc_t * dsc, float x1, float y1, float x2, float y2)
{
- dsc->current_dsc.fill_dsc.style = LV_VECTOR_DRAW_STYLE_GRADIENT;
- dsc->current_dsc.fill_dsc.gradient.style = LV_VECTOR_GRADIENT_STYLE_LINEAR;
- dsc->current_dsc.fill_dsc.gradient.x1 = x1;
- dsc->current_dsc.fill_dsc.gradient.y1 = y1;
- dsc->current_dsc.fill_dsc.gradient.x2 = x2;
- dsc->current_dsc.fill_dsc.gradient.y2 = y2;
+ dsc->ctx->fill_dsc.style = LV_VECTOR_DRAW_STYLE_GRADIENT;
+ dsc->ctx->fill_dsc.gradient.style = LV_VECTOR_GRADIENT_STYLE_LINEAR;
+ dsc->ctx->fill_dsc.gradient.x1 = x1;
+ dsc->ctx->fill_dsc.gradient.y1 = y1;
+ dsc->ctx->fill_dsc.gradient.x2 = x2;
+ dsc->ctx->fill_dsc.gradient.y2 = y2;
}
-void lv_vector_dsc_set_fill_radial_gradient(lv_vector_dsc_t * dsc, float cx, float cy, float radius)
+void lv_draw_vector_dsc_set_fill_radial_gradient(lv_draw_vector_dsc_t * dsc, float cx, float cy, float radius)
{
- dsc->current_dsc.fill_dsc.style = LV_VECTOR_DRAW_STYLE_GRADIENT;
- dsc->current_dsc.fill_dsc.gradient.style = LV_VECTOR_GRADIENT_STYLE_RADIAL;
- dsc->current_dsc.fill_dsc.gradient.cx = cx;
- dsc->current_dsc.fill_dsc.gradient.cy = cy;
- dsc->current_dsc.fill_dsc.gradient.cr = radius;
+ dsc->ctx->fill_dsc.style = LV_VECTOR_DRAW_STYLE_GRADIENT;
+ dsc->ctx->fill_dsc.gradient.style = LV_VECTOR_GRADIENT_STYLE_RADIAL;
+ dsc->ctx->fill_dsc.gradient.cx = cx;
+ dsc->ctx->fill_dsc.gradient.cy = cy;
+ dsc->ctx->fill_dsc.gradient.cr = radius;
}
-void lv_vector_dsc_set_fill_gradient_spread(lv_vector_dsc_t * dsc, lv_vector_gradient_spread_t spread)
+void lv_draw_vector_dsc_set_fill_gradient_spread(lv_draw_vector_dsc_t * dsc, lv_vector_gradient_spread_t spread)
{
- dsc->current_dsc.fill_dsc.gradient.spread = spread;
+ dsc->ctx->fill_dsc.gradient.spread = spread;
}
-void lv_vector_dsc_set_fill_gradient_color_stops(lv_vector_dsc_t * dsc, const lv_grad_stop_t * stops,
- uint16_t count)
+void lv_draw_vector_dsc_set_fill_gradient_color_stops(lv_draw_vector_dsc_t * dsc, const lv_grad_stop_t * stops,
+ uint16_t count)
{
if(count > LV_GRADIENT_MAX_STOPS) {
LV_LOG_WARN("Gradient stops limited: %d, max: %d", count, LV_GRADIENT_MAX_STOPS);
count = LV_GRADIENT_MAX_STOPS;
}
- lv_memcpy(&(dsc->current_dsc.fill_dsc.gradient.stops), stops, sizeof(lv_grad_stop_t) * count);
- dsc->current_dsc.fill_dsc.gradient.stops_count = count;
+ lv_memcpy(&(dsc->ctx->fill_dsc.gradient.stops), stops, sizeof(lv_grad_stop_t) * count);
+ dsc->ctx->fill_dsc.gradient.stops_count = count;
}
-void lv_vector_dsc_set_fill_transform(lv_vector_dsc_t * dsc, const lv_matrix_t * matrix)
+void lv_draw_vector_dsc_set_fill_transform(lv_draw_vector_dsc_t * dsc, const lv_matrix_t * matrix)
{
- lv_memcpy(&(dsc->current_dsc.fill_dsc.matrix), matrix, sizeof(lv_matrix_t));
+ lv_memcpy(&(dsc->ctx->fill_dsc.matrix), matrix, sizeof(lv_matrix_t));
}
-void lv_vector_dsc_set_stroke_transform(lv_vector_dsc_t * dsc, const lv_matrix_t * matrix)
+void lv_draw_vector_dsc_set_stroke_transform(lv_draw_vector_dsc_t * dsc, const lv_matrix_t * matrix)
{
- lv_memcpy(&(dsc->current_dsc.stroke_dsc.matrix), matrix, sizeof(lv_matrix_t));
+ lv_memcpy(&(dsc->ctx->stroke_dsc.matrix), matrix, sizeof(lv_matrix_t));
}
-void lv_vector_dsc_set_stroke_color32(lv_vector_dsc_t * dsc, lv_color32_t color)
+void lv_draw_vector_dsc_set_stroke_color32(lv_draw_vector_dsc_t * dsc, lv_color32_t color)
{
- dsc->current_dsc.stroke_dsc.style = LV_VECTOR_DRAW_STYLE_SOLID;
- dsc->current_dsc.stroke_dsc.color = color;
+ dsc->ctx->stroke_dsc.style = LV_VECTOR_DRAW_STYLE_SOLID;
+ dsc->ctx->stroke_dsc.color = color;
}
-void lv_vector_dsc_set_stroke_color(lv_vector_dsc_t * dsc, lv_color_t color)
+void lv_draw_vector_dsc_set_stroke_color(lv_draw_vector_dsc_t * dsc, lv_color_t color)
{
- dsc->current_dsc.stroke_dsc.style = LV_VECTOR_DRAW_STYLE_SOLID;
- dsc->current_dsc.stroke_dsc.color = lv_color_to_32(color, 0xFF);
+ dsc->ctx->stroke_dsc.style = LV_VECTOR_DRAW_STYLE_SOLID;
+ dsc->ctx->stroke_dsc.color = lv_color_to_32(color, 0xFF);
}
-void lv_vector_dsc_set_stroke_opa(lv_vector_dsc_t * dsc, lv_opa_t opa)
+void lv_draw_vector_dsc_set_stroke_opa(lv_draw_vector_dsc_t * dsc, lv_opa_t opa)
{
- dsc->current_dsc.stroke_dsc.opa = opa;
+ dsc->ctx->stroke_dsc.opa = opa;
}
-void lv_vector_dsc_set_stroke_width(lv_vector_dsc_t * dsc, float width)
+void lv_draw_vector_dsc_set_stroke_width(lv_draw_vector_dsc_t * dsc, float width)
{
- dsc->current_dsc.stroke_dsc.width = width;
+ dsc->ctx->stroke_dsc.width = width;
}
-void lv_vector_dsc_set_stroke_dash(lv_vector_dsc_t * dsc, float * dash_pattern, uint16_t dash_count)
+void lv_draw_vector_dsc_set_stroke_dash(lv_draw_vector_dsc_t * dsc, float * dash_pattern, uint16_t dash_count)
{
- lv_array_t * dash_array = &(dsc->current_dsc.stroke_dsc.dash_pattern);
+ lv_array_t * dash_array = &(dsc->ctx->stroke_dsc.dash_pattern);
if(dash_pattern) {
lv_array_clear(dash_array);
if(lv_array_capacity(dash_array) == 0) {
@@ -645,90 +810,90 @@ void lv_vector_dsc_set_stroke_dash(lv_vector_dsc_t * dsc, float * dash_pattern,
}
}
-void lv_vector_dsc_set_stroke_cap(lv_vector_dsc_t * dsc, lv_vector_stroke_cap_t cap)
+void lv_draw_vector_dsc_set_stroke_cap(lv_draw_vector_dsc_t * dsc, lv_vector_stroke_cap_t cap)
{
- dsc->current_dsc.stroke_dsc.cap = cap;
+ dsc->ctx->stroke_dsc.cap = cap;
}
-void lv_vector_dsc_set_stroke_join(lv_vector_dsc_t * dsc, lv_vector_stroke_join_t join)
+void lv_draw_vector_dsc_set_stroke_join(lv_draw_vector_dsc_t * dsc, lv_vector_stroke_join_t join)
{
- dsc->current_dsc.stroke_dsc.join = join;
+ dsc->ctx->stroke_dsc.join = join;
}
-void lv_vector_dsc_set_stroke_miter_limit(lv_vector_dsc_t * dsc, uint16_t miter_limit)
+void lv_draw_vector_dsc_set_stroke_miter_limit(lv_draw_vector_dsc_t * dsc, uint16_t miter_limit)
{
- dsc->current_dsc.stroke_dsc.miter_limit = miter_limit;
+ dsc->ctx->stroke_dsc.miter_limit = miter_limit;
}
-void lv_vector_dsc_set_stroke_linear_gradient(lv_vector_dsc_t * dsc, float x1, float y1, float x2, float y2)
+void lv_draw_vector_dsc_set_stroke_linear_gradient(lv_draw_vector_dsc_t * dsc, float x1, float y1, float x2, float y2)
{
- dsc->current_dsc.stroke_dsc.style = LV_VECTOR_DRAW_STYLE_GRADIENT;
- dsc->current_dsc.stroke_dsc.gradient.style = LV_VECTOR_GRADIENT_STYLE_LINEAR;
- dsc->current_dsc.stroke_dsc.gradient.x1 = x1;
- dsc->current_dsc.stroke_dsc.gradient.y1 = y1;
- dsc->current_dsc.stroke_dsc.gradient.x2 = x2;
- dsc->current_dsc.stroke_dsc.gradient.y2 = y2;
+ dsc->ctx->stroke_dsc.style = LV_VECTOR_DRAW_STYLE_GRADIENT;
+ dsc->ctx->stroke_dsc.gradient.style = LV_VECTOR_GRADIENT_STYLE_LINEAR;
+ dsc->ctx->stroke_dsc.gradient.x1 = x1;
+ dsc->ctx->stroke_dsc.gradient.y1 = y1;
+ dsc->ctx->stroke_dsc.gradient.x2 = x2;
+ dsc->ctx->stroke_dsc.gradient.y2 = y2;
}
-void lv_vector_dsc_set_stroke_radial_gradient(lv_vector_dsc_t * dsc, float cx, float cy, float radius)
+void lv_draw_vector_dsc_set_stroke_radial_gradient(lv_draw_vector_dsc_t * dsc, float cx, float cy, float radius)
{
- dsc->current_dsc.stroke_dsc.style = LV_VECTOR_DRAW_STYLE_GRADIENT;
- dsc->current_dsc.stroke_dsc.gradient.style = LV_VECTOR_GRADIENT_STYLE_RADIAL;
- dsc->current_dsc.stroke_dsc.gradient.cx = cx;
- dsc->current_dsc.stroke_dsc.gradient.cy = cy;
- dsc->current_dsc.stroke_dsc.gradient.cr = radius;
+ dsc->ctx->stroke_dsc.style = LV_VECTOR_DRAW_STYLE_GRADIENT;
+ dsc->ctx->stroke_dsc.gradient.style = LV_VECTOR_GRADIENT_STYLE_RADIAL;
+ dsc->ctx->stroke_dsc.gradient.cx = cx;
+ dsc->ctx->stroke_dsc.gradient.cy = cy;
+ dsc->ctx->stroke_dsc.gradient.cr = radius;
}
-void lv_vector_dsc_set_stroke_gradient_spread(lv_vector_dsc_t * dsc, lv_vector_gradient_spread_t spread)
+void lv_draw_vector_dsc_set_stroke_gradient_spread(lv_draw_vector_dsc_t * dsc, lv_vector_gradient_spread_t spread)
{
- dsc->current_dsc.stroke_dsc.gradient.spread = spread;
+ dsc->ctx->stroke_dsc.gradient.spread = spread;
}
-void lv_vector_dsc_set_stroke_gradient_color_stops(lv_vector_dsc_t * dsc, const lv_grad_stop_t * stops,
- uint16_t count)
+void lv_draw_vector_dsc_set_stroke_gradient_color_stops(lv_draw_vector_dsc_t * dsc, const lv_grad_stop_t * stops,
+ uint16_t count)
{
if(count > LV_GRADIENT_MAX_STOPS) {
LV_LOG_WARN("Gradient stops limited: %d, max: %d", count, LV_GRADIENT_MAX_STOPS);
count = LV_GRADIENT_MAX_STOPS;
}
- lv_memcpy(&(dsc->current_dsc.stroke_dsc.gradient.stops), stops, sizeof(lv_grad_stop_t) * count);
- dsc->current_dsc.stroke_dsc.gradient.stops_count = count;
+ lv_memcpy(&(dsc->ctx->stroke_dsc.gradient.stops), stops, sizeof(lv_grad_stop_t) * count);
+ dsc->ctx->stroke_dsc.gradient.stops_count = count;
}
/* draw functions */
-void lv_vector_dsc_add_path(lv_vector_dsc_t * dsc, const lv_vector_path_t * path)
+void lv_draw_vector_dsc_add_path(lv_draw_vector_dsc_t * dsc, const lv_vector_path_t * path)
{
lv_area_t rect;
- if(!lv_area_intersect(&rect, &(dsc->layer->_clip_area), &(dsc->current_dsc.scissor_area))) {
+ if(!lv_area_intersect(&rect, &(dsc->base.layer->_clip_area), &(dsc->ctx->scissor_area))) {
return;
}
- if(dsc->current_dsc.fill_dsc.opa == 0
- && dsc->current_dsc.stroke_dsc.opa == 0) {
+ if(dsc->ctx->fill_dsc.opa == 0
+ && dsc->ctx->stroke_dsc.opa == 0) {
return;
}
- if(!dsc->tasks.task_list) {
- dsc->tasks.task_list = lv_malloc(sizeof(lv_ll_t));
- LV_ASSERT_MALLOC(dsc->tasks.task_list);
- lv_ll_init(dsc->tasks.task_list, sizeof(lv_vector_draw_task));
+ if(!dsc->task_list) {
+ dsc->task_list = lv_malloc(sizeof(lv_ll_t));
+ LV_ASSERT_MALLOC(dsc->task_list);
+ lv_ll_init(dsc->task_list, sizeof(lv_draw_vector_subtask_t));
}
- lv_vector_draw_task * new_task = (lv_vector_draw_task *)lv_ll_ins_tail(dsc->tasks.task_list);
- lv_memset(new_task, 0, sizeof(lv_vector_draw_task));
+ lv_draw_vector_subtask_t * new_task = (lv_draw_vector_subtask_t *)lv_ll_ins_tail(dsc->task_list);
+ lv_memset(new_task, 0, sizeof(lv_draw_vector_subtask_t));
new_task->path = lv_vector_path_create(0);
- _copy_draw_dsc(&(new_task->dsc), &(dsc->current_dsc));
+ _copy_draw_dsc(&(new_task->ctx), dsc->ctx);
lv_vector_path_copy(new_task->path, path);
- new_task->dsc.scissor_area = rect;
+ new_task->ctx.scissor_area = rect;
}
-void lv_vector_clear_area(lv_vector_dsc_t * dsc, const lv_area_t * rect)
+void lv_draw_vector_dsc_clear_area(lv_draw_vector_dsc_t * dsc, const lv_area_t * rect)
{
lv_area_t r;
- if(!lv_area_intersect(&r, &(dsc->layer->_clip_area), &(dsc->current_dsc.scissor_area))) {
+ if(!lv_area_intersect(&r, &(dsc->base.layer->_clip_area), &(dsc->ctx->scissor_area))) {
return;
}
@@ -737,83 +902,89 @@ void lv_vector_clear_area(lv_vector_dsc_t * dsc, const lv_area_t * rect)
return;
}
- if(!dsc->tasks.task_list) {
- dsc->tasks.task_list = lv_malloc(sizeof(lv_ll_t));
- LV_ASSERT_MALLOC(dsc->tasks.task_list);
- lv_ll_init(dsc->tasks.task_list, sizeof(lv_vector_draw_task));
+ if(!dsc->task_list) {
+ dsc->task_list = lv_malloc(sizeof(lv_ll_t));
+ LV_ASSERT_MALLOC(dsc->task_list);
+ lv_ll_init(dsc->task_list, sizeof(lv_draw_vector_subtask_t));
}
- lv_vector_draw_task * new_task = (lv_vector_draw_task *)lv_ll_ins_tail(dsc->tasks.task_list);
- lv_memset(new_task, 0, sizeof(lv_vector_draw_task));
+ lv_draw_vector_subtask_t * new_task = (lv_draw_vector_subtask_t *)lv_ll_ins_tail(dsc->task_list);
+ lv_memset(new_task, 0, sizeof(lv_draw_vector_subtask_t));
- new_task->dsc.fill_dsc.color = dsc->current_dsc.fill_dsc.color;
- new_task->dsc.fill_dsc.opa = dsc->current_dsc.fill_dsc.opa;
- lv_area_copy(&(new_task->dsc.scissor_area), &final_rect);
+ new_task->ctx.fill_dsc.color = dsc->ctx->fill_dsc.color;
+ new_task->ctx.fill_dsc.opa = dsc->ctx->fill_dsc.opa;
+ lv_area_copy(&(new_task->ctx.scissor_area), &final_rect);
}
-void lv_draw_vector(lv_vector_dsc_t * dsc)
+void lv_draw_vector(lv_draw_vector_dsc_t * dsc)
{
- if(!dsc->tasks.task_list) {
+ if(!dsc->task_list) {
return;
}
- lv_layer_t * layer = dsc->layer;
+ lv_layer_t * layer = dsc->base.layer;
lv_draw_task_t * t = lv_draw_add_task(layer, &(layer->_clip_area), LV_DRAW_TASK_TYPE_VECTOR);
- lv_memcpy(t->draw_dsc, &(dsc->tasks), sizeof(lv_draw_vector_task_dsc_t));
+ lv_memcpy(t->draw_dsc, dsc, sizeof(lv_draw_vector_dsc_t));
lv_draw_finalize_task_creation(layer, t);
- dsc->tasks.task_list = NULL;
+ dsc->task_list = NULL;
}
/* draw dsc transform */
-void lv_vector_dsc_identity(lv_vector_dsc_t * dsc)
+void lv_draw_vector_dsc_identity(lv_draw_vector_dsc_t * dsc)
{
- lv_matrix_identity(&(dsc->current_dsc.matrix)); /*identity matrix*/
+ lv_matrix_identity(&(dsc->ctx->matrix)); /*identity matrix*/
}
-void lv_vector_dsc_scale(lv_vector_dsc_t * dsc, float scale_x, float scale_y)
+void lv_draw_vector_dsc_scale(lv_draw_vector_dsc_t * dsc, float scale_x, float scale_y)
{
- lv_matrix_scale(&(dsc->current_dsc.matrix), scale_x, scale_y);
+ lv_matrix_scale(&(dsc->ctx->matrix), scale_x, scale_y);
}
-void lv_vector_dsc_rotate(lv_vector_dsc_t * dsc, float degree)
+void lv_draw_vector_dsc_rotate(lv_draw_vector_dsc_t * dsc, float degree)
{
- lv_matrix_rotate(&(dsc->current_dsc.matrix), degree);
+ lv_matrix_rotate(&(dsc->ctx->matrix), degree);
}
-void lv_vector_dsc_translate(lv_vector_dsc_t * dsc, float tx, float ty)
+void lv_draw_vector_dsc_translate(lv_draw_vector_dsc_t * dsc, float tx, float ty)
{
- lv_matrix_translate(&(dsc->current_dsc.matrix), tx, ty);
+ lv_matrix_translate(&(dsc->ctx->matrix), tx, ty);
}
-void lv_vector_dsc_skew(lv_vector_dsc_t * dsc, float skew_x, float skew_y)
+void lv_draw_vector_dsc_skew(lv_draw_vector_dsc_t * dsc, float skew_x, float skew_y)
{
- lv_matrix_skew(&(dsc->current_dsc.matrix), skew_x, skew_y);
+ lv_matrix_skew(&(dsc->ctx->matrix), skew_x, skew_y);
}
void lv_vector_for_each_destroy_tasks(lv_ll_t * task_list, vector_draw_task_cb cb, void * data)
{
if(task_list == NULL) return;
- lv_vector_draw_task * task = lv_ll_get_head(task_list);
- lv_vector_draw_task * next_task = NULL;
+ lv_draw_vector_subtask_t * task = lv_ll_get_head(task_list);
+ lv_draw_vector_subtask_t * next_task = NULL;
while(task != NULL) {
next_task = lv_ll_get_next(task_list, task);
lv_ll_remove(task_list, task);
if(cb) {
- cb(data, task->path, &(task->dsc));
+ cb(data, task->path, &task->ctx);
}
if(task->path) {
lv_vector_path_delete(task->path);
}
- lv_array_deinit(&(task->dsc.stroke_dsc.dash_pattern));
+ lv_array_deinit(&(task->ctx.stroke_dsc.dash_pattern));
lv_free(task);
task = next_task;
}
lv_free(task_list);
}
+
+lv_draw_vector_dsc_t * lv_draw_task_get_vector_dsc(lv_draw_task_t * task)
+{
+ return task->type == LV_DRAW_TASK_TYPE_VECTOR ? (lv_draw_vector_dsc_t *)task->draw_dsc : NULL;
+}
+
#endif /* LV_USE_VECTOR_GRAPHIC */
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_vector.h b/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_vector.h
index ccb03df73..c7e6d3bfe 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_vector.h
+++ b/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_vector.h
@@ -172,6 +172,20 @@ void lv_vector_path_quad_to(lv_vector_path_t * path, const lv_fpoint_t * p1, con
void lv_vector_path_cubic_to(lv_vector_path_t * path, const lv_fpoint_t * p1, const lv_fpoint_t * p2,
const lv_fpoint_t * p3);
+/**
+ * Add ellipse arc to the path from last point to the point
+ * @param path pointer to a path
+ * @param radius_x the x radius for ellipse arc
+ * @param radius_y the y radius for ellipse arc
+ * @param rotate_angle the rotate angle for arc
+ * @param large_arc true for large arc, otherwise small
+ * @param clockwise true for clockwise, otherwise anticlockwise
+ * @param p pointer to a `lv_fpoint_t` variable for end point
+ */
+void lv_vector_path_arc_to(lv_vector_path_t * path, float radius_x, float radius_y, float rotate_angle,
+ bool large_arc,
+ bool clockwise, const lv_fpoint_t * p);
+
/**
* Close the sub path
* @param path pointer to a path
@@ -186,13 +200,32 @@ void lv_vector_path_close(lv_vector_path_t * path);
void lv_vector_path_get_bounding(const lv_vector_path_t * path, lv_area_t * area);
/**
- * Add a rectangle to the path
+ * Add a rectangle to the path by x/y/w/h. rx/ry are corner radii
+ * @param path pointer to a path
+ * @param x the x coordinate of the top-left corner of the rectangle
+ * @param y the y coordinate of the top-left corner of the rectangle
+ * @param w the width of the rectangle
+ * @param h the height of the rectangle
+ * @param rx the horizontal radius for rounded rectangle
+ * @param ry the vertical radius for rounded rectangle
+ */
+void lv_vector_path_append_rectangle(lv_vector_path_t * path, float x, float y, float w, float h, float rx, float ry);
+
+/**
+ * Add a rectangle to the path (legacy api, recommend use lv_vector_path_append_rectangle instead)
* @param path pointer to a path
* @param rect pointer to a `lv_area_t` variable
* @param rx the horizontal radius for rounded rectangle
* @param ry the vertical radius for rounded rectangle
*/
-void lv_vector_path_append_rect(lv_vector_path_t * path, const lv_area_t * rect, float rx, float ry);
+static inline void lv_vector_path_append_rect(lv_vector_path_t * path, const lv_area_t * rect, float rx, float ry)
+{
+ LV_ASSERT_NULL(path);
+ LV_ASSERT_NULL(rect);
+
+ lv_vector_path_append_rectangle(path, rect->x1, rect->y1, (float)lv_area_get_width(rect),
+ (float)lv_area_get_height(rect), rx, ry);
+}
/**
* Add a circle to the path
@@ -227,272 +260,309 @@ void lv_vector_path_append_path(lv_vector_path_t * path, const lv_vector_path_t
* @param layer pointer to a layer
* @return pointer to the created descriptor
*/
-lv_vector_dsc_t * lv_vector_dsc_create(lv_layer_t * layer);
+lv_draw_vector_dsc_t * lv_draw_vector_dsc_create(lv_layer_t * layer);
/**
* Delete the vector graphic descriptor
* @param dsc pointer to a vector graphic descriptor
*/
-void lv_vector_dsc_delete(lv_vector_dsc_t * dsc);
+void lv_draw_vector_dsc_delete(lv_draw_vector_dsc_t * dsc);
/**
- * Set a matrix to current transformation matrix
+ * Set a matrix to current transformation matrix.
+ * The new path shapes added by `lv_draw_vector_dsc_add_path` will use this matrix.
* @param dsc pointer to a vector graphic descriptor
* @param matrix pointer to a matrix
*/
-void lv_vector_dsc_set_transform(lv_vector_dsc_t * dsc, const lv_matrix_t * matrix);
+void lv_draw_vector_dsc_set_transform(lv_draw_vector_dsc_t * dsc, const lv_matrix_t * matrix);
/**
- * Set blend mode for descriptor
+ * Set blend mode for descriptor.
+ * The new path shapes added by `lv_draw_vector_dsc_add_path` will use this blend mode.
* @param dsc pointer to a vector graphic descriptor
* @param blend the blend mode to be set in `lv_vector_blend_t`
*/
-void lv_vector_dsc_set_blend_mode(lv_vector_dsc_t * dsc, lv_vector_blend_t blend);
+void lv_draw_vector_dsc_set_blend_mode(lv_draw_vector_dsc_t * dsc, lv_vector_blend_t blend);
/**
- * Set fill color for descriptor
+ * Set the fill color for descriptor.
+ * The new path shapes added by `lv_draw_vector_dsc_add_path` will use this color.
* @param dsc pointer to a vector graphic descriptor
* @param color the color to be set in lv_color32_t format
*/
-void lv_vector_dsc_set_fill_color32(lv_vector_dsc_t * dsc, lv_color32_t color);
+void lv_draw_vector_dsc_set_fill_color32(lv_draw_vector_dsc_t * dsc, lv_color32_t color);
/**
- * Set fill color for descriptor
+ * Set fill color for descriptor.
+ * The new path shapes added by `lv_draw_vector_dsc_add_path` will use this color.
* @param dsc pointer to a vector graphic descriptor
* @param color the color to be set in lv_color_t format
*/
-void lv_vector_dsc_set_fill_color(lv_vector_dsc_t * dsc, lv_color_t color);
+void lv_draw_vector_dsc_set_fill_color(lv_draw_vector_dsc_t * dsc, lv_color_t color);
/**
- * Set fill opacity for descriptor
+ * Set fill opacity for descriptor.
+ * The new path shapes added by `lv_draw_vector_dsc_add_path` will use this opacity.
* @param dsc pointer to a vector graphic descriptor
* @param opa the opacity to be set in lv_opa_t format
*/
-void lv_vector_dsc_set_fill_opa(lv_vector_dsc_t * dsc, lv_opa_t opa);
+void lv_draw_vector_dsc_set_fill_opa(lv_draw_vector_dsc_t * dsc, lv_opa_t opa);
/**
- * Set fill rule for descriptor
+ * Set fill rule for descriptor.
+ * The new path shapes added by `lv_draw_vector_dsc_add_path` will use this fill rule.
* @param dsc pointer to a vector graphic descriptor
* @param rule the fill rule to be set in lv_vector_fill_t format
*/
-void lv_vector_dsc_set_fill_rule(lv_vector_dsc_t * dsc, lv_vector_fill_t rule);
+void lv_draw_vector_dsc_set_fill_rule(lv_draw_vector_dsc_t * dsc, lv_vector_fill_t rule);
/**
* Set the fill units for descriptor.
+ * The new path shapes added by `lv_draw_vector_dsc_add_path` will use this fill units.
* @param dsc pointer to a vector graphic descriptor
* @param units the units to be set in lv_vector_fill_units_t format
* @note The units can be either relative to the object bounding box or absolute in user space.
* This API specifically affects the drawing position of the fill image and does not impact other elements.
*/
-void lv_vector_dsc_set_fill_units(lv_vector_dsc_t * dsc, const lv_vector_fill_units_t units);
+void lv_draw_vector_dsc_set_fill_units(lv_draw_vector_dsc_t * dsc, const lv_vector_fill_units_t units);
/**
- * Set fill image for descriptor
+ * Set fill image for descriptor.
+ * The new path shapes added by `lv_draw_vector_dsc_add_path` will use this fill image.
* @param dsc pointer to a vector graphic descriptor
* @param img_dsc pointer to a `lv_draw_image_dsc_t` variable
*/
-void lv_vector_dsc_set_fill_image(lv_vector_dsc_t * dsc, const lv_draw_image_dsc_t * img_dsc);
+void lv_draw_vector_dsc_set_fill_image(lv_draw_vector_dsc_t * dsc, const lv_draw_image_dsc_t * img_dsc);
/**
* Set fill linear gradient for descriptor
+ * The new path shapes added by `lv_draw_vector_dsc_add_path` will use this gradient.
* @param dsc pointer to a vector graphic descriptor
* @param x1 the x for start point
* @param y1 the y for start point
* @param x2 the x for end point
* @param y2 the y for end point
*/
-void lv_vector_dsc_set_fill_linear_gradient(lv_vector_dsc_t * dsc, float x1, float y1, float x2, float y2);
+void lv_draw_vector_dsc_set_fill_linear_gradient(lv_draw_vector_dsc_t * dsc, float x1, float y1, float x2, float y2);
/**
* Set fill radial gradient radius for descriptor
+ * The new path shapes added by `lv_draw_vector_dsc_add_path` will use this gradient.
* @param dsc pointer to a vector graphic descriptor
* @param cx the x for center of the circle
* @param cy the y for center of the circle
* @param radius the radius for circle
*/
-void lv_vector_dsc_set_fill_radial_gradient(lv_vector_dsc_t * dsc, float cx, float cy, float radius);
+void lv_draw_vector_dsc_set_fill_radial_gradient(lv_draw_vector_dsc_t * dsc, float cx, float cy, float radius);
/**
* Set fill radial gradient spread for descriptor
* @param dsc pointer to a vector graphic descriptor
* @param spread the gradient spread to be set in lv_vector_gradient_spread_t format
*/
-void lv_vector_dsc_set_fill_gradient_spread(lv_vector_dsc_t * dsc, lv_vector_gradient_spread_t spread);
+void lv_draw_vector_dsc_set_fill_gradient_spread(lv_draw_vector_dsc_t * dsc, lv_vector_gradient_spread_t spread);
/**
- * Set fill gradient color stops for descriptor
+ * Set fill gradient color stops for descriptor.
+ * The new path shapes added by `lv_draw_vector_dsc_add_path` will use this gradient color stops.
* @param dsc pointer to a vector graphic descriptor
* @param stops an array of `lv_grad_stop_t` variables
* @param count the number of stops in the array, range: 0..LV_GRADIENT_MAX_STOPS
*/
-void lv_vector_dsc_set_fill_gradient_color_stops(lv_vector_dsc_t * dsc, const lv_grad_stop_t * stops,
- uint16_t count);
+void lv_draw_vector_dsc_set_fill_gradient_color_stops(lv_draw_vector_dsc_t * dsc, const lv_grad_stop_t * stops,
+ uint16_t count);
/**
* Set a matrix to current fill transformation matrix
+ * The new path shapes added by `lv_draw_vector_dsc_add_path` will use this matrix.
* @param dsc pointer to a vector graphic descriptor
* @param matrix pointer to a matrix
*/
-void lv_vector_dsc_set_fill_transform(lv_vector_dsc_t * dsc, const lv_matrix_t * matrix);
+void lv_draw_vector_dsc_set_fill_transform(lv_draw_vector_dsc_t * dsc, const lv_matrix_t * matrix);
/**
- * Set stroke color for descriptor
+ * Set stroke color for descriptor.
+ * The new path shapes added by `lv_draw_vector_dsc_add_path` will use this color.
* @param dsc pointer to a vector graphic descriptor
* @param color the color to be set in lv_color32_t format
*/
-void lv_vector_dsc_set_stroke_color32(lv_vector_dsc_t * dsc, lv_color32_t color);
+void lv_draw_vector_dsc_set_stroke_color32(lv_draw_vector_dsc_t * dsc, lv_color32_t color);
/**
- * Set stroke color for descriptor
+ * Set stroke color for descriptor.
+ * The new path shapes added by `lv_draw_vector_dsc_add_path` will use this color.
* @param dsc pointer to a vector graphic descriptor
* @param color the color to be set in lv_color_t format
*/
-void lv_vector_dsc_set_stroke_color(lv_vector_dsc_t * dsc, lv_color_t color);
+void lv_draw_vector_dsc_set_stroke_color(lv_draw_vector_dsc_t * dsc, lv_color_t color);
/**
* Set stroke opacity for descriptor
* @param dsc pointer to a vector graphic descriptor
* @param opa the opacity to be set in lv_opa_t format
*/
-void lv_vector_dsc_set_stroke_opa(lv_vector_dsc_t * dsc, lv_opa_t opa);
+void lv_draw_vector_dsc_set_stroke_opa(lv_draw_vector_dsc_t * dsc, lv_opa_t opa);
/**
- * Set stroke line width for descriptor
+ * Set stroke line width for descriptor.
+ * The new path shapes added by `lv_draw_vector_dsc_add_path` will use this stroke width.
* @param dsc pointer to a vector graphic descriptor
* @param width the stroke line width
*/
-void lv_vector_dsc_set_stroke_width(lv_vector_dsc_t * dsc, float width);
+void lv_draw_vector_dsc_set_stroke_width(lv_draw_vector_dsc_t * dsc, float width);
/**
* Set stroke line dash pattern for descriptor
+ * The new path shapes added by `lv_draw_vector_dsc_add_path` will use this dash.
* @param dsc pointer to a vector graphic descriptor
* @param dash_pattern an array of values that specify the segments of dash line
* @param dash_count the length of dash pattern array
*/
-void lv_vector_dsc_set_stroke_dash(lv_vector_dsc_t * dsc, float * dash_pattern, uint16_t dash_count);
+void lv_draw_vector_dsc_set_stroke_dash(lv_draw_vector_dsc_t * dsc, float * dash_pattern, uint16_t dash_count);
/**
* Set stroke line cap style for descriptor
+ * The new path shapes added by `lv_draw_vector_dsc_add_path` will use this line cap.
* @param dsc pointer to a vector graphic descriptor
* @param cap the line cap to be set in lv_vector_stroke_cap_t format
*/
-void lv_vector_dsc_set_stroke_cap(lv_vector_dsc_t * dsc, lv_vector_stroke_cap_t cap);
+void lv_draw_vector_dsc_set_stroke_cap(lv_draw_vector_dsc_t * dsc, lv_vector_stroke_cap_t cap);
/**
* Set stroke line join style for descriptor
* @param dsc pointer to a vector graphic descriptor
* @param join the line join to be set in lv_vector_stroke_join_t format
*/
-void lv_vector_dsc_set_stroke_join(lv_vector_dsc_t * dsc, lv_vector_stroke_join_t join);
+void lv_draw_vector_dsc_set_stroke_join(lv_draw_vector_dsc_t * dsc, lv_vector_stroke_join_t join);
/**
* Set stroke miter limit for descriptor
+ * The new path shapes added by `lv_draw_vector_dsc_add_path` will use this miter limit.
* @param dsc pointer to a vector graphic descriptor
* @param miter_limit the stroke miter_limit
*/
-void lv_vector_dsc_set_stroke_miter_limit(lv_vector_dsc_t * dsc, uint16_t miter_limit);
+void lv_draw_vector_dsc_set_stroke_miter_limit(lv_draw_vector_dsc_t * dsc, uint16_t miter_limit);
/**
* Set stroke linear gradient for descriptor
+ * The new path shapes added by `lv_draw_vector_dsc_add_path` will use this gradient.
* @param dsc pointer to a vector graphic descriptor
* @param x1 the x for start point
* @param y1 the y for start point
* @param x2 the x for end point
* @param y2 the y for end point
*/
-void lv_vector_dsc_set_stroke_linear_gradient(lv_vector_dsc_t * dsc, float x1, float y1, float x2, float y2);
+void lv_draw_vector_dsc_set_stroke_linear_gradient(lv_draw_vector_dsc_t * dsc, float x1, float y1, float x2, float y2);
/**
* Set stroke radial gradient for descriptor
+ * The new path shapes added by `lv_draw_vector_dsc_add_path` will use this gradient.
* @param dsc pointer to a vector graphic descriptor
* @param cx the x for center of the circle
* @param cy the y for center of the circle
* @param radius the radius for circle
*/
-void lv_vector_dsc_set_stroke_radial_gradient(lv_vector_dsc_t * dsc, float cx, float cy, float radius);
+void lv_draw_vector_dsc_set_stroke_radial_gradient(lv_draw_vector_dsc_t * dsc, float cx, float cy, float radius);
/**
* Set stroke color stops for descriptor
+ * The new path shapes added by `lv_draw_vector_dsc_add_path` will use this gradient spread.
* @param dsc pointer to a vector graphic descriptor
* @param spread the gradient spread to be set in lv_vector_gradient_spread_t format
*/
-void lv_vector_dsc_set_stroke_gradient_spread(lv_vector_dsc_t * dsc, lv_vector_gradient_spread_t spread);
+void lv_draw_vector_dsc_set_stroke_gradient_spread(lv_draw_vector_dsc_t * dsc, lv_vector_gradient_spread_t spread);
/**
* Set stroke color stops for descriptor
+ * The new path shapes added by `lv_draw_vector_dsc_add_path` will use this color stops.
* @param dsc pointer to a vector graphic descriptor
* @param stops an array of `lv_grad_stop_t` variables
* @param count the number of stops in the array
*/
-void lv_vector_dsc_set_stroke_gradient_color_stops(lv_vector_dsc_t * dsc, const lv_grad_stop_t * stops,
- uint16_t count);
+void lv_draw_vector_dsc_set_stroke_gradient_color_stops(lv_draw_vector_dsc_t * dsc, const lv_grad_stop_t * stops,
+ uint16_t count);
/**
- * Set a matrix to current stroke transformation matrix
+ * Set a matrix to current stroke transformation matrix.
+ * The new path shapes added by `lv_draw_vector_dsc_add_path` will use this matrix.
* @param dsc pointer to a vector graphic descriptor
* @param matrix pointer to a matrix
*/
-void lv_vector_dsc_set_stroke_transform(lv_vector_dsc_t * dsc, const lv_matrix_t * matrix);
+void lv_draw_vector_dsc_set_stroke_transform(lv_draw_vector_dsc_t * dsc, const lv_matrix_t * matrix);
/**
* Set current transformation matrix to identity matrix
+ * The new path shapes added by `lv_draw_vector_dsc_add_path` will use this matrix.
* @param dsc pointer to a vector graphic descriptor
*/
-void lv_vector_dsc_identity(lv_vector_dsc_t * dsc);
+void lv_draw_vector_dsc_identity(lv_draw_vector_dsc_t * dsc);
/**
* Change the scale factor of current transformation matrix
+ * The new path shapes added by `lv_draw_vector_dsc_add_path` will use this scale.
* @param dsc pointer to a vector graphic descriptor
* @param scale_x the scale factor for the X direction
* @param scale_y the scale factor for the Y direction
*/
-void lv_vector_dsc_scale(lv_vector_dsc_t * dsc, float scale_x, float scale_y);
+void lv_draw_vector_dsc_scale(lv_draw_vector_dsc_t * dsc, float scale_x, float scale_y);
/**
* Rotate current transformation matrix with origin
+ * The new path shapes added by `lv_draw_vector_dsc_add_path` will use this rotation.
* @param dsc pointer to a vector graphic descriptor
* @param degree angle to rotate
*/
-void lv_vector_dsc_rotate(lv_vector_dsc_t * dsc, float degree);
+void lv_draw_vector_dsc_rotate(lv_draw_vector_dsc_t * dsc, float degree);
/**
* Translate current transformation matrix to new position
+ * The new path shapes added by `lv_draw_vector_dsc_add_path` will use this rotation.
* @param dsc pointer to a vector graphic descriptor
* @param tx the amount of translate in x direction
- * @param tx the amount of translate in y direction
+ * @param ty the amount of translate in y direction
*/
-void lv_vector_dsc_translate(lv_vector_dsc_t * dsc, float tx, float ty);
+void lv_draw_vector_dsc_translate(lv_draw_vector_dsc_t * dsc, float tx, float ty);
/**
* Change the skew factor of current transformation matrix
+ * The new path shapes added by `lv_draw_vector_dsc_add_path` will use this skew.
* @param dsc pointer to a vector graphic descriptor
* @param skew_x the skew factor for x direction
* @param skew_y the skew factor for y direction
*/
-void lv_vector_dsc_skew(lv_vector_dsc_t * dsc, float skew_x, float skew_y);
+void lv_draw_vector_dsc_skew(lv_draw_vector_dsc_t * dsc, float skew_x, float skew_y);
/**
- * Add a graphic path to the draw list
+ * Add a graphic path to the draw list.
+ * It will use colors, opacity, matrix and other parameters set
+ * by `lv_draw_vector_dsc_set_fill_color()` and similar functions.
* @param dsc pointer to a vector graphic descriptor
* @param path pointer to a path
*/
-void lv_vector_dsc_add_path(lv_vector_dsc_t * dsc, const lv_vector_path_t * path);
+void lv_draw_vector_dsc_add_path(lv_draw_vector_dsc_t * dsc, const lv_vector_path_t * path);
/**
* Clear a rectangle area use current fill color
* @param dsc pointer to a vector graphic descriptor
* @param rect the area to clear in the buffer
*/
-void lv_vector_clear_area(lv_vector_dsc_t * dsc, const lv_area_t * rect);
+void lv_draw_vector_dsc_clear_area(lv_draw_vector_dsc_t * dsc, const lv_area_t * rect);
/**
* Draw all the vector graphic paths
* @param dsc pointer to a vector graphic descriptor
*/
-void lv_draw_vector(lv_vector_dsc_t * dsc);
+void lv_draw_vector(lv_draw_vector_dsc_t * dsc);
+
+/**
+ * Try to get a vector draw descriptor from a draw task.
+ * @param task draw task
+ * @return the task's draw descriptor or NULL if the task is not of type LV_DRAW_TASK_TYPE_VECTOR
+ */
+lv_draw_vector_dsc_t * lv_draw_task_get_vector_dsc(lv_draw_task_t * task);
/* Traverser for task list */
-typedef void (*vector_draw_task_cb)(void * ctx, const lv_vector_path_t * path, const lv_vector_draw_dsc_t * dsc);
+typedef void (*vector_draw_task_cb)(void * ctx, const lv_vector_path_t * path, const lv_vector_path_ctx_t * dsc);
#endif /* LV_USE_VECTOR_GRAPHIC */
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_vector_private.h b/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_vector_private.h
index 7b2d4e04a..10639cabb 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_vector_private.h
+++ b/lib/libesp32_lvgl/lvgl/src/draw/lv_draw_vector_private.h
@@ -26,6 +26,13 @@ extern "C" {
* TYPEDEFS
**********************/
+/**
+ * Stores the shape of the path as arrays of operations and points.
+ * For example move to 10;20 then draw a line to 30;40 and draw an
+ * arc with 30 radius and 70° sweep.
+ *
+ * `lv_vector_path_ctx_t` is also required to describe how to fill and stroke the path.
+ */
struct _lv_vector_path_t {
lv_vector_path_quality_t quality;
lv_array_t ops;
@@ -70,7 +77,10 @@ struct _lv_vector_stroke_dsc_t {
lv_matrix_t matrix;
};
-struct _lv_vector_draw_dsc_t {
+/**
+ * Stores how to fill, stroke, transform etc a given path
+ */
+struct _lv_vector_path_ctx_t {
lv_vector_fill_dsc_t fill_dsc;
lv_vector_stroke_dsc_t stroke_dsc;
lv_matrix_t matrix;
@@ -78,23 +88,45 @@ struct _lv_vector_draw_dsc_t {
lv_area_t scissor_area;
};
-struct _lv_draw_vector_task_dsc_t {
+struct _lv_draw_vector_dsc_t {
lv_draw_dsc_base_t base;
- lv_ll_t * task_list; /*draw task list.*/
+
+ /** The current colors, opacities, matrix, etc for the next task to be added
+ * by */
+ lv_vector_path_ctx_t * ctx;
+
+ /**
+ * Store path shapes and their attributes
+ * in a list as `lv_draw_vector_subtask_t`. */
+ lv_ll_t * task_list;
};
-struct _lv_vector_dsc_t {
- lv_layer_t * layer;
- lv_vector_draw_dsc_t current_dsc;
- /* private data */
- lv_draw_vector_task_dsc_t tasks;
-};
+
+/**
+ * Contains a path shape and its attributes together.
+ * It's a task that will be passed to the vector rendering engine.
+ * It's used in the `task_list` of `lv_draw_vector_dsc_t`.
+ */
+typedef struct {
+ lv_vector_path_t * path;
+ lv_vector_path_ctx_t ctx;
+} lv_draw_vector_subtask_t;
+
/**********************
* GLOBAL PROTOTYPES
**********************/
-void lv_vector_for_each_destroy_tasks(lv_ll_t * task_list, vector_draw_task_cb cb, void * data);
+/**
+ * This is the main function to draw the accumulated vector tasks by passing them
+ * to a vector renderer callback.
+ * When the callback returns the processed vector task will be destroyed.
+ * @param task_list pointer to the linked list in `lv_draw_vector_dsc_t` that stores
+ * the path shapes and their attributes.
+ * @param cb the callback used to iterate through the task
+ * @param user_data a custom pointer that will be passed to the callback
+ */
+void lv_vector_for_each_destroy_tasks(lv_ll_t * task_list, vector_draw_task_cb cb, void * used_data);
/**********************
* MACROS
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/lv_image_decoder.c b/lib/libesp32_lvgl/lvgl/src/draw/lv_image_decoder.c
index 48d62c89f..ce4d25c0b 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/lv_image_decoder.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/lv_image_decoder.c
@@ -21,6 +21,14 @@
#define img_header_cache_p (LV_GLOBAL_DEFAULT()->img_header_cache)
#define image_cache_draw_buf_handlers &(LV_GLOBAL_DEFAULT()->image_cache_draw_buf_handlers)
+#if LV_USE_OS != LV_OS_NONE
+ #define img_decoder_info_lock_p &(LV_GLOBAL_DEFAULT()->img_decoder_info_lock)
+ #define img_decoder_open_lock_p &(LV_GLOBAL_DEFAULT()->img_decoder_open_lock)
+#else
+ #define img_decoder_info_lock_p NULL
+ #define img_decoder_open_lock_p NULL
+#endif
+
/**********************
* TYPEDEFS
**********************/
@@ -63,6 +71,9 @@ void lv_image_decoder_init(uint32_t image_cache_size, uint32_t image_header_coun
/*Initialize the cache*/
lv_image_cache_init(image_cache_size);
lv_image_header_cache_init(image_header_count);
+
+ lv_mutex_init(img_decoder_info_lock_p);
+ lv_mutex_init(img_decoder_open_lock_p);
}
/**
@@ -73,6 +84,9 @@ void lv_image_decoder_deinit(void)
lv_cache_destroy(img_cache_p, NULL);
lv_cache_destroy(img_header_cache_p, NULL);
+ lv_mutex_delete(img_decoder_info_lock_p);
+ lv_mutex_delete(img_decoder_open_lock_p);
+
lv_ll_clear(img_decoder_ll_p);
}
@@ -83,7 +97,9 @@ lv_result_t lv_image_decoder_get_info(const void * src, lv_image_header_t * head
dsc.src = src;
dsc.src_type = lv_image_src_get_type(src);
+ lv_mutex_lock(img_decoder_info_lock_p);
lv_image_decoder_t * decoder = image_decoder_get_info(&dsc, header);
+ lv_mutex_unlock(img_decoder_info_lock_p);
if(decoder == NULL) return LV_RESULT_INVALID;
return LV_RESULT_OK;
@@ -97,6 +113,8 @@ lv_result_t lv_image_decoder_open(lv_image_decoder_dsc_t * dsc, const void * src
dsc->src = src;
dsc->src_type = lv_image_src_get_type(src);
+ lv_mutex_lock(img_decoder_open_lock_p);
+
if(lv_image_cache_is_enabled()) {
dsc->cache = img_cache_p;
/*Try cache first, unless we are told to ignore cache.*/
@@ -104,13 +122,19 @@ lv_result_t lv_image_decoder_open(lv_image_decoder_dsc_t * dsc, const void * src
/*
* Check the cache first
* If the image is found in the cache, just return it.*/
- if(try_cache(dsc) == LV_RESULT_OK) return LV_RESULT_OK;
+ if(try_cache(dsc) == LV_RESULT_OK) {
+ lv_mutex_unlock(img_decoder_open_lock_p);
+ return LV_RESULT_OK;
+ }
}
}
/*Find the decoder that can open the image source, and get the header info in the same time.*/
dsc->decoder = image_decoder_get_info(dsc, &dsc->header);
- if(dsc->decoder == NULL) return LV_RESULT_INVALID;
+ if(dsc->decoder == NULL) {
+ lv_mutex_unlock(img_decoder_open_lock_p);
+ return LV_RESULT_INVALID;
+ }
/*Make a copy of args*/
dsc->args = args ? *args : (lv_image_decoder_args_t) {
@@ -144,6 +168,7 @@ lv_result_t lv_image_decoder_open(lv_image_decoder_dsc_t * dsc, const void * src
}
}
+ lv_mutex_unlock(img_decoder_open_lock_p);
return res;
}
@@ -158,14 +183,20 @@ lv_result_t lv_image_decoder_get_area(lv_image_decoder_dsc_t * dsc, const lv_are
void lv_image_decoder_close(lv_image_decoder_dsc_t * dsc)
{
- if(dsc->decoder) {
- if(dsc->decoder->close_cb) dsc->decoder->close_cb(dsc->decoder, dsc);
-
- if(lv_image_cache_is_enabled() && dsc->cache && dsc->cache_entry) {
- /*Decoded data is in cache, release it from cache's callback*/
- lv_cache_release(dsc->cache, dsc->cache_entry, NULL);
- }
+ if(!dsc->decoder) {
+ return;
}
+
+ lv_mutex_lock(img_decoder_open_lock_p);
+
+ if(dsc->decoder->close_cb) dsc->decoder->close_cb(dsc->decoder, dsc);
+
+ if(lv_image_cache_is_enabled() && dsc->cache && dsc->cache_entry) {
+ /*Decoded data is in cache, release it from cache's callback*/
+ lv_cache_release(dsc->cache, dsc->cache_entry, NULL);
+ }
+
+ lv_mutex_unlock(img_decoder_open_lock_p);
}
/**
@@ -269,7 +300,8 @@ lv_draw_buf_t * lv_image_decoder_post_process(lv_image_decoder_dsc_t * dsc, lv_d
if(args->premultiply
&& !LV_COLOR_FORMAT_IS_ALPHA_ONLY(decoded->header.cf)
&& lv_color_format_has_alpha(decoded->header.cf)
- && !lv_draw_buf_has_flag(decoded, LV_IMAGE_FLAGS_PREMULTIPLIED) /*Hasn't done yet*/
+ && !lv_draw_buf_has_flag(decoded, LV_IMAGE_FLAGS_PREMULTIPLIED)
+ && decoded->header.cf != LV_COLOR_FORMAT_ARGB8888_PREMULTIPLIED /*Hasn't done yet*/
) {
LV_LOG_TRACE("Alpha premultiply.");
if(lv_draw_buf_has_flag(decoded, LV_IMAGE_FLAGS_MODIFIABLE)) {
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/lv_image_dsc.h b/lib/libesp32_lvgl/lvgl/src/draw/lv_image_dsc.h
index 922c65e90..6a6f7aff9 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/lv_image_dsc.h
+++ b/lib/libesp32_lvgl/lvgl/src/draw/lv_image_dsc.h
@@ -25,6 +25,11 @@ extern "C" {
#define LV_IMAGE_HEADER_MAGIC (0x19)
LV_EXPORT_CONST_INT(LV_IMAGE_HEADER_MAGIC);
+/**
+ * Flags reserved for user, lvgl won't use these bits.
+ */
+#define LV_IMAGE_FLAGS_USER_MASK (0xFF00)
+
/**********************
* TYPEDEFS
**********************/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx.c b/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx.c
index fb0a3d67e..a56420f22 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx.c
@@ -243,12 +243,18 @@ static int32_t nema_gfx_evaluate(lv_draw_unit_t * draw_unit, lv_draw_task_t * ta
}
break;
}
+#if LV_USE_VECTOR_GRAPHIC && LV_USE_NEMA_VG
+ case LV_DRAW_TASK_TYPE_VECTOR: {
+ if(task->preference_score > 80) {
+ task->preference_score = 80;
+ task->preferred_draw_unit_id = DRAW_UNIT_ID_NEMA_GFX;
+ }
+ return 1;
+ }
+#endif
case LV_DRAW_TASK_TYPE_BOX_SHADOW:
case LV_DRAW_TASK_TYPE_MASK_RECTANGLE:
case LV_DRAW_TASK_TYPE_MASK_BITMAP:
-#if LV_USE_VECTOR_GRAPHIC
- case LV_DRAW_TASK_TYPE_VECTOR:
-#endif
default:
break;
}
@@ -285,7 +291,7 @@ static int32_t nema_gfx_dispatch(lv_draw_unit_t * draw_unit, lv_layer_t * layer)
#else
nema_gfx_execute_drawing(draw_nema_gfx_unit);
- draw_nema_gfx_unit->task_act->state = LV_DRAW_TASK_STATE_READY;
+ draw_nema_gfx_unit->task_act->state = LV_DRAW_TASK_STATE_FINISHED;
draw_nema_gfx_unit->task_act = NULL;
/* The draw unit is free now. Request a new dispatching as it can get a new task. */
@@ -328,6 +334,11 @@ static void nema_gfx_execute_drawing(lv_draw_nema_gfx_unit_t * u)
case LV_DRAW_TASK_TYPE_BORDER:
lv_draw_nema_gfx_border(t, t->draw_dsc, &t->area);
break;
+#if LV_USE_VECTOR_GRAPHIC && LV_USE_NEMA_VG
+ case LV_DRAW_TASK_TYPE_VECTOR:
+ lv_draw_nema_gfx_vector(t, t->draw_dsc, &t->area);
+ break;
+#endif
default:
break;
}
@@ -388,7 +399,7 @@ static void nema_gfx_render_thread_cb(void * ptr)
nema_gfx_execute_drawing(u);
}
/* Signal the ready state to dispatcher. */
- u->task_act->state = LV_DRAW_TASK_STATE_READY;
+ u->task_act->state = LV_DRAW_TASK_STATE_FINISHED;
/* Cleanup. */
u->task_act = NULL;
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx.h b/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx.h
index 8197fab28..5717e5be4 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx.h
+++ b/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx.h
@@ -110,6 +110,11 @@ void lv_draw_nema_gfx_border(lv_draw_task_t * t, const lv_draw_border_dsc_t * ds
void lv_draw_nema_gfx_arc(lv_draw_task_t * t, const lv_draw_arc_dsc_t * dsc,
const lv_area_t * coords);
+#if LV_USE_VECTOR_GRAPHIC && LV_USE_NEMA_VG
+void lv_draw_nema_gfx_vector(lv_draw_task_t * t, const lv_draw_vector_dsc_t * dsc,
+ const lv_area_t * coords);
+#endif
+
/**********************
* MACROS
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx_border.c b/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx_border.c
index 31dec2c4b..bed835e0d 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx_border.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx_border.c
@@ -25,7 +25,7 @@
*/
/**
- * @file lv_draw_nema_gfx_fill.c
+ * @file lv_draw_nema_gfx_border.c
*
*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx_fill.c b/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx_fill.c
index 6199abf35..e07927752 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx_fill.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx_fill.c
@@ -99,13 +99,12 @@ void lv_draw_nema_gfx_fill(lv_draw_task_t * t, const lv_draw_fill_dsc_t * dsc, c
nema_vg_paint_clear(draw_nema_gfx_unit->paint);
- nema_vg_paint_set_type(draw_nema_gfx_unit->paint, NEMA_VG_PAINT_GRAD_LINEAR);
nema_vg_set_blend(NEMA_BL_SRC_OVER | NEMA_BLOP_SRC_PREMULT);
float stops[LV_GRADIENT_MAX_STOPS];
color_var_t colors[LV_GRADIENT_MAX_STOPS];
- uint32_t cnt = LV_MAX(dsc->grad.stops_count, LV_GRADIENT_MAX_STOPS);
+ uint32_t cnt = LV_MIN(dsc->grad.stops_count, LV_GRADIENT_MAX_STOPS);
for(uint8_t i = 0; i < cnt; i++) {
stops[i] = (float)(dsc->grad.stops[i].frac) / 255.f;
@@ -117,23 +116,57 @@ void lv_draw_nema_gfx_fill(lv_draw_task_t * t, const lv_draw_fill_dsc_t * dsc, c
nema_vg_grad_set(draw_nema_gfx_unit->gradient, cnt, stops, colors);
- float x0, y0, x1, y1;
-
- if(dsc->grad.dir == LV_GRAD_DIR_HOR) {
- x0 = rel_coords.x1;
- x1 = rel_coords.x2;
- y0 = rel_coords.y1;
- y1 = rel_coords.y1;
- }
- else {
- x0 = rel_coords.x1;
- x1 = rel_coords.x1;
- y0 = rel_coords.y1;
- y1 = rel_coords.y2;
+ nema_tex_mode_t extend_type;
+ switch(dsc->grad.extend) {
+ case LV_GRAD_EXTEND_REPEAT:
+ extend_type = NEMA_TEX_REPEAT;
+ break;
+ case LV_GRAD_EXTEND_REFLECT:
+ extend_type = NEMA_TEX_MIRROR;
+ break;
+ case LV_GRAD_EXTEND_PAD:
+ default:
+ extend_type = NEMA_TEX_CLAMP;
+ break;
}
- nema_vg_paint_set_grad_linear(draw_nema_gfx_unit->paint, draw_nema_gfx_unit->gradient, x0, y0, x1, y1,
- NEMA_TEX_CLAMP | NEMA_FILTER_BL);
+ if(dsc->grad.dir == LV_GRAD_DIR_VER || dsc->grad.dir == LV_GRAD_DIR_HOR
+ || dsc->grad.dir == LV_GRAD_DIR_LINEAR) {
+ nema_vg_paint_set_type(draw_nema_gfx_unit->paint, NEMA_VG_PAINT_GRAD_LINEAR);
+
+ float x0, y0, x1, y1;
+
+ if(dsc->grad.dir == LV_GRAD_DIR_HOR) {
+ x0 = rel_coords.x1;
+ x1 = rel_coords.x2;
+ y0 = rel_coords.y1;
+ y1 = rel_coords.y2;
+ }
+ else if(dsc->grad.dir == LV_GRAD_DIR_VER) {
+ x0 = rel_coords.x1;
+ x1 = rel_coords.x1;
+ y0 = rel_coords.y1;
+ y1 = rel_coords.y2;
+ }
+ else {
+ x0 = rel_coords.x1 + lv_pct_to_px(dsc->grad.params.linear.start.x, lv_area_get_width(coords));
+ x1 = rel_coords.x1 + lv_pct_to_px(dsc->grad.params.linear.end.x, lv_area_get_width(coords));
+ y0 = rel_coords.y1 + lv_pct_to_px(dsc->grad.params.linear.start.y, lv_area_get_height(coords));
+ y1 = rel_coords.y1 + lv_pct_to_px(dsc->grad.params.linear.end.y, lv_area_get_height(coords));
+ }
+
+ nema_vg_paint_set_grad_linear(draw_nema_gfx_unit->paint, draw_nema_gfx_unit->gradient, x0, y0, x1, y1,
+ extend_type | NEMA_FILTER_BL);
+ }
+ else if(dsc->grad.dir == LV_GRAD_DIR_RADIAL) {
+ nema_vg_paint_set_type(draw_nema_gfx_unit->paint, NEMA_VG_PAINT_GRAD_RADIAL);
+
+ nema_vg_paint_set_grad_radial(draw_nema_gfx_unit->paint, draw_nema_gfx_unit->gradient,
+ rel_coords.x1 + dsc->grad.params.radial.end.x,
+ rel_coords.y1 + dsc->grad.params.radial.end.y,
+ LV_ABS(dsc->grad.params.radial.end_extent.x - dsc->grad.params.radial.end.x),
+ extend_type | NEMA_FILTER_BL);
+ }
if(radius > 0.f)
nema_vg_draw_rounded_rect(rel_coords.x1, rel_coords.y1, coords_bg_w, coords_bg_h, radius, radius, NULL,
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx_img.c b/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx_img.c
index 88437806c..619f4174f 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx_img.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx_img.c
@@ -25,7 +25,7 @@
*/
/**
- * @file lv_draw_nema_gfx_fill.c
+ * @file lv_draw_nema_gfx_img.c
*
*/
@@ -41,9 +41,9 @@
* STATIC PROTOTYPES
**********************/
-static void _draw_nema_gfx_tile(lv_draw_task_t * t, const lv_draw_image_dsc_t * dsc, const lv_area_t * coords);
-
-static void _draw_nema_gfx_img(lv_draw_task_t * t, const lv_draw_image_dsc_t * dsc, const lv_area_t * coords);
+static void _draw_nema_gfx_img(lv_draw_task_t * t, const lv_draw_image_dsc_t * dsc,
+ const lv_image_decoder_dsc_t * decoder_dsc, lv_draw_image_sup_t * sup,
+ const lv_area_t * img_coords, const lv_area_t * clipped_img_area);
static uint32_t lv_nemagfx_mask_cf_to_nema(lv_color_format_t cf);
@@ -51,80 +51,29 @@ static uint32_t lv_nemagfx_mask_cf_to_nema(lv_color_format_t cf);
* STATIC FUNCTIONS
**********************/
-static void _draw_nema_gfx_tile(lv_draw_task_t * t, const lv_draw_image_dsc_t * dsc, const lv_area_t * coords)
-{
-
- lv_image_decoder_dsc_t decoder_dsc;
- lv_result_t res = lv_image_decoder_open(&decoder_dsc, dsc->src, NULL);
- if(res != LV_RESULT_OK) {
- LV_LOG_ERROR("Failed to open image");
- return;
- }
-
- int32_t img_w = dsc->header.w;
- int32_t img_h = dsc->header.h;
-
- lv_area_t tile_area;
- if(lv_area_get_width(&dsc->image_area) >= 0) {
- tile_area = dsc->image_area;
- }
- else {
- tile_area = *coords;
- }
- lv_area_set_width(&tile_area, img_w);
- lv_area_set_height(&tile_area, img_h);
-
- int32_t tile_x_start = tile_area.x1;
-
- while(tile_area.y1 <= t->clip_area.y2) {
- while(tile_area.x1 <= t->clip_area.x2) {
-
- lv_area_t clipped_img_area;
- if(lv_area_intersect(&clipped_img_area, &tile_area, &t->clip_area)) {
- _draw_nema_gfx_img(t, dsc, &tile_area);
- }
-
- tile_area.x1 += img_w;
- tile_area.x2 += img_w;
- }
-
- tile_area.y1 += img_h;
- tile_area.y2 += img_h;
- tile_area.x1 = tile_x_start;
- tile_area.x2 = tile_x_start + img_w - 1;
- }
-
- lv_image_decoder_close(&decoder_dsc);
-}
-
-static void _draw_nema_gfx_img(lv_draw_task_t * t, const lv_draw_image_dsc_t * dsc, const lv_area_t * coords)
+static void _draw_nema_gfx_img(lv_draw_task_t * t, const lv_draw_image_dsc_t * dsc,
+ const lv_image_decoder_dsc_t * decoder_dsc, lv_draw_image_sup_t * sup,
+ const lv_area_t * img_coords, const lv_area_t * clipped_img_area)
{
if(dsc->opa <= LV_OPA_MIN) return;
lv_draw_nema_gfx_unit_t * draw_nema_gfx_unit = (lv_draw_nema_gfx_unit_t *)t->draw_unit;
lv_layer_t * layer = t->target_layer;
- const lv_image_dsc_t * img_dsc = dsc->src;
+ const lv_draw_buf_t * decoded = decoder_dsc->decoded;
+ const lv_image_header_t * header = &decoded->header;
bool masked = dsc->bitmap_mask_src != NULL;
- lv_area_t blend_area;
- /*Let's get the blend area which is the intersection of the area to fill and the clip area.*/
- if(!lv_area_intersect(&blend_area, coords, &t->clip_area))
- return; /*Fully clipped, nothing to do*/
-
lv_area_t rel_clip_area;
- lv_area_copy(&rel_clip_area, &t->clip_area);
+ lv_area_copy(&rel_clip_area, clipped_img_area);
lv_area_move(&rel_clip_area, -layer->buf_area.x1, -layer->buf_area.y1);
bool has_transform = (dsc->rotation != 0 || dsc->scale_x != LV_SCALE_NONE || dsc->scale_y != LV_SCALE_NONE);
bool recolor = (dsc->recolor_opa > LV_OPA_MIN);
- /*Make the blend area relative to the buffer*/
- lv_area_move(&blend_area, -layer->buf_area.x1, -layer->buf_area.y1);
-
- uint32_t tex_w = lv_area_get_width(coords);
- uint32_t tex_h = lv_area_get_height(coords);
+ uint32_t tex_w = header->w;
+ uint32_t tex_h = header->h;
nema_set_clip(rel_clip_area.x1, rel_clip_area.y1, lv_area_get_width(&rel_clip_area),
lv_area_get_height(&rel_clip_area));
@@ -132,11 +81,11 @@ static void _draw_nema_gfx_img(lv_draw_task_t * t, const lv_draw_image_dsc_t * d
lv_color_format_t dst_cf = layer->draw_buf->header.cf;
uint32_t dst_nema_cf = lv_nemagfx_cf_to_nema(dst_cf);
- const void * src_buf = img_dsc->data;
+ const void * src_buf = decoded->data;
uint32_t blending_mode = lv_nemagfx_blending_mode(dsc->blend_mode);
- lv_color_format_t src_cf = img_dsc->header.cf;
+ lv_color_format_t src_cf = header->cf;
/*Image contains Alpha*/
if(src_cf == LV_COLOR_FORMAT_ARGB8888 || src_cf == LV_COLOR_FORMAT_XRGB8888) {
@@ -146,7 +95,7 @@ static void _draw_nema_gfx_img(lv_draw_task_t * t, const lv_draw_image_dsc_t * d
uint32_t src_nema_cf = lv_nemagfx_cf_to_nema(src_cf);
/* the stride should be computed internally for NEMA_TSC images and images missing a stride value */
int32_t src_stride = (src_cf >= LV_COLOR_FORMAT_NEMA_TSC_START && src_cf <= LV_COLOR_FORMAT_NEMA_TSC_END)
- || img_dsc->header.stride == 0 ? -1 : (int32_t)img_dsc->header.stride;
+ || header->stride == 0 ? -1 : (int32_t)header->stride;
int32_t stride = (dst_cf >= LV_COLOR_FORMAT_NEMA_TSC_START && dst_cf <= LV_COLOR_FORMAT_NEMA_TSC_END) ?
-1 : lv_area_get_width(&(layer->buf_area)) * lv_color_format_get_size(dst_cf);
@@ -189,13 +138,13 @@ static void _draw_nema_gfx_img(lv_draw_task_t * t, const lv_draw_image_dsc_t * d
const lv_area_t * image_area;
lv_area_t mask_area;
- if(lv_area_get_width(&dsc->image_area) < 0) image_area = coords;
+ if(lv_area_get_width(&dsc->image_area) < 0) image_area = img_coords;
else image_area = &dsc->image_area;
lv_area_set(&mask_area, 0, 0, dsc->bitmap_mask_src->header.w - 1, dsc->bitmap_mask_src->header.h - 1);
lv_area_align(image_area, &mask_area, LV_ALIGN_CENTER, 0, 0);
- mask_buf += dsc->bitmap_mask_src->header.w * (coords->y1 - mask_area.y1) + (coords->x1 - mask_area.x1);
+ mask_buf += dsc->bitmap_mask_src->header.w * (img_coords->y1 - mask_area.y1) + (img_coords->x1 - mask_area.x1);
nema_bind_tex(NEMA_TEX3, (uintptr_t)NEMA_VIRT2PHYS(mask_buf), mask->header.w, mask->header.h,
lv_nemagfx_mask_cf_to_nema(mask->header.cf),
@@ -206,13 +155,13 @@ static void _draw_nema_gfx_img(lv_draw_task_t * t, const lv_draw_image_dsc_t * d
nema_set_blend_blit(blending_mode);
if(!has_transform) {
- nema_blit_rect((coords->x1 - layer->buf_area.x1),
- (coords->y1 - layer->buf_area.y1), tex_w, tex_h);
+ nema_blit_rect((img_coords->x1 - layer->buf_area.x1),
+ (img_coords->y1 - layer->buf_area.y1), tex_w, tex_h);
}
else {
/*Calculate the transformed points*/
- float x0 = (coords->x1 - layer->buf_area.x1);
- float y0 = (coords->y1 - layer->buf_area.y1);
+ float x0 = (img_coords->x1 - layer->buf_area.x1);
+ float y0 = (img_coords->y1 - layer->buf_area.y1);
float x1 = x0 + tex_w ;
float y1 = y0;
float x2 = x0 + tex_w ;
@@ -273,10 +222,10 @@ void lv_draw_nema_gfx_img(lv_draw_task_t * t, const lv_draw_image_dsc_t * dsc, c
{
if(!dsc->tile) {
- _draw_nema_gfx_img(t, dsc, coords);
+ lv_draw_image_normal_helper(t, dsc, coords, _draw_nema_gfx_img);
}
else {
- _draw_nema_gfx_tile(t, dsc, coords);
+ lv_draw_image_tiled_helper(t, dsc, coords, _draw_nema_gfx_img);
}
}
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx_label.c b/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx_label.c
index 9275fe2cf..e270ac7c8 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx_label.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx_label.c
@@ -25,7 +25,7 @@
*/
/**
- * @file lv_draw_nema_gfx_fill.c
+ * @file lv_draw_nema_gfx_label.c
*
*/
@@ -414,7 +414,11 @@ static void _draw_label_iterate_characters(lv_draw_task_t * t, const lv_draw_lab
const lv_area_t * coords)
{
const lv_font_t * font = dsc->font;
- int32_t w;
+ lv_text_attributes_t attributes = {0};
+ attributes.letter_space = dsc->letter_space;
+ attributes.line_space = dsc->line_space;
+ attributes.max_width = LV_COORD_MAX;
+ attributes.text_flags = dsc->flag;
lv_area_t clipped_area;
bool clip_ok = lv_area_intersect(&clipped_area, coords, &t->clip_area);
@@ -427,14 +431,13 @@ static void _draw_label_iterate_characters(lv_draw_task_t * t, const lv_draw_lab
if((dsc->flag & LV_TEXT_FLAG_EXPAND) == 0) {
/*Normally use the label's width as width*/
- w = lv_area_get_width(coords);
+ attributes.max_width = lv_area_get_width(coords);
}
else {
/*If EXPAND is enabled then not limit the text's width to the object's width*/
lv_point_t p;
- lv_text_get_size(&p, dsc->text, dsc->font, dsc->letter_space, dsc->line_space, LV_COORD_MAX,
- dsc->flag);
- w = p.x;
+ lv_text_get_size_attributes(&p, dsc->text, dsc->font, &attributes);
+ attributes.max_width = p.x;
}
int32_t line_height_font = lv_font_get_line_height(font);
@@ -471,14 +474,13 @@ static void _draw_label_iterate_characters(lv_draw_task_t * t, const lv_draw_lab
uint32_t remaining_len = dsc->text_length;
- uint32_t line_end = line_start + lv_text_get_next_line(&dsc->text[line_start], remaining_len, font, dsc->letter_space,
- w, NULL, dsc->flag);
+ uint32_t line_end = line_start + lv_text_get_next_line(&dsc->text[line_start], remaining_len, font, NULL, &attributes);
/*Go the first visible line*/
while(pos.y + line_height_font < t->clip_area.y1) {
/*Go to next line*/
line_start = line_end;
- line_end += lv_text_get_next_line(&dsc->text[line_start], remaining_len, font, dsc->letter_space, w, NULL, dsc->flag);
+ line_end += lv_text_get_next_line(&dsc->text[line_start], remaining_len, font, NULL, &attributes);
pos.y += line_height;
/*Save at the threshold coordinate*/
@@ -493,16 +495,14 @@ static void _draw_label_iterate_characters(lv_draw_task_t * t, const lv_draw_lab
/*Align to middle*/
if(align == LV_TEXT_ALIGN_CENTER) {
- line_width = lv_text_get_width_with_flags(&dsc->text[line_start], line_end - line_start, font, dsc->letter_space,
- dsc->flag);
+ line_width = lv_text_get_width(&dsc->text[line_start], line_end - line_start, font, &attributes);
pos.x += (lv_area_get_width(coords) - line_width) / 2;
}
/*Align to the right*/
else if(align == LV_TEXT_ALIGN_RIGHT) {
- line_width = lv_text_get_width_with_flags(&dsc->text[line_start], line_end - line_start, font, dsc->letter_space,
- dsc->flag);
+ line_width = lv_text_get_width(&dsc->text[line_start], line_end - line_start, font, &attributes);
pos.x += lv_area_get_width(coords) - line_width;
}
@@ -530,6 +530,7 @@ static void _draw_label_iterate_characters(lv_draw_task_t * t, const lv_draw_lab
uint32_t next_char_offset;
uint32_t recolor_command_start_index = 0;
int32_t letter_w;
+
cmd_state_t recolor_cmd_state = RECOLOR_CMD_STATE_WAIT_FOR_PARAMETER;
lv_color_t recolor = lv_color_black(); /* Holds the selected color inside the recolor command */
uint8_t is_first_space_after_cmd = 0;
@@ -553,7 +554,6 @@ static void _draw_label_iterate_characters(lv_draw_task_t * t, const lv_draw_lab
line_start_x = pos.x;
/*Write all letter of a line*/
- recolor_cmd_state = RECOLOR_CMD_STATE_WAIT_FOR_PARAMETER;
next_char_offset = 0;
#if LV_USE_BIDI
char * bidi_txt = lv_malloc(line_end - line_start + 1);
@@ -731,21 +731,21 @@ static void _draw_label_iterate_characters(lv_draw_task_t * t, const lv_draw_lab
remaining_len -= line_end - line_start;
line_start = line_end;
if(remaining_len) {
- line_end += lv_text_get_next_line(&dsc->text[line_start], remaining_len, font, dsc->letter_space, w, NULL, dsc->flag);
+ line_end += lv_text_get_next_line(&dsc->text[line_start], remaining_len, font, NULL, &attributes);
}
pos.x = coords->x1;
/*Align to middle*/
if(align == LV_TEXT_ALIGN_CENTER) {
line_width =
- lv_text_get_width_with_flags(&dsc->text[line_start], line_end - line_start, font, dsc->letter_space, dsc->flag);
+ lv_text_get_width(&dsc->text[line_start], line_end - line_start, font, &attributes);
pos.x += (lv_area_get_width(coords) - line_width) / 2;
}
/*Align to the right*/
else if(align == LV_TEXT_ALIGN_RIGHT) {
line_width =
- lv_text_get_width_with_flags(&dsc->text[line_start], line_end - line_start, font, dsc->letter_space, dsc->flag);
+ lv_text_get_width(&dsc->text[line_start], line_end - line_start, font, &attributes);
pos.x += lv_area_get_width(coords) - line_width;
}
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx_layer.c b/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx_layer.c
index 0c64564c6..14106ce5c 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx_layer.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx_layer.c
@@ -25,7 +25,7 @@
*/
/**
- * @file lv_draw_nema_gfx_fill.c
+ * @file lv_draw_nema_gfx_layer.c
*
*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx_line.c b/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx_line.c
index ad6e24e01..5f5477c35 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx_line.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx_line.c
@@ -25,7 +25,7 @@
*/
/**
- * @file lv_draw_nema_gfx_fill.c
+ * @file lv_draw_nema_gfx_line.c
*
*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx_stm32_hal.c b/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx_stm32_hal.c
index cb6abaf33..0d70b8e0c 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx_stm32_hal.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx_stm32_hal.c
@@ -1,5 +1,5 @@
/**
- * @file lv_draw_nema_gfx_hal.c
+ * @file lv_draw_nema_gfx_stm32_hal.c
*
* Global functions that implement some HAL functionality
* which Nema will call directly.
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx_triangle.c b/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx_triangle.c
index 658da8da0..124b3e6be 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx_triangle.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx_triangle.c
@@ -25,7 +25,7 @@
*/
/**
- * @file lv_draw_nema_gfx_fill.c
+ * @file lv_draw_nema_gfx_triangle.c
*
*/
@@ -90,7 +90,9 @@ void lv_draw_nema_gfx_triangle(lv_draw_task_t * t, const lv_draw_triangle_dsc_t
uint32_t bg_color = nema_rgba(col32.red, col32.green, col32.blue, col32.alpha);
nema_enable_aa(1, 1, 1, 0);
- nema_fill_triangle(dsc->p[0].x, dsc->p[0].y, dsc->p[1].x, dsc->p[1].y, dsc->p[2].x, dsc->p[2].y, bg_color);
+ nema_fill_triangle(dsc->p[0].x - layer->buf_area.x1, dsc->p[0].y - layer->buf_area.y1,
+ dsc->p[1].x - layer->buf_area.x1, dsc->p[1].y - layer->buf_area.y1,
+ dsc->p[2].x - layer->buf_area.x1, dsc->p[2].y - layer->buf_area.y1, bg_color);
}
#if LV_USE_NEMA_VG
else {
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx_utils.h b/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx_utils.h
index a4f90b14c..f47338b27 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx_utils.h
+++ b/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx_utils.h
@@ -25,7 +25,7 @@
*/
/**
- * @file lv_draw_nema_gfx.h
+ * @file lv_draw_nema_gfx_utils.h
*
*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx_vector.c b/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx_vector.c
new file mode 100644
index 000000000..923f514c3
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/draw/nema_gfx/lv_draw_nema_gfx_vector.c
@@ -0,0 +1,161 @@
+/**
+ * @file lv_draw_nema_gfx_vector.c
+ *
+ */
+
+/*********************
+ * INCLUDES
+ *********************/
+
+#include "lv_draw_nema_gfx.h"
+#if LV_USE_NEMA_GFX && LV_USE_VECTOR_GRAPHIC && LV_USE_NEMA_VG
+
+#include "lv_nema_gfx_path.h"
+#include "../lv_draw_vector_private.h"
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+typedef struct {
+ lv_draw_nema_gfx_unit_t * u;
+ float rel_translate_x;
+ float rel_translate_y;
+} ctx_t;
+
+/**********************
+ * STATIC PROTOTYPES
+ **********************/
+
+static void task_draw_cb(void * ctx, const lv_vector_path_t * path, const lv_vector_path_ctx_t * dsc);
+
+/**********************
+ * STATIC VARIABLES
+ **********************/
+
+/**********************
+ * MACROS
+ **********************/
+
+/**********************
+ * GLOBAL FUNCTIONS
+ **********************/
+
+void lv_draw_nema_gfx_vector(lv_draw_task_t * t, const lv_draw_vector_dsc_t * dsc,
+ const lv_area_t * coords)
+{
+ ctx_t c;
+ c.u = (lv_draw_nema_gfx_unit_t *) t->draw_unit;
+
+ lv_layer_t * layer = t->target_layer;
+ lv_area_t rel_clip_area;
+ lv_area_copy(&rel_clip_area, &t->clip_area);
+ lv_area_move(&rel_clip_area, -layer->buf_area.x1, -layer->buf_area.y1);
+
+ c.rel_translate_x = -layer->buf_area.x1;
+ c.rel_translate_y = -layer->buf_area.y1;
+
+ nema_set_clip(rel_clip_area.x1, rel_clip_area.y1, lv_area_get_width(&rel_clip_area),
+ lv_area_get_height(&rel_clip_area));
+
+ lv_color_format_t dst_cf = layer->draw_buf->header.cf;
+ uint32_t dst_nema_cf = lv_nemagfx_cf_to_nema(dst_cf);
+
+ /* the stride should be computed internally for NEMA_TSC images and images missing a stride value */
+ int32_t stride = (dst_cf >= LV_COLOR_FORMAT_NEMA_TSC_START && dst_cf <= LV_COLOR_FORMAT_NEMA_TSC_END) ?
+ -1 : lv_area_get_width(&(layer->buf_area)) * lv_color_format_get_size(dst_cf);
+
+ nema_bind_dst_tex((uintptr_t)NEMA_VIRT2PHYS(layer->draw_buf->data), lv_area_get_width(&(layer->buf_area)),
+ lv_area_get_height(&(layer->buf_area)), dst_nema_cf, stride);
+
+ nema_vg_set_blend(NEMA_BL_SRC_OVER | NEMA_BLOP_SRC_PREMULT);
+
+ lv_vector_for_each_destroy_tasks(dsc->task_list, task_draw_cb, &c);
+}
+
+/**********************
+ * STATIC FUNCTIONS
+ **********************/
+
+static void task_draw_cb(void * ctx, const lv_vector_path_t * path, const lv_vector_path_ctx_t * dsc)
+{
+ ctx_t * c = ctx;
+ lv_draw_nema_gfx_unit_t * u = c->u;
+
+ if(!path) return;
+
+ nema_vg_path_clear(u->path);
+ nema_vg_paint_clear(u->paint);
+
+ nema_vg_paint_set_type(u->paint, NEMA_VG_PAINT_COLOR);
+
+ lv_matrix_t matrix = dsc->matrix;
+ matrix.m[0][2] += c->rel_translate_x;
+ matrix.m[1][2] += c->rel_translate_y;
+ nema_vg_path_set_matrix(c->u->path, (void *) &matrix);
+
+ /* the path ops array needs to be translated to nema's opcodes */
+ lv_vector_path_op_t * ops = lv_array_front(&path->ops);
+ uint32_t op_count = lv_array_size(&path->ops);
+ uint8_t * nema_ops = lv_malloc(op_count * sizeof(*nema_ops));
+ LV_ASSERT_MALLOC(nema_ops);
+ for(uint32_t i = 0; i < op_count; i++) {
+ nema_ops[i] = ops[i] == LV_VECTOR_PATH_OP_MOVE_TO ? NEMA_VG_PRIM_MOVE :
+ ops[i] == LV_VECTOR_PATH_OP_LINE_TO ? NEMA_VG_PRIM_LINE :
+ ops[i] == LV_VECTOR_PATH_OP_QUAD_TO ? NEMA_VG_PRIM_BEZIER_QUAD :
+ ops[i] == LV_VECTOR_PATH_OP_CUBIC_TO ? NEMA_VG_PRIM_BEZIER_CUBIC :
+ /*LV_VECTOR_PATH_OP_CLOSE*/ NEMA_VG_PRIM_CLOSE;
+ }
+
+ /* the path points array is in the right format for nema to use as-is */
+ uint32_t point_count = lv_array_size(&path->points);
+ float * points = lv_array_front(&path->points);
+
+ nema_vg_path_set_shape(u->path, op_count, nema_ops, point_count, points);
+
+ nema_vg_set_quality(path->quality == LV_VECTOR_PATH_QUALITY_LOW ? NEMA_VG_QUALITY_FASTER :
+ path->quality == LV_VECTOR_PATH_QUALITY_MEDIUM ? NEMA_VG_QUALITY_BETTER :
+ /*LV_VECTOR_PATH_QUALITY_HIGH*/ NEMA_VG_QUALITY_MAXIMUM);
+
+ if(dsc->fill_dsc.opa) {
+ nema_vg_set_fill_rule(dsc->fill_dsc.fill_rule == LV_VECTOR_FILL_NONZERO ? NEMA_VG_FILL_NON_ZERO :
+ /*LV_VECTOR_FILL_EVENODD*/ NEMA_VG_FILL_EVEN_ODD);
+
+ uint32_t nema_dsc_color = nema_rgba(dsc->fill_dsc.color.red, dsc->fill_dsc.color.green,
+ dsc->fill_dsc.color.blue, dsc->fill_dsc.color.alpha);
+ nema_vg_paint_set_paint_color(u->paint, nema_dsc_color);
+
+ nema_vg_draw_path(u->path, u->paint);
+ }
+
+ if(dsc->stroke_dsc.opa) {
+ nema_vg_set_fill_rule(NEMA_VG_STROKE);
+ nema_vg_stroke_set_width(dsc->stroke_dsc.width);
+ uint8_t cap = dsc->stroke_dsc.cap == LV_VECTOR_STROKE_CAP_BUTT ? NEMA_VG_CAP_BUTT :
+ dsc->stroke_dsc.cap == LV_VECTOR_STROKE_CAP_SQUARE ? NEMA_VG_CAP_SQUARE :
+ /*LV_VECTOR_STROKE_CAP_ROUND*/ NEMA_VG_CAP_ROUND;
+ nema_vg_stroke_set_cap_style(cap, cap);
+ uint8_t join = dsc->stroke_dsc.join == LV_VECTOR_STROKE_JOIN_MITER ? NEMA_VG_JOIN_MITER :
+ dsc->stroke_dsc.join == LV_VECTOR_STROKE_JOIN_BEVEL ? NEMA_VG_JOIN_BEVEL :
+ /*LV_VECTOR_STROKE_JOIN_ROUND*/ NEMA_VG_JOIN_ROUND;
+ nema_vg_stroke_set_join_style(join);
+ nema_vg_stroke_set_miter_limit(dsc->stroke_dsc.miter_limit);
+
+ uint32_t nema_dsc_color = nema_rgba(dsc->stroke_dsc.color.red, dsc->stroke_dsc.color.green,
+ dsc->stroke_dsc.color.blue, dsc->stroke_dsc.color.alpha);
+ nema_vg_paint_set_paint_color(u->paint, nema_dsc_color);
+
+ nema_vg_draw_path(u->path, u->paint);
+ }
+
+ nema_cl_submit(&c->u->cl);
+ nema_cl_wait(&u->cl);
+
+ lv_free(nema_ops);
+}
+
+#endif /*LV_USE_NEMA_GFX && LV_USE_VECTOR_GRAPHIC && LV_USE_NEMA_VG*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nxp/g2d/lv_draw_buf_g2d.c b/lib/libesp32_lvgl/lvgl/src/draw/nxp/g2d/lv_draw_buf_g2d.c
index 8653ea529..e729e9b08 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/nxp/g2d/lv_draw_buf_g2d.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/nxp/g2d/lv_draw_buf_g2d.c
@@ -15,7 +15,8 @@
#include "lv_draw_g2d.h"
-#if LV_USE_DRAW_G2D
+#if LV_USE_G2D
+#if LV_USE_DRAW_G2D || LV_USE_ROTATE_G2D
#include "../../lv_draw_buf_private.h"
#include "g2d.h"
#include "lv_g2d_buf_map.h"
@@ -89,4 +90,5 @@ static void _invalidate_cache(const lv_draw_buf_t * draw_buf, const lv_area_t *
g2d_cache_op(buf, G2D_CACHE_FLUSH);
}
-#endif /*LV_USE_DRAW_G2D*/
+#endif /*LV_USE_DRAW_G2D || LV_USE_ROTATE_G2D*/
+#endif /*LV_USE_G2D*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nxp/g2d/lv_draw_g2d.c b/lib/libesp32_lvgl/lvgl/src/draw/nxp/g2d/lv_draw_g2d.c
index 42c6e40ec..0b670c8ab 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/nxp/g2d/lv_draw_g2d.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/nxp/g2d/lv_draw_g2d.c
@@ -11,10 +11,11 @@
#include "lv_draw_g2d.h"
-#if LV_USE_DRAW_G2D
+#if LV_USE_G2D
#include "../../../misc/lv_area_private.h"
#include "g2d.h"
#include "lv_g2d_buf_map.h"
+#include "lv_g2d_utils.h"
/*********************
* DEFINES
@@ -22,6 +23,15 @@
#define DRAW_UNIT_ID_G2D 8
+/**
+ * Enum name differs depending on g2d version (breaking API change, not handled in g2d.h)
+ * Note: enum value is the same in either case
+ * See https://github.com/nxp-imx/imx-g2d-pxp/commit/d7af84b5c8ad161b6898ffabe23918cb59fe2fe9
+ */
+#if (G2D_VERSION_MAJOR >= 2) && (G2D_VERSION_MINOR < 3)
+ #define G2D_HARDWARE_PXP_V1 G2D_HARDWARE_PXP
+#endif
+
/**********************
* TYPEDEFS
**********************/
@@ -57,6 +67,8 @@ static void _g2d_execute_drawing(lv_draw_task_t * t);
* STATIC VARIABLES
**********************/
+static int32_t is_hw_pxp = 0;
+
/**********************
* MACROS
**********************/
@@ -68,16 +80,13 @@ static void _g2d_execute_drawing(lv_draw_task_t * t);
void lv_draw_g2d_init(void)
{
lv_draw_buf_g2d_init_handlers();
-
+#if LV_USE_DRAW_G2D
lv_draw_g2d_unit_t * draw_g2d_unit = lv_draw_create_unit(sizeof(lv_draw_g2d_unit_t));
draw_g2d_unit->base_unit.evaluate_cb = _g2d_evaluate;
draw_g2d_unit->base_unit.dispatch_cb = _g2d_dispatch;
draw_g2d_unit->base_unit.delete_cb = _g2d_delete;
draw_g2d_unit->base_unit.name = "G2D";
- g2d_create_buf_map();
- if(g2d_open(&draw_g2d_unit->g2d_handle)) {
- LV_LOG_ERROR("g2d_open fail.\n");
- }
+
#if LV_USE_G2D_DRAW_THREAD
lv_draw_sw_thread_dsc_t * thread_dsc = &draw_g2d_unit->thread_dsc;
thread_dsc->idx = 0;
@@ -85,6 +94,12 @@ void lv_draw_g2d_init(void)
lv_thread_init(&thread_dsc->thread, "g2ddraw", LV_DRAW_THREAD_PRIO, _g2d_render_thread_cb, LV_DRAW_THREAD_STACK_SIZE,
thread_dsc);
#endif
+#endif
+ g2d_create_buf_map();
+ void * handle;
+ LV_ASSERT_MSG(!g2d_open(&handle), "Cannot open G2D handle\r\n");
+ g2d_query_hardware(handle, G2D_HARDWARE_PXP_V1, &is_hw_pxp);
+ g2d_set_handle(handle);
}
void lv_draw_g2d_deinit(void)
@@ -95,7 +110,7 @@ void lv_draw_g2d_deinit(void)
/**********************
* STATIC FUNCTIONS
**********************/
-
+#if LV_USE_DRAW_G2D
static inline bool _g2d_dest_cf_supported(lv_color_format_t cf)
{
bool is_cf_supported = false;
@@ -105,6 +120,12 @@ static inline bool _g2d_dest_cf_supported(lv_color_format_t cf)
case LV_COLOR_FORMAT_XRGB8888:
is_cf_supported = true;
break;
+ case LV_COLOR_FORMAT_RGB565: {
+ if(!is_hw_pxp) {
+ is_cf_supported = true;
+ }
+ }
+ break;
default:
break;
}
@@ -112,7 +133,7 @@ static inline bool _g2d_dest_cf_supported(lv_color_format_t cf)
return is_cf_supported;
}
-static inline bool _g2d_src_cf_supported(lv_draw_unit_t * drawunit, lv_color_format_t cf)
+static inline bool _g2d_src_cf_supported(lv_color_format_t cf)
{
bool is_cf_supported = false;
@@ -122,10 +143,7 @@ static inline bool _g2d_src_cf_supported(lv_draw_unit_t * drawunit, lv_color_for
is_cf_supported = true;
break;
case LV_COLOR_FORMAT_RGB565: {
- int32_t hw_pxp = 0;
- lv_draw_g2d_unit_t * u = (lv_draw_g2d_unit_t *)drawunit;
- g2d_query_hardware(u->g2d_handle, G2D_HARDWARE_PXP, &hw_pxp);
- if(!hw_pxp) {
+ if(!is_hw_pxp) {
is_cf_supported = true;
}
}
@@ -139,16 +157,13 @@ static inline bool _g2d_src_cf_supported(lv_draw_unit_t * drawunit, lv_color_for
static bool _g2d_draw_img_supported(const lv_draw_image_dsc_t * draw_dsc)
{
- bool is_tiled = draw_dsc->tile;
- /* Tiled image (repeat image) is currently not supported. */
- if(is_tiled)
+ bool has_recolor = (draw_dsc->recolor_opa > LV_OPA_MIN);
+ /* Recolor is not supported. */
+ if(has_recolor)
return false;
- bool has_recolor = (draw_dsc->recolor_opa > LV_OPA_MIN);
- bool has_rotation = (draw_dsc->rotation != 0);
-
- /* Recolor or rotation are not supported. */
- if(has_recolor || has_rotation)
+ /* G2D can only rotate at 90x angles. */
+ if(draw_dsc->rotation % 900)
return false;
return true;
@@ -184,7 +199,7 @@ static int32_t _g2d_evaluate(lv_draw_unit_t * u, lv_draw_task_t * t)
case LV_DRAW_TASK_TYPE_IMAGE: {
const lv_draw_image_dsc_t * draw_dsc = (lv_draw_image_dsc_t *) t->draw_dsc;
- if(!_g2d_src_cf_supported(u, draw_dsc->header.cf))
+ if(!_g2d_src_cf_supported(draw_dsc->header.cf))
return 0;
if(!_g2d_draw_img_supported(draw_dsc))
@@ -243,7 +258,7 @@ static int32_t _g2d_dispatch(lv_draw_unit_t * draw_unit, lv_layer_t * layer)
_g2d_execute_drawing(t);
- draw_g2d_unit->task_act->state = LV_DRAW_TASK_STATE_READY;
+ draw_g2d_unit->task_act->state = LV_DRAW_TASK_STATE_FINISHED;
draw_g2d_unit->task_act = NULL;
/* The draw unit is free now. Request a new dispatching as it can get a new task. */
@@ -255,10 +270,12 @@ static int32_t _g2d_dispatch(lv_draw_unit_t * draw_unit, lv_layer_t * layer)
static int32_t _g2d_delete(lv_draw_unit_t * draw_unit)
{
- lv_draw_g2d_unit_t * draw_g2d_unit = (lv_draw_g2d_unit_t *) draw_unit;
lv_result_t res = LV_RESULT_OK;
-#if LV_USE_G2D_DRAW_THREAD
+#if !LV_USE_G2D_DRAW_THREAD
+ LV_UNUSED(draw_unit);
+#else
+ lv_draw_g2d_unit_t * draw_g2d_unit = (lv_draw_g2d_unit_t *) draw_unit;
lv_draw_sw_thread_dsc_t * thread_dsc = &draw_g2d_unit->thread_dsc;
LV_LOG_INFO("Cancel G2D draw thread.");
thread_dsc->exit_status = true;
@@ -268,7 +285,7 @@ static int32_t _g2d_delete(lv_draw_unit_t * draw_unit)
res = lv_thread_delete(&thread_dsc->thread);
#endif
- g2d_close(draw_g2d_unit->g2d_handle);
+ g2d_close(g2d_get_handle());
return res;
}
@@ -318,7 +335,7 @@ static void _g2d_render_thread_cb(void * ptr)
_g2d_execute_drawing(thread_dsc->task_act);
/* Signal the ready state to dispatcher. */
- thread_dsc->task_act->state = LV_DRAW_TASK_STATE_READY;
+ thread_dsc->task_act->state = LV_DRAW_TASK_STATE_FINISHED;
/* Cleanup. */
thread_dsc->task_act = NULL;
@@ -333,4 +350,5 @@ static void _g2d_render_thread_cb(void * ptr)
}
#endif
-#endif /*LV_USE_DRAW_G2D*/
+#endif /*LV_USE_DRAW_G2D || LV_USE_ROTATE_G2D*/
+#endif /*LV_USE_G2D*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nxp/g2d/lv_draw_g2d.h b/lib/libesp32_lvgl/lvgl/src/draw/nxp/g2d/lv_draw_g2d.h
index 061aa3c31..59d9a62c5 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/nxp/g2d/lv_draw_g2d.h
+++ b/lib/libesp32_lvgl/lvgl/src/draw/nxp/g2d/lv_draw_g2d.h
@@ -22,7 +22,8 @@ extern "C" {
#include "../../../lv_conf_internal.h"
-#if LV_USE_DRAW_G2D
+#if LV_USE_G2D
+#if LV_USE_DRAW_G2D || LV_USE_ROTATE_G2D
#include "../../sw/lv_draw_sw_private.h"
/*********************
@@ -40,8 +41,6 @@ typedef struct lv_draw_g2d_unit {
#else
lv_draw_task_t * task_act;
#endif
-
- void * g2d_handle;
} lv_draw_g2d_unit_t;
/**********************
@@ -62,7 +61,8 @@ void lv_draw_g2d_img(lv_draw_task_t * t);
* MACROS
**********************/
-#endif /*LV_USE_DRAW_G2D*/
+#endif /*LV_USE_DRAW_G2D || LV_USE_ROTATE_G2D*/
+#endif /*LV_USE_G2D*/
#ifdef __cplusplus
} /*extern "C"*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nxp/g2d/lv_draw_g2d_fill.c b/lib/libesp32_lvgl/lvgl/src/draw/nxp/g2d/lv_draw_g2d_fill.c
index 5863e4d6c..73dda3fc6 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/nxp/g2d/lv_draw_g2d_fill.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/nxp/g2d/lv_draw_g2d_fill.c
@@ -15,6 +15,7 @@
#include "lv_draw_g2d.h"
+#if LV_USE_G2D
#if LV_USE_DRAW_G2D
#include
#include "g2d.h"
@@ -35,14 +36,14 @@
**********************/
/* Blit simple w/ opa and alpha channel */
-static void _g2d_fill(void * g2d_handle, struct g2d_surface * dst_surf);
-static void _g2d_fill_with_opa(void * g2d_handle, struct g2d_surface * dst_surf, struct g2d_surface * src_surf);
+static void _g2d_fill(void * handle, struct g2d_surface * dst_surf);
+static void _g2d_fill_with_opa(void * handle, struct g2d_surface * dst_surf, struct g2d_surface * src_surf);
static void _g2d_set_src_surf(struct g2d_surface * src_surf, struct g2d_buf * buf, const lv_area_t * area,
- lv_color_t color, lv_opa_t opa);
+ lv_color_t color, lv_opa_t opa, lv_color_format_t cf);
static void _g2d_set_dst_surf(struct g2d_surface * dst_surf, struct g2d_buf * buf, const lv_area_t * area,
- int32_t stride, lv_color_t color);
+ int32_t stride, lv_color_t color, lv_color_format_t cf);
/**********************
* STATIC VARIABLES
@@ -63,7 +64,6 @@ void lv_draw_g2d_fill(lv_draw_task_t * t)
if(dsc->opa <= (lv_opa_t)LV_OPA_MIN)
return;
- lv_draw_g2d_unit_t * u = (lv_draw_g2d_unit_t *)t->draw_unit;
lv_layer_t * layer = t->target_layer;
lv_draw_buf_t * draw_buf = layer->draw_buf;
lv_area_t * coords = &t->area;
@@ -88,19 +88,21 @@ void lv_draw_g2d_fill(lv_draw_task_t * t)
bool has_opa = (dsc->opa < (lv_opa_t)LV_OPA_MAX);
struct g2d_surface dst_surf;
- _g2d_set_dst_surf(&dst_surf, dst_buf, &blend_area, stride, dsc->color);
+ _g2d_set_dst_surf(&dst_surf, dst_buf, &blend_area, stride, dsc->color, draw_buf->header.cf);
+
+ void * handle = g2d_get_handle();
if(has_opa) {
- struct g2d_buf * tmp_buf = g2d_alloc(lv_area_get_width(&blend_area) * lv_area_get_height(&blend_area) * sizeof(
- lv_color32_t), 1);
+ struct g2d_buf * tmp_buf = g2d_alloc(lv_area_get_width(&blend_area) * lv_area_get_height(
+ &blend_area) * lv_color_format_get_size(draw_buf->header.cf), 1);
G2D_ASSERT_MSG(tmp_buf, "Failed to alloc temporary buffer.");
struct g2d_surface src_surf;
- _g2d_set_src_surf(&src_surf, tmp_buf, &blend_area, dsc->color, dsc->opa);
- _g2d_fill_with_opa(u->g2d_handle, &dst_surf, &src_surf);
+ _g2d_set_src_surf(&src_surf, tmp_buf, &blend_area, dsc->color, dsc->opa, draw_buf->header.cf);
+ _g2d_fill_with_opa(handle, &dst_surf, &src_surf);
g2d_free(tmp_buf);
}
else {
- _g2d_fill(u->g2d_handle, &dst_surf);
+ _g2d_fill(handle, &dst_surf);
}
}
@@ -109,12 +111,12 @@ void lv_draw_g2d_fill(lv_draw_task_t * t)
**********************/
static void _g2d_set_src_surf(struct g2d_surface * src_surf, struct g2d_buf * buf, const lv_area_t * area,
- lv_color_t color, lv_opa_t opa)
+ lv_color_t color, lv_opa_t opa, lv_color_format_t cf)
{
int32_t width = lv_area_get_width(area);
int32_t height = lv_area_get_height(area);
- src_surf->format = G2D_RGBA8888;
+ src_surf->format = g2d_get_buf_format(cf);
src_surf->left = 0;
src_surf->top = 0;
@@ -133,12 +135,12 @@ static void _g2d_set_src_surf(struct g2d_surface * src_surf, struct g2d_buf * bu
}
static void _g2d_set_dst_surf(struct g2d_surface * dst_surf, struct g2d_buf * buf, const lv_area_t * area,
- int32_t stride, lv_color_t color)
+ int32_t stride, lv_color_t color, lv_color_format_t cf)
{
int32_t width = lv_area_get_width(area);
int32_t height = lv_area_get_height(area);
- dst_surf->format = G2D_RGBA8888;
+ dst_surf->format = g2d_get_buf_format(cf);
dst_surf->left = area->x1;
dst_surf->top = area->y1;
@@ -156,23 +158,24 @@ static void _g2d_set_dst_surf(struct g2d_surface * dst_surf, struct g2d_buf * bu
dst_surf->blendfunc = G2D_ONE_MINUS_SRC_ALPHA | G2D_PRE_MULTIPLIED_ALPHA;
}
-static void _g2d_fill_with_opa(void * g2d_handle, struct g2d_surface * dst_surf, struct g2d_surface * src_surf)
+static void _g2d_fill_with_opa(void * handle, struct g2d_surface * dst_surf, struct g2d_surface * src_surf)
{
- g2d_clear(g2d_handle, src_surf);
+ g2d_clear(handle, src_surf);
- g2d_enable(g2d_handle, G2D_BLEND);
- g2d_enable(g2d_handle, G2D_GLOBAL_ALPHA);
- g2d_blit(g2d_handle, src_surf, dst_surf);
- g2d_finish(g2d_handle);
- g2d_disable(g2d_handle, G2D_GLOBAL_ALPHA);
- g2d_disable(g2d_handle, G2D_BLEND);
+ g2d_enable(handle, G2D_BLEND);
+ g2d_enable(handle, G2D_GLOBAL_ALPHA);
+ g2d_blit(handle, src_surf, dst_surf);
+ g2d_finish(handle);
+ g2d_disable(handle, G2D_GLOBAL_ALPHA);
+ g2d_disable(handle, G2D_BLEND);
}
-static void _g2d_fill(void * g2d_handle, struct g2d_surface * dst_surf)
+static void _g2d_fill(void * handle, struct g2d_surface * dst_surf)
{
- g2d_clear(g2d_handle, dst_surf);
+ g2d_clear(handle, dst_surf);
- g2d_finish(g2d_handle);
+ g2d_finish(handle);
}
-#endif /*LV_USE_DRAW_G2D*/
\ No newline at end of file
+#endif /*LV_USE_DRAW_G2D*/
+#endif /*LV_USE_G2D*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nxp/g2d/lv_draw_g2d_img.c b/lib/libesp32_lvgl/lvgl/src/draw/nxp/g2d/lv_draw_g2d_img.c
index 3b7093484..2e7d6bea4 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/nxp/g2d/lv_draw_g2d_img.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/nxp/g2d/lv_draw_g2d_img.c
@@ -15,11 +15,13 @@
#include "lv_draw_g2d.h"
+#if LV_USE_G2D
#if LV_USE_DRAW_G2D
-#include
#include
#include "g2d.h"
#include "../../../misc/lv_area_private.h"
+#include "../../lv_draw_image_private.h"
+#include "../../lv_image_decoder_private.h"
#include "lv_g2d_utils.h"
#include "lv_g2d_buf_map.h"
@@ -35,16 +37,26 @@
* STATIC PROTOTYPES
**********************/
-static struct g2d_buf * _g2d_handle_src_buf(const lv_image_dsc_t * data);
+static void _g2d_draw_core_cb(lv_draw_task_t * t, const lv_draw_image_dsc_t * draw_dsc,
+ const lv_image_decoder_dsc_t * decoder_dsc, lv_draw_image_sup_t * sup, const lv_area_t * img_coords,
+ const lv_area_t * clipped_img_area);
+
+static struct g2d_buf * _g2d_handle_src_buf(const lv_draw_buf_t * data);
static void _g2d_set_src_surf(struct g2d_surface * src_surf, struct g2d_buf * buf, const lv_area_t * area,
- int32_t stride, lv_color_format_t cf, lv_opa_t opa);
-
-static void _g2d_set_dst_surf(struct g2d_surface * dst_surf, struct g2d_buf * buf, const lv_area_t * area,
int32_t stride, lv_color_format_t cf, const lv_draw_image_dsc_t * dsc);
+static void _g2d_set_tmp_surf(struct g2d_surface * tmp_surf, struct g2d_buf * buf, const lv_area_t * area,
+ lv_color_format_t cf);
+
+static void _g2d_set_dst_surf(struct g2d_surface * dst_surf, struct g2d_buf * buf, const lv_area_t * area,
+ lv_draw_buf_t * draw_buf);
+
/* Blit simple w/ opa and alpha channel */
-static void _g2d_blit(void * g2d_handle, struct g2d_surface * dst_surf, struct g2d_surface * src_surf);
+static void _g2d_blit(void * handle, struct g2d_surface * dst_surf, struct g2d_surface * src_surf);
+
+static void _g2d_blit_two_steps(void * handle, struct g2d_surface * dst_surf, struct g2d_surface * src_surf,
+ struct g2d_surface * tmp_surf);
/**********************
* STATIC VARIABLES
@@ -65,59 +77,89 @@ void lv_draw_g2d_img(lv_draw_task_t * t)
if(dsc->opa <= (lv_opa_t)LV_OPA_MIN)
return;
- lv_draw_g2d_unit_t * u = (lv_draw_g2d_unit_t *)t->draw_unit;
- lv_layer_t * layer = t->target_layer;
- lv_draw_buf_t * draw_buf = layer->draw_buf;
- const lv_image_dsc_t * img_dsc = dsc->src;
lv_area_t * coords = &t->area;
- lv_area_t rel_coords;
- lv_area_copy(&rel_coords, coords);
- lv_area_move(&rel_coords, -layer->buf_area.x1, -layer->buf_area.y1);
+ bool is_tiled = (dsc->tile != 0);
- lv_area_t clip_area;
- lv_area_copy(&clip_area, &t->clip_area);
- lv_area_move(&clip_area, -layer->buf_area.x1, -layer->buf_area.y1);
-
- lv_area_t blend_area;
- bool has_transform = (dsc->rotation != 0 || dsc->scale_x != LV_SCALE_NONE || dsc->scale_y != LV_SCALE_NONE);
- if(has_transform)
- lv_area_copy(&blend_area, &rel_coords);
- else if(!lv_area_intersect(&blend_area, &rel_coords, &clip_area))
- return; /*Fully clipped, nothing to do*/
-
- lv_area_t src_area;
- src_area.x1 = blend_area.x1 - (coords->x1 - layer->buf_area.x1);
- src_area.y1 = blend_area.y1 - (coords->y1 - layer->buf_area.y1);
- src_area.x2 = src_area.x1 + lv_area_get_width(&blend_area);
- src_area.y2 = src_area.y1 + lv_area_get_height(&blend_area);
- int32_t src_stride = img_dsc->header.stride / (lv_color_format_get_bpp(img_dsc->header.cf) / 8);
- lv_color_format_t src_cf = img_dsc->header.cf;
-
- /* Source image */
- struct g2d_buf * src_buf = _g2d_handle_src_buf(img_dsc);
-
- /* Destination buffer */
- struct g2d_buf * dst_buf = g2d_search_buf_map(draw_buf->data);
-
- /* G2D takes stride in pixels. */
- int32_t dest_stride = draw_buf->header.stride / (lv_color_format_get_bpp(draw_buf->header.cf) / 8);
- lv_color_format_t dest_cf = draw_buf->header.cf;
-
- struct g2d_surface src_surf;
- struct g2d_surface dst_surf;
-
- _g2d_set_src_surf(&src_surf, src_buf, &src_area, src_stride, src_cf, dsc->opa);
- _g2d_set_dst_surf(&dst_surf, dst_buf, &blend_area, dest_stride, dest_cf, dsc);
-
- _g2d_blit(u->g2d_handle, &dst_surf, &src_surf);
+ if(is_tiled)
+ lv_draw_image_tiled_helper(t, dsc, coords, _g2d_draw_core_cb);
+ else
+ lv_draw_image_normal_helper(t, dsc, coords, _g2d_draw_core_cb);
}
/**********************
* STATIC FUNCTIONS
**********************/
-static struct g2d_buf * _g2d_handle_src_buf(const lv_image_dsc_t * img_dsc)
+static void _g2d_draw_core_cb(lv_draw_task_t * t, const lv_draw_image_dsc_t * draw_dsc,
+ const lv_image_decoder_dsc_t * decoder_dsc, lv_draw_image_sup_t * sup, const lv_area_t * img_coords,
+ const lv_area_t * clipped_img_area)
+{
+ LV_UNUSED(sup);
+ lv_draw_buf_t * draw_buf = t->target_layer->draw_buf;
+
+ const lv_draw_buf_t * decoded = decoder_dsc->decoded;
+
+ lv_area_t rel_clip_area;
+ lv_area_copy(&rel_clip_area, clipped_img_area);
+ lv_area_move(&rel_clip_area, -img_coords->x1, -img_coords->y1);
+
+ lv_area_t rel_img_coords;
+ lv_area_copy(&rel_img_coords, img_coords);
+ lv_area_move(&rel_img_coords, -img_coords->x1, -img_coords->y1);
+
+ lv_area_t src_area;
+ if(!lv_area_intersect(&src_area, &rel_clip_area, &rel_img_coords))
+ return;
+
+ lv_color_format_t src_cf = draw_dsc->header.cf;
+
+ /* G2D takes stride in pixels. */
+ const uint8_t pixel_size = lv_color_format_get_size(src_cf);
+
+ uint32_t src_stride = draw_dsc->header.stride == 0 ?
+ lv_color_format_get_size(draw_dsc->header.cf) * draw_dsc->header.w :
+ draw_dsc->header.stride;
+ LV_ASSERT(pixel_size != 0);
+ src_stride /= pixel_size;
+
+ /* Source image */
+ struct g2d_buf * src_buf = _g2d_handle_src_buf(decoded);
+
+ /* Destination buffer */
+ struct g2d_buf * dst_buf = g2d_search_buf_map(draw_buf->data);
+
+
+ void * handle = g2d_get_handle();
+
+ struct g2d_surface src_surf;
+ struct g2d_surface dst_surf;
+
+ _g2d_set_src_surf(&src_surf, src_buf, &src_area, src_stride, src_cf, draw_dsc);
+ _g2d_set_dst_surf(&dst_surf, dst_buf, clipped_img_area, draw_buf);
+
+ bool has_rotation = (draw_dsc->rotation != 0);
+
+ if(has_rotation) {
+ /** If the image has rotation, then blit in two steps:
+ * 1. Source with rotation to temporary surface.
+ * 2. Temporary with other transformations (if any) to destination (frame buffer).
+ */
+ struct g2d_buf * tmp_buf = g2d_alloc(lv_area_get_width(&src_area) * lv_area_get_height(
+ &src_area) * lv_color_format_get_size(src_cf), 1);
+ G2D_ASSERT_MSG(tmp_buf, "Failed to alloc temporary buffer.");
+ struct g2d_surface tmp_surf;
+ _g2d_set_tmp_surf(&tmp_surf, tmp_buf, &src_area, src_cf);
+ _g2d_blit_two_steps(handle, &dst_surf, &src_surf, &tmp_surf);
+ g2d_free(tmp_buf);
+ }
+ else {
+ // If rotation is not involved, blit in one step.
+ _g2d_blit(handle, &dst_surf, &src_surf);
+ }
+}
+
+static struct g2d_buf * _g2d_handle_src_buf(const lv_draw_buf_t * img_dsc)
{
struct g2d_buf * src_buf = g2d_search_buf_map((void *)img_dsc->data);
@@ -133,66 +175,95 @@ static struct g2d_buf * _g2d_handle_src_buf(const lv_image_dsc_t * img_dsc)
}
static void _g2d_set_src_surf(struct g2d_surface * src_surf, struct g2d_buf * buf, const lv_area_t * area,
- int32_t stride, lv_color_format_t cf, lv_opa_t opa)
+ int32_t stride, lv_color_format_t cf, const lv_draw_image_dsc_t * dsc)
{
src_surf->format = g2d_get_buf_format(cf);
+ int32_t src_w = lv_area_get_width(area);
+ int32_t src_h = lv_area_get_height(area);
+
+ bool has_rotation = (dsc->rotation != 0);
+ enum g2d_rotation g2d_angle = G2D_ROTATION_0;
+
+ if(has_rotation) {
+ switch(dsc->rotation) {
+ case 0:
+ g2d_angle = G2D_ROTATION_0;
+ break;
+ case 900:
+ g2d_angle = G2D_ROTATION_270;
+ break;
+ case 1800:
+ g2d_angle = G2D_ROTATION_180;
+ break;
+ case 2700:
+ g2d_angle = G2D_ROTATION_90;
+ break;
+ default:
+ g2d_angle = G2D_ROTATION_0;
+ }
+ }
+
src_surf->left = area->x1;
src_surf->top = area->y1;
- src_surf->right = area->x2;
- src_surf->bottom = area->y2;
+ src_surf->right = area->x1 + src_w;
+ src_surf->bottom = area->y1 + src_h;
src_surf->stride = stride;
- src_surf->width = area->x2 - area->x1;
- src_surf->height = area->y2 - area->y1;
+ src_surf->width = src_w;
+ src_surf->height = src_h;
src_surf->planes[0] = buf->buf_paddr;
- src_surf->rot = G2D_ROTATION_0;
+ src_surf->rot = g2d_angle;
src_surf->clrcolor = g2d_rgba_to_u32(lv_color_black());
- src_surf->global_alpha = opa;
+ src_surf->global_alpha = dsc->opa;
src_surf->blendfunc = G2D_ONE | G2D_PRE_MULTIPLIED_ALPHA;
}
-static void _g2d_set_dst_surf(struct g2d_surface * dst_surf, struct g2d_buf * buf, const lv_area_t * area,
- int32_t stride, lv_color_format_t cf, const lv_draw_image_dsc_t * dsc)
+static void _g2d_set_tmp_surf(struct g2d_surface * tmp_surf, struct g2d_buf * buf, const lv_area_t * area,
+ lv_color_format_t cf)
{
- int32_t width = lv_area_get_width(area);
- int32_t height = lv_area_get_height(area);
+ tmp_surf->format = g2d_get_buf_format(cf);
- lv_point_t pivot = dsc->pivot;
- /*The offsets are now relative to the transformation result with pivot ULC*/
- int32_t piv_offset_x = 0;
- int32_t piv_offset_y = 0;
- int32_t trim_x = 0;
- int32_t trim_y = 0;
- int32_t dest_w;
- int32_t dest_h;
+ int32_t dest_w = lv_area_get_width(area);
+ int32_t dest_h = lv_area_get_height(area);
- float fp_scale_x = (float)dsc->scale_x / LV_SCALE_NONE;
- float fp_scale_y = (float)dsc->scale_y / LV_SCALE_NONE;
- int32_t int_scale_x = (int32_t)fp_scale_x;
- int32_t int_scale_y = (int32_t)fp_scale_y;
+ tmp_surf->left = area->x1;
+ tmp_surf->top = area->y1;
+ tmp_surf->right = area->x1 + dest_w;
+ tmp_surf->bottom = area->y1 + dest_h;
+ tmp_surf->stride = dest_w;
+ tmp_surf->width = dest_w;
+ tmp_surf->height = dest_h;
- /*Any scale_factor in (k, k + 1] will result in a trim equal to k*/
- trim_x = (fp_scale_x == int_scale_x) ? int_scale_x - 1 : int_scale_x;
- trim_y = (fp_scale_y == int_scale_y) ? int_scale_y - 1 : int_scale_y;
+ tmp_surf->planes[0] = buf->buf_paddr;
+ tmp_surf->rot = G2D_ROTATION_0;
- dest_w = width * fp_scale_x + trim_x;
- dest_h = height * fp_scale_y + trim_y;
+ tmp_surf->clrcolor = g2d_rgba_to_u32(lv_color_black());
+ tmp_surf->global_alpha = 0x00;
+ tmp_surf->blendfunc = G2D_ONE_MINUS_SRC_ALPHA | G2D_PRE_MULTIPLIED_ALPHA;
+}
- /*Final pivot offset = scale_factor * rotation_pivot_offset + scaling_pivot_offset*/
- piv_offset_x = floor(fp_scale_x * piv_offset_x) - floor((fp_scale_x - 1) * pivot.x);
- piv_offset_y = floor(fp_scale_y * piv_offset_y) - floor((fp_scale_y - 1) * pivot.y);
+static void _g2d_set_dst_surf(struct g2d_surface * dst_surf, struct g2d_buf * buf, const lv_area_t * area,
+ lv_draw_buf_t * draw_buf)
+{
+ int32_t stride = draw_buf->header.stride / (lv_color_format_get_bpp(draw_buf->header.cf) / 8);
+ lv_color_format_t cf = draw_buf->header.cf;
+ uint32_t width = draw_buf->header.w;
+ uint32_t height = draw_buf->header.h;
+
+ int32_t blend_w = lv_area_get_width(area);
+ int32_t blend_h = lv_area_get_height(area);
dst_surf->format = g2d_get_buf_format(cf);
- dst_surf->left = area->x1 + piv_offset_x;
- dst_surf->top = area->y1 + piv_offset_y;
- dst_surf->right = area->x1 + piv_offset_x + dest_w - trim_x;
- dst_surf->bottom = area->y1 + piv_offset_y + dest_h - trim_y;
+ dst_surf->left = area->x1;
+ dst_surf->top = area->y1;
+ dst_surf->right = area->x1 + blend_w;
+ dst_surf->bottom = area->y1 + blend_h;
dst_surf->stride = stride;
- dst_surf->width = dest_w - trim_x;
- dst_surf->height = dest_h - trim_y;
+ dst_surf->width = width;
+ dst_surf->height = height;
dst_surf->planes[0] = buf->buf_paddr;
dst_surf->rot = G2D_ROTATION_0;
@@ -202,13 +273,40 @@ static void _g2d_set_dst_surf(struct g2d_surface * dst_surf, struct g2d_buf * bu
dst_surf->blendfunc = G2D_ONE_MINUS_SRC_ALPHA | G2D_PRE_MULTIPLIED_ALPHA;
}
-static void _g2d_blit(void * g2d_handle, struct g2d_surface * dst_surf, struct g2d_surface * src_surf)
+static void _g2d_blit(void * handle, struct g2d_surface * dst_surf, struct g2d_surface * src_surf)
{
- g2d_enable(g2d_handle, G2D_BLEND);
- g2d_enable(g2d_handle, G2D_GLOBAL_ALPHA);
- g2d_blit(g2d_handle, src_surf, dst_surf);
- g2d_finish(g2d_handle);
- g2d_disable(g2d_handle, G2D_GLOBAL_ALPHA);
- g2d_disable(g2d_handle, G2D_BLEND);
+ g2d_enable(handle, G2D_BLEND);
+ g2d_enable(handle, G2D_GLOBAL_ALPHA);
+ g2d_blit(handle, src_surf, dst_surf);
+ g2d_finish(handle);
+ g2d_disable(handle, G2D_GLOBAL_ALPHA);
+ g2d_disable(handle, G2D_BLEND);
}
-#endif /*LV_USE_DRAW_G2D*/
\ No newline at end of file
+
+static void _g2d_blit_two_steps(void * handle, struct g2d_surface * dst_surf, struct g2d_surface * src_surf,
+ struct g2d_surface * tmp_surf)
+{
+ g2d_clear(handle, tmp_surf);
+
+ g2d_enable(handle, G2D_BLEND);
+ g2d_enable(handle, G2D_GLOBAL_ALPHA);
+ g2d_blit(handle, src_surf, tmp_surf);
+ g2d_finish(handle);
+ g2d_disable(handle, G2D_GLOBAL_ALPHA);
+ g2d_disable(handle, G2D_BLEND);
+
+ /**After first blit, change blending and global alpha for temporary surface
+ * since the surface now acts as source.
+ */
+ tmp_surf->blendfunc = G2D_ONE | G2D_PRE_MULTIPLIED_ALPHA;
+ tmp_surf->global_alpha = 0xFF;
+
+ g2d_enable(handle, G2D_BLEND);
+ g2d_enable(handle, G2D_GLOBAL_ALPHA);
+ g2d_blit(handle, tmp_surf, dst_surf);
+ g2d_finish(handle);
+ g2d_disable(handle, G2D_GLOBAL_ALPHA);
+ g2d_disable(handle, G2D_BLEND);
+}
+#endif /*LV_USE_DRAW_G2D*/
+#endif /*LV_USE_G2D*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nxp/g2d/lv_g2d_buf_map.c b/lib/libesp32_lvgl/lvgl/src/draw/nxp/g2d/lv_g2d_buf_map.c
index 00de516f6..9a26a718b 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/nxp/g2d/lv_g2d_buf_map.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/nxp/g2d/lv_g2d_buf_map.c
@@ -11,7 +11,8 @@
#include "lv_g2d_buf_map.h"
-#if LV_USE_DRAW_G2D
+#if LV_USE_G2D
+#if LV_USE_DRAW_G2D || LV_USE_ROTATE_G2D
#include
#include "lv_g2d_utils.h"
#include "g2d.h"
@@ -36,6 +37,8 @@ static void _map_free_item(lv_map_item_t * item);
static void _handle_collision(unsigned long index, lv_map_item_t * item);
+static void _map_free_list(unsigned long index, lv_array_t * list);
+
/**********************
* STATIC VARIABLES
**********************/
@@ -82,14 +85,18 @@ void g2d_insert_buf_map(void * key, struct g2d_buf * value)
lv_map_item_t * item = _map_create_item(key, value);
int index = _map_hash_function(key);
+ if(table->count == table->size) {
+ /* Table is full. */
+ _map_free_item(item);
+ G2D_ASSERT_MSG(false, "Hash table is full. Increase LV_G2D_HASH_TABLE_SIZE.");
+ return;
+ }
+
if(table->items[index] == NULL) {
- /* Key not found. */
- if(table->count == table->size) {
- /* Table is full. */
- _map_free_item(item);
- G2D_ASSERT_MSG(false, "Hash table is full.");
- return;
- }
+ /* Key not found. Insert item. */
+ table->items[index] = item;
+ table->count++;
+ return;
}
else {
if(table->items[index]->key == key) {
@@ -104,9 +111,6 @@ void g2d_insert_buf_map(void * key, struct g2d_buf * value)
}
}
- /* Insert item. */
- table->items[index] = item;
- table->count++;
}
struct g2d_buf * g2d_search_buf_map(void * key)
@@ -140,22 +144,43 @@ void g2d_free_item(void * key)
lv_map_item_t * item = table->items[index];
lv_array_t * list = (lv_array_t *)table->overflow_list[index];
+ /* If there is no item, then nothing to do. */
if(item == NULL) {
return;
}
- else if(list == NULL && item->key == key) {
- /* No collision chain, just remove item. */
+ else if(item->key == key) {
+ /* Remove the item. */
table->items[index] = NULL;
_map_free_item(item);
table->count--;
+
+ /* If there is no collision chain, just return. */
+ if(list == NULL) {
+ return;
+ }
+
+ /* If a collision chain exists, promote the first item. */
+ lv_map_item_t * promoted_item = (lv_map_item_t *)lv_array_at(list, 0);
+ table->items[index] = _map_create_item(promoted_item->key, promoted_item->value);
+ lv_array_remove(list, 0);
+ if(lv_array_size(list) == 0) {
+ _map_free_list(index, list);
+ }
return;
}
- else if(list != NULL) {
- /* Collision chain exists. */
+ /* If the item is not the one we are searching, and there is no list, then return. */
+ if(list == NULL) return;
+ else {
+ /* The item might be inside the list. */
for(uint32_t i = 0; i < lv_array_size(list); i++) {
item = (lv_map_item_t *)lv_array_at(list, i);
if(item->key == key) {
+ g2d_free(item->value);
lv_array_remove(list, i);
+ table->count--;
+ if(lv_array_size(list) == 0) {
+ _map_free_list(index, list);
+ }
return;
}
}
@@ -203,10 +228,11 @@ static void _handle_collision(unsigned long index, lv_map_item_t * item)
{
if(table->overflow_list[index] == NULL) {
/* Create the list. */
- lv_array_t * list = (lv_array_t *) lv_malloc(sizeof(lv_array_t));;
+ lv_array_t * list = (lv_array_t *) lv_malloc(sizeof(lv_array_t));
lv_array_init(list, LV_ARRAY_DEFAULT_CAPACITY, sizeof(lv_map_item_t));
lv_array_push_back(list, item);
table->overflow_list[index] = list;
+ table->count++;
return;
}
else {
@@ -221,6 +247,7 @@ static void _handle_collision(unsigned long index, lv_map_item_t * item)
}
/* Insert to the list. */
lv_array_push_back(table->overflow_list[index], item);
+ table->count++;
return;
}
}
@@ -244,4 +271,12 @@ static void _map_free_item(lv_map_item_t * item)
item = NULL;
}
-#endif /*LV_USE_DRAW_G2D*/
+static void _map_free_list(unsigned long index, lv_array_t * list)
+{
+ lv_array_deinit(list);
+ lv_free(list);
+ table->overflow_list[index] = NULL;
+}
+
+#endif /*LV_USE_DRAW_G2D || LV_USE_ROTATE_G2D*/
+#endif /*LV_USE_G2D*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nxp/g2d/lv_g2d_buf_map.h b/lib/libesp32_lvgl/lvgl/src/draw/nxp/g2d/lv_g2d_buf_map.h
index 6e2196d30..c1d1f8634 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/nxp/g2d/lv_g2d_buf_map.h
+++ b/lib/libesp32_lvgl/lvgl/src/draw/nxp/g2d/lv_g2d_buf_map.h
@@ -23,7 +23,8 @@ extern "C" {
#include "../../../lv_conf_internal.h"
-#if LV_USE_DRAW_G2D
+#if LV_USE_G2D
+#if LV_USE_DRAW_G2D || LV_USE_ROTATE_G2D
#include "../../../misc/lv_array.h"
#include
@@ -72,7 +73,8 @@ void g2d_print_table(void);
* MACROS
**********************/
-#endif /*LV_USE_DRAW_G2D*/
+#endif /*LV_USE_DRAW_G2D || LV_USE_ROTATE_G2D*/
+#endif /*LV_USE_G2D*/
#ifdef __cplusplus
} /*extern "C"*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nxp/g2d/lv_g2d_utils.c b/lib/libesp32_lvgl/lvgl/src/draw/nxp/g2d/lv_g2d_utils.c
index c353040d2..81ef9a544 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/nxp/g2d/lv_g2d_utils.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/nxp/g2d/lv_g2d_utils.c
@@ -15,7 +15,8 @@
#include "lv_g2d_utils.h"
-#if LV_USE_DRAW_G2D
+#if LV_USE_G2D
+#if LV_USE_DRAW_G2D || LV_USE_ROTATE_G2D
#include "lv_g2d_buf_map.h"
#include "lv_draw_g2d.h"
@@ -30,7 +31,7 @@
/**********************
* STATIC PROTOTYPES
**********************/
-
+static void * g2d_handle;
/**********************
* MACROS
**********************/
@@ -90,8 +91,88 @@ int32_t g2d_get_buf_fd(const lv_draw_buf_t * draw_buf)
return g2d_buf_export_fd(buf);
}
+void g2d_set_handle(void * handle)
+{
+ g2d_handle = handle;
+}
+void * g2d_get_handle(void)
+{
+ return g2d_handle;
+}
+
+#if LV_USE_ROTATE_G2D
+void g2d_rotate(lv_draw_buf_t * buf1, lv_draw_buf_t * buf2, int32_t width, int32_t height, uint32_t rotation,
+ lv_color_format_t cf)
+{
+ struct g2d_surface src_surf, dst_surf;
+ struct g2d_buf * src_buf = g2d_search_buf_map(buf1->data);
+ struct g2d_buf * dst_buf = g2d_search_buf_map(buf2->data);
+ bool has_rotation = (rotation != 0);
+
+ int32_t src_width = width;
+ int32_t src_height = height;
+ if(has_rotation) {
+ if(rotation == LV_DISPLAY_ROTATION_90 || rotation == LV_DISPLAY_ROTATION_270) {
+ src_width = height;
+ src_height = width;
+ }
+ }
+
+ src_surf.format = g2d_get_buf_format(cf);
+
+ src_surf.left = 0;
+ src_surf.top = 0;
+ src_surf.right = src_width;
+ src_surf.bottom = src_height;
+ src_surf.stride = src_width;
+ src_surf.width = src_width;
+ src_surf.height = src_height;
+
+ src_surf.planes[0] = src_buf->buf_paddr;
+ src_surf.rot = G2D_ROTATION_0;
+
+ enum g2d_rotation g2d_angle = G2D_ROTATION_0;
+ if(has_rotation) {
+ switch(rotation) {
+ case LV_DISPLAY_ROTATION_0:
+ g2d_angle = G2D_ROTATION_0;
+ break;
+ case LV_DISPLAY_ROTATION_90:
+ g2d_angle = G2D_ROTATION_90;
+ break;
+ case LV_DISPLAY_ROTATION_180:
+ g2d_angle = G2D_ROTATION_180;
+ break;
+ case LV_DISPLAY_ROTATION_270:
+ g2d_angle = G2D_ROTATION_270;
+ break;
+ default:
+ g2d_angle = G2D_ROTATION_0;
+ }
+ }
+
+ dst_surf.format = g2d_get_buf_format(cf);
+
+ dst_surf.left = 0;
+ dst_surf.top = 0;
+ dst_surf.right = width;
+ dst_surf.bottom = height;
+ dst_surf.stride = width;
+ dst_surf.width = width;
+ dst_surf.height = height;
+
+ dst_surf.planes[0] = dst_buf->buf_paddr;
+ dst_surf.rot = g2d_angle;
+
+ void * handle = g2d_get_handle();
+ g2d_blit(handle, &src_surf, &dst_surf);
+ g2d_finish(handle);
+}
+#endif
+
/**********************
* STATIC FUNCTIONS
**********************/
-#endif /*LV_USE_DRAW_G2D*/
\ No newline at end of file
+#endif /*LV_USE_DRAW_G2D || LV_USE_ROTATE_G2D*/
+#endif /*LV_USE_G2D*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nxp/g2d/lv_g2d_utils.h b/lib/libesp32_lvgl/lvgl/src/draw/nxp/g2d/lv_g2d_utils.h
index f3923e150..af23b27df 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/nxp/g2d/lv_g2d_utils.h
+++ b/lib/libesp32_lvgl/lvgl/src/draw/nxp/g2d/lv_g2d_utils.h
@@ -21,7 +21,8 @@ extern "C" {
*********************/
#include "../../../lv_conf_internal.h"
-#if LV_USE_DRAW_G2D
+#if LV_USE_G2D
+#if LV_USE_DRAW_G2D || LV_USE_ROTATE_G2D
#include "../../sw/lv_draw_sw_private.h"
#include "g2d.h"
#include "g2dExt.h"
@@ -59,11 +60,21 @@ g2d_format_t g2d_get_buf_format(lv_color_format_t cf);
uint32_t g2d_rgba_to_u32(lv_color_t color);
int32_t g2d_get_buf_fd(const lv_draw_buf_t * draw_buf);
+
+void g2d_set_handle(void * handle);
+
+void * g2d_get_handle(void);
+
+#if LV_USE_ROTATE_G2D
+void g2d_rotate(lv_draw_buf_t * buf1, lv_draw_buf_t * buf2, int32_t width, int32_t height, uint32_t rotation,
+ lv_color_format_t cf);
+#endif
/**********************
* MACROS
**********************/
-#endif /*LV_USE_DRAW_G2D*/
+#endif /*LV_USE_DRAW_G2D || LV_USE_ROTATE_G2D*/
+#endif /*LV_USE_G2D*/
#ifdef __cplusplus
} /*extern "C"*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nxp/pxp/lv_draw_buf_pxp.c b/lib/libesp32_lvgl/lvgl/src/draw/nxp/pxp/lv_draw_buf_pxp.c
index 9819cfc64..11600053c 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/nxp/pxp/lv_draw_buf_pxp.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/nxp/pxp/lv_draw_buf_pxp.c
@@ -79,8 +79,8 @@ static void _invalidate_cache(const lv_draw_buf_t * draw_buf, const lv_area_t *
}
const uint8_t * buf_u8 = draw_buf->data;
- /* ARM require a 32 byte aligned address. */
- uint8_t align_bytes = 32;
+ /*Cache management requires us to know the cache line size for proper alignment */
+ uint8_t align_bytes = __SCB_DCACHE_LINE_SIZE;
uint8_t bits_per_pixel = lv_color_format_get_bpp(cf);
uint16_t align_pixels = align_bytes * 8 / bits_per_pixel;
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nxp/pxp/lv_draw_pxp.c b/lib/libesp32_lvgl/lvgl/src/draw/nxp/pxp/lv_draw_pxp.c
index 6bcbe82ac..5ab12ce7a 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/nxp/pxp/lv_draw_pxp.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/nxp/pxp/lv_draw_pxp.c
@@ -210,11 +210,6 @@ static bool _pxp_draw_img_supported(const lv_draw_image_dsc_t * draw_dsc)
{
const lv_image_dsc_t * img_dsc = draw_dsc->src;
- bool is_tiled = draw_dsc->tile;
- /* Tiled image (repeat image) is currently not supported. */
- if(is_tiled)
- return false;
-
bool has_recolor = (draw_dsc->recolor_opa > LV_OPA_MIN);
bool has_transform = (draw_dsc->rotation != 0 || draw_dsc->scale_x != LV_SCALE_NONE ||
draw_dsc->scale_y != LV_SCALE_NONE);
@@ -350,7 +345,7 @@ static int32_t _pxp_dispatch(lv_draw_unit_t * draw_unit, lv_layer_t * layer)
#else
_pxp_execute_drawing(draw_pxp_unit);
- draw_pxp_unit->task_act->state = LV_DRAW_TASK_STATE_READY;
+ draw_pxp_unit->task_act->state = LV_DRAW_TASK_STATE_FINISHED;
draw_pxp_unit->task_act = NULL;
/* The draw unit is free now. Request a new dispatching as it can get a new task. */
@@ -434,7 +429,7 @@ static void _pxp_execute_drawing(lv_draw_pxp_unit_t * u)
lv_draw_sw_fill((lv_draw_unit_t *)u, &rect_dsc, &draw_area);
lv_point_t txt_size;
- lv_text_get_size(&txt_size, "W", LV_FONT_DEFAULT, 0, 0, 100, LV_TEXT_FLAG_NONE);
+ lv_text_get_size_attributes(&txt_size, "W", LV_FONT_DEFAULT, 0, 0, 100, LV_TEXT_FLAG_NONE);
lv_area_t txt_area;
txt_area.x1 = draw_area.x1;
@@ -482,7 +477,7 @@ static void _pxp_render_thread_cb(void * ptr)
_pxp_execute_drawing(u);
/* Signal the ready state to dispatcher. */
- u->task_act->state = LV_DRAW_TASK_STATE_READY;
+ u->task_act->state = LV_DRAW_TASK_STATE_FINISHED;
/* Cleanup. */
u->task_act = NULL;
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nxp/pxp/lv_draw_pxp.h b/lib/libesp32_lvgl/lvgl/src/draw/nxp/pxp/lv_draw_pxp.h
index 38b7e3ca7..a6833b585 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/nxp/pxp/lv_draw_pxp.h
+++ b/lib/libesp32_lvgl/lvgl/src/draw/nxp/pxp/lv_draw_pxp.h
@@ -36,7 +36,7 @@ extern "C" {
* TYPEDEFS
**********************/
-typedef struct lv_draw_pxp_unit_t {
+typedef struct _lv_draw_pxp_unit_t {
lv_draw_unit_t base_unit;
lv_draw_task_t * task_act;
#if LV_USE_OS
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nxp/pxp/lv_draw_pxp_img.c b/lib/libesp32_lvgl/lvgl/src/draw/nxp/pxp/lv_draw_pxp_img.c
index 320eaed2e..2d1afccf2 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/nxp/pxp/lv_draw_pxp_img.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/nxp/pxp/lv_draw_pxp_img.c
@@ -19,6 +19,8 @@
#if LV_USE_DRAW_PXP
#include "lv_pxp_cfg.h"
#include "lv_pxp_utils.h"
+#include "../../lv_draw_image_private.h"
+#include "../../lv_image_decoder_private.h"
#include
@@ -33,6 +35,9 @@
/**********************
* STATIC PROTOTYPES
**********************/
+static void _pxp_draw_core_cb(lv_draw_task_t * t, const lv_draw_image_dsc_t * draw_dsc,
+ const lv_image_decoder_dsc_t * decoder_dsc, lv_draw_image_sup_t * sup,
+ const lv_area_t * img_coords, const lv_area_t * clipped_img_area);
/* Blit w/ recolor for images w/o opa and alpha channel */
static void _pxp_blit_recolor(uint8_t * dest_buf, const lv_area_t * dest_area, int32_t dest_stride,
@@ -69,54 +74,58 @@ void lv_draw_pxp_img(lv_draw_task_t * t)
if(dsc->opa <= (lv_opa_t)LV_OPA_MIN)
return;
- lv_layer_t * layer = t->target_layer;
- lv_draw_buf_t * draw_buf = layer->draw_buf;
- const lv_image_dsc_t * img_dsc = dsc->src;
-
- lv_area_t rel_coords;
- lv_area_copy(&rel_coords, coords);
- lv_area_move(&rel_coords, -layer->buf_area.x1, -layer->buf_area.y1);
-
- lv_area_t rel_clip_area;
- lv_area_copy(&rel_clip_area, &t->clip_area);
- lv_area_move(&rel_clip_area, -layer->buf_area.x1, -layer->buf_area.y1);
-
- lv_area_t blend_area;
- bool has_transform = (dsc->rotation != 0 || dsc->scale_x != LV_SCALE_NONE || dsc->scale_y != LV_SCALE_NONE);
- if(has_transform)
- lv_area_copy(&blend_area, &rel_coords);
- else if(!lv_area_intersect(&blend_area, &rel_coords, &rel_clip_area))
- return; /*Fully clipped, nothing to do*/
-
- const uint8_t * src_buf = img_dsc->data;
-
- lv_area_t src_area;
- src_area.x1 = blend_area.x1 - (coords->x1 - layer->buf_area.x1);
- src_area.y1 = blend_area.y1 - (coords->y1 - layer->buf_area.y1);
- src_area.x2 = src_area.x1 + lv_area_get_width(&blend_area) - 1;
- src_area.y2 = src_area.y1 + lv_area_get_height(&blend_area) - 1;
- int32_t src_stride = img_dsc->header.stride;
- lv_color_format_t src_cf = img_dsc->header.cf;
-
- uint8_t * dest_buf = draw_buf->data;
- int32_t dest_stride = draw_buf->header.stride;
- lv_color_format_t dest_cf = draw_buf->header.cf;
- bool has_recolor = (dsc->recolor_opa > LV_OPA_MIN);
-
- if(has_recolor && !has_transform)
- _pxp_blit_recolor(dest_buf, &blend_area, dest_stride, dest_cf,
- src_buf, &src_area, src_stride, src_cf, dsc);
- else if(has_transform)
- _pxp_blit_transform(dest_buf, &blend_area, dest_stride, dest_cf,
- src_buf, &src_area, src_stride, src_cf, dsc);
+ bool is_tiled = (dsc->tile != 0);
+ if(is_tiled)
+ lv_draw_image_tiled_helper(t, dsc, coords, _pxp_draw_core_cb);
else
- _pxp_blit(dest_buf, &blend_area, dest_stride, dest_cf,
- src_buf, &src_area, src_stride, src_cf, dsc->opa);
+ lv_draw_image_normal_helper(t, dsc, coords, _pxp_draw_core_cb);
}
/**********************
* STATIC FUNCTIONS
**********************/
+static void _pxp_draw_core_cb(lv_draw_task_t * t, const lv_draw_image_dsc_t * draw_dsc,
+ const lv_image_decoder_dsc_t * decoder_dsc, lv_draw_image_sup_t * sup,
+ const lv_area_t * img_coords, const lv_area_t * clipped_img_area)
+{
+ lv_layer_t * layer = t->target_layer;
+ lv_draw_buf_t * draw_buf = layer->draw_buf;
+ const lv_draw_buf_t * decoded = decoder_dsc->decoded;
+
+ lv_area_t rel_clip_area;
+ lv_area_copy(&rel_clip_area, clipped_img_area);
+ lv_area_move(&rel_clip_area, -img_coords->x1, -img_coords->y1);
+
+ lv_area_t rel_img_coords;
+ lv_area_copy(&rel_img_coords, img_coords);
+ lv_area_move(&rel_img_coords, -img_coords->x1, -img_coords->y1);
+
+ const uint8_t * src_buf = decoded->data;
+
+ lv_area_t src_area;
+ if(!lv_area_intersect(&src_area, &rel_clip_area, &rel_img_coords))
+ return;
+
+ int32_t src_stride = draw_dsc->header.stride;
+ lv_color_format_t src_cf = draw_dsc->header.cf;
+
+ uint8_t * dest_buf = draw_buf->data;
+ int32_t dest_stride = draw_buf->header.stride;
+ lv_color_format_t dest_cf = draw_buf->header.cf;
+ bool has_recolor = (draw_dsc->recolor_opa > LV_OPA_MIN);
+ bool has_transform = (draw_dsc->rotation != 0 || draw_dsc->scale_x != LV_SCALE_NONE ||
+ draw_dsc->scale_y != LV_SCALE_NONE);
+
+ if(has_recolor && !has_transform)
+ _pxp_blit_recolor(dest_buf, clipped_img_area, dest_stride, dest_cf,
+ src_buf, &src_area, src_stride, src_cf, draw_dsc);
+ else if(has_transform)
+ _pxp_blit_transform(dest_buf, clipped_img_area, dest_stride, dest_cf,
+ src_buf, &src_area, src_stride, src_cf, draw_dsc);
+ else
+ _pxp_blit(dest_buf, clipped_img_area, dest_stride, dest_cf,
+ src_buf, &src_area, src_stride, src_cf, draw_dsc->opa);
+}
static void _pxp_blit_recolor(uint8_t * dest_buf, const lv_area_t * dest_area, int32_t dest_stride,
lv_color_format_t dest_cf, const uint8_t * src_buf, const lv_area_t * src_area,
@@ -193,14 +202,6 @@ static void _pxp_blit_transform(uint8_t * dest_buf, const lv_area_t * dest_area,
int32_t dest_w = lv_area_get_width(dest_area);
int32_t dest_h = lv_area_get_height(dest_area);
- lv_point_t pivot = dsc->pivot;
- /*The offsets are now relative to the transformation result with pivot ULC*/
- int32_t piv_offset_x = 0;
- int32_t piv_offset_y = 0;
-
- int32_t trim_x = 0;
- int32_t trim_y = 0;
-
bool has_rotation = (dsc->rotation != 0);
bool has_scale = (dsc->scale_x != LV_SCALE_NONE || dsc->scale_y != LV_SCALE_NONE);
uint8_t src_px_size = lv_color_format_get_size(src_cf);
@@ -214,51 +215,23 @@ static void _pxp_blit_transform(uint8_t * dest_buf, const lv_area_t * dest_area,
switch(dsc->rotation) {
case 0:
pxp_angle = kPXP_Rotate0;
- piv_offset_x = 0;
- piv_offset_y = 0;
break;
case 900:
pxp_angle = kPXP_Rotate90;
- piv_offset_x = pivot.x + pivot.y - src_h;
- piv_offset_y = pivot.y - pivot.x;
break;
case 1800:
pxp_angle = kPXP_Rotate180;
- piv_offset_x = 2 * pivot.x - src_w;
- piv_offset_y = 2 * pivot.y - src_h;
break;
case 2700:
pxp_angle = kPXP_Rotate270;
- piv_offset_x = pivot.x - pivot.y;
- piv_offset_y = pivot.x + pivot.y - src_w;
break;
default:
pxp_angle = kPXP_Rotate0;
- piv_offset_x = 0;
- piv_offset_y = 0;
}
/*PS buffer rotation and decimation does not function at the same time*/
PXP_SetRotateConfig(PXP_ID, kPXP_RotateOutputBuffer, pxp_angle, kPXP_FlipDisable);
}
- if(has_scale) {
- float fp_scale_x = (float)dsc->scale_x / LV_SCALE_NONE;
- float fp_scale_y = (float)dsc->scale_y / LV_SCALE_NONE;
- int32_t int_scale_x = (int32_t)fp_scale_x;
- int32_t int_scale_y = (int32_t)fp_scale_y;
-
- /*Any scale_factor in (k, k + 1] will result in a trim equal to k*/
- trim_x = (fp_scale_x == int_scale_x) ? int_scale_x - 1 : int_scale_x;
- trim_y = (fp_scale_y == int_scale_y) ? int_scale_y - 1 : int_scale_y;
-
- dest_w = src_w * fp_scale_x + trim_x;
- dest_h = src_h * fp_scale_y + trim_y;
-
- /*Final pivot offset = scale_factor * rotation_pivot_offset + scaling_pivot_offset*/
- piv_offset_x = floorf(fp_scale_x * piv_offset_x) - floorf((fp_scale_x - 1) * pivot.x);
- piv_offset_y = floorf(fp_scale_y * piv_offset_y) - floorf((fp_scale_y - 1) * pivot.y);
- }
-
/*PS buffer - source image*/
pxp_ps_buffer_config_t psBufferConfig = {
.pixelFormat = pxp_get_ps_px_format(src_cf),
@@ -269,7 +242,7 @@ static void _pxp_blit_transform(uint8_t * dest_buf, const lv_area_t * dest_area,
.pitchBytes = src_stride
};
PXP_SetProcessSurfaceBufferConfig(PXP_ID, &psBufferConfig);
- PXP_SetProcessSurfacePosition(PXP_ID, 0U, 0U, dest_w - trim_x - 1U, dest_h - trim_y - 1U);
+ PXP_SetProcessSurfacePosition(PXP_ID, 0U, 0U, dest_w - 1U, dest_h - 1U);
if(has_scale)
PXP_SetProcessSurfaceScaler(PXP_ID, src_w, src_h, dest_w, dest_h);
@@ -281,11 +254,11 @@ static void _pxp_blit_transform(uint8_t * dest_buf, const lv_area_t * dest_area,
pxp_output_buffer_config_t outputBufferConfig = {
.pixelFormat = pxp_get_out_px_format(dest_cf),
.interlacedMode = kPXP_OutputProgressive,
- .buffer0Addr = (uint32_t)(dest_buf + dest_stride * (dest_area->y1 + piv_offset_y) + dest_px_size * (dest_area->x1 + piv_offset_x)),
+ .buffer0Addr = (uint32_t)(dest_buf + dest_stride * (dest_area->y1) + dest_px_size * (dest_area->x1)),
.buffer1Addr = (uint32_t)0U,
.pitchBytes = dest_stride,
- .width = dest_w - trim_x,
- .height = dest_h - trim_y
+ .width = dest_w,
+ .height = dest_h
};
PXP_SetOutputBufferConfig(PXP_ID, &outputBufferConfig);
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nxp/pxp/lv_draw_pxp_layer.c b/lib/libesp32_lvgl/lvgl/src/draw/nxp/pxp/lv_draw_pxp_layer.c
index f515a20b5..2a153d6fe 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/nxp/pxp/lv_draw_pxp_layer.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/nxp/pxp/lv_draw_pxp_layer.c
@@ -131,7 +131,7 @@ void lv_draw_pxp_layer(lv_draw_task_t * t)
lv_draw_sw_border(t, &border_dsc, &area_rot);
lv_point_t txt_size;
- lv_text_get_size(&txt_size, "W", LV_FONT_DEFAULT, 0, 0, 100, LV_TEXT_FLAG_NONE);
+ lv_text_get_size_attributes(&txt_size, "W", LV_FONT_DEFAULT, 0, 0, 100, LV_TEXT_FLAG_NONE);
lv_area_t txt_area;
txt_area.x1 = draw_area.x1;
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nxp/pxp/lv_pxp_cfg.h b/lib/libesp32_lvgl/lvgl/src/draw/nxp/pxp/lv_pxp_cfg.h
index 67d135857..34dccbb2f 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/nxp/pxp/lv_pxp_cfg.h
+++ b/lib/libesp32_lvgl/lvgl/src/draw/nxp/pxp/lv_pxp_cfg.h
@@ -27,6 +27,10 @@ extern "C" {
#include "fsl_cache.h"
#include "fsl_pxp.h"
+#if ((LV_DRAW_BUF_ALIGN % 32) != 0)
+#error "If PXP is enabled the draw buffers should be aligned to 32-byte boundary, please set LV_DRAW_BUF_ALIGN to a multiple of 32 in lv_conf.h"
+#endif
+
#include "../../../misc/lv_log.h"
/*********************
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nxp/pxp/lv_pxp_osa.c b/lib/libesp32_lvgl/lvgl/src/draw/nxp/pxp/lv_pxp_osa.c
index 43dd8155b..861369dc3 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/nxp/pxp/lv_pxp_osa.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/nxp/pxp/lv_pxp_osa.c
@@ -19,7 +19,7 @@
#if LV_USE_DRAW_PXP || LV_USE_ROTATE_PXP
#include "lv_pxp_utils.h"
#include "../../../misc/lv_log.h"
-#include "../../../osal/lv_os.h"
+#include "../../../osal/lv_os_private.h"
#include "fsl_pxp.h"
#if defined(SDK_OS_FREE_RTOS)
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_draw_buf_vglite.c b/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_draw_buf_vglite.c
deleted file mode 100644
index f42bf6fb1..000000000
--- a/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_draw_buf_vglite.c
+++ /dev/null
@@ -1,131 +0,0 @@
-/**
- * @file lv_draw_buf_vglite.c
- *
- */
-
-/**
- * Copyright 2023-2024 NXP
- *
- * SPDX-License-Identifier: MIT
- */
-
-/*********************
- * INCLUDES
- *********************/
-
-#include "lv_draw_vglite.h"
-
-#if LV_USE_DRAW_VGLITE
-#include "../../lv_draw_buf_private.h"
-#include "lv_vglite_buf.h"
-#include "lv_vglite_utils.h"
-
-#include "lvgl_support.h"
-
-/*********************
- * DEFINES
- *********************/
-
-/**********************
- * TYPEDEFS
- **********************/
-
-/**********************
- * STATIC PROTOTYPES
- **********************/
-
-static void _invalidate_cache(const lv_draw_buf_t * draw_buf, const lv_area_t * area);
-static uint32_t _width_to_stride(uint32_t w, lv_color_format_t cf);
-
-/**********************
- * STATIC VARIABLES
- **********************/
-
-/**********************
- * MACROS
- **********************/
-
-/**********************
- * GLOBAL FUNCTIONS
- **********************/
-
-void lv_draw_buf_vglite_init_handlers(void)
-{
- lv_draw_buf_handlers_t * handlers = lv_draw_buf_get_handlers();
- lv_draw_buf_handlers_t * font_handlers = lv_draw_buf_get_font_handlers();
- lv_draw_buf_handlers_t * image_handlers = lv_draw_buf_get_image_handlers();
-
- handlers->invalidate_cache_cb = _invalidate_cache;
- font_handlers->invalidate_cache_cb = _invalidate_cache;
- image_handlers->invalidate_cache_cb = _invalidate_cache;
-
- handlers->width_to_stride_cb = _width_to_stride;
- font_handlers->width_to_stride_cb = _width_to_stride;
- image_handlers->width_to_stride_cb = _width_to_stride;
-
-}
-
-/**********************
- * STATIC FUNCTIONS
- **********************/
-
-static void _invalidate_cache(const lv_draw_buf_t * draw_buf, const lv_area_t * area)
-{
- const lv_image_header_t * header = &draw_buf->header;
- uint32_t stride = header->stride;
- lv_color_format_t cf = header->cf;
-
- if(area->y1 == 0) {
- uint32_t size = stride * lv_area_get_height(area);
-
- /* Invalidate full buffer. */
- DEMO_CleanInvalidateCacheByAddr((void *)draw_buf->data, size);
- return;
- }
-
- const uint8_t * buf_u8 = draw_buf->data;
- /* ARM require a 32 byte aligned address. */
- uint8_t align_bytes = 32;
- uint8_t bits_per_pixel = lv_color_format_get_bpp(cf);
-
- uint16_t align_pixels = align_bytes * 8 / bits_per_pixel;
- uint16_t offset_x = 0;
-
- if(area->x1 >= (int32_t)(area->x1 % align_pixels)) {
- uint16_t shift_x = area->x1 - (area->x1 % align_pixels);
-
- offset_x = area->x1 - shift_x;
- buf_u8 += (shift_x * bits_per_pixel) / 8;
- }
-
- if(area->y1) {
- uint16_t shift_y = area->y1;
-
- buf_u8 += shift_y * stride;
- }
-
- /* Area to clear can start from a different offset in buffer.
- * Invalidate the area line by line.
- */
- uint16_t line_pixels = offset_x + lv_area_get_width(area);
- uint16_t line_size = (line_pixels * bits_per_pixel) / 8;
- uint16_t area_height = lv_area_get_height(area);
-
- for(uint16_t y = 0; y < area_height; y++) {
- const void * line_addr = buf_u8 + y * stride;
-
- DEMO_CleanInvalidateCacheByAddr((void *)line_addr, line_size);
- }
-}
-
-static uint32_t _width_to_stride(uint32_t w, lv_color_format_t cf)
-{
- uint8_t bits_per_pixel = lv_color_format_get_bpp(cf);
- uint32_t width_bits = LV_ROUND_UP(w * bits_per_pixel, 8);
- uint32_t width_bytes = width_bits / 8;
- uint8_t align_bytes = vglite_get_stride_alignment(cf);
-
- return LV_ROUND_UP(width_bytes, align_bytes);
-}
-
-#endif /*LV_USE_DRAW_VGLITE*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_draw_vglite.c b/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_draw_vglite.c
deleted file mode 100644
index 55f711213..000000000
--- a/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_draw_vglite.c
+++ /dev/null
@@ -1,638 +0,0 @@
-/**
- * @file lv_draw_vglite.c
- *
- */
-
-/**
- * Copyright 2023-2024 NXP
- *
- * SPDX-License-Identifier: MIT
- */
-
-/*********************
- * INCLUDES
- *********************/
-
-#include "lv_draw_vglite.h"
-
-#if LV_USE_DRAW_VGLITE
-#include "lv_vglite_buf.h"
-#include "lv_vglite_utils.h"
-
-#include "../../../core/lv_global.h"
-
-/*********************
- * DEFINES
- *********************/
-
-#define DRAW_UNIT_ID_VGLITE 2
-
-#if LV_USE_VGLITE_DRAW_ASYNC
- #define VGLITE_TASK_BUF_SIZE 100
-#endif
-
-/**********************
- * TYPEDEFS
- **********************/
-
-#if LV_USE_VGLITE_DRAW_ASYNC
-/**
- * Structure of pending vglite draw task
- */
-typedef struct _vglite_flush_task {
- vglite_draw_task_t * task;
- bool flushed;
-} vglite_flush_task_t;
-#endif
-
-/**********************
- * STATIC PROTOTYPES
- **********************/
-
-static inline void _vglite_cleanup_task(vglite_draw_task_t * task);
-
-/*
- * Evaluate a task and set the score and preferred VGLite draw unit.
- * Return 1 if task is preferred, 0 otherwise (task is not supported).
- */
-static int32_t _vglite_evaluate(lv_draw_unit_t * draw_unit, lv_draw_task_t * task);
-
-/*
- * Dispatch (assign) a task to VGLite draw unit (itself).
- * Return 1 if task was dispatched, 0 otherwise (task not supported).
- */
-static int32_t _vglite_dispatch(lv_draw_unit_t * draw_unit, lv_layer_t * layer);
-
-/*
- * Wait for VG-Lite draw unit to finish.
- */
-#if LV_USE_VGLITE_DRAW_ASYNC
- static int32_t _vglite_wait_for_finish(lv_draw_unit_t * draw_unit);
-#endif
-
-/*
- * Delete the VGLite draw unit.
- */
-static int32_t _vglite_delete(lv_draw_unit_t * draw_unit);
-
-#if LV_USE_VGLITE_DRAW_THREAD
- static void _vglite_render_thread_cb(void * ptr);
-#endif
-
-static void _vglite_execute_drawing(lv_draw_vglite_unit_t * u);
-
-/**********************
- * STATIC VARIABLES
- **********************/
-
-#define _draw_info LV_GLOBAL_DEFAULT()->draw_info
-
-#if LV_USE_VGLITE_DRAW_ASYNC
- /*
- * Circular buffer to hold the queued and the flushed tasks.
- * Two indexes, _head and _tail, are used to signal the beginning
- * and the end of the valid tasks that are pending.
- */
- static vglite_flush_task_t _draw_task_buf[VGLITE_TASK_BUF_SIZE];
- static volatile int _head = 0;
- static volatile int _tail = 0;
-#endif
-
-/**********************
- * MACROS
- **********************/
-
-/**********************
- * GLOBAL FUNCTIONS
- **********************/
-
-void lv_draw_vglite_init(void)
-{
- lv_draw_buf_vglite_init_handlers();
-
- lv_draw_vglite_unit_t * draw_vglite_unit = lv_draw_create_unit(sizeof(lv_draw_vglite_unit_t));
- draw_vglite_unit->base_unit.evaluate_cb = _vglite_evaluate;
- draw_vglite_unit->base_unit.dispatch_cb = _vglite_dispatch;
-#if LV_USE_VGLITE_DRAW_ASYNC
- draw_vglite_unit->base_unit.wait_for_finish_cb = _vglite_wait_for_finish;
-#endif
- draw_vglite_unit->base_unit.delete_cb = _vglite_delete;
- draw_vglite_unit->base_unit.name = "NXP_VGLITE";
-
-#if LV_USE_VGLITE_DRAW_THREAD
- lv_thread_init(&draw_vglite_unit->thread, "vglitedraw", LV_DRAW_THREAD_PRIO, _vglite_render_thread_cb, 4 * 1024,
- draw_vglite_unit);
-#endif
-}
-
-void lv_draw_vglite_deinit(void)
-{
-}
-
-/**********************
- * STATIC FUNCTIONS
- **********************/
-
-static inline bool _vglite_src_cf_supported(lv_color_format_t cf)
-{
- bool is_cf_supported = false;
-
- switch(cf) {
-#if CHIPID == 0x255 || CHIPID == 0x555
- case LV_COLOR_FORMAT_I1:
- case LV_COLOR_FORMAT_I2:
- case LV_COLOR_FORMAT_I4:
- case LV_COLOR_FORMAT_I8:
-#endif
- case LV_COLOR_FORMAT_A4:
- case LV_COLOR_FORMAT_A8:
- case LV_COLOR_FORMAT_L8:
- case LV_COLOR_FORMAT_RGB565:
-#if CHIPID == 0x555
- case LV_COLOR_FORMAT_ARGB8565:
- case LV_COLOR_FORMAT_RGB888:
-#endif
- case LV_COLOR_FORMAT_ARGB8888:
- case LV_COLOR_FORMAT_XRGB8888:
- is_cf_supported = true;
- break;
- default:
- break;
- }
-
- return is_cf_supported;
-}
-
-static inline bool _vglite_dest_cf_supported(lv_color_format_t cf)
-{
- bool is_cf_supported = false;
-
- switch(cf) {
- case LV_COLOR_FORMAT_A8:
-#if CHIPID == 0x255 || CHIPID == 0x555
- case LV_COLOR_FORMAT_L8:
-#endif
- case LV_COLOR_FORMAT_RGB565:
-#if CHIPID == 0x555
- case LV_COLOR_FORMAT_ARGB8565:
- case LV_COLOR_FORMAT_RGB888:
-#endif
- case LV_COLOR_FORMAT_ARGB8888:
- case LV_COLOR_FORMAT_XRGB8888:
- is_cf_supported = true;
- break;
- default:
- break;
- }
-
- return is_cf_supported;
-}
-
-static int32_t _vglite_evaluate(lv_draw_unit_t * u, lv_draw_task_t * t)
-{
- LV_UNUSED(u);
-
- const lv_draw_dsc_base_t * draw_dsc_base = (lv_draw_dsc_base_t *) t->draw_dsc;
-
- if(!_vglite_dest_cf_supported(draw_dsc_base->layer->color_format))
- return 0;
-
- switch(t->type) {
- case LV_DRAW_TASK_TYPE_FILL:
- if(t->preference_score > 80) {
- t->preference_score = 80;
- t->preferred_draw_unit_id = DRAW_UNIT_ID_VGLITE;
- }
- return 1;
-
- case LV_DRAW_TASK_TYPE_LINE:
- case LV_DRAW_TASK_TYPE_ARC:
- case LV_DRAW_TASK_TYPE_TRIANGLE:
- if(t->preference_score > 90) {
- t->preference_score = 90;
- t->preferred_draw_unit_id = DRAW_UNIT_ID_VGLITE;
- }
- return 1;
-
- case LV_DRAW_TASK_TYPE_LABEL:
- if(t->preference_score > 95) {
- t->preference_score = 95;
- t->preferred_draw_unit_id = DRAW_UNIT_ID_VGLITE;
- }
- return 1;
-
- case LV_DRAW_TASK_TYPE_BORDER: {
- if(t->preference_score > 90) {
- t->preference_score = 90;
- t->preferred_draw_unit_id = DRAW_UNIT_ID_VGLITE;
- }
- return 1;
- }
-
- case LV_DRAW_TASK_TYPE_LAYER: {
- const lv_draw_image_dsc_t * draw_dsc = (lv_draw_image_dsc_t *) t->draw_dsc;
- lv_layer_t * layer_to_draw = (lv_layer_t *)draw_dsc->src;
-
-#if LV_USE_VGLITE_BLIT_SPLIT
- bool has_transform = (draw_dsc->rotation != 0 || draw_dsc->scale_x != LV_SCALE_NONE ||
- draw_dsc->scale_y != LV_SCALE_NONE);
-#endif
- if(!_vglite_src_cf_supported(layer_to_draw->color_format)
-#if LV_USE_VGLITE_BLIT_SPLIT
- || has_transform
-#endif
- )
- return 0;
-
- if(t->preference_score > 80) {
- t->preference_score = 80;
- t->preferred_draw_unit_id = DRAW_UNIT_ID_VGLITE;
- }
- return 1;
- }
-
- case LV_DRAW_TASK_TYPE_IMAGE: {
- lv_draw_image_dsc_t * draw_dsc = (lv_draw_image_dsc_t *) t->draw_dsc;
- const lv_image_dsc_t * img_dsc = draw_dsc->src;
-
- if(img_dsc->header.cf >= LV_COLOR_FORMAT_PROPRIETARY_START) {
- return 0;
- }
-
-#if CHIPID == 0x255
- if(draw_dsc->tile)
- return 0;
-#endif
-#if LV_USE_VGLITE_BLIT_SPLIT
- bool has_transform = (draw_dsc->rotation != 0 || draw_dsc->scale_x != LV_SCALE_NONE ||
- draw_dsc->scale_y != LV_SCALE_NONE);
- bool is_tiled = draw_dsc->tile;
-#endif
-
- if((!_vglite_src_cf_supported(img_dsc->header.cf))
-#if LV_USE_VGLITE_BLIT_SPLIT
- || has_transform || is_tiled
-#endif
- || (!vglite_src_buf_aligned(img_dsc->data, img_dsc->header.stride, img_dsc->header.cf))
- )
- return 0;
-
- if(t->preference_score > 80) {
- t->preference_score = 80;
- t->preferred_draw_unit_id = DRAW_UNIT_ID_VGLITE;
- }
- return 1;
- }
- default:
- return 0;
- }
-
- return 0;
-}
-
-static int32_t _vglite_dispatch(lv_draw_unit_t * draw_unit, lv_layer_t * layer)
-{
- lv_draw_vglite_unit_t * draw_vglite_unit = (lv_draw_vglite_unit_t *) draw_unit;
-
- /* Return immediately if draw unit is busy. */
- if(draw_vglite_unit->task_act
-#if LV_USE_VGLITE_DRAW_ASYNC
- || draw_vglite_unit->wait_for_finish
-#endif
- )
- return 0;
-
- /* Try to get an ready to draw. */
- lv_draw_task_t * t = lv_draw_get_available_task(layer, NULL, DRAW_UNIT_ID_VGLITE);
-
- if(t == NULL)
- return LV_DRAW_UNIT_IDLE;
-
- if(t->preferred_draw_unit_id != DRAW_UNIT_ID_VGLITE) {
- /* Let the preferred known unit to draw this task. */
- if(t->preferred_draw_unit_id != LV_DRAW_UNIT_NONE) {
- return LV_DRAW_UNIT_IDLE;
- }
- else {
- /* Fake unsupported tasks as ready. */
- t->state = LV_DRAW_TASK_STATE_READY;
- /* Request a new dispatching as it can get a new task. */
- lv_draw_dispatch_request();
-
- return 1;
- }
- }
- vglite_draw_task_t * vglite_task = lv_malloc_zeroed(sizeof(vglite_draw_task_t));
- LV_ASSERT_MALLOC(vglite_task);
-
- vglite_task->t = t;
-
- if(lv_draw_layer_alloc_buf(layer) == NULL)
- return LV_DRAW_UNIT_IDLE;
- t->state = LV_DRAW_TASK_STATE_IN_PROGRESS;
- draw_vglite_unit->task_act = vglite_task;
-
-#if LV_USE_VGLITE_DRAW_THREAD
- /* Let the render thread work. */
- if(draw_vglite_unit->inited)
- lv_thread_sync_signal(&draw_vglite_unit->sync);
-#else
- _vglite_execute_drawing(draw_vglite_unit);
-
- draw_vglite_unit->task_act->t->state = LV_DRAW_TASK_STATE_READY;
- _vglite_cleanup_task(draw_vglite_unit->task_act);
- draw_vglite_unit->task_act = NULL;
-
- /* The draw unit is free now. Request a new dispatching as it can get a new task. */
- lv_draw_dispatch_request();
-#endif
-
- return 1;
-}
-
-#if LV_USE_VGLITE_DRAW_ASYNC
-static int32_t _vglite_wait_for_finish(lv_draw_unit_t * draw_unit)
-{
- lv_draw_vglite_unit_t * draw_vglite_unit = (lv_draw_vglite_unit_t *) draw_unit;
- draw_vglite_unit->wait_for_finish = true;
-
- /* Signal draw unit to finish its tasks and return READY state after completion. */
- if(draw_vglite_unit->inited)
- lv_thread_sync_signal(&draw_vglite_unit->sync);
-
- /* Wait for finish now. */
- lv_draw_dispatch_wait_for_request();
-
- return 1;
-}
-#endif
-
-static int32_t _vglite_delete(lv_draw_unit_t * draw_unit)
-{
-#if LV_USE_VGLITE_DRAW_THREAD
- lv_draw_vglite_unit_t * draw_vglite_unit = (lv_draw_vglite_unit_t *) draw_unit;
-
- LV_LOG_INFO("Cancel VGLite draw thread.");
- draw_vglite_unit->exit_status = true;
-
- if(draw_vglite_unit->inited)
- lv_thread_sync_signal(&draw_vglite_unit->sync);
-
- lv_result_t res = lv_thread_delete(&draw_vglite_unit->thread);
-
- return res;
-#else
- LV_UNUSED(draw_unit);
-
- return 1;
-#endif
-}
-
-static void _vglite_execute_drawing(lv_draw_vglite_unit_t * u)
-{
- vglite_draw_task_t * vglite_task = u->task_act;
- lv_layer_t * layer = vglite_task->t->target_layer;
- lv_draw_buf_t * draw_buf = layer->draw_buf;
-
- /* Set target buffer */
- vglite_set_dest_buf(draw_buf->data, draw_buf->header.w, draw_buf->header.h, draw_buf->header.stride,
- draw_buf->header.cf);
-
- lv_area_t clip_area;
- lv_area_copy(&clip_area, &vglite_task->t->clip_area);
- lv_area_move(&clip_area, -layer->buf_area.x1, -layer->buf_area.y1);
-
- lv_area_t draw_area;
- lv_area_copy(&draw_area, &vglite_task->t->area);
- lv_area_move(&draw_area, -layer->buf_area.x1, -layer->buf_area.y1);
-
- if(!lv_area_intersect(&draw_area, &draw_area, &clip_area))
- return; /*Fully clipped, nothing to do*/
-
- if(_draw_info.unit_cnt > 1)
- lv_draw_buf_invalidate_cache(draw_buf, &draw_area);
-
-#if LV_USE_PARALLEL_DRAW_DEBUG
- /* remember draw unit for debug purposes */
- vglite_task->t->draw_unit = &u->base_unit;
-#endif
-
- /* Set scissor area, excluding the split blit case */
-#if LV_USE_VGLITE_BLIT_SPLIT
- if(vglite_task->t->type != LV_DRAW_TASK_TYPE_IMAGE || vglite_task->t->type != LV_DRAW_TASK_TYPE_LAYER)
-#endif
- vglite_set_scissor(&clip_area);
-
- switch(vglite_task->t->type) {
- case LV_DRAW_TASK_TYPE_LABEL:
- lv_draw_vglite_label(vglite_task);
- break;
- case LV_DRAW_TASK_TYPE_FILL:
- lv_draw_vglite_fill(vglite_task);
- break;
- case LV_DRAW_TASK_TYPE_BORDER:
- lv_draw_vglite_border(vglite_task);
- break;
- case LV_DRAW_TASK_TYPE_IMAGE:
- lv_draw_vglite_img(vglite_task);
- break;
- case LV_DRAW_TASK_TYPE_ARC:
- lv_draw_vglite_arc(vglite_task);
- break;
- case LV_DRAW_TASK_TYPE_LINE:
- lv_draw_vglite_line(vglite_task);
- break;
- case LV_DRAW_TASK_TYPE_LAYER:
- lv_draw_vglite_layer(vglite_task);
- break;
- case LV_DRAW_TASK_TYPE_TRIANGLE:
- lv_draw_vglite_triangle(vglite_task);
- break;
- default:
- break;
- }
-
- /* Disable scissor */
- vglite_set_scissor(&layer->buf_area);
-
-#if LV_USE_PARALLEL_DRAW_DEBUG
- /*Layers manage it for themselves*/
- if(vglite_task->t->type != LV_DRAW_TASK_TYPE_LAYER) {
- lv_area_t draw_area;
- if(!lv_area_intersect(&draw_area, &vglite_task->t->area, &vglite_task->t->clip_area))
- return;
-
- int32_t idx = u->base_unit.idx;
-
- lv_draw_rect_dsc_t rect_dsc;
- lv_draw_rect_dsc_init(&rect_dsc);
- rect_dsc.bg_color = lv_palette_main(idx % LV_PALETTE_LAST);
- rect_dsc.border_color = rect_dsc.bg_color;
- rect_dsc.bg_opa = LV_OPA_10;
- rect_dsc.border_opa = LV_OPA_80;
- rect_dsc.border_width = 1;
- lv_draw_sw_fill(vglite_task->t, &rect_dsc, &draw_area);
-
- lv_point_t txt_size;
- lv_text_get_size(&txt_size, "W", LV_FONT_DEFAULT, 0, 0, 100, LV_TEXT_FLAG_NONE);
-
- lv_area_t txt_area;
- txt_area.x1 = draw_area.x1;
- txt_area.y1 = draw_area.y1;
- txt_area.x2 = draw_area.x1 + txt_size.x - 1;
- txt_area.y2 = draw_area.y1 + txt_size.y - 1;
-
- lv_draw_rect_dsc_init(&rect_dsc);
- rect_dsc.bg_color = lv_color_white();
- lv_draw_sw_fill(vglite_task->t, &rect_dsc, &txt_area);
-
- char buf[8];
- lv_snprintf(buf, sizeof(buf), "%d", idx);
- lv_draw_label_dsc_t label_dsc;
- lv_draw_label_dsc_init(&label_dsc);
- label_dsc.color = lv_color_black();
- label_dsc.text = buf;
- lv_draw_sw_label(vglite_task->t, &label_dsc, &txt_area);
- }
-#endif
-}
-
-static inline void _vglite_cleanup_task(vglite_draw_task_t * task)
-{
- if(task->path != NULL) {
- VGLITE_CHECK_ERROR(vg_lite_clear_path(task->path));
- lv_free(task->path);
- }
- if(task->gradient != NULL) {
- VGLITE_CHECK_ERROR(vg_lite_clear_grad(task->gradient));
- lv_free(task->gradient);
- }
- if(task->path_data != NULL)
- lv_free(task->path_data);
-
- lv_free(task);
-}
-
-#if LV_USE_VGLITE_DRAW_ASYNC
-static inline void _vglite_queue_task(vglite_draw_task_t * task)
-{
- VGLITE_ASSERT_MSG(((_tail + 1) % VGLITE_TASK_BUF_SIZE) != _head, "VGLite task buffer full.");
-
- _draw_task_buf[_tail].task = task;
- _draw_task_buf[_tail].flushed = false;
- _tail = (_tail + 1) % VGLITE_TASK_BUF_SIZE;
-}
-
-static inline void _vglite_signal_task_ready(vglite_draw_task_t * task)
-{
- /* Signal the ready state to dispatcher. */
- task->t->state = LV_DRAW_TASK_STATE_READY;
- _head = (_head + 1) % VGLITE_TASK_BUF_SIZE;
-
- _vglite_cleanup_task(task);
- /* No need to cleanup the tasks in buffer as we advance with the _head. */
-}
-
-static inline void _vglite_signal_all_task_ready(void)
-{
- int end = (_head <= _tail) ? _tail : _tail + VGLITE_TASK_BUF_SIZE;
-
- for(int i = _head; i < end; i++) {
- vglite_draw_task_t * task = _draw_task_buf[i % VGLITE_TASK_BUF_SIZE].task;
-
- _vglite_signal_task_ready(task);
- }
-}
-
-static inline void _vglite_signal_flushed_task_ready(void)
-{
- if(vglite_cmd_buf_is_flushed()) {
- int end = (_head <= _tail) ? _tail : _tail + VGLITE_TASK_BUF_SIZE;
-
- for(int i = _head; i < end; i++) {
- if(_draw_task_buf[i % VGLITE_TASK_BUF_SIZE].flushed) {
- vglite_draw_task_t * task = _draw_task_buf[i % VGLITE_TASK_BUF_SIZE].task;
-
- _vglite_signal_task_ready(task);
-
- }
- else {
- /* Those tasks have been flushed now. */
- _draw_task_buf[i % VGLITE_TASK_BUF_SIZE].flushed = true;
- }
- }
- }
-}
-#endif
-
-#if LV_USE_VGLITE_DRAW_THREAD
-static void _vglite_render_thread_cb(void * ptr)
-{
- lv_draw_vglite_unit_t * u = ptr;
-
- lv_thread_sync_init(&u->sync);
- u->inited = true;
-
- while(1) {
- /* Wait for sync if there is no task set. */
- while(u->task_act == NULL
-#if LV_USE_VGLITE_DRAW_ASYNC
- /*
- * Wait for sync if wait_for_finish is triggered.
- * The thread will have to run and mark as complete any pending tasks.
- */
- && !u->wait_for_finish
-#endif
- ) {
- if(u->exit_status)
- break;
-
- lv_thread_sync_wait(&u->sync);
- }
-
- if(u->exit_status) {
- LV_LOG_INFO("Ready to exit VGLite draw thread.");
- break;
- }
-
- if(u->task_act) {
-#if LV_USE_VGLITE_DRAW_ASYNC
- _vglite_queue_task((void *)u->task_act);
-#endif
- _vglite_execute_drawing(u);
- }
-#if LV_USE_VGLITE_DRAW_ASYNC
- if(u->wait_for_finish) {
- vglite_wait_for_finish();
- _vglite_signal_all_task_ready();
- }
- else { /* u->task_act */
- _vglite_signal_flushed_task_ready();
- }
-#else
- /* Signal the ready state to dispatcher. */
- u->task_act->t->state = LV_DRAW_TASK_STATE_READY;
- _vglite_cleanup_task(u->task_act);
-#endif
-
- /* Cleanup draw unit running condition. */
-#if LV_USE_VGLITE_DRAW_ASYNC
- if(u->wait_for_finish)
- u->wait_for_finish = false;
- else
- u->task_act = NULL;
-#else
- u->task_act = NULL;
-#endif
-
- /* The draw unit is free now. Request a new dispatching as it can get a new task. */
- lv_draw_dispatch_request();
- }
-
- u->inited = false;
- lv_thread_sync_delete(&u->sync);
- LV_LOG_INFO("Exit VGLite draw thread.");
-}
-#endif
-
-#endif /*LV_USE_DRAW_VGLITE*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_draw_vglite.h b/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_draw_vglite.h
deleted file mode 100644
index 61dd1cd0d..000000000
--- a/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_draw_vglite.h
+++ /dev/null
@@ -1,101 +0,0 @@
-/**
- * @file lv_draw_vglite.h
- *
- */
-
-/**
- * Copyright 2023-2024 NXP
- *
- * SPDX-License-Identifier: MIT
- */
-
-#ifndef LV_DRAW_VGLITE_H
-#define LV_DRAW_VGLITE_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*********************
- * INCLUDES
- *********************/
-
-#include "../../../lv_conf_internal.h"
-
-#if LV_USE_DRAW_VGLITE
-#include "../../lv_draw_private.h"
-#include "../../../display/lv_display_private.h"
-#include "../../../misc/lv_area_private.h"
-
-#include "../../lv_draw_triangle.h"
-#include "../../lv_draw_label.h"
-#include "../../lv_draw_image.h"
-#include "../../lv_draw_line.h"
-#include "../../lv_draw_arc.h"
-#include "vg_lite.h"
-
-/*********************
- * DEFINES
- *********************/
-
-/**********************
- * TYPEDEFS
- **********************/
-
-typedef struct vglite_draw_task {
- lv_draw_task_t * t;
- vg_lite_path_t * path;
- vg_lite_linear_gradient_t * gradient;
- int32_t * path_data;
-} vglite_draw_task_t;
-
-typedef struct lv_draw_vglite_unit {
- lv_draw_unit_t base_unit;
- vglite_draw_task_t * task_act;
-#if LV_USE_OS
- lv_thread_sync_t sync;
- lv_thread_t thread;
- volatile bool inited;
- volatile bool exit_status;
-#endif
-#if LV_USE_VGLITE_DRAW_ASYNC
- volatile bool wait_for_finish;
-#endif
-} lv_draw_vglite_unit_t;
-
-/**********************
- * GLOBAL PROTOTYPES
- **********************/
-
-void lv_draw_buf_vglite_init_handlers(void);
-
-void lv_draw_vglite_init(void);
-
-void lv_draw_vglite_deinit(void);
-
-void lv_draw_vglite_arc(vglite_draw_task_t * vglite_task);
-
-void lv_draw_vglite_border(vglite_draw_task_t * vglite_task);
-
-void lv_draw_vglite_fill(vglite_draw_task_t * vglite_task);
-
-void lv_draw_vglite_img(vglite_draw_task_t * vglite_task);
-
-void lv_draw_vglite_label(vglite_draw_task_t * vglite_task);
-
-void lv_draw_vglite_layer(vglite_draw_task_t * vglite_task);
-
-void lv_draw_vglite_line(vglite_draw_task_t * vglite_task);
-
-void lv_draw_vglite_triangle(vglite_draw_task_t * vglite_task);
-
-/**********************
- * MACROS
- **********************/
-#endif /*LV_USE_DRAW_VGLITE*/
-
-#ifdef __cplusplus
-} /*extern "C"*/
-#endif
-
-#endif /*LV_DRAW_VGLITE_H*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_draw_vglite_arc.c b/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_draw_vglite_arc.c
deleted file mode 100644
index d58a1bbec..000000000
--- a/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_draw_vglite_arc.c
+++ /dev/null
@@ -1,684 +0,0 @@
-/**
- * @file lv_draw_vglite_arc.c
- *
- */
-
-/**
- * Copyright 2021-2024 NXP
- *
- * SPDX-License-Identifier: MIT
- */
-
-/*********************
- * INCLUDES
- *********************/
-
-#include "lv_draw_vglite.h"
-
-#if LV_USE_DRAW_VGLITE
-#include "lv_vglite_buf.h"
-#include "lv_vglite_path.h"
-#include "lv_vglite_utils.h"
-
-#include "../../../stdlib/lv_string.h"
-#include
-
-/*********************
- * DEFINES
- *********************/
-
-#define T_FRACTION 16384.0f
-
-#define DICHOTO_ITER 5
-
-static const uint16_t TperDegree[90] = {
- 0, 174, 348, 522, 697, 873, 1049, 1226, 1403, 1581,
- 1759, 1938, 2117, 2297, 2477, 2658, 2839, 3020, 3202, 3384,
- 3567, 3749, 3933, 4116, 4300, 4484, 4668, 4852, 5037, 5222,
- 5407, 5592, 5777, 5962, 6148, 6334, 6519, 6705, 6891, 7077,
- 7264, 7450, 7636, 7822, 8008, 8193, 8378, 8564, 8750, 8936,
- 9122, 9309, 9495, 9681, 9867, 10052, 10238, 10424, 10609, 10794,
- 10979, 11164, 11349, 11534, 11718, 11902, 12086, 12270, 12453, 12637,
- 12819, 13002, 13184, 13366, 13547, 13728, 13909, 14089, 14269, 14448,
- 14627, 14805, 14983, 15160, 15337, 15513, 15689, 15864, 16038, 16212
-};
-
-/**********************
- * TYPEDEFS
- **********************/
-
-/* intermediate arc params */
-typedef struct _vg_arc {
- uint32_t angle; /* angle <90deg */
- int32_t quarter; /* 0-3 counter-clockwise */
- int32_t rad; /* radius */
- int32_t p0x; /* point P0 */
- int32_t p0y;
- int32_t p1x; /* point P1 */
- int32_t p1y;
- int32_t p2x; /* point P2 */
- int32_t p2y;
- int32_t p3x; /* point P3 */
- int32_t p3y;
-} vg_arc;
-
-typedef struct _cubic_cont_pt {
- float p0;
- float p1;
- float p2;
- float p3;
-} cubic_cont_pt;
-
-/**********************
- * STATIC PROTOTYPES
- **********************/
-
-/**
- * Draw arc shape with effects
- *
- * @param[in] center Arc center with relative coordinates
- * @param[in] clip_area Clip area with relative coordinates to dest buff
- * @param[in] dsc Arc description structure (width, rounded ending, opacity)
- *
- */
-static void _vglite_draw_arc(vglite_draw_task_t * vglite_task, const lv_point_t * center,
- const lv_area_t * clip_area, const lv_draw_arc_dsc_t * dsc);
-
-/**********************
- * STATIC VARIABLES
- **********************/
-
-/**********************
- * MACROS
- **********************/
-
-/**********************
- * GLOBAL FUNCTIONS
- **********************/
-
-void lv_draw_vglite_arc(vglite_draw_task_t * vglite_task)
-{
- lv_draw_task_t * t = vglite_task->t;
- const lv_draw_arc_dsc_t * dsc = t->draw_dsc;
-
- if(dsc->opa <= (lv_opa_t)LV_OPA_MIN)
- return;
- if(dsc->width == 0)
- return;
- if(dsc->start_angle == dsc->end_angle)
- return;
-
- lv_layer_t * layer = t->target_layer;
- lv_point_t center = {dsc->center.x - layer->buf_area.x1, dsc->center.y - layer->buf_area.y1};
-
- lv_area_t clip_area;
- lv_area_copy(&clip_area, &t->clip_area);
- lv_area_move(&clip_area, -layer->buf_area.x1, -layer->buf_area.y1);
-
- _vglite_draw_arc(vglite_task, ¢er, &clip_area, dsc);
-}
-
-/**********************
- * STATIC FUNCTIONS
- **********************/
-
-static void _copy_arc(vg_arc * dst, vg_arc * src)
-{
- dst->quarter = src->quarter;
- dst->rad = src->rad;
- dst->angle = src->angle;
- dst->p0x = src->p0x;
- dst->p1x = src->p1x;
- dst->p2x = src->p2x;
- dst->p3x = src->p3x;
- dst->p0y = src->p0y;
- dst->p1y = src->p1y;
- dst->p2y = src->p2y;
- dst->p3y = src->p3y;
-}
-
-/**
- * Rotate the point according given rotation angle rotation center is 0,0
- */
-static void _rotate_point(int16_t angle, int32_t * x, int32_t * y)
-{
- int32_t ori_x = *x;
- int32_t ori_y = *y;
- int16_t alpha = angle;
- *x = ((lv_trigo_cos(alpha) * ori_x) / LV_TRIGO_SIN_MAX) - ((lv_trigo_sin(alpha) * ori_y) / LV_TRIGO_SIN_MAX);
- *y = ((lv_trigo_sin(alpha) * ori_x) / LV_TRIGO_SIN_MAX) + ((lv_trigo_cos(alpha) * ori_y) / LV_TRIGO_SIN_MAX);
-}
-
-/**
- * Set full arc control points depending on quarter.
- * Control points match the best approximation of a circle.
- * Arc Quarter position is:
- * Q2 | Q3
- * ---+---
- * Q1 | Q0
- */
-static void _set_full_arc(vg_arc * fullarc)
-{
- /* the tangent length for the bezier circle approx */
- float tang = ((float)fullarc->rad) * BEZIER_OPTIM_CIRCLE;
- switch(fullarc->quarter) {
- case 0:
- /* first quarter */
- fullarc->p0x = fullarc->rad;
- fullarc->p0y = 0;
- fullarc->p1x = fullarc->rad;
- fullarc->p1y = (int32_t)tang;
- fullarc->p2x = (int32_t)tang;
- fullarc->p2y = fullarc->rad;
- fullarc->p3x = 0;
- fullarc->p3y = fullarc->rad;
- break;
- case 1:
- /* second quarter */
- fullarc->p0x = 0;
- fullarc->p0y = fullarc->rad;
- fullarc->p1x = 0 - (int32_t)tang;
- fullarc->p1y = fullarc->rad;
- fullarc->p2x = 0 - fullarc->rad;
- fullarc->p2y = (int32_t)tang;
- fullarc->p3x = 0 - fullarc->rad;
- fullarc->p3y = 0;
- break;
- case 2:
- /* third quarter */
- fullarc->p0x = 0 - fullarc->rad;
- fullarc->p0y = 0;
- fullarc->p1x = 0 - fullarc->rad;
- fullarc->p1y = 0 - (int32_t)tang;
- fullarc->p2x = 0 - (int32_t)tang;
- fullarc->p2y = 0 - fullarc->rad;
- fullarc->p3x = 0;
- fullarc->p3y = 0 - fullarc->rad;
- break;
- case 3:
- /* fourth quarter */
- fullarc->p0x = 0;
- fullarc->p0y = 0 - fullarc->rad;
- fullarc->p1x = (int32_t)tang;
- fullarc->p1y = 0 - fullarc->rad;
- fullarc->p2x = fullarc->rad;
- fullarc->p2y = 0 - (int32_t)tang;
- fullarc->p3x = fullarc->rad;
- fullarc->p3y = 0;
- break;
- default:
- VGLITE_ASSERT_MSG(false, "Invalid arc quarter.");
- break;
- }
-}
-
-/**
- * Linear interpolation between two points 'a' and 'b'
- * 't' parameter is the proportion ratio expressed in range [0 ; T_FRACTION ]
- */
-static inline float _lerp(float coord_a, float coord_b, uint16_t t)
-{
- float tf = (float)t;
- return ((T_FRACTION - tf) * coord_a + tf * coord_b) / T_FRACTION;
-}
-
-/**
- * Computes a point of bezier curve given 't' param
- */
-static inline float _comp_bezier_point(float t, cubic_cont_pt cp)
-{
- float t_sq = t * t;
- float inv_t_sq = (1.0f - t) * (1.0f - t);
- float apt = (1.0f - t) * inv_t_sq * cp.p0 + 3.0f * inv_t_sq * t * cp.p1 + 3.0f * (1.0f - t) * t_sq * cp.p2 + t * t_sq *
- cp.p3;
- return apt;
-}
-
-/**
- * Find parameter 't' in curve at point 'pt'
- * proceed by dichotomy on only 1 dimension,
- * works only if the curve is monotonic
- * bezier curve is defined by control points [p0 p1 p2 p3]
- * 'dec' tells if curve is decreasing (true) or increasing (false)
- */
-static uint16_t _get_bez_t_from_pos(float pt, cubic_cont_pt cp, bool dec)
-{
- /* initialize dichotomy with boundary 't' values */
- float t_low = 0.0f;
- float t_mid = 0.5f;
- float t_hig = 1.0f;
- float a_pt;
- /* dichotomy loop */
- for(int i = 0; i < DICHOTO_ITER; i++) {
- a_pt = _comp_bezier_point(t_mid, cp);
- /* check mid-point position on bezier curve versus targeted point */
- if((a_pt > pt) != dec) {
- t_hig = t_mid;
- }
- else {
- t_low = t_mid;
- }
- /* define new 't' param for mid-point */
- t_mid = (t_low + t_hig) / 2.0f;
- }
- /* return parameter 't' in integer range [0 ; T_FRACTION] */
- return (uint16_t)floorf(t_mid * T_FRACTION + 0.5f);
-}
-
-/**
- * Gives relative coords of the control points
- * for the sub-arc starting at angle with given angle span
- */
-static void _get_subarc_control_points(vg_arc * arc, uint32_t span)
-{
- vg_arc fullarc = {0};
- fullarc.angle = arc->angle;
- fullarc.quarter = arc->quarter;
- fullarc.rad = arc->rad;
- _set_full_arc(&fullarc);
-
- /* special case of full arc */
- if(arc->angle == 90) {
- _copy_arc(arc, &fullarc);
- return;
- }
-
- /* compute 1st arc using the geometric construction of curve */
- uint16_t t2 = TperDegree[arc->angle + span];
-
- /* lerp for A */
- float a2x = _lerp((float)fullarc.p0x, (float)fullarc.p1x, t2);
- float a2y = _lerp((float)fullarc.p0y, (float)fullarc.p1y, t2);
- /* lerp for B */
- float b2x = _lerp((float)fullarc.p1x, (float)fullarc.p2x, t2);
- float b2y = _lerp((float)fullarc.p1y, (float)fullarc.p2y, t2);
- /* lerp for C */
- float c2x = _lerp((float)fullarc.p2x, (float)fullarc.p3x, t2);
- float c2y = _lerp((float)fullarc.p2y, (float)fullarc.p3y, t2);
-
- /* lerp for D */
- float d2x = _lerp(a2x, b2x, t2);
- float d2y = _lerp(a2y, b2y, t2);
- /* lerp for E */
- float e2x = _lerp(b2x, c2x, t2);
- float e2y = _lerp(b2y, c2y, t2);
-
- float pt2x = _lerp(d2x, e2x, t2);
- float pt2y = _lerp(d2y, e2y, t2);
-
- /* compute sub-arc using the geometric construction of curve */
- uint16_t t1 = TperDegree[arc->angle];
-
- /* lerp for A */
- float a1x = _lerp((float)fullarc.p0x, (float)fullarc.p1x, t1);
- float a1y = _lerp((float)fullarc.p0y, (float)fullarc.p1y, t1);
- /* lerp for B */
- float b1x = _lerp((float)fullarc.p1x, (float)fullarc.p2x, t1);
- float b1y = _lerp((float)fullarc.p1y, (float)fullarc.p2y, t1);
- /* lerp for C */
- float c1x = _lerp((float)fullarc.p2x, (float)fullarc.p3x, t1);
- float c1y = _lerp((float)fullarc.p2y, (float)fullarc.p3y, t1);
-
- /* lerp for D */
- float d1x = _lerp(a1x, b1x, t1);
- float d1y = _lerp(a1y, b1y, t1);
- /* lerp for E */
- float e1x = _lerp(b1x, c1x, t1);
- float e1y = _lerp(b1y, c1y, t1);
-
- float pt1x = _lerp(d1x, e1x, t1);
- float pt1y = _lerp(d1y, e1y, t1);
-
- /* find the 't3' parameter for point P(t1) on the sub-arc [P0 A2 D2 P(t2)] using dichotomy
- * use position of x axis only */
- uint16_t t3;
- t3 = _get_bez_t_from_pos(pt1x,
- (cubic_cont_pt) {
- .p0 = ((float)fullarc.p0x), .p1 = a2x, .p2 = d2x, .p3 = pt2x
- },
- (bool)(pt2x < (float)fullarc.p0x));
-
- /* lerp for B */
- float b3x = _lerp(a2x, d2x, t3);
- float b3y = _lerp(a2y, d2y, t3);
- /* lerp for C */
- float c3x = _lerp(d2x, pt2x, t3);
- float c3y = _lerp(d2y, pt2y, t3);
-
- /* lerp for E */
- float e3x = _lerp(b3x, c3x, t3);
- float e3y = _lerp(b3y, c3y, t3);
-
- arc->p0x = (int32_t)floorf(0.5f + pt1x);
- arc->p0y = (int32_t)floorf(0.5f + pt1y);
- arc->p1x = (int32_t)floorf(0.5f + e3x);
- arc->p1y = (int32_t)floorf(0.5f + e3y);
- arc->p2x = (int32_t)floorf(0.5f + c3x);
- arc->p2y = (int32_t)floorf(0.5f + c3y);
- arc->p3x = (int32_t)floorf(0.5f + pt2x);
- arc->p3y = (int32_t)floorf(0.5f + pt2y);
-}
-
-/**
- * Gives relative coords of the control points
- */
-static void _get_arc_control_points(vg_arc * arc, bool start)
-{
- vg_arc fullarc = {0};
- fullarc.angle = arc->angle;
- fullarc.quarter = arc->quarter;
- fullarc.rad = arc->rad;
- _set_full_arc(&fullarc);
-
- /* special case of full arc */
- if(arc->angle == 90) {
- _copy_arc(arc, &fullarc);
- return;
- }
-
- /* compute sub-arc using the geometric construction of curve */
- uint16_t t = TperDegree[arc->angle];
- /* lerp for A */
- float ax = _lerp((float)fullarc.p0x, (float)fullarc.p1x, t);
- float ay = _lerp((float)fullarc.p0y, (float)fullarc.p1y, t);
- /* lerp for B */
- float bx = _lerp((float)fullarc.p1x, (float)fullarc.p2x, t);
- float by = _lerp((float)fullarc.p1y, (float)fullarc.p2y, t);
- /* lerp for C */
- float cx = _lerp((float)fullarc.p2x, (float)fullarc.p3x, t);
- float cy = _lerp((float)fullarc.p2y, (float)fullarc.p3y, t);
-
- /* lerp for D */
- float dx = _lerp(ax, bx, t);
- float dy = _lerp(ay, by, t);
- /* lerp for E */
- float ex = _lerp(bx, cx, t);
- float ey = _lerp(by, cy, t);
-
- /* sub-arc's control points are tangents of DeCasteljau's algorithm */
- if(start) {
- arc->p0x = (int32_t)floorf(0.5f + _lerp(dx, ex, t));
- arc->p0y = (int32_t)floorf(0.5f + _lerp(dy, ey, t));
- arc->p1x = (int32_t)floorf(0.5f + ex);
- arc->p1y = (int32_t)floorf(0.5f + ey);
- arc->p2x = (int32_t)floorf(0.5f + cx);
- arc->p2y = (int32_t)floorf(0.5f + cy);
- arc->p3x = fullarc.p3x;
- arc->p3y = fullarc.p3y;
- }
- else {
- arc->p0x = fullarc.p0x;
- arc->p0y = fullarc.p0y;
- arc->p1x = (int32_t)floorf(0.5f + ax);
- arc->p1y = (int32_t)floorf(0.5f + ay);
- arc->p2x = (int32_t)floorf(0.5f + dx);
- arc->p2y = (int32_t)floorf(0.5f + dy);
- arc->p3x = (int32_t)floorf(0.5f + _lerp(dx, ex, t));
- arc->p3y = (int32_t)floorf(0.5f + _lerp(dy, ey, t));
- }
-}
-
-/**
- * Add the arc control points into the path data for vglite,
- * taking into account the real center of the arc (translation).
- * arc_path: (in/out) the path data array for vglite
- * pidx: (in/out) index of last element added in arc_path
- * q_arc: (in) the arc data containing control points
- * center: (in) the center of the circle in draw coordinates
- * cw: (in) true if arc is clockwise
- */
-static void _add_split_arc_path(int32_t * arc_path, uint32_t * pidx, vg_arc * q_arc, const lv_point_t * center, bool cw)
-{
- /* assumes first control point already in array arc_path[] */
- uint32_t idx = *pidx;
- if(cw) {
-#if BEZIER_DBG_CONTROL_POINTS
- arc_path[idx++] = VLC_OP_LINE;
- arc_path[idx++] = q_arc->p1x + center->x;
- arc_path[idx++] = q_arc->p1y + center->y;
- arc_path[idx++] = VLC_OP_LINE;
- arc_path[idx++] = q_arc->p2x + center->x;
- arc_path[idx++] = q_arc->p2y + center->y;
- arc_path[idx++] = VLC_OP_LINE;
- arc_path[idx++] = q_arc->p3x + center->x;
- arc_path[idx++] = q_arc->p3y + center->y;
-#else
- arc_path[idx++] = VLC_OP_CUBIC;
- arc_path[idx++] = q_arc->p1x + center->x;
- arc_path[idx++] = q_arc->p1y + center->y;
- arc_path[idx++] = q_arc->p2x + center->x;
- arc_path[idx++] = q_arc->p2y + center->y;
- arc_path[idx++] = q_arc->p3x + center->x;
- arc_path[idx++] = q_arc->p3y + center->y;
-#endif
- }
- else { /* reverse points order when counter-clockwise */
-#if BEZIER_DBG_CONTROL_POINTS
- arc_path[idx++] = VLC_OP_LINE;
- arc_path[idx++] = q_arc->p2x + center->x;
- arc_path[idx++] = q_arc->p2y + center->y;
- arc_path[idx++] = VLC_OP_LINE;
- arc_path[idx++] = q_arc->p1x + center->x;
- arc_path[idx++] = q_arc->p1y + center->y;
- arc_path[idx++] = VLC_OP_LINE;
- arc_path[idx++] = q_arc->p0x + center->x;
- arc_path[idx++] = q_arc->p0y + center->y;
-#else
- arc_path[idx++] = VLC_OP_CUBIC;
- arc_path[idx++] = q_arc->p2x + center->x;
- arc_path[idx++] = q_arc->p2y + center->y;
- arc_path[idx++] = q_arc->p1x + center->x;
- arc_path[idx++] = q_arc->p1y + center->y;
- arc_path[idx++] = q_arc->p0x + center->x;
- arc_path[idx++] = q_arc->p0y + center->y;
-#endif
- }
- /* update index i n path array*/
- *pidx = idx;
-}
-
-static void _add_arc_path(int32_t * arc_path, uint32_t * pidx, uint32_t radius,
- int32_t start_angle, int32_t end_angle, const lv_point_t * center, bool cw)
-{
- /* set number of arcs to draw */
- vg_arc q_arc;
- uint32_t start_arc_angle = start_angle % 90;
- uint32_t end_arc_angle = end_angle % 90;
- uint32_t inv_start_arc_angle = (start_arc_angle > 0) ? (90 - start_arc_angle) : 0;
- uint32_t nbarc = (end_angle - start_angle - inv_start_arc_angle - end_arc_angle) / 90;
- q_arc.rad = radius;
-
- /* handle special case of start & end point in the same quarter */
- if(((start_angle / 90) == (end_angle / 90)) && (nbarc <= 0)) {
- q_arc.quarter = (start_angle / 90) % 4;
- q_arc.angle = start_arc_angle;
- _get_subarc_control_points(&q_arc, end_arc_angle - start_arc_angle);
- _add_split_arc_path(arc_path, pidx, &q_arc, center, cw);
- return;
- }
-
- if(cw) {
- /* partial starting arc */
- if(start_arc_angle > 0) {
- q_arc.quarter = (start_angle / 90) % 4;
- q_arc.angle = start_arc_angle;
- /* get cubic points relative to center */
- _get_arc_control_points(&q_arc, true);
- /* put cubic points in arc_path */
- _add_split_arc_path(arc_path, pidx, &q_arc, center, cw);
- }
- /* full arcs */
- for(uint32_t q = 0; q < nbarc ; q++) {
- q_arc.quarter = (q + ((start_angle + 89) / 90)) % 4;
- q_arc.angle = 90;
- /* get cubic points relative to center */
- _get_arc_control_points(&q_arc, true); /* 2nd parameter 'start' ignored */
- /* put cubic points in arc_path */
- _add_split_arc_path(arc_path, pidx, &q_arc, center, cw);
- }
- /* partial ending arc */
- if(end_arc_angle > 0) {
- q_arc.quarter = (end_angle / 90) % 4;
- q_arc.angle = end_arc_angle;
- /* get cubic points relative to center */
- _get_arc_control_points(&q_arc, false);
- /* put cubic points in arc_path */
- _add_split_arc_path(arc_path, pidx, &q_arc, center, cw);
- }
-
- }
- else { /* counter clockwise */
-
- /* partial ending arc */
- if(end_arc_angle > 0) {
- q_arc.quarter = (end_angle / 90) % 4;
- q_arc.angle = end_arc_angle;
- /* get cubic points relative to center */
- _get_arc_control_points(&q_arc, false);
- /* put cubic points in arc_path */
- _add_split_arc_path(arc_path, pidx, &q_arc, center, cw);
- }
- /* full arcs */
- for(int32_t q = nbarc - 1; q >= 0; q--) {
- q_arc.quarter = (q + ((start_angle + 89) / 90)) % 4;
- q_arc.angle = 90;
- /* get cubic points relative to center */
- _get_arc_control_points(&q_arc, true); /* 2nd parameter 'start' ignored */
- /* put cubic points in arc_path */
- _add_split_arc_path(arc_path, pidx, &q_arc, center, cw);
- }
- /* partial starting arc */
- if(start_arc_angle > 0) {
- q_arc.quarter = (start_angle / 90) % 4;
- q_arc.angle = start_arc_angle;
- /* get cubic points relative to center */
- _get_arc_control_points(&q_arc, true);
- /* put cubic points in arc_path */
- _add_split_arc_path(arc_path, pidx, &q_arc, center, cw);
- }
- }
-}
-
-static void _vglite_draw_arc(vglite_draw_task_t * vglite_task, const lv_point_t * center,
- const lv_area_t * clip_area, const lv_draw_arc_dsc_t * dsc)
-{
- vg_lite_path_t * path = lv_malloc_zeroed(sizeof(vg_lite_path_t));
- LV_ASSERT_MALLOC(path);
- vglite_task->path = path;
- int16_t start_angle = dsc->start_angle;
- int16_t end_angle = dsc->end_angle;
-
- /* be sure end_angle > start_angle */
- if(end_angle < start_angle)
- end_angle += 360;
-
- bool donut = ((end_angle - start_angle) % 360 == 0) ? true : false;
- vg_lite_buffer_t * dest_buf = vglite_get_dest_buf();
-
- int32_t * arc_path = lv_malloc_zeroed(ARC_PATH_DATA_MAX_SIZE * sizeof(int32_t));
- LV_ASSERT_MALLOC(arc_path);
- vglite_task->path_data = arc_path;
-
- /*** Init path ***/
- int32_t width = dsc->width; /* inner arc radius = outer arc radius - width */
- uint16_t radius = dsc->radius;
-
- if(width > radius)
- width = radius;
-
- uint32_t pidx = 0;
- int32_t cp_x, cp_y; /* control point coords */
-
- /* first control point of curve */
- cp_x = radius;
- cp_y = 0;
- _rotate_point(start_angle, &cp_x, &cp_y);
- arc_path[pidx++] = VLC_OP_MOVE;
- arc_path[pidx++] = center->x + cp_x;
- arc_path[pidx++] = center->y + cp_y;
-
- /* draw 1-5 outer quarters */
- _add_arc_path(arc_path, &pidx, radius, start_angle, end_angle, center, true);
-
- if(donut) {
- /* close outer circle */
- cp_x = radius;
- cp_y = 0;
- _rotate_point(start_angle, &cp_x, &cp_y);
- arc_path[pidx++] = VLC_OP_LINE;
- arc_path[pidx++] = center->x + cp_x;
- arc_path[pidx++] = center->y + cp_y;
- /* start inner circle */
- cp_x = radius - width;
- cp_y = 0;
- _rotate_point(start_angle, &cp_x, &cp_y);
- arc_path[pidx++] = VLC_OP_MOVE;
- arc_path[pidx++] = center->x + cp_x;
- arc_path[pidx++] = center->y + cp_y;
-
- }
- else if(dsc->rounded != 0U) { /* 1st rounded arc ending */
- cp_x = radius - width / 2;
- cp_y = 0;
- _rotate_point(end_angle, &cp_x, &cp_y);
- lv_point_t round_center = {center->x + cp_x, center->y + cp_y};
- _add_arc_path(arc_path, &pidx, width / 2, end_angle, (end_angle + 180),
- &round_center, true);
-
- }
- else { /* 1st flat ending */
- cp_x = radius - width;
- cp_y = 0;
- _rotate_point(end_angle, &cp_x, &cp_y);
- arc_path[pidx++] = VLC_OP_LINE;
- arc_path[pidx++] = center->x + cp_x;
- arc_path[pidx++] = center->y + cp_y;
- }
-
- /* draw 1-5 inner quarters */
- _add_arc_path(arc_path, &pidx, radius - width, start_angle, end_angle, center, false);
-
- /* last control point of curve */
- if(donut) { /* close the loop */
- cp_x = radius - width;
- cp_y = 0;
- _rotate_point(start_angle, &cp_x, &cp_y);
- arc_path[pidx++] = VLC_OP_LINE;
- arc_path[pidx++] = center->x + cp_x;
- arc_path[pidx++] = center->y + cp_y;
-
- }
- else if(dsc->rounded != 0U) { /* 2nd rounded arc ending */
- cp_x = radius - width / 2;
- cp_y = 0;
- _rotate_point(start_angle, &cp_x, &cp_y);
- lv_point_t round_center = {center->x + cp_x, center->y + cp_y};
- _add_arc_path(arc_path, &pidx, width / 2, (start_angle + 180), (start_angle + 360),
- &round_center, true);
-
- }
- else { /* 2nd flat ending */
- cp_x = radius;
- cp_y = 0;
- _rotate_point(start_angle, &cp_x, &cp_y);
- arc_path[pidx++] = VLC_OP_LINE;
- arc_path[pidx++] = center->x + cp_x;
- arc_path[pidx++] = center->y + cp_y;
- }
-
- arc_path[pidx++] = VLC_OP_END;
-
- VGLITE_CHECK_ERROR(vg_lite_init_path(path, VG_LITE_S32, VG_LITE_HIGH, (uint32_t)pidx * sizeof(int32_t), arc_path,
- (vg_lite_float_t)clip_area->x1, (vg_lite_float_t)clip_area->y1,
- ((vg_lite_float_t)clip_area->x2) + 1.0f, ((vg_lite_float_t)clip_area->y2) + 1.0f));
-
- lv_color32_t col32 = lv_color_to_32(dsc->color, dsc->opa);
- vg_lite_color_t vgcol = vglite_get_color(col32, false);
-
- /*** Draw arc ***/
- VGLITE_CHECK_ERROR(vg_lite_draw(dest_buf, path, VG_LITE_FILL_NON_ZERO, NULL, VG_LITE_BLEND_SRC_OVER, vgcol));
-
- vglite_run();
-}
-
-#endif /*LV_USE_DRAW_VGLITE*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_draw_vglite_border.c b/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_draw_vglite_border.c
deleted file mode 100644
index c04c9926c..000000000
--- a/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_draw_vglite_border.c
+++ /dev/null
@@ -1,248 +0,0 @@
-/**
- * @file lv_draw_vglite_border.c
- *
- */
-
-/**
- * Copyright 2022-2024 NXP
- *
- * SPDX-License-Identifier: MIT
- */
-
-/*********************
- * INCLUDES
- *********************/
-
-#include "lv_draw_vglite.h"
-
-#if LV_USE_DRAW_VGLITE
-#include "lv_vglite_buf.h"
-#include "lv_vglite_path.h"
-#include "lv_vglite_utils.h"
-
-#include
-
-/*********************
- * DEFINES
- *********************/
-
-/*********************
- * DEFINES
- *********************/
-
-/*** Define maximum numbers of rectangles needed to clip partial borders ***/
-#define MAX_NUM_RECTANGLES 4
-
-/**********************
- * TYPEDEFS
- **********************/
-
-typedef struct scissoring_rects {
- vg_lite_rectangle_t rect[MAX_NUM_RECTANGLES];
- uint32_t num_rect;
-} scissoring_rects_t ;
-
-/**********************
- * STATIC PROTOTYPES
- **********************/
-
-/**
- * Draw rectangle border/outline shape with effects (rounded corners, opacity)
- *
- * @param[in] coords Coordinates of the rectangle border/outline (relative to dest buff)
- * @param[in] clip_area Clip area with relative coordinates to dest buff
- * @param[in] dsc Description of the rectangle border/outline
- *
- */
-static void _vglite_draw_border(vglite_draw_task_t * task, const lv_area_t * coords,
- const lv_area_t * clip_area, const lv_draw_border_dsc_t * dsc);
-
-/**
- * Create scissor area based on the border side
- *
- * @param[in] coords Coordinates of the rectangle border/outline (relative to dest buff)
- * @param[in] line_width Width of the line
- * @param[in] border_side Sides of the border
- * @param[in] radius Radius of the border
- * @param[out] scissoring_rects Struct that contains the array of scissors
- *
- */
-
-static void _border_set_scissoring(const lv_area_t * coords, int32_t line_width,
- uint32_t border_side, int32_t radius,
- scissoring_rects_t * scissoring_rects);
-
-/**********************
- * STATIC VARIABLES
- **********************/
-
-/**********************
- * MACROS
- **********************/
-
-/**********************
- * GLOBAL FUNCTIONS
- **********************/
-
-void lv_draw_vglite_border(vglite_draw_task_t * vglite_task)
-{
- const lv_draw_border_dsc_t * dsc = vglite_task->t->draw_dsc;
- const lv_area_t * coords = &vglite_task->t->area;
-
- if(dsc->opa <= (lv_opa_t)LV_OPA_MIN)
- return;
- if(dsc->width == 0)
- return;
- if(dsc->side == (lv_border_side_t)LV_BORDER_SIDE_NONE)
- return;
-
- lv_layer_t * layer = vglite_task->t->target_layer;
- lv_area_t inward_coords;
- int32_t width = dsc->width;
-
- /* Move border inwards to align with software rendered border */
- inward_coords.x1 = coords->x1 + ceil(width / 2.0f);
- inward_coords.x2 = coords->x2 - floor(width / 2.0f);
- inward_coords.y1 = coords->y1 + ceil(width / 2.0f);
- inward_coords.y2 = coords->y2 - floor(width / 2.0f);
-
- lv_area_move(&inward_coords, -layer->buf_area.x1, -layer->buf_area.y1);
-
- lv_area_t clip_area;
- lv_area_copy(&clip_area, &vglite_task->t->clip_area);
- lv_area_move(&clip_area, -layer->buf_area.x1, -layer->buf_area.y1);
-
- lv_area_t clipped_coords;
- if(!lv_area_intersect(&clipped_coords, &inward_coords, &clip_area))
- return; /*Fully clipped, nothing to do*/
-
- _vglite_draw_border(vglite_task, &inward_coords, &clip_area, dsc);
-}
-
-/**********************
- * STATIC FUNCTIONS
- **********************/
-
-static void _border_set_scissoring(const lv_area_t * coords, int32_t line_width,
- uint32_t border_side, int32_t radius,
- scissoring_rects_t * scissoring_rects)
-{
- int32_t rect_width = coords->x2 - coords->x1;
- int32_t rect_height = coords->y2 - coords->y1;
- int32_t shortest_side = LV_MIN(rect_width, rect_height);
- int32_t final_radius = LV_MIN(radius, shortest_side / 2);
-
- if(border_side & LV_BORDER_SIDE_TOP) {
- scissoring_rects->rect[scissoring_rects->num_rect].x = coords->x1 - ceil(line_width / 2.0f);
- scissoring_rects->rect[scissoring_rects->num_rect].y = coords->y1 - ceil(line_width / 2.0f);
- scissoring_rects->rect[scissoring_rects->num_rect].width = coords->x2 - coords->x1 + line_width;
- scissoring_rects->rect[scissoring_rects->num_rect].height = final_radius + ceil(line_width / 2.0f);
- scissoring_rects->num_rect++;
- }
-
- if(border_side & LV_BORDER_SIDE_LEFT) {
- scissoring_rects->rect[scissoring_rects->num_rect].x = coords->x1 - ceil(line_width / 2.0f);
- scissoring_rects->rect[scissoring_rects->num_rect].y = coords->y1 - ceil(line_width / 2.0f);
- scissoring_rects->rect[scissoring_rects->num_rect].width = final_radius + ceil(line_width / 2.0f);
- scissoring_rects->rect[scissoring_rects->num_rect].height = coords->y2 - coords->y1 + line_width + 1;
- scissoring_rects->num_rect++;
- }
-
- if(border_side & LV_BORDER_SIDE_RIGHT) {
- scissoring_rects->rect[scissoring_rects->num_rect].x = coords->x2 - final_radius + 1;
- scissoring_rects->rect[scissoring_rects->num_rect].y = coords->y1 - ceil(line_width / 2.0f);
- scissoring_rects->rect[scissoring_rects->num_rect].width = final_radius + ceil(line_width / 2.0f);
- scissoring_rects->rect[scissoring_rects->num_rect].height = coords->y2 - coords->y1 + line_width + 1;
- scissoring_rects->num_rect++;
- }
-
- if(border_side & LV_BORDER_SIDE_BOTTOM) {
- scissoring_rects->rect[scissoring_rects->num_rect].x = coords->x1 - ceil(line_width / 2.0f);
- scissoring_rects->rect[scissoring_rects->num_rect].y = coords->y2 - final_radius + 1;
- scissoring_rects->rect[scissoring_rects->num_rect].width = coords->x2 - coords->x1 + line_width;
- scissoring_rects->rect[scissoring_rects->num_rect].height = final_radius + ceil(line_width / 2.0f);
- scissoring_rects->num_rect++;
- }
-}
-
-static void _vglite_draw_border(vglite_draw_task_t * vglite_task, const lv_area_t * coords,
- const lv_area_t * clip_area, const lv_draw_border_dsc_t * dsc)
-{
- int32_t radius = dsc->radius;
- vg_lite_buffer_t * buf = vglite_get_dest_buf();
-
- if(radius < 0)
- return;
-
- int32_t border_half = (int32_t)floor(dsc->width / 2.0f);
- if(radius > border_half)
- radius = radius - border_half;
-
- vg_lite_cap_style_t cap_style = (radius) ? VG_LITE_CAP_ROUND : VG_LITE_CAP_BUTT;
- vg_lite_join_style_t join_style = (radius) ? VG_LITE_JOIN_ROUND : VG_LITE_JOIN_MITER;
-
- /*** Init path ***/
- int32_t * path_data = lv_malloc_zeroed(RECT_PATH_DATA_MAX_SIZE * sizeof(int32_t));
- LV_ASSERT_MALLOC(path_data);
- vglite_task->path_data = path_data;
-
- uint32_t path_data_size;
- vglite_create_rect_path_data(path_data, &path_data_size, radius, coords);
- vg_lite_quality_t path_quality = radius > 0 ? VG_LITE_HIGH : VG_LITE_MEDIUM;
-
- vg_lite_path_t * path = lv_malloc_zeroed(sizeof(vg_lite_path_t));
- LV_ASSERT_MALLOC(path);
- vglite_task->path = path;
- VGLITE_CHECK_ERROR(vg_lite_init_path(path, VG_LITE_S32, path_quality, path_data_size, path_data,
- (vg_lite_float_t)clip_area->x1, (vg_lite_float_t)clip_area->y1,
- ((vg_lite_float_t)clip_area->x2) + 1.0f, ((vg_lite_float_t)clip_area->y2) + 1.0f));
-
- lv_color32_t col32 = lv_color_to_32(dsc->color, dsc->opa);
- vg_lite_color_t vgcol = vglite_get_color(col32, false);
-
- int32_t line_width = dsc->width;
- lv_border_side_t border_side = dsc->side;
-
- scissoring_rects_t scissoring_rects;
- scissoring_rects.num_rect = 0;
-
- bool has_vg_mask_feat = vg_lite_query_feature(gcFEATURE_BIT_VG_MASK);
-
- VGLITE_CHECK_ERROR(vg_lite_set_draw_path_type(path, VG_LITE_DRAW_STROKE_PATH));
-
- VGLITE_CHECK_ERROR(vg_lite_set_stroke(path, cap_style, join_style, line_width, 8, NULL, 0, 0, vgcol));
-
- VGLITE_CHECK_ERROR(vg_lite_update_stroke(path));
-
- if(border_side != LV_BORDER_SIDE_FULL) {
- _border_set_scissoring(coords, line_width, border_side, radius, &scissoring_rects);
-
- if(has_vg_mask_feat) {
- /*** Enable scissor and apply scissor rects ***/
- VGLITE_CHECK_ERROR(vg_lite_enable_scissor());
- VGLITE_CHECK_ERROR(vg_lite_scissor_rects(buf, scissoring_rects.num_rect, scissoring_rects.rect));
-
- /*** Draw border ***/
- VGLITE_CHECK_ERROR(vg_lite_draw(buf, path, VG_LITE_FILL_NON_ZERO, NULL, VG_LITE_BLEND_SRC_OVER, vgcol));
-
- /*** Disable scissor ***/
- VGLITE_CHECK_ERROR(vg_lite_disable_scissor());
- }
- else {
- for(uint32_t i = 0; i < scissoring_rects.num_rect; i++) {
- VGLITE_CHECK_ERROR(vg_lite_set_scissor(scissoring_rects.rect[i].x, scissoring_rects.rect[i].y,
- scissoring_rects.rect[i].x + scissoring_rects.rect[i].width,
- scissoring_rects.rect[i].y + scissoring_rects.rect[i].height));
- VGLITE_CHECK_ERROR(vg_lite_draw(buf, path, VG_LITE_FILL_NON_ZERO, NULL, VG_LITE_BLEND_SRC_OVER, vgcol));
- }
- }
- }
- else {
- /*** Draw border ***/
- VGLITE_CHECK_ERROR(vg_lite_draw(buf, path, VG_LITE_FILL_NON_ZERO, NULL, VG_LITE_BLEND_SRC_OVER, vgcol));
- }
-
- vglite_run();
-}
-
-#endif /*LV_USE_DRAW_VGLITE*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_draw_vglite_fill.c b/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_draw_vglite_fill.c
deleted file mode 100644
index c58c09fce..000000000
--- a/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_draw_vglite_fill.c
+++ /dev/null
@@ -1,269 +0,0 @@
-/**
- * @file lv_draw_vglite_fill.c
- *
- */
-
-/**
- * Copyright 2020-2024 NXP
- *
- * SPDX-License-Identifier: MIT
- */
-
-/*********************
- * INCLUDES
- *********************/
-
-#include "lv_draw_vglite.h"
-
-#if LV_USE_DRAW_VGLITE
-#include "lv_vglite_buf.h"
-#include "lv_vglite_path.h"
-#include "lv_vglite_utils.h"
-
-#include "../../../stdlib/lv_string.h"
-
-/*********************
- * DEFINES
- *********************/
-
-/**********************
- * TYPEDEFS
- **********************/
-
-/**********************
- * STATIC PROTOTYPES
- **********************/
-
-/**
- * Set rectangle path data
- *
- * @param[in/out] path_data Coordinates of the rectangle
- * @param[in/out] path_data_size Size of path_data (bytes)
- * @param[in] p Points of the rectangle
- *
- */
-static void _vglite_set_rectangle(int32_t * path_data, uint32_t * path_data_size,
- const lv_area_t * dest_area);
-
-/**
- * Fill area, with optional opacity.
- *
- * @param[in] dest_area Area with relative coordinates of destination buffer
- * @param[in] dsc Description of the area to fill (color, opa)
- *
- */
-static void _vglite_fill(vglite_draw_task_t * task, const lv_area_t * dest_area,
- const lv_draw_fill_dsc_t * dsc);
-
-/**
- * Draw rectangle background with effects (rounded corners, gradient)
- *
- * @param[in] coords Coordinates of the rectangle background (relative to dest buff)
- * @param[in] clip_area Clip area with relative coordinates to dest buff
- * @param[in] dsc Description of the rectangle background
- *
- */
-static void _vglite_draw_rect(vglite_draw_task_t * task, const lv_area_t * coords,
- const lv_area_t * clip_area, const lv_draw_fill_dsc_t * dsc);
-
-/**********************
- * STATIC VARIABLES
- **********************/
-
-/**********************
- * MACROS
- **********************/
-
-/**********************
- * GLOBAL FUNCTIONS
- **********************/
-
-void lv_draw_vglite_fill(vglite_draw_task_t * vglite_task)
-{
- const lv_draw_fill_dsc_t * dsc = vglite_task->t->draw_dsc;
- const lv_area_t * coords = &vglite_task->t->area;
-
- if(dsc->opa <= (lv_opa_t)LV_OPA_MIN)
- return;
-
- lv_layer_t * layer = vglite_task->t->target_layer;
- lv_area_t relative_coords;
- lv_area_copy(&relative_coords, coords);
- lv_area_move(&relative_coords, -layer->buf_area.x1, -layer->buf_area.y1);
-
- lv_area_t clip_area;
- lv_area_copy(&clip_area, &vglite_task->t->clip_area);
- lv_area_move(&clip_area, -layer->buf_area.x1, -layer->buf_area.y1);
-
- lv_area_t clipped_coords;
- if(!lv_area_intersect(&clipped_coords, &relative_coords, &clip_area))
- return; /*Fully clipped, nothing to do*/
-
- /*
- * Most simple case: just a plain rectangle (no radius, no gradient)
- */
- if((dsc->radius == 0) && (dsc->grad.dir == (lv_grad_dir_t)LV_GRAD_DIR_NONE))
- _vglite_fill(vglite_task, &clipped_coords, dsc);
- else
- _vglite_draw_rect(vglite_task, &relative_coords, &clip_area, dsc);
-}
-
-/**********************
- * STATIC FUNCTIONS
- **********************/
-
-static void _vglite_set_rectangle(int32_t * path_data, uint32_t * path_data_size, const lv_area_t * dest_area)
-{
- uint32_t pidx = 0;
- path_data[pidx++] = VLC_OP_MOVE;
- path_data[pidx++] = dest_area->x1;
- path_data[pidx++] = dest_area->y1;
- path_data[pidx++] = VLC_OP_LINE;
- path_data[pidx++] = dest_area->x2 + 1;
- path_data[pidx++] = dest_area->y1;
- path_data[pidx++] = VLC_OP_LINE;
- path_data[pidx++] = dest_area->x2 + 1;
- path_data[pidx++] = dest_area->y2 + 1;
- path_data[pidx++] = VLC_OP_LINE;
- path_data[pidx++] = dest_area->x1;
- path_data[pidx++] = dest_area->y2 + 1;
- path_data[pidx++] = VLC_OP_LINE;
- path_data[pidx++] = dest_area->x1;
- path_data[pidx++] = dest_area->y1;
- path_data[pidx++] = VLC_OP_END;
-
- *path_data_size = pidx * sizeof(int32_t);
-}
-
-static void _vglite_fill(vglite_draw_task_t * vglite_task, const lv_area_t * dest_area,
- const lv_draw_fill_dsc_t * dsc)
-{
- vg_lite_buffer_t * dest_buf = vglite_get_dest_buf();
-
- lv_color32_t col32 = lv_color_to_32(dsc->color, dsc->opa);
- vg_lite_color_t vgcol = vglite_get_color(col32, false);
-
- if(dsc->opa >= (lv_opa_t)LV_OPA_MAX) { /*Opaque fill*/
- vg_lite_rectangle_t rect = {
- .x = dest_area->x1,
- .y = dest_area->y1,
- .width = lv_area_get_width(dest_area),
- .height = lv_area_get_height(dest_area)
- };
-
- VGLITE_CHECK_ERROR(vg_lite_clear(dest_buf, &rect, vgcol));
-
- vglite_run();
- }
- else { /*fill with transparency*/
-
- vg_lite_path_t * path = lv_malloc_zeroed(sizeof(vg_lite_path_t));
- LV_ASSERT_MALLOC(path);
- vglite_task->path = path;
-
- uint32_t path_data_size;
- int32_t * path_data = lv_malloc_zeroed(16 * sizeof(int32_t));
- LV_ASSERT_MALLOC(path_data);
- vglite_task->path_data = path_data;
- _vglite_set_rectangle(path_data, &path_data_size, dest_area);
-
- VGLITE_CHECK_ERROR(vg_lite_init_path(path, VG_LITE_S32, VG_LITE_MEDIUM, path_data_size, path_data,
- (vg_lite_float_t) dest_area->x1, (vg_lite_float_t) dest_area->y1,
- ((vg_lite_float_t) dest_area->x2) + 1.0f, ((vg_lite_float_t) dest_area->y2) + 1.0f));
-
- /*Draw rectangle*/
- VGLITE_CHECK_ERROR(vg_lite_draw(dest_buf, path, VG_LITE_FILL_EVEN_ODD, NULL, VG_LITE_BLEND_SRC_OVER, vgcol));
-
- vglite_run();
- }
-}
-
-static void _vglite_draw_rect(vglite_draw_task_t * vglite_task, const lv_area_t * coords,
- const lv_area_t * clip_area, const lv_draw_fill_dsc_t * dsc)
-{
- int32_t width = lv_area_get_width(coords);
- int32_t height = lv_area_get_height(coords);
- int32_t radius = dsc->radius;
- lv_opa_t opa = dsc->opa;
- vg_lite_buffer_t * dest_buf = vglite_get_dest_buf();
-
- if(dsc->radius < 0)
- return;
-
- /*** Init path ***/
- int32_t * path_data = lv_malloc_zeroed(RECT_PATH_DATA_MAX_SIZE * sizeof(int32_t));
- LV_ASSERT_MALLOC(path_data);
- vglite_task->path_data = path_data;
-
- uint32_t path_data_size;
- vglite_create_rect_path_data(path_data, &path_data_size, radius, coords);
- vg_lite_quality_t path_quality = dsc->radius > 0 ? VG_LITE_HIGH : VG_LITE_MEDIUM;
-
- vg_lite_path_t * path = lv_malloc_zeroed(sizeof(vg_lite_path_t));
- LV_ASSERT_MALLOC(path);
- vglite_task->path = path;
- VGLITE_CHECK_ERROR(vg_lite_init_path(path, VG_LITE_S32, path_quality, path_data_size, path_data,
- (vg_lite_float_t)clip_area->x1, (vg_lite_float_t)clip_area->y1,
- ((vg_lite_float_t)clip_area->x2) + 1.0f, ((vg_lite_float_t)clip_area->y2) + 1.0f));
-
- /*** Init Color ***/
- lv_color32_t col32 = lv_color_to_32(dsc->color, opa);
- vg_lite_color_t vgcol = vglite_get_color(col32, false);
-
- vg_lite_linear_gradient_t * gradient;
- bool has_gradient = (dsc->grad.dir != (lv_grad_dir_t)LV_GRAD_DIR_NONE);
-
- /*** Init Gradient ***/
- if(has_gradient) {
- gradient = lv_malloc_zeroed(sizeof(vg_lite_linear_gradient_t));
- LV_ASSERT_MALLOC(gradient);
- vglite_task->gradient = gradient;
-
- vg_lite_matrix_t * grad_matrix;
-
- vg_lite_uint32_t colors[LV_GRADIENT_MAX_STOPS];
- vg_lite_uint32_t stops[LV_GRADIENT_MAX_STOPS];
- lv_color32_t col32[LV_GRADIENT_MAX_STOPS];
-
- /* Gradient setup */
- vg_lite_uint32_t cnt = LV_MIN(dsc->grad.stops_count, LV_GRADIENT_MAX_STOPS);
- lv_opa_t opa;
-
- for(uint8_t i = 0; i < cnt; i++) {
- stops[i] = dsc->grad.stops[i].frac;
-
- opa = LV_OPA_MIX2(dsc->grad.stops[i].opa, dsc->opa);
-
- col32[i] = lv_color_to_32(dsc->grad.stops[i].color, opa);
- colors[i] = vglite_get_color(col32[i], true);
- }
-
- VGLITE_CHECK_ERROR(vg_lite_init_grad(gradient));
-
- VGLITE_CHECK_ERROR(vg_lite_set_grad(gradient, cnt, colors, stops));
-
- VGLITE_CHECK_ERROR(vg_lite_update_grad(gradient));
-
- grad_matrix = vg_lite_get_grad_matrix(gradient);
- vg_lite_identity(grad_matrix);
- vg_lite_translate((float)coords->x1, (float)coords->y1, grad_matrix);
-
- if(dsc->grad.dir == (lv_grad_dir_t)LV_GRAD_DIR_VER) {
- vg_lite_scale(1.0f, (float)height / 256.0f, grad_matrix);
- vg_lite_rotate(90.0f, grad_matrix);
- }
- else { /*LV_GRAD_DIR_HOR*/
- vg_lite_scale((float)width / 256.0f, 1.0f, grad_matrix);
- }
-
- VGLITE_CHECK_ERROR(vg_lite_draw_gradient(dest_buf, path, VG_LITE_FILL_EVEN_ODD, NULL, gradient,
- VG_LITE_BLEND_SRC_OVER));
- }
- else {
- VGLITE_CHECK_ERROR(vg_lite_draw(dest_buf, path, VG_LITE_FILL_EVEN_ODD, NULL, VG_LITE_BLEND_SRC_OVER, vgcol));
- }
-
- vglite_run();
-}
-
-#endif /*LV_USE_DRAW_VGLITE*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_draw_vglite_img.c b/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_draw_vglite_img.c
deleted file mode 100644
index b01afe729..000000000
--- a/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_draw_vglite_img.c
+++ /dev/null
@@ -1,449 +0,0 @@
-/**
- * @file lv_draw_vglite_blend.c
- *
- */
-
-/**
- * Copyright 2020-2024 NXP
- *
- * SPDX-License-Identifier: MIT
- */
-
-/*********************
- * INCLUDES
- *********************/
-
-#include "lv_draw_vglite.h"
-
-#if LV_USE_DRAW_VGLITE
-#include "lv_vglite_buf.h"
-#include "lv_vglite_matrix.h"
-#include "lv_vglite_utils.h"
-#include "lv_vglite_path.h"
-
-#include "../../../misc/lv_log.h"
-
-/*********************
- * DEFINES
- *********************/
-
-#if LV_USE_VGLITE_BLIT_SPLIT
-/**
-* BLIT split threshold - BLITs with width or height higher than this value will
-* be done in multiple steps. Value must be multiple of stride alignment in px.
-* For most color formats the alignment is 16px (except the index formats).
-*/
-#define VGLITE_BLIT_SPLIT_THR 352
-
-/* Enable for logging debug traces. */
-#define VGLITE_LOG_TRACE 0
-
-#if VGLITE_LOG_TRACE
-#define VGLITE_TRACE(fmt, ...) \
- do { \
- LV_LOG(fmt, ##__VA_ARGS__); \
- } while (0)
-#else
-#define VGLITE_TRACE(fmt, ...) \
- do { \
- } while (0)
-#endif
-#endif /*LV_USE_VGLITE_BLIT_SPLIT*/
-
-/**********************
- * TYPEDEFS
- **********************/
-
-/**********************
- * STATIC PROTOTYPES
- **********************/
-
-#if LV_USE_VGLITE_BLIT_SPLIT
-/**
- * Move buffer pointer as close as possible to area, but with respect to alignment requirements.
- *
- * @param[in] buf Buffer address pointer
- * @param[in] area Area with relative coordinates to the buffer
- * @param[in] stride Stride of buffer in bytes
- * @param[in] cf Color format of buffer
- */
-static void _move_buf_close_to_area(void ** buf, lv_area_t * area, uint32_t stride, lv_color_format_t cf);
-
-/**
- * BLock Image Transfer - copy rectangular image from src_buf to dest_buf with effects.
- * By default, image is copied directly, with optional opacity.
- *
- * @param dest_buf Destination buffer
- * @param[in] dest_area Destination area with relative coordinates to dest buffer
- * @param[in] dest_stride Stride of destination buffer in bytes
- * @param[in] dest_cf Color format of destination buffer
- * @param[in] src_buf Source buffer
- * @param[in] src_area Source area with relative coordinates to src buffer
- * @param[in] src_stride Stride of source buffer in bytes
- * @param[in] src_cf Color format of source buffer
- * @param[in] dsc Image descriptor
- *
- */
-static void _vglite_blit_split(void * dest_buf, lv_area_t * dest_area, uint32_t dest_stride, lv_color_format_t dest_cf,
- const void * src_buf, lv_area_t * src_area, uint32_t src_stride, lv_color_format_t src_cf,
- const lv_draw_image_dsc_t * dsc);
-#endif /*LV_USE_VGLITE_BLIT_SPLIT*/
-
-/**
- * VGlite blit - fill a path with an image pattern
- *
- *
- * @param[in] dest_area Destination area with relative coordinates to dest buffer
- * @param[in] clip_area Clip area with relative coordinates to dest buff
- * @param[in] coords Coordinates of the image (relative to dest buff)
- * @param[in] dsc Image descriptor
- *
- */
-static void _vglite_draw_pattern(vglite_draw_task_t * vglite_task, const lv_area_t * clip_area,
- const lv_area_t * coords,
- const lv_draw_image_dsc_t * dsc);
-
-/**
- * BLock Image Transfer - copy rectangular image from src_buf to dest_buf with or without effects.
- *
- * @param[in] src_area Source area with relative coordinates to src buffer
- * @param[in] dsc Image descriptor
- *
- */
-static void _vglite_blit(const lv_area_t * src_area, const lv_draw_image_dsc_t * dsc);
-
-static vg_lite_color_t _vglite_recolor(const lv_draw_image_dsc_t * dsc);
-
-/**********************
- * STATIC VARIABLES
- **********************/
-
-/**********************
- * MACROS
- **********************/
-
-/**********************
- * GLOBAL FUNCTIONS
- **********************/
-
-void lv_draw_vglite_img(vglite_draw_task_t * vglite_task)
-{
- const lv_draw_image_dsc_t * dsc = vglite_task->t->draw_dsc;
- const lv_area_t * coords = &vglite_task->t->area;
-
- if(dsc->opa <= (lv_opa_t)LV_OPA_MIN)
- return;
-
- lv_layer_t * layer = vglite_task->t->target_layer;
- const lv_image_dsc_t * img_dsc = dsc->src;
-
- lv_area_t relative_coords;
- lv_area_copy(&relative_coords, coords);
- lv_area_move(&relative_coords, -layer->buf_area.x1, -layer->buf_area.y1);
-
- lv_area_t clip_area;
- lv_area_copy(&clip_area, &vglite_task->t->clip_area);
- lv_area_move(&clip_area, -layer->buf_area.x1, -layer->buf_area.y1);
-
- lv_area_t blend_area;
- bool has_transform = (dsc->rotation != 0 || dsc->scale_x != LV_SCALE_NONE || dsc->scale_y != LV_SCALE_NONE);
- if(has_transform)
- lv_area_copy(&blend_area, &relative_coords);
- else if(!lv_area_intersect(&blend_area, &relative_coords, &clip_area))
- return; /*Fully clipped, nothing to do*/
-
- const void * src_buf = img_dsc->data;
-
- lv_area_t src_area;
- src_area.x1 = blend_area.x1 - (coords->x1 - layer->buf_area.x1);
- src_area.y1 = blend_area.y1 - (coords->y1 - layer->buf_area.y1);
- src_area.x2 = img_dsc->header.w - 1;
- src_area.y2 = img_dsc->header.h - 1;
-
- lv_color_format_t src_cf = img_dsc->header.cf;
- uint32_t src_stride = img_dsc->header.stride;
-
- /* Set src_buf structure. */
- vglite_set_src_buf(src_buf, img_dsc->header.w, img_dsc->header.h, src_stride, src_cf);
-
-#if LV_USE_VGLITE_BLIT_SPLIT
- void * dest_buf = layer->draw_buf->data;
- uint32_t dest_stride = layer->draw_buf->header.stride;
- lv_color_format_t dest_cf = layer->draw_buf->header.cf;
-
- if(!has_transform)
- _vglite_blit_split(dest_buf, &blend_area, dest_stride, dest_cf,
- src_buf, &src_area, src_stride, src_cf, dsc);
-#else
- vglite_set_transformation_matrix(&blend_area, dsc);
- bool is_tiled = dsc->tile;
- if(is_tiled)
- _vglite_draw_pattern(vglite_task, &clip_area, &relative_coords, dsc);
- else
- _vglite_blit(&src_area, dsc);
-#endif /*LV_USE_VGLITE_BLIT_SPLIT*/
-}
-
-/**********************
- * STATIC FUNCTIONS
- **********************/
-static void _vglite_blit(const lv_area_t * src_area, const lv_draw_image_dsc_t * dsc)
-{
- vg_lite_buffer_t * dest_buf = vglite_get_dest_buf();
- vg_lite_buffer_t * src_buf = vglite_get_src_buf();
-
- vg_lite_rectangle_t rect = {
- .x = (vg_lite_int32_t)src_area->x1,
- .y = (vg_lite_int32_t)src_area->y1,
- .width = (vg_lite_int32_t)lv_area_get_width(src_area),
- .height = (vg_lite_int32_t)lv_area_get_height(src_area)
- };
-
- src_buf->image_mode = VG_LITE_MULTIPLY_IMAGE_MODE;
- src_buf->transparency_mode = VG_LITE_IMAGE_TRANSPARENT;
-
- vg_lite_color_t vgcol = _vglite_recolor(dsc);
-
- vg_lite_matrix_t * matrix = vglite_get_matrix();
- vg_lite_blend_t vgblend = vglite_get_blend_mode(dsc->blend_mode);
-
- VGLITE_CHECK_ERROR(vg_lite_blit_rect(dest_buf, src_buf, &rect, matrix, vgblend, vgcol, VG_LITE_FILTER_POINT));
-
- vglite_run();
-}
-
-#if LV_USE_VGLITE_BLIT_SPLIT
-static void _move_buf_close_to_area(void ** buf, lv_area_t * area, uint32_t stride, lv_color_format_t cf)
-{
- uint8_t ** buf_u8 = (uint8_t **)buf;
- uint8_t align_bytes = vglite_get_stride_alignment(cf);
- uint8_t bits_per_pixel = lv_color_format_get_bpp(cf);
-
- uint16_t align_pixels = align_bytes * 8 / bits_per_pixel;
-
- if(area->x1 >= (int32_t)(area->x1 % align_pixels)) {
- uint16_t shift_x = area->x1 - (area->x1 % align_pixels);
-
- area->x1 -= shift_x;
- area->x2 -= shift_x;
- *buf_u8 += (shift_x * bits_per_pixel) / 8;
- }
-
- if(area->y1) {
- uint16_t shift_y = area->y1;
-
- area->y1 -= shift_y;
- area->y2 -= shift_y;
- *buf_u8 += shift_y * stride;
- }
-}
-
-static void _vglite_blit_split(void * dest_buf, lv_area_t * dest_area, uint32_t dest_stride, lv_color_format_t dest_cf,
- const void * src_buf, lv_area_t * src_area, uint32_t src_stride, lv_color_format_t src_cf,
- const lv_draw_image_dsc_t * dsc)
-{
- VGLITE_TRACE("Blit "
- "Area: ([%d,%d], [%d,%d]) -> ([%d,%d], [%d,%d]) | "
- "Size: ([%dx%d] -> [%dx%d]) | "
- "Addr: (0x%x -> 0x%x)",
- src_area->x1, src_area->y1, src_area->x2, src_area->y2,
- dest_area->x1, dest_area->y1, dest_area->x2, dest_area->y2,
- lv_area_get_width(src_area), lv_area_get_height(src_area),
- lv_area_get_width(dest_area), lv_area_get_height(dest_area),
- (uintptr_t)src_buf, (uintptr_t)dest_buf);
-
- /* Move starting pointers as close as possible to [x1, y1], so coordinates are as small as possible */
- _move_buf_close_to_area((void **)&src_buf, src_area, src_stride, src_cf);
- _move_buf_close_to_area(&dest_buf, dest_area, dest_stride, dest_cf);
-
- /* Set clip area */
- vglite_set_scissor(dest_area);
-
- /* If we're in limit, do a single BLIT */
- if((src_area->x2 < VGLITE_BLIT_SPLIT_THR) &&
- (src_area->y2 < VGLITE_BLIT_SPLIT_THR)) {
-
- /* Set new dest_buf and src_buf memory addresses */
- vglite_set_dest_buf_ptr(dest_buf);
- vglite_set_src_buf_ptr(src_buf);
-
- vglite_set_transformation_matrix(dest_area, dsc);
- _vglite_blit(src_area, dsc);
-
- VGLITE_TRACE("Single "
- "Area: ([%d,%d], [%d,%d]) -> ([%d,%d], [%d,%d]) | "
- "Size: ([%dx%d] -> [%dx%d]) | "
- "Addr: (0x%x -> 0x%x)",
- src_area->x1, src_area->y1, src_area->x2, src_area->y2,
- dest_area->x1, dest_area->y1, dest_area->x2, dest_area->y2,
- lv_area_get_width(src_area), lv_area_get_height(src_area),
- lv_area_get_width(dest_area), lv_area_get_height(dest_area),
- (uintptr_t)src_buf, (uintptr_t)dest_buf);
-
- return;
- };
-
- /* Split the BLIT into multiple tiles */
- VGLITE_TRACE("Split "
- "Area: ([%d,%d], [%d,%d]) -> ([%d,%d], [%d,%d]) | "
- "Size: ([%dx%d] -> [%dx%d]) | "
- "Addr: (0x%x -> 0x%x)",
- src_area->x1, src_area->y1, src_area->x2, src_area->y2,
- dest_area->x1, dest_area->y1, dest_area->x2, dest_area->y2,
- lv_area_get_width(src_area), lv_area_get_height(src_area),
- lv_area_get_width(dest_area), lv_area_get_height(dest_area),
- (uintptr_t)src_buf, (uintptr_t)dest_buf);
-
- int32_t width = LV_MIN(lv_area_get_width(src_area), lv_area_get_width(dest_area));
- int32_t height = LV_MIN(lv_area_get_height(src_area), lv_area_get_height(dest_area));
-
- /* Number of tiles needed */
- uint8_t total_tiles_x = (src_area->x1 + width + VGLITE_BLIT_SPLIT_THR - 1) /
- VGLITE_BLIT_SPLIT_THR;
- uint8_t total_tiles_y = (src_area->y1 + height + VGLITE_BLIT_SPLIT_THR - 1) /
- VGLITE_BLIT_SPLIT_THR;
-
- uint16_t shift_src_x = src_area->x1;
- uint16_t shift_dest_x = dest_area->x1;
-
- VGLITE_TRACE("X shift: src: %d, dst: %d", shift_src_x, shift_dest_x);
-
- uint8_t * tile_dest_buf;
- lv_area_t tile_dest_area;
- const uint8_t * tile_src_buf;
- lv_area_t tile_src_area;
-
- for(uint8_t y = 0; y < total_tiles_y; y++) {
- /* y1 always start from 0 */
- tile_src_area.y1 = 0;
-
- /* Calculate y2 coordinates */
- if(y < total_tiles_y - 1)
- tile_src_area.y2 = VGLITE_BLIT_SPLIT_THR - 1;
- else
- tile_src_area.y2 = height - y * VGLITE_BLIT_SPLIT_THR - 1;
-
- /* No vertical shift, dest y is always in sync with src y */
- tile_dest_area.y1 = tile_src_area.y1;
- tile_dest_area.y2 = tile_src_area.y2;
-
- /* Advance start pointer for every tile, except the first column (y = 0) */
- tile_src_buf = (uint8_t *)src_buf + y * VGLITE_BLIT_SPLIT_THR * src_stride;
- tile_dest_buf = (uint8_t *)dest_buf + y * VGLITE_BLIT_SPLIT_THR * dest_stride;
-
- for(uint8_t x = 0; x < total_tiles_x; x++) {
- /* x1 always start from the same shift */
- tile_src_area.x1 = shift_src_x;
- tile_dest_area.x1 = shift_dest_x;
- if(x > 0) {
- /* Advance start pointer for every tile, except the first raw (x = 0) */
- tile_src_buf += VGLITE_BLIT_SPLIT_THR * lv_color_format_get_bpp(src_cf) / 8;
- tile_dest_buf += VGLITE_BLIT_SPLIT_THR * lv_color_format_get_bpp(dest_cf) / 8;
- }
-
- /* Calculate x2 coordinates */
- if(x < total_tiles_x - 1)
- tile_src_area.x2 = VGLITE_BLIT_SPLIT_THR - 1;
- else
- tile_src_area.x2 = width - x * VGLITE_BLIT_SPLIT_THR - 1;
-
- tile_dest_area.x2 = tile_src_area.x2;
-
- /* Shift x2 coordinates */
- tile_src_area.x2 += shift_src_x;
- tile_dest_area.x2 += shift_dest_x;
-
- /* Set new dest_buf and src_buf memory addresses */
- vglite_set_dest_buf_ptr(tile_dest_buf);
- vglite_set_src_buf_ptr(tile_src_buf);
-
- vglite_set_transformation_matrix(&tile_dest_area, dsc);
- _vglite_blit(&tile_src_area, dsc);
-
- VGLITE_TRACE("Tile [%d, %d] "
- "Area: ([%d,%d], [%d,%d]) -> ([%d,%d], [%d,%d]) | "
- "Size: ([%dx%d] -> [%dx%d]) | "
- "Addr: (0x%x -> 0x%x)",
- x, y,
- tile_src_area.x1, tile_src_area.y1, tile_src_area.x2, tile_src_area.y2,
- tile_dest_area.x1, tile_dest_area.y1, tile_dest_area.x2, tile_dest_area.y2,
- lv_area_get_width(&tile_src_area), lv_area_get_height(&tile_src_area),
- lv_area_get_width(&tile_dest_area), lv_area_get_height(&tile_dest_area),
- (uintptr_t)tile_src_buf, (uintptr_t)tile_dest_buf);
- }
- }
-}
-#endif /*LV_USE_VGLITE_BLIT_SPLIT*/
-
-static void _vglite_draw_pattern(vglite_draw_task_t * vglite_task, const lv_area_t * clip_area,
- const lv_area_t * coords,
- const lv_draw_image_dsc_t * dsc)
-{
- /* Target buffer */
- vg_lite_buffer_t * dest_buf = vglite_get_dest_buf();
-
- /* Path to draw */
- int32_t * path_data = lv_malloc_zeroed(RECT_PATH_DATA_MAX_SIZE * sizeof(int32_t));
- LV_ASSERT_MALLOC(path_data);
- vglite_task->path_data = path_data;
-
- uint32_t path_data_size;
- vglite_create_rect_path_data(path_data, &path_data_size, dsc->clip_radius, coords);
- vg_lite_quality_t path_quality = VG_LITE_MEDIUM;
-
- vg_lite_path_t * path = lv_malloc_zeroed(sizeof(vg_lite_path_t));
- LV_ASSERT_MALLOC(path);
- vglite_task->path = path;
- VGLITE_CHECK_ERROR(vg_lite_init_path(path, VG_LITE_S32, path_quality, path_data_size, path_data,
- (vg_lite_float_t)clip_area->x1, (vg_lite_float_t)clip_area->y1,
- ((vg_lite_float_t)clip_area->x2) + 1.0f, ((vg_lite_float_t)clip_area->y2) + 1.0f));
-
- /* Pattern Image */
- vg_lite_buffer_t * src_buf = vglite_get_src_buf();
- src_buf->image_mode = VG_LITE_MULTIPLY_IMAGE_MODE;
- src_buf->transparency_mode = VG_LITE_IMAGE_TRANSPARENT;
-
- /* Pattern matrix */
- vg_lite_matrix_t matrix;
- vg_lite_identity(&matrix);
- vg_lite_translate((vg_lite_float_t)dsc->image_area.x1, (vg_lite_float_t)dsc->image_area.y1, &matrix);
-
- /* Blend mode */
- vg_lite_blend_t vgblend = vglite_get_blend_mode(dsc->blend_mode);
-
- vg_lite_color_t vgcol = _vglite_recolor(dsc);
-
- /* Filter */
- bool has_transform = (dsc->rotation != 0 || dsc->scale_x != LV_SCALE_NONE || dsc->scale_y != LV_SCALE_NONE);
- vg_lite_filter_t filter = has_transform ? VG_LITE_FILTER_BI_LINEAR : VG_LITE_FILTER_POINT;
-
- /* Draw Pattern */
- VGLITE_CHECK_ERROR(vg_lite_draw_pattern(dest_buf, path, VG_LITE_FILL_NON_ZERO, NULL,
- src_buf, &matrix, vgblend, VG_LITE_PATTERN_REPEAT,
- 0, vgcol, filter));
- vglite_run();
-}
-
-static vg_lite_color_t _vglite_recolor(const lv_draw_image_dsc_t * dsc)
-{
- lv_color_t color;
- lv_opa_t opa;
-
- bool has_recolor = (dsc->recolor_opa > LV_OPA_MIN);
- if(has_recolor) {
- color = dsc->recolor;
- opa = LV_OPA_MIX2(dsc->recolor_opa, dsc->opa);
- }
- else {
- color.red = 0xFF;
- color.green = 0xFF;
- color.blue = 0xFF;
- opa = dsc->opa;
- }
-
- lv_color32_t col32 = lv_color_to_32(color, opa);
-
- return vglite_get_color(col32, false);
-}
-
-#endif /*LV_USE_DRAW_VGLITE*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_draw_vglite_label.c b/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_draw_vglite_label.c
deleted file mode 100644
index da6a6ce8e..000000000
--- a/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_draw_vglite_label.c
+++ /dev/null
@@ -1,270 +0,0 @@
-/**
- * @file lv_draw_vglite_label.c
- *
- */
-
-/**
- * Copyright 2023-2024 NXP
- *
- * SPDX-License-Identifier: MIT
- */
-
-/*********************
- * INCLUDES
- *********************/
-
-#include "lv_draw_vglite.h"
-
-#if LV_USE_DRAW_VGLITE
-#include "lv_vglite_buf.h"
-#include "lv_vglite_matrix.h"
-#include "lv_vglite_utils.h"
-
-#include "../../lv_draw_label_private.h"
-#include "../../../stdlib/lv_string.h"
-#include "../../../font/lv_font_fmt_txt_private.h"
-
-/*********************
- * DEFINES
- *********************/
-
-/**********************
- * TYPEDEFS
- **********************/
-
-/**********************
- * STATIC PROTOTYPES
- **********************/
-
-static void _draw_vglite_letter(lv_draw_task_t * t, lv_draw_glyph_dsc_t * glyph_draw_dsc,
- lv_draw_fill_dsc_t * fill_draw_dsc, const lv_area_t * fill_area);
-
-/**
- * Draw letter (character bitmap blend) with optional color and opacity
- *
- * @param[in] mask_area Mask area with relative coordinates of source buffer
- * @param[in] color Color
- * @param[in] opa Opacity
- *
- */
-static void _vglite_draw_letter(const lv_area_t * mask_area, lv_color_t color, lv_opa_t opa);
-
-/**********************
- * STATIC VARIABLES
- **********************/
-
-static bool _use_static_bitmap = false;
-
-/**********************
- * GLOBAL VARIABLES
- **********************/
-
-/**********************
- * MACROS
- **********************/
-
-/**********************
- * GLOBAL FUNCTIONS
- **********************/
-
-void lv_draw_vglite_label(vglite_draw_task_t * vglite_task)
-{
- const lv_draw_label_dsc_t * dsc = vglite_task->t->draw_dsc;
- const lv_area_t * coords = &vglite_task->t->area;
-
- if(dsc->opa <= LV_OPA_MIN) return;
-
- lv_font_fmt_txt_dsc_t * fdsc = (lv_font_fmt_txt_dsc_t *)dsc->font->dsc;
- bool is_src_buf_aligned = vglite_src_buf_aligned(fdsc->glyph_bitmap, fdsc->stride, LV_COLOR_FORMAT_A8);
- bool has_static_bitmap = lv_font_has_static_bitmap(dsc->font);
-
- _use_static_bitmap = is_src_buf_aligned & has_static_bitmap;
-
- lv_draw_label_iterate_characters(vglite_task->t, dsc, coords, _draw_vglite_letter);
-}
-
-/**********************
- * STATIC FUNCTIONS
- **********************/
-
-static void _draw_vglite_letter(lv_draw_task_t * t, lv_draw_glyph_dsc_t * glyph_draw_dsc,
- lv_draw_fill_dsc_t * fill_draw_dsc, const lv_area_t * fill_area)
-{
- if(glyph_draw_dsc) {
-
- switch(glyph_draw_dsc->format) {
-
- case LV_FONT_GLYPH_FORMAT_NONE: {
-#if LV_USE_FONT_PLACEHOLDER
- /* Draw a placeholder rectangle*/
- vglite_draw_task_t * vglite_task = lv_malloc_zeroed(sizeof(vglite_draw_task_t));
- LV_ASSERT_MALLOC(vglite_task);
-
- lv_draw_border_dsc_t border_draw_dsc;
-
- lv_draw_border_dsc_init(&border_draw_dsc);
- border_draw_dsc.opa = glyph_draw_dsc->opa;
- border_draw_dsc.color = glyph_draw_dsc->color;
- border_draw_dsc.width = 1;
-
- vglite_task->t = t;
- vglite_task->t->draw_dsc = &border_draw_dsc;
- vglite_task->t->area = *glyph_draw_dsc->bg_coords;
-
- lv_draw_vglite_border(vglite_task);
-
- /** Cleanup for vglite_task */
- VGLITE_CHECK_ERROR(vg_lite_finish());
- if(vglite_task->path) {
- VGLITE_CHECK_ERROR(vg_lite_clear_path(vglite_task->path));
- lv_free(vglite_task->path_data);
- lv_free(vglite_task->path);
- }
- lv_free(vglite_task);
-#endif
- }
- break;
- case LV_FONT_GLYPH_FORMAT_A1 ... LV_FONT_GLYPH_FORMAT_A8: {
- /*Do not draw transparent things*/
- if(glyph_draw_dsc->opa <= LV_OPA_MIN)
- return;
-
- lv_layer_t * layer = t->target_layer;
-
- lv_area_t blend_area;
- if(!lv_area_intersect(&blend_area, glyph_draw_dsc->letter_coords, &t->clip_area))
- return;
- lv_area_move(&blend_area, -layer->buf_area.x1, -layer->buf_area.y1);
-
- const void * mask_buf = NULL;
- const lv_draw_buf_t * draw_buf = NULL;
- uint32_t mask_stride;
- if(!_use_static_bitmap) {
- draw_buf = lv_font_get_glyph_bitmap(glyph_draw_dsc->g, glyph_draw_dsc->_draw_buf);
- if(draw_buf != NULL) {
- mask_buf = draw_buf->data;
- }
- else {
- return;
- }
- mask_stride = draw_buf->header.stride;
- }
- else {
- glyph_draw_dsc->g->req_raw_bitmap = 1;
- mask_buf = lv_font_get_glyph_static_bitmap(glyph_draw_dsc->g);
- mask_stride = glyph_draw_dsc->g->stride;
- }
-
- uint32_t mask_width = lv_area_get_width(glyph_draw_dsc->letter_coords);
- uint32_t mask_height = lv_area_get_height(glyph_draw_dsc->letter_coords);
-
- lv_area_t mask_area;
- mask_area.x1 = blend_area.x1 - (glyph_draw_dsc->letter_coords->x1 - layer->buf_area.x1);
- mask_area.y1 = blend_area.y1 - (glyph_draw_dsc->letter_coords->y1 - layer->buf_area.y1);
- mask_area.x2 = mask_width - 1;
- mask_area.y2 = mask_height - 1;
-
- /* Set src_buf structure. */
- vglite_set_src_buf(mask_buf, mask_width, mask_height, mask_stride, LV_COLOR_FORMAT_A8);
-
- /* Set matrix. */
- vglite_set_translation_matrix(&blend_area);
-
- if(!_use_static_bitmap)
- lv_draw_buf_invalidate_cache(draw_buf, &mask_area);
-
- _vglite_draw_letter(&mask_area, glyph_draw_dsc->color, glyph_draw_dsc->opa);
- }
- break;
- case LV_FONT_GLYPH_FORMAT_IMAGE: {
-#if LV_USE_IMGFONT
- glyph_draw_dsc->glyph_data = lv_font_get_glyph_bitmap(glyph_draw_dsc->g, glyph_draw_dsc->_draw_buf);
- vglite_draw_task_t * vglite_task = lv_malloc_zeroed(sizeof(vglite_draw_task_t));
- LV_ASSERT_MALLOC(vglite_task);
-
- lv_draw_image_dsc_t img_dsc;
- lv_draw_image_dsc_init(&img_dsc);
- img_dsc.opa = glyph_draw_dsc->opa;
- img_dsc.src = glyph_draw_dsc->glyph_data;
-
- void * old_dsc = t->draw_dsc;
- lv_area_t old_area = t->area;
-
- t->draw_dsc = &img_dsc;
- t->area = *glyph_draw_dsc->letter_coords;
- vglite_task->t = t;
-
- lv_draw_vglite_img(vglite_task);
-
- /** Cleanup for vglite_task */
- vg_lite_finish();
- if(vglite_task->path) {
- VGLITE_CHECK_ERROR(vg_lite_clear_path(vglite_task->path));
- lv_free(vglite_task->path_data);
- lv_free(vglite_task->path);
- }
- lv_free(vglite_task);
-
- t->draw_dsc = old_dsc;
- t->area = old_area;
-#endif
- }
- break;
- default:
- break;
- }
- }
-
- if(fill_draw_dsc && fill_area) {
- vglite_draw_task_t * vglite_task = lv_malloc_zeroed(sizeof(vglite_draw_task_t));
- LV_ASSERT_MALLOC(vglite_task);
-
- t->draw_dsc = fill_draw_dsc;
- t->area = *fill_area;
- vglite_task->t = t;
-
- lv_draw_vglite_fill(vglite_task);
-
- /** Cleanup for vglite_task */
- vg_lite_finish();
- if(vglite_task->path) {
- VGLITE_CHECK_ERROR(vg_lite_clear_path(vglite_task->path));
- lv_free(vglite_task->path_data);
- lv_free(vglite_task->path);
- }
- if(vglite_task->gradient) {
- VGLITE_CHECK_ERROR(vg_lite_clear_grad(vglite_task->gradient));
- lv_free(vglite_task->gradient);
- }
- lv_free(vglite_task);
- }
-}
-
-static void _vglite_draw_letter(const lv_area_t * mask_area, lv_color_t color, lv_opa_t opa)
-{
- vg_lite_buffer_t * dest_buf = vglite_get_dest_buf();
- vg_lite_buffer_t * mask_buf = vglite_get_src_buf();
-
- mask_buf->image_mode = VG_LITE_MULTIPLY_IMAGE_MODE;
- mask_buf->transparency_mode = VG_LITE_IMAGE_TRANSPARENT;
-
- vg_lite_rectangle_t rect = {
- .x = (vg_lite_int32_t)mask_area->x1,
- .y = (vg_lite_int32_t)mask_area->y1,
- .width = (vg_lite_int32_t)lv_area_get_width(mask_area),
- .height = (vg_lite_int32_t)lv_area_get_height(mask_area)
- };
-
- lv_color32_t col32 = lv_color_to_32(color, opa);
- vg_lite_color_t vgcol = vglite_get_color(col32, false);
-
- vg_lite_matrix_t * matrix = vglite_get_matrix();
-
- /*Blit with font color as paint color*/
- VGLITE_CHECK_ERROR(vg_lite_blit_rect(dest_buf, mask_buf, &rect, matrix, VG_LITE_BLEND_SRC_OVER, vgcol,
- VG_LITE_FILTER_POINT));
-
- vglite_run();
-}
-
-#endif /*LV_USE_DRAW_VGLITE*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_draw_vglite_layer.c b/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_draw_vglite_layer.c
deleted file mode 100644
index 559b1107c..000000000
--- a/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_draw_vglite_layer.c
+++ /dev/null
@@ -1,156 +0,0 @@
-/**
- * @file lv_draw_vglite_layer.c
- *
- */
-
-/**
- * Copyright 2023-2024 NXP
- *
- * SPDX-License-Identifier: MIT
- */
-
-/*********************
- * INCLUDES
- *********************/
-
-#include "lv_draw_vglite.h"
-
-#if LV_USE_DRAW_VGLITE
-
-#include "../../../stdlib/lv_string.h"
-#include "../../../core/lv_global.h"
-
-/*********************
- * DEFINES
- *********************/
-
-/**********************
- * TYPEDEFS
- **********************/
-
-/**********************
- * STATIC PROTOTYPES
- **********************/
-
-/**********************
- * STATIC VARIABLES
- **********************/
-
-#define _draw_info LV_GLOBAL_DEFAULT()->draw_info
-
-/**********************
- * MACROS
- **********************/
-
-/**********************
- * GLOBAL FUNCTIONS
- **********************/
-
-void lv_draw_vglite_layer(vglite_draw_task_t * vglite_task)
-{
- lv_draw_image_dsc_t * draw_dsc = vglite_task->t->draw_dsc;
-
- lv_layer_t * layer_to_draw = (lv_layer_t *)draw_dsc->src;
- const lv_draw_buf_t * draw_buf = layer_to_draw->draw_buf;
-
- /* It can happen that nothing was draw on a layer and therefore its buffer is not allocated.
- * In this case just return.
- */
- if(draw_buf == NULL)
- return;
-
- if(_draw_info.unit_cnt > 1) {
- const lv_area_t area_to_draw = {
- .x1 = 0,
- .y1 = 0,
- .x2 = draw_buf->header.w - 1,
- .y2 = draw_buf->header.h - 1
- };
- lv_draw_buf_invalidate_cache(draw_buf, &area_to_draw);
- }
-
- lv_draw_image_dsc_t new_draw_dsc = *draw_dsc;
- new_draw_dsc.src = draw_buf;
- vglite_task->t->draw_dsc = &new_draw_dsc;
- lv_draw_vglite_img(vglite_task);
- vglite_task->t->draw_dsc = draw_dsc;
-
-#if LV_USE_LAYER_DEBUG || LV_USE_PARALLEL_DRAW_DEBUG
- const lv_area_t * coords = &vglite_task->t->area;
- lv_area_t area_rot;
- lv_area_copy(&area_rot, coords);
- bool has_transform = (draw_dsc->rotation != 0 || draw_dsc->scale_x != LV_SCALE_NONE ||
- draw_dsc->scale_y != LV_SCALE_NONE);
-
- if(has_transform) {
- int32_t w = lv_area_get_width(coords);
- int32_t h = lv_area_get_height(coords);
-
- lv_image_buf_get_transformed_area(&area_rot, w, h, draw_dsc->rotation, draw_dsc->scale_x, draw_dsc->scale_y,
- &draw_dsc->pivot);
-
- area_rot.x1 += coords->x1;
- area_rot.y1 += coords->y1;
- area_rot.x2 += coords->x1;
- area_rot.y2 += coords->y1;
- }
- lv_area_t draw_area;
- if(!lv_area_intersect(&draw_area, &area_rot, &vglite_task->t->clip_area)) return;
-#endif
-
-#if LV_USE_LAYER_DEBUG
- lv_draw_fill_dsc_t fill_dsc;
- lv_draw_fill_dsc_init(&fill_dsc);
- fill_dsc.color = lv_color_hex(layer_to_draw->color_format == LV_COLOR_FORMAT_ARGB8888 ? 0xff0000 : 0x00ff00);
- fill_dsc.opa = LV_OPA_20;
- lv_draw_sw_fill(vglite_task->t, &fill_dsc, &area_rot);
-
- lv_draw_border_dsc_t border_dsc;
- lv_draw_border_dsc_init(&border_dsc);
- border_dsc.color = fill_dsc.color;
- border_dsc.opa = LV_OPA_60;
- border_dsc.width = 2;
- lv_draw_sw_border(vglite_task->t, &border_dsc, &area_rot);
-
-#endif
-
-#if LV_USE_PARALLEL_DRAW_DEBUG
- int32_t idx = vglite_task->t->draw_unit->idx;
-
- lv_draw_fill_dsc_t fill_dsc;
- lv_draw_rect_dsc_init(&fill_dsc);
- fill_dsc.color = lv_palette_main(idx % LV_PALETTE_LAST);
- fill_dsc.opa = LV_OPA_10;
- lv_draw_sw_fill(vglite_task->t, &fill_dsc, &area_rot);
-
- lv_draw_border_dsc_t border_dsc;
- lv_draw_border_dsc_init(&border_dsc);
- border_dsc.color = lv_palette_main(idx % LV_PALETTE_LAST);
- border_dsc.opa = LV_OPA_100;
- border_dsc.width = 2;
- lv_draw_sw_border(vglite_task->t, &border_dsc, &area_rot);
-
- lv_point_t txt_size;
- lv_text_get_size(&txt_size, "W", LV_FONT_DEFAULT, 0, 0, 100, LV_TEXT_FLAG_NONE);
-
- lv_area_t txt_area;
- txt_area.x1 = draw_area.x1;
- txt_area.x2 = draw_area.x1 + txt_size.x - 1;
- txt_area.y2 = draw_area.y2;
- txt_area.y1 = draw_area.y2 - txt_size.y + 1;
-
- lv_draw_fill_dsc_init(&fill_dsc);
- fill_dsc.color = lv_color_black();
- lv_draw_sw_fill(vglite_task->t, &fill_dsc, &txt_area);
-
- char buf[8];
- lv_snprintf(buf, sizeof(buf), "%d", idx);
- lv_draw_label_dsc_t label_dsc;
- lv_draw_label_dsc_init(&label_dsc);
- label_dsc.color = lv_color_white();
- label_dsc.text = buf;
- lv_draw_sw_label(vglite_task->t, &label_dsc, &txt_area);
-#endif
-}
-
-#endif /*LV_USE_DRAW_VGLITE*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_draw_vglite_line.c b/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_draw_vglite_line.c
deleted file mode 100644
index 105b7add8..000000000
--- a/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_draw_vglite_line.c
+++ /dev/null
@@ -1,169 +0,0 @@
-/**
- * @file lv_draw_vglite_line.c
- *
- */
-
-/**
- * Copyright 2022-2024 NXP
- *
- * SPDX-License-Identifier: MIT
- */
-
-/*********************
- * INCLUDES
- *********************/
-
-#include "lv_draw_vglite.h"
-
-#if LV_USE_DRAW_VGLITE
-#include "lv_vglite_buf.h"
-#include "lv_vglite_utils.h"
-
-/*********************
- * DEFINES
- *********************/
-
-/**********************
- * TYPEDEFS
- **********************/
-
-/**********************
- * STATIC PROTOTYPES
- **********************/
-
-/**
- * Set line path data
- *
- * @param[in/out] line_path Coordinates of the line
- * @param[in/out] path_data_size Size of path_data (bytes)
- * @param[in] p1 First point of the line
- * @patam[in] p2 Second point of the line
- *
- */
-static void _vglite_set_line(int32_t * line_path, uint32_t * path_data_size,
- const lv_point_t * point1, const lv_point_t * point2);
-
-/**
- * Draw line shape with effects
- *
- * @param[in] point1 Starting point with relative coordinates
- * @param[in] point2 Ending point with relative coordinates
- * @param[in] clip_area Clip area with relative coordinates to dest buff
- * @param[in] dsc Line description structure (width, rounded ending, opacity, ...)
- *
- */
-static void _vglite_draw_line(vglite_draw_task_t * vglite_task, const lv_point_t * point1, const lv_point_t * point2,
- const lv_area_t * clip_area, const lv_draw_line_dsc_t * dsc);
-
-/**********************
- * STATIC VARIABLES
- **********************/
-
-/**********************
- * MACROS
- **********************/
-
-/**********************
- * GLOBAL FUNCTIONS
- **********************/
-
-void lv_draw_vglite_line(vglite_draw_task_t * vglite_task)
-{
- const lv_draw_line_dsc_t * dsc = vglite_task->t->draw_dsc;
-
- if(dsc->width == 0)
- return;
- if(dsc->opa <= (lv_opa_t)LV_OPA_MIN)
- return;
- if(dsc->p1.x == dsc->p2.x && dsc->p1.y == dsc->p2.y)
- return;
-
- lv_layer_t * layer = vglite_task->t->target_layer;
- lv_area_t clip_area;
- clip_area.x1 = LV_MIN(dsc->p1.x, dsc->p2.x) - dsc->width / 2;
- clip_area.x2 = LV_MAX(dsc->p1.x, dsc->p2.x) + dsc->width / 2;
- clip_area.y1 = LV_MIN(dsc->p1.y, dsc->p2.y) - dsc->width / 2;
- clip_area.y2 = LV_MAX(dsc->p1.y, dsc->p2.y) + dsc->width / 2;
-
- if(!lv_area_intersect(&clip_area, &clip_area, &vglite_task->t->clip_area))
- return; /*Fully clipped, nothing to do*/
-
- lv_area_move(&clip_area, -layer->buf_area.x1, -layer->buf_area.y1);
-
- lv_point_t point1 = {dsc->p1.x - layer->buf_area.x1, dsc->p1.y - layer->buf_area.y1};
- lv_point_t point2 = {dsc->p2.x - layer->buf_area.x1, dsc->p2.y - layer->buf_area.y1};
-
- _vglite_draw_line(vglite_task, &point1, &point2, &clip_area, dsc);
-}
-
-/**********************
- * STATIC FUNCTIONS
- **********************/
-
-static void _vglite_set_line(int32_t * line_path, uint32_t * path_data_size, const lv_point_t * point1,
- const lv_point_t * point2)
-{
- uint32_t pidx = 0;
- line_path[pidx++] = VLC_OP_MOVE;
- line_path[pidx++] = point1->x;
- line_path[pidx++] = point1->y;
- line_path[pidx++] = VLC_OP_LINE;
- line_path[pidx++] = point2->x;
- line_path[pidx++] = point2->y;
- line_path[pidx++] = VLC_OP_END;
-
- *path_data_size = pidx * sizeof(int32_t);
-}
-
-static void _vglite_draw_line(vglite_draw_task_t * vglite_task, const lv_point_t * point1, const lv_point_t * point2,
- const lv_area_t * clip_area, const lv_draw_line_dsc_t * dsc)
-{
- vg_lite_path_t * path = lv_malloc_zeroed(sizeof(vg_lite_path_t));
- LV_ASSERT_MALLOC(path);
- vglite_task->path = path;
- vg_lite_buffer_t * dest_buf = vglite_get_dest_buf();
- vg_lite_cap_style_t cap_style = (dsc->round_start || dsc->round_end) ? VG_LITE_CAP_ROUND : VG_LITE_CAP_BUTT;
- vg_lite_join_style_t join_style = (dsc->round_start || dsc->round_end) ? VG_LITE_JOIN_ROUND : VG_LITE_JOIN_MITER;
-
- bool is_dashed = (dsc->dash_width && dsc->dash_gap);
-
- vg_lite_float_t stroke_dash_pattern[2] = {0, 0};
- uint32_t stroke_dash_count = 0;
- vg_lite_float_t stroke_dash_phase = 0;
- if(is_dashed) {
- stroke_dash_pattern[0] = (vg_lite_float_t)dsc->dash_width;
- stroke_dash_pattern[1] = (vg_lite_float_t)dsc->dash_gap;
- stroke_dash_count = sizeof(stroke_dash_pattern) / sizeof(vg_lite_float_t);
- stroke_dash_phase = (vg_lite_float_t)dsc->dash_width / 2;
- }
-
- /*** Init path ***/
- int32_t width = dsc->width;
-
- uint32_t path_data_size = 0;
- int32_t * line_path = lv_malloc_zeroed(7 * sizeof(int32_t));
- LV_ASSERT_MALLOC(line_path);
- vglite_task->path_data = line_path;
- _vglite_set_line(line_path, &path_data_size, point1, point2);
-
- VGLITE_CHECK_ERROR(vg_lite_init_path(path, VG_LITE_S32, VG_LITE_HIGH, path_data_size, line_path,
- (vg_lite_float_t)clip_area->x1, (vg_lite_float_t)clip_area->y1,
- ((vg_lite_float_t)clip_area->x2) + 1.0f, ((vg_lite_float_t)clip_area->y2) + 1.0f));
-
- lv_color32_t col32 = lv_color_to_32(dsc->color, dsc->opa);
- vg_lite_color_t vgcol = vglite_get_color(col32, false);
-
- /*** Draw line ***/
- VGLITE_CHECK_ERROR(vg_lite_set_draw_path_type(path, VG_LITE_DRAW_STROKE_PATH));
-
- VGLITE_CHECK_ERROR(vg_lite_set_stroke(path, cap_style, join_style, width, 8, stroke_dash_pattern, stroke_dash_count,
- stroke_dash_phase, vgcol));
-
- VGLITE_CHECK_ERROR(vg_lite_update_stroke(path));
-
- VGLITE_CHECK_ERROR(vg_lite_draw(dest_buf, path, VG_LITE_FILL_NON_ZERO, NULL, VG_LITE_BLEND_SRC_OVER, vgcol));
-
- vglite_run();
-}
-
-#endif /*LV_USE_DRAW_VGLITE*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_draw_vglite_triangle.c b/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_draw_vglite_triangle.c
deleted file mode 100644
index 95da98790..000000000
--- a/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_draw_vglite_triangle.c
+++ /dev/null
@@ -1,214 +0,0 @@
-/**
- * @file lv_draw_vglite_triangle.c
- *
- */
-
-/**
- * Copyright 2023-2024 NXP
- *
- * SPDX-License-Identifier: MIT
- */
-
-/*********************
- * INCLUDES
- *********************/
-
-#include "lv_draw_vglite.h"
-
-#if LV_USE_DRAW_VGLITE
-#include "lv_vglite_buf.h"
-#include "lv_vglite_path.h"
-#include "lv_vglite_utils.h"
-
-#include "../../../stdlib/lv_string.h"
-
-/*********************
- * DEFINES
- *********************/
-
-/**********************
- * TYPEDEFS
- **********************/
-
-/**********************
- * STATIC PROTOTYPES
- **********************/
-
-/**
- * Set triangle path data
- *
- * @param[in/out] path_data Coordinates of the triangle
- * @param[in/out] path_data_size Size of path_data (bytes)
- * @param[in] p Points of the triangle
- *
- */
-static void _vglite_set_triangle(int32_t * path_data, uint32_t * path_data_size,
- const lv_point_precise_t * p);
-
-/**
- * Draw triangle shape with effects (opacity, gradient)
- *
- * @param[in] vglite_task The current vglite task
- * @param[in] coords Coordinates of the triangle (relative to dest buff)
- * @param[in] clip_area Clipping area with relative coordinates to dest buff
- * @param[in] dsc Description of the triangle
- *
- */
-static void _vglite_draw_triangle(vglite_draw_task_t * vglite_task, const lv_area_t * coords,
- const lv_area_t * clip_area,
- const lv_draw_triangle_dsc_t * dsc);
-
-/**********************
- * STATIC VARIABLES
- **********************/
-
-/**********************
- * MACROS
- **********************/
-
-/**********************
- * GLOBAL FUNCTIONS
- **********************/
-
-void lv_draw_vglite_triangle(vglite_draw_task_t * vglite_task)
-{
- const lv_draw_triangle_dsc_t * dsc = vglite_task->t->draw_dsc;
-
- if(dsc->opa <= (lv_opa_t)LV_OPA_MIN)
- return;
-
- lv_layer_t * layer = vglite_task->t->target_layer;
- lv_area_t clip_area;
- lv_area_copy(&clip_area, &vglite_task->t->clip_area);
- lv_area_move(&clip_area, -layer->buf_area.x1, -layer->buf_area.y1);
-
- lv_area_t coords;
- coords.x1 = (int32_t)LV_MIN3(dsc->p[0].x, dsc->p[1].x, dsc->p[2].x);
- coords.y1 = (int32_t)LV_MIN3(dsc->p[0].y, dsc->p[1].y, dsc->p[2].y);
- coords.x2 = (int32_t)LV_MAX3(dsc->p[0].x, dsc->p[1].x, dsc->p[2].x);
- coords.y2 = (int32_t)LV_MAX3(dsc->p[0].y, dsc->p[1].y, dsc->p[2].y);
-
- lv_area_move(&coords, -layer->buf_area.x1, -layer->buf_area.y1);
-
- lv_area_t clipped_coords;
- if(!lv_area_intersect(&clipped_coords, &coords, &clip_area))
- return; /* Fully clipped, nothing to do */
-
- _vglite_draw_triangle(vglite_task, &coords, &clip_area, dsc);
-}
-
-/**********************
- * STATIC FUNCTIONS
- **********************/
-
-static void _vglite_set_triangle(int32_t * path_data, uint32_t * path_data_size, const lv_point_precise_t * p)
-{
- uint32_t pidx = 0;
- path_data[pidx++] = VLC_OP_MOVE;
- path_data[pidx++] = p[0].x;
- path_data[pidx++] = p[0].y;
- path_data[pidx++] = VLC_OP_LINE;
- path_data[pidx++] = p[1].x;
- path_data[pidx++] = p[1].y;
- path_data[pidx++] = VLC_OP_LINE;
- path_data[pidx++] = p[2].x;
- path_data[pidx++] = p[2].y;
- path_data[pidx++] = VLC_OP_LINE;
- path_data[pidx++] = p[0].x;
- path_data[pidx++] = p[0].y;
- path_data[pidx++] = VLC_OP_END;
-
- *path_data_size = pidx * sizeof(int32_t);
-}
-
-static void _vglite_draw_triangle(vglite_draw_task_t * vglite_task, const lv_area_t * coords,
- const lv_area_t * clip_area,
- const lv_draw_triangle_dsc_t * dsc)
-{
- vg_lite_buffer_t * dest_buf = vglite_get_dest_buf();
-
- lv_area_t tri_area;
- tri_area.x1 = (int32_t)LV_MIN3(dsc->p[0].x, dsc->p[1].x, dsc->p[2].x);
- tri_area.y1 = (int32_t)LV_MIN3(dsc->p[0].y, dsc->p[1].y, dsc->p[2].y);
- tri_area.x2 = (int32_t)LV_MAX3(dsc->p[0].x, dsc->p[1].x, dsc->p[2].x);
- tri_area.y2 = (int32_t)LV_MAX3(dsc->p[0].y, dsc->p[1].y, dsc->p[2].y);
-
- uint32_t width = lv_area_get_width(&tri_area);
- uint32_t height = lv_area_get_height(&tri_area);
-
- /* Init path */
- uint32_t path_data_size;
- int32_t * triangle_path = lv_malloc_zeroed(13 * sizeof(int32_t));
- LV_ASSERT_MALLOC(triangle_path);
- vglite_task->path_data = triangle_path;
- _vglite_set_triangle(triangle_path, &path_data_size, dsc->p);
-
-
- vg_lite_path_t * path = lv_malloc_zeroed(sizeof(vg_lite_path_t));
- LV_ASSERT_MALLOC(path);
- vglite_task->path = path;
- VGLITE_CHECK_ERROR(vg_lite_init_path(path, VG_LITE_S32, VG_LITE_HIGH, path_data_size, triangle_path,
- (vg_lite_float_t)clip_area->x1, (vg_lite_float_t)clip_area->y1,
- ((vg_lite_float_t)clip_area->x2) + 1.0f, ((vg_lite_float_t)clip_area->y2) + 1.0f));
-
- /* Init Color */
- lv_color32_t col32 = lv_color_to_32(dsc->color, dsc->opa);
- vg_lite_color_t vgcol = vglite_get_color(col32, false);
-
- vg_lite_linear_gradient_t * gradient;
-
- bool has_gradient = (dsc->grad.dir != (lv_grad_dir_t)LV_GRAD_DIR_NONE);
-
- /* Init Gradient*/
- if(has_gradient) {
- gradient = lv_malloc_zeroed(sizeof(vg_lite_linear_gradient_t));
- LV_ASSERT_MALLOC(gradient);
- vglite_task->gradient = gradient;
-
- vg_lite_matrix_t * grad_matrix;
-
- vg_lite_uint32_t colors[LV_GRADIENT_MAX_STOPS];
- vg_lite_uint32_t stops[LV_GRADIENT_MAX_STOPS];
- lv_color32_t col32[LV_GRADIENT_MAX_STOPS];
-
- /* Gradient Setup */
- vg_lite_uint32_t cnt = LV_MIN(dsc->grad.stops_count, LV_GRADIENT_MAX_STOPS);
- lv_opa_t opa;
-
- for(uint8_t i = 0; i < cnt; i++) {
- stops[i] = dsc->grad.stops[i].frac;
- opa = LV_OPA_MIX2(dsc->grad.stops[i].opa, dsc->opa);
-
- col32[i] = lv_color_to_32(dsc->grad.stops[i].color, opa);
- colors[i] = vglite_get_color(col32[i], true);
- }
-
- VGLITE_CHECK_ERROR(vg_lite_init_grad(gradient));
-
- VGLITE_CHECK_ERROR(vg_lite_set_grad(gradient, cnt, colors, stops));
-
- VGLITE_CHECK_ERROR(vg_lite_update_grad(gradient));
-
- grad_matrix = vg_lite_get_grad_matrix(gradient);
- VGLITE_CHECK_ERROR(vg_lite_identity(grad_matrix));
- VGLITE_CHECK_ERROR(vg_lite_translate((float)coords->x1, (float)coords->y1, grad_matrix));
-
- if(dsc->grad.dir == (lv_grad_dir_t)LV_GRAD_DIR_VER) {
- VGLITE_CHECK_ERROR(vg_lite_scale(1.0f, (float)height / 256.0f, grad_matrix));
- VGLITE_CHECK_ERROR(vg_lite_rotate(90.0f, grad_matrix));
- }
- else { /*LV_GRAD_DIR_HOR*/
- VGLITE_CHECK_ERROR(vg_lite_scale((float)width / 256.0f, 1.0f, grad_matrix));
- }
-
- VGLITE_CHECK_ERROR(vg_lite_draw_gradient(dest_buf, path, VG_LITE_FILL_EVEN_ODD, NULL, gradient,
- VG_LITE_BLEND_SRC_OVER));
- }
- else {
- VGLITE_CHECK_ERROR(vg_lite_draw(dest_buf, path, VG_LITE_FILL_EVEN_ODD, NULL, VG_LITE_BLEND_SRC_OVER, vgcol));
- }
-
- vglite_run();
-}
-
-#endif /*LV_USE_DRAW_VGLITE*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_vglite_buf.c b/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_vglite_buf.c
deleted file mode 100644
index 76f9dc13e..000000000
--- a/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_vglite_buf.c
+++ /dev/null
@@ -1,116 +0,0 @@
-/**
- * @file lv_vglite_buf.c
- *
- */
-
-/**
- * Copyright 2023 NXP
- *
- * SPDX-License-Identifier: MIT
- */
-
-/*********************
- * INCLUDES
- *********************/
-
-#include "lv_vglite_buf.h"
-
-#if LV_USE_DRAW_VGLITE
-#include "lv_vglite_utils.h"
-
-#include "../../../stdlib/lv_string.h"
-
-/*********************
- * DEFINES
- *********************/
-
-/**********************
- * TYPEDEFS
- **********************/
-
-/**********************
- * STATIC PROTOTYPES
- **********************/
-
-static inline void _set_vgbuf_ptr(vg_lite_buffer_t * vgbuf, void * buf);
-
-/**********************
- * STATIC VARIABLES
- **********************/
-
-static vg_lite_buffer_t _dest_buf;
-static vg_lite_buffer_t _src_buf;
-
-/**********************
- * MACROS
- **********************/
-
-/**********************
- * GLOBAL FUNCTIONS
- **********************/
-
-vg_lite_buffer_t * vglite_get_dest_buf(void)
-{
- return &_dest_buf;
-}
-
-vg_lite_buffer_t * vglite_get_src_buf(void)
-{
- return &_src_buf;
-}
-
-void vglite_set_dest_buf_ptr(void * buf)
-{
- _set_vgbuf_ptr(&_dest_buf, buf);
-}
-
-void vglite_set_src_buf_ptr(const void * buf)
-{
- _set_vgbuf_ptr(&_src_buf, (void *)buf);
-}
-
-void vglite_set_dest_buf(const void * buf, uint32_t width, uint32_t height, uint32_t stride,
- lv_color_format_t cf)
-{
- vglite_set_buf(&_dest_buf, (void *)buf, width, height, stride, cf);
-}
-
-void vglite_set_src_buf(const void * buf, uint32_t width, uint32_t height, uint32_t stride,
- lv_color_format_t cf)
-{
- vglite_set_buf(&_src_buf, (void *)buf, width, height, stride, cf);
-}
-
-void vglite_set_buf(vg_lite_buffer_t * vgbuf, void * buf,
- uint32_t width, uint32_t height, uint32_t stride,
- lv_color_format_t cf)
-{
- vg_lite_buffer_format_t vgformat = vglite_get_buf_format(cf);
-
- vgbuf->format = vgformat;
- vgbuf->tiled = VG_LITE_LINEAR;
- vgbuf->image_mode = VG_LITE_NORMAL_IMAGE_MODE;
- vgbuf->transparency_mode = VG_LITE_IMAGE_OPAQUE;
-
- vgbuf->width = (int32_t)width;
- vgbuf->height = (int32_t)height;
- vgbuf->stride = (int32_t)stride;
-
- lv_memzero(&vgbuf->yuv, sizeof(vgbuf->yuv));
-
- vgbuf->memory = buf;
- vgbuf->address = (uint32_t)vgbuf->memory;
- vgbuf->handle = NULL;
-}
-
-/**********************
- * STATIC FUNCTIONS
- **********************/
-
-static inline void _set_vgbuf_ptr(vg_lite_buffer_t * vgbuf, void * buf)
-{
- vgbuf->memory = buf;
- vgbuf->address = (uint32_t)vgbuf->memory;
-}
-
-#endif /*LV_USE_DRAW_VGLITE*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_vglite_buf.h b/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_vglite_buf.h
deleted file mode 100644
index c15d918d0..000000000
--- a/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_vglite_buf.h
+++ /dev/null
@@ -1,124 +0,0 @@
-/**
- * @file lv_vglite_buf.h
- *
- */
-
-/**
- * Copyright 2023 NXP
- *
- * SPDX-License-Identifier: MIT
- */
-
-#ifndef LV_VGLITE_BUF_H
-#define LV_VGLITE_BUF_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*********************
- * INCLUDES
- *********************/
-#include "../../../lv_conf_internal.h"
-
-#if LV_USE_DRAW_VGLITE
-#include "../../lv_draw.h"
-
-#include "vg_lite.h"
-
-/*********************
- * DEFINES
- *********************/
-
-/**********************
- * TYPEDEFS
- **********************/
-
-/**********************
- * GLOBAL PROTOTYPES
- **********************/
-
-/**
- * Get vglite destination buffer pointer.
- *
- * @retval The vglite destination buffer
- *
- */
-vg_lite_buffer_t * vglite_get_dest_buf(void);
-
-/**
- * Get vglite source buffer pointer.
- *
- * @retval The vglite source buffer
- *
- */
-vg_lite_buffer_t * vglite_get_src_buf(void);
-
-/**
- * Set vglite destination buffer address only.
- *
- * @param[in] buf Destination buffer address (does not require alignment for VG_LITE_LINEAR mode)
- *
- */
-void vglite_set_dest_buf_ptr(void * buf);
-
-/**
- * Set vglite source buffer address only.
- *
- * @param[in] buf Source buffer address
- *
- */
-void vglite_set_src_buf_ptr(const void * buf);
-
-/**
- * Set vglite destination buffer.
- *
- * @param[in] buf Destination buffer address
- * @param[in] width Destination buffer width
- * @param[in] height Destination buffer height
- * @param[in] stride Destination buffer stride in bytes
- * @param[in] cf Destination buffer color format
- *
- */
-void vglite_set_dest_buf(const void * buf, uint32_t width, uint32_t height, uint32_t stride,
- lv_color_format_t cf);
-
-/**
- * Set vglite source buffer.
- *
- * @param[in] buf Source buffer address
- * @param[in] width Source buffer width
- * @param[in] height Source buffer height
- * @param[in] stride Source buffer stride in bytes
- * @param[in] cf Source buffer color format
- *
- */
-void vglite_set_src_buf(const void * buf, uint32_t width, uint32_t height, uint32_t stride,
- lv_color_format_t cf);
-
-/**
- * Set vglite buffer.
- *
- * @param[in] vgbuf Address of the VGLite buffer object
- * @param[in] buf Address of the memory for the VGLite buffer
- * @param[in] width Buffer width
- * @param[in] height Buffer height
- * @param[in] stride Buffer stride in bytes
- * @param[in] cf Buffer color format
- *
- */
-void vglite_set_buf(vg_lite_buffer_t * vgbuf, void * buf,
- uint32_t width, uint32_t height, uint32_t stride,
- lv_color_format_t cf);
-
-/**********************
- * MACROS
- **********************/
-
-#endif /*LV_USE_DRAW_VGLITE*/
-
-#ifdef __cplusplus
-} /*extern "C"*/
-#endif
-
-#endif /*LV_VGLITE_BUF_H*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_vglite_matrix.c b/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_vglite_matrix.c
deleted file mode 100644
index f41ed3746..000000000
--- a/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_vglite_matrix.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/**
- * @file lv_vglite_matrix.c
- *
- */
-
-/**
- * Copyright 2023 NXP
- *
- * SPDX-License-Identifier: MIT
- */
-
-/*********************
- * INCLUDES
- *********************/
-
-#include "lv_vglite_matrix.h"
-
-#if LV_USE_DRAW_VGLITE
-
-/*********************
- * DEFINES
- *********************/
-
-/**********************
- * TYPEDEFS
- **********************/
-
-/**********************
- * STATIC PROTOTYPES
- **********************/
-
-/**********************
- * STATIC VARIABLES
- **********************/
-
-static vg_lite_matrix_t _matrix;
-
-/**********************
- * MACROS
- **********************/
-
-/**********************
- * GLOBAL FUNCTIONS
- **********************/
-
-vg_lite_matrix_t * vglite_get_matrix(void)
-{
- return &_matrix;
-}
-
-void vglite_set_translation_matrix(const lv_area_t * dest_area)
-{
- vg_lite_identity(&_matrix);
- vg_lite_translate((vg_lite_float_t)dest_area->x1, (vg_lite_float_t)dest_area->y1, &_matrix);
-}
-
-void vglite_set_transformation_matrix(const lv_area_t * dest_area, const lv_draw_image_dsc_t * dsc)
-{
- vglite_set_translation_matrix(dest_area);
-
- bool has_scale = (dsc->scale_x != LV_SCALE_NONE || dsc->scale_y != LV_SCALE_NONE);
- bool has_rotation = (dsc->rotation != 0);
-
- if(has_scale || has_rotation) {
- vg_lite_translate(dsc->pivot.x, dsc->pivot.y, &_matrix);
- if(has_rotation)
- vg_lite_rotate(dsc->rotation / 10.0f, &_matrix); /* angle is 1/10 degree */
- if(has_scale) {
- vg_lite_float_t scale_x = 1.0f * dsc->scale_x / LV_SCALE_NONE;
- vg_lite_float_t scale_y = 1.0f * dsc->scale_y / LV_SCALE_NONE;
- vg_lite_scale(scale_x, scale_y, &_matrix);
- }
- vg_lite_translate(0.0f - dsc->pivot.x, 0.0f - dsc->pivot.y, &_matrix);
- }
-}
-
-/**********************
- * STATIC FUNCTIONS
- **********************/
-
-#endif /*LV_USE_DRAW_VGLITE*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_vglite_matrix.h b/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_vglite_matrix.h
deleted file mode 100644
index 0f735d69e..000000000
--- a/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_vglite_matrix.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/**
- * @file lv_vglite_matrix.h
- *
- */
-
-/**
- * Copyright 2023 NXP
- *
- * SPDX-License-Identifier: MIT
- */
-
-#ifndef LV_VGLITE_MATRIX_H
-#define LV_VGLITE_MATRIX_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*********************
- * INCLUDES
- *********************/
-#include "../../../lv_conf_internal.h"
-
-#if LV_USE_DRAW_VGLITE
-
-#include "../../lv_draw_image.h"
-#include "../../lv_draw.h"
-
-#include "vg_lite.h"
-
-/*********************
- * DEFINES
- *********************/
-
-/**********************
- * TYPEDEFS
- **********************/
-
-/**********************
- * STATIC PROTOTYPES
- **********************/
-
-/**********************
- * GLOBAL PROTOTYPES
- **********************/
-
-vg_lite_matrix_t * vglite_get_matrix(void);
-
-/**
- * Creates matrix that translates to origin of given destination area.
- *
- * @param[in] dest_area Area with relative coordinates of destination buffer
- *
- */
-void vglite_set_translation_matrix(const lv_area_t * dest_area);
-
-/**
- * Creates matrix that translates to origin of given destination area with transformation (scale or rotate).
- *
- * @param[in] dest_area Area with relative coordinates of destination buffer
- * @param[in] dsc Image descriptor
- *
- */
-void vglite_set_transformation_matrix(const lv_area_t * dest_area, const lv_draw_image_dsc_t * dsc);
-
-/**********************
- * MACROS
- **********************/
-
-/**********************
- * STATIC FUNCTIONS
- **********************/
-
-#endif /*LV_USE_DRAW_VGLITE*/
-
-#ifdef __cplusplus
-} /*extern "C"*/
-#endif
-
-#endif /*LV_VGLITE_MATRIX_H*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_vglite_path.c b/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_vglite_path.c
deleted file mode 100644
index 6f8b759c8..000000000
--- a/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_vglite_path.c
+++ /dev/null
@@ -1,217 +0,0 @@
-/**
- * @file lv_vglite_path.c
- *
- */
-
-/**
- * Copyright 2023 NXP
- *
- * SPDX-License-Identifier: MIT
- */
-
-/*********************
- * INCLUDES
- *********************/
-
-#include "lv_vglite_path.h"
-
-#if LV_USE_DRAW_VGLITE
-#include "vg_lite.h"
-
-/*********************
- * DEFINES
- *********************/
-
-/**********************
- * TYPEDEFS
- **********************/
-
-/**********************
- * STATIC PROTOTYPES
- **********************/
-
-/**********************
- * STATIC VARIABLES
- **********************/
-
-/**********************
- * MACROS
- **********************/
-
-/**********************
- * GLOBAL FUNCTIONS
- **********************/
-
-void vglite_create_rect_path_data(int32_t * path_data, uint32_t * path_data_size,
- int32_t radius,
- const lv_area_t * coords)
-{
- int32_t rect_width = lv_area_get_width(coords);
- int32_t rect_height = lv_area_get_height(coords);
-
- /* Get the final radius. Can't be larger than the half of the shortest side */
- int32_t shortest_side = LV_MIN(rect_width, rect_height);
- int32_t final_radius = LV_MIN(radius, shortest_side / 2);
-
- /* Path data element index */
- uint8_t pidx = 0;
-
- if((radius == (int32_t)LV_RADIUS_CIRCLE) && (rect_width == rect_height)) {
-
- /* Get the control point offset for rounded cases */
- int32_t cpoff = (int32_t)((float)final_radius * BEZIER_OPTIM_CIRCLE);
-
- /* Circle case */
- /* Starting point */
- path_data[pidx++] = VLC_OP_MOVE;
- path_data[pidx++] = coords->x1 + final_radius;
- path_data[pidx++] = coords->y1;
-
- /* Top-right arc */
- path_data[pidx++] = VLC_OP_CUBIC_REL;
- path_data[pidx++] = cpoff;
- path_data[pidx++] = 0;
- path_data[pidx++] = final_radius;
- path_data[pidx++] = final_radius - cpoff;
- path_data[pidx++] = final_radius;
- path_data[pidx++] = final_radius;
-
- /* Bottom-right arc*/
- path_data[pidx++] = VLC_OP_CUBIC_REL;
- path_data[pidx++] = 0;
- path_data[pidx++] = cpoff;
- path_data[pidx++] = cpoff - final_radius;
- path_data[pidx++] = final_radius;
- path_data[pidx++] = 0 - final_radius;
- path_data[pidx++] = final_radius;
-
- /* Bottom-left arc */
- path_data[pidx++] = VLC_OP_CUBIC_REL;
- path_data[pidx++] = 0 - cpoff;
- path_data[pidx++] = 0;
- path_data[pidx++] = 0 - final_radius;
- path_data[pidx++] = cpoff - final_radius;
- path_data[pidx++] = 0 - final_radius;
- path_data[pidx++] = 0 - final_radius;
-
- /* Top-left arc*/
- path_data[pidx++] = VLC_OP_CUBIC_REL;
- path_data[pidx++] = 0;
- path_data[pidx++] = 0 - cpoff;
- path_data[pidx++] = final_radius - cpoff;
- path_data[pidx++] = 0 - final_radius;
- path_data[pidx++] = final_radius;
- path_data[pidx++] = 0 - final_radius;
-
- /* Ending point */
- path_data[pidx++] = VLC_OP_END;
- }
- else if(radius > 0) {
- /* Get the control point offset for rounded cases */
- int32_t cpoff = (int32_t)((float)final_radius * BEZIER_OPTIM_CIRCLE);
-
- /* Rounded rectangle case */
- /* Starting point */
- path_data[pidx++] = VLC_OP_MOVE;
- path_data[pidx++] = coords->x1 + final_radius;
- path_data[pidx++] = coords->y1;
-
- /* Top side */
- path_data[pidx++] = VLC_OP_LINE;
- path_data[pidx++] = coords->x2 - final_radius + 1; /*Extended for VGLite*/
- path_data[pidx++] = coords->y1;
-
- /* Top-right corner */
- path_data[pidx++] = VLC_OP_CUBIC_REL;
- path_data[pidx++] = cpoff;
- path_data[pidx++] = 0;
- path_data[pidx++] = final_radius;
- path_data[pidx++] = final_radius - cpoff;
- path_data[pidx++] = final_radius;
- path_data[pidx++] = final_radius;
-
- /* Right side */
- path_data[pidx++] = VLC_OP_LINE;
- path_data[pidx++] = coords->x2 + 1; /*Extended for VGLite*/
- path_data[pidx++] = coords->y2 - final_radius + 1; /*Extended for VGLite*/
-
- /* Bottom-right corner*/
- path_data[pidx++] = VLC_OP_CUBIC_REL;
- path_data[pidx++] = 0;
- path_data[pidx++] = cpoff;
- path_data[pidx++] = cpoff - final_radius;
- path_data[pidx++] = final_radius;
- path_data[pidx++] = 0 - final_radius;
- path_data[pidx++] = final_radius;
-
- /* Bottom side */
- path_data[pidx++] = VLC_OP_LINE;
- path_data[pidx++] = coords->x1 + final_radius;
- path_data[pidx++] = coords->y2 + 1; /*Extended for VGLite*/
-
- /* Bottom-left corner */
- path_data[pidx++] = VLC_OP_CUBIC_REL;
- path_data[pidx++] = 0 - cpoff;
- path_data[pidx++] = 0;
- path_data[pidx++] = 0 - final_radius;
- path_data[pidx++] = cpoff - final_radius;
- path_data[pidx++] = 0 - final_radius;
- path_data[pidx++] = 0 - final_radius;
-
- /* Left side*/
- path_data[pidx++] = VLC_OP_LINE;
- path_data[pidx++] = coords->x1;
- path_data[pidx++] = coords->y1 + final_radius;
-
- /* Top-left corner */
- path_data[pidx++] = VLC_OP_CUBIC_REL;
- path_data[pidx++] = 0;
- path_data[pidx++] = 0 - cpoff;
- path_data[pidx++] = final_radius - cpoff;
- path_data[pidx++] = 0 - final_radius;
- path_data[pidx++] = final_radius;
- path_data[pidx++] = 0 - final_radius;
-
- /* Ending point */
- path_data[pidx++] = VLC_OP_END;
- }
- else {
- /* Non-rounded rectangle case */
- /* Starting point */
- path_data[pidx++] = VLC_OP_MOVE;
- path_data[pidx++] = coords->x1;
- path_data[pidx++] = coords->y1;
-
- /* Top side */
- path_data[pidx++] = VLC_OP_LINE;
- path_data[pidx++] = coords->x2 + 1; /*Extended for VGLite*/
- path_data[pidx++] = coords->y1;
-
- /* Right side */
- path_data[pidx++] = VLC_OP_LINE;
- path_data[pidx++] = coords->x2 + 1; /*Extended for VGLite*/
- path_data[pidx++] = coords->y2 + 1; /*Extended for VGLite*/
-
- /* Bottom side */
- path_data[pidx++] = VLC_OP_LINE;
- path_data[pidx++] = coords->x1;
- path_data[pidx++] = coords->y2 + 1; /*Extended for VGLite*/
-
- /* Left side*/
- path_data[pidx++] = VLC_OP_LINE;
- path_data[pidx++] = coords->x1;
- path_data[pidx++] = coords->y1;
-
- /* Ending point */
- path_data[pidx++] = VLC_OP_END;
- }
-
- /* Resulting path size */
- *path_data_size = pidx * sizeof(int32_t);
-}
-
-/**********************
- * STATIC FUNCTIONS
- **********************/
-
-#endif /*LV_USE_DRAW_VGLITE*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_vglite_path.h b/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_vglite_path.h
deleted file mode 100644
index a4cd21e58..000000000
--- a/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_vglite_path.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/**
- * @file lv_vglite_path.h
- *
- */
-
-/**
- * Copyright 2023 NXP
- *
- * SPDX-License-Identifier: MIT
- */
-
-#ifndef LV_VGLITE_PATH_H
-#define LV_VGLITE_PATH_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*********************
- * INCLUDES
- *********************/
-#include "../../../lv_conf_internal.h"
-
-#if LV_USE_DRAW_VGLITE
-#include "../../lv_draw.h"
-#include "../../lv_draw_triangle.h"
-
-/*********************
- * DEFINES
- *********************/
-
-/* The optimal Bezier control point offset for radial unit
- * see: https://spencermortensen.com/articles/bezier-circle/
- **/
-#define BEZIER_OPTIM_CIRCLE 0.551915024494f
-
-/* Draw lines for control points of Bezier curves */
-#define BEZIER_DBG_CONTROL_POINTS 0
-
-/* Path data sizes for different elements */
-#define CUBIC_PATH_DATA_SIZE 7 /* 1 opcode, 6 arguments */
-#define LINE_PATH_DATA_SIZE 3 /* 1 opcode, 2 arguments */
-#define MOVE_PATH_DATA_SIZE 3 /* 1 opcode, 2 arguments */
-#define END_PATH_DATA_SIZE 1 /* 1 opcode, 0 arguments */
-/* Maximum possible rectangle path size
- * is in the rounded rectangle case:
- * - 1 move for the path start
- * - 4 cubics for the corners
- * - 4 lines for the sides
- * - 1 end for the path end */
-#define RECT_PATH_DATA_MAX_SIZE (1 * MOVE_PATH_DATA_SIZE + 4 * CUBIC_PATH_DATA_SIZE + 4 * LINE_PATH_DATA_SIZE + 1 * END_PATH_DATA_SIZE)
-
-/* Maximum possible arc path size
- * is in the rounded arc case:
- * - 1 move for the path start
- * - 16 cubics for the arc (5 inner, 5 outer) and corners (3 per corner)
- * - 1 end for the path end */
-#define ARC_PATH_DATA_MAX_SIZE (1 * MOVE_PATH_DATA_SIZE + 16 * CUBIC_PATH_DATA_SIZE + 1 * END_PATH_DATA_SIZE)
-/**********************
- * TYPEDEFS
- **********************/
-
-/**********************
- * STATIC PROTOTYPES
- **********************/
-
-/**********************
- * GLOBAL PROTOTYPES
- **********************/
-
-/**
- * Generates path data for rectangle drawing.
- *
- * @param[in/out] path The path data to initialize
- * @param[in/out] path_size The resulting size of the created path data
- * @param[in] dsc The style descriptor for the rectangle to be drawn
- * @param[in] coords The coordinates of the rectangle to be drawn
- *
- */
-void vglite_create_rect_path_data(int32_t * path_data, uint32_t * path_data_size,
- int32_t radius,
- const lv_area_t * coords);
-
-/**********************
- * MACROS
- **********************/
-
-/**********************
- * STATIC FUNCTIONS
- **********************/
-
-#endif /*LV_USE_DRAW_VGLITE*/
-
-#ifdef __cplusplus
-} /*extern "C"*/
-#endif
-
-#endif /*LV_VGLITE_PATH_H*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_vglite_utils.c b/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_vglite_utils.c
deleted file mode 100644
index 5daa29ecd..000000000
--- a/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_vglite_utils.c
+++ /dev/null
@@ -1,286 +0,0 @@
-/**
- * @file lv_vglite_utils.c
- *
- */
-
-/**
- * Copyright 2022-2024 NXP
- *
- * SPDX-License-Identifier: MIT
- */
-
-/*********************
- * INCLUDES
- *********************/
-
-#include "lv_vglite_utils.h"
-
-#if LV_USE_DRAW_VGLITE
-#include "lv_vglite_buf.h"
-
-#include "../../../core/lv_refr.h"
-
-/*********************
- * DEFINES
- *********************/
-
-/**********************
- * TYPEDEFS
- **********************/
-
-/**********************
- * STATIC PROTOTYPES
- **********************/
-
-/**********************
- * STATIC VARIABLES
- **********************/
-
-#if LV_USE_VGLITE_DRAW_ASYNC
- static volatile bool _cmd_buf_flushed = false;
-#endif
-
-/**********************
- * MACROS
- **********************/
-
-/**********************
- * GLOBAL FUNCTIONS
- **********************/
-
-const char * vglite_error_to_string(vg_lite_error_t error)
-{
- switch(error) {
- ENUM_TO_STRING(VG_LITE_SUCCESS);
- ENUM_TO_STRING(VG_LITE_INVALID_ARGUMENT);
- ENUM_TO_STRING(VG_LITE_OUT_OF_MEMORY);
- ENUM_TO_STRING(VG_LITE_NO_CONTEXT);
- ENUM_TO_STRING(VG_LITE_TIMEOUT);
- ENUM_TO_STRING(VG_LITE_OUT_OF_RESOURCES);
- ENUM_TO_STRING(VG_LITE_GENERIC_IO);
- ENUM_TO_STRING(VG_LITE_NOT_SUPPORT);
- ENUM_TO_STRING(VG_LITE_ALREADY_EXISTS);
- ENUM_TO_STRING(VG_LITE_NOT_ALIGNED);
- ENUM_TO_STRING(VG_LITE_FLEXA_TIME_OUT);
- ENUM_TO_STRING(VG_LITE_FLEXA_HANDSHAKE_FAIL);
- default:
- break;
- }
-
- return "VG_LITE_UKNOWN_ERROR";
-}
-
-#if LV_USE_VGLITE_DRAW_ASYNC
-bool vglite_cmd_buf_is_flushed(void)
-{
- return _cmd_buf_flushed;
-}
-#endif
-
-void vglite_run(void)
-{
-#if LV_USE_VGLITE_DRAW_ASYNC
- vg_lite_uint32_t gpu_idle = 0;
-
- VGLITE_CHECK_ERROR(vg_lite_get_parameter(VG_LITE_GPU_IDLE_STATE, 1, (vg_lite_pointer)&gpu_idle));
-
- if(!gpu_idle) {
- _cmd_buf_flushed = false;
-
- return;
- }
-#endif
-
- /*
- * If LV_USE_VGLITE_DRAW_ASYNC is enabled, simply flush the command buffer and the
- * vglite draw thread will signal asynchronous the dispatcher for completed tasks.
- * Without draw async, process the tasks and signal them as complete one by one.
- */
-#if LV_USE_VGLITE_DRAW_ASYNC
- VGLITE_CHECK_ERROR(vg_lite_flush());
- _cmd_buf_flushed = true;
-#else
- VGLITE_CHECK_ERROR(vg_lite_finish());
-#endif
-}
-
-#if LV_USE_VGLITE_DRAW_ASYNC
-void vglite_wait_for_finish(void)
-{
- VGLITE_CHECK_ERROR(vg_lite_finish());
-}
-#endif
-
-vg_lite_color_t vglite_get_color(lv_color32_t lv_col32, bool gradient)
-{
- vg_lite_color_t vg_col32;
-
- /* Pre-multiply alpha */
- lv_col32.red = LV_UDIV255(lv_col32.red * lv_col32.alpha);
- lv_col32.green = LV_UDIV255(lv_col32.green * lv_col32.alpha);
- lv_col32.blue = LV_UDIV255(lv_col32.blue * lv_col32.alpha);
-
- if(!gradient)
- /* The color is in ABGR8888 format with red channel in the lower 8 bits. */
- vg_col32 = ((vg_lite_color_t)lv_col32.alpha << 24) | ((vg_lite_color_t)lv_col32.blue << 16) |
- ((vg_lite_color_t)lv_col32.green << 8) | (vg_lite_color_t)lv_col32.red;
- else
- /* The gradient color is in ARGB8888 format with blue channel in the lower 8 bits. */
- vg_col32 = ((vg_lite_color_t)lv_col32.alpha << 24) | ((vg_lite_color_t)lv_col32.red << 16) |
- ((vg_lite_color_t)lv_col32.green << 8) | (vg_lite_color_t)lv_col32.blue;
-
- return vg_col32;
-}
-
-vg_lite_blend_t vglite_get_blend_mode(lv_blend_mode_t lv_blend_mode)
-{
- vg_lite_blend_t vg_blend_mode = VG_LITE_BLEND_NONE;
-
- if(vg_lite_query_feature(gcFEATURE_BIT_VG_LVGL_SUPPORT)) {
- switch(lv_blend_mode) {
- case LV_BLEND_MODE_NORMAL:
- vg_blend_mode = VG_LITE_BLEND_NORMAL_LVGL;
- break;
- case LV_BLEND_MODE_ADDITIVE:
- vg_blend_mode = VG_LITE_BLEND_ADDITIVE_LVGL;
- break;
- case LV_BLEND_MODE_SUBTRACTIVE:
- vg_blend_mode = VG_LITE_BLEND_SUBTRACT_LVGL;
- break;
- case LV_BLEND_MODE_MULTIPLY:
- vg_blend_mode = VG_LITE_BLEND_MULTIPLY_LVGL;
- break;
- default:
- VGLITE_ASSERT_MSG(false, "Unsupported blend mode.");
- break;
- }
- }
- else {
- switch(lv_blend_mode) {
- case LV_BLEND_MODE_NORMAL:
- vg_blend_mode = VG_LITE_BLEND_SRC_OVER;
- break;
- case LV_BLEND_MODE_ADDITIVE:
- vg_blend_mode = VG_LITE_BLEND_ADDITIVE;
- break;
- case LV_BLEND_MODE_SUBTRACTIVE:
- vg_blend_mode = VG_LITE_BLEND_SUBTRACT;
- break;
- case LV_BLEND_MODE_MULTIPLY:
- vg_blend_mode = VG_LITE_BLEND_MULTIPLY;
- break;
- default:
- VGLITE_ASSERT_MSG(false, "Unsupported blend mode.");
- break;
- }
- }
-
- return vg_blend_mode;
-}
-
-vg_lite_buffer_format_t vglite_get_buf_format(lv_color_format_t cf)
-{
- vg_lite_buffer_format_t vg_buffer_format = VG_LITE_BGR565;
-
- switch(cf) {
- case LV_COLOR_FORMAT_L8:
- vg_buffer_format = VG_LITE_L8;
- break;
- case LV_COLOR_FORMAT_A4:
- vg_buffer_format = VG_LITE_A4;
- break;
- case LV_COLOR_FORMAT_A8:
- vg_buffer_format = VG_LITE_A8;
- break;
- case LV_COLOR_FORMAT_I1:
- vg_buffer_format = VG_LITE_INDEX_1;
- break;
- case LV_COLOR_FORMAT_I2:
- vg_buffer_format = VG_LITE_INDEX_2;
- break;
- case LV_COLOR_FORMAT_I4:
- vg_buffer_format = VG_LITE_INDEX_4;
- break;
- case LV_COLOR_FORMAT_I8:
- vg_buffer_format = VG_LITE_INDEX_8;
- break;
- case LV_COLOR_FORMAT_RGB565:
- vg_buffer_format = VG_LITE_BGR565;
- break;
- case LV_COLOR_FORMAT_ARGB8565:
- vg_buffer_format = VG_LITE_BGRA5658;
- break;
- case LV_COLOR_FORMAT_RGB888:
- vg_buffer_format = VG_LITE_BGR888;
- break;
- case LV_COLOR_FORMAT_ARGB8888:
- vg_buffer_format = VG_LITE_BGRA8888;
- break;
- case LV_COLOR_FORMAT_XRGB8888:
- vg_buffer_format = VG_LITE_BGRX8888;
- break;
-
- default:
- VGLITE_ASSERT_MSG(false, "Unsupported color format.");
- break;
- }
-
- return vg_buffer_format;
-}
-
-uint8_t vglite_get_stride_alignment(lv_color_format_t cf)
-{
- uint8_t align_bytes = LV_COLOR_DEPTH / 8 * 16; /*16 pixels*/
-
- switch(cf) {
- case LV_COLOR_FORMAT_I1:
- case LV_COLOR_FORMAT_I2:
- case LV_COLOR_FORMAT_I4:
- case LV_COLOR_FORMAT_A4:
- align_bytes = 8;
- break;
- case LV_COLOR_FORMAT_I8:
- case LV_COLOR_FORMAT_A8:
- case LV_COLOR_FORMAT_L8:
- align_bytes = 16;
- break;
- case LV_COLOR_FORMAT_RGB565:
- align_bytes = 32;
- break;
- case LV_COLOR_FORMAT_ARGB8565:
- case LV_COLOR_FORMAT_RGB888:
- align_bytes = 48;
- break;
- case LV_COLOR_FORMAT_ARGB8888:
- case LV_COLOR_FORMAT_XRGB8888:
- align_bytes = 64;
- break;
-
- default:
- VGLITE_ASSERT_MSG(false, "Unsupported buffer format.");
- break;
- }
-
- return align_bytes;
-}
-
-bool vglite_src_buf_aligned(const void * buf, uint32_t stride, lv_color_format_t cf)
-{
- /* No alignment requirement for destination buffer when using mode VG_LITE_LINEAR */
-
- /* Test for pointer alignment */
- if((uintptr_t)buf % LV_ATTRIBUTE_MEM_ALIGN_SIZE)
- return false;
-
- /* Test for stride alignment */
- if(stride == 0 || stride % vglite_get_stride_alignment(cf))
- return false;
-
- return true;
-}
-
-/**********************
- * STATIC FUNCTIONS
- **********************/
-
-#endif /*LV_USE_DRAW_VGLITE*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_vglite_utils.h b/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_vglite_utils.h
deleted file mode 100644
index c61e04ecd..000000000
--- a/lib/libesp32_lvgl/lvgl/src/draw/nxp/vglite/lv_vglite_utils.h
+++ /dev/null
@@ -1,183 +0,0 @@
-/**
- * @file lv_vglite_utils.h
- *
- */
-
-/**
- * Copyright 2022-2024 NXP
- *
- * SPDX-License-Identifier: MIT
- */
-
-#ifndef LV_VGLITE_UTILS_H
-#define LV_VGLITE_UTILS_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*********************
- * INCLUDES
- *********************/
-#include "../../../lv_conf_internal.h"
-
-#if LV_USE_DRAW_VGLITE
-#include "../../lv_draw.h"
-
-#include "vg_lite.h"
-#include "vg_lite_options.h"
-
-/*********************
- * DEFINES
- *********************/
-
-#define ENUM_TO_STRING(e) \
- case (e): \
- return #e
-
-#if LV_USE_VGLITE_ASSERT
-#define VGLITE_ASSERT(expr) LV_ASSERT(expr)
-#else
-#define VGLITE_ASSERT(expr)
-#endif
-
-#define VGLITE_ASSERT_MSG(expr, msg) \
- do { \
- if(!(expr)) { \
- LV_LOG_ERROR(msg); \
- VGLITE_ASSERT(false); \
- } \
- } while(0)
-
-#if LV_USE_VGLITE_CHECK_ERROR
-#define VGLITE_CHECK_ERROR(function) \
- do { \
- vg_lite_error_t error = function; \
- if(error != VG_LITE_SUCCESS) { \
- LV_LOG_ERROR("Execute '" #function "' error(%d): %s", \
- (int)error, vglite_error_to_string(error)); \
- VGLITE_ASSERT(false); \
- } \
- } while (0)
-#else
-#define VGLITE_CHECK_ERROR(function) function
-#endif
-
-/**********************
- * TYPEDEFS
- **********************/
-
-/**********************
- * STATIC PROTOTYPES
- **********************/
-
-/**
- * Set the clipping box.
- *
- * @param[in] clip_area Clip area with relative coordinates of destination buffer
- *
- */
-static inline void vglite_set_scissor(const lv_area_t * clip_area);
-
-/**********************
- * GLOBAL PROTOTYPES
- **********************/
-
-const char * vglite_error_to_string(vg_lite_error_t error);
-
-#if LV_USE_VGLITE_DRAW_ASYNC
-/**
- * Get VG-Lite command buffer flushed status.
- *
- */
-bool vglite_cmd_buf_is_flushed(void);
-#endif
-
-/**
- * Flush command to VG-Lite.
- *
- */
-void vglite_run(void);
-
-/**
- * Wait for VG-Lite finish.
- *
- */
-#if LV_USE_VGLITE_DRAW_ASYNC
-void vglite_wait_for_finish(void);
-#endif
-
-/**
- * Get vglite color. Premultiplies (if not hw already) and swizzles the given
- * LVGL 32bit color to obtain vglite color.
- *
- * @param[in] lv_col32 The initial LVGL 32bit color
- * @param[in] gradient True for gradient color
- *
- * @retval The vglite 32-bit color value:
- *
- */
-vg_lite_color_t vglite_get_color(lv_color32_t lv_col32, bool gradient);
-
-/**
- * Get vglite blend mode.
- *
- * @param[in] lv_blend_mode The LVGL blend mode
- *
- * @retval The vglite blend mode
- *
- */
-vg_lite_blend_t vglite_get_blend_mode(lv_blend_mode_t lv_blend_mode);
-
-/**
- * Get vglite buffer format.
- *
- * @param[in] cf Color format
- *
- * @retval The vglite buffer format
- *
- */
-vg_lite_buffer_format_t vglite_get_buf_format(lv_color_format_t cf);
-
-/**
- * Get vglite stride alignment.
- *
- * @param[in] cf Color format
- *
- * @retval Alignment requirement in bytes
- *
- */
-uint8_t vglite_get_stride_alignment(lv_color_format_t cf);
-
-/**
- * Check source start address and stride alignment.
- *
- * @param[in] buf Buffer address
- * @param[in] stride Stride of buffer in bytes
- * @param[in] cf Color format - to calculate the expected alignment
- *
- * @retval true Alignment OK
- *
- */
-bool vglite_src_buf_aligned(const void * buf, uint32_t stride, lv_color_format_t cf);
-
-/**********************
- * MACROS
- **********************/
-
-/**********************
- * STATIC FUNCTIONS
- **********************/
-
-static inline void vglite_set_scissor(const lv_area_t * clip_area)
-{
- vg_lite_set_scissor(clip_area->x1, clip_area->y1, clip_area->x2 + 1, clip_area->y2 + 1);
-}
-
-#endif /*LV_USE_DRAW_VGLITE*/
-
-#ifdef __cplusplus
-} /*extern "C"*/
-#endif
-
-#endif /*LV_VGLITE_UTILS_H*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/opengles/lv_draw_opengles.c b/lib/libesp32_lvgl/lvgl/src/draw/opengles/lv_draw_opengles.c
index fac8bebcc..72ded26d0 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/opengles/lv_draw_opengles.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/opengles/lv_draw_opengles.c
@@ -11,11 +11,10 @@
#if LV_USE_DRAW_OPENGLES
#include "../lv_draw_private.h"
#include "../../misc/cache/lv_cache_entry_private.h"
-#include "../../drivers/glfw/lv_opengles_debug.h"
-#include "../../drivers/glfw/lv_opengles_texture.h"
-#include "../../drivers/glfw/lv_opengles_driver.h"
-#include
-#include
+#include "../../drivers/opengles/lv_opengles_debug.h"
+#include "../../drivers/opengles/lv_opengles_texture.h"
+#include "../../drivers/opengles/lv_opengles_driver.h"
+#include "../../drivers/opengles/lv_opengles_private.h"
#include "../../draw/lv_draw_label.h"
#include "../../draw/lv_draw_rect.h"
#include "../../draw/lv_draw_arc.h"
@@ -101,7 +100,7 @@ void lv_draw_opengles_init(void)
draw_opengles_unit->base_unit.evaluate_cb = evaluate;
draw_opengles_unit->base_unit.name = "OPENGLES";
draw_opengles_unit->texture_cache = lv_cache_create(&lv_cache_class_lru_rb_count,
- sizeof(cache_data_t), 128, (lv_cache_ops_t) {
+ sizeof(cache_data_t), LV_DRAW_OPENGLES_TEXTURE_CACHE_COUNT, (lv_cache_ops_t) {
.compare_cb = (lv_cache_compare_cb_t)opengles_texture_cache_compare_cb,
.create_cb = (lv_cache_create_cb_t)opengles_texture_cache_create_cb,
.free_cb = (lv_cache_free_cb_t)opengles_texture_cache_free_cb,
@@ -130,17 +129,22 @@ void lv_draw_opengles_deinit(void)
static bool opengles_texture_cache_create_cb(cache_data_t * cached_data, void * user_data)
{
- return draw_to_texture((lv_draw_opengles_unit_t *)user_data, cached_data);
+ LV_PROFILER_DRAW_BEGIN;
+ bool ret = draw_to_texture((lv_draw_opengles_unit_t *)user_data, cached_data);
+ LV_PROFILER_DRAW_END;
+ return ret;
}
static void opengles_texture_cache_free_cb(cache_data_t * cached_data, void * user_data)
{
LV_UNUSED(user_data);
+ LV_PROFILER_DRAW_BEGIN;
lv_free(cached_data->draw_dsc);
GL_CALL(glDeleteTextures(1, &cached_data->texture));
cached_data->draw_dsc = NULL;
cached_data->texture = 0;
+ LV_PROFILER_DRAW_END;
}
static lv_cache_compare_res_t opengles_texture_cache_compare_cb(const cache_data_t * lhs, const cache_data_t * rhs)
@@ -190,9 +194,6 @@ static int32_t dispatch(lv_draw_unit_t * draw_unit, lv_layer_t * layer)
if(texture == 0) {
lv_display_t * disp = lv_refr_get_disp_refreshing();
if(layer != disp->layer_head) {
- void * buf = lv_draw_layer_alloc_buf(layer);
- if(buf == NULL) return -1;
-
int32_t w = lv_area_get_width(&layer->buf_area);
int32_t h = lv_area_get_height(&layer->buf_area);
@@ -210,7 +211,7 @@ static int32_t dispatch(lv_draw_unit_t * draw_unit, lv_layer_t * layer)
execute_drawing(draw_opengles_unit);
- draw_opengles_unit->task_act->state = LV_DRAW_TASK_STATE_READY;
+ draw_opengles_unit->task_act->state = LV_DRAW_TASK_STATE_FINISHED;
draw_opengles_unit->task_act = NULL;
/*The draw unit is free now. Request a new dispatching as it can get a new task*/
@@ -240,6 +241,7 @@ static int32_t evaluate(lv_draw_unit_t * draw_unit, lv_draw_task_t * task)
static bool draw_to_texture(lv_draw_opengles_unit_t * u, cache_data_t * cache_data)
{
+ LV_PROFILER_DRAW_BEGIN;
lv_draw_task_t * task = u->task_act;
lv_layer_t dest_layer;
@@ -361,6 +363,7 @@ static bool draw_to_texture(lv_draw_opengles_unit_t * u, cache_data_t * cache_da
default:
/*The malloced cache_data->draw_dsc will be freed automatically on failure
*in opengles_texture_cache_free_cb*/
+ LV_PROFILER_DRAW_END;
return false;
}
@@ -381,11 +384,13 @@ static bool draw_to_texture(lv_draw_opengles_unit_t * u, cache_data_t * cache_da
lv_obj_set_flag(obj, LV_OBJ_FLAG_SEND_DRAW_TASK_EVENTS, original_send_draw_task_event);
}
+ LV_PROFILER_DRAW_END;
return true;
}
static void blend_texture_layer(lv_draw_task_t * t)
{
+ LV_PROFILER_DRAW_BEGIN;
lv_draw_image_dsc_t * draw_dsc = t->draw_dsc;
lv_draw_opengles_unit_t * u = (lv_draw_opengles_unit_t *)t->draw_unit;
lv_area_t area;
@@ -404,33 +409,52 @@ static void blend_texture_layer(lv_draw_task_t * t)
lv_layer_t * dest_layer = t->target_layer;
unsigned int target_texture = layer_get_texture(dest_layer);
- LV_ASSERT(target_texture != 0);
int32_t targ_tex_w = lv_area_get_width(&dest_layer->buf_area);
int32_t targ_tex_h = lv_area_get_height(&dest_layer->buf_area);
- GL_CALL(glBindTexture(GL_TEXTURE_2D, target_texture));
-
- unsigned int framebuffer = get_framebuffer(u);
- GL_CALL(glBindFramebuffer(GL_FRAMEBUFFER, framebuffer));
- GL_CALL(glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, target_texture, 0));
+ if(target_texture) {
+ unsigned int framebuffer = get_framebuffer(u);
+ GL_CALL(glBindFramebuffer(GL_FRAMEBUFFER, framebuffer));
+ GL_CALL(glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, target_texture, 0));
+ }
lv_opengles_viewport(0, 0, targ_tex_w, targ_tex_h);
// TODO rotation
- lv_opengles_render_texture(src_texture, &area, draw_dsc->opa, targ_tex_w, targ_tex_h, &t->clip_area, false);
+ bool h_flip = false;
+ bool v_flip = false;
+#if LV_USE_3DTEXTURE
+ if(t->type == LV_DRAW_TASK_TYPE_3D) {
+ lv_draw_3d_dsc_t * _3d_dsc = (lv_draw_3d_dsc_t *)t->draw_dsc;
+ h_flip = _3d_dsc->h_flip;
+ v_flip = _3d_dsc->v_flip;
+ }
+#endif
+ lv_opengles_render_texture(src_texture, &area, draw_dsc->opa, targ_tex_w, targ_tex_h, &t->clip_area, h_flip,
+ !v_flip);
- GL_CALL(glBindFramebuffer(GL_FRAMEBUFFER, 0));
+ if(target_texture) {
+ GL_CALL(glBindFramebuffer(GL_FRAMEBUFFER, 0));
+ }
-
- GL_CALL(glBindTexture(GL_TEXTURE_2D, 0));
GL_CALL(glDeleteTextures(1, &src_texture));
+ LV_PROFILER_DRAW_END;
}
static void draw_from_cached_texture(lv_draw_task_t * t)
{
+ LV_PROFILER_DRAW_BEGIN;
lv_draw_opengles_unit_t * u = (lv_draw_opengles_unit_t *)t->draw_unit;
cache_data_t data_to_find;
data_to_find.draw_dsc = (lv_draw_dsc_base_t *)t->draw_dsc;
-
+ bool h_flip = false;
+ bool v_flip = false;
+#if LV_USE_3DTEXTURE
+ if(t->type == LV_DRAW_TASK_TYPE_3D) {
+ lv_draw_3d_dsc_t * _3d_dsc = (lv_draw_3d_dsc_t *)t->draw_dsc;
+ h_flip = _3d_dsc->h_flip;
+ v_flip = _3d_dsc->v_flip;
+ }
+#endif
data_to_find.w = lv_area_get_width(&t->_real_area);
data_to_find.h = lv_area_get_height(&t->_real_area);
data_to_find.texture = 0;
@@ -478,6 +502,7 @@ static void draw_from_cached_texture(lv_draw_task_t * t)
lv_area_move(&t->_real_area, a.x1, a.y1);
if(!entry_cached) {
+ LV_PROFILER_DRAW_END;
return;
}
@@ -489,23 +514,24 @@ static void draw_from_cached_texture(lv_draw_task_t * t)
lv_layer_t * dest_layer = t->target_layer;
unsigned int target_texture = layer_get_texture(dest_layer);
- LV_ASSERT(target_texture != 0);
int32_t targ_tex_w = lv_area_get_width(&dest_layer->buf_area);
int32_t targ_tex_h = lv_area_get_height(&dest_layer->buf_area);
- GL_CALL(glBindTexture(GL_TEXTURE_2D, target_texture));
-
- unsigned int framebuffer = get_framebuffer(u);
- GL_CALL(glBindFramebuffer(GL_FRAMEBUFFER, framebuffer));
- GL_CALL(glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, target_texture, 0));
+ if(target_texture) {
+ unsigned int framebuffer = get_framebuffer(u);
+ GL_CALL(glBindFramebuffer(GL_FRAMEBUFFER, framebuffer));
+ GL_CALL(glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, target_texture, 0));
+ }
lv_opengles_viewport(0, 0, targ_tex_w, targ_tex_h);
lv_area_move(&t->clip_area, -dest_layer->buf_area.x1, -dest_layer->buf_area.y1);
lv_area_t render_area = t->_real_area;
lv_area_move(&render_area, -dest_layer->buf_area.x1, -dest_layer->buf_area.y1);
- lv_opengles_render_texture(texture, &render_area, 0xff, targ_tex_w, targ_tex_h, &t->clip_area, true);
+ lv_opengles_render_texture(texture, &render_area, 0xff, targ_tex_w, targ_tex_h, &t->clip_area, h_flip, v_flip);
- GL_CALL(glBindFramebuffer(GL_FRAMEBUFFER, 0));
+ if(target_texture) {
+ GL_CALL(glBindFramebuffer(GL_FRAMEBUFFER, 0));
+ }
lv_cache_release(u->texture_cache, entry_cached, u);
@@ -517,6 +543,7 @@ static void draw_from_cached_texture(lv_draw_task_t * t)
lv_cache_drop(u->texture_cache, &data_to_find, u);
}
}
+ LV_PROFILER_DRAW_END;
}
static void execute_drawing(lv_draw_opengles_unit_t * u)
@@ -524,6 +551,7 @@ static void execute_drawing(lv_draw_opengles_unit_t * u)
lv_draw_task_t * t = u->task_act;
t->draw_unit = (lv_draw_unit_t *)u;
+ /* the shader-based fill is not working reliably with EGL. */
if(t->type == LV_DRAW_TASK_TYPE_FILL) {
lv_draw_fill_dsc_t * fill_dsc = t->draw_dsc;
if(fill_dsc->radius == 0 && fill_dsc->grad.dir == LV_GRAD_DIR_NONE) {
@@ -533,18 +561,21 @@ static void execute_drawing(lv_draw_opengles_unit_t * u)
lv_area_move(&fill_area, -layer->buf_area.x1, -layer->buf_area.y1);
unsigned int target_texture = layer_get_texture(layer);
- LV_ASSERT(target_texture != 0);
int32_t targ_tex_w = lv_area_get_width(&layer->buf_area);
int32_t targ_tex_h = lv_area_get_height(&layer->buf_area);
- unsigned int framebuffer = get_framebuffer(u);
- GL_CALL(glBindFramebuffer(GL_FRAMEBUFFER, framebuffer));
- GL_CALL(glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, target_texture, 0));
+ if(target_texture) {
+ unsigned int framebuffer = get_framebuffer(u);
+ GL_CALL(glBindFramebuffer(GL_FRAMEBUFFER, framebuffer));
+ GL_CALL(glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, target_texture, 0));
+ }
lv_opengles_viewport(0, 0, targ_tex_w, targ_tex_h);
lv_opengles_render_fill(fill_dsc->color, &fill_area, fill_dsc->opa, targ_tex_w, targ_tex_h);
- GL_CALL(glBindFramebuffer(GL_FRAMEBUFFER, 0));
+ if(target_texture) {
+ GL_CALL(glBindFramebuffer(GL_FRAMEBUFFER, 0));
+ }
return;
}
@@ -580,54 +611,60 @@ static unsigned int get_framebuffer(lv_draw_opengles_unit_t * u)
static unsigned int create_texture(int32_t w, int32_t h, const void * data)
{
+ LV_PROFILER_DRAW_BEGIN;
unsigned int texture;
-
GL_CALL(glGenTextures(1, &texture));
GL_CALL(glBindTexture(GL_TEXTURE_2D, texture));
- GL_CALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST));
- GL_CALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST));
GL_CALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE));
GL_CALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE));
GL_CALL(glPixelStorei(GL_UNPACK_ALIGNMENT, 1));
- /* LV_COLOR_DEPTH 32, 24, 16 are supported but the cached textures will always
+ /* LV_COLOR_DEPTH 32, 16 are supported but the cached textures will always
* have full ARGB pixels since the alpha channel is required for blending.
*/
GL_CALL(glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w, h, 0, GL_BGRA, GL_UNSIGNED_BYTE, data));
+#if 0
+ GL_CALL(glGenerateMipmap(GL_TEXTURE_2D));
+ GL_CALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 20));
+ GL_CALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_NEAREST));
+#endif
- glGenerateMipmap(GL_TEXTURE_2D);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 20);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_NEAREST);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+ GL_CALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST));
+ GL_CALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST));
+ GL_CALL(glBindTexture(GL_TEXTURE_2D, 0));
+ LV_PROFILER_DRAW_END;
return texture;
}
#if LV_USE_3DTEXTURE
static void lv_draw_opengles_3d(lv_draw_task_t * t, const lv_draw_3d_dsc_t * dsc, const lv_area_t * coords)
{
+ LV_PROFILER_DRAW_BEGIN;
lv_draw_opengles_unit_t * u = (lv_draw_opengles_unit_t *) t->draw_unit;
lv_layer_t * dest_layer = t->target_layer;
unsigned int target_texture = layer_get_texture(dest_layer);
- LV_ASSERT(target_texture != 0);
int32_t targ_tex_w = lv_area_get_width(&dest_layer->buf_area);
int32_t targ_tex_h = lv_area_get_height(&dest_layer->buf_area);
- GL_CALL(glBindTexture(GL_TEXTURE_2D, target_texture));
-
- unsigned int framebuffer = get_framebuffer(u);
- GL_CALL(glBindFramebuffer(GL_FRAMEBUFFER, framebuffer));
- GL_CALL(glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, target_texture, 0));
+ if(target_texture) {
+ unsigned int framebuffer = get_framebuffer(u);
+ GL_CALL(glBindFramebuffer(GL_FRAMEBUFFER, framebuffer));
+ GL_CALL(glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, target_texture, 0));
+ }
lv_opengles_viewport(0, 0, targ_tex_w, targ_tex_h);
lv_area_t clip_area = t->clip_area;
lv_area_move(&clip_area, -dest_layer->buf_area.x1, -dest_layer->buf_area.y1);
- lv_opengles_render_texture(dsc->tex_id, coords, dsc->opa, targ_tex_w, targ_tex_h, &clip_area, true);
+ lv_opengles_render_texture(dsc->tex_id, coords, dsc->opa, targ_tex_w, targ_tex_h, &clip_area, dsc->h_flip,
+ !dsc->v_flip);
- GL_CALL(glBindFramebuffer(GL_FRAMEBUFFER, 0));
- GL_CALL(glBindTexture(GL_TEXTURE_2D, 0));
+ if(target_texture) {
+ GL_CALL(glBindFramebuffer(GL_FRAMEBUFFER, 0));
+ }
+ LV_PROFILER_DRAW_END;
}
#endif /*LV_USE_3DTEXTURE*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d.c b/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d.c
index fca89756d..4f5b2276e 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d.c
@@ -14,8 +14,15 @@
/*********************
* DEFINES
*********************/
-#define DRAW_UNIT_ID_DAVE2D 4
+#define DRAW_UNIT_ID_DAVE2D 4
+/* The amount of tasks exercising pressure to the currrent to get finished
+ * This one is used as the main signal to start to render a block of tasks.
+ */
+#define DAVE2D_MAX_DRAW_PRESSURE 256
+#if (DAVE2D_MAX_DRAW_PRESSURE < 256)
+ #error "DRAW Pressure should be at least 256 otherwise the Dave engine may crash!"
+#endif
/**********************
* TYPEDEFS
**********************/
@@ -23,12 +30,8 @@
/**********************
* STATIC PROTOTYPES
**********************/
-#if LV_USE_OS
- static void _dave2d_render_thread_cb(void * ptr);
-#endif
static void execute_drawing(lv_draw_dave2d_unit_t * u);
-
#if defined(RENESAS_CORTEX_M85)
#if (BSP_CFG_DCACHE_ENABLED)
static void _dave2d_buf_invalidate_cache_cb(const lv_draw_buf_t * draw_buf, const lv_area_t * area);
@@ -36,13 +39,12 @@ static void execute_drawing(lv_draw_dave2d_unit_t * u);
#endif
static int32_t _dave2d_evaluate(lv_draw_unit_t * draw_unit, lv_draw_task_t * task);
-
+static int32_t _dave2d_wait_finish(lv_draw_unit_t * draw_unit);
static int32_t lv_draw_dave2d_dispatch(lv_draw_unit_t * draw_unit, lv_layer_t * layer);
static d2_s32 lv_dave2d_init(void);
-
static void lv_draw_buf_dave2d_init_handlers(void);
-
+static bool lv_draw_dave2d_image_color_format_supported(lv_color_format_t color_format);
void dave2d_execute_dlist_and_flush(void);
/**********************
@@ -53,11 +55,16 @@ void dave2d_execute_dlist_and_flush(void);
* STATIC VARIABLES
**********************/
-d2_device * _d2_handle;
-d2_renderbuffer * _renderbuffer;
-d2_renderbuffer * _blit_renderbuffer;
+static d2_device * _d2_handle;
-lv_ll_t _ll_Dave2D_Tasks;
+/* Main render buffer, used to carry the block of dave commands for any shape */
+static d2_renderbuffer * _renderbuffer;
+
+/* Label dedicated render buffer, used to carry only label related dave commands */
+static d2_renderbuffer * _label_renderbuffer;
+
+static lv_ll_t draw_tasks_on_dlist;
+static uint32_t draw_pressure = 0;
#if LV_USE_OS
lv_mutex_t xd2Semaphore;
@@ -80,6 +87,7 @@ void lv_draw_dave2d_init(void)
lv_draw_dave2d_unit_t * draw_dave2d_unit = lv_draw_create_unit(sizeof(lv_draw_dave2d_unit_t));
draw_dave2d_unit->base_unit.dispatch_cb = lv_draw_dave2d_dispatch;
draw_dave2d_unit->base_unit.evaluate_cb = _dave2d_evaluate;
+ draw_dave2d_unit->base_unit.wait_for_finish_cb = _dave2d_wait_finish;
draw_dave2d_unit->base_unit.name = "DAVE2D";
draw_dave2d_unit->idx = DRAW_UNIT_ID_DAVE2D;
@@ -90,19 +98,13 @@ void lv_draw_dave2d_init(void)
lv_result_t res;
res = lv_mutex_init(&xd2Semaphore);
LV_ASSERT(LV_RESULT_OK == res);
-
draw_dave2d_unit->pd2Mutex = &xd2Semaphore;
#endif
draw_dave2d_unit->d2_handle = _d2_handle;
draw_dave2d_unit->renderbuffer = _renderbuffer;
- lv_ll_init(&_ll_Dave2D_Tasks, 4);
-
-#if LV_USE_OS
- lv_thread_init(&draw_dave2d_unit->thread, "dave2d", LV_DRAW_THREAD_PRIO, _dave2d_render_thread_cb, 8 * 1024,
- draw_dave2d_unit);
-#endif
-
+ draw_dave2d_unit->label_renderbuffer = _label_renderbuffer;
+ lv_ll_init(&draw_tasks_on_dlist, sizeof(uintptr_t));
}
/**********************
@@ -211,6 +213,26 @@ static void _dave2d_buf_copy(void * dest_buf, uint32_t dest_w, uint32_t dest_h,
}
#endif
+static bool lv_draw_dave2d_image_color_format_supported(lv_color_format_t color_format)
+{
+ bool supported = false;
+
+ switch(color_format) {
+ case LV_COLOR_FORMAT_A8:
+ case LV_COLOR_FORMAT_RGB565:
+ case LV_COLOR_FORMAT_ARGB1555:
+ case LV_COLOR_FORMAT_ARGB4444:
+ case LV_COLOR_FORMAT_ARGB8888:
+ case LV_COLOR_FORMAT_XRGB8888:
+ supported = true;
+ break;
+ default:
+ break;
+ }
+
+ return supported;
+}
+
#define USE_D2 (1)
static int32_t _dave2d_evaluate(lv_draw_unit_t * u, lv_draw_task_t * t)
@@ -251,8 +273,7 @@ static int32_t _dave2d_evaluate(lv_draw_unit_t * u, lv_draw_task_t * t)
case LV_DRAW_TASK_TYPE_IMAGE: {
lv_draw_image_dsc_t * dsc = t->draw_dsc;
- if((dsc->header.cf >= LV_COLOR_FORMAT_PROPRIETARY_START) || (dsc->header.cf == LV_COLOR_FORMAT_RGB888) ||
- (dsc->header.cf == LV_COLOR_FORMAT_RGB565A8)) {
+ if(!lv_draw_dave2d_image_color_format_supported(dsc->header.cf)) {
ret = 0;
break;
}
@@ -345,103 +366,105 @@ static int32_t _dave2d_evaluate(lv_draw_unit_t * u, lv_draw_task_t * t)
return ret;
}
-#define DAVE2D_REFERRING_WATERMARK 10
static int32_t lv_draw_dave2d_dispatch(lv_draw_unit_t * draw_unit, lv_layer_t * layer)
{
lv_draw_dave2d_unit_t * draw_dave2d_unit = (lv_draw_dave2d_unit_t *) draw_unit;
-#if (0 == D2_RENDER_EACH_OPERATION)
- static uint32_t ref_count = 0;
-#endif
+ uint32_t deps = 0;
- /*Return immediately if it's busy with draw task*/
- if(draw_dave2d_unit->task_act) return 0;
+ if(draw_dave2d_unit->task_act) {
+ /* Return immediately if it's busy with draw task */
+ return LV_DRAW_UNIT_IDLE;
+ }
lv_draw_task_t * t = NULL;
- t = lv_draw_get_available_task(layer, NULL, DRAW_UNIT_ID_DAVE2D);
- while(t && t->preferred_draw_unit_id != DRAW_UNIT_ID_DAVE2D) {
- t->state = LV_DRAW_TASK_STATE_READY;
- t = lv_draw_get_available_task(layer, NULL, DRAW_UNIT_ID_DAVE2D);
- }
-
+ t = lv_draw_get_next_available_task(layer, NULL, DRAW_UNIT_ID_DAVE2D);
if(t == NULL) {
-#if (0 == D2_RENDER_EACH_OPERATION)
- if(false == lv_ll_is_empty(&_ll_Dave2D_Tasks)) {
- ref_count = 0;
+ /* No valid task, but there are tasks waiting to be rendered,
+ * start to draw then immediatelly.
+ */
+ if(false == lv_ll_is_empty(&draw_tasks_on_dlist)) {
+ draw_pressure = 0;
dave2d_execute_dlist_and_flush();
}
-#endif
- return LV_DRAW_UNIT_IDLE; /*Couldn't start rendering*/
+ return LV_DRAW_UNIT_IDLE; /* This task is not for us. */
}
- /* Return if target buffer format is not supported. */
- if(!lv_draw_dave2d_is_dest_cf_supported(layer->color_format)) {
- return LV_DRAW_UNIT_IDLE; /*Couldn't start rendering*/
- }
+ if((t->preferred_draw_unit_id != DRAW_UNIT_ID_DAVE2D)) return LV_DRAW_UNIT_IDLE;
+ if(!lv_draw_dave2d_is_dest_cf_supported(layer->color_format)) return LV_DRAW_UNIT_IDLE;
void * buf = lv_draw_layer_alloc_buf(layer);
- if(buf == NULL) {
- return LV_DRAW_UNIT_IDLE; /*Couldn't start rendering*/
- }
+ if(buf == NULL) return LV_DRAW_UNIT_IDLE;
-#if (0 == D2_RENDER_EACH_OPERATION)
- ref_count += lv_draw_get_dependent_count(t);
+ deps = lv_draw_get_dependent_count(t);
+ if(deps > 0 || draw_pressure > 0) {
+ draw_pressure += deps;
+ if(draw_pressure < DAVE2D_MAX_DRAW_PRESSURE) {
+ /* No other tasks are pressuring to get the current block
+ * of tasks including the latest one, just accumulate it
+ * and tells the drawing pipeline to send a new one if there is any
+ */
+ lv_draw_task_t ** p_new_list_entry;
+ p_new_list_entry = lv_ll_ins_tail(&draw_tasks_on_dlist);
+ *p_new_list_entry = t;
- if(DAVE2D_REFERRING_WATERMARK < ref_count) {
- ref_count = 0;
- dave2d_execute_dlist_and_flush();
- }
+ draw_dave2d_unit->task_act = t;
+ draw_dave2d_unit->task_act->state = LV_DRAW_TASK_STATE_IN_PROGRESS;
+ execute_drawing(draw_dave2d_unit);
- lv_draw_task_t ** p_new_list_entry;
- p_new_list_entry = lv_ll_ins_tail(&_ll_Dave2D_Tasks);
- *p_new_list_entry = t;
-#endif
+ draw_dave2d_unit->task_act = NULL;
+ lv_draw_dispatch_request();
- t->state = LV_DRAW_TASK_STATE_IN_PROGRESS;
- draw_dave2d_unit->task_act = t;
-
-#if LV_USE_OS
- /*Let the render thread work*/
- lv_thread_sync_signal(&draw_dave2d_unit->sync);
-#else
- execute_drawing(draw_dave2d_unit);
-#if (D2_RENDER_EACH_OPERATION)
- draw_dave2d_unit->task_act->state = LV_DRAW_TASK_STATE_READY;
-#endif
- draw_dave2d_unit->task_act = NULL;
-
- /*The draw unit is free now. Request a new dispatching as it can get a new task*/
- lv_draw_dispatch_request();
-
-#endif
- return 1;
-}
-
-#if LV_USE_OS
-static void _dave2d_render_thread_cb(void * ptr)
-{
- lv_draw_dave2d_unit_t * u = ptr;
-
- lv_thread_sync_init(&u->sync);
-
- while(1) {
- while(u->task_act == NULL) {
- lv_thread_sync_wait(&u->sync);
+ return 1;
}
+ /* If the pressure for drawing value was maxed-out, it is time to render
+ * return IDLE to force the drawing pipeline to wait while the Dave
+ * draw the block of tasks in a single row
+ */
+ return LV_DRAW_UNIT_IDLE;
+ }
+ else {
+ /* Handles a special case when there is no sufficient draw pressure
+ * But the actual task did not carry any extra pressure to get drew
+ * in this case, the drawing pipeline have a few set of tasks that
+ * don't make sense to accumulate them, just do a run to completion
+ * here, that is it, render the incoming task immediately.
+ */
+ draw_dave2d_unit->task_act = t;
+ draw_dave2d_unit->task_act->state = LV_DRAW_TASK_STATE_IN_PROGRESS;
+ d2_selectrenderbuffer(_d2_handle, _renderbuffer);
+ execute_drawing(draw_dave2d_unit);
+ d2_executerenderbuffer(_d2_handle, _renderbuffer, 0);
+ d2_flushframe(_d2_handle);
- execute_drawing(u);
-
- /*Cleanup*/
-#if (D2_RENDER_EACH_OPERATION)
- u->task_act->state = LV_DRAW_TASK_STATE_READY;
-#endif
- u->task_act = NULL;
-
- /*The draw unit is free now. Request a new dispatching as it can get a new task*/
+ draw_dave2d_unit->task_act->state = LV_DRAW_TASK_STATE_FINISHED;
+ draw_dave2d_unit->task_act = NULL;
lv_draw_dispatch_request();
+
+ return 1;
}
}
-#endif
+
+static int32_t _dave2d_wait_finish(lv_draw_unit_t * draw_unit)
+{
+ /* If the drawing pipeline is waiting it means the pressure for drawing
+ * has been maxed out, defer the block of tasks to be rendered by the
+ * Dave and wait for its interrupt. (Dave2D driver is RTOS aware, no need for semaphores);
+ */
+ lv_draw_dave2d_unit_t * draw_dave2d_unit = (lv_draw_dave2d_unit_t *) draw_unit;
+
+ if(!draw_pressure) {
+ /* It reached here because Dave2D Draw Unit was not suitable to take a task
+ * While there is nothing being rendered, prevent the dead lock
+ * by flushing the GPU command buffer empty and just return.
+ */
+ return 0;
+ }
+ dave2d_execute_dlist_and_flush();
+ draw_pressure = 0;
+
+ return 0;
+}
static void execute_drawing(lv_draw_dave2d_unit_t * u)
{
@@ -510,6 +533,11 @@ static void execute_drawing(lv_draw_dave2d_unit_t * u)
break;
}
+#if defined(RENESAS_CORTEX_M85)
+#if (BSP_CFG_DCACHE_ENABLED)
+ lv_draw_buf_invalidate_cache(layer->draw_buf, &clipped_area);
+#endif
+#endif
}
static d2_s32 lv_dave2d_init(void)
@@ -544,23 +572,23 @@ static d2_s32 lv_dave2d_init(void)
result = d2_setlinejoin(_d2_handle, d2_lj_miter);
/* set blocksize for default displaylist */
- result = d2_setdlistblocksize(_d2_handle, 25);
+ result = d2_setdlistblocksize(_d2_handle, 20);
if(D2_OK != result) {
LV_LOG_ERROR("Could NOT d2_setdlistblocksize");
d2_closedevice(_d2_handle);
return result;
}
- _blit_renderbuffer = d2_newrenderbuffer(_d2_handle, 20, 20);
- if(!_blit_renderbuffer) {
+ _renderbuffer = d2_newrenderbuffer(_d2_handle, 250, 25);
+ if(!_renderbuffer) {
LV_LOG_ERROR("NO renderbuffer");
d2_closedevice(_d2_handle);
return D2_NOMEMORY;
}
- _renderbuffer = d2_newrenderbuffer(_d2_handle, 20, 20);
- if(!_renderbuffer) {
+ _label_renderbuffer = d2_newrenderbuffer(_d2_handle, 250, 25);
+ if(!_label_renderbuffer) {
LV_LOG_ERROR("NO renderbuffer");
d2_closedevice(_d2_handle);
@@ -578,6 +606,10 @@ static d2_s32 lv_dave2d_init(void)
void dave2d_execute_dlist_and_flush(void)
{
+ d2_s32 result;
+ lv_draw_task_t ** p_list_entry;
+ lv_draw_task_t * p_list_entry1;
+
#if LV_USE_OS
lv_result_t status;
@@ -585,11 +617,6 @@ void dave2d_execute_dlist_and_flush(void)
LV_ASSERT(LV_RESULT_OK == status);
#endif
- d2_s32 result;
- lv_draw_task_t ** p_list_entry;
- lv_draw_task_t * p_list_entry1;
-
- // Execute render operations
result = d2_executerenderbuffer(_d2_handle, _renderbuffer, 0);
LV_ASSERT(D2_OK == result);
@@ -599,11 +626,11 @@ void dave2d_execute_dlist_and_flush(void)
result = d2_selectrenderbuffer(_d2_handle, _renderbuffer);
LV_ASSERT(D2_OK == result);
- while(false == lv_ll_is_empty(&_ll_Dave2D_Tasks)) {
- p_list_entry = lv_ll_get_tail(&_ll_Dave2D_Tasks);
+ while(false == lv_ll_is_empty(&draw_tasks_on_dlist)) {
+ p_list_entry = lv_ll_get_tail(&draw_tasks_on_dlist);
p_list_entry1 = *p_list_entry;
- p_list_entry1->state = LV_DRAW_TASK_STATE_READY;
- lv_ll_remove(&_ll_Dave2D_Tasks, p_list_entry);
+ p_list_entry1->state = LV_DRAW_TASK_STATE_FINISHED;
+ lv_ll_remove(&draw_tasks_on_dlist, p_list_entry);
lv_free(p_list_entry);
}
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d.h b/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d.h
index 6f29b70be..53b613d44 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d.h
+++ b/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d.h
@@ -17,7 +17,37 @@ extern "C" {
#if LV_USE_DRAW_DAVE2D
#include "../../lv_draw.h"
#include "../../lv_draw_private.h"
-#include "hal_data.h"
+#include "bsp_api.h"
+#include "dave_driver.h"
+
+#if LV_USE_FLOAT
+
+/* We need to redefine some of D2 fixed point math macros to deal with lv_precise_t being float now */
+#undef D2_FIX4
+#undef D2_INT4
+#undef D2_FLOOR4
+#undef D2_CEIL4
+#undef D2_FRAC4
+#undef D2_FIX16
+#undef D2_INT16
+#undef D2_FLOOR16
+#undef D2_CEIL16
+#undef D2_FRAC16
+
+#define D2_FIX4(x) (((int32_t)(x)) << 4)
+#define D2_INT4(x) (((int32_t)(x))(x) >> 4)
+#define D2_FLOOR4(x) (((int32_t)(x))((d2_u32)(x)) & ~15u)
+#define D2_CEIL4(x) ((((d2_u32)(x)) + 15u) & ~15u)
+#define D2_FRAC4(x) (((d2_u32)(x)) & 15u)
+#define D2_FIX16(x) (((int32_t)(x)) << 16)
+#define D2_INT16(x) (((int32_t)(x)) >> 16)
+#define D2_FLOOR16(x) (((d2_u32)(x)) & ~65535u)
+#define D2_CEIL16(x) ((((d2_u32)(x)) + 65535u) & ~65535u)
+#define D2_FRAC16(x) (((d2_u32)(x)) & 65535u)
+
+/* It also should be included here before the other LVGL Dave2D files */
+#endif
+
#include "lv_draw_dave2d_utils.h"
#include "../../lv_draw_rect.h"
#include "../../lv_draw_line.h"
@@ -33,8 +63,6 @@ extern "C" {
* DEFINES
*********************/
-#define D2_RENDER_EACH_OPERATION (1)
-
/**********************
* TYPEDEFS
**********************/
@@ -49,6 +77,8 @@ typedef struct {
uint32_t idx;
d2_device * d2_handle;
d2_renderbuffer * renderbuffer;
+ d2_renderbuffer * label_renderbuffer;
+
#if LV_USE_OS
lv_mutex_t * pd2Mutex;
#endif
@@ -103,4 +133,4 @@ void lv_draw_dave2d_transform(lv_draw_task_t * t, const lv_area_t * dest_area, c
} /*extern "C"*/
#endif
-#endif /*LV_USE_DRAW_DAVE2D*/
+#endif /*LV_DRAW_DAVE2D_H*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d_arc.c b/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d_arc.c
index 42a7c27d2..5f8774aac 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d_arc.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d_arc.c
@@ -46,10 +46,6 @@ void lv_draw_dave2d_arc(lv_draw_task_t * t, const lv_draw_arc_dsc_t * dsc, const
LV_ASSERT(LV_RESULT_OK == status);
#endif
-#if D2_RENDER_EACH_OPERATION
- d2_selectrenderbuffer(u->d2_handle, u->renderbuffer);
-#endif
-
//
// Generate render operations
//
@@ -171,15 +167,6 @@ void lv_draw_dave2d_arc(lv_draw_task_t * t, const lv_draw_arc_dsc_t * dsc, const
}
}
- //
- // Execute render operations
- //
-
-#if D2_RENDER_EACH_OPERATION
- d2_executerenderbuffer(u->d2_handle, u->renderbuffer, 0);
- d2_flushframe(u->d2_handle);
-#endif
-
#if LV_USE_OS
status = lv_mutex_unlock(u->pd2Mutex);
LV_ASSERT(LV_RESULT_OK == status);
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d_border.c b/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d_border.c
index 8298c2a9a..b3b91c89b 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d_border.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d_border.c
@@ -78,13 +78,6 @@ static void dave2d_draw_border_simple(lv_draw_task_t * t, const lv_area_t * oute
lv_area_move(&local_outer_area, x, y);
lv_area_move(&local_inner_area, x, y);
-#if D2_RENDER_EACH_OPERATION
- d2_selectrenderbuffer(u->d2_handle, u->renderbuffer);
-#endif
- //
- // Generate render operations
- //
-
d2_framebuffer_from_layer(u->d2_handle, t->target_layer);
d2_setcolor(u->d2_handle, 0, lv_draw_dave2d_lv_colour_to_d2_colour(color));
@@ -143,14 +136,6 @@ static void dave2d_draw_border_simple(lv_draw_task_t * t, const lv_area_t * oute
(d2_point)D2_FIX4(lv_area_get_height(&a)));
}
- //
- // Execute render operations
- //
-#if D2_RENDER_EACH_OPERATION
- d2_executerenderbuffer(u->d2_handle, u->renderbuffer, 0);
- d2_flushframe(u->d2_handle);
-#endif
-
#if LV_USE_OS
status = lv_mutex_unlock(u->pd2Mutex);
LV_ASSERT(LV_RESULT_OK == status);
@@ -190,9 +175,6 @@ static void dave2d_draw_border_complex(lv_draw_task_t * t, const lv_area_t * ori
lv_area_move(&outer_area, x, y);
lv_area_move(&inner_area, x, y);
-#if D2_RENDER_EACH_OPERATION
- d2_selectrenderbuffer(u->d2_handle, u->renderbuffer);
-#endif
//
// Generate render operations
//
@@ -402,14 +384,6 @@ static void dave2d_draw_border_complex(lv_draw_task_t * t, const lv_area_t * ori
d2_setantialiasing(u->d2_handle, aa); //restore original setting
}
- //
- // Execute render operations
- //
-#if D2_RENDER_EACH_OPERATION
- d2_executerenderbuffer(u->d2_handle, u->renderbuffer, 0);
- d2_flushframe(u->d2_handle);
-#endif
-
#if LV_USE_OS
status = lv_mutex_unlock(u->pd2Mutex);
LV_ASSERT(LV_RESULT_OK == status);
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d_fill.c b/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d_fill.c
index 8a0eec2a8..66c6d994c 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d_fill.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d_fill.c
@@ -34,13 +34,6 @@ void lv_draw_dave2d_fill(lv_draw_task_t * t, const lv_draw_fill_dsc_t * dsc, con
lv_area_move(&draw_area, x, y);
lv_area_move(&coordinates, x, y);
- //
- // Generate render operations
- //
-#if D2_RENDER_EACH_OPERATION
- d2_selectrenderbuffer(u->d2_handle, u->renderbuffer);
-#endif
-
d2_framebuffer_from_layer(u->d2_handle, t->target_layer);
if(LV_GRAD_DIR_NONE != dsc->grad.dir) {
@@ -63,8 +56,6 @@ void lv_draw_dave2d_fill(lv_draw_task_t * t, const lv_draw_fill_dsc_t * dsc, con
y2 = (float)LV_MAX(coordinates.y1, coordinates.y2);
if(a1 < a2) {
- /* TODO */
- LV_ASSERT(0);
y0 = 0.0f;//silence the compiler warning
y3 = 0.0f;
@@ -81,8 +72,6 @@ void lv_draw_dave2d_fill(lv_draw_task_t * t, const lv_draw_fill_dsc_t * dsc, con
(d2_point)D2_FIX4((y3_i - y0_i)));
}
else if(LV_GRAD_DIR_HOR == dsc->grad.dir) {
- /* TODO */
- LV_ASSERT(0);
float x1;
float x2;
@@ -99,8 +88,6 @@ void lv_draw_dave2d_fill(lv_draw_task_t * t, const lv_draw_fill_dsc_t * dsc, con
x2 = (float)LV_MAX(coordinates.x1, coordinates.x2);
if(a1 < a2) {
- /* TODO */
- LV_ASSERT(0);
x0 = 0.0f;//silence the compiler warning
x3 = 0.0f;
@@ -289,14 +276,6 @@ void lv_draw_dave2d_fill(lv_draw_task_t * t, const lv_draw_fill_dsc_t * dsc, con
}
}
- //
- // Execute render operations
- //
-#if D2_RENDER_EACH_OPERATION
- d2_executerenderbuffer(u->d2_handle, u->renderbuffer, 0);
- d2_flushframe(u->d2_handle);
-#endif
-
if(LV_GRAD_DIR_NONE != dsc->grad.dir) {
d2_setalphamode(u->d2_handle, current_alpha_mode);
d2_setfillmode(u->d2_handle, d2_fm_color); //default
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d_image.c b/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d_image.c
index af7892e06..76e6d054a 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d_image.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d_image.c
@@ -102,11 +102,6 @@ static void img_draw_core(lv_draw_task_t * t, const lv_draw_image_dsc_t * draw_d
lv_area_move(&buffer_area, x, y);
lv_area_move(&clipped_area, x, y);
- /* Generate render operations*/
-#if D2_RENDER_EACH_OPERATION
- d2_selectrenderbuffer(u->d2_handle, u->renderbuffer);
-#endif
-
current_fill_mode = d2_getfillmode(u->d2_handle);
a_texture_op = d2_gettextureoperationa(u->d2_handle);
r_texture_op = d2_gettextureoperationr(u->d2_handle);
@@ -302,14 +297,6 @@ static void img_draw_core(lv_draw_task_t * t, const lv_draw_image_dsc_t * draw_d
(d2_point)D2_FIX4(p[3].y),
0);
- //
- // Execute render operations
- //
-#if D2_RENDER_EACH_OPERATION
- d2_executerenderbuffer(u->d2_handle, u->renderbuffer, 0);
- d2_flushframe(u->d2_handle);
-#endif
-
d2_setfillmode(u->d2_handle, current_fill_mode);
d2_settextureoperation(u->d2_handle, a_texture_op, r_texture_op, g_texture_op, b_texture_op);
d2_setblendmode(u->d2_handle, src_blend_mode, dst_blend_mode);
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d_label.c b/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d_label.c
index f16b08b23..fa146b738 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d_label.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d_label.c
@@ -7,8 +7,6 @@
static void lv_draw_dave2d_draw_letter_cb(lv_draw_task_t * t, lv_draw_glyph_dsc_t * glyph_draw_dsc,
lv_draw_fill_dsc_t * fill_draw_dsc, const lv_area_t * fill_area);
-static lv_draw_dave2d_unit_t * unit = NULL;
-
void lv_draw_dave2d_label(lv_draw_task_t * t, const lv_draw_label_dsc_t * dsc, const lv_area_t * coords)
{
if(dsc->opa <= LV_OPA_MIN) return;
@@ -20,49 +18,46 @@ void lv_draw_dave2d_label(lv_draw_task_t * t, const lv_draw_label_dsc_t * dsc, c
static void lv_draw_dave2d_draw_letter_cb(lv_draw_task_t * t, lv_draw_glyph_dsc_t * glyph_draw_dsc,
lv_draw_fill_dsc_t * fill_draw_dsc, const lv_area_t * fill_area)
{
+ if(glyph_draw_dsc) {
+ d2_u8 current_fillmode;
+ lv_area_t clip_area;
+ lv_area_t letter_coords;
- d2_u8 current_fillmode;
- lv_area_t clip_area;
- lv_area_t letter_coords;
+ int32_t x;
+ int32_t y;
- int32_t x;
- int32_t y;
+ letter_coords = *glyph_draw_dsc->letter_coords;
+ lv_draw_dave2d_unit_t * unit = (lv_draw_dave2d_unit_t *)t->draw_unit;
- letter_coords = *glyph_draw_dsc->letter_coords;
- lv_draw_dave2d_unit_t * unit = (lv_draw_dave2d_unit_t *)t->draw_unit;
+ bool is_common;
+ is_common = lv_area_intersect(&clip_area, glyph_draw_dsc->letter_coords, &t->clip_area);
+ if(!is_common) return;
- bool is_common;
- is_common = lv_area_intersect(&clip_area, glyph_draw_dsc->letter_coords, &t->clip_area);
- if(!is_common) return;
+ x = 0 - t->target_layer->buf_area.x1;
+ y = 0 - t->target_layer->buf_area.y1;
- x = 0 - t->target_layer->buf_area.x1;
- y = 0 - t->target_layer->buf_area.y1;
-
- lv_area_move(&clip_area, x, y);
- lv_area_move(&letter_coords, x, y);
+ lv_area_move(&clip_area, x, y);
+ lv_area_move(&letter_coords, x, y);
#if LV_USE_OS
- lv_result_t status;
- status = lv_mutex_lock(unit->pd2Mutex);
- LV_ASSERT(LV_RESULT_OK == status);
+ lv_result_t status;
+ status = lv_mutex_lock(unit->pd2Mutex);
+ LV_ASSERT(LV_RESULT_OK == status);
#endif
+ /* Labels use their own render buffer, select it first. */
+ d2_selectrenderbuffer(unit->d2_handle, unit->label_renderbuffer);
-#if D2_RENDER_EACH_OPERATION
- d2_selectrenderbuffer(unit->d2_handle, unit->renderbuffer);
-#endif
+ //
+ // Generate render operations
+ //
- //
- // Generate render operations
- //
+ d2_framebuffer_from_layer(unit->d2_handle, t->target_layer);
- d2_framebuffer_from_layer(unit->d2_handle, t->target_layer);
+ current_fillmode = d2_getfillmode(unit->d2_handle);
- current_fillmode = d2_getfillmode(unit->d2_handle);
+ d2_cliprect(unit->d2_handle, (d2_border)clip_area.x1, (d2_border)clip_area.y1, (d2_border)clip_area.x2,
+ (d2_border)clip_area.y2);
- d2_cliprect(unit->d2_handle, (d2_border)clip_area.x1, (d2_border)clip_area.y1, (d2_border)clip_area.x2,
- (d2_border)clip_area.y2);
-
- if(glyph_draw_dsc) {
switch(glyph_draw_dsc->format) {
case LV_FONT_GLYPH_FORMAT_NONE: {
#if LV_USE_FONT_PLACEHOLDER
@@ -91,7 +86,7 @@ static void lv_draw_dave2d_draw_letter_cb(lv_draw_task_t * t, lv_draw_glyph_dsc_
// blend_dsc.mask_res = LV_DRAW_SW_MASK_RES_CHANGED;
//lv_draw_sw_blend(u, &blend_dsc);
- lv_draw_buf_t * draw_buf = glyph_draw_dsc->glyph_data;
+ const lv_draw_buf_t * draw_buf = glyph_draw_dsc->glyph_data;
#if defined(RENESAS_CORTEX_M85)
#if (BSP_CFG_DCACHE_ENABLED)
@@ -140,25 +135,27 @@ static void lv_draw_dave2d_draw_letter_cb(lv_draw_task_t * t, lv_draw_glyph_dsc_
default:
break;
}
- }
- //
- // Execute render operations
- //
-#if D2_RENDER_EACH_OPERATION
- d2_executerenderbuffer(unit->d2_handle, unit->renderbuffer, 0);
- d2_flushframe(unit->d2_handle);
-#endif
-
- if(fill_draw_dsc && fill_area) {
- //lv_draw_sw_fill(u, fill_draw_dsc, fill_area);
- lv_draw_dave2d_fill(t, fill_draw_dsc, fill_area);
- }
+ /* Drawing labels is a special case, because its draw buffer is shared
+ * between all the glyphs, then using the global render bufeer to defer
+ * its drawing later with other shapes, will corrupt the text drawn,
+ * instead, pushes all the glyph commands and its dedicated draw buffer
+ * to a specific render buffer, and draw it immediately while the contents
+ * are valid.
+ */
+ d2_executerenderbuffer(unit->d2_handle, unit->label_renderbuffer, 0);
+ d2_flushframe(unit->d2_handle);
+ d2_selectrenderbuffer(unit->d2_handle, unit->renderbuffer);
#if LV_USE_OS
- status = lv_mutex_unlock(unit->pd2Mutex);
- LV_ASSERT(LV_RESULT_OK == status);
+ status = lv_mutex_unlock(unit->pd2Mutex);
+ LV_ASSERT(LV_RESULT_OK == status);
#endif
+ }
+
+ if(fill_draw_dsc && fill_area) {
+ lv_draw_dave2d_fill_single(t, fill_draw_dsc, fill_area);
+ }
}
#endif /*LV_USE_DRAW_DAVE2D*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d_line.c b/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d_line.c
index b6e7008df..947b66967 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d_line.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d_line.c
@@ -46,14 +46,6 @@ void lv_draw_dave2d_line(lv_draw_task_t * t, const lv_draw_line_dsc_t * dsc)
bool dashed = dsc->dash_gap && dsc->dash_width;
- if(dashed) {
- /* TODO */
- LV_ASSERT(0);
- }
-
-#if D2_RENDER_EACH_OPERATION
- d2_selectrenderbuffer(u->d2_handle, u->renderbuffer);
-#endif
//
// Generate render operations
//
@@ -77,14 +69,6 @@ void lv_draw_dave2d_line(lv_draw_task_t * t, const lv_draw_line_dsc_t * dsc)
d2_renderline(u->d2_handle, D2_FIX4(p1_x), D2_FIX4(p1_y), D2_FIX4(p2_x),
D2_FIX4(p2_y), D2_FIX4(dsc->width), d2_le_exclude_none);
- //
- // Execute render operations
- //
-#if D2_RENDER_EACH_OPERATION
- d2_executerenderbuffer(u->d2_handle, u->renderbuffer, 0);
- d2_flushframe(u->d2_handle);
-#endif
-
#if LV_USE_OS
status = lv_mutex_unlock(u->pd2Mutex);
LV_ASSERT(LV_RESULT_OK == status);
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d_mask_rectangle.c b/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d_mask_rectangle.c
index ea880509d..ccbded6a2 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d_mask_rectangle.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d_mask_rectangle.c
@@ -29,10 +29,6 @@ void lv_draw_dave2d_mask_rect(lv_draw_task_t * t, const lv_draw_mask_rect_dsc_t
LV_ASSERT(LV_RESULT_OK == status);
#endif
-#ifdef D2_RENDER_EACH_OPERATION
- d2_selectrenderbuffer(u->d2_handle, u->renderbuffer);
-#endif
-
d2_framebuffer_from_layer(u->d2_handle, t->target_layer);
d2_cliprect(u->d2_handle, (d2_border)clipped_area.x1, (d2_border)clipped_area.y1, (d2_border)clipped_area.x2,
@@ -44,14 +40,6 @@ void lv_draw_dave2d_mask_rect(lv_draw_task_t * t, const lv_draw_mask_rect_dsc_t
(d2_width) D2_FIX4(lv_area_get_width(&coordinates)),
(d2_width) D2_FIX4(lv_area_get_height(&coordinates)));
- //
- // Execute render operations
- //
-#ifdef D2_RENDER_EACH_OPERATION
- d2_executerenderbuffer(u->d2_handle, u->renderbuffer, 0);
- d2_flushframe(u->d2_handle);
-#endif
-
#if LV_USE_OS
status = lv_mutex_unlock(u->pd2Mutex);
LV_ASSERT(LV_RESULT_OK == status);
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d_triangle.c b/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d_triangle.c
index 74fd5095a..21f3cef40 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d_triangle.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d_triangle.c
@@ -31,10 +31,6 @@ void lv_draw_dave2d_triangle(lv_draw_task_t * t, const lv_draw_triangle_dsc_t *
lv_area_move(&clipped_area, x, y);
-#if D2_RENDER_EACH_OPERATION
- d2_selectrenderbuffer(u->d2_handle, u->renderbuffer);
-#endif
-
lv_point_precise_t p[3];
p[0] = dsc->p[0];
p[1] = dsc->p[1];
@@ -112,8 +108,6 @@ void lv_draw_dave2d_triangle(lv_draw_task_t * t, const lv_draw_triangle_dsc_t *
y2 = LV_MAX3(p[0].y, p[1].y, p[2].y);
if(a1 < a2) {
- /* TODO */
- LV_ASSERT(0);
y0 = 0.0f;//silence the compiler warning
y3 = 0.0f;
@@ -128,10 +122,7 @@ void lv_draw_dave2d_triangle(lv_draw_task_t * t, const lv_draw_triangle_dsc_t *
d2_setalphagradient(u->d2_handle, 0, D2_FIX4(0), D2_FIX4(y0_i), D2_FIX4(0), D2_FIX4((y3_i - y0_i)));
}
- else if(LV_GRAD_DIR_HOR == dsc->grad.dir) {
- /* TODO */
- LV_ASSERT(0);
- }
+
d2_setcolor(u->d2_handle, 0, lv_draw_dave2d_lv_colour_to_d2_colour(dsc->grad.stops[0].color));
d2_setalphamode(u->d2_handle, d2_am_gradient1);
@@ -157,14 +148,6 @@ void lv_draw_dave2d_triangle(lv_draw_task_t * t, const lv_draw_triangle_dsc_t *
(d2_point) D2_FIX4(p[2].y),
flags);
- //
- // Execute render operations
- //
-#if D2_RENDER_EACH_OPERATION
- d2_executerenderbuffer(u->d2_handle, u->renderbuffer, 0);
- d2_flushframe(u->d2_handle);
-#endif
-
d2_setalphamode(u->d2_handle, current_alpha_mode);
#if LV_USE_OS
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d_utils.c b/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d_utils.c
index 666a5c416..e43ad4e7c 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d_utils.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d_utils.c
@@ -64,36 +64,6 @@ d2_color lv_draw_dave2d_lv_colour_to_d2_colour(lv_color_t color)
| (blue) << 0UL;
}
-d2_s32 lv_draw_dave2d_cf_fb_get(void)
-{
- d2_s32 d2_fb_mode = 0;
- switch(g_display0_cfg.input->format) {
- case DISPLAY_IN_FORMAT_16BITS_RGB565: ///< RGB565, 16 bits
- d2_fb_mode = d2_mode_rgb565;
- break;
- case DISPLAY_IN_FORMAT_32BITS_ARGB8888: ///< ARGB8888, 32 bits
- d2_fb_mode = d2_mode_argb8888;
- break;
- case DISPLAY_IN_FORMAT_32BITS_RGB888: ///< RGB888, 32 bits
- d2_fb_mode = d2_mode_argb8888; //GLCDC ignores Alpha when configured for RGB888
- break;
- case DISPLAY_IN_FORMAT_16BITS_ARGB4444: ///< ARGB4444, 16 bits
- d2_fb_mode = d2_mode_argb4444;
- break;
- case DISPLAY_IN_FORMAT_16BITS_ARGB1555: ///< ARGB1555, 16 bits
- case DISPLAY_IN_FORMAT_CLUT8 : ///< CLUT8
- case DISPLAY_IN_FORMAT_CLUT4 : ///< CLUT4
- case DISPLAY_IN_FORMAT_CLUT1 : ///< CLUT1
- //Not supported as a FB format by Dave2D
- break;
-
- default:
- break;
- }
-
- return d2_fb_mode;
-}
-
d2_u32 lv_draw_dave2d_lv_colour_fmt_to_d2_fmt(lv_color_format_t colour_format)
{
d2_u32 d2_lvgl_mode = 0;
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d_utils.h b/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d_utils.h
index db9a17817..90a6fe4e9 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d_utils.h
+++ b/lib/libesp32_lvgl/lvgl/src/draw/renesas/dave2d/lv_draw_dave2d_utils.h
@@ -28,8 +28,6 @@ extern "C" {
d2_color lv_draw_dave2d_lv_colour_to_d2_colour(lv_color_t color);
-d2_s32 lv_draw_dave2d_cf_fb_get(void);
-
d2_u32 lv_draw_dave2d_lv_colour_fmt_to_d2_fmt(lv_color_format_t colour_format);
void d2_framebuffer_from_layer(d2_device * handle, lv_layer_t * layer);
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/sdl/lv_draw_sdl.c b/lib/libesp32_lvgl/lvgl/src/draw/sdl/lv_draw_sdl.c
index 4b7d3dd77..61113913d 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/sdl/lv_draw_sdl.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/sdl/lv_draw_sdl.c
@@ -163,7 +163,7 @@ static int32_t dispatch(lv_draw_unit_t * draw_unit, lv_layer_t * layer)
execute_drawing(draw_sdl_unit);
- draw_sdl_unit->task_act->state = LV_DRAW_TASK_STATE_READY;
+ draw_sdl_unit->task_act->state = LV_DRAW_TASK_STATE_FINISHED;
draw_sdl_unit->task_act = NULL;
/*The draw unit is free now. Request a new dispatching as it can get a new task*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/sdl/lv_draw_sdl.h b/lib/libesp32_lvgl/lvgl/src/draw/sdl/lv_draw_sdl.h
index db1a4a8a3..90ff8de3a 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/sdl/lv_draw_sdl.h
+++ b/lib/libesp32_lvgl/lvgl/src/draw/sdl/lv_draw_sdl.h
@@ -17,11 +17,10 @@ extern "C" {
#if LV_USE_DRAW_SDL
-#include "../../misc/cache/lv_cache.h"
#include "../../misc/lv_area.h"
#include "../../misc/lv_color.h"
#include "../../display/lv_display.h"
-#include "../../osal/lv_os.h"
+#include "../../osal/lv_os_private.h"
#include "../../draw/lv_draw_label.h"
#include "../../draw/lv_draw_rect.h"
#include "../../draw/lv_draw_arc.h"
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/helium/lv_blend_helium.S b/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/helium/lv_blend_helium.S
index bab4b72ac..41edbb31e 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/helium/lv_blend_helium.S
+++ b/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/helium/lv_blend_helium.S
@@ -671,15 +671,15 @@ BITMASK .req q6
.macro export_set src, dst, src_bpp, dst_bpp, mode
.ifc \src, color
- export lv_\src\()_blend_to_\dst\()_helium, \src_bpp, \dst_bpp, 0, 0, \mode
- export lv_\src\()_blend_to_\dst\()_with_opa_helium, \src_bpp, \dst_bpp, 0, 1, \mode
- export lv_\src\()_blend_to_\dst\()_with_mask_helium, \src_bpp, \dst_bpp, 1, 0, \mode
- export lv_\src\()_blend_to_\dst\()_mix_mask_opa_helium, \src_bpp, \dst_bpp, 1, 1, \mode
+ export _lv_\src\()_blend_to_\dst\()_helium, \src_bpp, \dst_bpp, 0, 0, \mode
+ export _lv_\src\()_blend_to_\dst\()_with_opa_helium, \src_bpp, \dst_bpp, 0, 1, \mode
+ export _lv_\src\()_blend_to_\dst\()_with_mask_helium, \src_bpp, \dst_bpp, 1, 0, \mode
+ export _lv_\src\()_blend_to_\dst\()_mix_mask_opa_helium, \src_bpp, \dst_bpp, 1, 1, \mode
.else
- export lv_\src\()_blend_\mode\()_to_\dst\()_helium, \src_bpp, \dst_bpp, 0, 0, \mode
- export lv_\src\()_blend_\mode\()_to_\dst\()_with_opa_helium, \src_bpp, \dst_bpp, 0, 1, \mode
- export lv_\src\()_blend_\mode\()_to_\dst\()_with_mask_helium, \src_bpp, \dst_bpp, 1, 0, \mode
- export lv_\src\()_blend_\mode\()_to_\dst\()_mix_mask_opa_helium, \src_bpp, \dst_bpp, 1, 1, \mode
+ export _lv_\src\()_blend_\mode\()_to_\dst\()_helium, \src_bpp, \dst_bpp, 0, 0, \mode
+ export _lv_\src\()_blend_\mode\()_to_\dst\()_with_opa_helium, \src_bpp, \dst_bpp, 0, 1, \mode
+ export _lv_\src\()_blend_\mode\()_to_\dst\()_with_mask_helium, \src_bpp, \dst_bpp, 1, 0, \mode
+ export _lv_\src\()_blend_\mode\()_to_\dst\()_mix_mask_opa_helium, \src_bpp, \dst_bpp, 1, 1, \mode
.endif
.endm
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/helium/lv_blend_helium.h b/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/helium/lv_blend_helium.h
index 69b999efc..ed45b2bc2 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/helium/lv_blend_helium.h
+++ b/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/helium/lv_blend_helium.h
@@ -30,6 +30,12 @@ extern "C" {
#if !defined(__ASSEMBLY__)
+#if __GNUC__ >= 4
+#define LVGL_HIDDEN __attribute__((visibility("hidden")))
+#else
+#define LVGL_HIDDEN
+#endif
+
/* Use arm2d functions if present */
#include "../arm2d/lv_blend_arm2d.h"
@@ -298,7 +304,7 @@ typedef struct {
* GLOBAL PROTOTYPES
**********************/
-extern void lv_color_blend_to_rgb565_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_color_blend_to_rgb565_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_color_blend_to_rgb565_helium(lv_draw_sw_blend_fill_dsc_t * dsc)
{
asm_dsc_t asm_dsc = {
@@ -309,11 +315,11 @@ static inline lv_result_t lv_color_blend_to_rgb565_helium(lv_draw_sw_blend_fill_
.src_buf = &dsc->color
};
- lv_color_blend_to_rgb565_helium(&asm_dsc);
+ _lv_color_blend_to_rgb565_helium(&asm_dsc);
return LV_RESULT_OK;
}
-extern void lv_color_blend_to_rgb565_with_opa_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_color_blend_to_rgb565_with_opa_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_color_blend_to_rgb565_with_opa_helium(lv_draw_sw_blend_fill_dsc_t * dsc)
{
asm_dsc_t asm_dsc = {
@@ -324,11 +330,11 @@ static inline lv_result_t lv_color_blend_to_rgb565_with_opa_helium(lv_draw_sw_bl
.dst_stride = dsc->dest_stride,
.src_buf = &dsc->color
};
- lv_color_blend_to_rgb565_with_opa_helium(&asm_dsc);
+ _lv_color_blend_to_rgb565_with_opa_helium(&asm_dsc);
return LV_RESULT_OK;
}
-extern void lv_color_blend_to_rgb565_with_mask_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_color_blend_to_rgb565_with_mask_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_color_blend_to_rgb565_with_mask_helium(lv_draw_sw_blend_fill_dsc_t * dsc)
{
asm_dsc_t asm_dsc = {
@@ -340,11 +346,11 @@ static inline lv_result_t lv_color_blend_to_rgb565_with_mask_helium(lv_draw_sw_b
.mask_buf = dsc->mask_buf,
.mask_stride = dsc->mask_stride
};
- lv_color_blend_to_rgb565_with_mask_helium(&asm_dsc);
+ _lv_color_blend_to_rgb565_with_mask_helium(&asm_dsc);
return LV_RESULT_OK;
}
-extern void lv_color_blend_to_rgb565_mix_mask_opa_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_color_blend_to_rgb565_mix_mask_opa_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_color_blend_to_rgb565_mix_mask_opa_helium(lv_draw_sw_blend_fill_dsc_t * dsc)
{
asm_dsc_t asm_dsc = {
@@ -357,11 +363,11 @@ static inline lv_result_t lv_color_blend_to_rgb565_mix_mask_opa_helium(lv_draw_s
.mask_buf = dsc->mask_buf,
.mask_stride = dsc->mask_stride
};
- lv_color_blend_to_rgb565_mix_mask_opa_helium(&asm_dsc);
+ _lv_color_blend_to_rgb565_mix_mask_opa_helium(&asm_dsc);
return LV_RESULT_OK;
}
-extern void lv_rgb565_blend_normal_to_rgb565_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_rgb565_blend_normal_to_rgb565_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_rgb565_blend_normal_to_rgb565_helium(lv_draw_sw_blend_image_dsc_t * dsc)
{
asm_dsc_t asm_dsc = {
@@ -372,11 +378,11 @@ static inline lv_result_t lv_rgb565_blend_normal_to_rgb565_helium(lv_draw_sw_ble
.src_buf = dsc->src_buf,
.src_stride = dsc->src_stride
};
- lv_rgb565_blend_normal_to_rgb565_helium(&asm_dsc);
+ _lv_rgb565_blend_normal_to_rgb565_helium(&asm_dsc);
return LV_RESULT_OK;
}
-extern void lv_rgb565_blend_normal_to_rgb565_with_opa_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_rgb565_blend_normal_to_rgb565_with_opa_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_rgb565_blend_normal_to_rgb565_with_opa_helium(lv_draw_sw_blend_image_dsc_t * dsc)
{
asm_dsc_t asm_dsc = {
@@ -388,11 +394,11 @@ static inline lv_result_t lv_rgb565_blend_normal_to_rgb565_with_opa_helium(lv_dr
.src_buf = dsc->src_buf,
.src_stride = dsc->src_stride
};
- lv_rgb565_blend_normal_to_rgb565_with_opa_helium(&asm_dsc);
+ _lv_rgb565_blend_normal_to_rgb565_with_opa_helium(&asm_dsc);
return LV_RESULT_OK;
}
-extern void lv_rgb565_blend_normal_to_rgb565_with_mask_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_rgb565_blend_normal_to_rgb565_with_mask_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_rgb565_blend_normal_to_rgb565_with_mask_helium(lv_draw_sw_blend_image_dsc_t * dsc)
{
asm_dsc_t asm_dsc = {
@@ -405,11 +411,11 @@ static inline lv_result_t lv_rgb565_blend_normal_to_rgb565_with_mask_helium(lv_d
.mask_buf = dsc->mask_buf,
.mask_stride = dsc->mask_stride
};
- lv_rgb565_blend_normal_to_rgb565_with_mask_helium(&asm_dsc);
+ _lv_rgb565_blend_normal_to_rgb565_with_mask_helium(&asm_dsc);
return LV_RESULT_OK;
}
-extern void lv_rgb565_blend_normal_to_rgb565_mix_mask_opa_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_rgb565_blend_normal_to_rgb565_mix_mask_opa_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_rgb565_blend_normal_to_rgb565_mix_mask_opa_helium(lv_draw_sw_blend_image_dsc_t * dsc)
{
asm_dsc_t asm_dsc = {
@@ -423,12 +429,12 @@ static inline lv_result_t lv_rgb565_blend_normal_to_rgb565_mix_mask_opa_helium(l
.mask_buf = dsc->mask_buf,
.mask_stride = dsc->mask_stride
};
- lv_rgb565_blend_normal_to_rgb565_mix_mask_opa_helium(&asm_dsc);
+ _lv_rgb565_blend_normal_to_rgb565_mix_mask_opa_helium(&asm_dsc);
return LV_RESULT_OK;
}
-extern void lv_rgb888_blend_normal_to_rgb565_helium(asm_dsc_t * dsc);
-extern void lv_xrgb8888_blend_normal_to_rgb565_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_rgb888_blend_normal_to_rgb565_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_xrgb8888_blend_normal_to_rgb565_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_rgb888_blend_normal_to_rgb565_helium(lv_draw_sw_blend_image_dsc_t * dsc,
uint32_t src_px_size)
{
@@ -441,16 +447,16 @@ static inline lv_result_t lv_rgb888_blend_normal_to_rgb565_helium(lv_draw_sw_ble
.src_stride = dsc->src_stride
};
if(src_px_size == 3) {
- lv_rgb888_blend_normal_to_rgb565_helium(&asm_dsc);
+ _lv_rgb888_blend_normal_to_rgb565_helium(&asm_dsc);
}
else {
- lv_xrgb8888_blend_normal_to_rgb565_helium(&asm_dsc);
+ _lv_xrgb8888_blend_normal_to_rgb565_helium(&asm_dsc);
}
return LV_RESULT_OK;
}
-extern void lv_rgb888_blend_normal_to_rgb565_with_opa_helium(asm_dsc_t * dsc);
-extern void lv_xrgb8888_blend_normal_to_rgb565_with_opa_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_rgb888_blend_normal_to_rgb565_with_opa_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_xrgb8888_blend_normal_to_rgb565_with_opa_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_rgb888_blend_normal_to_rgb565_with_opa_helium(lv_draw_sw_blend_image_dsc_t * dsc,
uint32_t src_px_size)
{
@@ -464,16 +470,16 @@ static inline lv_result_t lv_rgb888_blend_normal_to_rgb565_with_opa_helium(lv_dr
.src_stride = dsc->src_stride
};
if(src_px_size == 3) {
- lv_rgb888_blend_normal_to_rgb565_with_opa_helium(&asm_dsc);
+ _lv_rgb888_blend_normal_to_rgb565_with_opa_helium(&asm_dsc);
}
else {
- lv_xrgb8888_blend_normal_to_rgb565_with_opa_helium(&asm_dsc);
+ _lv_xrgb8888_blend_normal_to_rgb565_with_opa_helium(&asm_dsc);
}
return LV_RESULT_OK;
}
-extern void lv_rgb888_blend_normal_to_rgb565_with_mask_helium(asm_dsc_t * dsc);
-extern void lv_xrgb8888_blend_normal_to_rgb565_with_mask_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_rgb888_blend_normal_to_rgb565_with_mask_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_xrgb8888_blend_normal_to_rgb565_with_mask_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_rgb888_blend_normal_to_rgb565_with_mask_helium(lv_draw_sw_blend_image_dsc_t * dsc,
uint32_t src_px_size)
{
@@ -488,16 +494,16 @@ static inline lv_result_t lv_rgb888_blend_normal_to_rgb565_with_mask_helium(lv_d
.mask_stride = dsc->mask_stride
};
if(src_px_size == 3) {
- lv_rgb888_blend_normal_to_rgb565_with_mask_helium(&asm_dsc);
+ _lv_rgb888_blend_normal_to_rgb565_with_mask_helium(&asm_dsc);
}
else {
- lv_xrgb8888_blend_normal_to_rgb565_with_mask_helium(&asm_dsc);
+ _lv_xrgb8888_blend_normal_to_rgb565_with_mask_helium(&asm_dsc);
}
return LV_RESULT_OK;
}
-extern void lv_rgb888_blend_normal_to_rgb565_mix_mask_opa_helium(asm_dsc_t * dsc);
-extern void lv_xrgb8888_blend_normal_to_rgb565_mix_mask_opa_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_rgb888_blend_normal_to_rgb565_mix_mask_opa_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_xrgb8888_blend_normal_to_rgb565_mix_mask_opa_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_rgb888_blend_normal_to_rgb565_mix_mask_opa_helium(lv_draw_sw_blend_image_dsc_t * dsc,
uint32_t src_px_size)
{
@@ -513,15 +519,15 @@ static inline lv_result_t lv_rgb888_blend_normal_to_rgb565_mix_mask_opa_helium(l
.mask_stride = dsc->mask_stride
};
if(src_px_size == 3) {
- lv_rgb888_blend_normal_to_rgb565_mix_mask_opa_helium(&asm_dsc);
+ _lv_rgb888_blend_normal_to_rgb565_mix_mask_opa_helium(&asm_dsc);
}
else {
- lv_xrgb8888_blend_normal_to_rgb565_mix_mask_opa_helium(&asm_dsc);
+ _lv_xrgb8888_blend_normal_to_rgb565_mix_mask_opa_helium(&asm_dsc);
}
return LV_RESULT_OK;
}
-extern void lv_argb8888_blend_normal_to_rgb565_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_argb8888_blend_normal_to_rgb565_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_argb8888_blend_normal_to_rgb565_helium(lv_draw_sw_blend_image_dsc_t * dsc)
{
asm_dsc_t asm_dsc = {
@@ -532,11 +538,11 @@ static inline lv_result_t lv_argb8888_blend_normal_to_rgb565_helium(lv_draw_sw_b
.src_buf = dsc->src_buf,
.src_stride = dsc->src_stride
};
- lv_argb8888_blend_normal_to_rgb565_helium(&asm_dsc);
+ _lv_argb8888_blend_normal_to_rgb565_helium(&asm_dsc);
return LV_RESULT_OK;
}
-extern void lv_argb8888_blend_normal_to_rgb565_with_opa_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_argb8888_blend_normal_to_rgb565_with_opa_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_argb8888_blend_normal_to_rgb565_with_opa_helium(lv_draw_sw_blend_image_dsc_t * dsc)
{
asm_dsc_t asm_dsc = {
@@ -548,11 +554,11 @@ static inline lv_result_t lv_argb8888_blend_normal_to_rgb565_with_opa_helium(lv_
.src_buf = dsc->src_buf,
.src_stride = dsc->src_stride
};
- lv_argb8888_blend_normal_to_rgb565_with_opa_helium(&asm_dsc);
+ _lv_argb8888_blend_normal_to_rgb565_with_opa_helium(&asm_dsc);
return LV_RESULT_OK;
}
-extern void lv_argb8888_blend_normal_to_rgb565_with_mask_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_argb8888_blend_normal_to_rgb565_with_mask_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_argb8888_blend_normal_to_rgb565_with_mask_helium(lv_draw_sw_blend_image_dsc_t * dsc)
{
asm_dsc_t asm_dsc = {
@@ -565,11 +571,11 @@ static inline lv_result_t lv_argb8888_blend_normal_to_rgb565_with_mask_helium(lv
.mask_buf = dsc->mask_buf,
.mask_stride = dsc->mask_stride
};
- lv_argb8888_blend_normal_to_rgb565_with_mask_helium(&asm_dsc);
+ _lv_argb8888_blend_normal_to_rgb565_with_mask_helium(&asm_dsc);
return LV_RESULT_OK;
}
-extern void lv_argb8888_blend_normal_to_rgb565_mix_mask_opa_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_argb8888_blend_normal_to_rgb565_mix_mask_opa_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_argb8888_blend_normal_to_rgb565_mix_mask_opa_helium(lv_draw_sw_blend_image_dsc_t * dsc)
{
asm_dsc_t asm_dsc = {
@@ -583,12 +589,12 @@ static inline lv_result_t lv_argb8888_blend_normal_to_rgb565_mix_mask_opa_helium
.mask_buf = dsc->mask_buf,
.mask_stride = dsc->mask_stride
};
- lv_argb8888_blend_normal_to_rgb565_mix_mask_opa_helium(&asm_dsc);
+ _lv_argb8888_blend_normal_to_rgb565_mix_mask_opa_helium(&asm_dsc);
return LV_RESULT_OK;
}
-extern void lv_color_blend_to_rgb888_helium(asm_dsc_t * dsc);
-extern void lv_color_blend_to_xrgb8888_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_color_blend_to_rgb888_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_color_blend_to_xrgb8888_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_color_blend_to_rgb888_helium(lv_draw_sw_blend_fill_dsc_t * dsc, uint32_t dst_px_size)
{
asm_dsc_t asm_dsc = {
@@ -599,16 +605,16 @@ static inline lv_result_t lv_color_blend_to_rgb888_helium(lv_draw_sw_blend_fill_
.src_buf = &dsc->color
};
if(dst_px_size == 3) {
- lv_color_blend_to_rgb888_helium(&asm_dsc);
+ _lv_color_blend_to_rgb888_helium(&asm_dsc);
}
else {
- lv_color_blend_to_xrgb8888_helium(&asm_dsc);
+ _lv_color_blend_to_xrgb8888_helium(&asm_dsc);
}
return LV_RESULT_OK;
}
-extern void lv_color_blend_to_rgb888_with_opa_helium(asm_dsc_t * dsc);
-extern void lv_color_blend_to_xrgb8888_with_opa_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_color_blend_to_rgb888_with_opa_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_color_blend_to_xrgb8888_with_opa_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_color_blend_to_rgb888_with_opa_helium(lv_draw_sw_blend_fill_dsc_t * dsc,
uint32_t dst_px_size)
{
@@ -621,16 +627,16 @@ static inline lv_result_t lv_color_blend_to_rgb888_with_opa_helium(lv_draw_sw_bl
.src_buf = &dsc->color
};
if(dst_px_size == 3) {
- lv_color_blend_to_rgb888_with_opa_helium(&asm_dsc);
+ _lv_color_blend_to_rgb888_with_opa_helium(&asm_dsc);
}
else {
- lv_color_blend_to_xrgb8888_with_opa_helium(&asm_dsc);
+ _lv_color_blend_to_xrgb8888_with_opa_helium(&asm_dsc);
}
return LV_RESULT_OK;
}
-extern void lv_color_blend_to_rgb888_with_mask_helium(asm_dsc_t * dsc);
-extern void lv_color_blend_to_xrgb8888_with_mask_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_color_blend_to_rgb888_with_mask_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_color_blend_to_xrgb8888_with_mask_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_color_blend_to_rgb888_with_mask_helium(lv_draw_sw_blend_fill_dsc_t * dsc,
uint32_t dst_px_size)
{
@@ -644,16 +650,16 @@ static inline lv_result_t lv_color_blend_to_rgb888_with_mask_helium(lv_draw_sw_b
.mask_stride = dsc->mask_stride
};
if(dst_px_size == 3) {
- lv_color_blend_to_rgb888_with_mask_helium(&asm_dsc);
+ _lv_color_blend_to_rgb888_with_mask_helium(&asm_dsc);
}
else {
- lv_color_blend_to_xrgb8888_with_mask_helium(&asm_dsc);
+ _lv_color_blend_to_xrgb8888_with_mask_helium(&asm_dsc);
}
return LV_RESULT_OK;
}
-extern void lv_color_blend_to_rgb888_mix_mask_opa_helium(asm_dsc_t * dsc);
-extern void lv_color_blend_to_xrgb8888_mix_mask_opa_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_color_blend_to_rgb888_mix_mask_opa_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_color_blend_to_xrgb8888_mix_mask_opa_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_color_blend_to_rgb888_mix_mask_opa_helium(lv_draw_sw_blend_fill_dsc_t * dsc,
uint32_t dst_px_size)
{
@@ -668,16 +674,16 @@ static inline lv_result_t lv_color_blend_to_rgb888_mix_mask_opa_helium(lv_draw_s
.mask_stride = dsc->mask_stride
};
if(dst_px_size == 3) {
- lv_color_blend_to_rgb888_mix_mask_opa_helium(&asm_dsc);
+ _lv_color_blend_to_rgb888_mix_mask_opa_helium(&asm_dsc);
}
else {
- lv_color_blend_to_xrgb8888_mix_mask_opa_helium(&asm_dsc);
+ _lv_color_blend_to_xrgb8888_mix_mask_opa_helium(&asm_dsc);
}
return LV_RESULT_OK;
}
-extern void lv_rgb565_blend_normal_to_rgb888_helium(asm_dsc_t * dsc);
-extern void lv_rgb565_blend_normal_to_xrgb8888_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_rgb565_blend_normal_to_rgb888_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_rgb565_blend_normal_to_xrgb8888_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_rgb565_blend_normal_to_rgb888_helium(lv_draw_sw_blend_image_dsc_t * dsc,
uint32_t dst_px_size)
{
@@ -690,16 +696,16 @@ static inline lv_result_t lv_rgb565_blend_normal_to_rgb888_helium(lv_draw_sw_ble
.src_stride = dsc->src_stride
};
if(dst_px_size == 3) {
- lv_rgb565_blend_normal_to_rgb888_helium(&asm_dsc);
+ _lv_rgb565_blend_normal_to_rgb888_helium(&asm_dsc);
}
else {
- lv_rgb565_blend_normal_to_xrgb8888_helium(&asm_dsc);
+ _lv_rgb565_blend_normal_to_xrgb8888_helium(&asm_dsc);
}
return LV_RESULT_OK;
}
-extern void lv_rgb565_blend_normal_to_rgb888_with_opa_helium(asm_dsc_t * dsc);
-extern void lv_rgb565_blend_normal_to_xrgb8888_with_opa_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_rgb565_blend_normal_to_rgb888_with_opa_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_rgb565_blend_normal_to_xrgb8888_with_opa_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_rgb565_blend_normal_to_rgb888_with_opa_helium(lv_draw_sw_blend_image_dsc_t * dsc,
uint32_t dst_px_size)
{
@@ -713,16 +719,16 @@ static inline lv_result_t lv_rgb565_blend_normal_to_rgb888_with_opa_helium(lv_dr
.src_stride = dsc->src_stride
};
if(dst_px_size == 3) {
- lv_rgb565_blend_normal_to_rgb888_with_opa_helium(&asm_dsc);
+ _lv_rgb565_blend_normal_to_rgb888_with_opa_helium(&asm_dsc);
}
else {
- lv_rgb565_blend_normal_to_xrgb8888_with_opa_helium(&asm_dsc);
+ _lv_rgb565_blend_normal_to_xrgb8888_with_opa_helium(&asm_dsc);
}
return LV_RESULT_OK;
}
-extern void lv_rgb565_blend_normal_to_rgb888_with_mask_helium(asm_dsc_t * dsc);
-extern void lv_rgb565_blend_normal_to_xrgb8888_with_mask_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_rgb565_blend_normal_to_rgb888_with_mask_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_rgb565_blend_normal_to_xrgb8888_with_mask_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_rgb565_blend_normal_to_rgb888_with_mask_helium(lv_draw_sw_blend_image_dsc_t * dsc,
uint32_t dst_px_size)
{
@@ -737,16 +743,16 @@ static inline lv_result_t lv_rgb565_blend_normal_to_rgb888_with_mask_helium(lv_d
.mask_stride = dsc->mask_stride
};
if(dst_px_size == 3) {
- lv_rgb565_blend_normal_to_rgb888_with_mask_helium(&asm_dsc);
+ _lv_rgb565_blend_normal_to_rgb888_with_mask_helium(&asm_dsc);
}
else {
- lv_rgb565_blend_normal_to_xrgb8888_with_mask_helium(&asm_dsc);
+ _lv_rgb565_blend_normal_to_xrgb8888_with_mask_helium(&asm_dsc);
}
return LV_RESULT_OK;
}
-extern void lv_rgb565_blend_normal_to_rgb888_mix_mask_opa_helium(asm_dsc_t * dsc);
-extern void lv_rgb565_blend_normal_to_xrgb8888_mix_mask_opa_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_rgb565_blend_normal_to_rgb888_mix_mask_opa_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_rgb565_blend_normal_to_xrgb8888_mix_mask_opa_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_rgb565_blend_normal_to_rgb888_mix_mask_opa_helium(lv_draw_sw_blend_image_dsc_t * dsc,
uint32_t dst_px_size)
{
@@ -762,18 +768,18 @@ static inline lv_result_t lv_rgb565_blend_normal_to_rgb888_mix_mask_opa_helium(l
.mask_stride = dsc->mask_stride
};
if(dst_px_size == 3) {
- lv_rgb565_blend_normal_to_rgb888_mix_mask_opa_helium(&asm_dsc);
+ _lv_rgb565_blend_normal_to_rgb888_mix_mask_opa_helium(&asm_dsc);
}
else {
- lv_rgb565_blend_normal_to_xrgb8888_mix_mask_opa_helium(&asm_dsc);
+ _lv_rgb565_blend_normal_to_xrgb8888_mix_mask_opa_helium(&asm_dsc);
}
return LV_RESULT_OK;
}
-extern void lv_rgb888_blend_normal_to_rgb888_helium(asm_dsc_t * dsc);
-extern void lv_rgb888_blend_normal_to_xrgb8888_helium(asm_dsc_t * dsc);
-extern void lv_xrgb8888_blend_normal_to_rgb888_helium(asm_dsc_t * dsc);
-extern void lv_xrgb8888_blend_normal_to_xrgb8888_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_rgb888_blend_normal_to_rgb888_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_rgb888_blend_normal_to_xrgb8888_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_xrgb8888_blend_normal_to_rgb888_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_xrgb8888_blend_normal_to_xrgb8888_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_rgb888_blend_normal_to_rgb888_helium(lv_draw_sw_blend_image_dsc_t * dsc,
uint32_t dst_px_size,
uint32_t src_px_size)
@@ -788,27 +794,27 @@ static inline lv_result_t lv_rgb888_blend_normal_to_rgb888_helium(lv_draw_sw_ble
};
if(dst_px_size == 3) {
if(src_px_size == 3) {
- lv_rgb888_blend_normal_to_rgb888_helium(&asm_dsc);
+ _lv_rgb888_blend_normal_to_rgb888_helium(&asm_dsc);
}
else {
- lv_xrgb8888_blend_normal_to_rgb888_helium(&asm_dsc);
+ _lv_xrgb8888_blend_normal_to_rgb888_helium(&asm_dsc);
}
}
else {
if(src_px_size == 3) {
- lv_rgb888_blend_normal_to_xrgb8888_helium(&asm_dsc);
+ _lv_rgb888_blend_normal_to_xrgb8888_helium(&asm_dsc);
}
else {
- lv_xrgb8888_blend_normal_to_xrgb8888_helium(&asm_dsc);
+ _lv_xrgb8888_blend_normal_to_xrgb8888_helium(&asm_dsc);
}
}
return LV_RESULT_OK;
}
-extern void lv_rgb888_blend_normal_to_rgb888_with_opa_helium(asm_dsc_t * dsc);
-extern void lv_rgb888_blend_normal_to_xrgb8888_with_opa_helium(asm_dsc_t * dsc);
-extern void lv_xrgb8888_blend_normal_to_rgb888_with_opa_helium(asm_dsc_t * dsc);
-extern void lv_xrgb8888_blend_normal_to_xrgb8888_with_opa_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_rgb888_blend_normal_to_rgb888_with_opa_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_rgb888_blend_normal_to_xrgb8888_with_opa_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_xrgb8888_blend_normal_to_rgb888_with_opa_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_xrgb8888_blend_normal_to_xrgb8888_with_opa_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_rgb888_blend_normal_to_rgb888_with_opa_helium(lv_draw_sw_blend_image_dsc_t * dsc,
uint32_t dst_px_size, uint32_t src_px_size)
{
@@ -823,27 +829,27 @@ static inline lv_result_t lv_rgb888_blend_normal_to_rgb888_with_opa_helium(lv_dr
};
if(dst_px_size == 3) {
if(src_px_size == 3) {
- lv_rgb888_blend_normal_to_rgb888_with_opa_helium(&asm_dsc);
+ _lv_rgb888_blend_normal_to_rgb888_with_opa_helium(&asm_dsc);
}
else {
- lv_xrgb8888_blend_normal_to_rgb888_with_opa_helium(&asm_dsc);
+ _lv_xrgb8888_blend_normal_to_rgb888_with_opa_helium(&asm_dsc);
}
}
else {
if(src_px_size == 3) {
- lv_rgb888_blend_normal_to_xrgb8888_with_opa_helium(&asm_dsc);
+ _lv_rgb888_blend_normal_to_xrgb8888_with_opa_helium(&asm_dsc);
}
else {
- lv_xrgb8888_blend_normal_to_xrgb8888_with_opa_helium(&asm_dsc);
+ _lv_xrgb8888_blend_normal_to_xrgb8888_with_opa_helium(&asm_dsc);
}
}
return LV_RESULT_OK;
}
-extern void lv_rgb888_blend_normal_to_rgb888_with_mask_helium(asm_dsc_t * dsc);
-extern void lv_rgb888_blend_normal_to_xrgb8888_with_mask_helium(asm_dsc_t * dsc);
-extern void lv_xrgb8888_blend_normal_to_rgb888_with_mask_helium(asm_dsc_t * dsc);
-extern void lv_xrgb8888_blend_normal_to_xrgb8888_with_mask_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_rgb888_blend_normal_to_rgb888_with_mask_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_rgb888_blend_normal_to_xrgb8888_with_mask_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_xrgb8888_blend_normal_to_rgb888_with_mask_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_xrgb8888_blend_normal_to_xrgb8888_with_mask_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_rgb888_blend_normal_to_rgb888_with_mask_helium(lv_draw_sw_blend_image_dsc_t * dsc,
uint32_t dst_px_size, uint32_t src_px_size)
{
@@ -859,27 +865,27 @@ static inline lv_result_t lv_rgb888_blend_normal_to_rgb888_with_mask_helium(lv_d
};
if(dst_px_size == 3) {
if(src_px_size == 3) {
- lv_rgb888_blend_normal_to_rgb888_with_mask_helium(&asm_dsc);
+ _lv_rgb888_blend_normal_to_rgb888_with_mask_helium(&asm_dsc);
}
else {
- lv_xrgb8888_blend_normal_to_rgb888_with_mask_helium(&asm_dsc);
+ _lv_xrgb8888_blend_normal_to_rgb888_with_mask_helium(&asm_dsc);
}
}
else {
if(src_px_size == 3) {
- lv_rgb888_blend_normal_to_xrgb8888_with_mask_helium(&asm_dsc);
+ _lv_rgb888_blend_normal_to_xrgb8888_with_mask_helium(&asm_dsc);
}
else {
- lv_xrgb8888_blend_normal_to_xrgb8888_with_mask_helium(&asm_dsc);
+ _lv_xrgb8888_blend_normal_to_xrgb8888_with_mask_helium(&asm_dsc);
}
}
return LV_RESULT_OK;
}
-extern void lv_rgb888_blend_normal_to_rgb888_mix_mask_opa_helium(asm_dsc_t * dsc);
-extern void lv_rgb888_blend_normal_to_xrgb8888_mix_mask_opa_helium(asm_dsc_t * dsc);
-extern void lv_xrgb8888_blend_normal_to_rgb888_mix_mask_opa_helium(asm_dsc_t * dsc);
-extern void lv_xrgb8888_blend_normal_to_xrgb8888_mix_mask_opa_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_rgb888_blend_normal_to_rgb888_mix_mask_opa_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_rgb888_blend_normal_to_xrgb8888_mix_mask_opa_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_xrgb8888_blend_normal_to_rgb888_mix_mask_opa_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_xrgb8888_blend_normal_to_xrgb8888_mix_mask_opa_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_rgb888_blend_normal_to_rgb888_mix_mask_opa_helium(lv_draw_sw_blend_image_dsc_t * dsc,
uint32_t dst_px_size, uint32_t src_px_size)
{
@@ -896,25 +902,25 @@ static inline lv_result_t lv_rgb888_blend_normal_to_rgb888_mix_mask_opa_helium(l
};
if(dst_px_size == 3) {
if(src_px_size == 3) {
- lv_rgb888_blend_normal_to_rgb888_mix_mask_opa_helium(&asm_dsc);
+ _lv_rgb888_blend_normal_to_rgb888_mix_mask_opa_helium(&asm_dsc);
}
else {
- lv_xrgb8888_blend_normal_to_rgb888_mix_mask_opa_helium(&asm_dsc);
+ _lv_xrgb8888_blend_normal_to_rgb888_mix_mask_opa_helium(&asm_dsc);
}
}
else {
if(src_px_size == 3) {
- lv_rgb888_blend_normal_to_xrgb8888_mix_mask_opa_helium(&asm_dsc);
+ _lv_rgb888_blend_normal_to_xrgb8888_mix_mask_opa_helium(&asm_dsc);
}
else {
- lv_xrgb8888_blend_normal_to_xrgb8888_mix_mask_opa_helium(&asm_dsc);
+ _lv_xrgb8888_blend_normal_to_xrgb8888_mix_mask_opa_helium(&asm_dsc);
}
}
return LV_RESULT_OK;
}
-extern void lv_argb8888_blend_normal_to_rgb888_helium(asm_dsc_t * dsc);
-extern void lv_argb8888_blend_normal_to_xrgb8888_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_argb8888_blend_normal_to_rgb888_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_argb8888_blend_normal_to_xrgb8888_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_argb8888_blend_normal_to_rgb888_helium(lv_draw_sw_blend_image_dsc_t * dsc,
uint32_t dst_px_size)
{
@@ -927,16 +933,16 @@ static inline lv_result_t lv_argb8888_blend_normal_to_rgb888_helium(lv_draw_sw_b
.src_stride = dsc->src_stride
};
if(dst_px_size == 3) {
- lv_argb8888_blend_normal_to_rgb888_helium(&asm_dsc);
+ _lv_argb8888_blend_normal_to_rgb888_helium(&asm_dsc);
}
else {
- lv_argb8888_blend_normal_to_xrgb8888_helium(&asm_dsc);
+ _lv_argb8888_blend_normal_to_xrgb8888_helium(&asm_dsc);
}
return LV_RESULT_OK;
}
-extern void lv_argb8888_blend_normal_to_rgb888_with_opa_helium(asm_dsc_t * dsc);
-extern void lv_argb8888_blend_normal_to_xrgb8888_with_opa_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_argb8888_blend_normal_to_rgb888_with_opa_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_argb8888_blend_normal_to_xrgb8888_with_opa_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_argb8888_blend_normal_to_rgb888_with_opa_helium(lv_draw_sw_blend_image_dsc_t * dsc,
uint32_t dst_px_size)
{
@@ -950,16 +956,16 @@ static inline lv_result_t lv_argb8888_blend_normal_to_rgb888_with_opa_helium(lv_
.src_stride = dsc->src_stride
};
if(dst_px_size == 3) {
- lv_argb8888_blend_normal_to_rgb888_with_opa_helium(&asm_dsc);
+ _lv_argb8888_blend_normal_to_rgb888_with_opa_helium(&asm_dsc);
}
else {
- lv_argb8888_blend_normal_to_xrgb8888_with_opa_helium(&asm_dsc);
+ _lv_argb8888_blend_normal_to_xrgb8888_with_opa_helium(&asm_dsc);
}
return LV_RESULT_OK;
}
-extern void lv_argb8888_blend_normal_to_rgb888_with_mask_helium(asm_dsc_t * dsc);
-extern void lv_argb8888_blend_normal_to_xrgb8888_with_mask_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_argb8888_blend_normal_to_rgb888_with_mask_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_argb8888_blend_normal_to_xrgb8888_with_mask_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_argb8888_blend_normal_to_rgb888_with_mask_helium(lv_draw_sw_blend_image_dsc_t * dsc,
uint32_t dst_px_size)
{
@@ -974,16 +980,16 @@ static inline lv_result_t lv_argb8888_blend_normal_to_rgb888_with_mask_helium(lv
.mask_stride = dsc->mask_stride
};
if(dst_px_size == 3) {
- lv_argb8888_blend_normal_to_rgb888_with_mask_helium(&asm_dsc);
+ _lv_argb8888_blend_normal_to_rgb888_with_mask_helium(&asm_dsc);
}
else {
- lv_argb8888_blend_normal_to_xrgb8888_with_mask_helium(&asm_dsc);
+ _lv_argb8888_blend_normal_to_xrgb8888_with_mask_helium(&asm_dsc);
}
return LV_RESULT_OK;
}
-extern void lv_argb8888_blend_normal_to_rgb888_mix_mask_opa_helium(asm_dsc_t * dsc);
-extern void lv_argb8888_blend_normal_to_xrgb8888_mix_mask_opa_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_argb8888_blend_normal_to_rgb888_mix_mask_opa_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_argb8888_blend_normal_to_xrgb8888_mix_mask_opa_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_argb8888_blend_normal_to_rgb888_mix_mask_opa_helium(lv_draw_sw_blend_image_dsc_t * dsc,
uint32_t dst_px_size)
{
@@ -999,15 +1005,15 @@ static inline lv_result_t lv_argb8888_blend_normal_to_rgb888_mix_mask_opa_helium
.mask_stride = dsc->mask_stride
};
if(dst_px_size == 3) {
- lv_argb8888_blend_normal_to_rgb888_mix_mask_opa_helium(&asm_dsc);
+ _lv_argb8888_blend_normal_to_rgb888_mix_mask_opa_helium(&asm_dsc);
}
else {
- lv_argb8888_blend_normal_to_xrgb8888_mix_mask_opa_helium(&asm_dsc);
+ _lv_argb8888_blend_normal_to_xrgb8888_mix_mask_opa_helium(&asm_dsc);
}
return LV_RESULT_OK;
}
-extern void lv_color_blend_to_argb8888_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_color_blend_to_argb8888_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_color_blend_to_argb8888_helium(lv_draw_sw_blend_fill_dsc_t * dsc)
{
asm_dsc_t asm_dsc = {
@@ -1018,11 +1024,11 @@ static inline lv_result_t lv_color_blend_to_argb8888_helium(lv_draw_sw_blend_fil
.src_buf = &dsc->color
};
- lv_color_blend_to_argb8888_helium(&asm_dsc);
+ _lv_color_blend_to_argb8888_helium(&asm_dsc);
return LV_RESULT_OK;
}
-extern void lv_color_blend_to_argb8888_with_opa_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_color_blend_to_argb8888_with_opa_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_color_blend_to_argb8888_with_opa_helium(lv_draw_sw_blend_fill_dsc_t * dsc)
{
asm_dsc_t asm_dsc = {
@@ -1033,11 +1039,11 @@ static inline lv_result_t lv_color_blend_to_argb8888_with_opa_helium(lv_draw_sw_
.dst_stride = dsc->dest_stride,
.src_buf = &dsc->color
};
- lv_color_blend_to_argb8888_with_opa_helium(&asm_dsc);
+ _lv_color_blend_to_argb8888_with_opa_helium(&asm_dsc);
return LV_RESULT_OK;
}
-extern void lv_color_blend_to_argb8888_with_mask_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_color_blend_to_argb8888_with_mask_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_color_blend_to_argb8888_with_mask_helium(lv_draw_sw_blend_fill_dsc_t * dsc)
{
asm_dsc_t asm_dsc = {
@@ -1049,11 +1055,11 @@ static inline lv_result_t lv_color_blend_to_argb8888_with_mask_helium(lv_draw_sw
.mask_buf = dsc->mask_buf,
.mask_stride = dsc->mask_stride
};
- lv_color_blend_to_argb8888_with_mask_helium(&asm_dsc);
+ _lv_color_blend_to_argb8888_with_mask_helium(&asm_dsc);
return LV_RESULT_OK;
}
-extern void lv_color_blend_to_argb8888_mix_mask_opa_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_color_blend_to_argb8888_mix_mask_opa_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_color_blend_to_argb8888_mix_mask_opa_helium(lv_draw_sw_blend_fill_dsc_t * dsc)
{
asm_dsc_t asm_dsc = {
@@ -1066,11 +1072,11 @@ static inline lv_result_t lv_color_blend_to_argb8888_mix_mask_opa_helium(lv_draw
.mask_buf = dsc->mask_buf,
.mask_stride = dsc->mask_stride
};
- lv_color_blend_to_argb8888_mix_mask_opa_helium(&asm_dsc);
+ _lv_color_blend_to_argb8888_mix_mask_opa_helium(&asm_dsc);
return LV_RESULT_OK;
}
-extern void lv_rgb565_blend_normal_to_argb8888_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_rgb565_blend_normal_to_argb8888_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_rgb565_blend_normal_to_argb8888_helium(lv_draw_sw_blend_image_dsc_t * dsc)
{
asm_dsc_t asm_dsc = {
@@ -1081,11 +1087,11 @@ static inline lv_result_t lv_rgb565_blend_normal_to_argb8888_helium(lv_draw_sw_b
.src_buf = dsc->src_buf,
.src_stride = dsc->src_stride
};
- lv_rgb565_blend_normal_to_argb8888_helium(&asm_dsc);
+ _lv_rgb565_blend_normal_to_argb8888_helium(&asm_dsc);
return LV_RESULT_OK;
}
-extern void lv_rgb565_blend_normal_to_argb8888_with_opa_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_rgb565_blend_normal_to_argb8888_with_opa_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_rgb565_blend_normal_to_argb8888_with_opa_helium(lv_draw_sw_blend_image_dsc_t * dsc)
{
asm_dsc_t asm_dsc = {
@@ -1097,11 +1103,11 @@ static inline lv_result_t lv_rgb565_blend_normal_to_argb8888_with_opa_helium(lv_
.src_buf = dsc->src_buf,
.src_stride = dsc->src_stride
};
- lv_rgb565_blend_normal_to_argb8888_with_opa_helium(&asm_dsc);
+ _lv_rgb565_blend_normal_to_argb8888_with_opa_helium(&asm_dsc);
return LV_RESULT_OK;
}
-extern void lv_rgb565_blend_normal_to_argb8888_with_mask_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_rgb565_blend_normal_to_argb8888_with_mask_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_rgb565_blend_normal_to_argb8888_with_mask_helium(lv_draw_sw_blend_image_dsc_t * dsc)
{
asm_dsc_t asm_dsc = {
@@ -1114,11 +1120,11 @@ static inline lv_result_t lv_rgb565_blend_normal_to_argb8888_with_mask_helium(lv
.mask_buf = dsc->mask_buf,
.mask_stride = dsc->mask_stride
};
- lv_rgb565_blend_normal_to_argb8888_with_mask_helium(&asm_dsc);
+ _lv_rgb565_blend_normal_to_argb8888_with_mask_helium(&asm_dsc);
return LV_RESULT_OK;
}
-extern void lv_rgb565_blend_normal_to_argb8888_mix_mask_opa_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_rgb565_blend_normal_to_argb8888_mix_mask_opa_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_rgb565_blend_normal_to_argb8888_mix_mask_opa_helium(lv_draw_sw_blend_image_dsc_t * dsc)
{
asm_dsc_t asm_dsc = {
@@ -1132,12 +1138,12 @@ static inline lv_result_t lv_rgb565_blend_normal_to_argb8888_mix_mask_opa_helium
.mask_buf = dsc->mask_buf,
.mask_stride = dsc->mask_stride
};
- lv_rgb565_blend_normal_to_argb8888_mix_mask_opa_helium(&asm_dsc);
+ _lv_rgb565_blend_normal_to_argb8888_mix_mask_opa_helium(&asm_dsc);
return LV_RESULT_OK;
}
-extern void lv_rgb888_blend_normal_to_argb8888_helium(asm_dsc_t * dsc);
-extern void lv_xrgb8888_blend_normal_to_argb8888_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_rgb888_blend_normal_to_argb8888_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_xrgb8888_blend_normal_to_argb8888_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_rgb888_blend_normal_to_argb8888_helium(lv_draw_sw_blend_image_dsc_t * dsc,
uint32_t src_px_size)
{
@@ -1150,16 +1156,16 @@ static inline lv_result_t lv_rgb888_blend_normal_to_argb8888_helium(lv_draw_sw_b
.src_stride = dsc->src_stride
};
if(src_px_size == 3) {
- lv_rgb888_blend_normal_to_argb8888_helium(&asm_dsc);
+ _lv_rgb888_blend_normal_to_argb8888_helium(&asm_dsc);
}
else {
- lv_xrgb8888_blend_normal_to_argb8888_helium(&asm_dsc);
+ _lv_xrgb8888_blend_normal_to_argb8888_helium(&asm_dsc);
}
return LV_RESULT_OK;
}
-extern void lv_rgb888_blend_normal_to_argb8888_with_opa_helium(asm_dsc_t * dsc);
-extern void lv_xrgb8888_blend_normal_to_argb8888_with_opa_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_rgb888_blend_normal_to_argb8888_with_opa_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_xrgb8888_blend_normal_to_argb8888_with_opa_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_rgb888_blend_normal_to_argb8888_with_opa_helium(lv_draw_sw_blend_image_dsc_t * dsc,
uint32_t src_px_size)
{
@@ -1173,16 +1179,16 @@ static inline lv_result_t lv_rgb888_blend_normal_to_argb8888_with_opa_helium(lv_
.src_stride = dsc->src_stride
};
if(src_px_size == 3) {
- lv_rgb888_blend_normal_to_argb8888_with_opa_helium(&asm_dsc);
+ _lv_rgb888_blend_normal_to_argb8888_with_opa_helium(&asm_dsc);
}
else {
- lv_xrgb8888_blend_normal_to_argb8888_with_opa_helium(&asm_dsc);
+ _lv_xrgb8888_blend_normal_to_argb8888_with_opa_helium(&asm_dsc);
}
return LV_RESULT_OK;
}
-extern void lv_rgb888_blend_normal_to_argb8888_with_mask_helium(asm_dsc_t * dsc);
-extern void lv_xrgb8888_blend_normal_to_argb8888_with_mask_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_rgb888_blend_normal_to_argb8888_with_mask_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_xrgb8888_blend_normal_to_argb8888_with_mask_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_rgb888_blend_normal_to_argb8888_with_mask_helium(lv_draw_sw_blend_image_dsc_t * dsc,
uint32_t src_px_size)
{
@@ -1197,16 +1203,16 @@ static inline lv_result_t lv_rgb888_blend_normal_to_argb8888_with_mask_helium(lv
.mask_stride = dsc->mask_stride
};
if(src_px_size == 3) {
- lv_rgb888_blend_normal_to_argb8888_with_mask_helium(&asm_dsc);
+ _lv_rgb888_blend_normal_to_argb8888_with_mask_helium(&asm_dsc);
}
else {
- lv_xrgb8888_blend_normal_to_argb8888_with_mask_helium(&asm_dsc);
+ _lv_xrgb8888_blend_normal_to_argb8888_with_mask_helium(&asm_dsc);
}
return LV_RESULT_OK;
}
-extern void lv_rgb888_blend_normal_to_argb8888_mix_mask_opa_helium(asm_dsc_t * dsc);
-extern void lv_xrgb8888_blend_normal_to_argb8888_mix_mask_opa_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_rgb888_blend_normal_to_argb8888_mix_mask_opa_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_xrgb8888_blend_normal_to_argb8888_mix_mask_opa_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_rgb888_blend_normal_to_argb8888_mix_mask_opa_helium(lv_draw_sw_blend_image_dsc_t * dsc,
uint32_t src_px_size)
{
@@ -1222,15 +1228,15 @@ static inline lv_result_t lv_rgb888_blend_normal_to_argb8888_mix_mask_opa_helium
.mask_stride = dsc->mask_stride
};
if(src_px_size == 3) {
- lv_rgb888_blend_normal_to_argb8888_mix_mask_opa_helium(&asm_dsc);
+ _lv_rgb888_blend_normal_to_argb8888_mix_mask_opa_helium(&asm_dsc);
}
else {
- lv_xrgb8888_blend_normal_to_argb8888_mix_mask_opa_helium(&asm_dsc);
+ _lv_xrgb8888_blend_normal_to_argb8888_mix_mask_opa_helium(&asm_dsc);
}
return LV_RESULT_OK;
}
-extern void lv_argb8888_blend_normal_to_argb8888_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_argb8888_blend_normal_to_argb8888_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_argb8888_blend_normal_to_argb8888_helium(lv_draw_sw_blend_image_dsc_t * dsc)
{
asm_dsc_t asm_dsc = {
@@ -1241,11 +1247,11 @@ static inline lv_result_t lv_argb8888_blend_normal_to_argb8888_helium(lv_draw_sw
.src_buf = dsc->src_buf,
.src_stride = dsc->src_stride
};
- lv_argb8888_blend_normal_to_argb8888_helium(&asm_dsc);
+ _lv_argb8888_blend_normal_to_argb8888_helium(&asm_dsc);
return LV_RESULT_OK;
}
-extern void lv_argb8888_blend_normal_to_argb8888_with_opa_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_argb8888_blend_normal_to_argb8888_with_opa_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_argb8888_blend_normal_to_argb8888_with_opa_helium(lv_draw_sw_blend_image_dsc_t * dsc)
{
asm_dsc_t asm_dsc = {
@@ -1257,11 +1263,11 @@ static inline lv_result_t lv_argb8888_blend_normal_to_argb8888_with_opa_helium(l
.src_buf = dsc->src_buf,
.src_stride = dsc->src_stride
};
- lv_argb8888_blend_normal_to_argb8888_with_opa_helium(&asm_dsc);
+ _lv_argb8888_blend_normal_to_argb8888_with_opa_helium(&asm_dsc);
return LV_RESULT_OK;
}
-extern void lv_argb8888_blend_normal_to_argb8888_with_mask_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_argb8888_blend_normal_to_argb8888_with_mask_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_argb8888_blend_normal_to_argb8888_with_mask_helium(lv_draw_sw_blend_image_dsc_t * dsc)
{
asm_dsc_t asm_dsc = {
@@ -1274,11 +1280,11 @@ static inline lv_result_t lv_argb8888_blend_normal_to_argb8888_with_mask_helium(
.mask_buf = dsc->mask_buf,
.mask_stride = dsc->mask_stride
};
- lv_argb8888_blend_normal_to_argb8888_with_mask_helium(&asm_dsc);
+ _lv_argb8888_blend_normal_to_argb8888_with_mask_helium(&asm_dsc);
return LV_RESULT_OK;
}
-extern void lv_argb8888_blend_normal_to_argb8888_mix_mask_opa_helium(asm_dsc_t * dsc);
+extern LVGL_HIDDEN void _lv_argb8888_blend_normal_to_argb8888_mix_mask_opa_helium(asm_dsc_t * dsc);
static inline lv_result_t lv_argb8888_blend_normal_to_argb8888_mix_mask_opa_helium(lv_draw_sw_blend_image_dsc_t * dsc)
{
asm_dsc_t asm_dsc = {
@@ -1292,7 +1298,7 @@ static inline lv_result_t lv_argb8888_blend_normal_to_argb8888_mix_mask_opa_heli
.mask_buf = dsc->mask_buf,
.mask_stride = dsc->mask_stride
};
- lv_argb8888_blend_normal_to_argb8888_mix_mask_opa_helium(&asm_dsc);
+ _lv_argb8888_blend_normal_to_argb8888_mix_mask_opa_helium(&asm_dsc);
return LV_RESULT_OK;
}
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/lv_draw_sw_blend_to_al88.c b/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/lv_draw_sw_blend_to_al88.c
index dc56243a6..749be4cea 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/lv_draw_sw_blend_to_al88.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/lv_draw_sw_blend_to_al88.c
@@ -1,5 +1,5 @@
/**
- * @file lv_draw_sw_blend_al88.c
+ * @file lv_draw_sw_blend_to_al88.c
*
*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/lv_draw_sw_blend_to_argb8888.c b/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/lv_draw_sw_blend_to_argb8888.c
index 2e1bc5b1b..eb3ae338e 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/lv_draw_sw_blend_to_argb8888.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/lv_draw_sw_blend_to_argb8888.c
@@ -1,5 +1,5 @@
/**
- * @file lv_draw_sw_blend.c
+ * @file lv_draw_sw_blend_to_argb8888.c
*
*/
@@ -91,7 +91,9 @@ static inline void /* LV_ATTRIBUTE_FAST_MEM */ blend_non_normal_pixel(lv_color32
static inline void * /* LV_ATTRIBUTE_FAST_MEM */ drawbuf_next_row(const void * buf, uint32_t stride);
-static inline lv_color16_t /* LV_ATTRIBUTE_FAST_MEM */ lv_color16_from_u16(uint16_t raw);
+#if LV_DRAW_SW_SUPPORT_RGB565_SWAPPED
+ static inline lv_color16_t /* LV_ATTRIBUTE_FAST_MEM */ lv_color16_from_u16(uint16_t raw);
+#endif
/**********************
* STATIC VARIABLES
@@ -1350,6 +1352,7 @@ static inline void * LV_ATTRIBUTE_FAST_MEM drawbuf_next_row(const void * buf, ui
return (void *)((uint8_t *)buf + stride);
}
+#if LV_DRAW_SW_SUPPORT_RGB565_SWAPPED
static inline lv_color16_t LV_ATTRIBUTE_FAST_MEM lv_color16_from_u16(uint16_t raw)
{
lv_color16_t c;
@@ -1358,6 +1361,7 @@ static inline lv_color16_t LV_ATTRIBUTE_FAST_MEM lv_color16_from_u16(uint16_t ra
c.blue = raw & 0x1F;
return c;
}
+#endif
#endif /* LV_DRAW_SW_SUPPORT_ARGB8888 */
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/lv_draw_sw_blend_to_argb8888_premultiplied.c b/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/lv_draw_sw_blend_to_argb8888_premultiplied.c
index c0b303165..a74863a0f 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/lv_draw_sw_blend_to_argb8888_premultiplied.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/lv_draw_sw_blend_to_argb8888_premultiplied.c
@@ -302,7 +302,8 @@ static void LV_ATTRIBUTE_FAST_MEM argb8888_image_blend(lv_draw_sw_blend_image_ds
*darker color when blending the same color to the background.*/
if(dest_buf_c32[x].red != color_argb.red ||
dest_buf_c32[x].green != color_argb.green ||
- dest_buf_c32[x].blue != color_argb.blue) {
+ dest_buf_c32[x].blue != color_argb.blue ||
+ dest_buf_c32[x].alpha != color_argb.alpha) {
color_argb.red = (color_argb.red * color_argb.alpha) >> 8;
color_argb.green = (color_argb.green * color_argb.alpha) >> 8;
@@ -334,7 +335,8 @@ static void LV_ATTRIBUTE_FAST_MEM argb8888_image_blend(lv_draw_sw_blend_image_ds
*darker color when blending the same color to the background.*/
if(dest_buf_c32[x].red != color_argb.red ||
dest_buf_c32[x].green != color_argb.green ||
- dest_buf_c32[x].blue != color_argb.blue) {
+ dest_buf_c32[x].blue != color_argb.blue ||
+ dest_buf_c32[x].alpha != color_argb.alpha) {
color_argb.alpha = alpha;
color_argb.red = (color_argb.red * color_argb.alpha) >> 8;
color_argb.green = (color_argb.green * color_argb.alpha) >> 8;
@@ -366,7 +368,8 @@ static void LV_ATTRIBUTE_FAST_MEM argb8888_image_blend(lv_draw_sw_blend_image_ds
*darker color when blending the same color to the background.*/
if(dest_buf_c32[x].red != color_argb.red ||
dest_buf_c32[x].green != color_argb.green ||
- dest_buf_c32[x].blue != color_argb.blue) {
+ dest_buf_c32[x].blue != color_argb.blue ||
+ dest_buf_c32[x].alpha != color_argb.alpha) {
color_argb.alpha = alpha;
color_argb.red = (color_argb.red * color_argb.alpha) >> 8;
color_argb.green = (color_argb.green * color_argb.alpha) >> 8;
@@ -399,7 +402,8 @@ static void LV_ATTRIBUTE_FAST_MEM argb8888_image_blend(lv_draw_sw_blend_image_ds
*darker color when blending the same color to the background.*/
if(dest_buf_c32[x].red != color_argb.red ||
dest_buf_c32[x].green != color_argb.green ||
- dest_buf_c32[x].blue != color_argb.blue) {
+ dest_buf_c32[x].blue != color_argb.blue ||
+ dest_buf_c32[x].alpha != color_argb.alpha) {
color_argb.alpha = alpha;
color_argb.red = (color_argb.red * color_argb.alpha) >> 8;
color_argb.green = (color_argb.green * color_argb.alpha) >> 8;
@@ -529,9 +533,9 @@ static void LV_ATTRIBUTE_FAST_MEM rgb888_image_blend(lv_draw_sw_blend_image_dsc_
for(y = 0; y < h; y++) {
for(dest_x = 0, src_x = 0; dest_x < w; dest_x++, src_x += src_px_size) {
color_argb.alpha = (opa * mask_buf[dest_x]) >> 8;
- color_argb.red = (src_buf[src_x + 2] * color_argb.alpha) >> 8;;
- color_argb.green = (src_buf[src_x + 1] * color_argb.alpha) >> 8;;
- color_argb.blue = (src_buf[src_x + 0] * color_argb.alpha) >> 8;;
+ color_argb.red = (src_buf[src_x + 2] * color_argb.alpha) >> 8;
+ color_argb.green = (src_buf[src_x + 1] * color_argb.alpha) >> 8;
+ color_argb.blue = (src_buf[src_x + 0] * color_argb.alpha) >> 8;
dest_buf_c32[dest_x] = lv_color_32_32_mix_premul(color_argb, dest_buf_c32[dest_x], &cache);
}
dest_buf_c32 = drawbuf_next_row(dest_buf_c32, dest_stride);
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/lv_draw_sw_blend_to_i1.c b/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/lv_draw_sw_blend_to_i1.c
index eaeccfab7..7fe446cab 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/lv_draw_sw_blend_to_i1.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/lv_draw_sw_blend_to_i1.c
@@ -78,7 +78,9 @@ static inline uint8_t /* LV_ATTRIBUTE_FAST_MEM */ get_bit(const uint8_t * buf, i
static inline void * /* LV_ATTRIBUTE_FAST_MEM */ drawbuf_next_row(const void * buf, uint32_t stride);
-static inline lv_color16_t /* LV_ATTRIBUTE_FAST_MEM */ lv_color16_from_u16(uint16_t raw);
+#if LV_DRAW_SW_SUPPORT_RGB565_SWAPPED
+ static inline lv_color16_t /* LV_ATTRIBUTE_FAST_MEM */ lv_color16_from_u16(uint16_t raw);
+#endif
/**********************
* STATIC VARIABLES
@@ -1271,6 +1273,7 @@ static inline uint8_t LV_ATTRIBUTE_FAST_MEM get_bit(const uint8_t * buf, int32_t
return (buf[bit_idx / 8] >> (7 - (bit_idx % 8))) & 1;
}
+#if LV_DRAW_SW_SUPPORT_RGB565_SWAPPED
static inline lv_color16_t LV_ATTRIBUTE_FAST_MEM lv_color16_from_u16(uint16_t raw)
{
lv_color16_t c;
@@ -1279,5 +1282,6 @@ static inline lv_color16_t LV_ATTRIBUTE_FAST_MEM lv_color16_from_u16(uint16_t ra
c.blue = raw & 0x1F;
return c;
}
+#endif
#endif
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/lv_draw_sw_blend_to_l8.c b/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/lv_draw_sw_blend_to_l8.c
index 91bb1162a..99b438deb 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/lv_draw_sw_blend_to_l8.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/lv_draw_sw_blend_to_l8.c
@@ -1,5 +1,5 @@
/**
- * @file lv_draw_sw_blend_l8.c
+ * @file lv_draw_sw_blend_to_l8.c
*
*/
@@ -74,7 +74,9 @@ static inline void /* LV_ATTRIBUTE_FAST_MEM */ blend_non_normal_pixel(uint8_t *
static inline void * /* LV_ATTRIBUTE_FAST_MEM */ drawbuf_next_row(const void * buf, uint32_t stride);
-static inline lv_color16_t /* LV_ATTRIBUTE_FAST_MEM */ lv_color16_from_u16(uint16_t raw);
+#if LV_DRAW_SW_SUPPORT_RGB565_SWAPPED
+ static inline lv_color16_t /* LV_ATTRIBUTE_FAST_MEM */ lv_color16_from_u16(uint16_t raw);
+#endif
/**********************
* STATIC VARIABLES
@@ -1005,6 +1007,7 @@ static inline void * LV_ATTRIBUTE_FAST_MEM drawbuf_next_row(const void * buf, ui
return (void *)((uint8_t *)buf + stride);
}
+#if LV_DRAW_SW_SUPPORT_RGB565_SWAPPED
static inline lv_color16_t LV_ATTRIBUTE_FAST_MEM lv_color16_from_u16(uint16_t raw)
{
lv_color16_t c;
@@ -1013,6 +1016,7 @@ static inline lv_color16_t LV_ATTRIBUTE_FAST_MEM lv_color16_from_u16(uint16_t ra
c.blue = raw & 0x1F;
return c;
}
+#endif
#endif
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/lv_draw_sw_blend_to_rgb565.c b/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/lv_draw_sw_blend_to_rgb565.c
index bca595caa..a2bcacd33 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/lv_draw_sw_blend_to_rgb565.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/lv_draw_sw_blend_to_rgb565.c
@@ -79,7 +79,9 @@ static inline uint16_t /* LV_ATTRIBUTE_FAST_MEM */ lv_color_24_16_mix(const uint
static inline void * /* LV_ATTRIBUTE_FAST_MEM */ drawbuf_next_row(const void * buf, uint32_t stride);
-static inline lv_color16_t /* LV_ATTRIBUTE_FAST_MEM */ lv_color16_from_u16(uint16_t raw);
+#if LV_DRAW_SW_SUPPORT_RGB565_SWAPPED
+ static inline lv_color16_t /* LV_ATTRIBUTE_FAST_MEM */ lv_color16_from_u16(uint16_t raw);
+#endif
/**********************
* STATIC VARIABLES
@@ -153,6 +155,22 @@ static inline lv_color16_t /* LV_ATTRIBUTE_FAST_MEM */ lv_color16_from_u16(uint1
#define LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_RGB565_MIX_MASK_OPA(...) LV_RESULT_INVALID
#endif
+#ifndef LV_DRAW_SW_RGB565_SWAPPED_BLEND_NORMAL_TO_RGB565
+ #define LV_DRAW_SW_RGB565_SWAPPED_BLEND_NORMAL_TO_RGB565(...) LV_RESULT_INVALID
+#endif
+
+#ifndef LV_DRAW_SW_RGB565_SWAPPED_BLEND_NORMAL_TO_RGB565_WITH_OPA
+ #define LV_DRAW_SW_RGB565_SWAPPED_BLEND_NORMAL_TO_RGB565_WITH_OPA(...) LV_RESULT_INVALID
+#endif
+
+#ifndef LV_DRAW_SW_RGB565_SWAPPED_BLEND_NORMAL_TO_RGB565_WITH_MASK
+ #define LV_DRAW_SW_RGB565_SWAPPED_BLEND_NORMAL_TO_RGB565_WITH_MASK(...) LV_RESULT_INVALID
+#endif
+
+#ifndef LV_DRAW_SW_RGB565_SWAPPED_BLEND_NORMAL_TO_RGB565_MIX_MASK_OPA
+ #define LV_DRAW_SW_RGB565_SWAPPED_BLEND_NORMAL_TO_RGB565_MIX_MASK_OPA(...) LV_RESULT_INVALID
+#endif
+
#ifndef LV_DRAW_SW_RGB888_BLEND_NORMAL_TO_RGB565
#define LV_DRAW_SW_RGB888_BLEND_NORMAL_TO_RGB565(...) LV_RESULT_INVALID
#endif
@@ -931,7 +949,7 @@ static void LV_ATTRIBUTE_FAST_MEM rgb565_swapped_image_blend(lv_draw_sw_blend_im
if(dsc->blend_mode == LV_BLEND_MODE_NORMAL) {
if(mask_buf == NULL && opa >= LV_OPA_MAX) {
- if(LV_RESULT_INVALID == LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_RGB565(dsc)) {
+ if(LV_RESULT_INVALID == LV_DRAW_SW_RGB565_SWAPPED_BLEND_NORMAL_TO_RGB565(dsc)) {
uint32_t line_in_bytes = w * 2;
for(y = 0; y < h; y++) {
lv_memcpy(dest_buf_u16, src_buf_u16, line_in_bytes);
@@ -942,7 +960,7 @@ static void LV_ATTRIBUTE_FAST_MEM rgb565_swapped_image_blend(lv_draw_sw_blend_im
}
}
else if(mask_buf == NULL && opa < LV_OPA_MAX) {
- if(LV_RESULT_INVALID == LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_RGB565_WITH_OPA(dsc)) {
+ if(LV_RESULT_INVALID == LV_DRAW_SW_RGB565_SWAPPED_BLEND_NORMAL_TO_RGB565_WITH_OPA(dsc)) {
for(y = 0; y < h; y++) {
for(x = 0; x < w; x++) {
dest_buf_u16[x] = lv_color_16_16_mix(lv_color_swap_16(src_buf_u16[x]), dest_buf_u16[x], opa);
@@ -953,7 +971,7 @@ static void LV_ATTRIBUTE_FAST_MEM rgb565_swapped_image_blend(lv_draw_sw_blend_im
}
}
else if(mask_buf && opa >= LV_OPA_MAX) {
- if(LV_RESULT_INVALID == LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_RGB565_WITH_MASK(dsc)) {
+ if(LV_RESULT_INVALID == LV_DRAW_SW_RGB565_SWAPPED_BLEND_NORMAL_TO_RGB565_WITH_MASK(dsc)) {
for(y = 0; y < h; y++) {
for(x = 0; x < w; x++) {
dest_buf_u16[x] = lv_color_16_16_mix(lv_color_swap_16(src_buf_u16[x]), dest_buf_u16[x], mask_buf[x]);
@@ -965,7 +983,7 @@ static void LV_ATTRIBUTE_FAST_MEM rgb565_swapped_image_blend(lv_draw_sw_blend_im
}
}
else {
- if(LV_RESULT_INVALID == LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_RGB565_MIX_MASK_OPA(dsc)) {
+ if(LV_RESULT_INVALID == LV_DRAW_SW_RGB565_SWAPPED_BLEND_NORMAL_TO_RGB565_MIX_MASK_OPA(dsc)) {
for(y = 0; y < h; y++) {
for(x = 0; x < w; x++) {
dest_buf_u16[x] = lv_color_16_16_mix(lv_color_swap_16(src_buf_u16[x]), dest_buf_u16[x], LV_OPA_MIX2(mask_buf[x], opa));
@@ -1316,7 +1334,7 @@ static void LV_ATTRIBUTE_FAST_MEM argb8888_premultiplied_image_blend(lv_draw_sw_
if(LV_RESULT_INVALID == LV_DRAW_SW_ARGB8888_PREMULTIPLIED_BLEND_NORMAL_TO_RGB565(dsc)) {
for(y = 0; y < h; y++) {
for(dest_x = 0, src_x = 0; dest_x < w; dest_x++, src_x += 4) {
- /*For the trivial case use the premultipled image as it is.
+ /*For the trivial case use the premultiplied image as it is.
*For the other cases unpremultiply as another alpha also needs to be applied.*/
dest_buf_u16[dest_x] = lv_color_24_16_mix_premult(&src_buf_u8[src_x], dest_buf_u16[dest_x], src_buf_u8[src_x + 3]);
}
@@ -1497,6 +1515,7 @@ static inline void * LV_ATTRIBUTE_FAST_MEM drawbuf_next_row(const void * buf, ui
return (void *)((uint8_t *)buf + stride);
}
+#if LV_DRAW_SW_SUPPORT_RGB565_SWAPPED
static inline lv_color16_t LV_ATTRIBUTE_FAST_MEM lv_color16_from_u16(uint16_t raw)
{
lv_color16_t c;
@@ -1505,6 +1524,7 @@ static inline lv_color16_t LV_ATTRIBUTE_FAST_MEM lv_color16_from_u16(uint16_t ra
c.blue = raw & 0x1F;
return c;
}
+#endif
#endif /*LV_DRAW_SW_SUPPORT_RGB565*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/lv_draw_sw_blend_to_rgb565_swapped.h b/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/lv_draw_sw_blend_to_rgb565_swapped.h
index 475b765d2..a9da699d7 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/lv_draw_sw_blend_to_rgb565_swapped.h
+++ b/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/lv_draw_sw_blend_to_rgb565_swapped.h
@@ -42,4 +42,4 @@ void /* LV_ATTRIBUTE_FAST_MEM */ lv_draw_sw_blend_image_to_rgb565_swapped(lv_dra
} /*extern "C"*/
#endif
-#endif /*LV_DRAW_SW_BLEND_TO_RGB565_H*/
+#endif /*LV_DRAW_SW_BLEND_TO_RGB565_SWAPPED_H*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/lv_draw_sw_blend_to_rgb888.c b/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/lv_draw_sw_blend_to_rgb888.c
index a99d4bce4..7a9daa083 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/lv_draw_sw_blend_to_rgb888.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/lv_draw_sw_blend_to_rgb888.c
@@ -119,6 +119,22 @@ static inline void * /* LV_ATTRIBUTE_FAST_MEM */ drawbuf_next_row(const void * b
#define LV_DRAW_SW_L8_BLEND_NORMAL_TO_RGB888_MIX_MASK_OPA(...) LV_RESULT_INVALID
#endif
+#ifndef LV_DRAW_SW_AL88_BLEND_NORMAL_TO_RGB888
+ #define LV_DRAW_SW_AL88_BLEND_NORMAL_TO_RGB888(...) LV_RESULT_INVALID
+#endif
+
+#ifndef LV_DRAW_SW_AL88_BLEND_NORMAL_TO_RGB888_WITH_OPA
+ #define LV_DRAW_SW_AL88_BLEND_NORMAL_TO_RGB888_WITH_OPA(...) LV_RESULT_INVALID
+#endif
+
+#ifndef LV_DRAW_SW_AL88_BLEND_NORMAL_TO_RGB888_WITH_MASK
+ #define LV_DRAW_SW_AL88_BLEND_NORMAL_TO_RGB888_WITH_MASK(...) LV_RESULT_INVALID
+#endif
+
+#ifndef LV_DRAW_SW_AL88_BLEND_NORMAL_TO_RGB888_MIX_MASK_OPA
+ #define LV_DRAW_SW_AL88_BLEND_NORMAL_TO_RGB888_MIX_MASK_OPA(...) LV_RESULT_INVALID
+#endif
+
#ifndef LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_RGB888
#define LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_RGB888(...) LV_RESULT_INVALID
#endif
@@ -491,7 +507,7 @@ static void LV_ATTRIBUTE_FAST_MEM al88_image_blend(lv_draw_sw_blend_image_dsc_t
if(dsc->blend_mode == LV_BLEND_MODE_NORMAL) {
if(mask_buf == NULL && opa >= LV_OPA_MAX) {
- if(LV_RESULT_INVALID == LV_DRAW_SW_L8_BLEND_NORMAL_TO_RGB888(dsc, dest_px_size)) {
+ if(LV_RESULT_INVALID == LV_DRAW_SW_AL88_BLEND_NORMAL_TO_RGB888(dsc, dest_px_size)) {
for(y = 0; y < h; y++) {
for(dest_x = 0, src_x = 0; src_x < w; dest_x += dest_px_size, src_x++) {
lv_color_8_24_mix(src_buf_al88[src_x].lumi, &dest_buf_u8[dest_x], src_buf_al88[src_x].alpha);
@@ -502,7 +518,7 @@ static void LV_ATTRIBUTE_FAST_MEM al88_image_blend(lv_draw_sw_blend_image_dsc_t
}
}
else if(mask_buf == NULL && opa < LV_OPA_MAX) {
- if(LV_RESULT_INVALID == LV_DRAW_SW_L8_BLEND_NORMAL_TO_RGB888_WITH_OPA(dsc, dest_px_size)) {
+ if(LV_RESULT_INVALID == LV_DRAW_SW_AL88_BLEND_NORMAL_TO_RGB888_WITH_OPA(dsc, dest_px_size)) {
for(y = 0; y < h; y++) {
for(dest_x = 0, src_x = 0; src_x < w; dest_x += dest_px_size, src_x++) {
lv_color_8_24_mix(src_buf_al88[src_x].lumi, &dest_buf_u8[dest_x], LV_OPA_MIX2(src_buf_al88[src_x].alpha, opa));
@@ -513,7 +529,7 @@ static void LV_ATTRIBUTE_FAST_MEM al88_image_blend(lv_draw_sw_blend_image_dsc_t
}
}
else if(mask_buf && opa >= LV_OPA_MAX) {
- if(LV_RESULT_INVALID == LV_DRAW_SW_L8_BLEND_NORMAL_TO_RGB888_WITH_MASK(dsc, dest_px_size)) {
+ if(LV_RESULT_INVALID == LV_DRAW_SW_AL88_BLEND_NORMAL_TO_RGB888_WITH_MASK(dsc, dest_px_size)) {
for(y = 0; y < h; y++) {
for(dest_x = 0, src_x = 0; src_x < w; dest_x += dest_px_size, src_x++) {
lv_color_8_24_mix(src_buf_al88[src_x].lumi, &dest_buf_u8[dest_x], LV_OPA_MIX2(src_buf_al88[src_x].alpha,
@@ -526,7 +542,7 @@ static void LV_ATTRIBUTE_FAST_MEM al88_image_blend(lv_draw_sw_blend_image_dsc_t
}
}
else if(mask_buf && opa < LV_OPA_MAX) {
- if(LV_RESULT_INVALID == LV_DRAW_SW_L8_BLEND_NORMAL_TO_RGB888_MIX_MASK_OPA(dsc, dest_px_size)) {
+ if(LV_RESULT_INVALID == LV_DRAW_SW_AL88_BLEND_NORMAL_TO_RGB888_MIX_MASK_OPA(dsc, dest_px_size)) {
for(y = 0; y < h; y++) {
for(dest_x = 0, src_x = 0; src_x < w; dest_x += dest_px_size, src_x++) {
lv_color_8_24_mix(src_buf_al88[src_x].lumi, &dest_buf_u8[dest_x], LV_OPA_MIX3(src_buf_al88[src_x].alpha,
@@ -971,7 +987,7 @@ static void LV_ATTRIBUTE_FAST_MEM argb8888_premultiplied_image_blend(lv_draw_sw_
if(LV_RESULT_INVALID == LV_DRAW_SW_ARGB8888_PREMULTIPLIED_BLEND_NORMAL_TO_RGB888(dsc, dest_px_size)) {
for(y = 0; y < h; y++) {
for(dest_x = 0, src_x = 0; src_x < w; dest_x += dest_px_size, src_x++) {
- /*For the trivial case use the premultipled image as it is.
+ /*For the trivial case use the premultiplied image as it is.
*For the other cases unpremultiply as another alpha also needs to be applied.*/
lv_color_24_24_mix_premult((const uint8_t *)&src_buf_c32[src_x], &dest_buf[dest_x], src_buf_c32[src_x].alpha);
}
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/neon/lv_blend_neon.S b/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/neon/lv_blend_neon.S
deleted file mode 100644
index 83480c554..000000000
--- a/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/neon/lv_blend_neon.S
+++ /dev/null
@@ -1,705 +0,0 @@
-/**
- * @file lv_blend_neon.S
- *
- */
-
-#ifndef __ASSEMBLY__
-#define __ASSEMBLY__
-#endif
-
-#include "lv_blend_neon.h"
-
-
-/*Workaround: missing .note.GNU-stack section implies executable stack*/
-#ifdef __ELF__
-.section .note.GNU-stack,"",%progbits
-#endif /* __ELF__ */
-
-#if LV_USE_DRAW_SW_ASM == LV_DRAW_SW_ASM_NEON
-
-.text
-.fpu neon
-.arch armv7a
-.syntax unified
-.p2align 2
-
-@ d0 ~ d3 : src B,G,R,A
-@ d4 ~ d7 : dst B,G,R,A
-@ q8 : src RGB565 raw
-@ q9 : dst RGB565 raw
-@ q10 ~ q12: pre-multiplied src
-@ d26~29 : temp
-@ d30 : mask
-@ d31 : opa
-
-FG_MASK .req r0
-BG_MASK .req r1
-DST_ADDR .req r2
-DST_W .req r3
-DST_H .req r4
-DST_STRIDE .req r5
-SRC_ADDR .req r6
-SRC_STRIDE .req r7
-MASK_ADDR .req r8
-MASK_STRIDE .req r9
-W .req r10
-H .req r11
-S_8888_L .qn q0
-S_8888_H .qn q1
-D_8888_L .qn q2
-D_8888_H .qn q3
- S_B .dn d0
- S_G .dn d1
- S_R .dn d2
- S_A .dn d3
- D_B .dn d4
- D_G .dn d5
- D_R .dn d6
- D_A .dn d7
-S_565 .qn q8
-D_565 .qn q9
- S_565_L .dn d16
- S_565_H .dn d17
- D_565_L .dn d18
- D_565_H .dn d19
-PREMULT_B .qn q10
-PREMULT_G .qn q11
-PREMULT_R .qn q12
-TMP_Q0 .qn q13
- TMP_D0 .dn d26
- TMP_D1 .dn d27
-TMP_Q1 .qn q14
- TMP_D2 .dn d28
- TMP_D3 .dn d29
- M_A .dn d30
- OPA .dn d31
-
-.macro convert reg, bpp, intlv
-.if \bpp >= 31
- .if \intlv
- vzip.8 \reg\()_B, \reg\()_R @ BRBRBRBR GGGGGGGG BRBRBRBR AAAAAAAA
- vzip.8 \reg\()_G, \reg\()_A @ BRBRBRBR GAGAGAGA BRBRBRBR GAGAGAGA
- vzip.8 \reg\()_R, \reg\()_A @ BRBRBRBR GAGAGAGA BGRABGRA BGRABGRA
- vzip.8 \reg\()_B, \reg\()_G @ BGRABGRA BGRABGRA BGRABGRA BGRABGRA
- .else
- vuzp.8 \reg\()_B, \reg\()_G @ BRBRBRBR GAGAGAGA BGRABGRA BGRABGRA
- vuzp.8 \reg\()_R, \reg\()_A @ BRBRBRBR GAGAGAGA BRBRBRBR GAGAGAGA
- vuzp.8 \reg\()_G, \reg\()_A @ BRBRBRBR GGGGGGGG BRBRBRBR AAAAAAAA
- vuzp.8 \reg\()_B, \reg\()_R @ BBBBBBBB GGGGGGGG RRRRRRRR AAAAAAAA
- .endif
-.elseif \bpp == 24
- .if \intlv @ for init only (same B,G,R for all channel)
- vzip.8 \reg\()_B, \reg\()_G @ BGBGBGBG BGBGBGBG RRRRRRRR
- vzip.16 \reg\()_B, \reg\()_R @ BGRRBGRR BGBGBGBG BGRRBGRR
- vsli.64 \reg\()_8888_L, \reg\()_8888_L, #24 @ BGRBGRRB BGBBGBGB
- vsli.64 \reg\()_B, \reg\()_G, #48 @ BGRBGRBG
- vsri.64 \reg\()_R, \reg\()_B, #8 @ GRBGRBGR
- vsri.64 \reg\()_G, \reg\()_R, #8 @ RBGRBGRB
- .endif
-.elseif \bpp == 16
- .if \intlv
- vshll.u8 \reg\()_565, \reg\()_R, #8 @ RRRrrRRR 00000000
- vshll.u8 TMP_Q0, \reg\()_G, #8 @ GGGgggGG 00000000
- vshll.u8 TMP_Q1, \reg\()_B, #8 @ BBBbbBBB 00000000
- vsri.16 \reg\()_565, TMP_Q0, #5 @ RRRrrGGG gggGG000
- vsri.16 \reg\()_565, TMP_Q1, #11 @ RRRrrGGG gggBBBbb
- .else
- vshr.u8 TMP_Q0, \reg\()_565, #3 @ 000RRRrr 000gggBB
- vshrn.i16 \reg\()_G, \reg\()_565, #5 @ rrGGGggg
- vshrn.i16 \reg\()_R, TMP_Q0, #5 @ RRRrr000
- vshl.i8 \reg\()_G, \reg\()_G, #2 @ GGGggg00
- vshl.i16 TMP_Q1, \reg\()_565, #3 @ rrGGGggg BBBbb000
- vsri.8 \reg\()_R, \reg\()_R, #5 @ RRRrrRRR
- vmovn.i16 \reg\()_B, TMP_Q1 @ BBBbb000
- vsri.8 \reg\()_G, \reg\()_G, #6 @ GGGgggGG
- vsri.8 \reg\()_B, \reg\()_B, #5 @ BBBbbBBB
- .endif
-.endif
-.endm
-
-.macro ldst op, bpp, len, mem, reg, cvt, wb
-.if \bpp >= 31
- .if \len == 8
- .if \cvt
- v\op\()4.8 {\reg\()_B, \reg\()_G, \reg\()_R, \reg\()_A}, [\mem\()_ADDR]\wb
- .else
- v\op\()1.32 {\reg\()_8888_L, \reg\()_8888_H}, [\mem\()_ADDR]\wb
- .endif
- .else
- .ifc \op,st
- .if \cvt
- convert \reg, \bpp, 1
- .endif
- .endif
- .if \len == 7
- v\op\()1.32 {\reg\()_8888_L}, [\mem\()_ADDR]!
- v\op\()1.32 {\reg\()_R}, [\mem\()_ADDR]!
- v\op\()1.32 {\reg\()_A[0]}, [\mem\()_ADDR]!
- .elseif \len == 6
- v\op\()1.32 {\reg\()_8888_L}, [\mem\()_ADDR]!
- v\op\()1.32 {\reg\()_R}, [\mem\()_ADDR]!
- .elseif \len == 5
- v\op\()1.32 {\reg\()_8888_L}, [\mem\()_ADDR]!
- v\op\()1.32 {\reg\()_R[0]}, [\mem\()_ADDR]!
- .elseif \len == 4
- v\op\()1.32 {\reg\()_8888_L}, [\mem\()_ADDR]\wb
- .elseif \len == 3
- v\op\()1.32 {\reg\()_B}, [\mem\()_ADDR]!
- v\op\()1.32 {\reg\()_G[0]}, [\mem\()_ADDR]!
- .elseif \len == 2
- v\op\()1.32 {\reg\()_B}, [\mem\()_ADDR]\wb
- .elseif \len == 1
- v\op\()1.32 {\reg\()_B[0]}, [\mem\()_ADDR]\wb
- .else
- .error "[32bpp]len should be 1~8"
- .endif
- .ifc \op,ld
- .if \cvt
- convert \reg, \bpp, 0
- .endif
- .endif
- .ifb \wb
- .if (\len != 4) && (\len != 2) && (\len != 1)
- sub \mem\()_ADDR, #4*\len
- .endif
- .endif
- .endif
-.elseif \bpp == 24
- .if \len == 8
- .if \cvt
- v\op\()3.8 {\reg\()_B, \reg\()_G, \reg\()_R}, [\mem\()_ADDR]\wb
- .else
- v\op\()1.8 {\reg\()_B, \reg\()_G, \reg\()_R}, [\mem\()_ADDR]\wb
- .endif
- .elseif (\len < 8) && (\len > 0)
- .if \cvt
- v\op\()3.8 {\reg\()_B[0], \reg\()_G[0], \reg\()_R[0]}, [\mem\()_ADDR]!
- .if \len > 1
- v\op\()3.8 {\reg\()_B[1], \reg\()_G[1], \reg\()_R[1]}, [\mem\()_ADDR]!
- .endif
- .if \len > 2
- v\op\()3.8 {\reg\()_B[2], \reg\()_G[2], \reg\()_R[2]}, [\mem\()_ADDR]!
- .endif
- .if \len > 3
- v\op\()3.8 {\reg\()_B[3], \reg\()_G[3], \reg\()_R[3]}, [\mem\()_ADDR]!
- .endif
- .if \len > 4
- v\op\()3.8 {\reg\()_B[4], \reg\()_G[4], \reg\()_R[4]}, [\mem\()_ADDR]!
- .endif
- .if \len > 5
- v\op\()3.8 {\reg\()_B[5], \reg\()_G[5], \reg\()_R[5]}, [\mem\()_ADDR]!
- .endif
- .if \len > 6
- v\op\()3.8 {\reg\()_B[6], \reg\()_G[6], \reg\()_R[6]}, [\mem\()_ADDR]!
- .endif
- .ifb \wb
- sub \mem\()_ADDR, #3*\len
- .endif
- .else
- .if \len == 7
- v\op\()1.32 {\reg\()_8888_L}, [\mem\()_ADDR]!
- v\op\()1.32 {\reg\()_R[0]}, [\mem\()_ADDR]!
- v\op\()1.8 {\reg\()_R[4]}, [\mem\()_ADDR]!
- .elseif \len == 6
- v\op\()1.32 {\reg\()_8888_L}, [\mem\()_ADDR]!
- v\op\()1.16 {\reg\()_R[0]}, [\mem\()_ADDR]!
- .elseif \len == 5
- v\op\()1.32 {\reg\()_B}, [\mem\()_ADDR]!
- v\op\()1.32 {\reg\()_G[0]}, [\mem\()_ADDR]!
- v\op\()1.16 {\reg\()_G[2]}, [\mem\()_ADDR]!
- v\op\()1.8 {\reg\()_G[6]}, [\mem\()_ADDR]!
- .elseif \len == 4
- v\op\()1.32 {\reg\()_B}, [\mem\()_ADDR]!
- v\op\()1.32 {\reg\()_G[0]}, [\mem\()_ADDR]!
- .elseif \len == 3
- v\op\()1.32 {\reg\()_B}, [\mem\()_ADDR]!
- v\op\()1.8 {\reg\()_G[0]}, [\mem\()_ADDR]!
- .elseif \len == 2
- v\op\()1.32 {\reg\()_B[0]}, [\mem\()_ADDR]!
- v\op\()1.16 {\reg\()_B[2]}, [\mem\()_ADDR]!
- .elseif \len == 1
- v\op\()1.16 {\reg\()_B[0]}, [\mem\()_ADDR]!
- v\op\()1.8 {\reg\()_B[2]}, [\mem\()_ADDR]!
- .endif
- .ifb \wb
- sub \mem\()_ADDR, #3*\len
- .endif
- .endif
- .else
- .error "[24bpp]len should be 1~8"
- .endif
-.elseif \bpp == 16
- .ifc \op,st
- .if \cvt
- convert \reg, \bpp, 1
- .endif
- .endif
- .if \len == 8
- v\op\()1.16 {\reg\()_565}, [\mem\()_ADDR]\wb
- .elseif \len == 7
- v\op\()1.16 {\reg\()_565_L}, [\mem\()_ADDR]!
- v\op\()1.32 {\reg\()_565_H[0]}, [\mem\()_ADDR]!
- v\op\()1.16 {\reg\()_565_H[2]}, [\mem\()_ADDR]!
- .ifb \wb
- sub \mem\()_ADDR, #14
- .endif
- .elseif \len == 6
- v\op\()1.16 {\reg\()_565_L}, [\mem\()_ADDR]!
- v\op\()1.32 {\reg\()_565_H[0]}, [\mem\()_ADDR]!
- .ifb \wb
- sub \mem\()_ADDR, #12
- .endif
- .elseif \len == 5
- v\op\()1.16 {\reg\()_565_L}, [\mem\()_ADDR]!
- v\op\()1.16 {\reg\()_565_H[0]}, [\mem\()_ADDR]!
- .ifb \wb
- sub \mem\()_ADDR, #10
- .endif
- .elseif \len == 4
- v\op\()1.16 {\reg\()_565_L}, [\mem\()_ADDR]\wb
- .elseif \len == 3
- v\op\()1.32 {\reg\()_565_L[0]}, [\mem\()_ADDR]!
- v\op\()1.16 {\reg\()_565_L[2]}, [\mem\()_ADDR]!
- .ifb \wb
- sub \mem\()_ADDR, #6
- .endif
- .elseif \len == 2
- v\op\()1.32 {\reg\()_565_L[0]}, [\mem\()_ADDR]\wb
- .elseif \len == 1
- v\op\()1.16 {\reg\()_565_L[0]}, [\mem\()_ADDR]\wb
- .else
- .error "[16bpp]len should be 1~8"
- .endif
- .ifc \op,ld
- .if \cvt
- convert \reg, \bpp, 0
- .endif
- .endif
-.elseif \bpp == 8
- .if \len == 8
- v\op\()1.8 {\reg\()_A}, [\mem\()_ADDR]\wb
- .elseif \len == 7
- v\op\()1.32 {\reg\()_A[0]}, [\mem\()_ADDR]!
- v\op\()1.16 {\reg\()_A[2]}, [\mem\()_ADDR]!
- v\op\()1.8 {\reg\()_A[6]}, [\mem\()_ADDR]!
- .ifb \wb
- sub \mem\()_ADDR, #7
- .endif
- .elseif \len == 6
- v\op\()1.32 {\reg\()_A[0]}, [\mem\()_ADDR]!
- v\op\()1.16 {\reg\()_A[2]}, [\mem\()_ADDR]!
- .ifb \wb
- sub \mem\()_ADDR, #6
- .endif
- .elseif \len == 5
- v\op\()1.32 {\reg\()_A[0]}, [\mem\()_ADDR]!
- v\op\()1.8 {\reg\()_A[4]}, [\mem\()_ADDR]!
- .ifb \wb
- sub \mem\()_ADDR, #5
- .endif
- .elseif \len == 4
- v\op\()1.32 {\reg\()_A[0]}, [\mem\()_ADDR]\wb
- .elseif \len == 3
- v\op\()1.16 {\reg\()_A[0]}, [\mem\()_ADDR]!
- v\op\()1.8 {\reg\()_A[2]}, [\mem\()_ADDR]!
- .ifb \wb
- sub \mem\()_ADDR, #3
- .endif
- .elseif \len == 2
- v\op\()1.16 {\reg\()_A[0]}, [\mem\()_ADDR]\wb
- .elseif \len == 1
- v\op\()1.8 {\reg\()_A[0]}, [\mem\()_ADDR]\wb
- .else
- .error "[8bpp]len should be 1~8"
- .endif
-.elseif \bpp == 0
- .ifb \wb
- .if \len == 8
- v\op\()3.8 {\reg\()_B[], \reg\()_G[], \reg\()_R[]}, [\mem\()_ADDR]
- .else
- .error "[color]len should be 8"
- .endif
- .endif
-.endif
-.ifc \op,ld
- .if \cvt && (\bpp > 8) && (\bpp < 32)
- vmov.u8 \reg\()_A, #0xFF
- .endif
-.endif
-.endm
-
-.macro premult alpha
- vmull.u8 PREMULT_B, S_B, \alpha
- vmull.u8 PREMULT_G, S_G, \alpha
- vmull.u8 PREMULT_R, S_R, \alpha
-.endm
-
-.macro init src_bpp, dst_bpp, mask, opa
- ldr DST_ADDR, [r0, #4]
- ldr DST_W, [r0, #8]
- ldr DST_H, [r0, #12]
- ldr DST_STRIDE, [r0, #16]
- ldr SRC_ADDR, [r0, #20]
-.if \src_bpp > 0
- ldr SRC_STRIDE, [r0, #24]
-.endif
-.if \mask
- ldr MASK_ADDR, [r0, #28]
- ldr MASK_STRIDE, [r0, #32]
- sub MASK_STRIDE, MASK_STRIDE, DST_W
-.endif
-.if \opa
- vld1.8 {OPA[]}, [r0]
-.else
- vmov.u8 OPA, #0xFF
-.endif
-
- vmvn D_A, OPA
-.if \dst_bpp == 16
- sub DST_STRIDE, DST_STRIDE, DST_W, lsl #1
-.elseif \dst_bpp == 24
- sub DST_STRIDE, DST_STRIDE, DST_W
- sub DST_STRIDE, DST_STRIDE, DST_W, lsl #1
-.elseif \dst_bpp >= 31
- sub DST_STRIDE, DST_STRIDE, DST_W, lsl #2
-.endif
-.if \src_bpp == 0
- .if \mask || \opa
- ldst ld, \src_bpp, 8, SRC, S, 1
- vmov.u8 S_A, #0xFF
- premult OPA
- .else
- ldst ld, \src_bpp, 8, SRC, D, 1
- vmov.u8 D_A, #0xFF
- convert D, \dst_bpp, 1
- .endif
-.else
-.if \src_bpp == 16
- sub SRC_STRIDE, SRC_STRIDE, DST_W, lsl #1
-.elseif \src_bpp == 24
- sub SRC_STRIDE, SRC_STRIDE, DST_W
- sub SRC_STRIDE, SRC_STRIDE, DST_W, lsl #1
-.elseif \src_bpp >= 31
- sub SRC_STRIDE, SRC_STRIDE, DST_W, lsl #2
-.endif
-.endif
- mvn FG_MASK, #0
- mvn BG_MASK, #0
-.endm
-
-@ input: M_A = 255 - fg.alpha
-.macro calc_alpha len
- vmov.u8 TMP_D0, #0xFD
- vmvn D_A, D_A
- vcge.u8 TMP_D1, S_A, TMP_D0 @ if (fg.alpha >= LV_OPA_MAX
- vcge.u8 TMP_D2, D_A, TMP_D0 @ || bg.alpha <= LV_OPA_MIN)
- vorr TMP_D2, TMP_D1
- vcge.u8 TMP_D3, M_A, TMP_D0 @ elseif (fg.alpha <= LV_OPA_MIN)
- vmvn TMP_Q1, TMP_Q1
- vshrn.i16 TMP_D0, TMP_Q1, #4
- vmov FG_MASK, BG_MASK, TMP_D0
- cbz FG_MASK, 99f @ return fg;
- vmull.u8 TMP_Q0, M_A, D_A @ D_A = 255 - LV_OPA_MIX2(255 - fg.alpha, 255 - bg.alpha)
- vqrshrn.u16 M_A, TMP_Q0, #8
- vbif M_A, D_A, TMP_D3 @ insert original D_A when fg.alpha <= LV_OPA_MIN
- vmvn D_A, M_A
- cbz BG_MASK, 99f @ return bg;
- vmov.u8 TMP_D2, #0xFF
- vmovl.u8 TMP_Q0, D_A
- .if \len > 4
- vmovl.u16 S_565, TMP_D1
- .endif
- vmovl.u16 TMP_Q0, TMP_D0
- vmull.u8 TMP_Q1, S_A, TMP_D2
- vcvt.f32.u32 TMP_Q0, TMP_Q0
- .if \len > 4
- vmovl.u16 D_565, TMP_D3
- vcvt.f32.u32 S_565, S_565
- .endif
- vmovl.u16 TMP_Q1, TMP_D2
- vrecpe.f32 TMP_Q0, TMP_Q0
- vcvt.f32.u32 TMP_Q1, TMP_Q1
- .if \len > 4
- vcvt.f32.u32 D_565, D_565
- vrecpe.f32 S_565, S_565
- .endif
- vmul.f32 TMP_Q0, TMP_Q0, TMP_Q1
- .if \len > 4
- vmul.f32 S_565, S_565, D_565
- .endif
- vcvt.u32.f32 TMP_Q0, TMP_Q0
- .if \len > 4
- vcvt.u32.f32 S_565, S_565
- .endif
- vmovn.u32 TMP_D0, TMP_Q0
- .if \len > 4
- vmovn.u32 TMP_D1, S_565
- .endif
- vmovn.u16 TMP_D0, TMP_Q0
- premult TMP_D0
- vmvn M_A, TMP_D0
-99:
-.endm
-
-.macro blend mode, dst_bpp
-.if \dst_bpp == 32
- vmov TMP_D0, FG_MASK, BG_MASK
- vmovl.s8 TMP_Q0, TMP_D0
- vsli.8 TMP_Q0, TMP_Q0, #4
- cbz FG_MASK, 98f
-.endif
-.ifc \mode,normal
-.if \dst_bpp == 32
- cbz BG_MASK, 97f
- mvns BG_MASK, BG_MASK
- beq 96f
- vmov S_565_L, D_B
- vmov S_565_H, D_G
- vmov D_565_L, D_R
-.endif
-96:
- vmlal.u8 PREMULT_B, D_B, M_A
- vmlal.u8 PREMULT_G, D_G, M_A
- vmlal.u8 PREMULT_R, D_R, M_A
- vqrshrn.u16 D_B, PREMULT_B, #8
- vqrshrn.u16 D_G, PREMULT_G, #8
- vqrshrn.u16 D_R, PREMULT_R, #8
-.if \dst_bpp == 32
- beq 97f
- vbif D_B, S_565_L, TMP_D1
- vbif D_G, S_565_H, TMP_D1
- vbif D_R, D_565_L, TMP_D1
-97:
- mvns FG_MASK, FG_MASK
- beq 99f
-.endif
-.else
- .error "blend mode is unsupported"
-.endif
-.if \dst_bpp == 32
-98:
- vbif D_B, S_B, TMP_D0
- vbif D_G, S_G, TMP_D0
- vbif D_R, S_R, TMP_D0
- vbif D_A, S_A, TMP_D0
-99:
-.endif
-.endm
-
-.macro process len, src_bpp, dst_bpp, mask, opa, mode
-.if (\src_bpp < 32) && (\mask == 0) && (\opa == 0)
-@ no blend
- .if \src_bpp == 0 || \src_bpp == \dst_bpp
- ldst ld, \src_bpp, \len, SRC, D, 0, !
- ldst st, \dst_bpp, \len, DST, D, 0, !
- .else
- ldst ld, \src_bpp, \len, SRC, D, 1, !
- ldst st, \dst_bpp, \len, DST, D, 1, !
- .endif
-.elseif \src_bpp < 32
-@ no src_a
- .if \src_bpp > 0
- ldst ld, \src_bpp, \len, SRC, S, 1, !
- .endif
- ldst ld, \dst_bpp, \len, DST, D, 1
- .if \mask
- ldst ld, 8, \len, MASK, S, 1, !
- .if \opa
- vmull.u8 TMP_Q0, S_A, OPA
- vqrshrn.u16 S_A, TMP_Q0, #8
- .endif
- vmvn M_A, S_A
- .if \dst_bpp < 32
- premult S_A
- .else
- calc_alpha \len
- .endif
- .else
- vmvn M_A, OPA
- .if \dst_bpp < 32
- premult OPA
- .else
- vmov S_A, OPA
- calc_alpha \len
- .endif
- .endif
- blend \mode, \dst_bpp
- ldst st, \dst_bpp, \len, DST, D, 1, !
-.else
-@ src_a (+\mask) (+\opa)
- ldst ld, \src_bpp, \len, SRC, S, 1, !
- ldst ld, \dst_bpp, \len, DST, D, 1
- .if \mask == 0
- .if \opa
- vmull.u8 TMP_Q0, S_A, OPA
- vqrshrn.u16 S_A, TMP_Q0, #8
- .endif
- .else
- ldst ld, 8, \len, MASK, M, 1, !
- vmull.u8 TMP_Q0, S_A, M_A
- vqrshrn.u16 S_A, TMP_Q0, #8
- .if \opa
- vmull.u8 TMP_Q0, S_A, OPA
- vqrshrn.u16 S_A, TMP_Q0, #8
- .endif
- .endif
- vmvn M_A, S_A
- .if \dst_bpp < 32
- premult S_A
- .else
- calc_alpha \len
- .endif
- blend \mode, \dst_bpp
- ldst st, \dst_bpp, \len, DST, D, 1, !
-.endif
-.endm
-
-.macro tail src_bpp, dst_bpp, mask, opa, mode
- tst DST_W, #4
- beq 3f
- tst DST_W, #2
- beq 5f
- tst DST_W, #1
- beq 6f
- process 7, \src_bpp, \dst_bpp, \mask, \opa, \mode
- b 0f
-6:
- process 6, \src_bpp, \dst_bpp, \mask, \opa, \mode
- b 0f
-5:
- tst DST_W, #1
- beq 4f
- process 5, \src_bpp, \dst_bpp, \mask, \opa, \mode
- b 0f
-4:
- process 4, \src_bpp, \dst_bpp, \mask, \opa, \mode
- b 0f
-3:
- tst DST_W, #2
- beq 1f
- tst DST_W, #1
- beq 2f
- process 3, \src_bpp, \dst_bpp, \mask, \opa, \mode
- b 0f
-2:
- process 2, \src_bpp, \dst_bpp, \mask, \opa, \mode
- b 0f
-1:
- process 1, \src_bpp, \dst_bpp, \mask, \opa, \mode
-0:
-.endm
-
-.macro next src_bpp, mask
- add DST_ADDR, DST_ADDR, DST_STRIDE
-.if \src_bpp
- add SRC_ADDR, SRC_ADDR, SRC_STRIDE
-.endif
-.if \mask
- add MASK_ADDR, MASK_ADDR, MASK_STRIDE
-.endif
-.endm
-
-.macro enter
- push {r4-r11, lr}
-.endm
-
-.macro exit
- pop {r4-r11, pc}
-.endm
-
-.macro preload mem, bpp
-.if \bpp >= 31
- pld [\mem\()_ADDR, DST_W, lsl #2]
-.elseif \bpp == 24
- add W, DST_W, DST_W, lsl #1
- pld [\mem\()_ADDR, W]
-.elseif \bpp == 16
- pld [\mem\()_ADDR, DST_W, lsl #1]
-.elseif \bpp == 8
- pld [\mem\()_ADDR, DST_W]
-.endif
-.endm
-
-.macro blender src_bpp, dst_bpp, mask, opa, mode
- enter
- init \src_bpp, \dst_bpp, \mask, \opa
- movs H, DST_H
- beq 0f
- preload SRC, \src_bpp
-.if \mask || \opa || (\src_bpp == 32)
- preload DST, \dst_bpp
-.endif
- subs W, DST_W, #8
- blt 7f
-9:
- process 8, \src_bpp, \dst_bpp, \mask, \opa, \mode
- subs W, W, #8
- bge 9b
- tst DST_W, #7
- beq 8f
- tail \src_bpp, \dst_bpp, \mask, \opa, \mode
-8:
- next \src_bpp, \mask
- preload SRC, \src_bpp
-.if \mask || \opa || (\src_bpp == 32)
- preload DST, \dst_bpp
-.endif
- sub W, DST_W, #8
- subs H, H, #1
- bgt 9b
- exit
-7:
- tail \src_bpp, \dst_bpp, \mask, \opa, \mode
- next \src_bpp, \mask
- subs H, H, #1
- bgt 7b
- exit
-.endm
-
-.macro export name, src_bpp, dst_bpp, mask, opa, mode
-.thumb_func
-.func \name
-.global \name
-.hidden \name
-\name\():
- blender \src_bpp, \dst_bpp, \mask, \opa, \mode
-.endfunc
-.endm
-
-.macro export_set src, dst, src_bpp, dst_bpp, mode
-.ifc \src,color
- export _lv_\src\()_blend_to_\dst\()_neon, \src_bpp, \dst_bpp, 0, 0, \mode
- export _lv_\src\()_blend_to_\dst\()_with_opa_neon, \src_bpp, \dst_bpp, 0, 1, \mode
- export _lv_\src\()_blend_to_\dst\()_with_mask_neon, \src_bpp, \dst_bpp, 1, 0, \mode
- export _lv_\src\()_blend_to_\dst\()_mix_mask_opa_neon, \src_bpp, \dst_bpp, 1, 1, \mode
-.else
- export _lv_\src\()_blend_\mode\()_to_\dst\()_neon, \src_bpp, \dst_bpp, 0, 0, \mode
- export _lv_\src\()_blend_\mode\()_to_\dst\()_with_opa_neon, \src_bpp, \dst_bpp, 0, 1, \mode
- export _lv_\src\()_blend_\mode\()_to_\dst\()_with_mask_neon, \src_bpp, \dst_bpp, 1, 0, \mode
- export _lv_\src\()_blend_\mode\()_to_\dst\()_mix_mask_opa_neon, \src_bpp, \dst_bpp, 1, 1, \mode
-.endif
-.endm
-
-export_set color, rgb565, 0, 16, normal
-export_set rgb565, rgb565, 16, 16, normal
-export_set rgb888, rgb565, 24, 16, normal
-export_set xrgb8888, rgb565, 31, 16, normal
-export_set argb8888, rgb565, 32, 16, normal
-export_set color, rgb888, 0, 24, normal
-export_set rgb565, rgb888, 16, 24, normal
-export_set rgb888, rgb888, 24, 24, normal
-export_set xrgb8888, rgb888, 31, 24, normal
-export_set argb8888, rgb888, 32, 24, normal
-export_set color, xrgb8888, 0, 31, normal
-export_set rgb565, xrgb8888, 16, 31, normal
-export_set rgb888, xrgb8888, 24, 31, normal
-export_set xrgb8888, xrgb8888, 31, 31, normal
-export_set argb8888, xrgb8888, 32, 31, normal
-export_set color, argb8888, 0, 32, normal
-export_set rgb565, argb8888, 16, 32, normal
-export_set rgb888, argb8888, 24, 32, normal
-export_set xrgb8888, argb8888, 31, 32, normal
-export_set argb8888, argb8888, 32, 32, normal
-
-#endif /*LV_USE_DRAW_SW_ASM == LV_DRAW_SW_ASM_NEON*/
-
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/neon/lv_blend_neon.h b/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/neon/lv_blend_neon.h
index fd52647bf..66e1e217a 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/neon/lv_blend_neon.h
+++ b/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/neon/lv_blend_neon.h
@@ -16,1284 +16,33 @@ extern "C" {
#include "../../../../lv_conf_internal.h"
+#if LV_USE_DRAW_SW_ASM == LV_DRAW_SW_ASM_NEON
+
#ifdef LV_DRAW_SW_NEON_CUSTOM_INCLUDE
#include LV_DRAW_SW_NEON_CUSTOM_INCLUDE
#endif
+#include "lv_draw_sw_blend_neon_to_rgb565.h"
+#include "lv_draw_sw_blend_neon_to_rgb888.h"
+
/*********************
* DEFINES
*********************/
-#if !defined(__ASSEMBLY__)
-
-#if __GNUC__ >= 4
-#define LVGL_HIDDEN __attribute__((visibility("hidden")))
-#else
-#define LVGL_HIDDEN
-#endif
-
-#ifndef LV_DRAW_SW_COLOR_BLEND_TO_RGB565
-#define LV_DRAW_SW_COLOR_BLEND_TO_RGB565(dsc) \
- lv_color_blend_to_rgb565_neon(dsc)
-#endif
-
-#ifndef LV_DRAW_SW_COLOR_BLEND_TO_RGB565_WITH_OPA
-#define LV_DRAW_SW_COLOR_BLEND_TO_RGB565_WITH_OPA(dsc) \
- lv_color_blend_to_rgb565_with_opa_neon(dsc)
-#endif
-
-#ifndef LV_DRAW_SW_COLOR_BLEND_TO_RGB565_WITH_MASK
-#define LV_DRAW_SW_COLOR_BLEND_TO_RGB565_WITH_MASK(dsc) \
- lv_color_blend_to_rgb565_with_mask_neon(dsc)
-#endif
-
-#ifndef LV_DRAW_SW_COLOR_BLEND_TO_RGB565_MIX_MASK_OPA
-#define LV_DRAW_SW_COLOR_BLEND_TO_RGB565_MIX_MASK_OPA(dsc) \
- lv_color_blend_to_rgb565_mix_mask_opa_neon(dsc)
-#endif
-
-#ifndef LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_RGB565
-#define LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_RGB565(dsc) \
- lv_rgb565_blend_normal_to_rgb565_neon(dsc)
-#endif
-
-#ifndef LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_RGB565_WITH_OPA
-#define LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_RGB565_WITH_OPA(dsc) \
- lv_rgb565_blend_normal_to_rgb565_with_opa_neon(dsc)
-#endif
-
-#ifndef LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_RGB565_WITH_MASK
-#define LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_RGB565_WITH_MASK(dsc) \
- lv_rgb565_blend_normal_to_rgb565_with_mask_neon(dsc)
-#endif
-
-#ifndef LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_RGB565_MIX_MASK_OPA
-#define LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_RGB565_MIX_MASK_OPA(dsc) \
- lv_rgb565_blend_normal_to_rgb565_mix_mask_opa_neon(dsc)
-#endif
-
-#ifndef LV_DRAW_SW_RGB888_BLEND_NORMAL_TO_RGB565
-#define LV_DRAW_SW_RGB888_BLEND_NORMAL_TO_RGB565(dsc, src_px_size) \
- lv_rgb888_blend_normal_to_rgb565_neon(dsc, src_px_size)
-#endif
-
-#ifndef LV_DRAW_SW_RGB888_BLEND_NORMAL_TO_RGB565_WITH_OPA
-#define LV_DRAW_SW_RGB888_BLEND_NORMAL_TO_RGB565_WITH_OPA(dsc, src_px_size) \
- lv_rgb888_blend_normal_to_rgb565_with_opa_neon(dsc, src_px_size)
-#endif
-
-#ifndef LV_DRAW_SW_RGB888_BLEND_NORMAL_TO_RGB565_WITH_MASK
-#define LV_DRAW_SW_RGB888_BLEND_NORMAL_TO_RGB565_WITH_MASK(dsc, src_px_size) \
- lv_rgb888_blend_normal_to_rgb565_with_mask_neon(dsc, src_px_size)
-#endif
-
-#ifndef LV_DRAW_SW_RGB888_BLEND_NORMAL_TO_RGB565_MIX_MASK_OPA
-#define LV_DRAW_SW_RGB888_BLEND_NORMAL_TO_RGB565_MIX_MASK_OPA(dsc, src_px_size) \
- lv_rgb888_blend_normal_to_rgb565_mix_mask_opa_neon(dsc, src_px_size)
-#endif
-
-#ifndef LV_DRAW_SW_ARGB8888_BLEND_NORMAL_TO_RGB565
-#define LV_DRAW_SW_ARGB8888_BLEND_NORMAL_TO_RGB565(dsc) \
- lv_argb8888_blend_normal_to_rgb565_neon(dsc)
-#endif
-
-#ifndef LV_DRAW_SW_ARGB8888_BLEND_NORMAL_TO_RGB565_WITH_OPA
-#define LV_DRAW_SW_ARGB8888_BLEND_NORMAL_TO_RGB565_WITH_OPA(dsc) \
- lv_argb8888_blend_normal_to_rgb565_with_opa_neon(dsc)
-#endif
-
-#ifndef LV_DRAW_SW_ARGB8888_BLEND_NORMAL_TO_RGB565_WITH_MASK
-#define LV_DRAW_SW_ARGB8888_BLEND_NORMAL_TO_RGB565_WITH_MASK(dsc) \
- lv_argb8888_blend_normal_to_rgb565_with_mask_neon(dsc)
-#endif
-
-#ifndef LV_DRAW_SW_ARGB8888_BLEND_NORMAL_TO_RGB565_MIX_MASK_OPA
-#define LV_DRAW_SW_ARGB8888_BLEND_NORMAL_TO_RGB565_MIX_MASK_OPA(dsc) \
- lv_argb8888_blend_normal_to_rgb565_mix_mask_opa_neon(dsc)
-#endif
-
-#ifndef LV_DRAW_SW_COLOR_BLEND_TO_RGB888
-#define LV_DRAW_SW_COLOR_BLEND_TO_RGB888(dsc, dst_px_size) \
- lv_color_blend_to_rgb888_neon(dsc, dst_px_size)
-#endif
-
-#ifndef LV_DRAW_SW_COLOR_BLEND_TO_RGB888_WITH_OPA
-#define LV_DRAW_SW_COLOR_BLEND_TO_RGB888_WITH_OPA(dsc, dst_px_size) \
- lv_color_blend_to_rgb888_with_opa_neon(dsc, dst_px_size)
-#endif
-
-#ifndef LV_DRAW_SW_COLOR_BLEND_TO_RGB888_WITH_MASK
-#define LV_DRAW_SW_COLOR_BLEND_TO_RGB888_WITH_MASK(dsc, dst_px_size) \
- lv_color_blend_to_rgb888_with_mask_neon(dsc, dst_px_size)
-#endif
-
-#ifndef LV_DRAW_SW_COLOR_BLEND_TO_RGB888_MIX_MASK_OPA
-#define LV_DRAW_SW_COLOR_BLEND_TO_RGB888_MIX_MASK_OPA(dsc, dst_px_size) \
- lv_color_blend_to_rgb888_mix_mask_opa_neon(dsc, dst_px_size)
-#endif
-
-#ifndef LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_RGB888
-#define LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_RGB888(dsc, dst_px_size) \
- lv_rgb565_blend_normal_to_rgb888_neon(dsc, dst_px_size)
-#endif
-
-#ifndef LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_RGB888_WITH_OPA
-#define LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_RGB888_WITH_OPA(dsc, dst_px_size) \
- lv_rgb565_blend_normal_to_rgb888_with_opa_neon(dsc, dst_px_size)
-#endif
-
-#ifndef LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_RGB888_WITH_MASK
-#define LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_RGB888_WITH_MASK(dsc, dst_px_size) \
- lv_rgb565_blend_normal_to_rgb888_with_mask_neon(dsc, dst_px_size)
-#endif
-
-#ifndef LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_RGB888_MIX_MASK_OPA
-#define LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_RGB888_MIX_MASK_OPA(dsc, dst_px_size) \
- lv_rgb565_blend_normal_to_rgb888_mix_mask_opa_neon(dsc, dst_px_size)
-#endif
-
-#ifndef LV_DRAW_SW_RGB888_BLEND_NORMAL_TO_RGB888
-#define LV_DRAW_SW_RGB888_BLEND_NORMAL_TO_RGB888(dsc, dst_px_size, src_px_size) \
- lv_rgb888_blend_normal_to_rgb888_neon(dsc, dst_px_size, src_px_size)
-#endif
-
-#ifndef LV_DRAW_SW_RGB888_BLEND_NORMAL_TO_RGB888_WITH_OPA
-#define LV_DRAW_SW_RGB888_BLEND_NORMAL_TO_RGB888_WITH_OPA(dsc, dst_px_size, src_px_size) \
- lv_rgb888_blend_normal_to_rgb888_with_opa_neon(dsc, dst_px_size, src_px_size)
-#endif
-
-#ifndef LV_DRAW_SW_RGB888_BLEND_NORMAL_TO_RGB888_WITH_MASK
-#define LV_DRAW_SW_RGB888_BLEND_NORMAL_TO_RGB888_WITH_MASK(dsc, dst_px_size, src_px_size) \
- lv_rgb888_blend_normal_to_rgb888_with_mask_neon(dsc, dst_px_size, src_px_size)
-#endif
-
-#ifndef LV_DRAW_SW_RGB888_BLEND_NORMAL_TO_RGB888_MIX_MASK_OPA
-#define LV_DRAW_SW_RGB888_BLEND_NORMAL_TO_RGB888_MIX_MASK_OPA(dsc, dst_px_size, src_px_size) \
- lv_rgb888_blend_normal_to_rgb888_mix_mask_opa_neon(dsc, dst_px_size, src_px_size)
-#endif
-
-#ifndef LV_DRAW_SW_ARGB8888_BLEND_NORMAL_TO_RGB888
-#define LV_DRAW_SW_ARGB8888_BLEND_NORMAL_TO_RGB888(dsc, dst_px_size) \
- lv_argb8888_blend_normal_to_rgb888_neon(dsc, dst_px_size)
-#endif
-
-#ifndef LV_DRAW_SW_ARGB8888_BLEND_NORMAL_TO_RGB888_WITH_OPA
-#define LV_DRAW_SW_ARGB8888_BLEND_NORMAL_TO_RGB888_WITH_OPA(dsc, dst_px_size) \
- lv_argb8888_blend_normal_to_rgb888_with_opa_neon(dsc, dst_px_size)
-#endif
-
-#ifndef LV_DRAW_SW_ARGB8888_BLEND_NORMAL_TO_RGB888_WITH_MASK
-#define LV_DRAW_SW_ARGB8888_BLEND_NORMAL_TO_RGB888_WITH_MASK(dsc, dst_px_size) \
- lv_argb8888_blend_normal_to_rgb888_with_mask_neon(dsc, dst_px_size)
-#endif
-
-#ifndef LV_DRAW_SW_ARGB8888_BLEND_NORMAL_TO_RGB888_MIX_MASK_OPA
-#define LV_DRAW_SW_ARGB8888_BLEND_NORMAL_TO_RGB888_MIX_MASK_OPA(dsc, dst_px_size) \
- lv_argb8888_blend_normal_to_rgb888_mix_mask_opa_neon(dsc, dst_px_size)
-#endif
-
-#ifndef LV_DRAW_SW_COLOR_BLEND_TO_ARGB8888
-#define LV_DRAW_SW_COLOR_BLEND_TO_ARGB8888(dsc) \
- lv_color_blend_to_argb8888_neon(dsc)
-#endif
-
-#ifndef LV_DRAW_SW_COLOR_BLEND_TO_ARGB8888_WITH_OPA
-#define LV_DRAW_SW_COLOR_BLEND_TO_ARGB8888_WITH_OPA(dsc) \
- lv_color_blend_to_argb8888_with_opa_neon(dsc)
-#endif
-
-#ifndef LV_DRAW_SW_COLOR_BLEND_TO_ARGB8888_WITH_MASK
-#define LV_DRAW_SW_COLOR_BLEND_TO_ARGB8888_WITH_MASK(dsc) \
- lv_color_blend_to_argb8888_with_mask_neon(dsc)
-#endif
-
-#ifndef LV_DRAW_SW_COLOR_BLEND_TO_ARGB8888_MIX_MASK_OPA
-#define LV_DRAW_SW_COLOR_BLEND_TO_ARGB8888_MIX_MASK_OPA(dsc) \
- lv_color_blend_to_argb8888_mix_mask_opa_neon(dsc)
-#endif
-
-#ifndef LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_ARGB8888
-#define LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_ARGB8888(dsc) \
- lv_rgb565_blend_normal_to_argb8888_neon(dsc)
-#endif
-
-#ifndef LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_ARGB8888_WITH_OPA
-#define LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_ARGB8888_WITH_OPA(dsc) \
- lv_rgb565_blend_normal_to_argb8888_with_opa_neon(dsc)
-#endif
-
-#ifndef LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_ARGB8888_WITH_MASK
-#define LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_ARGB8888_WITH_MASK(dsc) \
- lv_rgb565_blend_normal_to_argb8888_with_mask_neon(dsc)
-#endif
-
-#ifndef LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_ARGB8888_MIX_MASK_OPA
-#define LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_ARGB8888_MIX_MASK_OPA(dsc) \
- lv_rgb565_blend_normal_to_argb8888_mix_mask_opa_neon(dsc)
-#endif
-
-#ifndef LV_DRAW_SW_RGB888_BLEND_NORMAL_TO_ARGB8888
-#define LV_DRAW_SW_RGB888_BLEND_NORMAL_TO_ARGB8888(dsc, src_px_size) \
- lv_rgb888_blend_normal_to_argb8888_neon(dsc, src_px_size)
-#endif
-
-#ifndef LV_DRAW_SW_RGB888_BLEND_NORMAL_TO_ARGB8888_WITH_OPA
-#define LV_DRAW_SW_RGB888_BLEND_NORMAL_TO_ARGB8888_WITH_OPA(dsc, src_px_size) \
- lv_rgb888_blend_normal_to_argb8888_with_opa_neon(dsc, src_px_size)
-#endif
-
-#ifndef LV_DRAW_SW_RGB888_BLEND_NORMAL_TO_ARGB8888_WITH_MASK
-#define LV_DRAW_SW_RGB888_BLEND_NORMAL_TO_ARGB8888_WITH_MASK(dsc, src_px_size) \
- lv_rgb888_blend_normal_to_argb8888_with_mask_neon(dsc, src_px_size)
-#endif
-
-#ifndef LV_DRAW_SW_RGB888_BLEND_NORMAL_TO_ARGB8888_MIX_MASK_OPA
-#define LV_DRAW_SW_RGB888_BLEND_NORMAL_TO_ARGB8888_MIX_MASK_OPA(dsc, src_px_size) \
- lv_rgb888_blend_normal_to_argb8888_mix_mask_opa_neon(dsc, src_px_size)
-#endif
-
-#ifndef LV_DRAW_SW_ARGB8888_BLEND_NORMAL_TO_ARGB8888
-#define LV_DRAW_SW_ARGB8888_BLEND_NORMAL_TO_ARGB8888(dsc) \
- lv_argb8888_blend_normal_to_argb8888_neon(dsc)
-#endif
-
-#ifndef LV_DRAW_SW_ARGB8888_BLEND_NORMAL_TO_ARGB8888_WITH_OPA
-#define LV_DRAW_SW_ARGB8888_BLEND_NORMAL_TO_ARGB8888_WITH_OPA(dsc) \
- lv_argb8888_blend_normal_to_argb8888_with_opa_neon(dsc)
-#endif
-
-#ifndef LV_DRAW_SW_ARGB8888_BLEND_NORMAL_TO_ARGB8888_WITH_MASK
-#define LV_DRAW_SW_ARGB8888_BLEND_NORMAL_TO_ARGB8888_WITH_MASK(dsc) \
- lv_argb8888_blend_normal_to_argb8888_with_mask_neon(dsc)
-#endif
-
-#ifndef LV_DRAW_SW_ARGB8888_BLEND_NORMAL_TO_ARGB8888_MIX_MASK_OPA
-#define LV_DRAW_SW_ARGB8888_BLEND_NORMAL_TO_ARGB8888_MIX_MASK_OPA(dsc) \
- lv_argb8888_blend_normal_to_argb8888_mix_mask_opa_neon(dsc)
-#endif
/**********************
* TYPEDEFS
**********************/
-typedef struct {
- uint32_t opa;
- void * dst_buf;
- uint32_t dst_w;
- uint32_t dst_h;
- uint32_t dst_stride;
- const void * src_buf;
- uint32_t src_stride;
- const lv_opa_t * mask_buf;
- uint32_t mask_stride;
-} asm_dsc_t;
/**********************
* GLOBAL PROTOTYPES
**********************/
-extern LVGL_HIDDEN void _lv_color_blend_to_rgb565_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_color_blend_to_rgb565_neon(lv_draw_sw_blend_fill_dsc_t * dsc)
-{
- asm_dsc_t asm_dsc = {
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = &dsc->color
- };
-
- _lv_color_blend_to_rgb565_neon(&asm_dsc);
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_color_blend_to_rgb565_with_opa_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_color_blend_to_rgb565_with_opa_neon(lv_draw_sw_blend_fill_dsc_t * dsc)
-{
- asm_dsc_t asm_dsc = {
- .opa = dsc->opa,
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = &dsc->color
- };
- _lv_color_blend_to_rgb565_with_opa_neon(&asm_dsc);
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_color_blend_to_rgb565_with_mask_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_color_blend_to_rgb565_with_mask_neon(lv_draw_sw_blend_fill_dsc_t * dsc)
-{
- asm_dsc_t asm_dsc = {
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = &dsc->color,
- .mask_buf = dsc->mask_buf,
- .mask_stride = dsc->mask_stride
- };
- _lv_color_blend_to_rgb565_with_mask_neon(&asm_dsc);
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_color_blend_to_rgb565_mix_mask_opa_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_color_blend_to_rgb565_mix_mask_opa_neon(lv_draw_sw_blend_fill_dsc_t * dsc)
-{
- asm_dsc_t asm_dsc = {
- .opa = dsc->opa,
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = &dsc->color,
- .mask_buf = dsc->mask_buf,
- .mask_stride = dsc->mask_stride
- };
- _lv_color_blend_to_rgb565_mix_mask_opa_neon(&asm_dsc);
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_rgb565_blend_normal_to_rgb565_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_rgb565_blend_normal_to_rgb565_neon(lv_draw_sw_blend_image_dsc_t * dsc)
-{
- asm_dsc_t asm_dsc = {
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = dsc->src_buf,
- .src_stride = dsc->src_stride
- };
- _lv_rgb565_blend_normal_to_rgb565_neon(&asm_dsc);
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_rgb565_blend_normal_to_rgb565_with_opa_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_rgb565_blend_normal_to_rgb565_with_opa_neon(lv_draw_sw_blend_image_dsc_t * dsc)
-{
- asm_dsc_t asm_dsc = {
- .opa = dsc->opa,
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = dsc->src_buf,
- .src_stride = dsc->src_stride
- };
- _lv_rgb565_blend_normal_to_rgb565_with_opa_neon(&asm_dsc);
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_rgb565_blend_normal_to_rgb565_with_mask_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_rgb565_blend_normal_to_rgb565_with_mask_neon(lv_draw_sw_blend_image_dsc_t * dsc)
-{
- asm_dsc_t asm_dsc = {
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = dsc->src_buf,
- .src_stride = dsc->src_stride,
- .mask_buf = dsc->mask_buf,
- .mask_stride = dsc->mask_stride
- };
- _lv_rgb565_blend_normal_to_rgb565_with_mask_neon(&asm_dsc);
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_rgb565_blend_normal_to_rgb565_mix_mask_opa_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_rgb565_blend_normal_to_rgb565_mix_mask_opa_neon(lv_draw_sw_blend_image_dsc_t * dsc)
-{
- asm_dsc_t asm_dsc = {
- .opa = dsc->opa,
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = dsc->src_buf,
- .src_stride = dsc->src_stride,
- .mask_buf = dsc->mask_buf,
- .mask_stride = dsc->mask_stride
- };
- _lv_rgb565_blend_normal_to_rgb565_mix_mask_opa_neon(&asm_dsc);
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_rgb888_blend_normal_to_rgb565_neon(asm_dsc_t * dsc);
-extern LVGL_HIDDEN void _lv_xrgb8888_blend_normal_to_rgb565_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_rgb888_blend_normal_to_rgb565_neon(lv_draw_sw_blend_image_dsc_t * dsc,
- uint32_t src_px_size)
-{
- asm_dsc_t asm_dsc = {
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = dsc->src_buf,
- .src_stride = dsc->src_stride
- };
- if(src_px_size == 3) {
- _lv_rgb888_blend_normal_to_rgb565_neon(&asm_dsc);
- }
- else {
- _lv_xrgb8888_blend_normal_to_rgb565_neon(&asm_dsc);
- }
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_rgb888_blend_normal_to_rgb565_with_opa_neon(asm_dsc_t * dsc);
-extern LVGL_HIDDEN void _lv_xrgb8888_blend_normal_to_rgb565_with_opa_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_rgb888_blend_normal_to_rgb565_with_opa_neon(lv_draw_sw_blend_image_dsc_t * dsc,
- uint32_t src_px_size)
-{
- asm_dsc_t asm_dsc = {
- .opa = dsc->opa,
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = dsc->src_buf,
- .src_stride = dsc->src_stride
- };
- if(src_px_size == 3) {
- _lv_rgb888_blend_normal_to_rgb565_with_opa_neon(&asm_dsc);
- }
- else {
- _lv_xrgb8888_blend_normal_to_rgb565_with_opa_neon(&asm_dsc);
- }
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_rgb888_blend_normal_to_rgb565_with_mask_neon(asm_dsc_t * dsc);
-extern LVGL_HIDDEN void _lv_xrgb8888_blend_normal_to_rgb565_with_mask_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_rgb888_blend_normal_to_rgb565_with_mask_neon(lv_draw_sw_blend_image_dsc_t * dsc,
- uint32_t src_px_size)
-{
- asm_dsc_t asm_dsc = {
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = dsc->src_buf,
- .src_stride = dsc->src_stride,
- .mask_buf = dsc->mask_buf,
- .mask_stride = dsc->mask_stride
- };
- if(src_px_size == 3) {
- _lv_rgb888_blend_normal_to_rgb565_with_mask_neon(&asm_dsc);
- }
- else {
- _lv_xrgb8888_blend_normal_to_rgb565_with_mask_neon(&asm_dsc);
- }
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_rgb888_blend_normal_to_rgb565_mix_mask_opa_neon(asm_dsc_t * dsc);
-extern LVGL_HIDDEN void _lv_xrgb8888_blend_normal_to_rgb565_mix_mask_opa_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_rgb888_blend_normal_to_rgb565_mix_mask_opa_neon(lv_draw_sw_blend_image_dsc_t * dsc,
- uint32_t src_px_size)
-{
- asm_dsc_t asm_dsc = {
- .opa = dsc->opa,
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = dsc->src_buf,
- .src_stride = dsc->src_stride,
- .mask_buf = dsc->mask_buf,
- .mask_stride = dsc->mask_stride
- };
- if(src_px_size == 3) {
- _lv_rgb888_blend_normal_to_rgb565_mix_mask_opa_neon(&asm_dsc);
- }
- else {
- _lv_xrgb8888_blend_normal_to_rgb565_mix_mask_opa_neon(&asm_dsc);
- }
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_argb8888_blend_normal_to_rgb565_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_argb8888_blend_normal_to_rgb565_neon(lv_draw_sw_blend_image_dsc_t * dsc)
-{
- asm_dsc_t asm_dsc = {
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = dsc->src_buf,
- .src_stride = dsc->src_stride
- };
- _lv_argb8888_blend_normal_to_rgb565_neon(&asm_dsc);
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_argb8888_blend_normal_to_rgb565_with_opa_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_argb8888_blend_normal_to_rgb565_with_opa_neon(lv_draw_sw_blend_image_dsc_t * dsc)
-{
- asm_dsc_t asm_dsc = {
- .opa = dsc->opa,
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = dsc->src_buf,
- .src_stride = dsc->src_stride
- };
- _lv_argb8888_blend_normal_to_rgb565_with_opa_neon(&asm_dsc);
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_argb8888_blend_normal_to_rgb565_with_mask_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_argb8888_blend_normal_to_rgb565_with_mask_neon(lv_draw_sw_blend_image_dsc_t * dsc)
-{
- asm_dsc_t asm_dsc = {
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = dsc->src_buf,
- .src_stride = dsc->src_stride,
- .mask_buf = dsc->mask_buf,
- .mask_stride = dsc->mask_stride
- };
- _lv_argb8888_blend_normal_to_rgb565_with_mask_neon(&asm_dsc);
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_argb8888_blend_normal_to_rgb565_mix_mask_opa_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_argb8888_blend_normal_to_rgb565_mix_mask_opa_neon(lv_draw_sw_blend_image_dsc_t * dsc)
-{
- asm_dsc_t asm_dsc = {
- .opa = dsc->opa,
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = dsc->src_buf,
- .src_stride = dsc->src_stride,
- .mask_buf = dsc->mask_buf,
- .mask_stride = dsc->mask_stride
- };
- _lv_argb8888_blend_normal_to_rgb565_mix_mask_opa_neon(&asm_dsc);
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_color_blend_to_rgb888_neon(asm_dsc_t * dsc);
-extern LVGL_HIDDEN void _lv_color_blend_to_xrgb8888_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_color_blend_to_rgb888_neon(lv_draw_sw_blend_fill_dsc_t * dsc, uint32_t dst_px_size)
-{
- asm_dsc_t asm_dsc = {
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = &dsc->color
- };
- if(dst_px_size == 3) {
- _lv_color_blend_to_rgb888_neon(&asm_dsc);
- }
- else {
- _lv_color_blend_to_xrgb8888_neon(&asm_dsc);
- }
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_color_blend_to_rgb888_with_opa_neon(asm_dsc_t * dsc);
-extern LVGL_HIDDEN void _lv_color_blend_to_xrgb8888_with_opa_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_color_blend_to_rgb888_with_opa_neon(lv_draw_sw_blend_fill_dsc_t * dsc,
- uint32_t dst_px_size)
-{
- asm_dsc_t asm_dsc = {
- .opa = dsc->opa,
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = &dsc->color
- };
- if(dst_px_size == 3) {
- _lv_color_blend_to_rgb888_with_opa_neon(&asm_dsc);
- }
- else {
- _lv_color_blend_to_xrgb8888_with_opa_neon(&asm_dsc);
- }
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_color_blend_to_rgb888_with_mask_neon(asm_dsc_t * dsc);
-extern LVGL_HIDDEN void _lv_color_blend_to_xrgb8888_with_mask_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_color_blend_to_rgb888_with_mask_neon(lv_draw_sw_blend_fill_dsc_t * dsc,
- uint32_t dst_px_size)
-{
- asm_dsc_t asm_dsc = {
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = &dsc->color,
- .mask_buf = dsc->mask_buf,
- .mask_stride = dsc->mask_stride
- };
- if(dst_px_size == 3) {
- _lv_color_blend_to_rgb888_with_mask_neon(&asm_dsc);
- }
- else {
- _lv_color_blend_to_xrgb8888_with_mask_neon(&asm_dsc);
- }
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_color_blend_to_rgb888_mix_mask_opa_neon(asm_dsc_t * dsc);
-extern LVGL_HIDDEN void _lv_color_blend_to_xrgb8888_mix_mask_opa_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_color_blend_to_rgb888_mix_mask_opa_neon(lv_draw_sw_blend_fill_dsc_t * dsc,
- uint32_t dst_px_size)
-{
- asm_dsc_t asm_dsc = {
- .opa = dsc->opa,
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = &dsc->color,
- .mask_buf = dsc->mask_buf,
- .mask_stride = dsc->mask_stride
- };
- if(dst_px_size == 3) {
- _lv_color_blend_to_rgb888_mix_mask_opa_neon(&asm_dsc);
- }
- else {
- _lv_color_blend_to_xrgb8888_mix_mask_opa_neon(&asm_dsc);
- }
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_rgb565_blend_normal_to_rgb888_neon(asm_dsc_t * dsc);
-extern LVGL_HIDDEN void _lv_rgb565_blend_normal_to_xrgb8888_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_rgb565_blend_normal_to_rgb888_neon(lv_draw_sw_blend_image_dsc_t * dsc,
- uint32_t dst_px_size)
-{
- asm_dsc_t asm_dsc = {
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = dsc->src_buf,
- .src_stride = dsc->src_stride
- };
- if(dst_px_size == 3) {
- _lv_rgb565_blend_normal_to_rgb888_neon(&asm_dsc);
- }
- else {
- _lv_rgb565_blend_normal_to_xrgb8888_neon(&asm_dsc);
- }
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_rgb565_blend_normal_to_rgb888_with_opa_neon(asm_dsc_t * dsc);
-extern LVGL_HIDDEN void _lv_rgb565_blend_normal_to_xrgb8888_with_opa_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_rgb565_blend_normal_to_rgb888_with_opa_neon(lv_draw_sw_blend_image_dsc_t * dsc,
- uint32_t dst_px_size)
-{
- asm_dsc_t asm_dsc = {
- .opa = dsc->opa,
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = dsc->src_buf,
- .src_stride = dsc->src_stride
- };
- if(dst_px_size == 3) {
- _lv_rgb565_blend_normal_to_rgb888_with_opa_neon(&asm_dsc);
- }
- else {
- _lv_rgb565_blend_normal_to_xrgb8888_with_opa_neon(&asm_dsc);
- }
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_rgb565_blend_normal_to_rgb888_with_mask_neon(asm_dsc_t * dsc);
-extern LVGL_HIDDEN void _lv_rgb565_blend_normal_to_xrgb8888_with_mask_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_rgb565_blend_normal_to_rgb888_with_mask_neon(lv_draw_sw_blend_image_dsc_t * dsc,
- uint32_t dst_px_size)
-{
- asm_dsc_t asm_dsc = {
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = dsc->src_buf,
- .src_stride = dsc->src_stride,
- .mask_buf = dsc->mask_buf,
- .mask_stride = dsc->mask_stride
- };
- if(dst_px_size == 3) {
- _lv_rgb565_blend_normal_to_rgb888_with_mask_neon(&asm_dsc);
- }
- else {
- _lv_rgb565_blend_normal_to_xrgb8888_with_mask_neon(&asm_dsc);
- }
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_rgb565_blend_normal_to_rgb888_mix_mask_opa_neon(asm_dsc_t * dsc);
-extern LVGL_HIDDEN void _lv_rgb565_blend_normal_to_xrgb8888_mix_mask_opa_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_rgb565_blend_normal_to_rgb888_mix_mask_opa_neon(lv_draw_sw_blend_image_dsc_t * dsc,
- uint32_t dst_px_size)
-{
- asm_dsc_t asm_dsc = {
- .opa = dsc->opa,
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = dsc->src_buf,
- .src_stride = dsc->src_stride,
- .mask_buf = dsc->mask_buf,
- .mask_stride = dsc->mask_stride
- };
- if(dst_px_size == 3) {
- _lv_rgb565_blend_normal_to_rgb888_mix_mask_opa_neon(&asm_dsc);
- }
- else {
- _lv_rgb565_blend_normal_to_xrgb8888_mix_mask_opa_neon(&asm_dsc);
- }
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_rgb888_blend_normal_to_rgb888_neon(asm_dsc_t * dsc);
-extern LVGL_HIDDEN void _lv_rgb888_blend_normal_to_xrgb8888_neon(asm_dsc_t * dsc);
-extern LVGL_HIDDEN void _lv_xrgb8888_blend_normal_to_rgb888_neon(asm_dsc_t * dsc);
-extern LVGL_HIDDEN void _lv_xrgb8888_blend_normal_to_xrgb8888_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_rgb888_blend_normal_to_rgb888_neon(lv_draw_sw_blend_image_dsc_t * dsc,
- uint32_t dst_px_size,
- uint32_t src_px_size)
-{
- asm_dsc_t asm_dsc = {
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = dsc->src_buf,
- .src_stride = dsc->src_stride
- };
- if(dst_px_size == 3) {
- if(src_px_size == 3) {
- _lv_rgb888_blend_normal_to_rgb888_neon(&asm_dsc);
- }
- else {
- _lv_xrgb8888_blend_normal_to_rgb888_neon(&asm_dsc);
- }
- }
- else {
- if(src_px_size == 3) {
- _lv_rgb888_blend_normal_to_xrgb8888_neon(&asm_dsc);
- }
- else {
- _lv_xrgb8888_blend_normal_to_xrgb8888_neon(&asm_dsc);
- }
- }
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_rgb888_blend_normal_to_rgb888_with_opa_neon(asm_dsc_t * dsc);
-extern LVGL_HIDDEN void _lv_rgb888_blend_normal_to_xrgb8888_with_opa_neon(asm_dsc_t * dsc);
-extern LVGL_HIDDEN void _lv_xrgb8888_blend_normal_to_rgb888_with_opa_neon(asm_dsc_t * dsc);
-extern LVGL_HIDDEN void _lv_xrgb8888_blend_normal_to_xrgb8888_with_opa_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_rgb888_blend_normal_to_rgb888_with_opa_neon(lv_draw_sw_blend_image_dsc_t * dsc,
- uint32_t dst_px_size, uint32_t src_px_size)
-{
- asm_dsc_t asm_dsc = {
- .opa = dsc->opa,
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = dsc->src_buf,
- .src_stride = dsc->src_stride
- };
- if(dst_px_size == 3) {
- if(src_px_size == 3) {
- _lv_rgb888_blend_normal_to_rgb888_with_opa_neon(&asm_dsc);
- }
- else {
- _lv_xrgb8888_blend_normal_to_rgb888_with_opa_neon(&asm_dsc);
- }
- }
- else {
- if(src_px_size == 3) {
- _lv_rgb888_blend_normal_to_xrgb8888_with_opa_neon(&asm_dsc);
- }
- else {
- _lv_xrgb8888_blend_normal_to_xrgb8888_with_opa_neon(&asm_dsc);
- }
- }
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_rgb888_blend_normal_to_rgb888_with_mask_neon(asm_dsc_t * dsc);
-extern LVGL_HIDDEN void _lv_rgb888_blend_normal_to_xrgb8888_with_mask_neon(asm_dsc_t * dsc);
-extern LVGL_HIDDEN void _lv_xrgb8888_blend_normal_to_rgb888_with_mask_neon(asm_dsc_t * dsc);
-extern LVGL_HIDDEN void _lv_xrgb8888_blend_normal_to_xrgb8888_with_mask_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_rgb888_blend_normal_to_rgb888_with_mask_neon(lv_draw_sw_blend_image_dsc_t * dsc,
- uint32_t dst_px_size, uint32_t src_px_size)
-{
- asm_dsc_t asm_dsc = {
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = dsc->src_buf,
- .src_stride = dsc->src_stride,
- .mask_buf = dsc->mask_buf,
- .mask_stride = dsc->mask_stride
- };
- if(dst_px_size == 3) {
- if(src_px_size == 3) {
- _lv_rgb888_blend_normal_to_rgb888_with_mask_neon(&asm_dsc);
- }
- else {
- _lv_xrgb8888_blend_normal_to_rgb888_with_mask_neon(&asm_dsc);
- }
- }
- else {
- if(src_px_size == 3) {
- _lv_rgb888_blend_normal_to_xrgb8888_with_mask_neon(&asm_dsc);
- }
- else {
- _lv_xrgb8888_blend_normal_to_xrgb8888_with_mask_neon(&asm_dsc);
- }
- }
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_rgb888_blend_normal_to_rgb888_mix_mask_opa_neon(asm_dsc_t * dsc);
-extern LVGL_HIDDEN void _lv_rgb888_blend_normal_to_xrgb8888_mix_mask_opa_neon(asm_dsc_t * dsc);
-extern LVGL_HIDDEN void _lv_xrgb8888_blend_normal_to_rgb888_mix_mask_opa_neon(asm_dsc_t * dsc);
-extern LVGL_HIDDEN void _lv_xrgb8888_blend_normal_to_xrgb8888_mix_mask_opa_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_rgb888_blend_normal_to_rgb888_mix_mask_opa_neon(lv_draw_sw_blend_image_dsc_t * dsc,
- uint32_t dst_px_size, uint32_t src_px_size)
-{
- asm_dsc_t asm_dsc = {
- .opa = dsc->opa,
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = dsc->src_buf,
- .src_stride = dsc->src_stride,
- .mask_buf = dsc->mask_buf,
- .mask_stride = dsc->mask_stride
- };
- if(dst_px_size == 3) {
- if(src_px_size == 3) {
- _lv_rgb888_blend_normal_to_rgb888_mix_mask_opa_neon(&asm_dsc);
- }
- else {
- _lv_xrgb8888_blend_normal_to_rgb888_mix_mask_opa_neon(&asm_dsc);
- }
- }
- else {
- if(src_px_size == 3) {
- _lv_rgb888_blend_normal_to_xrgb8888_mix_mask_opa_neon(&asm_dsc);
- }
- else {
- _lv_xrgb8888_blend_normal_to_xrgb8888_mix_mask_opa_neon(&asm_dsc);
- }
- }
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_argb8888_blend_normal_to_rgb888_neon(asm_dsc_t * dsc);
-extern LVGL_HIDDEN void _lv_argb8888_blend_normal_to_xrgb8888_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_argb8888_blend_normal_to_rgb888_neon(lv_draw_sw_blend_image_dsc_t * dsc,
- uint32_t dst_px_size)
-{
- asm_dsc_t asm_dsc = {
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = dsc->src_buf,
- .src_stride = dsc->src_stride
- };
- if(dst_px_size == 3) {
- _lv_argb8888_blend_normal_to_rgb888_neon(&asm_dsc);
- }
- else {
- _lv_argb8888_blend_normal_to_xrgb8888_neon(&asm_dsc);
- }
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_argb8888_blend_normal_to_rgb888_with_opa_neon(asm_dsc_t * dsc);
-extern LVGL_HIDDEN void _lv_argb8888_blend_normal_to_xrgb8888_with_opa_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_argb8888_blend_normal_to_rgb888_with_opa_neon(lv_draw_sw_blend_image_dsc_t * dsc,
- uint32_t dst_px_size)
-{
- asm_dsc_t asm_dsc = {
- .opa = dsc->opa,
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = dsc->src_buf,
- .src_stride = dsc->src_stride
- };
- if(dst_px_size == 3) {
- _lv_argb8888_blend_normal_to_rgb888_with_opa_neon(&asm_dsc);
- }
- else {
- _lv_argb8888_blend_normal_to_xrgb8888_with_opa_neon(&asm_dsc);
- }
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_argb8888_blend_normal_to_rgb888_with_mask_neon(asm_dsc_t * dsc);
-extern LVGL_HIDDEN void _lv_argb8888_blend_normal_to_xrgb8888_with_mask_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_argb8888_blend_normal_to_rgb888_with_mask_neon(lv_draw_sw_blend_image_dsc_t * dsc,
- uint32_t dst_px_size)
-{
- asm_dsc_t asm_dsc = {
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = dsc->src_buf,
- .src_stride = dsc->src_stride,
- .mask_buf = dsc->mask_buf,
- .mask_stride = dsc->mask_stride
- };
- if(dst_px_size == 3) {
- _lv_argb8888_blend_normal_to_rgb888_with_mask_neon(&asm_dsc);
- }
- else {
- _lv_argb8888_blend_normal_to_xrgb8888_with_mask_neon(&asm_dsc);
- }
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_argb8888_blend_normal_to_rgb888_mix_mask_opa_neon(asm_dsc_t * dsc);
-extern LVGL_HIDDEN void _lv_argb8888_blend_normal_to_xrgb8888_mix_mask_opa_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_argb8888_blend_normal_to_rgb888_mix_mask_opa_neon(lv_draw_sw_blend_image_dsc_t * dsc,
- uint32_t dst_px_size)
-{
- asm_dsc_t asm_dsc = {
- .opa = dsc->opa,
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = dsc->src_buf,
- .src_stride = dsc->src_stride,
- .mask_buf = dsc->mask_buf,
- .mask_stride = dsc->mask_stride
- };
- if(dst_px_size == 3) {
- _lv_argb8888_blend_normal_to_rgb888_mix_mask_opa_neon(&asm_dsc);
- }
- else {
- _lv_argb8888_blend_normal_to_xrgb8888_mix_mask_opa_neon(&asm_dsc);
- }
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_color_blend_to_argb8888_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_color_blend_to_argb8888_neon(lv_draw_sw_blend_fill_dsc_t * dsc)
-{
- asm_dsc_t asm_dsc = {
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = &dsc->color
- };
-
- _lv_color_blend_to_argb8888_neon(&asm_dsc);
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_color_blend_to_argb8888_with_opa_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_color_blend_to_argb8888_with_opa_neon(lv_draw_sw_blend_fill_dsc_t * dsc)
-{
- asm_dsc_t asm_dsc = {
- .opa = dsc->opa,
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = &dsc->color
- };
- _lv_color_blend_to_argb8888_with_opa_neon(&asm_dsc);
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_color_blend_to_argb8888_with_mask_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_color_blend_to_argb8888_with_mask_neon(lv_draw_sw_blend_fill_dsc_t * dsc)
-{
- asm_dsc_t asm_dsc = {
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = &dsc->color,
- .mask_buf = dsc->mask_buf,
- .mask_stride = dsc->mask_stride
- };
- _lv_color_blend_to_argb8888_with_mask_neon(&asm_dsc);
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_color_blend_to_argb8888_mix_mask_opa_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_color_blend_to_argb8888_mix_mask_opa_neon(lv_draw_sw_blend_fill_dsc_t * dsc)
-{
- asm_dsc_t asm_dsc = {
- .opa = dsc->opa,
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = &dsc->color,
- .mask_buf = dsc->mask_buf,
- .mask_stride = dsc->mask_stride
- };
- _lv_color_blend_to_argb8888_mix_mask_opa_neon(&asm_dsc);
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_rgb565_blend_normal_to_argb8888_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_rgb565_blend_normal_to_argb8888_neon(lv_draw_sw_blend_image_dsc_t * dsc)
-{
- asm_dsc_t asm_dsc = {
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = dsc->src_buf,
- .src_stride = dsc->src_stride
- };
- _lv_rgb565_blend_normal_to_argb8888_neon(&asm_dsc);
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_rgb565_blend_normal_to_argb8888_with_opa_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_rgb565_blend_normal_to_argb8888_with_opa_neon(lv_draw_sw_blend_image_dsc_t * dsc)
-{
- asm_dsc_t asm_dsc = {
- .opa = dsc->opa,
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = dsc->src_buf,
- .src_stride = dsc->src_stride
- };
- _lv_rgb565_blend_normal_to_argb8888_with_opa_neon(&asm_dsc);
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_rgb565_blend_normal_to_argb8888_with_mask_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_rgb565_blend_normal_to_argb8888_with_mask_neon(lv_draw_sw_blend_image_dsc_t * dsc)
-{
- asm_dsc_t asm_dsc = {
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = dsc->src_buf,
- .src_stride = dsc->src_stride,
- .mask_buf = dsc->mask_buf,
- .mask_stride = dsc->mask_stride
- };
- _lv_rgb565_blend_normal_to_argb8888_with_mask_neon(&asm_dsc);
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_rgb565_blend_normal_to_argb8888_mix_mask_opa_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_rgb565_blend_normal_to_argb8888_mix_mask_opa_neon(lv_draw_sw_blend_image_dsc_t * dsc)
-{
- asm_dsc_t asm_dsc = {
- .opa = dsc->opa,
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = dsc->src_buf,
- .src_stride = dsc->src_stride,
- .mask_buf = dsc->mask_buf,
- .mask_stride = dsc->mask_stride
- };
- _lv_rgb565_blend_normal_to_argb8888_mix_mask_opa_neon(&asm_dsc);
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_rgb888_blend_normal_to_argb8888_neon(asm_dsc_t * dsc);
-extern LVGL_HIDDEN void _lv_xrgb8888_blend_normal_to_argb8888_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_rgb888_blend_normal_to_argb8888_neon(lv_draw_sw_blend_image_dsc_t * dsc,
- uint32_t src_px_size)
-{
- asm_dsc_t asm_dsc = {
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = dsc->src_buf,
- .src_stride = dsc->src_stride
- };
- if(src_px_size == 3) {
- _lv_rgb888_blend_normal_to_argb8888_neon(&asm_dsc);
- }
- else {
- _lv_xrgb8888_blend_normal_to_argb8888_neon(&asm_dsc);
- }
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_rgb888_blend_normal_to_argb8888_with_opa_neon(asm_dsc_t * dsc);
-extern LVGL_HIDDEN void _lv_xrgb8888_blend_normal_to_argb8888_with_opa_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_rgb888_blend_normal_to_argb8888_with_opa_neon(lv_draw_sw_blend_image_dsc_t * dsc,
- uint32_t src_px_size)
-{
- asm_dsc_t asm_dsc = {
- .opa = dsc->opa,
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = dsc->src_buf,
- .src_stride = dsc->src_stride
- };
- if(src_px_size == 3) {
- _lv_rgb888_blend_normal_to_argb8888_with_opa_neon(&asm_dsc);
- }
- else {
- _lv_xrgb8888_blend_normal_to_argb8888_with_opa_neon(&asm_dsc);
- }
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_rgb888_blend_normal_to_argb8888_with_mask_neon(asm_dsc_t * dsc);
-extern LVGL_HIDDEN void _lv_xrgb8888_blend_normal_to_argb8888_with_mask_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_rgb888_blend_normal_to_argb8888_with_mask_neon(lv_draw_sw_blend_image_dsc_t * dsc,
- uint32_t src_px_size)
-{
- asm_dsc_t asm_dsc = {
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = dsc->src_buf,
- .src_stride = dsc->src_stride,
- .mask_buf = dsc->mask_buf,
- .mask_stride = dsc->mask_stride
- };
- if(src_px_size == 3) {
- _lv_rgb888_blend_normal_to_argb8888_with_mask_neon(&asm_dsc);
- }
- else {
- _lv_xrgb8888_blend_normal_to_argb8888_with_mask_neon(&asm_dsc);
- }
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_rgb888_blend_normal_to_argb8888_mix_mask_opa_neon(asm_dsc_t * dsc);
-extern LVGL_HIDDEN void _lv_xrgb8888_blend_normal_to_argb8888_mix_mask_opa_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_rgb888_blend_normal_to_argb8888_mix_mask_opa_neon(lv_draw_sw_blend_image_dsc_t * dsc,
- uint32_t src_px_size)
-{
- asm_dsc_t asm_dsc = {
- .opa = dsc->opa,
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = dsc->src_buf,
- .src_stride = dsc->src_stride,
- .mask_buf = dsc->mask_buf,
- .mask_stride = dsc->mask_stride
- };
- if(src_px_size == 3) {
- _lv_rgb888_blend_normal_to_argb8888_mix_mask_opa_neon(&asm_dsc);
- }
- else {
- _lv_xrgb8888_blend_normal_to_argb8888_mix_mask_opa_neon(&asm_dsc);
- }
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_argb8888_blend_normal_to_argb8888_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_argb8888_blend_normal_to_argb8888_neon(lv_draw_sw_blend_image_dsc_t * dsc)
-{
- asm_dsc_t asm_dsc = {
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = dsc->src_buf,
- .src_stride = dsc->src_stride
- };
- _lv_argb8888_blend_normal_to_argb8888_neon(&asm_dsc);
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_argb8888_blend_normal_to_argb8888_with_opa_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_argb8888_blend_normal_to_argb8888_with_opa_neon(lv_draw_sw_blend_image_dsc_t * dsc)
-{
- asm_dsc_t asm_dsc = {
- .opa = dsc->opa,
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = dsc->src_buf,
- .src_stride = dsc->src_stride
- };
- _lv_argb8888_blend_normal_to_argb8888_with_opa_neon(&asm_dsc);
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_argb8888_blend_normal_to_argb8888_with_mask_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_argb8888_blend_normal_to_argb8888_with_mask_neon(lv_draw_sw_blend_image_dsc_t * dsc)
-{
- asm_dsc_t asm_dsc = {
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = dsc->src_buf,
- .src_stride = dsc->src_stride,
- .mask_buf = dsc->mask_buf,
- .mask_stride = dsc->mask_stride
- };
- _lv_argb8888_blend_normal_to_argb8888_with_mask_neon(&asm_dsc);
- return LV_RESULT_OK;
-}
-
-extern LVGL_HIDDEN void _lv_argb8888_blend_normal_to_argb8888_mix_mask_opa_neon(asm_dsc_t * dsc);
-static inline lv_result_t lv_argb8888_blend_normal_to_argb8888_mix_mask_opa_neon(lv_draw_sw_blend_image_dsc_t * dsc)
-{
- asm_dsc_t asm_dsc = {
- .opa = dsc->opa,
- .dst_buf = dsc->dest_buf,
- .dst_w = dsc->dest_w,
- .dst_h = dsc->dest_h,
- .dst_stride = dsc->dest_stride,
- .src_buf = dsc->src_buf,
- .src_stride = dsc->src_stride,
- .mask_buf = dsc->mask_buf,
- .mask_stride = dsc->mask_stride
- };
- _lv_argb8888_blend_normal_to_argb8888_mix_mask_opa_neon(&asm_dsc);
- return LV_RESULT_OK;
-}
-
-#endif /* !defined(__ASSEMBLY__) */
-
/**********************
* MACROS
**********************/
+#endif /* #if LV_USE_DRAW_SW_ASM == LV_DRAW_SW_ASM_NEON */
+
#ifdef __cplusplus
} /*extern "C"*/
#endif
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/neon/lv_draw_sw_blend_neon_to_rgb565.c b/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/neon/lv_draw_sw_blend_neon_to_rgb565.c
new file mode 100644
index 000000000..2b933e687
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/neon/lv_draw_sw_blend_neon_to_rgb565.c
@@ -0,0 +1,2093 @@
+/**
+ * @file lv_draw_sw_blend_neon_to_rgb565.c
+ *
+ */
+
+/*********************
+ * INCLUDES
+ *********************/
+#include "lv_draw_sw_blend_neon_to_rgb565.h"
+#if LV_USE_DRAW_SW_ASM == LV_DRAW_SW_ASM_NEON
+
+#include "../../../../misc/lv_color.h"
+#include "../../../../misc/lv_types.h"
+#include "../lv_draw_sw_blend_private.h"
+#include
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+/**********************
+ * STATIC PROTOTYPES
+ **********************/
+
+static inline void * LV_ATTRIBUTE_FAST_MEM drawbuf_next_row(const void * buf, uint32_t stride);
+
+static inline uint16x8_t l8_to_rgb565_8(const uint8_t * src);
+static inline uint16x4_t l8_to_rgb565_4(const uint8_t * src);
+static inline uint32_t l8_to_rgb565_2(const uint8_t * src);
+static inline uint16_t l8_to_rgb565_1(const uint8_t * src);
+
+static inline uint16x8_t lv_color_8_16_mix_8(const uint16_t * src, const uint16_t * dst);
+static inline uint16x4_t lv_color_8_16_mix_4(const uint16_t * src, const uint16_t * dst);
+
+static inline uint16x8_t lv_color_8_16_mix_8_with_opa(const uint16_t * src, const uint16_t * dst, uint8_t opa);
+static inline uint16x4_t lv_color_8_16_mix_4_with_opa(const uint16_t * src, const uint16_t * dst, uint8_t opa);
+static inline uint16x8_t lv_color_8_16_mix_8_with_mask(const uint16_t * src, const uint16_t * dst,
+ const uint8_t * mask);
+static inline uint16x4_t lv_color_8_16_mix_4_with_mask(const uint16_t * src, const uint16_t * dst,
+ const uint8_t * mask);
+static inline uint16x8_t lv_color_8_16_mix_8_with_opa_mask(const uint16_t * src, const uint16_t * dst, uint8_t opa,
+ const uint8_t * mask);
+static inline uint16x4_t lv_color_8_16_mix_4_with_opa_mask(const uint16_t * src, const uint16_t * dst, uint8_t opa,
+ const uint8_t * mask);
+
+static inline uint16x8_t lv_color_8_16_mix_8_internal(uint16x8_t dst_pixels, uint16x8_t src_pixels,
+ uint16x8_t mix_pixels);
+static inline uint16x4_t lv_color_8_16_mix_4_internal(uint16x4_t dst_pixels, uint16x4_t src_pixels,
+ uint16x4_t mix_pixels);
+
+static inline uint32_t lv_color_8_16_mix_2(const uint8_t * src, const uint16_t * dst);
+static inline uint32_t lv_color_8_16_mix_2_with_opa(const uint8_t * src, const uint16_t * dst, uint8_t opa);
+static inline uint32_t lv_color_8_16_mix_2_with_mask(const uint8_t * src, const uint16_t * dst, const uint8_t * mask);
+static inline uint32_t lv_color_8_16_mix_2_with_opa_mask(const uint8_t * src, const uint16_t * dst, uint8_t,
+ const uint8_t * mask);
+
+static inline uint16_t lv_color_8_16_mix_1_internal(uint8_t src, uint16_t dst, uint8_t mix);
+
+static inline uint16x8_t lv_color_32_16_mix_8(const uint8_t * src, const uint16_t * dst);
+static inline uint16x8_t lv_color_32_16_mix_8_with_opa(const uint8_t * src, const uint16_t * dst, uint8_t opa);
+static inline uint16x8_t lv_color_32_16_mix_8_with_mask(const uint8_t * src, const uint16_t * dst,
+ const uint8_t * mask);
+static inline uint16x8_t lv_color_32_16_mix_8_with_opa_mask(const uint8_t * src, const uint16_t * dst, uint8_t opa,
+ const uint8_t * mask);
+
+static inline uint16x8_t lv_color_32_16_mix_8_internal(uint16x8_t g_pixels, uint16x8_t r_pixels, uint16x8_t b_pixels,
+ uint16x8_t a_pixels, uint16x8_t dst_pixels);
+
+static inline uint16x4_t lv_color_32_16_mix_4(const uint8_t * src, const uint16_t * dst);
+
+static inline uint16x4_t lv_color_32_16_mix_4_with_opa(const uint8_t * src, const uint16_t * dst, uint8_t opa);
+static inline uint16x4_t lv_color_32_16_mix_4_with_mask(const uint8_t * src, const uint16_t * dst,
+ const uint8_t * mask);
+static inline uint16x4_t lv_color_32_16_mix_4_with_opa_mask(const uint8_t * src, const uint16_t * dst, uint8_t opa,
+ const uint8_t * mask);
+static inline uint16x4_t lv_color_32_16_mix_4_internal(uint16x4_t g_pixels, uint16x4_t r_pixels, uint16x4_t b_pixels,
+ uint16x4_t a_pixels, uint16x4_t dst_pixels);
+
+static inline uint32_t lv_color_32_16_mix_2(const uint8_t * src, const uint16_t * dst);
+
+static inline uint32_t lv_color_32_16_mix_2_with_opa(const uint8_t * src, const uint16_t * dst, uint8_t opa);
+static inline uint32_t lv_color_32_16_mix_2_with_mask(const uint8_t * src, const uint16_t * dst, const uint8_t * mask);
+static inline uint32_t lv_color_32_16_mix_2_with_opa_mask(const uint8_t * src, const uint16_t * dst, uint8_t opa,
+ const uint8_t * mask);
+
+static inline uint32_t lv_color_32_16_mix_1(const uint8_t * src, const uint16_t * dst);
+static inline uint16_t lv_color_32_16_mix_1_with_opa(const uint8_t * src, const uint16_t * dst, uint8_t opa);
+static inline uint16_t lv_color_32_16_mix_1_with_mask(const uint8_t * src, const uint16_t * dst, const uint8_t * mask);
+static inline uint16_t lv_color_32_16_mix_1_with_opa_mask(const uint8_t * src, const uint16_t * dst, uint8_t opa,
+ const uint8_t * mask);
+
+#if LV_DRAW_SW_SUPPORT_ARGB8888_PREMULTIPLIED
+ static inline uint16x8_t lv_color_24_16_mix_premult_8(const uint8_t * src, const uint16_t * dst);
+ static inline uint16x4_t lv_color_24_16_mix_premult_4(const uint8_t * src, const uint16_t * dst);
+ static inline uint32_t lv_color_24_16_mix_premult_2(const uint8_t * src, const uint16_t * dst);
+ static inline uint16_t lv_color_24_16_mix_premult_1(const uint8_t * src, const uint16_t * dst);
+#endif
+
+static inline uint16x8_t lv_color_24_16_mix_8_with_opa(const uint8_t * src, const uint16_t * dst, uint8_t opa,
+ uint8_t src_px_size);
+static inline uint16x4_t lv_color_24_16_mix_4_with_opa(const uint8_t * src, const uint16_t * dst, uint8_t opa,
+ uint8_t src_px_size);
+static inline uint32_t lv_color_24_16_mix_2_with_opa(const uint8_t * src, const uint16_t * dst, uint8_t opa,
+ uint8_t src_px_size);
+
+static inline uint16x8_t lv_color_24_16_mix_8_with_mask(const uint8_t * src, const uint16_t * dst, const uint8_t * mask,
+ uint8_t src_px_size);
+static inline uint16x4_t lv_color_24_16_mix_4_with_mask(const uint8_t * src, const uint16_t * dst, const uint8_t * mask,
+ uint8_t src_px_size);
+static inline uint32_t lv_color_24_16_mix_2_with_mask(const uint8_t * src, const uint16_t * dst, const uint8_t * mask,
+ uint8_t src_px_size);
+
+static inline uint16x8_t lv_color_24_16_mix_8_with_opa_mask(const uint8_t * src, const uint16_t * dst, uint8_t opa,
+ const uint8_t * mask, uint8_t src_px_size);
+static inline uint16x4_t lv_color_24_16_mix_4_with_opa_mask(const uint8_t * src, const uint16_t * dst, uint8_t opa,
+ const uint8_t * mask, uint8_t src_px_size);
+static inline uint32_t lv_color_24_16_mix_2_with_opa_mask(const uint8_t * src, const uint16_t * dst, uint8_t opa,
+ const uint8_t * mask, uint8_t src_px_size);
+
+static inline uint16_t lv_color_24_16_mix_1_internal(const uint8_t * src, const uint16_t * dst, uint8_t mix);
+static inline uint16x8_t rgb888_to_rgb565_8(const uint8_t * src, uint8_t src_px_size);
+static inline uint16x4_t rgb888_to_rgb565_4(const uint8_t * src, uint8_t src_px_size);
+static inline uint32_t rgb888_to_rgb565_2(const uint8_t * src, uint8_t src_px_size);
+static inline uint16_t rgb888_to_rgb565_1(const uint8_t * src);
+
+static inline uint16x8_t lv_color_16_16_mix_8_with_opa(const uint16_t * c1, const uint16_t * c2, uint8_t opa);
+static inline uint16x8_t lv_color_16_16_mix_8_with_mask(const uint16_t * c1, const uint16_t * c2, const uint8_t * mask);
+static inline uint16x8_t lv_color_16_16_mix_8_with_opa_mask(const uint16_t * c1, const uint16_t * c2, uint8_t opa,
+ const uint8_t * mask);
+static inline uint16x8_t lv_color_16_16_mix_8_internal(uint16x8_t c1_vec, uint16x8_t c2_vec, uint16x8_t mix);
+
+static inline uint16x4_t lv_color_16_16_mix_4_with_opa(const uint16_t * c1, const uint16_t * c2, uint8_t opa);
+static inline uint16x4_t lv_color_16_16_mix_4_with_mask(const uint16_t * c1, const uint16_t * c2, const uint8_t * mask);
+static inline uint16x4_t lv_color_16_16_mix_4_with_opa_mask(const uint16_t * c1, const uint16_t * c2, uint8_t opa,
+ const uint8_t * mask);
+static inline uint16x4_t lv_color_16_16_mix_4_internal(uint16x4_t c1_vec, uint16x4_t c2_vec, uint16x4_t mix);
+
+static inline uint32_t lv_color_16_16_mix_2_with_opa(const uint16_t * c1, const uint16_t * c2, uint8_t opa);
+static inline uint32_t lv_color_16_16_mix_2_with_mask(const uint16_t * c1, const uint16_t * c2, const uint8_t * mask);
+static inline uint32_t lv_color_16_16_mix_2_with_opa_mask(const uint16_t * c1, const uint16_t * c2, uint8_t opa,
+ const uint8_t * mask);
+
+/**********************
+ * STATIC VARIABLES
+ **********************/
+
+/**********************
+ * MACROS
+ **********************/
+
+/**********************
+ * GLOBAL FUNCTIONS
+ **********************/
+
+lv_result_t lv_draw_sw_blend_neon_color_to_rgb565(lv_draw_sw_blend_fill_dsc_t * dsc)
+{
+
+ LV_ASSERT(dsc->opa >= LV_OPA_MAX);
+ LV_ASSERT(dsc->mask_buf == NULL);
+ const int32_t w = dsc->dest_w;
+ const int32_t h = dsc->dest_h;
+ const int32_t dest_stride = dsc->dest_stride;
+ const uint16_t color16 = lv_color_to_u16(dsc->color);
+ const uint16x8_t color_vec_8 = vdupq_n_u16(color16);
+ const uint16x4_t color_vec_4 = vdup_n_u16(color16);
+ const uint32_t color_vec_2 = color16 << 16 | color16;
+ uint16_t * dest_buf_u16 = dsc->dest_buf;
+
+ for(int32_t y = 0; y < h; y++) {
+ uint16_t * row_ptr = dest_buf_u16;
+ int32_t x = 0;
+ /* Handle unaligned pixels at the beginning */
+ const size_t offset = ((size_t)row_ptr) & 0xF;
+ if(offset != 0) {
+ int32_t pixel_alignment = (16 - offset) >> 1;
+ pixel_alignment = (pixel_alignment > w) ? w : pixel_alignment;
+ for(; x < pixel_alignment; x++) {
+ row_ptr[x] = color16;
+ }
+ }
+ for(; x < w - 7; x += 8) {
+ vst1q_u16(&row_ptr[x], color_vec_8);
+ }
+ for(; x < w - 3; x += 4) {
+ vst1_u16(&row_ptr[x], color_vec_4);
+ }
+ for(; x < w - 1; x += 2) {
+ *(uint32_t *)&row_ptr[x] = color_vec_2;
+ }
+ for(; x < w; x++) {
+ row_ptr[x] = color16;
+ }
+
+ dest_buf_u16 = drawbuf_next_row(dest_buf_u16, dest_stride);
+ }
+
+ return LV_RESULT_OK;
+}
+lv_result_t lv_draw_sw_blend_neon_color_to_rgb565_with_opa(lv_draw_sw_blend_fill_dsc_t * dsc)
+{
+
+ LV_ASSERT(dsc->opa < LV_OPA_MAX);
+ LV_ASSERT(dsc->mask_buf == NULL);
+ const int32_t w = dsc->dest_w;
+ const int32_t h = dsc->dest_h;
+ const int32_t dest_stride = dsc->dest_stride;
+ const uint16_t color16 = lv_color_to_u16(dsc->color);
+ const uint32_t color32 = color16 << 16 | color16;
+ const uint16x8_t color_vec_8 = vdupq_n_u16(color16);
+ const uint16x4_t color_vec_4 = vdup_n_u16(color16);
+ const uint8_t opa = dsc->opa;
+ const uint16x8_t opa_vec_8 = vmovq_n_u16(opa);
+ const uint16x4_t opa_vec_4 = vmov_n_u16(opa);
+ uint16_t * dest_buf_u16 = dsc->dest_buf;
+
+ for(int32_t y = 0; y < h; y++) {
+ uint16_t * row_ptr = dest_buf_u16;
+ int32_t x = 0;
+ /* Handle unaligned pixels at the beginning */
+ const size_t offset = ((size_t)row_ptr) & 0xF;
+ if(offset != 0) {
+ int32_t pixel_alignment = (16 - offset) >> 1;
+ pixel_alignment = (pixel_alignment > w) ? w : pixel_alignment;
+ for(; x < pixel_alignment; x++) {
+ row_ptr[x] = lv_color_16_16_mix(color16, row_ptr[x], opa);
+ }
+ }
+ for(; x < w - 7; x += 8) {
+ const uint16x8_t src = vld1q_u16(&row_ptr[x]);
+ vst1q_u16(&row_ptr[x], lv_color_16_16_mix_8_internal(color_vec_8, src, opa_vec_8));
+ }
+ for(; x < w - 3; x += 4) {
+ const uint16x4_t src = vld1_u16(&row_ptr[x]);
+ vst1_u16(&row_ptr[x], lv_color_16_16_mix_4_internal(color_vec_4, src, opa_vec_4));
+ }
+ for(; x < w - 1; x += 2) {
+ *(uint32_t *)&row_ptr[x] = lv_color_16_16_mix_2_with_opa((const uint16_t *)&color32, &row_ptr[x], opa);
+ }
+ for(; x < w; x++) {
+ row_ptr[x] = lv_color_16_16_mix(color16, row_ptr[x], opa);
+ }
+
+ dest_buf_u16 = drawbuf_next_row(dest_buf_u16, dest_stride);
+ }
+
+ return LV_RESULT_OK;
+}
+lv_result_t lv_draw_sw_blend_neon_color_to_rgb565_with_mask(lv_draw_sw_blend_fill_dsc_t * dsc)
+{
+ LV_ASSERT(dsc->opa >= LV_OPA_MAX);
+ LV_ASSERT(dsc->mask_buf != NULL);
+ const int32_t w = dsc->dest_w;
+ const int32_t h = dsc->dest_h;
+ const int32_t dest_stride = dsc->dest_stride;
+ const uint16_t color16 = lv_color_to_u16(dsc->color);
+ const uint32_t color32 = color16 << 16 | color16;
+ const uint16x8_t color_vec_8 = vdupq_n_u16(color16);
+ const uint16x4_t color_vec_4 = vdup_n_u16(color16);
+ uint16_t * dest_buf_u16 = dsc->dest_buf;
+ const uint8_t * mask_buf_u8 = dsc->mask_buf;
+ const int32_t mask_stride = dsc->mask_stride;
+
+ for(int32_t y = 0; y < h; y++) {
+ uint16_t * row_ptr = dest_buf_u16;
+ const uint8_t * mask_row = mask_buf_u8;
+ int32_t x = 0;
+ /* Handle unaligned pixels at the beginning */
+ const size_t offset = ((size_t)row_ptr) & 0xF;
+ if(offset != 0) {
+ int32_t pixel_alignment = (16 - offset) >> 1;
+ pixel_alignment = (pixel_alignment > w) ? w : pixel_alignment;
+ for(; x < pixel_alignment; x++) {
+ row_ptr[x] = lv_color_16_16_mix(color16, row_ptr[x], mask_row[x]);
+ }
+ }
+ for(; x < w - 7; x += 8) {
+ const uint16x8_t src = vld1q_u16(&row_ptr[x]);
+ const uint16x8_t mask = vmovl_u8(vld1_u8(&mask_row[x]));
+ vst1q_u16(&row_ptr[x], lv_color_16_16_mix_8_internal(color_vec_8, src, mask));
+ }
+ for(; x < w - 3; x += 4) {
+ const uint16x4_t src = vld1_u16(&row_ptr[x]);
+ const uint16x4_t mask_vec = vget_low_u16(vmovl_u8(vld1_u8(&mask_row[x])));
+ vst1_u16(&row_ptr[x], lv_color_16_16_mix_4_internal(color_vec_4, src, mask_vec));
+ }
+ for(; x < w - 1; x += 2) {
+ *(uint32_t *)&row_ptr[x] =
+ lv_color_16_16_mix_2_with_mask((const uint16_t *)&color32, &row_ptr[x], &mask_row[x]);
+ }
+ for(; x < w; x++) {
+ row_ptr[x] = lv_color_16_16_mix(color16, row_ptr[x], mask_row[x]);
+ }
+
+ dest_buf_u16 = drawbuf_next_row(dest_buf_u16, dest_stride);
+ mask_buf_u8 += mask_stride;
+ }
+
+ return LV_RESULT_OK;
+}
+
+lv_result_t lv_draw_sw_blend_neon_color_to_rgb565_with_opa_mask(lv_draw_sw_blend_fill_dsc_t * dsc)
+{
+ LV_ASSERT(dsc->opa < LV_OPA_MAX);
+ LV_ASSERT(dsc->mask_buf != NULL);
+ const int32_t w = dsc->dest_w;
+ const int32_t h = dsc->dest_h;
+ const int32_t dest_stride = dsc->dest_stride;
+ const uint16_t color16 = lv_color_to_u16(dsc->color);
+ const uint32_t color32 = color16 << 16 | color16;
+ const uint16x8_t color_vec_8 = vdupq_n_u16(color16);
+ const uint16x4_t color_vec_4 = vdup_n_u16(color16);
+ const uint8_t opa = dsc->opa;
+ const uint16x8_t opa_vec_8 = vmovq_n_u16(opa);
+ const uint16x4_t opa_vec_4 = vmov_n_u16(opa);
+
+ uint16_t * dest_buf_u16 = dsc->dest_buf;
+ const uint8_t * mask_buf_u8 = dsc->mask_buf;
+ const int32_t mask_stride = dsc->mask_stride;
+
+ for(int32_t y = 0; y < h; y++) {
+ uint16_t * row_ptr = dest_buf_u16;
+ const uint8_t * mask_row = mask_buf_u8;
+ int32_t x = 0;
+ /* Handle unaligned pixels at the beginning */
+ const size_t offset = ((size_t)row_ptr) & 0xF;
+ if(offset != 0) {
+ int32_t pixel_alignment = (16 - offset) >> 1;
+ pixel_alignment = (pixel_alignment > w) ? w : pixel_alignment;
+ for(; x < pixel_alignment; x++) {
+ row_ptr[x] = lv_color_16_16_mix(color16, row_ptr[x], LV_OPA_MIX2(opa, mask_row[x]));
+ }
+ }
+ for(; x < w - 7; x += 8) {
+ const uint16x8_t src = vld1q_u16(&row_ptr[x]);
+ const uint16x8_t mix = vshrq_n_u16(vmulq_u16(opa_vec_8, vmovl_u8(vld1_u8(&mask_row[x]))), 8);
+ vst1q_u16(&row_ptr[x], lv_color_16_16_mix_8_internal(color_vec_8, src, mix));
+ }
+ for(; x < w - 3; x += 4) {
+ const uint16x4_t src = vld1_u16(&row_ptr[x]);
+ const uint16x4_t mix = vshr_n_u16(vmul_u16(opa_vec_4, vget_low_u16(vmovl_u8(vld1_u8(&mask_row[x])))), 8);
+ vst1_u16(&row_ptr[x], lv_color_16_16_mix_4_internal(color_vec_4, src, mix));
+ }
+ for(; x < w - 1; x += 2) {
+ *(uint32_t *)&row_ptr[x] =
+ lv_color_16_16_mix_2_with_opa_mask((const uint16_t *)&color32, &row_ptr[x], opa, &mask_row[x]);
+ }
+ for(; x < w; x++) {
+ row_ptr[x] = lv_color_16_16_mix(color16, row_ptr[x], LV_OPA_MIX2(opa, mask_row[x]));
+ }
+
+ dest_buf_u16 = drawbuf_next_row(dest_buf_u16, dest_stride);
+ mask_buf_u8 += mask_stride;
+ }
+
+ return LV_RESULT_OK;
+}
+
+lv_result_t lv_draw_sw_blend_neon_l8_to_rgb565(lv_draw_sw_blend_image_dsc_t * dsc)
+{
+ LV_ASSERT(dsc->opa >= LV_OPA_MAX);
+ LV_ASSERT(dsc->mask_buf == NULL);
+ int32_t w = dsc->dest_w;
+ int32_t h = dsc->dest_h;
+ uint16_t * dest_buf_u16 = dsc->dest_buf;
+ int32_t dest_stride = dsc->dest_stride;
+ const uint8_t * src_buf_l8 = dsc->src_buf;
+ int32_t src_stride = dsc->src_stride;
+
+ for(int32_t y = 0; y < h; y++) {
+ uint16_t * dest_row = dest_buf_u16;
+ const uint8_t * src_row = src_buf_l8;
+ int32_t x = 0;
+ for(; x < w - 7; x += 8) {
+
+ vst1q_u16(&dest_row[x], l8_to_rgb565_8(&src_row[x]));
+ }
+ for(; x < w - 3; x += 4) {
+ vst1_u16(&dest_row[x], l8_to_rgb565_4(&src_row[x]));
+ }
+ for(; x < w - 1; x += 2) {
+ *(uint32_t *)&dest_row[x] = l8_to_rgb565_2(&src_row[x]);
+ }
+ for(; x < w - 0; x += 1) {
+ dest_row[x] = l8_to_rgb565_1(&src_row[x]);
+ }
+ dest_buf_u16 = drawbuf_next_row(dest_buf_u16, dest_stride);
+ src_buf_l8 += src_stride;
+ }
+ return LV_RESULT_OK;
+}
+
+lv_result_t lv_draw_sw_blend_neon_al88_to_rgb565(lv_draw_sw_blend_image_dsc_t * dsc)
+{
+ LV_ASSERT(dsc->opa >= LV_OPA_MAX);
+ LV_ASSERT(dsc->mask_buf == NULL);
+ int32_t w = dsc->dest_w;
+ int32_t h = dsc->dest_h;
+ uint16_t * dest_buf_u16 = dsc->dest_buf;
+ int32_t dest_stride = dsc->dest_stride;
+ const uint8_t * src_buf_u8 = dsc->src_buf;
+ int32_t src_stride = dsc->src_stride;
+
+ for(int32_t y = 0; y < h; y++) {
+ uint16_t * dest_row = dest_buf_u16;
+ const uint8_t * src_row = (const uint8_t *)src_buf_u8;
+ int32_t x = 0;
+ int32_t src_x = 0;
+
+ for(; x < w - 7; x += 8, src_x += 16) {
+ vst1q_u16(&dest_row[x], lv_color_8_16_mix_8((const uint16_t *)&src_row[src_x], &dest_row[x]));
+ }
+ for(; x < w - 3; x += 4, src_x += 8) {
+ vst1_u16(&dest_row[x], lv_color_8_16_mix_4((const uint16_t *)&src_row[src_x], &dest_row[x]));
+ }
+ for(; x < w - 1; x += 2, src_x += 4) {
+ *(uint32_t *)&dest_row[x] = lv_color_8_16_mix_2(&src_row[src_x], &dest_row[x]);
+ }
+ for(; x < w - 0; x += 1, src_x += 2) {
+ dest_row[x] = lv_color_8_16_mix_1_internal(src_row[src_x], dest_row[x], src_row[src_x + 1]);
+ }
+ dest_buf_u16 = drawbuf_next_row(dest_buf_u16, dest_stride);
+ src_buf_u8 += src_stride;
+ }
+ return LV_RESULT_OK;
+}
+lv_result_t lv_draw_sw_blend_neon_al88_to_rgb565_with_opa(lv_draw_sw_blend_image_dsc_t * dsc)
+{
+ LV_ASSERT(dsc->opa < LV_OPA_MAX);
+ LV_ASSERT(dsc->mask_buf == NULL);
+ const int32_t w = dsc->dest_w;
+ const int32_t h = dsc->dest_h;
+ uint16_t * dest_buf_u16 = dsc->dest_buf;
+ const int32_t dest_stride = dsc->dest_stride;
+ const uint8_t * src_buf_u8 = dsc->src_buf;
+ const int32_t src_stride = dsc->src_stride;
+ const uint8_t opa = dsc->opa;
+
+ for(int32_t y = 0; y < h; y++) {
+ uint16_t * dest_row = dest_buf_u16;
+ const uint8_t * src_row = (const uint8_t *)src_buf_u8;
+ int32_t x = 0;
+ int32_t src_x = 0;
+
+ for(; x < w - 7; x += 8, src_x += 16) {
+ vst1q_u16(&dest_row[x], lv_color_8_16_mix_8_with_opa((const uint16_t *)&src_row[src_x], &dest_row[x], opa));
+ }
+ for(; x < w - 3; x += 4, src_x += 8) {
+ vst1_u16(&dest_row[x], lv_color_8_16_mix_4_with_opa((const uint16_t *)&src_row[src_x], &dest_row[x], opa));
+ }
+ for(; x < w - 1; x += 2, src_x += 4) {
+ *(uint32_t *)&dest_row[x] = lv_color_8_16_mix_2_with_opa(&src_row[src_x], &dest_row[x], opa);
+ }
+ for(; x < w - 0; x += 1, src_x += 2) {
+ dest_row[x] =
+ lv_color_8_16_mix_1_internal(src_row[src_x], dest_row[x], LV_OPA_MIX2(src_row[src_x + 1], opa));
+ }
+ dest_buf_u16 = drawbuf_next_row(dest_buf_u16, dest_stride);
+ src_buf_u8 += src_stride;
+ }
+ return LV_RESULT_OK;
+}
+lv_result_t lv_draw_sw_blend_neon_al88_to_rgb565_with_mask(lv_draw_sw_blend_image_dsc_t * dsc)
+{
+ LV_ASSERT(dsc->opa >= LV_OPA_MAX);
+ LV_ASSERT(dsc->mask_buf != NULL);
+ const int32_t w = dsc->dest_w;
+ const int32_t h = dsc->dest_h;
+ uint16_t * dest_buf_u16 = dsc->dest_buf;
+ const int32_t dest_stride = dsc->dest_stride;
+ const uint8_t * src_buf_u8 = dsc->src_buf;
+ const int32_t src_stride = dsc->src_stride;
+ const uint8_t * mask_buf_u8 = dsc->mask_buf;
+ const int32_t mask_stride = dsc->mask_stride;
+
+ for(int32_t y = 0; y < h; y++) {
+ uint16_t * dest_row = dest_buf_u16;
+ const uint8_t * src_row = (const uint8_t *)src_buf_u8;
+ const uint8_t * mask_row = (const uint8_t *)mask_buf_u8;
+ int32_t x = 0;
+ int32_t src_x = 0;
+
+ for(; x < w - 7; x += 8, src_x += 16) {
+ vst1q_u16(&dest_row[x],
+ lv_color_8_16_mix_8_with_mask((const uint16_t *)&src_row[src_x], &dest_row[x], &mask_row[x]));
+ }
+ for(; x < w - 3; x += 4, src_x += 8) {
+ vst1_u16(&dest_row[x],
+ lv_color_8_16_mix_4_with_mask((const uint16_t *)&src_row[src_x], &dest_row[x], &mask_row[x]));
+ }
+ for(; x < w - 1; x += 2, src_x += 4) {
+ *(uint32_t *)&dest_row[x] = lv_color_8_16_mix_2_with_mask(&src_row[src_x], &dest_row[x], &mask_row[x]);
+ }
+ for(; x < w - 0; x += 1, src_x += 2) {
+ dest_row[x] =
+ lv_color_8_16_mix_1_internal(src_row[src_x], dest_row[x], LV_OPA_MIX2(src_row[src_x + 1], mask_row[x]));
+ }
+ dest_buf_u16 = drawbuf_next_row(dest_buf_u16, dest_stride);
+ src_buf_u8 += src_stride;
+ mask_buf_u8 += mask_stride;
+ }
+ return LV_RESULT_OK;
+}
+lv_result_t lv_draw_sw_blend_neon_al88_to_rgb565_with_opa_mask(lv_draw_sw_blend_image_dsc_t * dsc)
+{
+ LV_ASSERT(dsc->opa < LV_OPA_MAX);
+ LV_ASSERT(dsc->mask_buf != NULL);
+ const int32_t w = dsc->dest_w;
+ const int32_t h = dsc->dest_h;
+ uint16_t * dest_buf_u16 = dsc->dest_buf;
+ const int32_t dest_stride = dsc->dest_stride;
+ const uint8_t * src_buf_u8 = dsc->src_buf;
+ const int32_t src_stride = dsc->src_stride;
+ const uint8_t * mask_buf_u8 = dsc->mask_buf;
+ const int32_t mask_stride = dsc->mask_stride;
+ const uint8_t opa = dsc->opa;
+
+ for(int32_t y = 0; y < h; y++) {
+ uint16_t * dest_row = dest_buf_u16;
+ const uint8_t * src_row = (const uint8_t *)src_buf_u8;
+ const uint8_t * mask_row = (const uint8_t *)mask_buf_u8;
+ int32_t x = 0;
+ int32_t src_x = 0;
+
+ for(; x < w - 7; x += 8, src_x += 16) {
+ vst1q_u16(&dest_row[x], lv_color_8_16_mix_8_with_opa_mask((const uint16_t *)&src_row[src_x], &dest_row[x],
+ opa, &mask_row[x]));
+ }
+ for(; x < w - 3; x += 4, src_x += 8) {
+ vst1_u16(&dest_row[x], lv_color_8_16_mix_4_with_opa_mask((const uint16_t *)&src_row[src_x], &dest_row[x],
+ opa, &mask_row[x]));
+ }
+ for(; x < w - 1; x += 2, src_x += 4) {
+ *(uint32_t *)&dest_row[x] =
+ lv_color_8_16_mix_2_with_opa_mask(&src_row[src_x], &dest_row[x], opa, &mask_row[x]);
+ }
+ for(; x < w - 0; x += 1, src_x += 2) {
+ dest_row[x] = lv_color_8_16_mix_1_internal(src_row[src_x], dest_row[x],
+ LV_OPA_MIX3(src_row[src_x + 1], mask_row[x], opa));
+ }
+ dest_buf_u16 = drawbuf_next_row(dest_buf_u16, dest_stride);
+ src_buf_u8 += src_stride;
+ mask_buf_u8 += mask_stride;
+ }
+ return LV_RESULT_OK;
+}
+
+lv_result_t lv_draw_sw_blend_neon_rgb565_to_rgb565(lv_draw_sw_blend_image_dsc_t * dsc)
+{
+
+ LV_ASSERT(dsc->opa >= LV_OPA_MAX);
+ LV_ASSERT(dsc->mask_buf == NULL);
+ int32_t w = dsc->dest_w;
+ int32_t h = dsc->dest_h;
+ uint16_t * dest_buf_u16 = dsc->dest_buf;
+ int32_t dest_stride = dsc->dest_stride;
+ const uint16_t * src_buf_u16 = dsc->src_buf;
+ int32_t src_stride = dsc->src_stride;
+
+ for(int32_t y = 0; y < h; y++) {
+ uint16_t * dest_row = dest_buf_u16;
+ const uint16_t * src_row = (const uint16_t *)src_buf_u16;
+ int32_t x = 0;
+
+ for(; x < w - 7; x += 8) {
+ vst1q_u16(&dest_row[x], vld1q_u16(&src_row[x]));
+ }
+ for(; x < w - 3; x += 4) {
+ vst1_u16(&dest_row[x], vld1_u16(&src_row[x]));
+ }
+ for(; x < w - 1; x += 2) {
+ *(uint32_t *)&dest_row[x] = *(uint32_t *)&src_row[x];
+ }
+ for(; x < w - 0; x += 1) {
+ dest_row[x] = src_row[x];
+ }
+ dest_buf_u16 = drawbuf_next_row(dest_buf_u16, dest_stride);
+ src_buf_u16 = drawbuf_next_row(src_buf_u16, src_stride);
+ }
+ return LV_RESULT_OK;
+}
+lv_result_t lv_draw_sw_blend_neon_rgb565_to_rgb565_with_opa(lv_draw_sw_blend_image_dsc_t * dsc)
+{
+
+ LV_ASSERT(dsc->opa < LV_OPA_MAX);
+ LV_ASSERT(dsc->mask_buf == NULL);
+ const int32_t w = dsc->dest_w;
+ const int32_t h = dsc->dest_h;
+ uint16_t * dest_buf_u16 = dsc->dest_buf;
+ const int32_t dest_stride = dsc->dest_stride;
+ const uint16_t * src_buf_u16 = dsc->src_buf;
+ const int32_t src_stride = dsc->src_stride;
+ const uint8_t opa = dsc->opa;
+
+ for(int32_t y = 0; y < h; y++) {
+ uint16_t * dest_row = dest_buf_u16;
+ const uint16_t * src_row = (const uint16_t *)src_buf_u16;
+ int32_t x = 0;
+
+ for(; x < w - 7; x += 8) {
+ vst1q_u16(&dest_row[x], lv_color_16_16_mix_8_with_opa(&src_row[x], &dest_row[x], opa));
+ }
+ for(; x < w - 3; x += 4) {
+ vst1_u16(&dest_row[x], lv_color_16_16_mix_4_with_opa(&src_row[x], &dest_row[x], opa));
+ }
+ for(; x < w - 1; x += 2) {
+ *(uint32_t *)&dest_row[x] = lv_color_16_16_mix_2_with_opa(&src_row[x], &dest_row[x], opa);
+ }
+ for(; x < w - 0; x += 1) {
+ dest_row[x] = lv_color_16_16_mix(src_row[x], dest_row[x], opa);
+ }
+ dest_buf_u16 = drawbuf_next_row(dest_buf_u16, dest_stride);
+ src_buf_u16 = drawbuf_next_row(src_buf_u16, src_stride);
+ }
+ return LV_RESULT_OK;
+}
+lv_result_t lv_draw_sw_blend_neon_rgb565_to_rgb565_with_mask(lv_draw_sw_blend_image_dsc_t * dsc)
+{
+ LV_ASSERT(dsc->opa >= LV_OPA_MAX);
+ LV_ASSERT(dsc->mask_buf != NULL);
+ const int32_t w = dsc->dest_w;
+ const int32_t h = dsc->dest_h;
+ uint16_t * dest_buf_u16 = dsc->dest_buf;
+ const int32_t dest_stride = dsc->dest_stride;
+ const uint16_t * src_buf_u16 = dsc->src_buf;
+ const int32_t src_stride = dsc->src_stride;
+ const uint8_t * mask_buf_u8 = dsc->mask_buf;
+ const int32_t mask_stride = dsc->mask_stride;
+
+ for(int32_t y = 0; y < h; y++) {
+ uint16_t * dest_row = dest_buf_u16;
+ const uint8_t * mask_row = mask_buf_u8;
+ const uint16_t * src_row = (const uint16_t *)src_buf_u16;
+ int32_t x = 0;
+
+ for(; x < w - 7; x += 8) {
+ vst1q_u16(&dest_row[x], lv_color_16_16_mix_8_with_mask(&src_row[x], &dest_row[x], &mask_row[x]));
+ }
+ for(; x < w - 3; x += 4) {
+ vst1_u16(&dest_row[x], lv_color_16_16_mix_4_with_mask(&src_row[x], &dest_row[x], &mask_row[x]));
+ }
+ for(; x < w - 1; x += 2) {
+ *(uint32_t *)&dest_row[x] = lv_color_16_16_mix_2_with_mask(&src_row[x], &dest_row[x], &mask_row[x]);
+ }
+ for(; x < w - 0; x += 1) {
+ dest_row[x] = lv_color_16_16_mix(src_row[x], dest_row[x], mask_row[x]);
+ }
+ dest_buf_u16 = drawbuf_next_row(dest_buf_u16, dest_stride);
+ src_buf_u16 = drawbuf_next_row(src_buf_u16, src_stride);
+ mask_buf_u8 += mask_stride;
+ }
+ return LV_RESULT_OK;
+}
+lv_result_t lv_draw_sw_blend_neon_rgb565_to_rgb565_with_opa_mask(lv_draw_sw_blend_image_dsc_t * dsc)
+{
+ LV_ASSERT(dsc->opa < LV_OPA_MAX);
+ LV_ASSERT(dsc->mask_buf != NULL);
+ const int32_t w = dsc->dest_w;
+ const int32_t h = dsc->dest_h;
+ uint16_t * dest_buf_u16 = dsc->dest_buf;
+ const int32_t dest_stride = dsc->dest_stride;
+ const uint16_t * src_buf_u16 = dsc->src_buf;
+ const int32_t src_stride = dsc->src_stride;
+ const uint8_t * mask_buf_u8 = dsc->mask_buf;
+ const uint8_t opa = dsc->opa;
+ const int32_t mask_stride = dsc->mask_stride;
+
+ for(int32_t y = 0; y < h; y++) {
+ uint16_t * dest_row = dest_buf_u16;
+ const uint8_t * mask_row = mask_buf_u8;
+ const uint16_t * src_row = (const uint16_t *)src_buf_u16;
+ int32_t x = 0;
+
+ for(; x < w - 7; x += 8) {
+ vst1q_u16(&dest_row[x], lv_color_16_16_mix_8_with_opa_mask(&src_row[x], &dest_row[x], opa, &mask_row[x]));
+ }
+ for(; x < w - 3; x += 4) {
+ vst1_u16(&dest_row[x], lv_color_16_16_mix_4_with_opa_mask(&src_row[x], &dest_row[x], opa, &mask_row[x]));
+ }
+ for(; x < w - 1; x += 2) {
+ *(uint32_t *)&dest_row[x] =
+ lv_color_16_16_mix_2_with_opa_mask(&src_row[x], &dest_row[x], opa, &mask_row[x]);
+ }
+ for(; x < w - 0; x += 1) {
+ dest_row[x] = lv_color_16_16_mix(src_row[x], dest_row[x], LV_OPA_MIX2(mask_row[x], opa));
+ }
+ dest_buf_u16 = drawbuf_next_row(dest_buf_u16, dest_stride);
+ src_buf_u16 = drawbuf_next_row(src_buf_u16, src_stride);
+ mask_buf_u8 += mask_stride;
+ }
+ return LV_RESULT_OK;
+}
+lv_result_t lv_draw_sw_blend_neon_rgb888_to_rgb565(lv_draw_sw_blend_image_dsc_t * dsc, uint8_t src_px_size)
+{
+
+ LV_ASSERT(dsc->opa >= LV_OPA_MAX);
+ LV_ASSERT(dsc->mask_buf == NULL);
+ int32_t w = dsc->dest_w;
+ int32_t h = dsc->dest_h;
+ uint16_t * dest_buf_u16 = dsc->dest_buf;
+ int32_t dest_stride = dsc->dest_stride;
+ const uint8_t * src_buf_u8 = dsc->src_buf;
+ int32_t src_stride = dsc->src_stride;
+
+ for(int32_t y = 0; y < h; y++) {
+ uint16_t * dest_row = dest_buf_u16;
+ const uint8_t * src_row = (const uint8_t *)src_buf_u8;
+ int32_t x = 0;
+ int32_t src_x = 0;
+ for(; x < w - 7; x += 8, src_x += src_px_size * 8) {
+ vst1q_u16(&dest_row[x], rgb888_to_rgb565_8(&src_row[src_x], src_px_size));
+ }
+ for(; x < w - 3; x += 4, src_x += src_px_size * 4) {
+ vst1_u16(&dest_row[x], rgb888_to_rgb565_4(&src_row[src_x], src_px_size));
+ }
+ for(; x < w - 1; x += 2, src_x += src_px_size * 2) {
+ *(uint32_t *)&dest_row[x] = rgb888_to_rgb565_2(&src_row[src_x], src_px_size);
+ }
+ for(; x < w - 0; x += 1, src_x += src_px_size * 1) {
+ dest_row[x] = rgb888_to_rgb565_1(&src_row[src_x]);
+ }
+ dest_buf_u16 = drawbuf_next_row(dest_buf_u16, dest_stride);
+ src_buf_u8 += src_stride;
+ }
+
+ return LV_RESULT_OK;
+}
+
+lv_result_t lv_draw_sw_blend_neon_rgb888_to_rgb565_with_opa(lv_draw_sw_blend_image_dsc_t * dsc, uint8_t src_px_size)
+{
+ LV_ASSERT(dsc->opa < LV_OPA_MAX);
+ LV_ASSERT(dsc->mask_buf == NULL);
+ const int32_t w = dsc->dest_w;
+ const int32_t h = dsc->dest_h;
+ uint16_t * dest_buf_u16 = dsc->dest_buf;
+ const int32_t dest_stride = dsc->dest_stride;
+ const uint8_t * src_buf_u8 = dsc->src_buf;
+ const int32_t src_stride = dsc->src_stride;
+ const uint8_t opa = dsc->opa;
+
+ for(int32_t y = 0; y < h; y++) {
+ uint16_t * dest_row = dest_buf_u16;
+ const uint8_t * src_row = (const uint8_t *)src_buf_u8;
+ int32_t x = 0;
+ int32_t src_x = 0;
+
+ for(; x < w - 7; x += 8, src_x += src_px_size * 8) {
+ vst1q_u16(&dest_row[x], lv_color_24_16_mix_8_with_opa(&src_row[src_x], &dest_row[x], opa, src_px_size));
+ }
+ for(; x < w - 3; x += 4, src_x += src_px_size * 4) {
+ vst1_u16(&dest_row[x], lv_color_24_16_mix_4_with_opa(&src_row[src_x], &dest_row[x], opa, src_px_size));
+ }
+ for(; x < w - 1; x += 2, src_x += src_px_size * 2) {
+ *(uint32_t *)&dest_row[x] = lv_color_24_16_mix_2_with_opa(&src_row[src_x], &dest_row[x], opa, src_px_size);
+ }
+ for(; x < w - 0; x += 1, src_x += src_px_size * 1) {
+ dest_row[x] = lv_color_24_16_mix_1_internal(&src_row[src_x], &dest_row[x], opa);
+ }
+ dest_buf_u16 = drawbuf_next_row(dest_buf_u16, dest_stride);
+ src_buf_u8 += src_stride;
+ }
+
+ return LV_RESULT_OK;
+}
+lv_result_t lv_draw_sw_blend_neon_rgb888_to_rgb565_with_mask(lv_draw_sw_blend_image_dsc_t * dsc, uint8_t src_px_size)
+{
+ LV_ASSERT(dsc->opa >= LV_OPA_MAX);
+ LV_ASSERT(dsc->mask_buf != NULL);
+ const int32_t w = dsc->dest_w;
+ const int32_t h = dsc->dest_h;
+ uint16_t * dest_buf_u16 = dsc->dest_buf;
+ const int32_t dest_stride = dsc->dest_stride;
+ const uint8_t * src_buf_u8 = dsc->src_buf;
+ const int32_t src_stride = dsc->src_stride;
+ const uint8_t * mask_buf_u8 = dsc->mask_buf;
+ const int32_t mask_stride = dsc->mask_stride;
+
+ for(int32_t y = 0; y < h; y++) {
+ uint16_t * dest_row = dest_buf_u16;
+ const uint8_t * mask_row = mask_buf_u8;
+ const uint8_t * src_row = src_buf_u8;
+ int32_t x = 0;
+ int32_t src_x = 0;
+
+ for(; x < w - 7; x += 8, src_x += src_px_size * 8) {
+ vst1q_u16(&dest_row[x],
+ lv_color_24_16_mix_8_with_mask(&src_row[src_x], &dest_row[x], &mask_row[x], src_px_size));
+ }
+ for(; x < w - 3; x += 4, src_x += src_px_size * 4) {
+ vst1_u16(&dest_row[x],
+ lv_color_24_16_mix_4_with_mask(&src_row[src_x], &dest_row[x], &mask_row[x], src_px_size));
+ }
+ for(; x < w - 1; x += 2, src_x += src_px_size * 2) {
+ *(uint32_t *)&dest_row[x] =
+ lv_color_24_16_mix_2_with_mask(&src_row[src_x], &dest_row[x], &mask_row[x], src_px_size);
+ }
+ for(; x < w - 0; x += 1, src_x += src_px_size * 1) {
+ dest_row[x] = lv_color_24_16_mix_1_internal(&src_row[src_x], &dest_row[x], mask_row[x]);
+ }
+ dest_buf_u16 = drawbuf_next_row(dest_buf_u16, dest_stride);
+ src_buf_u8 += src_stride;
+ mask_buf_u8 += mask_stride;
+ }
+
+ return LV_RESULT_OK;
+}
+lv_result_t lv_draw_sw_blend_neon_rgb888_to_rgb565_with_opa_mask(lv_draw_sw_blend_image_dsc_t * dsc,
+ uint8_t src_px_size)
+{
+ LV_ASSERT(dsc->opa < LV_OPA_MAX);
+ LV_ASSERT(dsc->mask_buf != NULL);
+ const int32_t w = dsc->dest_w;
+ const int32_t h = dsc->dest_h;
+ uint16_t * dest_buf_u16 = dsc->dest_buf;
+ const int32_t dest_stride = dsc->dest_stride;
+ const uint8_t * src_buf_u8 = dsc->src_buf;
+ const int32_t src_stride = dsc->src_stride;
+ const uint8_t * mask_buf_u8 = dsc->mask_buf;
+ const int32_t mask_stride = dsc->mask_stride;
+ const uint8_t opa = dsc->opa;
+
+ for(int32_t y = 0; y < h; y++) {
+ uint16_t * dest_row = dest_buf_u16;
+ const uint8_t * mask_row = mask_buf_u8;
+ const uint8_t * src_row = src_buf_u8;
+ int32_t x = 0;
+ int32_t src_x = 0;
+
+ for(; x < w - 7; x += 8, src_x += src_px_size * 8) {
+ vst1q_u16(&dest_row[x], lv_color_24_16_mix_8_with_opa_mask(&src_row[src_x], &dest_row[x], opa, &mask_row[x],
+ src_px_size));
+ }
+ for(; x < w - 3; x += 4, src_x += src_px_size * 4) {
+ vst1_u16(&dest_row[x],
+ lv_color_24_16_mix_4_with_opa_mask(&src_row[src_x], &dest_row[x], opa, &mask_row[x], src_px_size));
+ }
+ for(; x < w - 1; x += 2, src_x += src_px_size * 2) {
+ *(uint32_t *)&dest_row[x] =
+ lv_color_24_16_mix_2_with_opa_mask(&src_row[src_x], &dest_row[x], opa, &mask_row[x], src_px_size);
+ }
+ for(; x < w - 0; x += 1, src_x += src_px_size * 1) {
+ dest_row[x] = lv_color_24_16_mix_1_internal(&src_row[src_x], &dest_row[x], LV_OPA_MIX2(mask_row[x], opa));
+ }
+ dest_buf_u16 = drawbuf_next_row(dest_buf_u16, dest_stride);
+ src_buf_u8 += src_stride;
+ mask_buf_u8 += mask_stride;
+ }
+
+ return LV_RESULT_OK;
+}
+lv_result_t lv_draw_sw_blend_neon_argb888_to_rgb565(lv_draw_sw_blend_image_dsc_t * dsc)
+{
+ LV_ASSERT(dsc->opa >= LV_OPA_MAX);
+ LV_ASSERT(dsc->mask_buf == NULL);
+ int32_t w = dsc->dest_w;
+ int32_t h = dsc->dest_h;
+ uint16_t * dest_buf_u16 = dsc->dest_buf;
+ int32_t dest_stride = dsc->dest_stride;
+ const uint8_t * src_buf_u8 = dsc->src_buf;
+ int32_t src_stride = dsc->src_stride;
+
+ for(int32_t y = 0; y < h; y++) {
+ uint16_t * dest_row = dest_buf_u16;
+ const uint8_t * src_row = (const uint8_t *)src_buf_u8;
+ int32_t x = 0;
+ int32_t src_x = 0;
+
+ for(; x < w - 7; x += 8, src_x += 32) {
+ vst1q_u16(&dest_row[x], lv_color_32_16_mix_8(&src_row[src_x], &dest_row[x]));
+ }
+ for(; x < w - 3; x += 4, src_x += 16) {
+ vst1_u16(&dest_row[x], lv_color_32_16_mix_4(&src_row[src_x], &dest_row[x]));
+ }
+ for(; x < w - 1; x += 2, src_x += 8) {
+ *(uint32_t *)&dest_row[x] = lv_color_32_16_mix_2(&src_row[src_x], &dest_row[x]);
+ }
+ for(; x < w - 0; x += 1, src_x += 4) {
+ dest_row[x] = lv_color_32_16_mix_1(&src_row[src_x], &dest_row[x]);
+ }
+ dest_buf_u16 = drawbuf_next_row(dest_buf_u16, dest_stride);
+ src_buf_u8 += src_stride;
+ }
+ return LV_RESULT_OK;
+}
+
+lv_result_t lv_draw_sw_blend_neon_argb888_to_rgb565_with_opa(lv_draw_sw_blend_image_dsc_t * dsc)
+{
+ LV_ASSERT(dsc->opa < LV_OPA_MAX);
+ LV_ASSERT(dsc->mask_buf == NULL);
+ const int32_t w = dsc->dest_w;
+ const int32_t h = dsc->dest_h;
+ uint16_t * dest_buf_u16 = dsc->dest_buf;
+ const int32_t dest_stride = dsc->dest_stride;
+ const uint8_t * src_buf_u8 = dsc->src_buf;
+ const int32_t src_stride = dsc->src_stride;
+ const uint8_t opa = dsc->opa;
+
+ for(int32_t y = 0; y < h; y++) {
+ uint16_t * dest_row = dest_buf_u16;
+ const uint8_t * src_row = (const uint8_t *)src_buf_u8;
+ int32_t x = 0;
+ int32_t src_x = 0;
+
+ for(; x < w - 7; x += 8, src_x += 32) {
+ vst1q_u16(&dest_row[x], lv_color_32_16_mix_8_with_opa(&src_row[src_x], &dest_row[x], opa));
+ }
+ for(; x < w - 3; x += 4, src_x += 16) {
+ vst1_u16(&dest_row[x], lv_color_32_16_mix_4_with_opa(&src_row[src_x], &dest_row[x], opa));
+ }
+ for(; x < w - 1; x += 2, src_x += 8) {
+ *(uint32_t *)&dest_row[x] = lv_color_32_16_mix_2_with_opa(&src_row[src_x], &dest_row[x], opa);
+ }
+ for(; x < w - 0; x += 1, src_x += 4) {
+ dest_row[x] = lv_color_32_16_mix_1_with_opa(&src_row[src_x], &dest_row[x], opa);
+ }
+ dest_buf_u16 = drawbuf_next_row(dest_buf_u16, dest_stride);
+ src_buf_u8 += src_stride;
+ }
+ return LV_RESULT_OK;
+}
+lv_result_t lv_draw_sw_blend_neon_argb888_to_rgb565_with_mask(lv_draw_sw_blend_image_dsc_t * dsc)
+{
+ LV_ASSERT(dsc->opa >= LV_OPA_MAX);
+ LV_ASSERT(dsc->mask_buf != NULL);
+ const int32_t w = dsc->dest_w;
+ const int32_t h = dsc->dest_h;
+ uint16_t * dest_buf_u16 = dsc->dest_buf;
+ const int32_t dest_stride = dsc->dest_stride;
+ const uint8_t * src_buf_u8 = dsc->src_buf;
+ const int32_t src_stride = dsc->src_stride;
+ const uint8_t * mask_buf_u8 = dsc->mask_buf;
+ const int32_t mask_stride = dsc->mask_stride;
+
+ for(int32_t y = 0; y < h; y++) {
+ uint16_t * dest_row = dest_buf_u16;
+ const uint8_t * mask_row = mask_buf_u8;
+ const uint8_t * src_row = (const uint8_t *)src_buf_u8;
+ int32_t x = 0;
+ int32_t src_x = 0;
+
+ for(; x < w - 7; x += 8, src_x += 32) {
+ vst1q_u16(&dest_row[x], lv_color_32_16_mix_8_with_mask(&src_row[src_x], &dest_row[x], &mask_row[x]));
+ }
+ for(; x < w - 3; x += 4, src_x += 16) {
+ vst1_u16(&dest_row[x], lv_color_32_16_mix_4_with_mask(&src_row[src_x], &dest_row[x], &mask_row[x]));
+ }
+ for(; x < w - 1; x += 2, src_x += 8) {
+ *(uint32_t *)&dest_row[x] = lv_color_32_16_mix_2_with_mask(&src_row[src_x], &dest_row[x], &mask_row[x]);
+ }
+ for(; x < w - 0; x += 1, src_x += 4) {
+ dest_row[x] = lv_color_32_16_mix_1_with_mask(&src_row[src_x], &dest_row[x], &mask_row[x]);
+ }
+ dest_buf_u16 = drawbuf_next_row(dest_buf_u16, dest_stride);
+ src_buf_u8 += src_stride;
+ mask_buf_u8 += mask_stride;
+ }
+ return LV_RESULT_OK;
+}
+lv_result_t lv_draw_sw_blend_neon_argb888_to_rgb565_with_opa_mask(lv_draw_sw_blend_image_dsc_t * dsc)
+{
+ LV_ASSERT(dsc->opa < LV_OPA_MAX);
+ LV_ASSERT(dsc->mask_buf != NULL);
+ const int32_t w = dsc->dest_w;
+ const int32_t h = dsc->dest_h;
+ uint16_t * dest_buf_u16 = dsc->dest_buf;
+ const int32_t dest_stride = dsc->dest_stride;
+ const uint8_t * src_buf_u8 = dsc->src_buf;
+ const int32_t src_stride = dsc->src_stride;
+ const uint8_t opa = dsc->opa;
+ const uint8_t * mask_buf_u8 = dsc->mask_buf;
+ const int32_t mask_stride = dsc->mask_stride;
+
+ for(int32_t y = 0; y < h; y++) {
+ uint16_t * dest_row = dest_buf_u16;
+ const uint8_t * mask_row = mask_buf_u8;
+ const uint8_t * src_row = (const uint8_t *)src_buf_u8;
+ int32_t x = 0;
+ int32_t src_x = 0;
+
+ for(; x < w - 7; x += 8, src_x += 32) {
+ vst1q_u16(&dest_row[x],
+ lv_color_32_16_mix_8_with_opa_mask(&src_row[src_x], &dest_row[x], opa, &mask_row[x]));
+ }
+ for(; x < w - 3; x += 4, src_x += 16) {
+ vst1_u16(&dest_row[x],
+ lv_color_32_16_mix_4_with_opa_mask(&src_row[src_x], &dest_row[x], opa, &mask_row[x]));
+ }
+ for(; x < w - 1; x += 2, src_x += 8) {
+ *(uint32_t *)&dest_row[x] =
+ lv_color_32_16_mix_2_with_opa_mask(&src_row[src_x], &dest_row[x], opa, &mask_row[x]);
+ }
+
+ for(; x < w - 0; x += 1, src_x += 4) {
+ dest_row[x] = lv_color_32_16_mix_1_with_opa_mask(&src_row[src_x], &dest_row[x], opa, &mask_row[x]);
+ }
+ dest_buf_u16 = drawbuf_next_row(dest_buf_u16, dest_stride);
+ src_buf_u8 += src_stride;
+ mask_buf_u8 += mask_stride;
+ }
+ return LV_RESULT_OK;
+}
+
+#if LV_DRAW_SW_SUPPORT_ARGB8888_PREMULTIPLIED
+lv_result_t lv_draw_sw_blend_neon_argb888_premultiplied_to_rgb565(lv_draw_sw_blend_image_dsc_t * dsc)
+{
+ LV_ASSERT(dsc->opa >= LV_OPA_MAX);
+ LV_ASSERT(dsc->mask_buf == NULL);
+ int32_t w = dsc->dest_w;
+ int32_t h = dsc->dest_h;
+ uint16_t * dest_buf_u16 = dsc->dest_buf;
+ int32_t dest_stride = dsc->dest_stride;
+ const uint8_t * src_buf_u8 = dsc->src_buf;
+ int32_t src_stride = dsc->src_stride;
+
+ for(int32_t y = 0; y < h; y++) {
+ uint16_t * dest_row = dest_buf_u16;
+ const uint8_t * src_row = (const uint8_t *)src_buf_u8;
+ int32_t x = 0;
+ int32_t src_x = 0;
+
+ for(; x < w - 7; x += 8, src_x += 32) {
+ vst1q_u16(&dest_row[x], lv_color_24_16_mix_premult_8(&src_row[src_x], &dest_row[x]));
+ }
+ for(; x < w - 3; x += 4, src_x += 16) {
+ vst1_u16(&dest_row[x], lv_color_24_16_mix_premult_4(&src_row[src_x], &dest_row[x]));
+ }
+ for(; x < w - 1; x += 2, src_x += 8) {
+ *(uint32_t *)&dest_row[x] = lv_color_24_16_mix_premult_2(&src_row[src_x], &dest_row[x]);
+ }
+ for(; x < w - 0; x += 1, src_x += 4) {
+ dest_row[x] = lv_color_24_16_mix_premult_1(&src_row[src_x], &dest_row[x]);
+ }
+ dest_buf_u16 = drawbuf_next_row(dest_buf_u16, dest_stride);
+ src_buf_u8 += src_stride;
+ }
+ return LV_RESULT_OK;
+}
+#endif
+
+/**********************
+ * STATIC FUNCTIONS
+ **********************/
+
+static inline uint16x8_t l8_to_rgb565_8(const uint8_t * src)
+{
+ uint16x8_t pixels = vmovl_u8(vld1_u8(src));
+ uint16x8_t r = vshlq_n_u16(vandq_u16(pixels, vdupq_n_u16(0xF8)), 8);
+ uint16x8_t g = vshlq_n_u16(vandq_u16(pixels, vdupq_n_u16(0xFC)), 3);
+ uint16x8_t b = vshrq_n_u16(vandq_u16(pixels, vdupq_n_u16(0xF8)), 3);
+ return vorrq_u16(vorrq_u16(r, g), b);
+}
+
+static inline uint16x4_t l8_to_rgb565_4(const uint8_t * src)
+{
+ const uint8_t tmp[8] = {src[0], src[1], src[2], src[3]};
+ const uint16x8_t p = vmovl_u8(vld1_u8(tmp));
+ const uint16x4_t pixels = vget_low_u16(p);
+
+ const uint16x4_t r = vshl_n_u16(vand_u16(pixels, vdup_n_u16(0xF8)), 8);
+ const uint16x4_t g = vshl_n_u16(vand_u16(pixels, vdup_n_u16(0xFC)), 3);
+ const uint16x4_t b = vshr_n_u16(vand_u16(pixels, vdup_n_u16(0xF8)), 3);
+ return vorr_u16(vorr_u16(r, g), b);
+}
+
+static inline uint32_t l8_to_rgb565_2(const uint8_t * src)
+{
+ return ((uint32_t)l8_to_rgb565_1(src + 1) << 16) | l8_to_rgb565_1(src);
+}
+static inline uint16_t l8_to_rgb565_1(const uint8_t * src)
+{
+ return ((src[0] & 0xF8) << 8) + ((src[0] & 0xFC) << 3) + ((src[0] & 0xF8) >> 3);
+}
+
+static inline uint16x8_t lv_color_8_16_mix_8(const uint16_t * src, const uint16_t * dst)
+{
+ const uint16x8_t src_mix_pixels = vld1q_u16(src);
+ const uint16x8_t dst_pixels = vld1q_u16(dst);
+ const uint16x8_t src_pixels = vandq_u16(src_mix_pixels, vdupq_n_u16(0xFF));
+ const uint16x8_t mix_pixels = vshrq_n_u16(src_mix_pixels, 8);
+
+ return lv_color_8_16_mix_8_internal(src_pixels, dst_pixels, mix_pixels);
+}
+
+static inline uint16x8_t lv_color_8_16_mix_8_with_opa(const uint16_t * src, const uint16_t * dst, uint8_t opa)
+{
+ const uint16x8_t src_mix_pixels = vld1q_u16(src);
+ const uint16x8_t dst_pixels = vld1q_u16(dst);
+ const uint16x8_t src_pixels = vandq_u16(src_mix_pixels, vdupq_n_u16(0xFF));
+ const uint16x8_t mix_pixels = vshrq_n_u16(src_mix_pixels, 8);
+ const uint16x8_t opa_vec = vmovq_n_u16(opa);
+ const uint16x8_t mix_vec = vshrq_n_u16(vmulq_u16(opa_vec, mix_pixels), 8);
+ return lv_color_8_16_mix_8_internal(src_pixels, dst_pixels, mix_vec);
+}
+
+static inline uint16x4_t lv_color_8_16_mix_4_with_opa(const uint16_t * src, const uint16_t * dst, uint8_t opa)
+{
+ const uint16x4_t src_mix_pixels = vld1_u16(src);
+ const uint16x4_t dst_pixels = vld1_u16(dst);
+ const uint16x4_t src_pixels = vand_u16(src_mix_pixels, vdup_n_u16(0xFF));
+ const uint16x4_t mix_pixels = vshr_n_u16(src_mix_pixels, 8);
+ const uint16x4_t opa_vec = vmov_n_u16(opa);
+ const uint16x4_t mix_vec = vshr_n_u16(vmul_u16(opa_vec, mix_pixels), 8);
+ return lv_color_8_16_mix_4_internal(src_pixels, dst_pixels, mix_vec);
+}
+static inline uint16x8_t lv_color_8_16_mix_8_with_mask(const uint16_t * src, const uint16_t * dst, const uint8_t * mask)
+{
+ const uint16x8_t src_mix_pixels = vld1q_u16(src);
+ const uint16x8_t dst_pixels = vld1q_u16(dst);
+ const uint16x8_t src_pixels = vandq_u16(src_mix_pixels, vdupq_n_u16(0xFF));
+ const uint16x8_t mix_pixels = vshrq_n_u16(src_mix_pixels, 8);
+ const uint16x8_t mask_vec = vmovl_u8(vld1_u8(mask));
+ const uint16x8_t mix_vec = vshrq_n_u16(vmulq_u16(mask_vec, mix_pixels), 8);
+ return lv_color_8_16_mix_8_internal(src_pixels, dst_pixels, mix_vec);
+}
+
+static inline uint16x4_t lv_color_8_16_mix_4_with_mask(const uint16_t * src, const uint16_t * dst, const uint8_t * mask)
+{
+ const uint16x4_t src_mix_pixels = vld1_u16(src);
+ const uint16x4_t dst_pixels = vld1_u16(dst);
+ const uint16x4_t src_pixels = vand_u16(src_mix_pixels, vdup_n_u16(0xFF));
+ const uint16x4_t mix_pixels = vshr_n_u16(src_mix_pixels, 8);
+ const uint16x4_t mask_vec = vget_low_u16(vmovl_u8(vld1_u8(mask)));
+ const uint16x4_t mix_vec = vshr_n_u16(vmul_u16(mask_vec, mix_pixels), 8);
+ return lv_color_8_16_mix_4_internal(src_pixels, dst_pixels, mix_vec);
+}
+static inline uint16x8_t lv_color_8_16_mix_8_with_opa_mask(const uint16_t * src, const uint16_t * dst, uint8_t opa,
+ const uint8_t * mask)
+{
+ const uint16x8_t src_mix_pixels = vld1q_u16(src);
+ const uint16x8_t dst_pixels = vld1q_u16(dst);
+ const uint16x8_t src_pixels = vandq_u16(src_mix_pixels, vdupq_n_u16(0xFF));
+ const uint16x8_t mix_pixels = vshrq_n_u16(src_mix_pixels, 8);
+ const uint16x8_t mask_vec = vmovl_u8(vld1_u8(mask));
+ const uint16x8_t opa_vec = vmovq_n_u16(opa);
+
+ /* Use uint32 for intermediate multiplication results to avoid 16bit overflows */
+ const uint32x4_t mix_pixels_low = vmovl_u16(vget_low_u16(mix_pixels));
+ const uint32x4_t mix_pixels_high = vmovl_u16(vget_high_u16(mix_pixels));
+ const uint32x4_t opa_vec_low = vmovl_u16(vget_low_u16(opa_vec));
+ const uint32x4_t opa_vec_high = vmovl_u16(vget_high_u16(opa_vec));
+ const uint32x4_t mask_vec_low = vmovl_u16(vget_low_u16(mask_vec));
+ const uint32x4_t mask_vec_high = vmovl_u16(vget_high_u16(mask_vec));
+
+ const uint32x4_t mul_low = vshrq_n_u32(vmulq_u32(vmulq_u32(mix_pixels_low, opa_vec_low), mask_vec_low), 16);
+ const uint32x4_t mul_high = vshrq_n_u32(vmulq_u32(vmulq_u32(mix_pixels_high, opa_vec_high), mask_vec_high), 16);
+ const uint16x8_t mix_vec = vcombine_u16(vmovn_u32(mul_low), vmovn_u32(mul_high));
+ return lv_color_8_16_mix_8_internal(src_pixels, dst_pixels, mix_vec);
+}
+
+static inline uint16x4_t lv_color_8_16_mix_4_with_opa_mask(const uint16_t * src, const uint16_t * dst, uint8_t opa,
+ const uint8_t * mask)
+{
+
+ const uint16x4_t src_mix_pixels = vld1_u16(src);
+ const uint16x4_t dst_pixels = vld1_u16(dst);
+ const uint16x4_t src_pixels = vand_u16(src_mix_pixels, vdup_n_u16(0xFF));
+ const uint16x4_t mix_pixels = vshr_n_u16(src_mix_pixels, 8);
+ const uint16x4_t opa_vec = vmov_n_u16(opa);
+ const uint16x4_t mask_vec = vget_low_u16(vmovl_u8(vld1_u8(mask)));
+ const uint32x4_t a_pixels_low = vmovl_u16(mix_pixels);
+ const uint32x4_t opa_vec_low = vmovl_u16(opa_vec);
+ const uint32x4_t mask_vec_low = vmovl_u16(mask_vec);
+
+ const uint32x4_t mul_result = vshrq_n_u32(vmulq_u32(vmulq_u32(a_pixels_low, opa_vec_low), mask_vec_low), 16);
+ const uint16x4_t mix_vec = vmovn_u32(mul_result);
+ return lv_color_8_16_mix_4_internal(src_pixels, dst_pixels, mix_vec);
+}
+
+static inline uint16x8_t lv_color_8_16_mix_8_internal(uint16x8_t src_pixels, uint16x8_t dst_pixels,
+ uint16x8_t mix_pixels)
+{
+ const uint16x8_t mix_zero_mask = vceqq_u16(mix_pixels, vdupq_n_u16(0));
+ const uint16x8_t mix_full_mask = vceqq_u16(mix_pixels, vdupq_n_u16(255));
+ /* Prepare result in case mix == 255 */
+ const uint16x8_t src_r565 = vshlq_n_u16(vandq_u16(src_pixels, vdupq_n_u16(0xF8)), 8);
+ const uint16x8_t src_g565 = vshlq_n_u16(vandq_u16(src_pixels, vdupq_n_u16(0xFC)), 3);
+ const uint16x8_t src_b565 = vshrq_n_u16(vandq_u16(src_pixels, vdupq_n_u16(0xF8)), 3);
+ const uint16x8_t src_rgb565 = vaddq_u16(vaddq_u16(src_r565, src_g565), src_b565);
+
+ /* Do the actual blending */
+ const uint16x8_t mix_inv_16 = vsubq_u16(vdupq_n_u16(255), mix_pixels);
+
+ /* Red: ((c1 >> 3) * mix + ((c2 >> 11) & 0x1F) * mix_inv) << 3) & 0xF800 */
+ const uint16x8_t src_r = vmulq_u16(vshrq_n_u16(src_pixels, 3), mix_pixels);
+ const uint16x8_t dst_r = vandq_u16(vshrq_n_u16(dst_pixels, 11), vdupq_n_u16(0x1F));
+ uint16x8_t blended_r = vmlaq_u16(src_r, dst_r, mix_inv_16);
+ blended_r = vandq_u16(vshlq_n_u16(blended_r, 3), vdupq_n_u16(0xF800));
+
+ /* Green: ((c1 >> 2) * mix + ((c2 >> 5) & 0x3F) * mix_inv) >> 3) & 0x07E0 */
+ const uint16x8_t src_g = vmulq_u16(vshrq_n_u16(src_pixels, 2), mix_pixels);
+ const uint16x8_t dst_g = vandq_u16(vshrq_n_u16(dst_pixels, 5), vdupq_n_u16(0x3F));
+ uint16x8_t blended_g = vmlaq_u16(src_g, dst_g, mix_inv_16);
+ blended_g = vandq_u16(vshrq_n_u16(blended_g, 3), vdupq_n_u16(0x07E0));
+
+ /* Blue: ((c1 >> 3) * mix + (c2 & 0x1F) * mix_inv) >> 8 */
+ const uint16x8_t src_b = vmulq_u16(vshrq_n_u16(src_pixels, 3), mix_pixels);
+ const uint16x8_t dst_b = vandq_u16(dst_pixels, vdupq_n_u16(0x1F));
+ uint16x8_t blended_b = vmlaq_u16(src_b, dst_b, mix_inv_16);
+ blended_b = vshrq_n_u16(blended_b, 8);
+
+ /* Select what value to take for each pixel depending on original mix value */
+ const uint16x8_t blended_result = vorrq_u16(vorrq_u16(blended_r, blended_g), blended_b);
+ const uint16x8_t result = vbslq_u16(mix_zero_mask, dst_pixels, blended_result);
+ return vbslq_u16(mix_full_mask, src_rgb565, result);
+}
+static inline uint16x4_t lv_color_8_16_mix_4_internal(uint16x4_t src_pixels, uint16x4_t dst_pixels,
+ uint16x4_t mix_pixels)
+{
+
+ const uint16x4_t mix_zero_mask = vceq_u16(mix_pixels, vdup_n_u16(0));
+ const uint16x4_t mix_full_mask = vceq_u16(mix_pixels, vdup_n_u16(255));
+ /* Prepare result in case mix == 255 */
+ const uint16x4_t src_r565 = vshl_n_u16(vand_u16(src_pixels, vdup_n_u16(0xF8)), 8);
+ const uint16x4_t src_g565 = vshl_n_u16(vand_u16(src_pixels, vdup_n_u16(0xFC)), 3);
+ const uint16x4_t src_b565 = vshr_n_u16(vand_u16(src_pixels, vdup_n_u16(0xF8)), 3);
+ const uint16x4_t src_rgb565 = vadd_u16(vadd_u16(src_r565, src_g565), src_b565);
+ const uint16x4_t mix_inv_16 = vsub_u16(vdup_n_u16(255), mix_pixels);
+
+ /* Red: ((c1 >> 3) * mix + ((c2 >> 11) & 0x1F) * mix_inv) << 3) & 0xF800 */
+ const uint16x4_t src_r = vmul_u16(vshr_n_u16(src_pixels, 3), mix_pixels);
+ const uint16x4_t dst_r = vand_u16(vshr_n_u16(dst_pixels, 11), vdup_n_u16(0x1F));
+ uint16x4_t blended_r = vmla_u16(src_r, dst_r, mix_inv_16);
+ blended_r = vand_u16(vshl_n_u16(blended_r, 3), vdup_n_u16(0xF800));
+
+ /* Green: ((c1 >> 2) * mix + ((c2 >> 5) & 0x3F) * mix_inv) >> 3) & 0x07E0 */
+ const uint16x4_t src_g = vmul_u16(vshr_n_u16(src_pixels, 2), mix_pixels);
+ const uint16x4_t dst_g = vand_u16(vshr_n_u16(dst_pixels, 5), vdup_n_u16(0x3F));
+ uint16x4_t blended_g = vmla_u16(src_g, dst_g, mix_inv_16);
+ blended_g = vand_u16(vshr_n_u16(blended_g, 3), vdup_n_u16(0x07E0));
+
+ /* Blue: ((c1 >> 3) * mix + (c2 & 0x1F) * mix_inv) >> 8 */
+ const uint16x4_t src_b = vmul_u16(vshr_n_u16(src_pixels, 3), mix_pixels);
+ const uint16x4_t dst_b = vand_u16(dst_pixels, vdup_n_u16(0x1F));
+ uint16x4_t blended_b = vmla_u16(src_b, dst_b, mix_inv_16);
+ blended_b = vshr_n_u16(blended_b, 8);
+
+ const uint16x4_t blended_result = vorr_u16(vorr_u16(blended_r, blended_g), blended_b);
+ const uint16x4_t result = vbsl_u16(mix_zero_mask, dst_pixels, blended_result);
+ return vbsl_u16(mix_full_mask, src_rgb565, result);
+}
+
+static inline uint16x4_t lv_color_8_16_mix_4(const uint16_t * src, const uint16_t * dst)
+{
+ const uint16x4_t src_mix_pixels = vld1_u16(src);
+ const uint16x4_t dst_pixels = vld1_u16(dst);
+ const uint16x4_t src_pixels = vand_u16(src_mix_pixels, vdup_n_u16(0xFF));
+ const uint16x4_t mix_pixels = vshr_n_u16(src_mix_pixels, 8);
+ return lv_color_8_16_mix_4_internal(src_pixels, dst_pixels, mix_pixels);
+}
+
+static inline uint32_t lv_color_8_16_mix_2(const uint8_t * src, const uint16_t * dst)
+{
+ return ((uint32_t)lv_color_8_16_mix_1_internal(src[2], dst[1], src[3]) << 16) |
+ lv_color_8_16_mix_1_internal(src[0], dst[0], src[1]);
+}
+
+static inline uint32_t lv_color_8_16_mix_2_with_opa(const uint8_t * src, const uint16_t * dst, uint8_t opa)
+{
+ return ((uint32_t)lv_color_8_16_mix_1_internal(src[2], dst[1], LV_OPA_MIX2(src[3], opa)) << 16) |
+ lv_color_8_16_mix_1_internal(src[0], dst[0], LV_OPA_MIX2(src[1], opa));
+}
+
+static inline uint32_t lv_color_8_16_mix_2_with_mask(const uint8_t * src, const uint16_t * dst, const uint8_t * mask)
+{
+
+ return ((uint32_t)lv_color_8_16_mix_1_internal(src[2], dst[1], LV_OPA_MIX2(src[3], mask[1])) << 16) |
+ lv_color_8_16_mix_1_internal(src[0], dst[0], LV_OPA_MIX2(src[1], mask[0]));
+}
+static inline uint32_t lv_color_8_16_mix_2_with_opa_mask(const uint8_t * src, const uint16_t * dst, uint8_t opa,
+ const uint8_t * mask)
+{
+
+ return ((uint32_t)lv_color_8_16_mix_1_internal(src[2], dst[1], LV_OPA_MIX3(src[3], mask[1], opa)) << 16) |
+ lv_color_8_16_mix_1_internal(src[0], dst[0], LV_OPA_MIX3(src[3], mask[0], opa));
+}
+
+static inline uint16_t lv_color_8_16_mix_1_internal(uint8_t src, uint16_t dst, uint8_t mix)
+{
+ const uint8_t c1 = src;
+ const uint16_t c2 = dst;
+
+ if(mix == 0) {
+ return c2;
+ }
+ else if(mix == 255) {
+ return ((c1 & 0xF8) << 8) + ((c1 & 0xFC) << 3) + ((c1 & 0xF8) >> 3);
+ }
+ else {
+ uint8_t mix_inv = 255 - mix;
+ return ((((c1 >> 3) * mix + ((c2 >> 11) & 0x1F) * mix_inv) << 3) & 0xF800) +
+ ((((c1 >> 2) * mix + ((c2 >> 5) & 0x3F) * mix_inv) >> 3) & 0x07E0) +
+ (((c1 >> 3) * mix + (c2 & 0x1F) * mix_inv) >> 8);
+ }
+}
+
+static inline uint16x8_t lv_color_32_16_mix_8(const uint8_t * src, const uint16_t * dst)
+{
+ const uint16x8_t dst_pixels = vld1q_u16(dst);
+
+ const uint8x8x4_t rgba = vld4_u8(src);
+ const uint16x8_t b_pixels = vmovl_u8(rgba.val[0]);
+ const uint16x8_t g_pixels = vmovl_u8(rgba.val[1]);
+ const uint16x8_t r_pixels = vmovl_u8(rgba.val[2]);
+ const uint16x8_t a_pixels = vmovl_u8(rgba.val[3]);
+
+ return lv_color_32_16_mix_8_internal(r_pixels, g_pixels, b_pixels, a_pixels, dst_pixels);
+}
+static inline uint16x4_t lv_color_32_16_mix_4(const uint8_t * src, const uint16_t * dst)
+{
+ const uint16x4_t dst_pixels = vld1_u16(dst);
+ uint8_t b_array[8] = {src[0], src[4], src[8], src[12], 0, 0, 0, 0};
+ uint8_t g_array[8] = {src[1], src[5], src[9], src[13], 0, 0, 0, 0};
+ uint8_t r_array[8] = {src[2], src[6], src[10], src[14], 0, 0, 0, 0};
+ uint8_t a_array[8] = {src[3], src[7], src[11], src[15], 0, 0, 0, 0};
+ const uint16x4_t b_pixels = vget_low_u16(vmovl_u8(vld1_u8(b_array)));
+ const uint16x4_t g_pixels = vget_low_u16(vmovl_u8(vld1_u8(g_array)));
+ const uint16x4_t r_pixels = vget_low_u16(vmovl_u8(vld1_u8(r_array)));
+ const uint16x4_t a_pixels = vget_low_u16(vmovl_u8(vld1_u8(a_array)));
+ return lv_color_32_16_mix_4_internal(r_pixels, g_pixels, b_pixels, a_pixels, dst_pixels);
+}
+
+static inline uint16x8_t lv_color_24_16_mix_8_with_mask(const uint8_t * src, const uint16_t * dst, const uint8_t * mask,
+ uint8_t src_px_size)
+{
+ uint16x8_t b_pixels;
+ uint16x8_t g_pixels;
+ uint16x8_t r_pixels;
+ LV_ASSERT_MSG(src_px_size == 3 || src_px_size == 4, "Invalid pixel size for rgb888. Expected either 3 or 4 bytes");
+
+ if(src_px_size == 3) {
+ const uint8x8x3_t rgba = vld3_u8(src);
+ b_pixels = vmovl_u8(rgba.val[0]);
+ g_pixels = vmovl_u8(rgba.val[1]);
+ r_pixels = vmovl_u8(rgba.val[2]);
+ }
+ else if(src_px_size == 4) {
+ const uint8x8x4_t rgba = vld4_u8(src);
+ b_pixels = vmovl_u8(rgba.val[0]);
+ g_pixels = vmovl_u8(rgba.val[1]);
+ r_pixels = vmovl_u8(rgba.val[2]);
+ }
+ const uint16x8_t dst_pixels = vld1q_u16(dst);
+ const uint16x8_t mask_vec = vmovl_u8(vld1_u8(mask));
+
+ return lv_color_32_16_mix_8_internal(r_pixels, g_pixels, b_pixels, mask_vec, dst_pixels);
+}
+static inline uint16x4_t lv_color_24_16_mix_4_with_mask(const uint8_t * src, const uint16_t * dst, const uint8_t * mask,
+ uint8_t src_px_size)
+{
+ uint16x4_t b_pixels;
+ uint16x4_t g_pixels;
+ uint16x4_t r_pixels;
+ LV_ASSERT_MSG(src_px_size == 3 || src_px_size == 4, "Invalid pixel size for rgb888. Expected either 3 or 4 bytes");
+
+ if(src_px_size == 3) {
+ const uint8x8x3_t rgba = vld3_u8(src);
+ b_pixels = vget_low_u16(vmovl_u8(rgba.val[0]));
+ g_pixels = vget_low_u16(vmovl_u8(rgba.val[1]));
+ r_pixels = vget_low_u16(vmovl_u8(rgba.val[2]));
+ }
+ else if(src_px_size == 4) {
+ const uint8x8x4_t rgba = vld4_u8(src);
+ b_pixels = vget_low_u16(vmovl_u8(rgba.val[0]));
+ g_pixels = vget_low_u16(vmovl_u8(rgba.val[1]));
+ r_pixels = vget_low_u16(vmovl_u8(rgba.val[2]));
+ }
+ const uint16x4_t dst_pixels = vld1_u16(dst);
+ const uint16x4_t mask_vec = vget_low_u16(vmovl_u8(vld1_u8(mask)));
+
+ return lv_color_32_16_mix_4_internal(r_pixels, g_pixels, b_pixels, mask_vec, dst_pixels);
+}
+
+static inline uint16x8_t lv_color_24_16_mix_8_with_opa_mask(const uint8_t * src, const uint16_t * dst, uint8_t opa,
+ const uint8_t * mask, uint8_t src_px_size)
+{
+ uint16x8_t b_pixels;
+ uint16x8_t g_pixels;
+ uint16x8_t r_pixels;
+ LV_ASSERT_MSG(src_px_size == 3 || src_px_size == 4, "Invalid pixel size for rgb888. Expected either 3 or 4 bytes");
+
+ if(src_px_size == 3) {
+ const uint8x8x3_t rgba = vld3_u8(src);
+ b_pixels = vmovl_u8(rgba.val[0]);
+ g_pixels = vmovl_u8(rgba.val[1]);
+ r_pixels = vmovl_u8(rgba.val[2]);
+ }
+ else if(src_px_size == 4) {
+ const uint8x8x4_t rgba = vld4_u8(src);
+ b_pixels = vmovl_u8(rgba.val[0]);
+ g_pixels = vmovl_u8(rgba.val[1]);
+ r_pixels = vmovl_u8(rgba.val[2]);
+ }
+ const uint16x8_t dst_pixels = vld1q_u16(dst);
+ const uint16x8_t mask_vec = vmovl_u8(vld1_u8(mask));
+ const uint16x8_t opa_vec = vmovq_n_u16(opa);
+ const uint16x8_t mix_vec = vshrq_n_u16(vmulq_u16(opa_vec, mask_vec), 8);
+
+ return lv_color_32_16_mix_8_internal(r_pixels, g_pixels, b_pixels, mix_vec, dst_pixels);
+}
+static inline uint16x4_t lv_color_24_16_mix_4_with_opa_mask(const uint8_t * src, const uint16_t * dst, uint8_t opa,
+ const uint8_t * mask, uint8_t src_px_size)
+{
+ uint16x4_t b_pixels;
+ uint16x4_t g_pixels;
+ uint16x4_t r_pixels;
+ LV_ASSERT_MSG(src_px_size == 3 || src_px_size == 4, "Invalid pixel size for rgb888. Expected either 3 or 4 bytes");
+
+ if(src_px_size == 3) {
+ const uint8x8x3_t rgba = vld3_u8(src);
+ b_pixels = vget_low_u16(vmovl_u8(rgba.val[0]));
+ g_pixels = vget_low_u16(vmovl_u8(rgba.val[1]));
+ r_pixels = vget_low_u16(vmovl_u8(rgba.val[2]));
+ }
+ else if(src_px_size == 4) {
+ const uint8x8x4_t rgba = vld4_u8(src);
+ b_pixels = vget_low_u16(vmovl_u8(rgba.val[0]));
+ g_pixels = vget_low_u16(vmovl_u8(rgba.val[1]));
+ r_pixels = vget_low_u16(vmovl_u8(rgba.val[2]));
+ }
+ const uint16x4_t dst_pixels = vld1_u16(dst);
+ const uint16x4_t mask_vec = vget_low_u16(vmovl_u8(vld1_u8(mask)));
+ const uint16x4_t opa_vec = vmov_n_u16(opa);
+ const uint16x4_t mix_vec = vshr_n_u16(vmul_u16(opa_vec, mask_vec), 8);
+
+ return lv_color_32_16_mix_4_internal(r_pixels, g_pixels, b_pixels, mix_vec, dst_pixels);
+}
+static inline uint32_t lv_color_24_16_mix_2_with_opa_mask(const uint8_t * src, const uint16_t * dst, uint8_t opa,
+ const uint8_t * mask, uint8_t src_px_size)
+{
+
+ return (lv_color_24_16_mix_1_internal(src + src_px_size, dst + 1, LV_OPA_MIX2(mask[1], opa)) << 16) |
+ lv_color_24_16_mix_1_internal(src, dst, LV_OPA_MIX2(mask[0], opa));
+}
+static inline uint16x8_t lv_color_24_16_mix_8_with_opa(const uint8_t * src, const uint16_t * dst, uint8_t opa,
+ uint8_t src_px_size)
+{
+ uint16x8_t b_pixels;
+ uint16x8_t g_pixels;
+ uint16x8_t r_pixels;
+ LV_ASSERT_MSG(src_px_size == 3 || src_px_size == 4, "Invalid pixel size for rgb888. Expected either 3 or 4 bytes");
+
+ if(src_px_size == 3) {
+ const uint8x8x3_t rgba = vld3_u8(src);
+ b_pixels = vmovl_u8(rgba.val[0]);
+ g_pixels = vmovl_u8(rgba.val[1]);
+ r_pixels = vmovl_u8(rgba.val[2]);
+ }
+ else if(src_px_size == 4) {
+ const uint8x8x4_t rgba = vld4_u8(src);
+ b_pixels = vmovl_u8(rgba.val[0]);
+ g_pixels = vmovl_u8(rgba.val[1]);
+ r_pixels = vmovl_u8(rgba.val[2]);
+ }
+ const uint16x8_t dst_pixels = vld1q_u16(dst);
+ const uint16x8_t opa_vec = vmovq_n_u16(opa);
+
+ return lv_color_32_16_mix_8_internal(r_pixels, g_pixels, b_pixels, opa_vec, dst_pixels);
+}
+static inline uint16x8_t lv_color_32_16_mix_8_with_opa(const uint8_t * src, const uint16_t * dst, uint8_t opa)
+{
+ const uint16x8_t dst_pixels = vld1q_u16(dst);
+
+ const uint8x8x4_t rgba = vld4_u8(src);
+ const uint16x8_t b_pixels = vmovl_u8(rgba.val[0]);
+ const uint16x8_t g_pixels = vmovl_u8(rgba.val[1]);
+ const uint16x8_t r_pixels = vmovl_u8(rgba.val[2]);
+ const uint16x8_t a_pixels = vmovl_u8(rgba.val[3]);
+ const uint16x8_t opa_vec = vmovq_n_u16(opa);
+ const uint16x8_t opa_a_mul = vshrq_n_u16(vmulq_u16(a_pixels, opa_vec), 8);
+
+ return lv_color_32_16_mix_8_internal(r_pixels, g_pixels, b_pixels, opa_a_mul, dst_pixels);
+}
+
+static inline uint16x4_t lv_color_24_16_mix_4_with_opa(const uint8_t * src, const uint16_t * dst, uint8_t mix,
+ uint8_t src_px_size)
+{
+
+ uint16x4_t b_pixels;
+ uint16x4_t g_pixels;
+ uint16x4_t r_pixels;
+ LV_ASSERT_MSG(src_px_size == 3 || src_px_size == 4, "Invalid pixel size for rgb888. Expected either 3 or 4 bytes");
+
+ if(src_px_size == 3) {
+ const uint8x8x3_t rgba = vld3_u8(src);
+ b_pixels = vget_low_u16(vmovl_u8(rgba.val[0]));
+ g_pixels = vget_low_u16(vmovl_u8(rgba.val[1]));
+ r_pixels = vget_low_u16(vmovl_u8(rgba.val[2]));
+ }
+ else if(src_px_size == 4) {
+ const uint8x8x4_t rgba = vld4_u8(src);
+ b_pixels = vget_low_u16(vmovl_u8(rgba.val[0]));
+ g_pixels = vget_low_u16(vmovl_u8(rgba.val[1]));
+ r_pixels = vget_low_u16(vmovl_u8(rgba.val[2]));
+ }
+ const uint16x4_t dst_pixels = vld1_u16(dst);
+ const uint16x4_t mix_vec = vget_low_u16(vmovq_n_u16(mix));
+
+ return lv_color_32_16_mix_4_internal(r_pixels, g_pixels, b_pixels, mix_vec, dst_pixels);
+}
+static inline uint16x4_t lv_color_32_16_mix_4_with_opa(const uint8_t * src, const uint16_t * dst, uint8_t opa)
+{
+ const uint16x4_t dst_pixels = vld1_u16(dst);
+ uint8_t b_array[8] = {src[0], src[4], src[8], src[12], 0, 0, 0, 0};
+ uint8_t g_array[8] = {src[1], src[5], src[9], src[13], 0, 0, 0, 0};
+ uint8_t r_array[8] = {src[2], src[6], src[10], src[14], 0, 0, 0, 0};
+ uint8_t a_array[8] = {src[3], src[7], src[11], src[15], 0, 0, 0, 0};
+ const uint16x4_t b_pixels = vget_low_u16(vmovl_u8(vld1_u8(b_array)));
+ const uint16x4_t g_pixels = vget_low_u16(vmovl_u8(vld1_u8(g_array)));
+ const uint16x4_t r_pixels = vget_low_u16(vmovl_u8(vld1_u8(r_array)));
+ const uint16x4_t a_pixels = vget_low_u16(vmovl_u8(vld1_u8(a_array)));
+ const uint16x4_t opa_vec = vmov_n_u16(opa);
+ const uint16x4_t opa_a_mul = vshr_n_u16(vmul_u16(a_pixels, opa_vec), 8);
+
+ return lv_color_32_16_mix_4_internal(r_pixels, g_pixels, b_pixels, opa_a_mul, dst_pixels);
+}
+
+static inline uint16x8_t lv_color_32_16_mix_8_with_mask(const uint8_t * src, const uint16_t * dst, const uint8_t * mask)
+{
+ const uint16x8_t dst_pixels = vld1q_u16(dst);
+
+ const uint8x8x4_t rgba = vld4_u8(src);
+ const uint16x8_t b_pixels = vmovl_u8(rgba.val[0]);
+ const uint16x8_t g_pixels = vmovl_u8(rgba.val[1]);
+ const uint16x8_t r_pixels = vmovl_u8(rgba.val[2]);
+ const uint16x8_t a_pixels = vmovl_u8(rgba.val[3]);
+ const uint16x8_t mask_vec = vmovl_u8(vld1_u8(mask));
+ const uint16x8_t mask_a_mul = vshrq_n_u16(vmulq_u16(a_pixels, mask_vec), 8);
+
+ return lv_color_32_16_mix_8_internal(r_pixels, g_pixels, b_pixels, mask_a_mul, dst_pixels);
+}
+static inline uint16x4_t lv_color_32_16_mix_4_with_mask(const uint8_t * src, const uint16_t * dst, const uint8_t * mask)
+{
+
+ const uint16x4_t dst_pixels = vld1_u16(dst);
+ uint8_t b_array[8] = {src[0], src[4], src[8], src[12], 0, 0, 0, 0};
+ uint8_t g_array[8] = {src[1], src[5], src[9], src[13], 0, 0, 0, 0};
+ uint8_t r_array[8] = {src[2], src[6], src[10], src[14], 0, 0, 0, 0};
+ uint8_t a_array[8] = {src[3], src[7], src[11], src[15], 0, 0, 0, 0};
+ uint8_t mask_array[8] = {mask[0], mask[1], mask[2], mask[3], 0, 0, 0, 0};
+ const uint16x4_t b_pixels = vget_low_u16(vmovl_u8(vld1_u8(b_array)));
+ const uint16x4_t g_pixels = vget_low_u16(vmovl_u8(vld1_u8(g_array)));
+ const uint16x4_t r_pixels = vget_low_u16(vmovl_u8(vld1_u8(r_array)));
+ const uint16x4_t a_pixels = vget_low_u16(vmovl_u8(vld1_u8(a_array)));
+ const uint16x4_t mask_vec = vget_low_u16(vmovl_u8(vld1_u8(mask_array)));
+ const uint16x4_t mask_a_mul = vshr_n_u16(vmul_u16(a_pixels, mask_vec), 8);
+ return lv_color_32_16_mix_4_internal(r_pixels, g_pixels, b_pixels, mask_a_mul, dst_pixels);
+}
+static inline uint16x8_t lv_color_32_16_mix_8_with_opa_mask(const uint8_t * src, const uint16_t * dst, uint8_t opa,
+ const uint8_t * mask)
+{
+ const uint16x8_t dst_pixels = vld1q_u16(dst);
+
+ const uint8x8x4_t rgba = vld4_u8(src);
+ const uint16x8_t b_pixels = vmovl_u8(rgba.val[0]);
+ const uint16x8_t g_pixels = vmovl_u8(rgba.val[1]);
+ const uint16x8_t r_pixels = vmovl_u8(rgba.val[2]);
+ const uint16x8_t a_pixels = vmovl_u8(rgba.val[3]);
+ const uint16x8_t mask_vec = vmovl_u8(vld1_u8(mask));
+ const uint16x8_t opa_vec = vmovq_n_u16(opa);
+
+ /* Use uint32 for intermediate multiplication results to avoid 16bit overflows */
+ const uint32x4_t a_pixels_low = vmovl_u16(vget_low_u16(a_pixels));
+ const uint32x4_t a_pixels_high = vmovl_u16(vget_high_u16(a_pixels));
+ const uint32x4_t opa_vec_low = vmovl_u16(vget_low_u16(opa_vec));
+ const uint32x4_t opa_vec_high = vmovl_u16(vget_high_u16(opa_vec));
+ const uint32x4_t mask_vec_low = vmovl_u16(vget_low_u16(mask_vec));
+ const uint32x4_t mask_vec_high = vmovl_u16(vget_high_u16(mask_vec));
+
+ const uint32x4_t mul_low = vshrq_n_u32(vmulq_u32(vmulq_u32(a_pixels_low, opa_vec_low), mask_vec_low), 16);
+ const uint32x4_t mul_high = vshrq_n_u32(vmulq_u32(vmulq_u32(a_pixels_high, opa_vec_high), mask_vec_high), 16);
+ const uint16x8_t mask_opa_a_mul = vcombine_u16(vmovn_u32(mul_low), vmovn_u32(mul_high));
+
+ return lv_color_32_16_mix_8_internal(r_pixels, g_pixels, b_pixels, mask_opa_a_mul, dst_pixels);
+}
+static inline uint16x4_t lv_color_32_16_mix_4_with_opa_mask(const uint8_t * src, const uint16_t * dst, uint8_t opa,
+ const uint8_t * mask)
+{
+
+ const uint16x4_t dst_pixels = vld1_u16(dst);
+ uint8_t b_array[8] = {src[0], src[4], src[8], src[12], 0, 0, 0, 0};
+ uint8_t g_array[8] = {src[1], src[5], src[9], src[13], 0, 0, 0, 0};
+ uint8_t r_array[8] = {src[2], src[6], src[10], src[14], 0, 0, 0, 0};
+ uint8_t a_array[8] = {src[3], src[7], src[11], src[15], 0, 0, 0, 0};
+ uint8_t mask_array[8] = {mask[0], mask[1], mask[2], mask[3], 0, 0, 0, 0};
+ const uint16x4_t b_pixels = vget_low_u16(vmovl_u8(vld1_u8(b_array)));
+ const uint16x4_t g_pixels = vget_low_u16(vmovl_u8(vld1_u8(g_array)));
+ const uint16x4_t r_pixels = vget_low_u16(vmovl_u8(vld1_u8(r_array)));
+ const uint16x4_t a_pixels = vget_low_u16(vmovl_u8(vld1_u8(a_array)));
+ const uint16x4_t mask_vec = vget_low_u16(vmovl_u8(vld1_u8(mask_array)));
+ const uint16x4_t opa_vec = vmov_n_u16(opa);
+
+ const uint32x4_t a_pixels_low = vmovl_u16(a_pixels);
+ const uint32x4_t opa_vec_low = vmovl_u16(opa_vec);
+ const uint32x4_t mask_vec_low = vmovl_u16(mask_vec);
+
+ const uint32x4_t mul_result = vshrq_n_u32(vmulq_u32(vmulq_u32(a_pixels_low, opa_vec_low), mask_vec_low), 16);
+ const uint16x4_t mask_opa_a_mul = vmovn_u32(mul_result);
+
+ return lv_color_32_16_mix_4_internal(r_pixels, g_pixels, b_pixels, mask_opa_a_mul, dst_pixels);
+}
+
+static inline uint16x8_t lv_color_32_16_mix_8_internal(uint16x8_t r_pixels, uint16x8_t g_pixels, uint16x8_t b_pixels,
+ uint16x8_t a_pixels, uint16x8_t dst_pixels)
+{
+ const uint16x8_t mix_zero_mask = vceqq_u16(a_pixels, vdupq_n_u16(0));
+ const uint16x8_t mix_full_mask = vceqq_u16(a_pixels, vdupq_n_u16(255));
+
+ /* Prepare result in case alpha == 255 */
+ const uint16x8_t src_r565 = vandq_u16(vshlq_n_u16(r_pixels, 8), vdupq_n_u16(0xF800));
+ const uint16x8_t src_g565 = vandq_u16(vshlq_n_u16(g_pixels, 3), vdupq_n_u16(0x07E0));
+ const uint16x8_t src_b565 = vshrq_n_u16(b_pixels, 3);
+ const uint16x8_t src_rgb565 = vorrq_u16(vorrq_u16(src_r565, src_g565), src_b565);
+
+ /* Do the actual blending */
+ const uint16x8_t mix_inv_16 = vsubq_u16(vdupq_n_u16(255), a_pixels);
+
+ /* Red: ((src_r >> 3) * mix + ((dst >> 11) & 0x1F) * mix_inv) << 3) & 0xF800 */
+ const uint16x8_t src_r = vshrq_n_u16(r_pixels, 3);
+ const uint16x8_t dst_r = vandq_u16(vshrq_n_u16(dst_pixels, 11), vdupq_n_u16(0x1F));
+ uint16x8_t blended_r = vmlaq_u16(vmulq_u16(src_r, a_pixels), dst_r, mix_inv_16);
+ blended_r = vandq_u16(vshlq_n_u16(blended_r, 3), vdupq_n_u16(0xF800));
+
+ /* Green: ((src_g >> 2) * mix + ((dst >> 5) & 0x3F) * mix_inv) >> 3) & 0x07E0 */
+ const uint16x8_t src_g = vshrq_n_u16(g_pixels, 2);
+ const uint16x8_t dst_g = vandq_u16(vshrq_n_u16(dst_pixels, 5), vdupq_n_u16(0x3F));
+ uint16x8_t blended_g = vmlaq_u16(vmulq_u16(src_g, a_pixels), dst_g, mix_inv_16);
+ blended_g = vandq_u16(vshrq_n_u16(blended_g, 3), vdupq_n_u16(0x07E0));
+
+ /* Blue: ((src_b >> 3) * mix + (dst & 0x1F) * mix_inv) >> 8 */
+ const uint16x8_t src_b = vshrq_n_u16(b_pixels, 3);
+ const uint16x8_t dst_b = vandq_u16(dst_pixels, vdupq_n_u16(0x1F));
+ uint16x8_t blended_b = vmlaq_u16(vmulq_u16(src_b, a_pixels), dst_b, mix_inv_16);
+ blended_b = vshrq_n_u16(blended_b, 8);
+
+ const uint16x8_t blended_result = vorrq_u16(vorrq_u16(blended_r, blended_g), blended_b);
+ const uint16x8_t result = vbslq_u16(mix_zero_mask, dst_pixels, blended_result);
+ return vbslq_u16(mix_full_mask, src_rgb565, result);
+}
+static inline uint16x4_t lv_color_32_16_mix_4_internal(uint16x4_t r_pixels, uint16x4_t g_pixels, uint16x4_t b_pixels,
+ uint16x4_t a_pixels, uint16x4_t dst_pixels)
+{
+ const uint16x4_t mix_zero_mask = vceq_u16(a_pixels, vdup_n_u16(0));
+ const uint16x4_t mix_full_mask = vceq_u16(a_pixels, vdup_n_u16(255));
+
+ /* Prepare result in case alpha == 255 */
+ const uint16x4_t src_r565 = vand_u16(vshl_n_u16(r_pixels, 8), vdup_n_u16(0xF800));
+ const uint16x4_t src_g565 = vand_u16(vshl_n_u16(g_pixels, 3), vdup_n_u16(0x07E0));
+ const uint16x4_t src_b565 = vshr_n_u16(b_pixels, 3);
+ const uint16x4_t src_rgb565 = vorr_u16(vorr_u16(src_r565, src_g565), src_b565);
+
+ const uint16x4_t mix_inv_16 = vsub_u16(vdup_n_u16(255), a_pixels);
+
+ /* Red: ((src_r >> 3) * mix + ((dst >> 11) & 0x1F) * mix_inv) << 3) & 0xF800 */
+ const uint16x4_t src_r = vshr_n_u16(r_pixels, 3);
+ const uint16x4_t dst_r = vand_u16(vshr_n_u16(dst_pixels, 11), vdup_n_u16(0x1F));
+ uint16x4_t blended_r = vmla_u16(vmul_u16(src_r, a_pixels), dst_r, mix_inv_16);
+ blended_r = vand_u16(vshl_n_u16(blended_r, 3), vdup_n_u16(0xF800));
+
+ /* Green: ((src_g >> 2) * mix + ((dst >> 5) & 0x3F) * mix_inv) >> 3) & 0x07E0 */
+ const uint16x4_t src_g = vshr_n_u16(g_pixels, 2);
+ const uint16x4_t dst_g = vand_u16(vshr_n_u16(dst_pixels, 5), vdup_n_u16(0x3F));
+ uint16x4_t blended_g = vmla_u16(vmul_u16(src_g, a_pixels), dst_g, mix_inv_16);
+ blended_g = vand_u16(vshr_n_u16(blended_g, 3), vdup_n_u16(0x07E0));
+
+ /* Blue: ((src_b >> 3) * mix + (dst & 0x1F) * mix_inv) >> 8 */
+ const uint16x4_t src_b = vshr_n_u16(b_pixels, 3);
+ const uint16x4_t dst_b = vand_u16(dst_pixels, vdup_n_u16(0x1F));
+ uint16x4_t blended_b = vmla_u16(vmul_u16(src_b, a_pixels), dst_b, mix_inv_16);
+ blended_b = vshr_n_u16(blended_b, 8);
+
+ const uint16x4_t blended_result = vorr_u16(vorr_u16(blended_r, blended_g), blended_b);
+
+ const uint16x4_t result = vbsl_u16(mix_zero_mask, dst_pixels, blended_result);
+ return vbsl_u16(mix_full_mask, src_rgb565, result);
+}
+
+static inline uint32_t lv_color_24_16_mix_2_with_mask(const uint8_t * src, const uint16_t * dst, const uint8_t * mask,
+ uint8_t src_px_size)
+{
+
+ return (lv_color_24_16_mix_1_internal(src + src_px_size, dst + 1, mask[1]) << 16) |
+ lv_color_24_16_mix_1_internal(src, dst, *mask);
+}
+
+static inline uint32_t lv_color_24_16_mix_2_with_opa(const uint8_t * src, const uint16_t * dst, uint8_t mix,
+ uint8_t src_px_size)
+{
+ return (lv_color_24_16_mix_1_internal(src + src_px_size, dst + 1, mix) << 16) |
+ lv_color_24_16_mix_1_internal(src, dst, mix);
+}
+static inline uint32_t lv_color_32_16_mix_2_with_opa(const uint8_t * src, const uint16_t * dst, uint8_t opa)
+{
+ return (lv_color_32_16_mix_1_with_opa(src + 4, dst + 1, opa) << 16) | lv_color_32_16_mix_1_with_opa(src, dst, opa);
+}
+static inline uint32_t lv_color_32_16_mix_2_with_opa_mask(const uint8_t * src, const uint16_t * dst, uint8_t opa,
+ const uint8_t * mask)
+{
+ return (lv_color_32_16_mix_1_with_opa_mask(src + 4, dst + 1, opa, &mask[1]) << 16) |
+ lv_color_32_16_mix_1_with_opa_mask(src, dst, opa, &mask[0]);
+}
+
+static inline uint32_t lv_color_32_16_mix_2_with_mask(const uint8_t * src, const uint16_t * dst, const uint8_t * mask)
+{
+ return (lv_color_32_16_mix_1_with_mask(src + 4, dst + 1, mask + 1) << 16) |
+ lv_color_32_16_mix_1_with_mask(src, dst, mask);
+}
+static inline uint32_t lv_color_32_16_mix_2(const uint8_t * src, const uint16_t * dst)
+{
+ return (lv_color_32_16_mix_1(src + 4, dst + 1) << 16) | lv_color_32_16_mix_1(src, dst);
+}
+
+static inline uint32_t lv_color_32_16_mix_1(const uint8_t * src, const uint16_t * dst)
+{
+ return lv_color_24_16_mix_1_internal(src, dst, src[3]);
+}
+
+static inline uint16_t lv_color_32_16_mix_1_with_opa_mask(const uint8_t * src, const uint16_t * dst, uint8_t opa,
+ const uint8_t * mask)
+{
+ return lv_color_24_16_mix_1_internal(src, dst, LV_OPA_MIX3(src[3], opa, *mask));
+}
+
+static inline uint16_t lv_color_32_16_mix_1_with_opa(const uint8_t * src, const uint16_t * dst, uint8_t opa)
+{
+ return lv_color_24_16_mix_1_internal(src, dst, LV_OPA_MIX2(src[3], opa));
+}
+static inline uint16_t lv_color_32_16_mix_1_with_mask(const uint8_t * src, const uint16_t * dst, const uint8_t * mask)
+{
+
+ return lv_color_24_16_mix_1_internal(src, dst, LV_OPA_MIX2(src[3], *mask));
+}
+
+static inline uint16_t lv_color_24_16_mix_1_internal(const uint8_t * src, const uint16_t * dst, uint8_t mix)
+{
+ if(mix == 0) {
+ return *dst;
+ }
+ else if(mix == 255) {
+ return ((src[2] & 0xF8) << 8) + ((src[1] & 0xFC) << 3) + ((src[0] & 0xF8) >> 3);
+ }
+ else {
+ lv_opa_t mix_inv = 255 - mix;
+
+ return ((((src[2] >> 3) * mix + ((*dst >> 11) & 0x1F) * mix_inv) << 3) & 0xF800) +
+ ((((src[1] >> 2) * mix + ((*dst >> 5) & 0x3F) * mix_inv) >> 3) & 0x07E0) +
+ (((src[0] >> 3) * mix + (*dst & 0x1F) * mix_inv) >> 8);
+ }
+}
+
+#if LV_DRAW_SW_SUPPORT_ARGB8888_PREMULTIPLIED
+static inline uint16x8_t lv_color_24_16_mix_premult_8(const uint8_t * src, const uint16_t * dst)
+{
+ const uint16x8_t dst_pixels = vld1q_u16(dst);
+
+ const uint8x8x4_t rgba = vld4_u8(src);
+ const uint16x8_t b_pixels = vmovl_u8(rgba.val[0]);
+ const uint16x8_t g_pixels = vmovl_u8(rgba.val[1]);
+ const uint16x8_t r_pixels = vmovl_u8(rgba.val[2]);
+ const uint16x8_t a_pixels = vmovl_u8(rgba.val[3]);
+
+ const uint16x8_t mix_zero_mask = vceqq_u16(a_pixels, vdupq_n_u16(0));
+ const uint16x8_t mix_full_mask = vceqq_u16(a_pixels, vdupq_n_u16(255));
+
+ /* Prepare result in case alpha == 255 */
+ const uint16x8_t src_r565 = vandq_u16(vshlq_n_u16(r_pixels, 8), vdupq_n_u16(0xF800));
+ const uint16x8_t src_g565 = vandq_u16(vshlq_n_u16(g_pixels, 3), vdupq_n_u16(0x07E0));
+ const uint16x8_t src_b565 = vshrq_n_u16(b_pixels, 3);
+ const uint16x8_t src_rgb565 = vorrq_u16(vorrq_u16(src_r565, src_g565), src_b565);
+
+ /* Do the actual blending */
+ const uint16x8_t mix_inv_16 = vsubq_u16(vdupq_n_u16(255), a_pixels);
+
+ const uint16x8_t src_r = vshrq_n_u16(r_pixels, 3);
+ const uint16x8_t dst_r = vandq_u16(vshrq_n_u16(dst_pixels, 11), vdupq_n_u16(0x1F));
+ uint16x8_t blended_r = vaddq_u16(src_r, vshrq_n_u16(vmulq_u16(dst_r, mix_inv_16), 8));
+ blended_r = vshlq_n_u16(blended_r, 11);
+
+ /* Green: ((src_g >> 2) * mix + ((dst >> 5) & 0x3F) * mix_inv) >> 3) & 0x07E0 */
+ const uint16x8_t src_g = vshrq_n_u16(g_pixels, 2);
+ const uint16x8_t dst_g = vandq_u16(vshrq_n_u16(dst_pixels, 5), vdupq_n_u16(0x3F));
+ uint16x8_t blended_g = vaddq_u16(src_g, vshrq_n_u16(vmulq_u16(dst_g, mix_inv_16), 8));
+ blended_g = vshlq_n_u16(blended_g, 5);
+
+ /* Blue: ((src_b >> 3) * mix + (dst & 0x1F) * mix_inv) >> 8 */
+ const uint16x8_t src_b = vshrq_n_u16(b_pixels, 3);
+ const uint16x8_t dst_b = vandq_u16(dst_pixels, vdupq_n_u16(0x1F));
+ uint16x8_t blended_b = vaddq_u16(src_b, vshrq_n_u16(vmulq_u16(dst_b, mix_inv_16), 8));
+
+ const uint16x8_t blended_result = vaddq_u16(vaddq_u16(blended_r, blended_g), blended_b);
+ const uint16x8_t result = vbslq_u16(mix_zero_mask, dst_pixels, blended_result);
+ return vbslq_u16(mix_full_mask, src_rgb565, result);
+}
+static inline uint16x4_t lv_color_24_16_mix_premult_4(const uint8_t * src, const uint16_t * dst)
+{
+ const uint16x4_t dst_pixels = vld1_u16(dst);
+ uint8_t b_array[8] = {src[0], src[4], src[8], src[12], 0, 0, 0, 0};
+ uint8_t g_array[8] = {src[1], src[5], src[9], src[13], 0, 0, 0, 0};
+ uint8_t r_array[8] = {src[2], src[6], src[10], src[14], 0, 0, 0, 0};
+ uint8_t a_array[8] = {src[3], src[7], src[11], src[15], 0, 0, 0, 0};
+ const uint16x4_t b_pixels = vget_low_u16(vmovl_u8(vld1_u8(b_array)));
+ const uint16x4_t g_pixels = vget_low_u16(vmovl_u8(vld1_u8(g_array)));
+ const uint16x4_t r_pixels = vget_low_u16(vmovl_u8(vld1_u8(r_array)));
+ const uint16x4_t a_pixels = vget_low_u16(vmovl_u8(vld1_u8(a_array)));
+
+ const uint16x4_t mix_zero_mask = vceq_u16(a_pixels, vdup_n_u16(0));
+ const uint16x4_t mix_full_mask = vceq_u16(a_pixels, vdup_n_u16(255));
+
+ /* Prepare result in case alpha == 255 */
+ const uint16x4_t src_r565 = vand_u16(vshl_n_u16(r_pixels, 8), vdup_n_u16(0xF800));
+ const uint16x4_t src_g565 = vand_u16(vshl_n_u16(g_pixels, 3), vdup_n_u16(0x07E0));
+ const uint16x4_t src_b565 = vshr_n_u16(b_pixels, 3);
+ const uint16x4_t src_rgb565 = vorr_u16(vorr_u16(src_r565, src_g565), src_b565);
+
+ const uint16x4_t mix_inv_16 = vsub_u16(vdup_n_u16(255), a_pixels);
+
+ const uint16x4_t src_r = vshr_n_u16(r_pixels, 3);
+ const uint16x4_t dst_r = vand_u16(vshr_n_u16(dst_pixels, 11), vdup_n_u16(0x1F));
+ uint16x4_t blended_r = vadd_u16(src_r, vshr_n_u16(vmul_u16(dst_r, mix_inv_16), 8));
+ blended_r = vshl_n_u16(blended_r, 11);
+
+ /* Green: ((src_g >> 2) * mix + ((dst >> 5) & 0x3F) * mix_inv) >> 3) & 0x07E0 */
+ const uint16x4_t src_g = vshr_n_u16(g_pixels, 2);
+ const uint16x4_t dst_g = vand_u16(vshr_n_u16(dst_pixels, 5), vdup_n_u16(0x3F));
+ uint16x4_t blended_g = vadd_u16(src_g, vshr_n_u16(vmul_u16(dst_g, mix_inv_16), 8));
+ blended_g = vshl_n_u16(blended_g, 5);
+
+ /* Blue: ((src_b >> 3) * mix + (dst & 0x1F) * mix_inv) >> 8 */
+ const uint16x4_t src_b = vshr_n_u16(b_pixels, 3);
+ const uint16x4_t dst_b = vand_u16(dst_pixels, vdup_n_u16(0x1F));
+ uint16x4_t blended_b = vadd_u16(src_b, vshr_n_u16(vmul_u16(dst_b, mix_inv_16), 8));
+
+ const uint16x4_t blended_result = vorr_u16(vorr_u16(blended_r, blended_g), blended_b);
+
+ const uint16x4_t result = vbsl_u16(mix_zero_mask, dst_pixels, blended_result);
+ return vbsl_u16(mix_full_mask, src_rgb565, result);
+}
+
+static inline uint32_t lv_color_24_16_mix_premult_2(const uint8_t * src, const uint16_t * dst)
+{
+ return ((uint32_t)lv_color_24_16_mix_premult_1(src + 4, dst + 1) << 16) | lv_color_24_16_mix_premult_1(src, dst);
+}
+static inline uint16_t lv_color_24_16_mix_premult_1(const uint8_t * src, const uint16_t * dst)
+{
+ const uint8_t mix = src[3];
+ if(mix == 0) {
+ return *dst;
+ }
+ else if(mix == 255) {
+ return ((src[2] & 0xF8) << 8) + ((src[1] & 0xFC) << 3) + ((src[0] & 0xF8) >> 3);
+ }
+ else {
+ lv_opa_t mix_inv = 255 - mix;
+
+ return (((src[2] >> 3) + ((((*dst >> 11) & 0x1F) * mix_inv) >> 8)) << 11) +
+ (((src[1] >> 2) + ((((*dst >> 5) & 0x3F) * mix_inv) >> 8)) << 5) +
+ (((src[0] >> 3) + ((((*dst >> 0) & 0x1F) * mix_inv) >> 8)));
+ }
+}
+
+#endif
+
+static inline uint16x8_t rgb888_to_rgb565_8(const uint8_t * src, uint8_t src_px_size)
+{
+ uint16x8_t b_pixels;
+ uint16x8_t g_pixels;
+ uint16x8_t r_pixels;
+ LV_ASSERT_MSG(src_px_size == 3 || src_px_size == 4, "Invalid pixel size for rgb888. Expected either 3 or 4 bytes");
+
+ if(src_px_size == 3) {
+ const uint8x8x3_t rgba = vld3_u8(src);
+ b_pixels = vmovl_u8(rgba.val[0]);
+ g_pixels = vmovl_u8(rgba.val[1]);
+ r_pixels = vmovl_u8(rgba.val[2]);
+ }
+ else if(src_px_size == 4) {
+ const uint8x8x4_t rgba = vld4_u8(src);
+ b_pixels = vmovl_u8(rgba.val[0]);
+ g_pixels = vmovl_u8(rgba.val[1]);
+ r_pixels = vmovl_u8(rgba.val[2]);
+ }
+
+ const uint16x8_t r = vshlq_n_u16(vandq_u16(r_pixels, vdupq_n_u16(0xF8)), 8);
+ const uint16x8_t g = vshlq_n_u16(vandq_u16(g_pixels, vdupq_n_u16(0xFC)), 3);
+ const uint16x8_t b = vshrq_n_u16(vandq_u16(b_pixels, vdupq_n_u16(0xF8)), 3);
+ return vorrq_u16(vorrq_u16(r, g), b);
+}
+
+static inline uint16x4_t rgb888_to_rgb565_4(const uint8_t * src, uint8_t src_px_size)
+{
+ uint16x4_t b_pixels;
+ uint16x4_t g_pixels;
+ uint16x4_t r_pixels;
+ LV_ASSERT_MSG(src_px_size == 3 || src_px_size == 4, "Invalid pixel size for rgb888. Expected either 3 or 4 bytes");
+
+ if(src_px_size == 3) {
+ const uint8x8x3_t rgba = vld3_u8(src);
+ b_pixels = vget_low_u16(vmovl_u8(rgba.val[0]));
+ g_pixels = vget_low_u16(vmovl_u8(rgba.val[1]));
+ r_pixels = vget_low_u16(vmovl_u8(rgba.val[2]));
+ }
+ else if(src_px_size == 4) {
+ const uint8x8x4_t rgba = vld4_u8(src);
+ b_pixels = vget_low_u16(vmovl_u8(rgba.val[0]));
+ g_pixels = vget_low_u16(vmovl_u8(rgba.val[1]));
+ r_pixels = vget_low_u16(vmovl_u8(rgba.val[2]));
+ }
+
+ const uint16x4_t r = vshl_n_u16(vand_u16(r_pixels, vdup_n_u16(0xF8)), 8);
+ const uint16x4_t g = vshl_n_u16(vand_u16(g_pixels, vdup_n_u16(0xFC)), 3);
+ const uint16x4_t b = vshr_n_u16(vand_u16(b_pixels, vdup_n_u16(0xF8)), 3);
+ return vorr_u16(vorr_u16(r, g), b);
+}
+
+static inline uint32_t rgb888_to_rgb565_2(const uint8_t * src, uint8_t src_px_size)
+{
+ return ((uint32_t)rgb888_to_rgb565_1(src + src_px_size) << 16) | rgb888_to_rgb565_1(src);
+}
+static inline uint16_t rgb888_to_rgb565_1(const uint8_t * src)
+{
+ return ((src[2] & 0xF8) << 8) + ((src[1] & 0xFC) << 3) + ((src[0] & 0xF8) >> 3);
+}
+
+static inline uint16x8_t lv_color_16_16_mix_8_with_opa(const uint16_t * c1, const uint16_t * c2, uint8_t opa)
+{
+
+ const uint16x8_t c1_vec = vld1q_u16(c1);
+ const uint16x8_t c2_vec = vld1q_u16(c2);
+ const uint16x8_t mix_vec = vmovq_n_u16(opa);
+ return lv_color_16_16_mix_8_internal(c1_vec, c2_vec, mix_vec);
+}
+static inline uint16x8_t lv_color_16_16_mix_8_with_mask(const uint16_t * c1, const uint16_t * c2, const uint8_t * mask)
+{
+ const uint16x8_t c1_vec = vld1q_u16(c1);
+ const uint16x8_t c2_vec = vld1q_u16(c2);
+ const uint16x8_t mix_vec = vmovl_u8(vld1_u8(mask));
+ return lv_color_16_16_mix_8_internal(c1_vec, c2_vec, mix_vec);
+}
+static inline uint16x8_t lv_color_16_16_mix_8_with_opa_mask(const uint16_t * c1, const uint16_t * c2, uint8_t opa,
+ const uint8_t * mask)
+{
+
+ const uint16x8_t c1_vec = vld1q_u16(c1);
+ const uint16x8_t c2_vec = vld1q_u16(c2);
+ const uint16x8_t opa_vec = vmovq_n_u16(opa);
+ const uint16x8_t mask_vec = vmovl_u8(vld1_u8(mask));
+ const uint16x8_t mix_vec = vshrq_n_u16(vmulq_u16(opa_vec, mask_vec), 8);
+ return lv_color_16_16_mix_8_internal(c1_vec, c2_vec, mix_vec);
+}
+
+static inline uint16x8_t lv_color_16_16_mix_8_internal(uint16x8_t c1_vec, uint16x8_t c2_vec, uint16x8_t mix)
+{
+ const uint16x8_t mix_zero_mask = vceqq_u16(mix, vdupq_n_u16(0));
+ const uint16x8_t mix_full_mask = vceqq_u16(mix, vdupq_n_u16(255));
+ const uint16x8_t equal_mask = vceqq_u16(c1_vec, c2_vec);
+
+ mix = vshrq_n_u16(vaddq_u16(mix, vdupq_n_u16(4)), 3);
+ /* Split into low and high parts for 32-bit operations */
+ uint32x4_t c1_low = vmovl_u16(vget_low_u16(c1_vec));
+ uint32x4_t c1_high = vmovl_u16(vget_high_u16(c1_vec));
+ uint32x4_t c2_low = vmovl_u16(vget_low_u16(c2_vec));
+ uint32x4_t c2_high = vmovl_u16(vget_high_u16(c2_vec));
+ uint32x4_t fg_low = vorrq_u32(c1_low, vshlq_n_u32(c1_low, 16));
+ uint32x4_t fg_high = vorrq_u32(c1_high, vshlq_n_u32(c1_high, 16));
+ uint32x4_t bg_low = vorrq_u32(c2_low, vshlq_n_u32(c2_low, 16));
+ uint32x4_t bg_high = vorrq_u32(c2_high, vshlq_n_u32(c2_high, 16));
+
+ /* Apply mask 0x7E0F81F to extract RGB components */
+ const uint32x4_t mask = vdupq_n_u32(0x7E0F81F);
+ fg_low = vandq_u32(fg_low, mask);
+ fg_high = vandq_u32(fg_high, mask);
+ bg_low = vandq_u32(bg_low, mask);
+ bg_high = vandq_u32(bg_high, mask);
+
+ const uint32x4_t mix_low = vmovl_u16(vget_low_u16(mix));
+ const uint32x4_t mix_high = vmovl_u16(vget_high_u16(mix));
+
+ /* Perform the blend: ((fg - bg) * mix) >> 5 + bg */
+ const uint32x4_t diff_low = vsubq_u32(fg_low, bg_low);
+ const uint32x4_t diff_high = vsubq_u32(fg_high, bg_high);
+ const uint32x4_t scaled_low = vmulq_u32(diff_low, mix_low);
+ const uint32x4_t scaled_high = vmulq_u32(diff_high, mix_high);
+ const uint32x4_t shifted_low = vshrq_n_u32(scaled_low, 5);
+ const uint32x4_t shifted_high = vshrq_n_u32(scaled_high, 5);
+ uint32x4_t result_low = vaddq_u32(shifted_low, bg_low);
+ uint32x4_t result_high = vaddq_u32(shifted_high, bg_high);
+
+ /* Apply final mask */
+ result_low = vandq_u32(result_low, mask);
+ result_high = vandq_u32(result_high, mask);
+
+ /* Convert back to 16-bit: (result >> 16) | result */
+ const uint32x4_t final_low = vorrq_u32(result_low, vshrq_n_u32(result_low, 16));
+ const uint32x4_t final_high = vorrq_u32(result_high, vshrq_n_u32(result_high, 16));
+
+ const uint16x4_t packed_low = vmovn_u32(final_low);
+ const uint16x4_t packed_high = vmovn_u32(final_high);
+ uint16x8_t result = vcombine_u16(packed_low, packed_high);
+
+ result = vbslq_u16(mix_zero_mask, c2_vec, result);
+ result = vbslq_u16(mix_full_mask, c1_vec, result);
+ result = vbslq_u16(equal_mask, c1_vec, result);
+
+ return result;
+}
+
+static inline uint16x4_t lv_color_16_16_mix_4_with_opa(const uint16_t * c1, const uint16_t * c2, uint8_t opa)
+{
+ const uint16x4_t c1_vec = vld1_u16(c1);
+ const uint16x4_t c2_vec = vld1_u16(c2);
+ const uint16x4_t mix_vec = vmov_n_u16(opa);
+ return lv_color_16_16_mix_4_internal(c1_vec, c2_vec, mix_vec);
+}
+static inline uint16x4_t lv_color_16_16_mix_4_with_mask(const uint16_t * c1, const uint16_t * c2, const uint8_t * mask)
+{
+ const uint16x4_t c1_vec = vld1_u16(c1);
+ const uint16x4_t c2_vec = vld1_u16(c2);
+ const uint16x4_t mix_vec = vget_low_u16(vmovl_u8(vld1_u8(mask)));
+ return lv_color_16_16_mix_4_internal(c1_vec, c2_vec, mix_vec);
+}
+static inline uint16x4_t lv_color_16_16_mix_4_with_opa_mask(const uint16_t * c1, const uint16_t * c2, uint8_t opa,
+ const uint8_t * mask)
+{
+
+ const uint16x4_t c1_vec = vld1_u16(c1);
+ const uint16x4_t c2_vec = vld1_u16(c2);
+ const uint16x4_t opa_vec = vmov_n_u16(opa);
+ const uint16x4_t mask_vec = vget_low_u16(vmovl_u8(vld1_u8(mask)));
+ const uint16x4_t mix_vec = vshr_n_u16(vmul_u16(opa_vec, mask_vec), 8);
+ return lv_color_16_16_mix_4_internal(c1_vec, c2_vec, mix_vec);
+}
+
+static inline uint16x4_t lv_color_16_16_mix_4_internal(uint16x4_t c1_vec, uint16x4_t c2_vec, uint16x4_t mix)
+{
+ const uint16x4_t mix_zero_mask = vceq_u16(mix, vdup_n_u16(0));
+ const uint16x4_t mix_full_mask = vceq_u16(mix, vdup_n_u16(255));
+ const uint16x4_t equal_mask = vceq_u16(c1_vec, c2_vec);
+
+ mix = vshr_n_u16(vadd_u16(mix, vdup_n_u16(4)), 3);
+ /* Split into low and high parts for 32-bit operations */
+ uint32x4_t c1 = vmovl_u16(c1_vec);
+ uint32x4_t c2 = vmovl_u16(c2_vec);
+ uint32x4_t fg = vorrq_u32(c1, vshlq_n_u32(c1, 16));
+ uint32x4_t bg = vorrq_u32(c2, vshlq_n_u32(c2, 16));
+
+ /* Apply mask 0x7E0F81F to extract RGB components */
+ const uint32x4_t mask = vdupq_n_u32(0x7E0F81F);
+ fg = vandq_u32(fg, mask);
+ bg = vandq_u32(bg, mask);
+
+ const uint32x4_t mix32 = vmovl_u16(mix);
+
+ /* Perform the blend: ((fg - bg) * mix) >> 5 + bg */
+ const uint32x4_t diff = vsubq_u32(fg, bg);
+ const uint32x4_t scaled = vmulq_u32(diff, mix32);
+ const uint32x4_t shifted = vshrq_n_u32(scaled, 5);
+ uint32x4_t result32 = vaddq_u32(shifted, bg);
+ result32 = vandq_u32(result32, mask);
+
+ /* Convert back to 16-bit: (result >> 16) | result */
+ const uint32x4_t final = vorrq_u32(result32, vshrq_n_u32(result32, 16));
+
+ uint16x4_t result = vmovn_u32(final);
+ result = vbsl_u16(mix_zero_mask, c2_vec, result);
+ result = vbsl_u16(mix_full_mask, c1_vec, result);
+ result = vbsl_u16(equal_mask, c1_vec, result);
+
+ return result;
+}
+
+static inline uint32_t lv_color_16_16_mix_2_with_opa(const uint16_t * c1, const uint16_t * c2, uint8_t opa)
+{
+ return lv_color_16_16_mix(c1[1], c2[1], opa) << 16 | lv_color_16_16_mix(*c1, *c2, opa);
+}
+static inline uint32_t lv_color_16_16_mix_2_with_mask(const uint16_t * c1, const uint16_t * c2, const uint8_t * mask)
+{
+ return lv_color_16_16_mix(c1[1], c2[1], mask[1]) << 16 | lv_color_16_16_mix(*c1, *c2, *mask);
+}
+static inline uint32_t lv_color_16_16_mix_2_with_opa_mask(const uint16_t * c1, const uint16_t * c2, uint8_t opa,
+ const uint8_t * mask)
+{
+
+ return lv_color_16_16_mix(c1[1], c2[1], LV_OPA_MIX2(opa, mask[1])) << 16 |
+ lv_color_16_16_mix(*c1, *c2, LV_OPA_MIX2(*mask, opa));
+}
+
+static inline void * LV_ATTRIBUTE_FAST_MEM drawbuf_next_row(const void * buf, uint32_t stride)
+{
+ return (void *)((uint8_t *)buf + stride);
+}
+#endif /* LV_USE_DRAW_SW_ASM == LV_DRAW_SW_ASM_NEON*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/neon/lv_draw_sw_blend_neon_to_rgb565.h b/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/neon/lv_draw_sw_blend_neon_to_rgb565.h
new file mode 100644
index 000000000..27fcf4b99
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/neon/lv_draw_sw_blend_neon_to_rgb565.h
@@ -0,0 +1,190 @@
+/**
+ * @file lv_draw_sw_blend_neon_to_rgb565.h
+ *
+ */
+
+#ifndef LV_DRAW_SW_BLEND_NEON_TO_RGB565_H
+#define LV_DRAW_SW_BLEND_NEON_TO_RGB565_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*********************
+ * INCLUDES
+ *********************/
+
+#include "../../../../lv_conf_internal.h"
+#if LV_USE_DRAW_SW_ASM == LV_DRAW_SW_ASM_NEON
+
+#include "../../../../misc/lv_types.h"
+
+/*********************
+ * DEFINES
+ *********************/
+
+#ifndef LV_DRAW_SW_COLOR_BLEND_TO_RGB565
+#define LV_DRAW_SW_COLOR_BLEND_TO_RGB565(dsc) lv_draw_sw_blend_neon_color_to_rgb565(dsc)
+
+#endif
+
+#ifndef LV_DRAW_SW_COLOR_BLEND_TO_RGB565_WITH_OPA
+#define LV_DRAW_SW_COLOR_BLEND_TO_RGB565_WITH_OPA(dsc) lv_draw_sw_blend_neon_color_to_rgb565_with_opa(dsc)
+#endif
+
+#ifndef LV_DRAW_SW_COLOR_BLEND_TO_RGB565_WITH_MASK
+#define LV_DRAW_SW_COLOR_BLEND_TO_RGB565_WITH_MASK(dsc) lv_draw_sw_blend_neon_color_to_rgb565_with_mask(dsc)
+
+#endif
+
+#ifndef LV_DRAW_SW_COLOR_BLEND_TO_RGB565_MIX_MASK_OPA
+#define LV_DRAW_SW_COLOR_BLEND_TO_RGB565_MIX_MASK_OPA(dsc) lv_draw_sw_blend_neon_color_to_rgb565_with_opa_mask(dsc)
+#endif
+
+#ifndef LV_DRAW_SW_L8_BLEND_NORMAL_TO_RGB565
+#define LV_DRAW_SW_L8_BLEND_NORMAL_TO_RGB565(dsc) lv_draw_sw_blend_neon_l8_to_rgb565(dsc)
+#endif
+
+#ifndef LV_DRAW_SW_L8_BLEND_NORMAL_TO_RGB565_WITH_OPA
+#define LV_DRAW_SW_L8_BLEND_NORMAL_TO_RGB565_WITH_OPA(...) LV_RESULT_INVALID
+#endif
+
+#ifndef LV_DRAW_SW_L8_BLEND_NORMAL_TO_RGB565_WITH_MASK
+#define LV_DRAW_SW_L8_BLEND_NORMAL_TO_RGB565_WITH_MASK(...) LV_RESULT_INVALID
+#endif
+
+#ifndef LV_DRAW_SW_L8_BLEND_NORMAL_TO_RGB565_MIX_MASK_OPA
+#define LV_DRAW_SW_L8_BLEND_NORMAL_TO_RGB565_MIX_MASK_OPA(...) LV_RESULT_INVALID
+#endif
+
+#ifndef LV_DRAW_SW_AL88_BLEND_NORMAL_TO_RGB565
+#define LV_DRAW_SW_AL88_BLEND_NORMAL_TO_RGB565(dsc) lv_draw_sw_blend_neon_al88_to_rgb565(dsc)
+#endif
+
+#ifndef LV_DRAW_SW_AL88_BLEND_NORMAL_TO_RGB565_WITH_OPA
+#define LV_DRAW_SW_AL88_BLEND_NORMAL_TO_RGB565_WITH_OPA(dsc) lv_draw_sw_blend_neon_al88_to_rgb565_with_opa(dsc)
+#endif
+
+#if 0 /* Disabled as it's not tested */
+#ifndef LV_DRAW_SW_AL88_BLEND_NORMAL_TO_RGB565_WITH_MASK
+#define LV_DRAW_SW_AL88_BLEND_NORMAL_TO_RGB565_WITH_MASK(dsc) lv_draw_sw_blend_neon_al88_to_rgb565_with_mask(dsc)
+
+#endif
+
+#ifndef LV_DRAW_SW_AL88_BLEND_NORMAL_TO_RGB565_MIX_MASK_OPA
+#define LV_DRAW_SW_AL88_BLEND_NORMAL_TO_RGB565_MIX_MASK_OPA(dsc) lv_draw_sw_blend_neon_al88_to_rgb565_with_opa_mask(dsc)
+#endif
+#endif
+
+#ifndef LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_RGB565
+#define LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_RGB565(dsc) lv_draw_sw_blend_neon_rgb565_to_rgb565(dsc)
+#endif
+
+#ifndef LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_RGB565_WITH_OPA
+#define LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_RGB565_WITH_OPA(dsc) lv_draw_sw_blend_neon_rgb565_to_rgb565_with_opa(dsc)
+#endif
+
+#ifndef LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_RGB565_WITH_MASK
+#define LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_RGB565_WITH_MASK(dsc) lv_draw_sw_blend_neon_rgb565_to_rgb565_with_mask(dsc)
+#endif
+
+#ifndef LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_RGB565_MIX_MASK_OPA
+#define LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_RGB565_MIX_MASK_OPA(dsc) lv_draw_sw_blend_neon_rgb565_to_rgb565_with_opa_mask(dsc)
+#endif
+
+#ifndef LV_DRAW_SW_RGB888_BLEND_NORMAL_TO_RGB565
+#define LV_DRAW_SW_RGB888_BLEND_NORMAL_TO_RGB565(dsc, src_px_size) lv_draw_sw_blend_neon_rgb888_to_rgb565(dsc, src_px_size)
+#endif
+
+#ifndef LV_DRAW_SW_RGB888_BLEND_NORMAL_TO_RGB565_WITH_OPA
+#define LV_DRAW_SW_RGB888_BLEND_NORMAL_TO_RGB565_WITH_OPA(dsc, src_px_size) lv_draw_sw_blend_neon_rgb888_to_rgb565_with_opa(dsc, src_px_size)
+#endif
+
+#ifndef LV_DRAW_SW_RGB888_BLEND_NORMAL_TO_RGB565_WITH_MASK
+#define LV_DRAW_SW_RGB888_BLEND_NORMAL_TO_RGB565_WITH_MASK(dsc, src_px_size) lv_draw_sw_blend_neon_rgb888_to_rgb565_with_mask(dsc, src_px_size)
+#endif
+
+#ifndef LV_DRAW_SW_RGB888_BLEND_NORMAL_TO_RGB565_MIX_MASK_OPA
+#define LV_DRAW_SW_RGB888_BLEND_NORMAL_TO_RGB565_MIX_MASK_OPA(dsc, src_px_size) lv_draw_sw_blend_neon_rgb888_to_rgb565_with_opa_mask(dsc, src_px_size)
+#endif
+
+#ifndef LV_DRAW_SW_ARGB8888_BLEND_NORMAL_TO_RGB565
+#define LV_DRAW_SW_ARGB8888_BLEND_NORMAL_TO_RGB565(dsc) lv_draw_sw_blend_neon_argb888_to_rgb565(dsc)
+#endif
+
+#ifndef LV_DRAW_SW_ARGB8888_BLEND_NORMAL_TO_RGB565_WITH_OPA
+#define LV_DRAW_SW_ARGB8888_BLEND_NORMAL_TO_RGB565_WITH_OPA(dsc) lv_draw_sw_blend_neon_argb888_to_rgb565_with_opa(dsc)
+#endif
+
+#ifndef LV_DRAW_SW_ARGB8888_BLEND_NORMAL_TO_RGB565_WITH_MASK
+#define LV_DRAW_SW_ARGB8888_BLEND_NORMAL_TO_RGB565_WITH_MASK(dsc) lv_draw_sw_blend_neon_argb888_to_rgb565_with_mask(dsc)
+#endif
+
+#ifndef LV_DRAW_SW_ARGB8888_BLEND_NORMAL_TO_RGB565_MIX_MASK_OPA
+#define LV_DRAW_SW_ARGB8888_BLEND_NORMAL_TO_RGB565_MIX_MASK_OPA(dsc) lv_draw_sw_blend_neon_argb888_to_rgb565_with_opa_mask(dsc)
+#endif
+
+#ifndef LV_DRAW_SW_ARGB8888_PREMULTIPLIED_BLEND_NORMAL_TO_RGB565
+#define LV_DRAW_SW_ARGB8888_PREMULTIPLIED_BLEND_NORMAL_TO_RGB565(dsc) lv_draw_sw_blend_neon_argb888_premultiplied_to_rgb565(dsc)
+#endif
+
+/*
+ * Bleding operations with premultiplied argb8888 require division.
+ * As division is not supported for integer values in neon we don't define these functions
+ */
+#ifndef LV_DRAW_SW_ARGB8888_PREMULTIPLIED_BLEND_NORMAL_TO_RGB565_WITH_OPA
+#define LV_DRAW_SW_ARGB8888_PREMULTIPLIED_BLEND_NORMAL_TO_RGB565_WITH_OPA(...) LV_RESULT_INVALID
+#endif
+
+#ifndef LV_DRAW_SW_ARGB8888_PREMULTIPLIED_BLEND_NORMAL_TO_RGB565_WITH_MASK
+#define LV_DRAW_SW_ARGB8888_PREMULTIPLIED_BLEND_NORMAL_TO_RGB565_WITH_MASK(...) LV_RESULT_INVALID
+#endif
+
+#ifndef LV_DRAW_SW_ARGB8888_PREMULTIPLIED_BLEND_NORMAL_TO_RGB565_MIX_MASK_OPA
+#define LV_DRAW_SW_ARGB8888_PREMULTIPLIED_BLEND_NORMAL_TO_RGB565_MIX_MASK_OPA(...) LV_RESULT_INVALID
+#endif
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+/**********************
+ * GLOBAL PROTOTYPES
+ **********************/
+
+lv_result_t lv_draw_sw_blend_neon_color_to_rgb565(lv_draw_sw_blend_fill_dsc_t * dsc);
+lv_result_t lv_draw_sw_blend_neon_color_to_rgb565_with_opa(lv_draw_sw_blend_fill_dsc_t * dsc);
+lv_result_t lv_draw_sw_blend_neon_color_to_rgb565_with_mask(lv_draw_sw_blend_fill_dsc_t * dsc);
+lv_result_t lv_draw_sw_blend_neon_color_to_rgb565_with_opa_mask(lv_draw_sw_blend_fill_dsc_t * dsc);
+lv_result_t lv_draw_sw_blend_neon_l8_to_rgb565(lv_draw_sw_blend_image_dsc_t * dsc);
+lv_result_t lv_draw_sw_blend_neon_al88_to_rgb565(lv_draw_sw_blend_image_dsc_t * dsc);
+lv_result_t lv_draw_sw_blend_neon_al88_to_rgb565_with_opa(lv_draw_sw_blend_image_dsc_t * dsc);
+lv_result_t lv_draw_sw_blend_neon_al88_to_rgb565_with_mask(lv_draw_sw_blend_image_dsc_t * dsc);
+lv_result_t lv_draw_sw_blend_neon_al88_to_rgb565_with_opa_mask(lv_draw_sw_blend_image_dsc_t * dsc);
+
+lv_result_t lv_draw_sw_blend_neon_rgb565_to_rgb565(lv_draw_sw_blend_image_dsc_t * dsc);
+lv_result_t lv_draw_sw_blend_neon_rgb565_to_rgb565_with_opa(lv_draw_sw_blend_image_dsc_t * dsc);
+lv_result_t lv_draw_sw_blend_neon_rgb565_to_rgb565_with_mask(lv_draw_sw_blend_image_dsc_t * dsc);
+lv_result_t lv_draw_sw_blend_neon_rgb565_to_rgb565_with_opa_mask(lv_draw_sw_blend_image_dsc_t * dsc);
+lv_result_t lv_draw_sw_blend_neon_rgb888_to_rgb565(lv_draw_sw_blend_image_dsc_t * dsc, uint8_t src_px_size);
+lv_result_t lv_draw_sw_blend_neon_rgb888_to_rgb565_with_opa(lv_draw_sw_blend_image_dsc_t * dsc, uint8_t src_px_size);
+lv_result_t lv_draw_sw_blend_neon_rgb888_to_rgb565_with_mask(lv_draw_sw_blend_image_dsc_t * dsc, uint8_t src_px_size);
+lv_result_t lv_draw_sw_blend_neon_rgb888_to_rgb565_with_opa_mask(lv_draw_sw_blend_image_dsc_t * dsc,
+ uint8_t src_px_size);
+lv_result_t lv_draw_sw_blend_neon_argb888_to_rgb565(lv_draw_sw_blend_image_dsc_t * dsc);
+lv_result_t lv_draw_sw_blend_neon_argb888_premultiplied_to_rgb565(lv_draw_sw_blend_image_dsc_t * dsc);
+lv_result_t lv_draw_sw_blend_neon_argb888_to_rgb565_with_opa(lv_draw_sw_blend_image_dsc_t * dsc);
+lv_result_t lv_draw_sw_blend_neon_argb888_to_rgb565_with_mask(lv_draw_sw_blend_image_dsc_t * dsc);
+lv_result_t lv_draw_sw_blend_neon_argb888_to_rgb565_with_opa_mask(lv_draw_sw_blend_image_dsc_t * dsc);
+
+/**********************
+ * MACROS
+ **********************/
+
+#endif /* LV_USE_DRAW_SW_ASM == LV_DRAW_SW_ASM_NEON */
+
+#ifdef __cplusplus
+} /*extern "C"*/
+#endif
+
+#endif /*LV_DRAW_SW_BLEND_NEON_TO_RGB565_H*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/neon/lv_draw_sw_blend_neon_to_rgb888.c b/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/neon/lv_draw_sw_blend_neon_to_rgb888.c
new file mode 100644
index 000000000..9c20c522a
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/neon/lv_draw_sw_blend_neon_to_rgb888.c
@@ -0,0 +1,1704 @@
+/**
+ * @file lv_draw_sw_blend_neon_to_rgb888.c
+ *
+ */
+
+/*********************
+ * INCLUDES
+ *********************/
+#include "lv_draw_sw_blend_neon_to_rgb888.h"
+#include
+#if LV_USE_DRAW_SW_ASM == LV_DRAW_SW_ASM_NEON
+
+#include "../../../../misc/lv_color.h"
+#include "../../../../misc/lv_types.h"
+#include "../lv_draw_sw_blend_private.h"
+#include
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+/**********************
+ * STATIC PROTOTYPES
+ **********************/
+
+static inline void * LV_ATTRIBUTE_FAST_MEM drawbuf_next_row(const void * buf, uint32_t stride);
+
+static inline uint32x4_t rgb565_xrgb_mix_4_internal(uint32x4_t src, uint32x4_t dst, uint32x4_t mix);
+static inline uint32x2_t rgb565_xrgb_mix_2_internal(uint32x2_t src, uint32x2_t dst, uint32x2_t mix);
+
+static inline uint8x16x3_t lv_color_to_rgb888_16(const lv_color_t * color);
+static inline uint8x8x3_t lv_color_to_rgb888_8(const lv_color_t * color);
+
+static inline uint8x16x4_t lv_color_to_xrgb888_16(const lv_color_t * color);
+static inline uint8x8x4_t lv_color_to_xrgb888_8(const lv_color_t * color);
+static inline uint8x16_t lv_color_to_xrgb888_4(const lv_color_t * color);
+static inline uint8x8_t lv_color_to_xrgb888_2(const lv_color_t * color);
+static inline uint8x8x3_t lv_rgb565_to_rgb888_8(const uint16_t * color);
+static inline uint8x8x4_t lv_rgb565_to_xrgb8888_8(const uint16_t * color);
+
+
+static inline uint8x8x3_t rgb565_rgb888_mix_8_internal(uint16x8_t src, uint8x8x3_t dst, uint8x8_t mix);
+
+static inline void lv_color_24_24_mix_1(const uint8_t * src, uint8_t * dest, uint8_t mix);
+
+static inline void rgb565_mix_1(const uint16_t * src, uint8_t * dest, uint8_t mix);
+
+static inline uint32x4_t argb_rgb_mix_4(const uint32_t * src, const uint32_t * dst);
+static inline uint32x2_t argb_rgb_mix_2(const uint32_t * src, const uint32_t * dst);
+
+static inline uint32x4_t argb_rgb_mix_4_with_opa(const uint32_t * src, const uint32_t * dst, uint32x4_t mix);
+static inline uint32x2_t argb_rgb_mix_2_with_opa(const uint32_t * src, const uint32_t * dst, uint32x2_t mix);
+
+static inline uint32x4_t argb_rgb_mix_4_with_opa_mask(const uint32_t * src, const uint32_t * dst, uint32x4_t opa,
+ uint32x4_t mask);
+static inline uint32x2_t argb_rgb_mix_2_with_opa_mask(const uint32_t * src, const uint32_t * dst, uint32x2_t opa,
+ uint32x2_t mask);
+
+static inline uint32x4_t lv_color_24_24_mix_4_internal(uint32x4_t src, uint32x4_t dst, uint32x4_t mix);
+static inline uint32x2_t lv_color_24_24_mix_2_internal(uint32x2_t src, uint32x2_t dst, uint32x2_t mix);
+
+static inline uint32x4_t lv_color_24_24_mix_4_premul_internal(uint32x4_t src, uint32x4_t dst, uint32x4_t mix);
+static inline uint32x2_t lv_color_24_24_mix_2_premul_internal(uint32x2_t src, uint32x2_t dst, uint32x2_t mix);
+static inline void lv_color_24_24_mix_premult(const uint8_t * src, uint8_t * dest, uint8_t mix);
+
+static inline uint8x16x3_t rgb_mix_8_internal(uint8x16x3_t src, uint8x16x3_t dst, uint8x16_t mix);
+static inline uint8x8x3_t rgb_mix_4_internal(uint8x8x3_t src, uint8x8x3_t dst, uint8x8_t mix);
+
+/**********************
+ * STATIC VARIABLES
+ **********************/
+
+/**********************
+ * MACROS
+ **********************/
+
+/**********************
+ * GLOBAL FUNCTIONS
+ **********************/
+
+lv_result_t lv_draw_sw_blend_neon_color_to_rgb888(lv_draw_sw_blend_fill_dsc_t * dsc, uint32_t dest_px_size)
+{
+ LV_ASSERT(dest_px_size == 3 || dest_px_size == 4);
+ LV_ASSERT(dsc->opa >= LV_OPA_MAX);
+ LV_ASSERT(dsc->mask_buf == NULL);
+ const int32_t w = dsc->dest_w;
+ const int32_t h = dsc->dest_h;
+ const int32_t dest_stride = dsc->dest_stride;
+ uint8_t * dest_buf_8 = dsc->dest_buf;
+
+ if(dest_px_size == 3) {
+ const int32_t byte_w = w * 3;
+ const uint8x16x3_t vec_16 = lv_color_to_rgb888_16(&dsc->color);
+ const uint8x8x3_t vec_8 = lv_color_to_rgb888_8(&dsc->color);
+ for(int32_t y = 0; y < h; y++) {
+ uint8_t * row_byte_ptr = dest_buf_8;
+ int32_t x = 0;
+ for(; x < byte_w - 47; x += 48) {
+ vst3q_u8(&row_byte_ptr[x], vec_16);
+ }
+ for(; x < byte_w - 23; x += 24) {
+ vst3_u8(&row_byte_ptr[x], vec_8);
+ }
+ for(; x < byte_w; x += 3) {
+ row_byte_ptr[x + 0] = dsc->color.blue;
+ row_byte_ptr[x + 1] = dsc->color.green;
+ row_byte_ptr[x + 2] = dsc->color.red;
+ }
+ dest_buf_8 = drawbuf_next_row(dest_buf_8, dest_stride);
+ }
+ }
+ else if(dest_px_size == 4) {
+ const int32_t byte_w = w * 4;
+ const uint8x16x4_t vec_16 = lv_color_to_xrgb888_16(&dsc->color);
+ const uint8x8x4_t vec_8 = lv_color_to_xrgb888_8(&dsc->color);
+ const uint8x16_t vec_4 = lv_color_to_xrgb888_4(&dsc->color);
+ const uint8x8_t vec_2 = lv_color_to_xrgb888_2(&dsc->color);
+
+ for(int32_t y = 0; y < h; y++) {
+ uint8_t * row_byte_ptr = dest_buf_8;
+ int32_t x = 0;
+ for(; x < byte_w - 63; x += 64) {
+ vst4q_u8(&row_byte_ptr[x], vec_16);
+ }
+ for(; x < byte_w - 31; x += 32) {
+ vst4_u8(&row_byte_ptr[x], vec_8);
+ }
+ for(; x < byte_w - 15; x += 16) {
+ vst1q_u8(&row_byte_ptr[x], vec_4);
+ }
+ for(; x < byte_w - 7; x += 8) {
+ vst1_u8(&row_byte_ptr[x], vec_2);
+ }
+ for(; x < byte_w; x += 4) {
+ row_byte_ptr[x + 0] = dsc->color.blue;
+ row_byte_ptr[x + 1] = dsc->color.green;
+ row_byte_ptr[x + 2] = dsc->color.red;
+ row_byte_ptr[x + 3] = 0xFF;
+ }
+ dest_buf_8 = drawbuf_next_row(dest_buf_8, dest_stride);
+ }
+ }
+
+ return LV_RESULT_OK;
+}
+lv_result_t lv_draw_sw_blend_neon_color_to_rgb888_with_opa(lv_draw_sw_blend_fill_dsc_t * dsc, uint32_t dest_px_size)
+{
+ LV_ASSERT(dest_px_size == 3 || dest_px_size == 4);
+ LV_ASSERT(dsc->opa < LV_OPA_MAX);
+ LV_ASSERT(dsc->mask_buf == NULL);
+ const int32_t w = dsc->dest_w;
+ const int32_t h = dsc->dest_h;
+ const int32_t dest_stride = dsc->dest_stride;
+ const uint8_t opa = dsc->opa;
+
+ if(dest_px_size == 3) {
+ const uint8x16x3_t color_16 = {{vdupq_n_u8(dsc->color.blue), vdupq_n_u8(dsc->color.green), vdupq_n_u8(dsc->color.red)}};
+ const uint8x8x3_t color_8 = {{vdup_n_u8(dsc->color.blue), vdup_n_u8(dsc->color.green), vdup_n_u8(dsc->color.red)}};
+ const uint8x16_t opa_16 = vdupq_n_u8(dsc->opa);
+ const uint8x8_t opa_8 = vdup_n_u8(dsc->opa);
+
+ uint8_t * dest_buf_8 = dsc->dest_buf;
+ for(int32_t y = 0; y < h; y++) {
+ uint8_t * row_ptr = dest_buf_8;
+ int32_t x = 0;
+ for(; x < w - 15; x += 16) {
+ uint8x16x3_t dst = vld3q_u8(&row_ptr[x * 3]);
+ vst3q_u8(&row_ptr[x * 3], rgb_mix_8_internal(color_16, dst, opa_16));
+ }
+ for(; x < w - 7; x += 8) {
+ uint8x8x3_t dst = vld3_u8(&row_ptr[x * 3]);
+ vst3_u8(&row_ptr[x * 3], rgb_mix_4_internal(color_8, dst, opa_8));
+ }
+ for(; x < w; x ++) {
+ lv_color_24_24_mix_1((const uint8_t *)&dsc->color, &row_ptr[x * 3], opa);
+ }
+ dest_buf_8 = drawbuf_next_row(dest_buf_8, dest_stride);
+ }
+
+ }
+ else if(dest_px_size == 4) {
+ uint32_t * dest_buf_32 = dsc->dest_buf;
+ const uint32_t color = dsc->color.red << 16 | dsc->color.green << 8 | dsc->color.blue;
+ const uint32x4_t vec_4 = vdupq_n_u32(color);
+ const uint32x4_t opa_4 = vdupq_n_u32((uint32_t)dsc->opa);
+ const uint32x2_t vec_2 = vdup_n_u32(color);
+ const uint32x2_t opa_2 = vdup_n_u32((uint32_t)dsc->opa);
+
+ for(int32_t y = 0; y < h; y++) {
+ uint32_t * row_ptr = dest_buf_32;
+ int32_t x = 0;
+ for(; x < w - 3; x += 4) {
+ uint32x4_t dst = vld1q_u32(&row_ptr[x]);
+ vst1q_u32(&row_ptr[x], lv_color_24_24_mix_4_internal(vec_4, dst, opa_4));
+ }
+ for(; x < w - 1; x += 2) {
+ uint32x2_t dst = vld1_u32(&row_ptr[x]);
+ vst1_u32(&row_ptr[x], lv_color_24_24_mix_2_internal(vec_2, dst, opa_2));
+ }
+ for(; x < w; x ++) {
+ lv_color_24_24_mix_1((const uint8_t *)&dsc->color, (uint8_t *)&row_ptr[x], opa);
+ }
+ dest_buf_32 = drawbuf_next_row(dest_buf_32, dest_stride);
+ }
+ }
+
+ return LV_RESULT_OK;
+}
+
+lv_result_t lv_draw_sw_blend_neon_color_to_rgb888_with_mask(lv_draw_sw_blend_fill_dsc_t * dsc, uint32_t dest_px_size)
+{
+ LV_ASSERT(dest_px_size == 3 || dest_px_size == 4);
+ LV_ASSERT(dsc->opa >= LV_OPA_MAX);
+ LV_ASSERT_NULL(dsc->mask_buf);
+ const int32_t w = dsc->dest_w;
+ const int32_t h = dsc->dest_h;
+ const int32_t dest_stride = dsc->dest_stride;
+ const int32_t mask_stride = dsc->mask_stride;
+ const uint8_t * mask_buf_8 = dsc->mask_buf;
+
+ if(dest_px_size == 3) {
+ const uint8x16x3_t color_16 = {{vdupq_n_u8(dsc->color.blue), vdupq_n_u8(dsc->color.green), vdupq_n_u8(dsc->color.red)}};
+ const uint8x8x3_t color_8 = {{vdup_n_u8(dsc->color.blue), vdup_n_u8(dsc->color.green), vdup_n_u8(dsc->color.red)}};
+
+ uint8_t * dest_buf_8 = dsc->dest_buf;
+ for(int32_t y = 0; y < h; y++) {
+ uint8_t * row_ptr = dest_buf_8;
+ const uint8_t * mask_row_ptr = mask_buf_8;
+ int32_t x = 0;
+ for(; x < w - 15; x += 16) {
+ const uint8x16_t mask_16 = vld1q_u8(&mask_row_ptr[x]);
+ uint8x16x3_t dst = vld3q_u8(&row_ptr[x * 3]);
+ vst3q_u8(&row_ptr[x * 3], rgb_mix_8_internal(color_16, dst, mask_16));
+ }
+ for(; x < w - 7; x += 8) {
+ const uint8x8_t mask_8 = vld1_u8(&mask_row_ptr[x]);
+ uint8x8x3_t dst = vld3_u8(&row_ptr[x * 3]);
+ vst3_u8(&row_ptr[x * 3], rgb_mix_4_internal(color_8, dst, mask_8));
+ }
+ for(; x < w; x ++) {
+ lv_color_24_24_mix_1((const uint8_t *)&dsc->color, &row_ptr[x * 3], mask_row_ptr[x]);
+ }
+ dest_buf_8 = drawbuf_next_row(dest_buf_8, dest_stride);
+ mask_buf_8 = drawbuf_next_row(mask_buf_8, mask_stride);
+ }
+ }
+ else if(dest_px_size == 4) {
+ uint32_t * dest_buf_32 = dsc->dest_buf;
+ const uint32_t color = dsc->color.red << 16 | dsc->color.green << 8 | dsc->color.blue;
+ const uint32x4_t vec_4 = vdupq_n_u32(color);
+ const uint32x2_t vec_2 = vdup_n_u32(color);
+
+ for(int32_t y = 0; y < h; y++) {
+ uint32_t * row_ptr = dest_buf_32;
+ const uint8_t * mask_row_ptr = mask_buf_8;
+ int32_t x = 0;
+ for(; x < w - 3; x += 4) {
+ const uint32x4_t mix_4 = {mask_row_ptr[x], mask_row_ptr[x + 1], mask_row_ptr[x + 2], mask_row_ptr[x + 3]};
+ const uint32x4_t dst = vld1q_u32(&row_ptr[x]);
+ vst1q_u32(&row_ptr[x], lv_color_24_24_mix_4_internal(vec_4, dst, mix_4));
+ }
+ for(; x < w - 1; x += 2) {
+ const uint32x2_t mix_2 = {mask_row_ptr[x], mask_row_ptr[x + 1]};
+ const uint32x2_t dst = vld1_u32(&row_ptr[x]);
+ vst1_u32(&row_ptr[x], lv_color_24_24_mix_2_internal(vec_2, dst, mix_2));
+ }
+ for(; x < w; x ++) {
+ lv_color_24_24_mix_1((const uint8_t *)&dsc->color, (uint8_t *)&row_ptr[x], mask_row_ptr[x]);
+ }
+ dest_buf_32 = drawbuf_next_row(dest_buf_32, dest_stride);
+ mask_buf_8 = drawbuf_next_row(mask_buf_8, mask_stride);
+ }
+ }
+ return LV_RESULT_OK;
+}
+
+lv_result_t lv_draw_sw_blend_neon_color_to_rgb888_with_opa_mask(lv_draw_sw_blend_fill_dsc_t * dsc,
+ uint32_t dest_px_size)
+{
+ LV_ASSERT(dest_px_size == 3 || dest_px_size == 4);
+ LV_ASSERT(dsc->opa < LV_OPA_MAX);
+ LV_ASSERT_NULL(dsc->mask_buf);
+ const int32_t w = dsc->dest_w;
+ const int32_t h = dsc->dest_h;
+ const int32_t dest_stride = dsc->dest_stride;
+ const uint8_t opa = dsc->opa;
+ const int32_t mask_stride = dsc->mask_stride;
+ const uint8_t * mask_buf_8 = dsc->mask_buf;
+
+ if(dest_px_size == 3) {
+ const uint8x16x3_t color_16 = {{vdupq_n_u8(dsc->color.blue), vdupq_n_u8(dsc->color.green), vdupq_n_u8(dsc->color.red)}};
+ const uint8x8x3_t color_8 = {{vdup_n_u8(dsc->color.blue), vdup_n_u8(dsc->color.green), vdup_n_u8(dsc->color.red)}};
+ const uint8x16_t opa_16 = vdupq_n_u8(dsc->opa);
+ const uint8x8_t opa_8 = vdup_n_u8(dsc->opa);
+
+ uint8_t * dest_buf_8 = dsc->dest_buf;
+ for(int32_t y = 0; y < h; y++) {
+ uint8_t * row_ptr = dest_buf_8;
+ const uint8_t * mask_row_ptr = mask_buf_8;
+ int32_t x = 0;
+ for(; x < w - 15; x += 16) {
+ const uint8x16_t mask_16 = vld1q_u8(&mask_row_ptr[x]);
+ const uint8x8_t opa_lo = vget_low_u8(opa_16);
+ const uint8x8_t opa_hi = vget_high_u8(opa_16);
+ const uint8x8_t mask_lo = vget_low_u8(mask_16);
+ const uint8x8_t mask_hi = vget_high_u8(mask_16);
+ const uint16x8_t result_lo_wide = vmull_u8(opa_lo, mask_lo);
+ const uint16x8_t result_hi_wide = vmull_u8(opa_hi, mask_hi);
+ const uint8x8_t result_lo = vshrn_n_u16(result_lo_wide, 8);
+ const uint8x8_t result_hi = vshrn_n_u16(result_hi_wide, 8);
+ const uint8x16_t mix = vcombine_u8(result_lo, result_hi);
+ uint8x16x3_t dst = vld3q_u8(&row_ptr[x * 3]);
+ vst3q_u8(&row_ptr[x * 3], rgb_mix_8_internal(color_16, dst, mix));
+ }
+ for(; x < w - 7; x += 8) {
+ const uint8x8_t mask_8 = vld1_u8(&mask_row_ptr[x]);
+ const uint16x8_t mult = vmull_u8(opa_8, mask_8);
+ const uint8x8_t mix = vshrn_n_u16(mult, 8);
+ uint8x8x3_t dst = vld3_u8(&row_ptr[x * 3]);
+ vst3_u8(&row_ptr[x * 3], rgb_mix_4_internal(color_8, dst, mix));
+ }
+ for(; x < w; x ++) {
+ lv_color_24_24_mix_1((const uint8_t *)&dsc->color, &row_ptr[x * 3], LV_OPA_MIX2(opa, mask_row_ptr[x]));
+ }
+ dest_buf_8 = drawbuf_next_row(dest_buf_8, dest_stride);
+ mask_buf_8 = drawbuf_next_row(mask_buf_8, mask_stride);
+ }
+ }
+ else if(dest_px_size == 4) {
+ const int32_t mask_stride = dsc->mask_stride;
+ uint32_t * dest_buf_32 = dsc->dest_buf;
+ const uint8_t * mask_buf_8 = dsc->mask_buf;
+ const uint32_t color = dsc->color.red << 16 | dsc->color.green << 8 | dsc->color.blue;
+ const uint32x4_t vec_4 = vdupq_n_u32(color);
+ const uint32x4_t opa_4 = vdupq_n_u32((uint32_t)dsc->opa);
+ const uint32x2_t vec_2 = vdup_n_u32(color);
+ const uint32x2_t opa_2 = vdup_n_u32((uint32_t)dsc->opa);
+
+ for(int32_t y = 0; y < h; y++) {
+ uint32_t * row_ptr = dest_buf_32;
+ const uint8_t * mask_row_ptr = mask_buf_8;
+ int32_t x = 0;
+ for(; x < w - 3; x += 4) {
+ const uint32x4_t mask_4 = {mask_row_ptr[x], mask_row_ptr[x + 1], mask_row_ptr[x + 2], mask_row_ptr[x + 3]};
+ const uint32x4_t mix_4 = vshrq_n_u32(vmulq_u32(opa_4, mask_4), 8);
+ const uint32x4_t dst = vld1q_u32(&row_ptr[x]);
+ vst1q_u32(&row_ptr[x], lv_color_24_24_mix_4_internal(vec_4, dst, mix_4));
+ }
+ for(; x < w - 1; x += 2) {
+ const uint32x2_t mask_2 = {mask_row_ptr[x], mask_row_ptr[x + 1]};
+ const uint32x2_t mix_2 = vshr_n_u32(vmul_u32(opa_2, mask_2), 8);
+ const uint32x2_t dst = vld1_u32(&row_ptr[x]);
+ vst1_u32(&row_ptr[x], lv_color_24_24_mix_2_internal(vec_2, dst, mix_2));
+ }
+ for(; x < w; x ++) {
+ lv_color_24_24_mix_1((const uint8_t *)&dsc->color, (uint8_t *)&row_ptr[x], LV_OPA_MIX2(opa, mask_row_ptr[x]));
+ }
+ dest_buf_32 = drawbuf_next_row(dest_buf_32, dest_stride);
+ mask_buf_8 = drawbuf_next_row(mask_buf_8, mask_stride);
+ }
+ }
+ return LV_RESULT_OK;
+}
+
+#ifdef __aarch64__ /* vqtbl1q_u8 is only available on arm64 */
+lv_result_t lv_draw_sw_blend_neon_l8_to_rgb888(lv_draw_sw_blend_image_dsc_t * dsc, uint32_t dest_px_size)
+{
+ LV_ASSERT(dest_px_size == 3 || dest_px_size == 4);
+ LV_ASSERT(dsc->opa >= LV_OPA_MAX);
+ LV_ASSERT(dsc->mask_buf == NULL);
+ const int32_t w = dsc->dest_w;
+ const int32_t h = dsc->dest_h;
+ const int32_t src_stride = dsc->src_stride;
+ const int32_t dest_stride = dsc->dest_stride;
+ uint8_t * dest_buf_8 = dsc->dest_buf;
+ const uint8_t * src_buf_l8 = dsc->src_buf;
+
+ if(dest_px_size == 3) {
+ static const uint8x16_t selector_mask = {0, 0, 0, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 0};
+ for(int32_t y = 0; y < h; y++) {
+ uint8_t * row_byte_ptr = dest_buf_8;
+ const uint8_t * src_row = src_buf_l8;
+ int32_t dest_x = 0;
+ int32_t src_x = 0;
+ for(; src_x < w - 8; src_x += 5, dest_x += 15) {
+ uint8x8_t gray_pixels = vld1_u8(&src_row[src_x]);
+ uint8x16_t gray_extended = vcombine_u8(gray_pixels, vdup_n_u8(0));
+ uint8x16_t rgb_result = vqtbl1q_u8(gray_extended, selector_mask);
+ vst1q_u8(&row_byte_ptr[dest_x], rgb_result);
+ }
+ for(; src_x < w; src_x++, dest_x += 3) {
+ row_byte_ptr[dest_x + 0] = src_row[src_x];
+ row_byte_ptr[dest_x + 1] = src_row[src_x];
+ row_byte_ptr[dest_x + 2] = src_row[src_x];
+ }
+ dest_buf_8 = drawbuf_next_row(dest_buf_8, dest_stride);
+ src_buf_l8 = drawbuf_next_row(src_buf_l8, src_stride);
+ }
+ }
+ else if(dest_px_size == 4) {
+ static const uint8x16_t selector_mask = {0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3};
+ for(int32_t y = 0; y < h; y++) {
+ uint8_t * row_byte_ptr = dest_buf_8;
+ const uint8_t * src_row = src_buf_l8;
+ int32_t dest_x = 0;
+ int32_t src_x = 0;
+ for(; src_x < w - 8; src_x += 4, dest_x += 16) {
+ uint8x8_t gray_pixels = vld1_u8(&src_row[src_x]);
+ uint8x16_t gray_extended = vcombine_u8(gray_pixels, vdup_n_u8(0));
+ uint8x16_t rgb_result = vqtbl1q_u8(gray_extended, selector_mask);
+ vst1q_u8(&row_byte_ptr[dest_x], rgb_result);
+ }
+ for(; src_x < w; src_x++, dest_x += 4) {
+ row_byte_ptr[dest_x + 0] = src_row[src_x];
+ row_byte_ptr[dest_x + 1] = src_row[src_x];
+ row_byte_ptr[dest_x + 2] = src_row[src_x];
+ row_byte_ptr[dest_x + 3] = src_row[src_x];
+ }
+ dest_buf_8 = drawbuf_next_row(dest_buf_8, dest_stride);
+ src_buf_l8 = drawbuf_next_row(src_buf_l8, src_stride);
+ }
+ }
+ return LV_RESULT_OK;
+}
+#endif
+
+lv_result_t lv_draw_sw_blend_neon_rgb565_to_rgb888(lv_draw_sw_blend_image_dsc_t * dsc, uint32_t dest_px_size)
+{
+ LV_ASSERT(dest_px_size == 3 || dest_px_size == 4);
+ LV_ASSERT(dsc->opa >= LV_OPA_MAX);
+ LV_ASSERT(dsc->mask_buf == NULL);
+ int32_t w = dsc->dest_w;
+ int32_t h = dsc->dest_h;
+ uint8_t * dest_buf_u8 = dsc->dest_buf;
+ int32_t dest_stride = dsc->dest_stride;
+ const uint16_t * src_buf_u16 = dsc->src_buf;
+ int32_t src_stride = dsc->src_stride;
+
+ if(dest_px_size == 3) {
+ for(int32_t y = 0; y < h; y++) {
+ uint8_t * dest_row = dest_buf_u8;
+ const uint16_t * src_row = (const uint16_t *)src_buf_u16;
+ int32_t src_x = 0;
+ int32_t dest_x = 0;
+
+ for(; src_x < w - 7; src_x += 8, dest_x += 24) {
+ uint8x8x3_t rgb = lv_rgb565_to_rgb888_8(&src_row[src_x]);
+ vst3_u8(&dest_row[dest_x], rgb);
+ }
+ for(; src_x < w; src_x++, dest_x += 3) {
+ const uint8_t r = (((src_row[src_x] & 0xF800) >> 11) * 2106) >> 8;
+ const uint8_t g = (((src_row[src_x] & 0x07E0) >> 5) * 1037) >> 8;
+ const uint8_t b = (((src_row[src_x] & 0x001F)) * 2106) >> 8;
+ dest_row[dest_x + 0] = b;
+ dest_row[dest_x + 1] = g;
+ dest_row[dest_x + 2] = r;
+ }
+ dest_buf_u8 = drawbuf_next_row(dest_buf_u8, dest_stride);
+ src_buf_u16 = drawbuf_next_row(src_buf_u16, src_stride);
+ }
+ }
+ else {
+ for(int32_t y = 0; y < h; y++) {
+ uint8_t * dest_row = dest_buf_u8;
+ const uint16_t * src_row = (const uint16_t *)src_buf_u16;
+ int32_t src_x = 0;
+ int32_t dest_x = 0;
+
+ for(; src_x < w - 7; src_x += 8, dest_x += 32) {
+ uint8x8x4_t xrgb = lv_rgb565_to_xrgb8888_8(&src_row[src_x]);
+ vst4_u8(&dest_row[dest_x], xrgb);
+ }
+ for(; src_x < w; src_x++, dest_x += 4) {
+ const uint8_t r = (((src_row[src_x] & 0xF800) >> 11) * 2106) >> 8;
+ const uint8_t g = (((src_row[src_x] & 0x07E0) >> 5) * 1037) >> 8;
+ const uint8_t b = (((src_row[src_x] & 0x001F)) * 2106) >> 8;
+ dest_row[dest_x + 0] = b;
+ dest_row[dest_x + 1] = g;
+ dest_row[dest_x + 2] = r;
+ }
+ dest_buf_u8 = drawbuf_next_row(dest_buf_u8, dest_stride);
+ src_buf_u16 = drawbuf_next_row(src_buf_u16, src_stride);
+ }
+ }
+ return LV_RESULT_OK;
+}
+lv_result_t lv_draw_sw_blend_neon_rgb565_to_rgb888_with_opa(lv_draw_sw_blend_image_dsc_t * dsc, uint32_t dest_px_size)
+{
+
+ LV_ASSERT(dest_px_size == 3 || dest_px_size == 4);
+ LV_ASSERT(dsc->opa < LV_OPA_MAX);
+ LV_ASSERT(dsc->mask_buf == NULL);
+ const int32_t w = dsc->dest_w;
+ const int32_t h = dsc->dest_h;
+ const int32_t dest_stride = dsc->dest_stride;
+ const uint8_t opa = dsc->opa;
+ const uint16_t * src_buf_u16 = dsc->src_buf;
+ const int32_t src_stride = dsc->src_stride;
+
+ if(dest_px_size == 3) {
+ const uint8x8_t opa_8 = vdup_n_u8(dsc->opa);
+ uint8_t * dest_buf_8 = dsc->dest_buf;
+ for(int32_t y = 0; y < h; y++) {
+ uint8_t * row_ptr = dest_buf_8;
+ const uint16_t * src_row_ptr = src_buf_u16;
+ int32_t x = 0;
+ for(; x < w - 7; x += 8) {
+ uint16x8_t src = vld1q_u16(&src_row_ptr[x]);
+ uint8x8x3_t dst = vld3_u8(&row_ptr[x * 3]);
+ vst3_u8(&row_ptr[x * 3], rgb565_rgb888_mix_8_internal(src, dst, opa_8));
+ }
+ for(; x < w; x++) {
+ rgb565_mix_1(&src_row_ptr[x], &row_ptr[x * 3], opa);
+ }
+ dest_buf_8 = drawbuf_next_row(dest_buf_8, dest_stride);
+ src_buf_u16 = drawbuf_next_row(src_buf_u16, src_stride);
+ }
+ }
+ else if(dest_px_size == 4) {
+ uint32_t * dest_buf_32 = dsc->dest_buf;
+ const uint16_t * src_buf_u16 = dsc->src_buf;
+ const uint32x4_t opa_4 = vdupq_n_u32((uint32_t)dsc->opa);
+ const uint32x2_t opa_2 = vdup_n_u32((uint32_t)dsc->opa);
+
+ for(int32_t y = 0; y < h; y++) {
+ uint32_t * row_ptr = dest_buf_32;
+ const uint16_t * src_row_ptr = src_buf_u16;
+ int32_t x = 0;
+ for(; x < w - 3; x += 4) {
+ uint32x4_t dst = vld1q_u32(&row_ptr[x]);
+ const uint16x4_t vec_4 = vld1_u16(&src_row_ptr[x]);
+ uint32x4_t src = vmovl_u16(vec_4);
+ vst1q_u32(&row_ptr[x], rgb565_xrgb_mix_4_internal(src, dst, opa_4));
+ }
+ for(; x < w - 1; x += 2) {
+ uint32x2_t dst = vld1_u32(&row_ptr[x]);
+ uint32x2_t src = {src_row_ptr[x], src_row_ptr[x + 1]};
+ vst1_u32(&row_ptr[x], rgb565_xrgb_mix_2_internal(src, dst, opa_2));
+ }
+ for(; x < w; x++) {
+ rgb565_mix_1(&src_row_ptr[x], (uint8_t *)&row_ptr[x], opa);
+ }
+ dest_buf_32 = drawbuf_next_row(dest_buf_32, dest_stride);
+ src_buf_u16 = drawbuf_next_row(src_buf_u16, src_stride);
+ }
+ }
+
+ return LV_RESULT_OK;
+}
+lv_result_t lv_draw_sw_blend_neon_rgb565_to_rgb888_with_mask(lv_draw_sw_blend_image_dsc_t * dsc, uint32_t dest_px_size)
+{
+ LV_ASSERT(dest_px_size == 3 || dest_px_size == 4);
+ LV_ASSERT(dsc->opa >= LV_OPA_MAX);
+ LV_ASSERT_NULL(dsc->mask_buf);
+ const int32_t w = dsc->dest_w;
+ const int32_t h = dsc->dest_h;
+ const int32_t dest_stride = dsc->dest_stride;
+ const uint16_t * src_buf_u16 = dsc->src_buf;
+ const int32_t src_stride = dsc->src_stride;
+ const uint8_t * mask_buf_u8 = dsc->mask_buf;
+ const int32_t mask_stride = dsc->mask_stride;
+
+ if(dest_px_size == 3) {
+ uint8_t * dest_buf_8 = dsc->dest_buf;
+ for(int32_t y = 0; y < h; y++) {
+ uint8_t * row_ptr = dest_buf_8;
+ const uint16_t * src_row_ptr = src_buf_u16;
+ const uint8_t * mask_row_ptr = mask_buf_u8;
+ int32_t x = 0;
+ for(; x < w - 7; x += 8) {
+ uint16x8_t src = vld1q_u16(&src_row_ptr[x]);
+ uint8x8x3_t dst = vld3_u8(&row_ptr[x * 3]);
+ uint8x8_t mask = vld1_u8(&mask_row_ptr[x]);
+ vst3_u8(&row_ptr[x * 3], rgb565_rgb888_mix_8_internal(src, dst, mask));
+ }
+ for(; x < w; x++) {
+ rgb565_mix_1(&src_row_ptr[x], &row_ptr[x * 3], mask_row_ptr[x]);
+ }
+ dest_buf_8 = drawbuf_next_row(dest_buf_8, dest_stride);
+ src_buf_u16 = drawbuf_next_row(src_buf_u16, src_stride);
+ mask_buf_u8 = drawbuf_next_row(mask_buf_u8, mask_stride);
+ }
+ }
+ else if(dest_px_size == 4) {
+ /* The algorithm below might look okay but the demo render test fails with it so it's disabled */
+ return LV_RESULT_INVALID;
+#if 0 /* TODO: Figure out the problem with the algorithm below */
+ uint32_t * dest_buf_32 = dsc->dest_buf;
+ const uint16_t * src_buf_u16 = dsc->src_buf;
+
+ for(int32_t y = 0; y < h; y++) {
+ uint32_t * row_ptr = dest_buf_32;
+ const uint16_t * src_row_ptr = src_buf_u16;
+ const uint8_t * mask_row_ptr = mask_buf_u8;
+ int32_t x = 0;
+ for(; x < w - 3; x += 4) {
+ uint32x4_t dst = vld1q_u32(&row_ptr[x]);
+ const uint16x4_t vec_4 = vld1_u16(&src_row_ptr[x]);
+ uint32x4_t src = vmovl_u16(vec_4);
+ const uint32x4_t mask_4 = {mask_row_ptr[x], mask_row_ptr[x + 1], mask_row_ptr[x + 2], mask_row_ptr[x + 3]};
+
+ vst1q_u32(&row_ptr[x], rgb565_xrgb_mix_4_internal(src, dst, mask_4));
+ }
+ for(; x < w - 1; x += 2) {
+ uint32x2_t dst = vld1_u32(&row_ptr[x]);
+ uint32x2_t src = {src_row_ptr[x], src_row_ptr[x + 1]};
+ const uint32x2_t mask_2 = {mask_row_ptr[x], mask_row_ptr[x + 1]};
+ vst1_u32(&row_ptr[x], rgb565_xrgb_mix_2_internal(src, dst, mask_2));
+ }
+ for(; x < w; x++) {
+ rgb565_mix_1(&src_row_ptr[x], (uint8_t *)&row_ptr[x], mask_row_ptr[x]);
+ }
+ dest_buf_32 = drawbuf_next_row(dest_buf_32, dest_stride);
+ src_buf_u16 = drawbuf_next_row(src_buf_u16, src_stride);
+ mask_buf_u8 = drawbuf_next_row(mask_buf_u8, mask_stride);
+ }
+#endif
+ }
+
+ return LV_RESULT_OK;
+}
+lv_result_t lv_draw_sw_blend_neon_rgb565_to_rgb888_with_opa_mask(lv_draw_sw_blend_image_dsc_t * dsc,
+ uint32_t dest_px_size)
+{
+ LV_ASSERT(dsc->opa < LV_OPA_MAX);
+ LV_ASSERT(dsc->mask_buf != NULL);
+ const int32_t w = dsc->dest_w;
+ const int32_t h = dsc->dest_h;
+ const int32_t dest_stride = dsc->dest_stride;
+ const uint16_t * src_buf_u16 = dsc->src_buf;
+ const int32_t src_stride = dsc->src_stride;
+ const uint8_t * mask_buf_u8 = dsc->mask_buf;
+ const int32_t mask_stride = dsc->mask_stride;
+ const uint8_t opa = dsc->opa;
+
+ if(dest_px_size == 3) {
+ uint8_t * dest_buf_8 = dsc->dest_buf;
+ const uint8x8_t opa_8 = vdup_n_u8(dsc->opa);
+ for(int32_t y = 0; y < h; y++) {
+ uint8_t * row_ptr = dest_buf_8;
+ const uint16_t * src_row_ptr = src_buf_u16;
+ const uint8_t * mask_row_ptr = mask_buf_u8;
+ int32_t x = 0;
+ for(; x < w - 7; x += 8) {
+ uint16x8_t src = vld1q_u16(&src_row_ptr[x]);
+ uint8x8x3_t dst = vld3_u8(&row_ptr[x * 3]);
+ uint8x8_t mask = vld1_u8(&mask_row_ptr[x]);
+ const uint16x8_t mult = vmull_u8(opa_8, mask);
+ const uint8x8_t mix = vshrn_n_u16(mult, 8);
+ vst3_u8(&row_ptr[x * 3], rgb565_rgb888_mix_8_internal(src, dst, mix));
+ }
+ for(; x < w; x++) {
+ rgb565_mix_1(&src_row_ptr[x], &row_ptr[x * 3], LV_OPA_MIX2(mask_row_ptr[x], opa));
+ }
+ dest_buf_8 = drawbuf_next_row(dest_buf_8, dest_stride);
+ src_buf_u16 = drawbuf_next_row(src_buf_u16, src_stride);
+ mask_buf_u8 = drawbuf_next_row(mask_buf_u8, mask_stride);
+ }
+ }
+ else if(dest_px_size == 4) {
+ uint32_t * dest_buf_32 = dsc->dest_buf;
+ const uint16_t * src_buf_u16 = dsc->src_buf;
+ const uint32x4_t opa_4 = vdupq_n_u32((uint32_t)dsc->opa);
+ const uint32x2_t opa_2 = vdup_n_u32((uint32_t)dsc->opa);
+
+ for(int32_t y = 0; y < h; y++) {
+ uint32_t * row_ptr = dest_buf_32;
+ const uint16_t * src_row_ptr = src_buf_u16;
+ const uint8_t * mask_row_ptr = mask_buf_u8;
+ int32_t x = 0;
+ for(; x < w - 3; x += 4) {
+ uint32x4_t dst = vld1q_u32(&row_ptr[x]);
+ const uint16x4_t vec_4 = vld1_u16(&src_row_ptr[x]);
+ uint32x4_t src = vmovl_u16(vec_4);
+ const uint32x4_t mask_4 = {mask_row_ptr[x], mask_row_ptr[x + 1], mask_row_ptr[x + 2], mask_row_ptr[x + 3]};
+ const uint32x4_t mix_4 = vshrq_n_u32(vmulq_u32(opa_4, mask_4), 8);
+
+ vst1q_u32(&row_ptr[x], rgb565_xrgb_mix_4_internal(src, dst, mix_4));
+ }
+ for(; x < w - 1; x += 2) {
+ uint32x2_t dst = vld1_u32(&row_ptr[x]);
+ uint32x2_t src = {src_row_ptr[x], src_row_ptr[x + 1]};
+ const uint32x2_t mask_2 = {mask_row_ptr[x], mask_row_ptr[x + 1]};
+ const uint32x2_t mix_2 = vshr_n_u32(vmul_u32(opa_2, mask_2), 8);
+ vst1_u32(&row_ptr[x], rgb565_xrgb_mix_2_internal(src, dst, mix_2));
+ }
+ for(; x < w; x++) {
+ rgb565_mix_1(&src_row_ptr[x], (uint8_t *)&row_ptr[x], LV_OPA_MIX2(opa, mask_row_ptr[x]));
+ }
+ dest_buf_32 = drawbuf_next_row(dest_buf_32, dest_stride);
+ src_buf_u16 = drawbuf_next_row(src_buf_u16, src_stride);
+ mask_buf_u8 = drawbuf_next_row(mask_buf_u8, mask_stride);
+ }
+ }
+ return LV_RESULT_OK;
+}
+lv_result_t lv_draw_sw_blend_neon_rgb888_to_rgb888(lv_draw_sw_blend_image_dsc_t * dsc, uint32_t dest_px_size,
+ uint32_t src_px_size)
+{
+ LV_ASSERT(dest_px_size == 3 || dest_px_size == 4);
+ LV_ASSERT(src_px_size == 3 || src_px_size == 4);
+ LV_ASSERT(dsc->opa >= LV_OPA_MAX);
+ LV_ASSERT(dsc->mask_buf == NULL);
+ int32_t w = dsc->dest_w;
+ int32_t h = dsc->dest_h;
+ uint8_t * dest_buf_u8 = dsc->dest_buf;
+ int32_t dest_stride = dsc->dest_stride;
+ const uint8_t * src_buf_u8 = dsc->src_buf;
+ int32_t src_stride = dsc->src_stride;
+
+ /* Fallback to sw implementation*/
+ if(src_px_size != dest_px_size) {
+ return LV_RESULT_INVALID;
+ }
+
+ for(int32_t y = 0; y < h; y++) {
+ uint8_t * dest_row = dest_buf_u8;
+ const uint8_t * src_row = src_buf_u8;
+ int32_t byte_w = w * src_px_size;
+ int32_t x = 0;
+ for(; x < byte_w - 15; x += 16) {
+ vst1q_u8(&dest_row[x], vld1q_u8(&src_row[x]));
+ }
+ for(; x < byte_w - 7; x += 8) {
+ vst1_u8(&dest_row[x], vld1_u8(&src_row[x]));
+ }
+ for(; x < byte_w; x++) {
+ dest_row[x] = src_row[x];
+ }
+ dest_buf_u8 = drawbuf_next_row(dest_buf_u8, dest_stride);
+ src_buf_u8 = drawbuf_next_row(src_buf_u8, src_stride);
+ }
+ return LV_RESULT_OK;
+}
+
+lv_result_t lv_draw_sw_blend_neon_rgb888_to_rgb888_with_opa(lv_draw_sw_blend_image_dsc_t * dsc, uint32_t dest_px_size,
+ uint32_t src_px_size)
+{
+ LV_ASSERT(dest_px_size == 3 || dest_px_size == 4);
+ LV_ASSERT(src_px_size == 3 || src_px_size == 4);
+ LV_ASSERT(dsc->opa < LV_OPA_MAX);
+ LV_ASSERT(dsc->mask_buf == NULL);
+ const int32_t w = dsc->dest_w;
+ const int32_t h = dsc->dest_h;
+ const int32_t dest_stride = dsc->dest_stride;
+ const int32_t src_stride = dsc->src_stride;
+ const uint8_t opa = dsc->opa;
+
+ /* Fallback to sw implementation*/
+ if(dest_px_size != src_px_size) {
+ return LV_RESULT_INVALID;
+ }
+
+ if(dest_px_size == 3) {
+ const uint8x16_t opa_16 = vdupq_n_u8(dsc->opa);
+ const uint8x8_t opa_8 = vdup_n_u8(dsc->opa);
+ uint8_t * dest_buf_8 = dsc->dest_buf;
+ const uint8_t * src_buf_8 = dsc->src_buf;
+ for(int32_t y = 0; y < h; y++) {
+ uint8_t * row_ptr = dest_buf_8;
+ const uint8_t * src_row_ptr = src_buf_8;
+
+ int32_t x = 0;
+ for(; x < w - 15; x += 16) {
+ uint8x16x3_t src = vld3q_u8(&src_row_ptr[x * 3]);
+ uint8x16x3_t dst = vld3q_u8(&row_ptr[x * 3]);
+ vst3q_u8(&row_ptr[x * 3], rgb_mix_8_internal(src, dst, opa_16));
+ }
+ for(; x < w - 7; x += 8) {
+ uint8x8x3_t src = vld3_u8(&src_row_ptr[x * 3]);
+ uint8x8x3_t dst = vld3_u8(&row_ptr[x * 3]);
+ vst3_u8(&row_ptr[x * 3], rgb_mix_4_internal(src, dst, opa_8));
+ }
+ for(; x < w; x ++) {
+ lv_color_24_24_mix_1(&src_row_ptr[x * 3], &row_ptr[x * 3], opa);
+ }
+ dest_buf_8 = drawbuf_next_row(dest_buf_8, dest_stride);
+ src_buf_8 = drawbuf_next_row(src_buf_8, src_stride);
+ }
+
+ }
+ else if(dest_px_size == 4) {
+ uint32_t * dest_buf_32 = dsc->dest_buf;
+ const uint32_t * src_buf_32 = dsc->src_buf;
+ const uint32x4_t opa_4 = vdupq_n_u32((uint32_t)dsc->opa);
+ const uint32x2_t opa_2 = vdup_n_u32((uint32_t)dsc->opa);
+
+ for(int32_t y = 0; y < h; y++) {
+ uint32_t * row_ptr = dest_buf_32;
+ const uint32_t * src_row_ptr = src_buf_32;
+ int32_t x = 0;
+ for(; x < w - 3; x += 4) {
+ uint32x4_t src = vld1q_u32(&src_row_ptr[x]);
+ uint32x4_t dst = vld1q_u32(&row_ptr[x]);
+ vst1q_u32(&row_ptr[x], lv_color_24_24_mix_4_internal(src, dst, opa_4));
+ }
+ for(; x < w - 1; x += 2) {
+ uint32x2_t src = vld1_u32(&src_row_ptr[x]);
+ uint32x2_t dst = vld1_u32(&row_ptr[x]);
+ vst1_u32(&row_ptr[x], lv_color_24_24_mix_2_internal(src, dst, opa_2));
+ }
+ for(; x < w; x ++) {
+ lv_color_24_24_mix_1((uint8_t *)&src_row_ptr[x], (uint8_t *)&row_ptr[x], opa);
+ }
+ dest_buf_32 = drawbuf_next_row(dest_buf_32, dest_stride);
+ src_buf_32 = drawbuf_next_row(src_buf_32, src_stride);
+ }
+ }
+ return LV_RESULT_OK;
+}
+lv_result_t lv_draw_sw_blend_neon_rgb888_to_rgb888_with_mask(lv_draw_sw_blend_image_dsc_t * dsc, uint32_t dest_px_size,
+ uint32_t src_px_size)
+{
+ LV_ASSERT(dest_px_size == 3 || dest_px_size == 4);
+ LV_ASSERT(src_px_size == 3 || src_px_size == 4);
+ LV_ASSERT(dsc->opa >= LV_OPA_MAX);
+ LV_ASSERT_NULL(dsc->mask_buf);
+ const int32_t w = dsc->dest_w;
+ const int32_t h = dsc->dest_h;
+ const int32_t dest_stride = dsc->dest_stride;
+ const int32_t src_stride = dsc->src_stride;
+ const int32_t mask_stride = dsc->mask_stride;
+ const uint8_t * mask_buf_8 = dsc->mask_buf;
+
+ /* Fallback to sw implementation*/
+ if(dest_px_size != src_px_size) {
+ return LV_RESULT_INVALID;
+ }
+
+ if(dest_px_size == 3) {
+ uint8_t * dest_buf_8 = dsc->dest_buf;
+ const uint8_t * src_buf_8 = dsc->src_buf;
+ for(int32_t y = 0; y < h; y++) {
+ uint8_t * row_ptr = dest_buf_8;
+ const uint8_t * src_row_ptr = src_buf_8;
+ const uint8_t * mask_row_ptr = mask_buf_8;
+
+ int32_t x = 0;
+ for(; x < w - 15; x += 16) {
+ const uint8x16_t mask_16 = vld1q_u8(&mask_row_ptr[x]);
+ uint8x16x3_t src = vld3q_u8(&src_row_ptr[x * 3]);
+ uint8x16x3_t dst = vld3q_u8(&row_ptr[x * 3]);
+ vst3q_u8(&row_ptr[x * 3], rgb_mix_8_internal(src, dst, mask_16));
+ }
+ for(; x < w - 7; x += 8) {
+ const uint8x8_t mask = vld1_u8(&mask_row_ptr[x]);
+ uint8x8x3_t src = vld3_u8(&src_row_ptr[x * 3]);
+ uint8x8x3_t dst = vld3_u8(&row_ptr[x * 3]);
+ vst3_u8(&row_ptr[x * 3], rgb_mix_4_internal(src, dst, mask));
+ }
+ for(; x < w; x ++) {
+ lv_color_24_24_mix_1(&src_row_ptr[x * 3], &row_ptr[x * 3], mask_row_ptr[x]);
+ }
+ dest_buf_8 = drawbuf_next_row(dest_buf_8, dest_stride);
+ src_buf_8 = drawbuf_next_row(src_buf_8, src_stride);
+ mask_buf_8 = drawbuf_next_row(mask_buf_8, mask_stride);
+ }
+
+ }
+ else if(dest_px_size == 4) {
+ uint32_t * dest_buf_32 = dsc->dest_buf;
+ const uint32_t * src_buf_32 = dsc->src_buf;
+
+ for(int32_t y = 0; y < h; y++) {
+ uint32_t * row_ptr = dest_buf_32;
+ const uint32_t * src_row_ptr = src_buf_32;
+ const uint8_t * mask_row_ptr = mask_buf_8;
+ int32_t x = 0;
+ for(; x < w - 3; x += 4) {
+ const uint32x4_t mask_4 = {mask_row_ptr[x], mask_row_ptr[x + 1], mask_row_ptr[x + 2], mask_row_ptr[x + 3]};
+ uint32x4_t src = vld1q_u32(&src_row_ptr[x]);
+ uint32x4_t dst = vld1q_u32(&row_ptr[x]);
+ vst1q_u32(&row_ptr[x], lv_color_24_24_mix_4_internal(src, dst, mask_4));
+ }
+ for(; x < w - 1; x += 2) {
+ const uint32x2_t mask_2 = {mask_row_ptr[x], mask_row_ptr[x + 1]};
+ uint32x2_t src = vld1_u32(&src_row_ptr[x]);
+ uint32x2_t dst = vld1_u32(&row_ptr[x]);
+ vst1_u32(&row_ptr[x], lv_color_24_24_mix_2_internal(src, dst, mask_2));
+ }
+ for(; x < w; x ++) {
+ lv_color_24_24_mix_1((uint8_t *)&src_row_ptr[x], (uint8_t *)&row_ptr[x], mask_row_ptr[x]);
+ }
+ dest_buf_32 = drawbuf_next_row(dest_buf_32, dest_stride);
+ src_buf_32 = drawbuf_next_row(src_buf_32, src_stride);
+ mask_buf_8 = drawbuf_next_row(mask_buf_8, mask_stride);
+ }
+ }
+ return LV_RESULT_OK;
+}
+lv_result_t lv_draw_sw_blend_neon_rgb888_to_rgb888_with_opa_mask(lv_draw_sw_blend_image_dsc_t * dsc,
+ uint32_t dest_px_size, uint32_t src_px_size)
+{
+ LV_ASSERT(dest_px_size == 3 || dest_px_size == 4);
+ LV_ASSERT(src_px_size == 3 || src_px_size == 4);
+ LV_ASSERT(dsc->opa < LV_OPA_MAX);
+ LV_ASSERT_NULL(dsc->mask_buf);
+ const int32_t w = dsc->dest_w;
+ const int32_t h = dsc->dest_h;
+ const int32_t dest_stride = dsc->dest_stride;
+ const int32_t src_stride = dsc->src_stride;
+ const int32_t mask_stride = dsc->src_stride;
+ const uint8_t opa = dsc->opa;
+ const uint8_t * mask_buf_8 = dsc->mask_buf;
+
+ /* Fallback to sw implementation*/
+ if(dest_px_size != src_px_size) {
+ return LV_RESULT_INVALID;
+ }
+
+ if(dest_px_size == 3) {
+ const uint8x16_t opa_16 = vdupq_n_u8(dsc->opa);
+ const uint8x8_t opa_8 = vdup_n_u8(dsc->opa);
+ uint8_t * dest_buf_8 = dsc->dest_buf;
+ const uint8_t * src_buf_8 = dsc->src_buf;
+ for(int32_t y = 0; y < h; y++) {
+ uint8_t * row_ptr = dest_buf_8;
+ const uint8_t * src_row_ptr = src_buf_8;
+ const uint8_t * mask_row_ptr = mask_buf_8;
+
+ int32_t x = 0;
+ for(; x < w - 15; x += 16) {
+ const uint8x16_t mask_16 = vld1q_u8(&mask_row_ptr[x]);
+ const uint8x8_t opa_lo = vget_low_u8(opa_16);
+ const uint8x8_t opa_hi = vget_high_u8(opa_16);
+ const uint8x8_t mask_lo = vget_low_u8(mask_16);
+ const uint8x8_t mask_hi = vget_high_u8(mask_16);
+ const uint16x8_t result_lo_wide = vmull_u8(opa_lo, mask_lo);
+ const uint16x8_t result_hi_wide = vmull_u8(opa_hi, mask_hi);
+ const uint8x8_t result_lo = vshrn_n_u16(result_lo_wide, 8);
+ const uint8x8_t result_hi = vshrn_n_u16(result_hi_wide, 8);
+ const uint8x16_t mix = vcombine_u8(result_lo, result_hi);
+ uint8x16x3_t src = vld3q_u8(&src_row_ptr[x * 3]);
+ uint8x16x3_t dst = vld3q_u8(&row_ptr[x * 3]);
+ vst3q_u8(&row_ptr[x * 3], rgb_mix_8_internal(src, dst, mix));
+ }
+ for(; x < w - 7; x += 8) {
+ const uint8x8_t mask = vld1_u8(&mask_row_ptr[x]);
+ const uint16x8_t mult = vmull_u8(opa_8, mask);
+ const uint8x8_t mix = vshrn_n_u16(mult, 8);
+ uint8x8x3_t src = vld3_u8(&src_row_ptr[x * 3]);
+ uint8x8x3_t dst = vld3_u8(&row_ptr[x * 3]);
+ vst3_u8(&row_ptr[x * 3], rgb_mix_4_internal(src, dst, mix));
+ }
+ for(; x < w; x ++) {
+ lv_color_24_24_mix_1(&src_row_ptr[x * 3], &row_ptr[x * 3], LV_OPA_MIX2(opa, mask_row_ptr[x]));
+ }
+ dest_buf_8 = drawbuf_next_row(dest_buf_8, dest_stride);
+ src_buf_8 = drawbuf_next_row(src_buf_8, src_stride);
+ mask_buf_8 = drawbuf_next_row(mask_buf_8, mask_stride);
+ }
+
+ }
+ else if(dest_px_size == 4) {
+ uint32_t * dest_buf_32 = dsc->dest_buf;
+ const uint32_t * src_buf_32 = dsc->src_buf;
+ const uint32x4_t opa_4 = vdupq_n_u32((uint32_t)dsc->opa);
+ const uint32x2_t opa_2 = vdup_n_u32((uint32_t)dsc->opa);
+
+ for(int32_t y = 0; y < h; y++) {
+ uint32_t * row_ptr = dest_buf_32;
+ const uint32_t * src_row_ptr = src_buf_32;
+ const uint8_t * mask_row_ptr = mask_buf_8;
+ int32_t x = 0;
+ for(; x < w - 3; x += 4) {
+ const uint32x4_t mask_4 = {mask_row_ptr[x], mask_row_ptr[x + 1], mask_row_ptr[x + 2], mask_row_ptr[x + 3]};
+ const uint32x4_t mix_4 = vshrq_n_u32(vmulq_u32(opa_4, mask_4), 8);
+ uint32x4_t src = vld1q_u32(&src_row_ptr[x]);
+ uint32x4_t dst = vld1q_u32(&row_ptr[x]);
+ vst1q_u32(&row_ptr[x], lv_color_24_24_mix_4_internal(src, dst, mix_4));
+ }
+ for(; x < w - 1; x += 2) {
+ const uint32x2_t mask_2 = {mask_row_ptr[x], mask_row_ptr[x + 1]};
+ const uint32x2_t mix_2 = vshr_n_u32(vmul_u32(opa_2, mask_2), 8);
+ uint32x2_t src = vld1_u32(&src_row_ptr[x]);
+ uint32x2_t dst = vld1_u32(&row_ptr[x]);
+ vst1_u32(&row_ptr[x], lv_color_24_24_mix_2_internal(src, dst, mix_2));
+ }
+ for(; x < w; x ++) {
+ lv_color_24_24_mix_1((uint8_t *)&src_row_ptr[x], (uint8_t *)&row_ptr[x], LV_OPA_MIX2(opa, mask_row_ptr[x]));
+ }
+ dest_buf_32 = drawbuf_next_row(dest_buf_32, dest_stride);
+ src_buf_32 = drawbuf_next_row(src_buf_32, src_stride);
+ mask_buf_8 = drawbuf_next_row(mask_buf_8, mask_stride);
+ }
+ }
+ return LV_RESULT_OK;
+}
+
+lv_result_t lv_draw_sw_blend_neon_argb888_to_rgb888(lv_draw_sw_blend_image_dsc_t * dsc, uint32_t dest_px_size)
+{
+ LV_ASSERT(dsc->opa >= LV_OPA_MAX);
+ LV_ASSERT(dsc->mask_buf == NULL);
+ LV_ASSERT(dest_px_size == 3 || dest_px_size == 4);
+ int32_t w = dsc->dest_w;
+ int32_t h = dsc->dest_h;
+ int32_t dest_stride = dsc->dest_stride;
+ int32_t src_stride = dsc->src_stride;
+
+ /* Fallback to sw implementation*/
+ if(dest_px_size == 3) {
+ return LV_RESULT_INVALID;
+ }
+ else if(dest_px_size == 4) {
+ uint32_t * dest_buf_u32 = dsc->dest_buf;
+ const uint32_t * src_buf_u32 = dsc->src_buf;
+ for(int32_t y = 0; y < h; y++) {
+ int32_t x = 0;
+ for(; x < w - 3; x += 4) {
+ vst1q_u32(&dest_buf_u32[x], argb_rgb_mix_4(&src_buf_u32[x], &dest_buf_u32[x]));
+ }
+ for(; x < w - 1; x += 2) {
+ vst1_u32(&dest_buf_u32[x], argb_rgb_mix_2(&src_buf_u32[x], &dest_buf_u32[x]));
+ }
+ for(; x < w; x++) {
+ lv_color_24_24_mix_1((uint8_t *)&src_buf_u32[x], (uint8_t *)&dest_buf_u32[x],
+ ((uint8_t *)src_buf_u32)[x * sizeof(uint32_t) + 3]);
+ }
+ src_buf_u32 = drawbuf_next_row(src_buf_u32, src_stride);
+ dest_buf_u32 = drawbuf_next_row(dest_buf_u32, dest_stride);
+ }
+
+ }
+ return LV_RESULT_OK;
+}
+
+lv_result_t lv_draw_sw_blend_neon_argb888_to_rgb888_with_opa(lv_draw_sw_blend_image_dsc_t * dsc, uint32_t dest_px_size)
+{
+ LV_ASSERT(dest_px_size == 3 || dest_px_size == 4);
+ LV_ASSERT(dsc->opa < LV_OPA_MAX);
+ LV_ASSERT(dsc->mask_buf == NULL);
+ const int32_t w = dsc->dest_w;
+ const int32_t h = dsc->dest_h;
+ const int32_t dest_stride = dsc->dest_stride;
+ const int32_t src_stride = dsc->src_stride;
+ const uint8_t opa = dsc->opa;
+
+ /* Fallback to sw implementation*/
+ if(dest_px_size == 3) {
+ return LV_RESULT_INVALID;
+ }
+ else if(dest_px_size == 4) {
+ uint32_t * dest_buf_u32 = dsc->dest_buf;
+ const uint32_t * src_buf_u32 = dsc->src_buf;
+ const uint32x4_t opa_4 = vdupq_n_u32((uint32_t)dsc->opa);
+ const uint32x2_t opa_2 = vdup_n_u32((uint32_t)dsc->opa);
+ for(int32_t y = 0; y < h; y++) {
+ int32_t x = 0;
+ for(; x < w - 3; x += 4) {
+ vst1q_u32(&dest_buf_u32[x], argb_rgb_mix_4_with_opa(&src_buf_u32[x], &dest_buf_u32[x], opa_4));
+ }
+ for(; x < w - 1; x += 2) {
+ vst1_u32(&dest_buf_u32[x], argb_rgb_mix_2_with_opa(&src_buf_u32[x], &dest_buf_u32[x], opa_2));
+ }
+ for(; x < w; x++) {
+ uint8_t alpha = ((uint8_t *)src_buf_u32)[x * sizeof(uint32_t) + 3];
+ lv_color_24_24_mix_1((uint8_t *)&src_buf_u32[x], (uint8_t *)&dest_buf_u32[x],
+ LV_OPA_MIX2(alpha, opa));
+ }
+ src_buf_u32 = drawbuf_next_row(src_buf_u32, src_stride);
+ dest_buf_u32 = drawbuf_next_row(dest_buf_u32, dest_stride);
+ }
+ }
+ return LV_RESULT_OK;
+}
+lv_result_t lv_draw_sw_blend_neon_argb888_to_rgb888_with_mask(lv_draw_sw_blend_image_dsc_t * dsc, uint32_t dest_px_size)
+{
+ LV_ASSERT(dest_px_size == 3 || dest_px_size == 4);
+ LV_ASSERT(dsc->opa >= LV_OPA_MAX);
+ LV_ASSERT_NULL(dsc->mask_buf);
+ const int32_t w = dsc->dest_w;
+ const int32_t h = dsc->dest_h;
+ const int32_t dest_stride = dsc->dest_stride;
+ const int32_t src_stride = dsc->src_stride;
+ const uint8_t * mask_buf_8 = dsc->mask_buf;
+ const int32_t mask_stride = dsc->mask_stride;
+
+ /* Fallback to sw implementation*/
+ if(dest_px_size == 3) {
+ return LV_RESULT_INVALID;
+ }
+ else if(dest_px_size == 4) {
+ uint32_t * dest_buf_u32 = dsc->dest_buf;
+ const uint32_t * src_buf_u32 = dsc->src_buf;
+ const uint8_t * mask_row_ptr = mask_buf_8;
+ for(int32_t y = 0; y < h; y++) {
+ int32_t x = 0;
+ for(; x < w - 3; x += 4) {
+ const uint32x4_t mask_4 = {mask_row_ptr[x], mask_row_ptr[x + 1], mask_row_ptr[x + 2], mask_row_ptr[x + 3]};
+ vst1q_u32(&dest_buf_u32[x], argb_rgb_mix_4_with_opa(&src_buf_u32[x], &dest_buf_u32[x], mask_4));
+ }
+ for(; x < w - 1; x += 2) {
+ const uint32x2_t mask_2 = {mask_row_ptr[x], mask_row_ptr[x + 1]};
+ vst1_u32(&dest_buf_u32[x], argb_rgb_mix_2_with_opa(&src_buf_u32[x], &dest_buf_u32[x], mask_2));
+ }
+ for(; x < w; x++) {
+ uint8_t alpha = ((uint8_t *)src_buf_u32)[x * sizeof(uint32_t) + 3];
+ lv_color_24_24_mix_1((uint8_t *)&src_buf_u32[x], (uint8_t *)&dest_buf_u32[x],
+ LV_OPA_MIX2(alpha, mask_row_ptr[x]));
+ }
+ src_buf_u32 = drawbuf_next_row(src_buf_u32, src_stride);
+ dest_buf_u32 = drawbuf_next_row(dest_buf_u32, dest_stride);
+ mask_buf_8 = drawbuf_next_row(mask_buf_8, mask_stride);
+ }
+ }
+ return LV_RESULT_OK;
+}
+lv_result_t lv_draw_sw_blend_neon_argb888_to_rgb888_with_opa_mask(lv_draw_sw_blend_image_dsc_t * dsc,
+ uint32_t dest_px_size)
+{
+ LV_ASSERT(dest_px_size == 3 || dest_px_size == 4);
+ LV_ASSERT(dsc->opa < LV_OPA_MAX);
+ LV_ASSERT_NULL(dsc->mask_buf);
+ const int32_t w = dsc->dest_w;
+ const int32_t h = dsc->dest_h;
+ const int32_t dest_stride = dsc->dest_stride;
+ const int32_t src_stride = dsc->src_stride;
+ const uint8_t * mask_buf_8 = dsc->mask_buf;
+ const int32_t mask_stride = dsc->mask_stride;
+
+ /* Fallback to sw implementation*/
+ if(dest_px_size == 3) {
+ return LV_RESULT_INVALID;
+ }
+ else if(dest_px_size == 4) {
+ uint32_t * dest_buf_u32 = dsc->dest_buf;
+ const uint32_t * src_buf_u32 = dsc->src_buf;
+ const uint8_t * mask_row_ptr = mask_buf_8;
+ const uint32x4_t opa_4 = vdupq_n_u32((uint32_t)dsc->opa);
+ const uint32x2_t opa_2 = vdup_n_u32((uint32_t)dsc->opa);
+ for(int32_t y = 0; y < h; y++) {
+ int32_t x = 0;
+ for(; x < w - 3; x += 4) {
+ const uint32x4_t mask_4 = {mask_row_ptr[x], mask_row_ptr[x + 1], mask_row_ptr[x + 2], mask_row_ptr[x + 3]};
+ vst1q_u32(&dest_buf_u32[x], argb_rgb_mix_4_with_opa_mask(&src_buf_u32[x], &dest_buf_u32[x], opa_4, mask_4));
+ }
+ for(; x < w - 1; x += 2) {
+ const uint32x2_t mask_2 = {mask_row_ptr[x], mask_row_ptr[x + 1]};
+ vst1_u32(&dest_buf_u32[x], argb_rgb_mix_2_with_opa_mask(&src_buf_u32[x], &dest_buf_u32[x], opa_2, mask_2));
+ }
+ for(; x < w; x++) {
+ uint8_t alpha = ((uint8_t *)src_buf_u32)[x * sizeof(uint32_t) + 3];
+ lv_color_24_24_mix_1((uint8_t *)&src_buf_u32[x], (uint8_t *)&dest_buf_u32[x],
+ LV_OPA_MIX2(alpha, mask_row_ptr[x]));
+ }
+ src_buf_u32 = drawbuf_next_row(src_buf_u32, src_stride);
+ dest_buf_u32 = drawbuf_next_row(dest_buf_u32, dest_stride);
+ mask_buf_8 = drawbuf_next_row(mask_buf_8, mask_stride);
+ }
+ }
+ return LV_RESULT_OK;
+}
+
+#if LV_DRAW_SW_SUPPORT_ARGB8888_PREMULTIPLIED
+lv_result_t lv_draw_sw_blend_neon_argb888_premultiplied_to_rgb888(lv_draw_sw_blend_image_dsc_t * dsc,
+ uint32_t dest_px_size)
+{
+ LV_ASSERT(dsc->opa >= LV_OPA_MAX);
+ LV_ASSERT(dsc->mask_buf == NULL);
+ LV_ASSERT(dest_px_size == 3 || dest_px_size == 4);
+ int32_t w = dsc->dest_w;
+ int32_t h = dsc->dest_h;
+ int32_t dest_stride = dsc->dest_stride;
+ int32_t src_stride = dsc->src_stride;
+
+ /* Fallback to sw implementation*/
+ if(dest_px_size == 3) {
+ return LV_RESULT_INVALID;
+ }
+ else if(dest_px_size == 4) {
+ uint32_t * dest_buf_u32 = dsc->dest_buf;
+ const uint32_t * src_buf_u32 = dsc->src_buf;
+ for(int32_t y = 0; y < h; y++) {
+ int32_t x = 0;
+ for(; x < w - 3; x += 4) {
+ uint32x4_t src_pixels = vld1q_u32(&src_buf_u32[x]);
+ uint32x4_t dst_pixels = vld1q_u32(&dest_buf_u32[x]);
+ uint32x4_t alpha = vshrq_n_u32(src_pixels, 24);
+ vst1q_u32(&dest_buf_u32[x], lv_color_24_24_mix_4_premul_internal(src_pixels, dst_pixels, alpha));
+ }
+ for(; x < w - 1; x += 2) {
+ uint32x2_t src_pixels = vld1_u32(&src_buf_u32[x]);
+ uint32x2_t dst_pixels = vld1_u32(&dest_buf_u32[x]);
+ uint32x2_t alpha = vshr_n_u32(src_pixels, 24);
+ vst1_u32(&dest_buf_u32[x], lv_color_24_24_mix_2_premul_internal(src_pixels, dst_pixels, alpha));
+ }
+ for(; x < w; x++) {
+ lv_color_24_24_mix_premult((uint8_t *)&src_buf_u32[x], (uint8_t *)&dest_buf_u32[x],
+ ((uint8_t *)src_buf_u32)[x * sizeof(uint32_t) + 3]);
+ }
+ src_buf_u32 = drawbuf_next_row(src_buf_u32, src_stride);
+ dest_buf_u32 = drawbuf_next_row(dest_buf_u32, dest_stride);
+ }
+
+ }
+ return LV_RESULT_OK;
+}
+#endif
+
+/**********************
+ * STATIC FUNCTIONS
+ **********************/
+
+
+static inline void * LV_ATTRIBUTE_FAST_MEM drawbuf_next_row(const void * buf, uint32_t stride)
+{
+ return (void *)((uint8_t *)buf + stride);
+}
+
+static inline uint8x16x3_t lv_color_to_rgb888_16(const lv_color_t * color)
+{
+ const uint8x16_t r_vec = vdupq_n_u8(color->red);
+ const uint8x16_t g_vec = vdupq_n_u8(color->green);
+ const uint8x16_t b_vec = vdupq_n_u8(color->blue);
+ uint8x16x3_t rgb_data;
+ rgb_data.val[0] = b_vec;
+ rgb_data.val[1] = g_vec;
+ rgb_data.val[2] = r_vec;
+ return rgb_data;
+}
+
+static inline uint8x8x3_t lv_color_to_rgb888_8(const lv_color_t * color)
+{
+ const uint8x8_t r_vec = vdup_n_u8(color->red);
+ const uint8x8_t g_vec = vdup_n_u8(color->green);
+ const uint8x8_t b_vec = vdup_n_u8(color->blue);
+ uint8x8x3_t rgb_data;
+ rgb_data.val[0] = b_vec;
+ rgb_data.val[1] = g_vec;
+ rgb_data.val[2] = r_vec;
+ return rgb_data;
+}
+
+static inline uint8x16x4_t lv_color_to_xrgb888_16(const lv_color_t * color)
+{
+ const uint8x16_t r_vec = vdupq_n_u8(color->red);
+ const uint8x16_t g_vec = vdupq_n_u8(color->green);
+ const uint8x16_t b_vec = vdupq_n_u8(color->blue);
+ const uint8x16_t a_vec = vdupq_n_u8(0xFF);
+ uint8x16x4_t rgb_data;
+ rgb_data.val[0] = b_vec;
+ rgb_data.val[1] = g_vec;
+ rgb_data.val[2] = r_vec;
+ rgb_data.val[3] = a_vec;
+ return rgb_data;
+}
+
+static inline uint8x8x4_t lv_color_to_xrgb888_8(const lv_color_t * color)
+{
+ const uint8x8_t r_vec = vdup_n_u8(color->red);
+ const uint8x8_t g_vec = vdup_n_u8(color->green);
+ const uint8x8_t b_vec = vdup_n_u8(color->blue);
+ const uint8x8_t a_vec = vdup_n_u8(0xFF);
+ uint8x8x4_t rgb_data;
+ rgb_data.val[0] = b_vec;
+ rgb_data.val[1] = g_vec;
+ rgb_data.val[2] = r_vec;
+ rgb_data.val[3] = a_vec;
+ return rgb_data;
+}
+
+static inline uint8x16_t lv_color_to_xrgb888_4(const lv_color_t * color)
+{
+ uint32_t pixel_value = (0xFF << 24) | (color->red << 16) | (color->green << 8) | color->blue;
+ return vreinterpretq_u8_u32(vdupq_n_u32(pixel_value));
+}
+
+static inline uint8x8_t lv_color_to_xrgb888_2(const lv_color_t * color)
+{
+ uint32_t pixel_value = (0xFF << 24) | (color->red << 16) | (color->green << 8) | color->blue;
+ return vreinterpret_u8_u32(vdup_n_u32(pixel_value));
+}
+
+static inline uint8x8x3_t lv_rgb565_to_rgb888_8(const uint16_t * color)
+{
+ const uint16x8_t pixels = vld1q_u16(color);
+
+ const uint16x8_t blue_mask = vdupq_n_u16(0x001F);
+ const uint16x8_t green_mask = vdupq_n_u16(0x07E0);
+ const uint16x8_t red_mask = vdupq_n_u16(0xF800);
+
+ const uint16x8_t rb_multiplier = vdupq_n_u16(2106);
+ const uint16x8_t g_multiplier = vdupq_n_u16(1037);
+
+ const uint16x8_t r5 = vshrq_n_u16(vandq_u16(pixels, red_mask), 11);
+ const uint16x8_t g6 = vshrq_n_u16(vandq_u16(pixels, green_mask), 5);
+ const uint16x8_t b5 = vandq_u16(pixels, blue_mask);
+
+ const uint8x8_t r8 = vmovn_u16(vshrq_n_u16(vmulq_u16(r5, rb_multiplier), 8));
+ const uint8x8_t g8 = vmovn_u16(vshrq_n_u16(vmulq_u16(g6, g_multiplier), 8));
+ const uint8x8_t b8 = vmovn_u16(vshrq_n_u16(vmulq_u16(b5, rb_multiplier), 8));
+
+ uint8x8x3_t rgb;
+ rgb.val[0] = b8;
+ rgb.val[1] = g8;
+ rgb.val[2] = r8;
+ return rgb;
+}
+static inline uint8x8x4_t lv_rgb565_to_xrgb8888_8(const uint16_t * color)
+{
+ const uint16x8_t pixels = vld1q_u16(color);
+
+ const uint16x8_t blue_mask = vdupq_n_u16(0x001F);
+ const uint16x8_t green_mask = vdupq_n_u16(0x07E0);
+ const uint16x8_t red_mask = vdupq_n_u16(0xF800);
+
+ const uint16x8_t rb_multiplier = vdupq_n_u16(2106);
+ const uint16x8_t g_multiplier = vdupq_n_u16(1037);
+
+ const uint16x8_t r5 = vshrq_n_u16(vandq_u16(pixels, red_mask), 11);
+ const uint16x8_t g6 = vshrq_n_u16(vandq_u16(pixels, green_mask), 5);
+ const uint16x8_t b5 = vandq_u16(pixels, blue_mask);
+
+ const uint8x8_t r8 = vmovn_u16(vshrq_n_u16(vmulq_u16(r5, rb_multiplier), 8));
+ const uint8x8_t g8 = vmovn_u16(vshrq_n_u16(vmulq_u16(g6, g_multiplier), 8));
+ const uint8x8_t b8 = vmovn_u16(vshrq_n_u16(vmulq_u16(b5, rb_multiplier), 8));
+
+ uint8x8x4_t rgb;
+ rgb.val[0] = b8;
+ rgb.val[1] = g8;
+ rgb.val[2] = r8;
+ return rgb;
+}
+
+static inline void rgb565_mix_1(const uint16_t * src, uint8_t * dest, uint8_t mix)
+{
+ if(mix == 0) {
+ return;
+ }
+ const uint32_t b = ((src[0] & 0x001F) * 2106) >> 8;
+ const uint32_t g = (((src[0] & 0x07E0) >> 5) * 1037) >> 8;
+ const uint32_t r = (((src[0] & 0xF800) >> 11) * 2106) >> 8;
+ if(mix >= LV_OPA_MAX) {
+ dest[0] = b;
+ dest[1] = g;
+ dest[2] = r;
+ return;
+ }
+ const lv_opa_t mix_inv = 255 - mix;
+ dest[0] = (uint32_t)(b * mix + dest[0] * mix_inv) >> 8;
+ dest[1] = (uint32_t)(g * mix + dest[1] * mix_inv) >> 8;
+ dest[2] = (uint32_t)(r * mix + dest[2] * mix_inv) >> 8;
+
+
+}
+
+static inline void lv_color_24_24_mix_1(const uint8_t * src, uint8_t * dest, uint8_t mix)
+{
+ if(mix == 0) {
+ return;
+ }
+
+ if(mix >= LV_OPA_MAX) {
+ dest[0] = src[0];
+ dest[1] = src[1];
+ dest[2] = src[2];
+ return;
+ }
+ const lv_opa_t mix_inv = 255 - mix;
+ dest[0] = (uint32_t)((uint32_t)src[0] * mix + dest[0] * mix_inv) >> 8;
+ dest[1] = (uint32_t)((uint32_t)src[1] * mix + dest[1] * mix_inv) >> 8;
+ dest[2] = (uint32_t)((uint32_t)src[2] * mix + dest[2] * mix_inv) >> 8;
+}
+
+static inline void lv_color_24_24_mix_premult(const uint8_t * src, uint8_t * dest, uint8_t mix)
+{
+ if(mix == 0) return;
+
+ if(mix >= LV_OPA_MAX) {
+ dest[0] = src[0];
+ dest[1] = src[1];
+ dest[2] = src[2];
+ }
+ else {
+ lv_opa_t mix_inv = 255 - mix;
+ dest[0] = (uint32_t)src[0] + ((uint32_t)(dest[0] * mix_inv) >> 8);
+ dest[1] = (uint32_t)src[1] + ((uint32_t)(dest[1] * mix_inv) >> 8);
+ dest[2] = (uint32_t)src[2] + ((uint32_t)(dest[2] * mix_inv) >> 8);
+ }
+}
+
+
+static inline uint32x4_t argb_rgb_mix_4(const uint32_t * src, const uint32_t * dst)
+{
+ uint32x4_t src_pixels = vld1q_u32(src);
+ uint32x4_t dst_pixels = vld1q_u32(dst);
+
+ uint32x4_t alpha = vshrq_n_u32(src_pixels, 24);
+ return lv_color_24_24_mix_4_internal(src_pixels, dst_pixels, alpha);
+}
+static inline uint32x2_t argb_rgb_mix_2(const uint32_t * src, const uint32_t * dst)
+{
+ uint32x2_t src_pixels = vld1_u32(src);
+ uint32x2_t dst_pixels = vld1_u32(dst);
+ uint32x2_t alpha = vshr_n_u32(src_pixels, 24);
+ return lv_color_24_24_mix_2_internal(src_pixels, dst_pixels, alpha);
+}
+
+static inline uint32x4_t argb_rgb_mix_4_with_opa(const uint32_t * src, const uint32_t * dst, uint32x4_t opa)
+{
+ uint32x4_t src_pixels = vld1q_u32(src);
+ uint32x4_t dst_pixels = vld1q_u32(dst);
+
+ uint32x4_t alpha = vshrq_n_u32(src_pixels, 24);
+ uint32x4_t mix = vshrq_n_u32(vmulq_u32(alpha, opa), 8);
+ return lv_color_24_24_mix_4_internal(src_pixels, dst_pixels, mix);
+}
+static inline uint32x2_t argb_rgb_mix_2_with_opa(const uint32_t * src, const uint32_t * dst, uint32x2_t opa)
+{
+ uint32x2_t src_pixels = vld1_u32(src);
+ uint32x2_t dst_pixels = vld1_u32(dst);
+ uint32x2_t alpha = vshr_n_u32(src_pixels, 24);
+ uint32x2_t mix = vshr_n_u32(vmul_u32(alpha, opa), 8);
+ return lv_color_24_24_mix_2_internal(src_pixels, dst_pixels, mix);
+}
+static inline uint32x4_t argb_rgb_mix_4_with_opa_mask(const uint32_t * src, const uint32_t * dst, uint32x4_t opa,
+ uint32x4_t mask)
+{
+ uint32x4_t src_pixels = vld1q_u32(src);
+ uint32x4_t dst_pixels = vld1q_u32(dst);
+
+ uint32x4_t alpha = vshrq_n_u32(src_pixels, 24);
+ uint32x4_t mix = vshrq_n_u32(vmulq_u32(alpha, vmulq_u32(opa, mask)), 16);
+ return lv_color_24_24_mix_4_internal(src_pixels, dst_pixels, mix);
+}
+
+static inline uint32x2_t argb_rgb_mix_2_with_opa_mask(const uint32_t * src, const uint32_t * dst, uint32x2_t opa,
+ uint32x2_t mask)
+{
+ uint32x2_t src_pixels = vld1_u32(src);
+ uint32x2_t dst_pixels = vld1_u32(dst);
+ uint32x2_t alpha = vshr_n_u32(src_pixels, 24);
+ uint32x2_t mix = vshr_n_u32(vmul_u32(alpha, vmul_u32(opa, mask)), 16);
+ return lv_color_24_24_mix_2_internal(src_pixels, dst_pixels, mix);
+}
+
+static inline uint8x8x3_t rgb565_rgb888_mix_8_internal(uint16x8_t src, uint8x8x3_t dst, uint8x8_t mix)
+{
+ uint8x8_t zero_mask = vceq_u8(mix, vdup_n_u8(0));
+ uint8x8_t full_mask = vcge_u8(mix, vdup_n_u8(LV_OPA_MAX));
+ uint8x8_t inv_mix = vsub_u8(vdup_n_u8(255), mix);
+
+ uint8x8_t src_r = vqmovn_u16(vshrq_n_u16(vmulq_u16(vshrq_n_u16(vandq_u16(src, vdupq_n_u16(0xF800)), 11),
+ vdupq_n_u16(2106)), 8));
+ uint8x8_t src_g = vqmovn_u16(vshrq_n_u16(vmulq_u16(vshrq_n_u16(vandq_u16(src, vdupq_n_u16(0x07E0)), 5),
+ vdupq_n_u16(1037)), 8));
+ uint8x8_t src_b = vqmovn_u16(vshrq_n_u16(vmulq_u16(vandq_u16(src, vdupq_n_u16(0x001F)), vdupq_n_u16(2106)), 8));
+
+ uint8x8_t dst_b = dst.val[0];
+ uint8x8_t dst_g = dst.val[1];
+ uint8x8_t dst_r = dst.val[2];
+
+ uint16x8_t blend_r_wide = vaddq_u16(vmull_u8(src_r, mix), vmull_u8(dst_r, inv_mix));
+ uint16x8_t blend_g_wide = vaddq_u16(vmull_u8(src_g, mix), vmull_u8(dst_g, inv_mix));
+ uint16x8_t blend_b_wide = vaddq_u16(vmull_u8(src_b, mix), vmull_u8(dst_b, inv_mix));
+
+ uint8x8_t blend_r = vshrn_n_u16(blend_r_wide, 8);
+ uint8x8_t blend_g = vshrn_n_u16(blend_g_wide, 8);
+ uint8x8_t blend_b = vshrn_n_u16(blend_b_wide, 8);
+
+ uint8x8_t result_r = vbsl_u8(zero_mask, dst_r, blend_r);
+ result_r = vbsl_u8(full_mask, src_r, result_r);
+
+ uint8x8_t result_g = vbsl_u8(zero_mask, dst_g, blend_g);
+ result_g = vbsl_u8(full_mask, src_g, result_g);
+
+ uint8x8_t result_b = vbsl_u8(zero_mask, dst_b, blend_b);
+ result_b = vbsl_u8(full_mask, src_b, result_b);
+
+ uint8x8x3_t result = {{ result_b, result_g, result_r }};
+ return result;
+}
+
+static inline uint8x16x3_t rgb_mix_8_internal(uint8x16x3_t src, uint8x16x3_t dst, uint8x16_t mix)
+{
+ uint8x16_t zero_mask = vceqq_u8(mix, vdupq_n_u8(0));
+ uint8x16_t full_mask = vcgeq_u8(mix, vdupq_n_u8(LV_OPA_MAX));
+ uint8x16_t inv_mix = vsubq_u8(vdupq_n_u8(255), mix);
+
+ uint8x8_t mix_lo = vget_low_u8(mix);
+ uint8x8_t mix_hi = vget_high_u8(mix);
+ uint8x8_t inv_mix_lo = vget_low_u8(inv_mix);
+ uint8x8_t inv_mix_hi = vget_high_u8(inv_mix);
+
+ uint8x8_t src_r_lo = vget_low_u8(src.val[0]);
+ uint8x8_t src_r_hi = vget_high_u8(src.val[0]);
+ uint8x8_t dst_r_lo = vget_low_u8(dst.val[0]);
+ uint8x8_t dst_r_hi = vget_high_u8(dst.val[0]);
+
+ uint16x8_t blend_r_wide_lo = vaddq_u16(vmull_u8(src_r_lo, mix_lo), vmull_u8(dst_r_lo, inv_mix_lo));
+ uint16x8_t blend_r_wide_hi = vaddq_u16(vmull_u8(src_r_hi, mix_hi), vmull_u8(dst_r_hi, inv_mix_hi));
+
+ uint8x8_t blend_r_lo = vshrn_n_u16(blend_r_wide_lo, 8);
+ uint8x8_t blend_r_hi = vshrn_n_u16(blend_r_wide_hi, 8);
+ uint8x16_t blend_r = vcombine_u8(blend_r_lo, blend_r_hi);
+
+ uint8x8_t src_g_lo = vget_low_u8(src.val[1]);
+ uint8x8_t src_g_hi = vget_high_u8(src.val[1]);
+ uint8x8_t dst_g_lo = vget_low_u8(dst.val[1]);
+ uint8x8_t dst_g_hi = vget_high_u8(dst.val[1]);
+
+ uint16x8_t blend_g_wide_lo = vaddq_u16(vmull_u8(src_g_lo, mix_lo), vmull_u8(dst_g_lo, inv_mix_lo));
+ uint16x8_t blend_g_wide_hi = vaddq_u16(vmull_u8(src_g_hi, mix_hi), vmull_u8(dst_g_hi, inv_mix_hi));
+
+ uint8x8_t blend_g_lo = vshrn_n_u16(blend_g_wide_lo, 8);
+ uint8x8_t blend_g_hi = vshrn_n_u16(blend_g_wide_hi, 8);
+ uint8x16_t blend_g = vcombine_u8(blend_g_lo, blend_g_hi);
+
+ uint8x8_t src_b_lo = vget_low_u8(src.val[2]);
+ uint8x8_t src_b_hi = vget_high_u8(src.val[2]);
+ uint8x8_t dst_b_lo = vget_low_u8(dst.val[2]);
+ uint8x8_t dst_b_hi = vget_high_u8(dst.val[2]);
+
+ uint16x8_t blend_b_wide_lo = vaddq_u16(vmull_u8(src_b_lo, mix_lo), vmull_u8(dst_b_lo, inv_mix_lo));
+ uint16x8_t blend_b_wide_hi = vaddq_u16(vmull_u8(src_b_hi, mix_hi), vmull_u8(dst_b_hi, inv_mix_hi));
+
+ uint8x8_t blend_b_lo = vshrn_n_u16(blend_b_wide_lo, 8);
+ uint8x8_t blend_b_hi = vshrn_n_u16(blend_b_wide_hi, 8);
+ uint8x16_t blend_b = vcombine_u8(blend_b_lo, blend_b_hi);
+
+ uint8x16_t result_r = vbslq_u8(zero_mask, dst.val[0], blend_r);
+ result_r = vbslq_u8(full_mask, src.val[0], result_r);
+
+ uint8x16_t result_g = vbslq_u8(zero_mask, dst.val[1], blend_g);
+ result_g = vbslq_u8(full_mask, src.val[1], result_g);
+
+ uint8x16_t result_b = vbslq_u8(zero_mask, dst.val[2], blend_b);
+ result_b = vbslq_u8(full_mask, src.val[2], result_b);
+
+ uint8x16x3_t result = {{result_r, result_g, result_b}};
+ return result;
+}
+
+static inline uint8x8x3_t rgb_mix_4_internal(uint8x8x3_t src, uint8x8x3_t dst, uint8x8_t mix)
+{
+ uint8x8_t zero_mask = vceq_u8(mix, vdup_n_u8(0));
+ uint8x8_t full_mask = vcge_u8(mix, vdup_n_u8(LV_OPA_MAX));
+ uint8x8_t inv_mix = vsub_u8(vdup_n_u8(255), mix);
+
+ uint16x8_t blend_r_wide = vaddq_u16(vmull_u8(src.val[0], mix), vmull_u8(dst.val[0], inv_mix));
+ uint8x8_t blend_r = vshrn_n_u16(blend_r_wide, 8);
+
+ uint16x8_t blend_g_wide = vaddq_u16(vmull_u8(src.val[1], mix), vmull_u8(dst.val[1], inv_mix));
+ uint8x8_t blend_g = vshrn_n_u16(blend_g_wide, 8);
+
+ uint16x8_t blend_b_wide = vaddq_u16(vmull_u8(src.val[2], mix), vmull_u8(dst.val[2], inv_mix));
+ uint8x8_t blend_b = vshrn_n_u16(blend_b_wide, 8);
+
+ uint8x8_t result_r = vbsl_u8(zero_mask, dst.val[0], blend_r);
+ result_r = vbsl_u8(full_mask, src.val[0], result_r);
+
+ uint8x8_t result_g = vbsl_u8(zero_mask, dst.val[1], blend_g);
+ result_g = vbsl_u8(full_mask, src.val[1], result_g);
+
+ uint8x8_t result_b = vbsl_u8(zero_mask, dst.val[2], blend_b);
+ result_b = vbsl_u8(full_mask, src.val[2], result_b);
+
+ uint8x8x3_t result = {{result_r, result_g, result_b}};
+ return result;
+}
+
+static inline uint32x4_t lv_color_24_24_mix_4_internal(uint32x4_t src, uint32x4_t dst, uint32x4_t mix)
+{
+ uint32x4_t zero_mask = vceqq_u32(mix, vdupq_n_u32(0));
+ uint32x4_t full_mask = vcgeq_u32(mix, vdupq_n_u32(LV_OPA_MAX));
+
+ uint32x4_t src_r = vandq_u32(vshrq_n_u32(src, 16), vdupq_n_u32(0xFF));
+ uint32x4_t src_g = vandq_u32(vshrq_n_u32(src, 8), vdupq_n_u32(0xFF));
+ uint32x4_t src_b = vandq_u32(src, vdupq_n_u32(0xFF));
+
+ uint32x4_t dst_r = vandq_u32(vshrq_n_u32(dst, 16), vdupq_n_u32(0xFF));
+ uint32x4_t dst_g = vandq_u32(vshrq_n_u32(dst, 8), vdupq_n_u32(0xFF));
+ uint32x4_t dst_b = vandq_u32(dst, vdupq_n_u32(0xFF));
+
+ uint32x4_t inv_mix = vsubq_u32(vdupq_n_u32(255), mix);
+ uint32x4_t blend_r = vshrq_n_u32(vaddq_u32(vmulq_u32(src_r, mix), vmulq_u32(dst_r, inv_mix)), 8);
+ uint32x4_t blend_g = vshrq_n_u32(vaddq_u32(vmulq_u32(src_g, mix), vmulq_u32(dst_g, inv_mix)), 8);
+ uint32x4_t blend_b = vshrq_n_u32(vaddq_u32(vmulq_u32(src_b, mix), vmulq_u32(dst_b, inv_mix)), 8);
+
+ uint32x4_t blended = vorrq_u32(vorrq_u32(vshlq_n_u32(blend_r, 16), vshlq_n_u32(blend_g, 8)), blend_b);
+ uint32x4_t result = vbslq_u32(zero_mask, dst, blended);
+ return vbslq_u32(full_mask, src, result);
+}
+
+static inline uint32x2_t lv_color_24_24_mix_2_internal(uint32x2_t src, uint32x2_t dst, uint32x2_t mix)
+{
+ uint32x2_t zero_mask = vceq_u32(mix, vdup_n_u32(0));
+ uint32x2_t full_mask = vcge_u32(mix, vdup_n_u32(LV_OPA_MAX));
+
+ uint32x2_t src_r = vand_u32(vshr_n_u32(src, 16), vdup_n_u32(0xFF));
+ uint32x2_t src_g = vand_u32(vshr_n_u32(src, 8), vdup_n_u32(0xFF));
+ uint32x2_t src_b = vand_u32(src, vdup_n_u32(0xFF));
+
+ uint32x2_t dst_r = vand_u32(vshr_n_u32(dst, 16), vdup_n_u32(0xFF));
+ uint32x2_t dst_g = vand_u32(vshr_n_u32(dst, 8), vdup_n_u32(0xFF));
+ uint32x2_t dst_b = vand_u32(dst, vdup_n_u32(0xFF));
+
+ uint32x2_t inv_mix = vsub_u32(vdup_n_u32(255), mix);
+ uint32x2_t blend_r = vshr_n_u32(vadd_u32(vmul_u32(src_r, mix), vmul_u32(dst_r, inv_mix)), 8);
+ uint32x2_t blend_g = vshr_n_u32(vadd_u32(vmul_u32(src_g, mix), vmul_u32(dst_g, inv_mix)), 8);
+ uint32x2_t blend_b = vshr_n_u32(vadd_u32(vmul_u32(src_b, mix), vmul_u32(dst_b, inv_mix)), 8);
+
+ uint32x2_t blended = vorr_u32(vorr_u32(vshl_n_u32(blend_r, 16), vshl_n_u32(blend_g, 8)), blend_b);
+ uint32x2_t result = vbsl_u32(zero_mask, dst, blended);
+ return vbsl_u32(full_mask, src, result);
+}
+static inline uint32x4_t lv_color_24_24_mix_4_premul_internal(uint32x4_t src, uint32x4_t dst, uint32x4_t mix)
+{
+ uint32x4_t zero_mask = vceqq_u32(mix, vdupq_n_u32(0));
+ uint32x4_t full_mask = vcgeq_u32(mix, vdupq_n_u32(LV_OPA_MAX));
+
+ uint32x4_t src_r = vandq_u32(vshrq_n_u32(src, 16), vdupq_n_u32(0xFF));
+ uint32x4_t src_g = vandq_u32(vshrq_n_u32(src, 8), vdupq_n_u32(0xFF));
+ uint32x4_t src_b = vandq_u32(src, vdupq_n_u32(0xFF));
+
+ uint32x4_t dst_r = vandq_u32(vshrq_n_u32(dst, 16), vdupq_n_u32(0xFF));
+ uint32x4_t dst_g = vandq_u32(vshrq_n_u32(dst, 8), vdupq_n_u32(0xFF));
+ uint32x4_t dst_b = vandq_u32(dst, vdupq_n_u32(0xFF));
+
+ uint32x4_t inv_mix = vsubq_u32(vdupq_n_u32(255), mix);
+
+ uint32x4_t blend_r = vaddq_u32(src_r, vshrq_n_u32(vmulq_u32(inv_mix, dst_r), 8));
+ uint32x4_t blend_g = vaddq_u32(src_g, vshrq_n_u32(vmulq_u32(inv_mix, dst_g), 8));
+ uint32x4_t blend_b = vaddq_u32(src_b, vshrq_n_u32(vmulq_u32(inv_mix, dst_b), 8));
+
+ uint32x4_t blended = vorrq_u32(vorrq_u32(vshlq_n_u32(blend_r, 16), vshlq_n_u32(blend_g, 8)), blend_b);
+ uint32x4_t result = vbslq_u32(zero_mask, dst, blended);
+ return vbslq_u32(full_mask, src, result);
+}
+
+static inline uint32x2_t lv_color_24_24_mix_2_premul_internal(uint32x2_t src, uint32x2_t dst, uint32x2_t mix)
+{
+ uint32x2_t zero_mask = vceq_u32(mix, vdup_n_u32(0));
+ uint32x2_t full_mask = vcge_u32(mix, vdup_n_u32(LV_OPA_MAX));
+
+ uint32x2_t src_r = vand_u32(vshr_n_u32(src, 16), vdup_n_u32(0xFF));
+ uint32x2_t src_g = vand_u32(vshr_n_u32(src, 8), vdup_n_u32(0xFF));
+ uint32x2_t src_b = vand_u32(src, vdup_n_u32(0xFF));
+
+ uint32x2_t dst_r = vand_u32(vshr_n_u32(dst, 16), vdup_n_u32(0xFF));
+ uint32x2_t dst_g = vand_u32(vshr_n_u32(dst, 8), vdup_n_u32(0xFF));
+ uint32x2_t dst_b = vand_u32(dst, vdup_n_u32(0xFF));
+
+ uint32x2_t inv_mix = vsub_u32(vdup_n_u32(255), mix);
+
+ uint32x2_t blend_r = vadd_u32(src_r, vshr_n_u32(vmul_u32(inv_mix, dst_r), 8));
+ uint32x2_t blend_g = vadd_u32(src_g, vshr_n_u32(vmul_u32(inv_mix, dst_g), 8));
+ uint32x2_t blend_b = vadd_u32(src_b, vshr_n_u32(vmul_u32(inv_mix, dst_b), 8));
+
+ uint32x2_t blended = vorr_u32(vorr_u32(vshl_n_u32(blend_r, 16), vshl_n_u32(blend_g, 8)), blend_b);
+ uint32x2_t result = vbsl_u32(zero_mask, dst, blended);
+ return vbsl_u32(full_mask, src, result);
+}
+
+static inline uint32x4_t rgb565_xrgb_mix_4_internal(uint32x4_t src, uint32x4_t dst, uint32x4_t mix)
+{
+ uint32x4_t zero_mask = vceqq_u32(mix, vdupq_n_u32(0));
+ uint32x4_t full_mask = vcgeq_u32(mix, vdupq_n_u32(LV_OPA_MAX));
+
+ uint32x4_t src_r = vshrq_n_u32(vmulq_u32(vshrq_n_u32(vandq_u32(src, vdupq_n_u32(0xF800)), 11), vdupq_n_u32(2106)), 8);
+ uint32x4_t src_g = vshrq_n_u32(vmulq_u32(vshrq_n_u32(vandq_u32(src, vdupq_n_u32(0x07E0)), 5), vdupq_n_u32(1037)), 8);
+ uint32x4_t src_b = vshrq_n_u32(vmulq_u32(vandq_u32(src, vdupq_n_u32(0x001F)), vdupq_n_u32(2106)), 8);
+
+ uint32x4_t dst_r = vandq_u32(vshrq_n_u32(dst, 16), vdupq_n_u32(0xFF));
+ uint32x4_t dst_g = vandq_u32(vshrq_n_u32(dst, 8), vdupq_n_u32(0xFF));
+ uint32x4_t dst_b = vandq_u32(dst, vdupq_n_u32(0xFF));
+
+ uint32x4_t inv_mix = vsubq_u32(vdupq_n_u32(255), mix);
+ uint32x4_t blend_r = vshrq_n_u32(vaddq_u32(vmulq_u32(src_r, mix), vmulq_u32(dst_r, inv_mix)), 8);
+ uint32x4_t blend_g = vshrq_n_u32(vaddq_u32(vmulq_u32(src_g, mix), vmulq_u32(dst_g, inv_mix)), 8);
+ uint32x4_t blend_b = vshrq_n_u32(vaddq_u32(vmulq_u32(src_b, mix), vmulq_u32(dst_b, inv_mix)), 8);
+
+ uint32x4_t blended = vorrq_u32(vorrq_u32(vshlq_n_u32(blend_r, 16), vshlq_n_u32(blend_g, 8)), blend_b);
+ uint32x4_t result = vbslq_u32(zero_mask, dst, blended);
+ return vbslq_u32(full_mask, src, result);
+}
+
+static inline uint32x2_t rgb565_xrgb_mix_2_internal(uint32x2_t src, uint32x2_t dst, uint32x2_t mix)
+{
+ uint32x2_t zero_mask = vceq_u32(mix, vdup_n_u32(0));
+ uint32x2_t full_mask = vcge_u32(mix, vdup_n_u32(LV_OPA_MAX));
+
+ uint32x2_t src_r = vshr_n_u32(vmul_u32(vshr_n_u32(vand_u32(src, vdup_n_u32(0xF800)), 11), vdup_n_u32(2106)), 8);
+ uint32x2_t src_g = vshr_n_u32(vmul_u32(vshr_n_u32(vand_u32(src, vdup_n_u32(0x07E0)), 5), vdup_n_u32(1037)), 8);
+ uint32x2_t src_b = vshr_n_u32(vmul_u32(vand_u32(src, vdup_n_u32(0x001F)), vdup_n_u32(2106)), 8);
+
+ uint32x2_t dst_r = vand_u32(vshr_n_u32(dst, 16), vdup_n_u32(0xFF));
+ uint32x2_t dst_g = vand_u32(vshr_n_u32(dst, 8), vdup_n_u32(0xFF));
+ uint32x2_t dst_b = vand_u32(dst, vdup_n_u32(0xFF));
+
+ uint32x2_t inv_mix = vsub_u32(vdup_n_u32(255), mix);
+ uint32x2_t blend_r = vshr_n_u32(vadd_u32(vmul_u32(src_r, mix), vmul_u32(dst_r, inv_mix)), 8);
+ uint32x2_t blend_g = vshr_n_u32(vadd_u32(vmul_u32(src_g, mix), vmul_u32(dst_g, inv_mix)), 8);
+ uint32x2_t blend_b = vshr_n_u32(vadd_u32(vmul_u32(src_b, mix), vmul_u32(dst_b, inv_mix)), 8);
+
+ uint32x2_t blended = vorr_u32(vorr_u32(vshl_n_u32(blend_r, 16), vshl_n_u32(blend_g, 8)), blend_b);
+ uint32x2_t result = vbsl_u32(zero_mask, dst, blended);
+ return vbsl_u32(full_mask, src, result);
+}
+#endif /* LV_USE_DRAW_SW_ASM == LV_DRAW_SW_ASM_NEON*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/neon/lv_draw_sw_blend_neon_to_rgb888.h b/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/neon/lv_draw_sw_blend_neon_to_rgb888.h
new file mode 100644
index 000000000..600246548
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/draw/sw/blend/neon/lv_draw_sw_blend_neon_to_rgb888.h
@@ -0,0 +1,158 @@
+/**
+ * @file lv_draw_sw_blend_neon_to_rgb888.h
+ *
+ */
+
+#ifndef LV_DRAW_SW_BLEND_NEON_TO_RGB888_H
+#define LV_DRAW_SW_BLEND_NEON_TO_RGB888_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*********************
+ * INCLUDES
+ *********************/
+
+#include "../../../../lv_conf_internal.h"
+#if LV_USE_DRAW_SW_ASM == LV_DRAW_SW_ASM_NEON
+
+#include "../../../../misc/lv_types.h"
+
+/*********************
+ * DEFINES
+ *********************/
+
+#ifndef LV_DRAW_SW_COLOR_BLEND_TO_RGB888
+#define LV_DRAW_SW_COLOR_BLEND_TO_RGB888(dsc, dest_px_size) lv_draw_sw_blend_neon_color_to_rgb888(dsc, dest_px_size)
+#endif
+
+#ifndef LV_DRAW_SW_COLOR_BLEND_TO_RGB888_WITH_OPA
+#define LV_DRAW_SW_COLOR_BLEND_TO_RGB888_WITH_OPA(dsc, dest_px_size) lv_draw_sw_blend_neon_color_to_rgb888_with_opa(dsc, dest_px_size)
+#endif
+
+#ifndef LV_DRAW_SW_COLOR_BLEND_TO_RGB888_WITH_MASK
+#define LV_DRAW_SW_COLOR_BLEND_TO_RGB888_WITH_MASK(dsc, dest_px_size) lv_draw_sw_blend_neon_color_to_rgb888_with_mask(dsc, dest_px_size)
+#endif
+
+#ifndef LV_DRAW_SW_COLOR_BLEND_TO_RGB888_MIX_MASK_OPA
+#define LV_DRAW_SW_COLOR_BLEND_TO_RGB888_MIX_MASK_OPA(dsc, dest_px_size) lv_draw_sw_blend_neon_color_to_rgb888_with_opa_mask(dsc, dest_px_size)
+#endif
+
+#ifdef __aarch64__ /* This function uses a special intrinsic only available for arm64 */
+#ifndef LV_DRAW_SW_L8_BLEND_NORMAL_TO_RGB888
+#define LV_DRAW_SW_L8_BLEND_NORMAL_TO_RGB888(dsc, dest_px_size) lv_draw_sw_blend_neon_l8_to_rgb888(dsc, dest_px_size)
+#endif
+#endif
+
+#ifndef LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_RGB888
+#define LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_RGB888(dsc, dest_px_size) lv_draw_sw_blend_neon_rgb565_to_rgb888(dsc, dest_px_size)
+#endif
+
+#ifndef LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_RGB888_WITH_OPA
+#define LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_RGB888_WITH_OPA(dsc, dest_px_size) lv_draw_sw_blend_neon_rgb565_to_rgb888_with_opa(dsc, dest_px_size)
+#endif
+
+#ifndef LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_RGB888_WITH_MASK
+#define LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_RGB888_WITH_MASK(dsc, dest_px_size) lv_draw_sw_blend_neon_rgb565_to_rgb888_with_mask(dsc, dest_px_size)
+#endif
+
+#ifndef LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_RGB888_MIX_MASK_OPA
+#define LV_DRAW_SW_RGB565_BLEND_NORMAL_TO_RGB888_MIX_MASK_OPA(dsc, dest_px_size) lv_draw_sw_blend_neon_rgb565_to_rgb888_with_opa_mask(dsc, dest_px_size)
+#endif
+
+#ifndef LV_DRAW_SW_RGB888_BLEND_NORMAL_TO_RGB888
+#define LV_DRAW_SW_RGB888_BLEND_NORMAL_TO_RGB888(dsc, dest_px_size, src_px_size) lv_draw_sw_blend_neon_rgb888_to_rgb888(dsc, dest_px_size, src_px_size)
+#endif
+
+#ifndef LV_DRAW_SW_RGB888_BLEND_NORMAL_TO_RGB888_WITH_OPA
+#define LV_DRAW_SW_RGB888_BLEND_NORMAL_TO_RGB888_WITH_OPA(dsc, dest_px_size, src_px_size) lv_draw_sw_blend_neon_rgb888_to_rgb888_with_opa(dsc, dest_px_size, src_px_size)
+#endif
+
+#ifndef LV_DRAW_SW_RGB888_BLEND_NORMAL_TO_RGB888_WITH_MASK
+#define LV_DRAW_SW_RGB888_BLEND_NORMAL_TO_RGB888_WITH_MASK(dsc, dest_px_size, src_px_size) lv_draw_sw_blend_neon_rgb888_to_rgb888_with_mask(dsc, dest_px_size, src_px_size)
+#endif
+
+#ifndef LV_DRAW_SW_RGB888_BLEND_NORMAL_TO_RGB888_MIX_MASK_OPA
+#define LV_DRAW_SW_RGB888_BLEND_NORMAL_TO_RGB888_MIX_MASK_OPA(dsc, dest_px_size, src_px_size) lv_draw_sw_blend_neon_rgb888_to_rgb888_with_opa_mask(dsc, dest_px_size, src_px_size)
+#endif
+
+#if 0 /* These seem to produce worse results than sw rendering, also RGB888 is not implemented, only XRGB8888. So they are disabled for now*/
+#ifndef LV_DRAW_SW_ARGB8888_BLEND_NORMAL_TO_RGB888
+#define LV_DRAW_SW_ARGB8888_BLEND_NORMAL_TO_RGB888(dsc, dest_px_size) lv_draw_sw_blend_neon_argb888_to_rgb888(dsc, dest_px_size)
+#endif
+
+#ifndef LV_DRAW_SW_ARGB8888_BLEND_NORMAL_TO_RGB888_WITH_OPA
+#define LV_DRAW_SW_ARGB8888_BLEND_NORMAL_TO_RGB888_WITH_OPA(dsc, dest_px_size) lv_draw_sw_blend_neon_argb888_to_rgb888_with_opa(dsc, dest_px_size)
+
+#endif
+#ifndef LV_DRAW_SW_ARGB8888_BLEND_NORMAL_TO_RGB888_WITH_MASK
+#define LV_DRAW_SW_ARGB8888_BLEND_NORMAL_TO_RGB888_WITH_MASK(dsc, dest_px_size) lv_draw_sw_blend_neon_argb888_to_rgb888_with_mask(dsc, dest_px_size)
+#endif
+
+#ifndef LV_DRAW_SW_ARGB8888_BLEND_NORMAL_TO_RGB888_MIX_MASK_OPA
+#define LV_DRAW_SW_ARGB8888_BLEND_NORMAL_TO_RGB888_MIX_MASK_OPA(dsc, dest_px_size) lv_draw_sw_blend_neon_argb888_to_rgb888_with_opa_mask(dsc, dest_px_size)
+#endif
+#endif
+
+#ifndef LV_DRAW_SW_ARGB8888_PREMULTIPLIED_BLEND_NORMAL_TO_RGB888
+#define LV_DRAW_SW_ARGB8888_PREMULTIPLIED_BLEND_NORMAL_TO_RGB888(dsc, dest_px_size) lv_draw_sw_blend_neon_argb888_premultiplied_to_rgb888(dsc, dest_px_size)
+#endif
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+/**********************
+ * GLOBAL PROTOTYPES
+ **********************/
+
+lv_result_t lv_draw_sw_blend_neon_color_to_rgb888(lv_draw_sw_blend_fill_dsc_t * dsc, uint32_t dest_px_size);
+lv_result_t lv_draw_sw_blend_neon_color_to_rgb888_with_opa(lv_draw_sw_blend_fill_dsc_t * dsc, uint32_t dest_px_size);
+lv_result_t lv_draw_sw_blend_neon_color_to_rgb888_with_mask(lv_draw_sw_blend_fill_dsc_t * dsc, uint32_t dest_px_size);
+lv_result_t lv_draw_sw_blend_neon_color_to_rgb888_with_opa_mask(lv_draw_sw_blend_fill_dsc_t * dsc,
+ uint32_t dest_px_size);
+
+#ifdef __aarch64__
+lv_result_t lv_draw_sw_blend_neon_l8_to_rgb888(lv_draw_sw_blend_image_dsc_t * dsc, uint32_t dest_px_size);
+#endif /*__aarch64__*/
+
+lv_result_t lv_draw_sw_blend_neon_al88_to_rgb888(lv_draw_sw_blend_image_dsc_t * dsc, uint32_t dest_px_size);
+lv_result_t lv_draw_sw_blend_neon_al88_to_rgb888_with_opa(lv_draw_sw_blend_image_dsc_t * dsc);
+lv_result_t lv_draw_sw_blend_neon_al88_to_rgb888_with_mask(lv_draw_sw_blend_image_dsc_t * dsc);
+lv_result_t lv_draw_sw_blend_neon_al88_to_rgb888_with_opa_mask(lv_draw_sw_blend_image_dsc_t * dsc);
+
+lv_result_t lv_draw_sw_blend_neon_rgb565_to_rgb888(lv_draw_sw_blend_image_dsc_t * dsc, uint32_t dest_px_size);
+lv_result_t lv_draw_sw_blend_neon_rgb565_to_rgb888_with_opa(lv_draw_sw_blend_image_dsc_t * dsc, uint32_t dest_px_size);
+lv_result_t lv_draw_sw_blend_neon_rgb565_to_rgb888_with_mask(lv_draw_sw_blend_image_dsc_t * dsc, uint32_t dest_px_size);
+lv_result_t lv_draw_sw_blend_neon_rgb565_to_rgb888_with_opa_mask(lv_draw_sw_blend_image_dsc_t * dsc,
+ uint32_t dest_px_size);
+
+lv_result_t lv_draw_sw_blend_neon_rgb888_to_rgb888(lv_draw_sw_blend_image_dsc_t * dsc, uint32_t dest_px_size,
+ uint32_t src_px_size);
+lv_result_t lv_draw_sw_blend_neon_rgb888_to_rgb888_with_opa(lv_draw_sw_blend_image_dsc_t * dsc, uint32_t dest_px_size,
+ uint32_t src_px_size);
+lv_result_t lv_draw_sw_blend_neon_rgb888_to_rgb888_with_mask(lv_draw_sw_blend_image_dsc_t * dsc, uint32_t dest_px_size,
+ uint32_t src_px_size);
+lv_result_t lv_draw_sw_blend_neon_rgb888_to_rgb888_with_opa_mask(lv_draw_sw_blend_image_dsc_t * dsc,
+ uint32_t dest_px_size, uint32_t src_px_size);
+lv_result_t lv_draw_sw_blend_neon_argb888_to_rgb888(lv_draw_sw_blend_image_dsc_t * dsc, uint32_t dest_px_size);
+lv_result_t lv_draw_sw_blend_neon_argb888_premultiplied_to_rgb888(lv_draw_sw_blend_image_dsc_t * dsc,
+ uint32_t dest_px_size);
+lv_result_t lv_draw_sw_blend_neon_argb888_to_rgb888_with_opa(lv_draw_sw_blend_image_dsc_t * dsc, uint32_t dest_px_size);
+lv_result_t lv_draw_sw_blend_neon_argb888_to_rgb888_with_mask(lv_draw_sw_blend_image_dsc_t * dsc,
+ uint32_t dest_px_size);
+lv_result_t lv_draw_sw_blend_neon_argb888_to_rgb888_with_opa_mask(lv_draw_sw_blend_image_dsc_t * dsc,
+ uint32_t dest_px_size);
+
+/**********************
+ * MACROS
+ **********************/
+
+#endif /* LV_USE_DRAW_SW_ASM == LV_DRAW_SW_ASM_NEON */
+
+#ifdef __cplusplus
+} /*extern "C"*/
+#endif
+
+#endif /*LV_DRAW_SW_BLEND_NEON_TO_RGB888_H*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/sw/lv_draw_sw.c b/lib/libesp32_lvgl/lvgl/src/draw/sw/lv_draw_sw.c
index 8b1ef4cc5..c62b6c670 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/sw/lv_draw_sw.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/sw/lv_draw_sw.c
@@ -329,7 +329,7 @@ static int32_t dispatch(lv_draw_unit_t * draw_unit, lv_layer_t * layer)
draw_sw_unit->task_act = t;
execute_drawing(t);
- draw_sw_unit->task_act->state = LV_DRAW_TASK_STATE_READY;
+ draw_sw_unit->task_act->state = LV_DRAW_TASK_STATE_FINISHED;
draw_sw_unit->task_act = NULL;
/*The draw unit is free now. Request a new dispatching as it can get a new task*/
@@ -366,7 +366,7 @@ static void render_thread_cb(void * ptr)
#if LV_USE_PARALLEL_DRAW_DEBUG
parallel_debug_draw(thread_dsc->task_act, thread_dsc->idx);
#endif
- thread_dsc->task_act->state = LV_DRAW_TASK_STATE_READY;
+ thread_dsc->task_act->state = LV_DRAW_TASK_STATE_FINISHED;
thread_dsc->task_act = NULL;
/*The draw unit is free now. Request a new dispatching as it can get a new task*/
@@ -437,6 +437,13 @@ static void parallel_debug_draw(lv_draw_task_t * t, uint32_t idx)
/*Layers manage it for themselves*/
if(t->type != LV_DRAW_TASK_TYPE_LAYER) {
lv_area_t draw_area;
+ lv_text_attributes_t attributes = {0};
+
+ attributes.text_flags = LV_TEXT_FLAG_NONE;
+ attributes.line_space = 0;
+ attributes.letter_space = 0;
+ attributes.max_width = 100;
+
if(!lv_area_intersect(&draw_area, &t->area, &t->clip_area)) return;
lv_draw_fill_dsc_t fill_dsc;
@@ -453,7 +460,7 @@ static void parallel_debug_draw(lv_draw_task_t * t, uint32_t idx)
lv_draw_sw_border(t, &border_dsc, &draw_area);
lv_point_t txt_size;
- lv_text_get_size(&txt_size, "W", LV_FONT_DEFAULT, 0, 0, 100, LV_TEXT_FLAG_NONE);
+ lv_text_get_size_attributes(&txt_size, "W", LV_FONT_DEFAULT, &attributes);
lv_area_t txt_area;
txt_area.x1 = draw_area.x1;
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/sw/lv_draw_sw.h b/lib/libesp32_lvgl/lvgl/src/draw/sw/lv_draw_sw.h
index d5e0df24c..aae25c6d1 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/sw/lv_draw_sw.h
+++ b/lib/libesp32_lvgl/lvgl/src/draw/sw/lv_draw_sw.h
@@ -19,7 +19,6 @@ extern "C" {
#include "../../misc/lv_area.h"
#include "../../misc/lv_color.h"
#include "../../display/lv_display.h"
-#include "../../osal/lv_os.h"
#include "../lv_draw_vector.h"
#include "../lv_draw_triangle.h"
@@ -152,7 +151,7 @@ void lv_draw_sw_transform(const lv_area_t * dest_area, const void * src_buf,
* @param t pointer to a draw task
* @param dsc the draw descriptor
*/
-void lv_draw_sw_vector(lv_draw_task_t * t, lv_draw_vector_task_dsc_t * dsc);
+void lv_draw_sw_vector(lv_draw_task_t * t, lv_draw_vector_dsc_t * dsc);
#endif
/**
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/sw/lv_draw_sw_grad.c b/lib/libesp32_lvgl/lvgl/src/draw/sw/lv_draw_sw_grad.c
index 4550a6c95..090f55d5c 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/sw/lv_draw_sw_grad.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/sw/lv_draw_sw_grad.c
@@ -10,7 +10,7 @@
#if LV_USE_DRAW_SW
#include "../../misc/lv_types.h"
-#include "../../osal/lv_os.h"
+#include "../../osal/lv_os_private.h"
#include "../../misc/lv_math.h"
/*********************
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/sw/lv_draw_sw_grad.h b/lib/libesp32_lvgl/lvgl/src/draw/sw/lv_draw_sw_grad.h
index 42b36c211..3033119a0 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/sw/lv_draw_sw_grad.h
+++ b/lib/libesp32_lvgl/lvgl/src/draw/sw/lv_draw_sw_grad.h
@@ -144,4 +144,4 @@ void /* LV_ATTRIBUTE_FAST_MEM */ lv_draw_sw_grad_conical_get_line(lv_grad_dsc_t
} /*extern "C"*/
#endif
-#endif /*LV_DRAW_GRADIENT_H*/
+#endif /*LV_DRAW_SW_GRAD_H*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/sw/lv_draw_sw_img.c b/lib/libesp32_lvgl/lvgl/src/draw/sw/lv_draw_sw_img.c
index 5d5574cff..3cf1f1967 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/sw/lv_draw_sw_img.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/sw/lv_draw_sw_img.c
@@ -86,6 +86,9 @@ static void transform_and_recolor(lv_draw_task_t * t, const lv_draw_image_dsc_t
static void recolor(lv_area_t relative_area, uint8_t * src_buf, uint8_t * dest_buf, int32_t src_stride,
lv_color_format_t cf, const lv_draw_image_dsc_t * draw_dsc);
+static void colorkey_and_recolor(lv_area_t relative_area, uint8_t * src_buf, uint8_t * dest_buf, int32_t src_stride,
+ lv_color_format_t cf, const lv_draw_image_dsc_t * draw_dsc, lv_draw_sw_blend_dsc_t * blend_dsc);
+
static bool apply_mask(const lv_draw_image_dsc_t * draw_dsc);
/**********************
@@ -175,7 +178,7 @@ void lv_draw_sw_layer(lv_draw_task_t * t, const lv_draw_image_dsc_t * draw_dsc,
lv_draw_sw_border(t, &border_dsc, &area_rot);
lv_point_t txt_size;
- lv_text_get_size(&txt_size, "W", LV_FONT_DEFAULT, 0, 0, 100, LV_TEXT_FLAG_NONE);
+ lv_text_get_size_attributes(&txt_size, "W", LV_FONT_DEFAULT, 0, 0, 100, LV_TEXT_FLAG_NONE);
lv_area_t txt_area;
txt_area.x1 = draw_area.x1;
@@ -248,7 +251,8 @@ static void img_draw_core(lv_draw_task_t * t, const lv_draw_image_dsc_t * draw_d
blend_dsc.blend_area = img_coords;
lv_draw_sw_blend(t, &blend_dsc);
}
- else if(!transformed && !radius && cf == LV_COLOR_FORMAT_RGB565A8 && draw_dsc->recolor_opa <= LV_OPA_MIN) {
+ else if(!transformed && !radius && cf == LV_COLOR_FORMAT_RGB565A8 && draw_dsc->recolor_opa <= LV_OPA_MIN &&
+ draw_dsc->colorkey == NULL) {
int32_t src_h = lv_area_get_height(img_coords);
int32_t src_w = lv_area_get_width(img_coords);
blend_dsc.src_area = img_coords;
@@ -267,7 +271,8 @@ static void img_draw_core(lv_draw_task_t * t, const lv_draw_image_dsc_t * draw_d
blend_dsc.src_color_format = LV_COLOR_FORMAT_RGB565;
lv_draw_sw_blend(t, &blend_dsc);
}
- else if(!transformed && !radius && (cf == LV_COLOR_FORMAT_L8 || cf == LV_COLOR_FORMAT_AL88)) {
+ else if(!transformed && !radius && (cf == LV_COLOR_FORMAT_L8 || cf == LV_COLOR_FORMAT_AL88) &&
+ draw_dsc->colorkey == NULL) {
blend_dsc.src_area = img_coords;
blend_dsc.src_buf = src_buf;
blend_dsc.blend_area = img_coords;
@@ -275,19 +280,19 @@ static void img_draw_core(lv_draw_task_t * t, const lv_draw_image_dsc_t * draw_d
lv_draw_sw_blend(t, &blend_dsc);
}
/*The simplest case just copy the pixels into the draw_buf. Blending will convert the colors if needed*/
- else if(!transformed && !radius && draw_dsc->recolor_opa <= LV_OPA_MIN) {
+ else if(!transformed && !radius && draw_dsc->recolor_opa <= LV_OPA_MIN && draw_dsc->colorkey == NULL) {
blend_dsc.src_area = img_coords;
blend_dsc.src_buf = src_buf;
blend_dsc.blend_area = img_coords;
blend_dsc.src_color_format = cf;
lv_draw_sw_blend(t, &blend_dsc);
}
- else if(!transformed && !radius && draw_dsc->recolor_opa > LV_OPA_MIN) {
+ else if(!transformed && !radius && draw_dsc->recolor_opa > LV_OPA_MIN && draw_dsc->colorkey == NULL) {
recolor_only(t, draw_dsc, decoder_dsc, img_coords, clipped_img_area);
}
#if LV_DRAW_SW_COMPLEX
/*Handle masked RGB565, RGB888, XRGB888, or ARGB8888 images*/
- else if(!transformed && radius && draw_dsc->recolor_opa <= LV_OPA_MIN) {
+ else if(!transformed && radius && draw_dsc->recolor_opa <= LV_OPA_MIN && draw_dsc->colorkey == NULL) {
radius_only(t, draw_dsc, decoder_dsc, img_coords, clipped_img_area);
}
#endif /*LV_DRAW_SW_COMPLEX*/
@@ -386,6 +391,7 @@ static void radius_only(lv_draw_task_t * t, const lv_draw_image_dsc_t * draw_dsc
}
#endif /*LV_DRAW_SW_COMPLEX*/
+
static void recolor_only(lv_draw_task_t * t, const lv_draw_image_dsc_t * draw_dsc,
const lv_image_decoder_dsc_t * decoder_dsc,
const lv_area_t * img_coords, const lv_area_t * clipped_img_area)
@@ -408,6 +414,11 @@ static void recolor_only(lv_draw_task_t * t, const lv_draw_image_dsc_t * draw_ds
buf_h = MAX_BUF_SIZE / buf_stride;
if(buf_h > blend_h) buf_h = blend_h;
tmp_buf = lv_malloc(buf_stride * buf_h);
+ LV_ASSERT_MALLOC(tmp_buf);
+ if(!tmp_buf) {
+ LV_LOG_WARN("Failed to perform image recolor operation. Out of memory");
+ return;
+ }
lv_draw_sw_blend_dsc_t blend_dsc;
lv_memzero(&blend_dsc, sizeof(lv_draw_sw_blend_dsc_t));
@@ -432,6 +443,7 @@ static void recolor_only(lv_draw_task_t * t, const lv_draw_image_dsc_t * draw_ds
lv_area_t relative_area;
lv_area_copy(&relative_area, &blend_area);
lv_area_move(&relative_area, -img_coords->x1, -img_coords->y1);
+
recolor(relative_area, decoded->data, tmp_buf, img_stride, blend_dsc.src_color_format, draw_dsc);
lv_draw_sw_blend(t, &blend_dsc);
@@ -476,6 +488,8 @@ static void transform_and_recolor(lv_draw_task_t * t, const lv_draw_image_dsc_t
do_recolor = false;
}
+ bool has_colorkey = draw_dsc->colorkey != NULL;
+
lv_color_format_t cf_final = cf;
if(cf_final == LV_COLOR_FORMAT_RGB888 || cf_final == LV_COLOR_FORMAT_XRGB8888) cf_final = LV_COLOR_FORMAT_ARGB8888;
else if(cf_final == LV_COLOR_FORMAT_RGB565 ||
@@ -512,6 +526,7 @@ static void transform_and_recolor(lv_draw_task_t * t, const lv_draw_image_dsc_t
blend_dsc.mask_area = &blend_area;
blend_dsc.mask_res = LV_DRAW_SW_MASK_RES_CHANGED;
blend_dsc.mask_buf = transformed_buf + blend_w * 2 * buf_h;
+ blend_dsc.mask_stride = blend_w;
blend_dsc.src_color_format = LV_COLOR_FORMAT_RGB565;
}
else if(cf_final == LV_COLOR_FORMAT_A8) {
@@ -533,11 +548,17 @@ static void transform_and_recolor(lv_draw_task_t * t, const lv_draw_image_dsc_t
lv_draw_sw_transform(&relative_area, src_buf, src_w, src_h, img_stride,
draw_dsc, sup, cf, transformed_buf);
- if(do_recolor) {
+ if(do_recolor || has_colorkey) {
lv_area_t relative_area2;
lv_area_copy(&relative_area2, &blend_area);
lv_area_move(&relative_area2, -blend_area.x1, -blend_area.y1);
- recolor(relative_area2, transformed_buf, transformed_buf, blend_dsc.src_stride, cf_final, draw_dsc);
+ if(has_colorkey && cf_final != LV_COLOR_FORMAT_RGB565_SWAPPED) {
+ colorkey_and_recolor(relative_area2, transformed_buf, transformed_buf, blend_dsc.src_stride, cf_final, draw_dsc,
+ &blend_dsc);
+ }
+ else {
+ recolor(relative_area2, transformed_buf, transformed_buf, blend_dsc.src_stride, cf_final, draw_dsc);
+ }
}
/*Blend*/
@@ -557,6 +578,199 @@ static void transform_and_recolor(lv_draw_task_t * t, const lv_draw_image_dsc_t
lv_free(transformed_buf);
}
+static void colorkey_and_recolor(lv_area_t relative_area, uint8_t * src_buf, uint8_t * dest_buf, int32_t src_stride,
+ lv_color_format_t cf, const lv_draw_image_dsc_t * draw_dsc, lv_draw_sw_blend_dsc_t * blend_dsc)
+{
+ int32_t w = lv_area_get_width(&relative_area);
+ int32_t h = lv_area_get_height(&relative_area);
+
+ /* Recolor parameters */
+ lv_color_t recolor = draw_dsc->recolor;
+ lv_opa_t mix = draw_dsc->recolor_opa;
+ lv_opa_t mix_inv = 255 - mix;
+
+ /* Colorkey parameters */
+ lv_color_t colorkey_low = draw_dsc->colorkey->low;
+ lv_color_t colorkey_high = draw_dsc->colorkey->high;
+ if(cf == LV_COLOR_FORMAT_RGB565A8 || cf == LV_COLOR_FORMAT_RGB565) {
+ const uint8_t * src_buf_tmp = src_buf + src_stride * relative_area.y1 + relative_area.x1 * 2;
+ int32_t img_stride_px = src_stride / 2;
+
+ uint16_t * buf16_src = (uint16_t *)src_buf_tmp;
+ uint16_t * buf16_dest = (uint16_t *)dest_buf;
+ uint16_t recolor16 = lv_color_to_u16(recolor);
+
+ uint16_t c_mult[3];
+ c_mult[0] = (recolor.blue >> 3) * mix;
+ c_mult[1] = (recolor.green >> 2) * mix;
+ c_mult[2] = (recolor.red >> 3) * mix;
+ uint8_t * mask_buf_tmp = (uint8_t *)blend_dsc->mask_buf;
+ int32_t y;
+ for(y = 0; y < h; y++) {
+ int32_t x;
+ for(x = 0; x < w; x++) {
+ lv_color_t src_color = lv_color16_to_color(*(lv_color16_t *)&buf16_src[x]);
+
+ /* Check colorkey */
+ if(lv_color_is_in_range(src_color, colorkey_low, colorkey_high)) {
+ if(cf == LV_COLOR_FORMAT_RGB565A8 && mask_buf_tmp) {
+ mask_buf_tmp[x] = 0;
+ }
+ else {
+ *buf16_dest = 0x0000; // Transparent
+ }
+ }
+ /* Apply recolor */
+ else if(mix >= LV_OPA_MAX) {
+ *buf16_dest = recolor16;
+ }
+ else if(mix > LV_OPA_MIN) {
+ uint16_t src16 = buf16_src[x];
+ *buf16_dest = (((c_mult[2] + ((src16 >> 11) & 0x1F) * mix_inv) << 3) & 0xF800) +
+ (((c_mult[1] + ((src16 >> 5) & 0x3F) * mix_inv) >> 3) & 0x07E0) +
+ ((c_mult[0] + (src16 & 0x1F) * mix_inv) >> 8);
+ }
+ else {
+ *buf16_dest = buf16_src[x]; // No change
+ }
+ buf16_dest++;
+ }
+ buf16_src += img_stride_px;
+ mask_buf_tmp += blend_dsc->mask_stride;
+ }
+ }
+ else if(cf == LV_COLOR_FORMAT_RGB888 || cf == LV_COLOR_FORMAT_XRGB8888 || cf == LV_COLOR_FORMAT_ARGB8888) {
+ uint32_t px_size = lv_color_format_get_size(cf);
+ const uint8_t * src_buf_tmp = src_buf + src_stride * relative_area.y1 + relative_area.x1 * px_size;
+ uint8_t * dest_buf_tmp = dest_buf;
+
+ uint16_t c_mult[3];
+ c_mult[0] = recolor.blue * mix;
+ c_mult[1] = recolor.green * mix;
+ c_mult[2] = recolor.red * mix;
+
+ int32_t y;
+ for(y = 0; y < h; y++) {
+ int32_t x;
+ for(x = 0; x < w; x++) {
+ lv_color_t src_color;
+ src_color.blue = src_buf_tmp[0];
+ src_color.green = src_buf_tmp[1];
+ src_color.red = src_buf_tmp[2];
+
+ /* Check colorkey */
+ if(lv_color_is_in_range(src_color, colorkey_low, colorkey_high)) {
+ dest_buf_tmp[0] = 0;
+ dest_buf_tmp[1] = 0;
+ dest_buf_tmp[2] = 0;
+ if(cf == LV_COLOR_FORMAT_ARGB8888) {
+ dest_buf_tmp[3] = 0; // Set alpha to 0
+ }
+ }
+ /* Apply recolor */
+ else if(mix >= LV_OPA_MAX) {
+ dest_buf_tmp[0] = recolor.blue;
+ dest_buf_tmp[1] = recolor.green;
+ dest_buf_tmp[2] = recolor.red;
+ if(cf == LV_COLOR_FORMAT_ARGB8888) {
+ dest_buf_tmp[3] = src_buf_tmp[3]; // Keep original alpha
+ }
+ }
+ else if(mix > LV_OPA_MIN) {
+ dest_buf_tmp[0] = (c_mult[0] + (src_buf_tmp[0] * mix_inv)) >> 8;
+ dest_buf_tmp[1] = (c_mult[1] + (src_buf_tmp[1] * mix_inv)) >> 8;
+ dest_buf_tmp[2] = (c_mult[2] + (src_buf_tmp[2] * mix_inv)) >> 8;
+ if(cf == LV_COLOR_FORMAT_ARGB8888) {
+ dest_buf_tmp[3] = src_buf_tmp[3]; // Keep original alpha
+ }
+ }
+ else {
+ // Copy as-is
+ dest_buf_tmp[0] = src_buf_tmp[0];
+ dest_buf_tmp[1] = src_buf_tmp[1];
+ dest_buf_tmp[2] = src_buf_tmp[2];
+ if(cf == LV_COLOR_FORMAT_ARGB8888) {
+ dest_buf_tmp[3] = src_buf_tmp[3];
+ }
+ }
+
+ src_buf_tmp += px_size;
+ dest_buf_tmp += px_size;
+ }
+ src_buf_tmp += (src_stride - w * px_size);
+ }
+ }
+ else if(cf == LV_COLOR_FORMAT_ARGB8888_PREMULTIPLIED) {
+ uint32_t px_size = 4;
+ const uint8_t * src_buf_tmp = src_buf + src_stride * relative_area.y1 + relative_area.x1 * px_size;
+ uint8_t * dest_buf_tmp = dest_buf;
+
+ uint16_t c_mult[3];
+ c_mult[0] = recolor.blue * mix;
+ c_mult[1] = recolor.green * mix;
+ c_mult[2] = recolor.red * mix;
+
+ int32_t y;
+ for(y = 0; y < h; y++) {
+ int32_t x;
+ for(x = 0; x < w; x++) {
+ uint8_t alpha = src_buf_tmp[3];
+
+ // Only process if pixel is visible
+ if(alpha > 0) {
+ /* Unpremultiply for color comparison and recolor */
+ uint16_t reciprocal = (255 * 256) / alpha;
+ uint8_t r = (src_buf_tmp[2] * reciprocal) >> 8;
+ uint8_t g = (src_buf_tmp[1] * reciprocal) >> 8;
+ uint8_t b = (src_buf_tmp[0] * reciprocal) >> 8;
+
+ lv_color_t src_color = lv_color_make(r, g, b);
+
+ /* Check colorkey */
+ if(lv_color_is_in_range(src_color, colorkey_low, colorkey_high)) {
+ // Set entire pixel to transparent
+ dest_buf_tmp[0] = 0;
+ dest_buf_tmp[1] = 0;
+ dest_buf_tmp[2] = 0;
+ dest_buf_tmp[3] = 0;
+ }
+ /* Apply recolor */
+ else {
+ if(mix >= LV_OPA_MAX) {
+ r = recolor.red;
+ g = recolor.green;
+ b = recolor.blue;
+ }
+ else if(mix > LV_OPA_MIN) {
+ r = (c_mult[2] + (r * mix_inv)) >> 8;
+ g = (c_mult[1] + (g * mix_inv)) >> 8;
+ b = (c_mult[0] + (b * mix_inv)) >> 8;
+ }
+ // Else keep original colors
+
+ /* Premultiply again */
+ dest_buf_tmp[0] = (b * alpha) >> 8;
+ dest_buf_tmp[1] = (g * alpha) >> 8;
+ dest_buf_tmp[2] = (r * alpha) >> 8;
+ dest_buf_tmp[3] = alpha; // Keep original alpha
+ }
+ }
+ else {
+ // Already transparent, copy as-is
+ dest_buf_tmp[0] = src_buf_tmp[0];
+ dest_buf_tmp[1] = src_buf_tmp[1];
+ dest_buf_tmp[2] = src_buf_tmp[2];
+ dest_buf_tmp[3] = 0; // Ensure alpha is 0
+ }
+
+ src_buf_tmp += px_size;
+ dest_buf_tmp += px_size;
+ }
+ src_buf_tmp += (src_stride - w * px_size);
+ }
+ }
+}
+
static void recolor(lv_area_t relative_area, uint8_t * src_buf, uint8_t * dest_buf, int32_t src_stride,
lv_color_format_t cf, const lv_draw_image_dsc_t * draw_dsc)
{
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/sw/lv_draw_sw_letter.c b/lib/libesp32_lvgl/lvgl/src/draw/sw/lv_draw_sw_letter.c
index 5bb69c98b..c57632b7a 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/sw/lv_draw_sw_letter.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/sw/lv_draw_sw_letter.c
@@ -170,6 +170,11 @@ static void LV_ATTRIBUTE_FAST_MEM draw_letter_cb(lv_draw_task_t * t, lv_draw_gly
}
else {
glyph_draw_dsc->glyph_data = lv_font_get_glyph_bitmap(glyph_draw_dsc->g, glyph_draw_dsc->_draw_buf);
+ if(glyph_draw_dsc->glyph_data == NULL) {
+ LV_LOG_WARN("Couldn't get the bitmap of a glyph");
+ break;
+ }
+
mask_area.x2 = mask_area.x1 + lv_draw_buf_width_to_stride(lv_area_get_width(&mask_area), LV_COLOR_FORMAT_A8) - 1;
lv_draw_sw_blend_dsc_t blend_dsc;
lv_memzero(&blend_dsc, sizeof(blend_dsc));
@@ -229,7 +234,7 @@ static void draw_letter_outline(lv_draw_task_t * t, lv_draw_glyph_dsc_t * glyph_
{
lv_draw_sw_letter_outlines_t * glyph_paths;
- lv_vector_dsc_t * vector_dsc;
+ lv_draw_vector_dsc_t * vector_dsc;
lv_draw_buf_t * draw_buf;
lv_matrix_t matrix;
lv_layer_t layer;
@@ -269,7 +274,7 @@ static void draw_letter_outline(lv_draw_task_t * t, lv_draw_glyph_dsc_t * glyph_
lv_matrix_identity(&matrix);
- vector_dsc = lv_vector_dsc_create(&layer);
+ vector_dsc = lv_draw_vector_dsc_create(&layer);
int32_t offset_x;
int32_t offset_y;
@@ -281,20 +286,20 @@ static void draw_letter_outline(lv_draw_task_t * t, lv_draw_glyph_dsc_t * glyph_
lv_matrix_scale(&matrix, 1, -1);
lv_matrix_translate(&matrix, -offset_x, -h - offset_y);
lv_matrix_scale(&matrix, scale, scale);
- lv_vector_dsc_set_transform(vector_dsc, &matrix);
+ lv_draw_vector_dsc_set_transform(vector_dsc, &matrix);
/*Set attributes color, line width etc*/
if(cf == LV_COLOR_FORMAT_ARGB8888) {
if(glyph_dsc->outline_stroke_width > 0) {
- lv_vector_dsc_set_fill_color(vector_dsc, glyph_dsc->outline_stroke_color);
- lv_vector_dsc_set_fill_opa(vector_dsc, glyph_dsc->outline_stroke_opa);
- lv_vector_dsc_add_path(vector_dsc, glyph_paths->outside_path);
+ lv_draw_vector_dsc_set_fill_color(vector_dsc, glyph_dsc->outline_stroke_color);
+ lv_draw_vector_dsc_set_fill_opa(vector_dsc, glyph_dsc->outline_stroke_opa);
+ lv_draw_vector_dsc_add_path(vector_dsc, glyph_paths->outside_path);
}
- lv_vector_dsc_set_fill_color(vector_dsc, glyph_dsc->color);
- lv_vector_dsc_set_fill_opa(vector_dsc, glyph_dsc->opa);
- lv_vector_dsc_add_path(vector_dsc, glyph_paths->inside_path);
+ lv_draw_vector_dsc_set_fill_color(vector_dsc, glyph_dsc->color);
+ lv_draw_vector_dsc_set_fill_opa(vector_dsc, glyph_dsc->opa);
+ lv_draw_vector_dsc_add_path(vector_dsc, glyph_paths->inside_path);
}
else {
@@ -312,16 +317,16 @@ static void draw_letter_outline(lv_draw_task_t * t, lv_draw_glyph_dsc_t * glyph_
/*Can't call lv_draw_vector() as it would create a new draw task while
*the main thread also can create draw tasks. So create a dummy draw task
*manually to draw the outline*/
- if(vector_dsc->tasks.task_list) {
- vector_dsc->tasks.base.layer = vector_dsc->layer;
+ if(vector_dsc->task_list) {
+ vector_dsc->base.layer = vector_dsc->base.layer;
lv_draw_task_t dummy_t;
lv_memzero(&dummy_t, sizeof(lv_draw_task_t));
- dummy_t.area = vector_dsc->layer->_clip_area;
- dummy_t._real_area = vector_dsc->layer->_clip_area;
- dummy_t.clip_area = vector_dsc->layer->_clip_area;
- dummy_t.target_layer = vector_dsc->layer;
+ dummy_t.area = vector_dsc->base.layer->_clip_area;
+ dummy_t._real_area = vector_dsc->base.layer->_clip_area;
+ dummy_t.clip_area = vector_dsc->base.layer->_clip_area;
+ dummy_t.target_layer = vector_dsc->base.layer;
dummy_t.type = LV_DRAW_TASK_TYPE_VECTOR;
- dummy_t.draw_dsc = &vector_dsc->tasks;
+ dummy_t.draw_dsc = vector_dsc;
lv_draw_sw_vector(&dummy_t, dummy_t.draw_dsc);
}
@@ -342,7 +347,7 @@ static void draw_letter_outline(lv_draw_task_t * t, lv_draw_glyph_dsc_t * glyph_
img_dsc.src = draw_buf;
lv_draw_sw_image(t, &img_dsc, &letter_coords);
- lv_vector_dsc_delete(vector_dsc);
+ lv_draw_vector_dsc_delete(vector_dsc);
lv_draw_buf_destroy(draw_buf);
}
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/sw/lv_draw_sw_mask.c b/lib/libesp32_lvgl/lvgl/src/draw/sw/lv_draw_sw_mask.c
index 0e1a17a67..7c154ba32 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/sw/lv_draw_sw_mask.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/sw/lv_draw_sw_mask.c
@@ -15,7 +15,7 @@
#include "../../misc/lv_math.h"
#include "../../misc/lv_log.h"
#include "../../misc/lv_assert.h"
-#include "../../osal/lv_os.h"
+#include "../../osal/lv_os_private.h"
#include "../../stdlib/lv_string.h"
/*********************
@@ -1137,7 +1137,7 @@ static void circ_calc_aa4(lv_draw_sw_mask_radius_circle_dsc_t * c, int32_t radiu
cir_x[cir_size] = x_int[0] - 1;
cir_y[cir_size] = y_8th_cnt;
- c->cir_opa[cir_size] = 1 * 4 + x_fract[1] + x_fract[2] + x_fract[3];;
+ c->cir_opa[cir_size] = 1 * 4 + x_fract[1] + x_fract[2] + x_fract[3];
c->cir_opa[cir_size] *= 16;
cir_size++;
}
@@ -1151,7 +1151,7 @@ static void circ_calc_aa4(lv_draw_sw_mask_radius_circle_dsc_t * c, int32_t radiu
cir_x[cir_size] = x_int[0] - 1;
cir_y[cir_size] = y_8th_cnt;
- c->cir_opa[cir_size] = 2 * 4 + x_fract[2] + x_fract[3];;
+ c->cir_opa[cir_size] = 2 * 4 + x_fract[2] + x_fract[3];
c->cir_opa[cir_size] *= 16;
cir_size++;
}
@@ -1165,7 +1165,7 @@ static void circ_calc_aa4(lv_draw_sw_mask_radius_circle_dsc_t * c, int32_t radiu
cir_x[cir_size] = x_int[0] - 1;
cir_y[cir_size] = y_8th_cnt;
- c->cir_opa[cir_size] = 3 * 4 + x_fract[3];;
+ c->cir_opa[cir_size] = 3 * 4 + x_fract[3];
c->cir_opa[cir_size] *= 16;
cir_size++;
}
@@ -1209,7 +1209,7 @@ static void circ_calc_aa4(lv_draw_sw_mask_radius_circle_dsc_t * c, int32_t radiu
while(i < cir_size) {
c->opa_start_on_y[y] = i;
c->x_start_on_y[y] = cir_x[i];
- for(; cir_y[i] == y && i < (int32_t)cir_size; i++) {
+ for(; i < (int32_t)cir_size && cir_y[i] == y; i++) {
c->x_start_on_y[y] = LV_MIN(c->x_start_on_y[y], cir_x[i]);
}
y++;
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/sw/lv_draw_sw_transform.c b/lib/libesp32_lvgl/lvgl/src/draw/sw/lv_draw_sw_transform.c
index 30db0620b..11ebed683 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/sw/lv_draw_sw_transform.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/sw/lv_draw_sw_transform.c
@@ -581,7 +581,7 @@ static void transform_argb8888_premultiplied(const uint8_t * src, int32_t src_w,
lv_color32_t px_hor = src_c32[x_next];
lv_color32_t px_ver = *(const lv_color32_t *)((uint8_t *)src_c32 + y_next * src_stride);
- /*Have the non-premultipled colors first, mix them as needed,
+ /*Have the non-premultiplied colors first, mix them as needed,
*and premultiply again*/
dest_c32[x] = unpremultiply(dest_c32[x]);
px_hor = unpremultiply(px_hor);
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/sw/lv_draw_sw_triangle.c b/lib/libesp32_lvgl/lvgl/src/draw/sw/lv_draw_sw_triangle.c
index 8d7a4b119..0cfc36d88 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/sw/lv_draw_sw_triangle.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/sw/lv_draw_sw_triangle.c
@@ -88,8 +88,10 @@ void lv_draw_sw_triangle(lv_draw_task_t * t, const lv_draw_triangle_dsc_t * dsc)
if(p[1].y < p[2].y) lv_point_swap(&p[1], &p[2]);
}
- /*Be sure p[0] is on the top*/
+ /*Be sure p[0] is on top followed by lowest point (p[1]) and middle point last (p[2])*/
+ if(p[0].y > p[2].y) lv_point_swap(&p[0], &p[2]);
if(p[0].y > p[1].y) lv_point_swap(&p[0], &p[1]);
+ if(p[1].y < p[2].y) lv_point_swap(&p[1], &p[2]);
/*If right == true p[2] is on the right side of the p[0] p[1] line*/
bool right = ((p[1].x - p[0].x) * (p[2].y - p[0].y) - (p[1].y - p[0].y) * (p[2].x - p[0].x)) < 0;
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/sw/lv_draw_sw_vector.c b/lib/libesp32_lvgl/lvgl/src/draw/sw/lv_draw_sw_vector.c
index 6e3493f86..114d1cd2f 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/sw/lv_draw_sw_vector.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/sw/lv_draw_sw_vector.c
@@ -1,5 +1,5 @@
/**
- * @file lv_draw_img.c
+ * @file lv_draw_sw_vector.c
*
*/
@@ -48,6 +48,7 @@ typedef struct {
int32_t partial_y_offset;
int32_t translate_x;
int32_t translate_y;
+ lv_opa_t opa;
} _tvg_draw_state;
/**********************
* STATIC PROTOTYPES
@@ -281,7 +282,7 @@ static void _set_paint_fill_gradient(Tvg_Paint * obj, const lv_vector_gradient_t
}
static void _set_paint_fill_pattern(Tvg_Paint * obj, Tvg_Canvas * canvas, const lv_draw_image_dsc_t * p,
- const lv_matrix_t * m)
+ const lv_matrix_t * m, const lv_opa_t opa)
{
lv_image_decoder_dsc_t decoder_dsc;
lv_image_decoder_args_t args = { 0 };
@@ -298,7 +299,6 @@ static void _set_paint_fill_pattern(Tvg_Paint * obj, Tvg_Canvas * canvas, const
return;
}
- const uint8_t * src_buf = decoder_dsc.decoded->data;
const lv_image_header_t * header = &decoder_dsc.decoded->header;
lv_color_format_t cf = header->cf;
@@ -308,11 +308,24 @@ static void _set_paint_fill_pattern(Tvg_Paint * obj, Tvg_Canvas * canvas, const
return;
}
+ const uint32_t tvg_stride = header->w * sizeof(uint32_t);
+ if(header->stride != tvg_stride) {
+ LV_LOG_WARN("img_stride != tvg_stride (%" LV_PRIu32 " != %" LV_PRIu32 "), width = %" LV_PRIu32,
+ (uint32_t)header->stride,
+ tvg_stride, (uint32_t)header->w);
+ lv_result_t result = lv_draw_buf_adjust_stride((lv_draw_buf_t *)decoder_dsc.decoded, tvg_stride);
+ if(result != LV_RESULT_OK) {
+ lv_image_decoder_close(&decoder_dsc);
+ LV_LOG_ERROR("Failed to adjust stride");
+ return;
+ }
+ }
+
Tvg_Paint * img = tvg_picture_new();
- tvg_picture_load_raw(img, (uint32_t *)src_buf, header->w, header->h, true);
+ tvg_picture_load_raw(img, (uint32_t *)decoder_dsc.decoded->data, header->w, header->h, true);
Tvg_Paint * clip_path = tvg_paint_duplicate(obj);
tvg_paint_set_composite_method(img, clip_path, TVG_COMPOSITE_METHOD_CLIP_PATH);
- tvg_paint_set_opacity(img, p->opa);
+ tvg_paint_set_opacity(img, LV_UDIV255(p->opa * opa));
Tvg_Matrix mtx;
lv_matrix_to_tvg(&mtx, m);
@@ -322,7 +335,7 @@ static void _set_paint_fill_pattern(Tvg_Paint * obj, Tvg_Canvas * canvas, const
}
static void _set_paint_fill(Tvg_Paint * obj, Tvg_Canvas * canvas, const lv_vector_fill_dsc_t * dsc,
- const lv_matrix_t * matrix)
+ const lv_matrix_t * matrix, const lv_opa_t opa)
{
tvg_shape_set_fill_rule(obj, lv_fill_rule_to_tvg(dsc->fill_rule));
@@ -343,7 +356,7 @@ static void _set_paint_fill(Tvg_Paint * obj, Tvg_Canvas * canvas, const lv_vecto
lv_matrix_multiply(&imx, &dsc->matrix);
- _set_paint_fill_pattern(obj, canvas, &dsc->img_dsc, &imx);
+ _set_paint_fill_pattern(obj, canvas, &dsc->img_dsc, &imx, opa);
}
else if(dsc->style == LV_VECTOR_DRAW_STYLE_GRADIENT) {
_set_paint_fill_gradient(obj, &dsc->gradient, &dsc->matrix);
@@ -416,14 +429,13 @@ static void _blend_draw_buf(lv_draw_buf_t * draw_buf, const lv_area_t * dst_area
}
}
-static void _task_draw_cb(void * ctx, const lv_vector_path_t * path, const lv_vector_draw_dsc_t * dsc)
+static void _task_draw_cb(void * ctx, const lv_vector_path_t * path, const lv_vector_path_ctx_t * dsc)
{
_tvg_draw_state * state = (_tvg_draw_state *)ctx;
Tvg_Canvas * canvas = (Tvg_Canvas *)state->canvas;
Tvg_Paint * obj = tvg_shape_new();
- int32_t y_offset = state->partial_y_offset;
_tvg_rect rc;
lv_area_to_tvg(&rc, &dsc->scissor_area);
@@ -437,12 +449,11 @@ static void _task_draw_cb(void * ctx, const lv_vector_path_t * path, const lv_ve
0.0f, 0.0f, 1.0f,
};
_set_paint_matrix(obj, &mtx);
- mtx.e23 -= (float)(y_offset);
tvg_shape_append_rect(obj, rc.x + state->translate_x, rc.y + state->translate_y, rc.w, rc.h, 0, 0);
tvg_shape_set_fill_color(obj, c.r, c.g, c.b, c.a);
}
else {
- tvg_canvas_set_viewport(canvas, (int32_t)rc.x + state->translate_x, (int32_t)(rc.y - y_offset) + state->translate_y,
+ tvg_canvas_set_viewport(canvas, (int32_t)rc.x + state->translate_x, (int32_t)rc.y + state->translate_y,
(int32_t)rc.w, (int32_t)rc.h);
lv_matrix_t matrix;
@@ -451,15 +462,15 @@ static void _task_draw_cb(void * ctx, const lv_vector_path_t * path, const lv_ve
lv_matrix_multiply(&matrix, &dsc->matrix);
Tvg_Matrix mtx;
lv_matrix_to_tvg(&mtx, &matrix);
- mtx.e23 -= (float)(y_offset);
_set_paint_matrix(obj, &mtx);
_set_paint_shape(obj, path);
- _set_paint_fill(obj, canvas, &dsc->fill_dsc, &matrix);
+ _set_paint_fill(obj, canvas, &dsc->fill_dsc, &matrix, state->opa);
_set_paint_stroke(obj, &dsc->stroke_dsc);
_set_paint_blend_mode(obj, dsc->blend_mode);
}
+ tvg_paint_set_opacity(obj, state->opa);
tvg_canvas_push(canvas, obj);
}
@@ -467,7 +478,7 @@ static void _task_draw_cb(void * ctx, const lv_vector_path_t * path, const lv_ve
* GLOBAL FUNCTIONS
**********************/
-void lv_draw_sw_vector(lv_draw_task_t * t, lv_draw_vector_task_dsc_t * dsc)
+void lv_draw_sw_vector(lv_draw_task_t * t, lv_draw_vector_dsc_t * dsc)
{
if(dsc->task_list == NULL)
return;
@@ -502,7 +513,7 @@ void lv_draw_sw_vector(lv_draw_task_t * t, lv_draw_vector_task_dsc_t * dsc)
lv_area_to_tvg(&rc, &t->clip_area);
tvg_canvas_set_viewport(canvas, (int32_t)rc.x, (int32_t)(rc.y - layer->partial_y_offset), (int32_t)rc.w, (int32_t)rc.h);
- _tvg_draw_state state = {canvas, layer->partial_y_offset, -layer->buf_area.x1, -layer->buf_area.y1};
+ _tvg_draw_state state = {canvas, layer->partial_y_offset, -layer->buf_area.x1, -layer->buf_area.y1, t->opa};
lv_ll_t * task_list = dsc->task_list;
lv_vector_for_each_destroy_tasks(task_list, _task_draw_cb, &state);
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_draw_buf_vg_lite.c b/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_draw_buf_vg_lite.c
index de0b4b90b..9d3173743 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_draw_buf_vg_lite.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_draw_buf_vg_lite.c
@@ -26,7 +26,7 @@
* STATIC PROTOTYPES
**********************/
-static uint32_t width_to_stride(uint32_t w, lv_color_format_t color_format);
+static void init_handlers(lv_draw_buf_handlers_t * handlers);
/**********************
* STATIC VARIABLES
@@ -42,8 +42,9 @@ static uint32_t width_to_stride(uint32_t w, lv_color_format_t color_format);
void lv_draw_buf_vg_lite_init_handlers(void)
{
- lv_draw_buf_handlers_t * handlers = lv_draw_buf_get_handlers();
- handlers->width_to_stride_cb = width_to_stride;
+ init_handlers(lv_draw_buf_get_handlers());
+ init_handlers(lv_draw_buf_get_font_handlers());
+ init_handlers(lv_draw_buf_get_image_handlers());
}
/**********************
@@ -55,4 +56,10 @@ static uint32_t width_to_stride(uint32_t w, lv_color_format_t color_format)
return lv_vg_lite_width_to_stride(w, lv_vg_lite_vg_fmt(color_format));
}
+static void init_handlers(lv_draw_buf_handlers_t * handlers)
+{
+ LV_ASSERT_NULL(handlers);
+ handlers->width_to_stride_cb = width_to_stride;
+}
+
#endif /*LV_USE_DRAW_VG_LITE*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_draw_vg_lite.c b/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_draw_vg_lite.c
index 47c9f91ce..a5f64197d 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_draw_vg_lite.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_draw_vg_lite.c
@@ -1,5 +1,5 @@
/**
- * @file lv_vg_lite_draw.c
+ * @file lv_draw_vg_lite.c
*
*/
@@ -40,6 +40,8 @@ static int32_t draw_evaluate(lv_draw_unit_t * draw_unit, lv_draw_task_t * task);
static int32_t draw_delete(lv_draw_unit_t * draw_unit);
+static void draw_event_cb(lv_event_t * e);
+
/**********************
* STATIC VARIABLES
**********************/
@@ -70,6 +72,7 @@ void lv_draw_vg_lite_init(void)
unit->base_unit.dispatch_cb = draw_dispatch;
unit->base_unit.evaluate_cb = draw_evaluate;
unit->base_unit.delete_cb = draw_delete;
+ unit->base_unit.event_cb = draw_event_cb;
unit->base_unit.name = "VG_LITE";
lv_vg_lite_image_dsc_init(unit);
@@ -133,15 +136,13 @@ static void draw_execute(lv_draw_vg_lite_unit_t * u)
vg_lite_matrix_t layer_matrix;
lv_vg_lite_matrix(&layer_matrix, &t->matrix);
lv_vg_lite_matrix_multiply(&u->global_matrix, &layer_matrix);
-
- /* Crop out extra pixels drawn due to scaling accuracy issues */
- lv_area_t scissor_area = layer->phy_clip_area;
-#else
- lv_area_t scissor_area = layer->_clip_area;
#endif
- lv_area_move(&scissor_area, -layer->buf_area.x1, -layer->buf_area.y1);
+
if(vg_lite_query_feature(gcFEATURE_BIT_VG_SCISSOR)) {
- lv_vg_lite_set_scissor_area(&scissor_area);
+ /* Crop out extra pixels drawn due to scaling accuracy issues */
+ lv_area_t scissor_area = layer->phy_clip_area;
+ lv_area_move(&scissor_area, -layer->buf_area.x1, -layer->buf_area.y1);
+ lv_vg_lite_set_scissor_area(u, &scissor_area);
}
switch(t->type) {
@@ -223,7 +224,7 @@ static int32_t draw_dispatch(lv_draw_unit_t * draw_unit, lv_layer_t * layer)
draw_execute(u);
- u->task_act->state = LV_DRAW_TASK_STATE_READY;
+ u->task_act->state = LV_DRAW_TASK_STATE_FINISHED;
u->task_act = NULL;
/*The draw unit is free now. Request a new dispatching as it can get a new task*/
@@ -303,4 +304,28 @@ static int32_t draw_delete(lv_draw_unit_t * draw_unit)
return 1;
}
+static void draw_event_cb(lv_event_t * e)
+{
+ lv_event_code_t code = lv_event_get_code(e);
+
+ switch(code) {
+ case LV_EVENT_CANCEL: {
+#if LV_USE_VECTOR_GRAPHIC
+ /**
+ * Because VG-Lite will deinitialize the context (including the GPU independent heap)
+ * before the GPU goes to sleep, it is necessary to first discard and dereference
+ * all caches that depend on the independent heap.
+ */
+ lv_draw_vg_lite_unit_t * unit = lv_event_get_current_target(e);
+ lv_cache_drop_all(lv_vg_lite_grad_ctx_get_cache(unit->grad_ctx), NULL);
+ lv_cache_drop_all(unit->stroke_cache, NULL);
+ LV_LOG_INFO("dropt all cache");
+#endif
+ }
+ break;
+ default:
+ break;
+ }
+}
+
#endif /*LV_USE_DRAW_VG_LITE*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_draw_vg_lite.h b/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_draw_vg_lite.h
index 0b873848b..07a9abceb 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_draw_vg_lite.h
+++ b/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_draw_vg_lite.h
@@ -79,7 +79,7 @@ void lv_draw_vg_lite_mask_rect(lv_draw_task_t * t, const lv_draw_mask_rect_dsc_t
const lv_area_t * coords);
#if LV_USE_VECTOR_GRAPHIC
-void lv_draw_vg_lite_vector(lv_draw_task_t * t, const lv_draw_vector_task_dsc_t * dsc);
+void lv_draw_vg_lite_vector(lv_draw_task_t * t, const lv_draw_vector_dsc_t * dsc);
#endif
/**********************
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_draw_vg_lite_border.c b/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_draw_vg_lite_border.c
index 52c623ac2..a769d73b2 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_draw_vg_lite_border.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_draw_vg_lite_border.c
@@ -164,7 +164,7 @@ static vg_lite_fill_t path_append_inner_rect(lv_vg_lite_path_t * path,
return VG_LITE_FILL_EVEN_ODD;
}
- /* reset outter rect path */
+ /* reset outer rect path */
lv_vg_lite_path_reset(path, VG_LITE_FP32);
/* coordinate reference map: https://github.com/lvgl/lvgl/pull/6796 */
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_draw_vg_lite_fill.c b/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_draw_vg_lite_fill.c
index d0fd89aae..37cb372e8 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_draw_vg_lite_fill.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_draw_vg_lite_fill.c
@@ -58,6 +58,14 @@ void lv_draw_vg_lite_fill(lv_draw_task_t * t, const lv_draw_fill_dsc_t * dsc, co
vg_lite_matrix_t matrix = u->global_matrix;
+ /* Improve GPU rendering efficiency using simpler fill modes */
+ if(dsc->radius == 0 && dsc->opa >= LV_OPA_MAX && dsc->grad.dir == LV_GRAD_DIR_NONE &&
+ lv_matrix_is_identity((lv_matrix_t *)&matrix)) {
+ lv_vg_lite_clear(&u->target_buffer, &clip_area, lv_vg_lite_color(dsc->color, LV_OPA_COVER, false));
+ LV_PROFILER_DRAW_END;
+ return;
+ }
+
lv_vg_lite_path_t * path = lv_vg_lite_path_get(u, VG_LITE_FP32);
lv_vg_lite_path_set_quality(path, dsc->radius == 0 ? VG_LITE_LOW : VG_LITE_HIGH);
lv_vg_lite_path_set_bounding_box_area(path, &clip_area);
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_draw_vg_lite_img.c b/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_draw_vg_lite_img.c
index a98aa6e0c..e26ab6708 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_draw_vg_lite_img.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_draw_vg_lite_img.c
@@ -51,22 +51,8 @@ void lv_draw_vg_lite_img(lv_draw_task_t * t, const lv_draw_image_dsc_t * dsc,
{
lv_draw_vg_lite_unit_t * u = (lv_draw_vg_lite_unit_t *)t->draw_unit;
- /* The coordinates passed in by coords are not transformed,
- * so the transformed area needs to be calculated once.
- */
- lv_area_t image_tf_area;
- lv_image_buf_get_transformed_area(
- &image_tf_area,
- lv_area_get_width(coords),
- lv_area_get_height(coords),
- dsc->rotation,
- dsc->scale_x,
- dsc->scale_y,
- &dsc->pivot);
- lv_area_move(&image_tf_area, coords->x1, coords->y1);
-
lv_area_t clip_area;
- if(!lv_area_intersect(&clip_area, &image_tf_area, &t->clip_area)) {
+ if(!lv_area_intersect(&clip_area, &t->_real_area, &t->clip_area)) {
/*Fully clipped, nothing to do*/
return;
}
@@ -86,7 +72,8 @@ void lv_draw_vg_lite_img(lv_draw_task_t * t, const lv_draw_image_dsc_t * dsc,
vg_lite_color_t color = lv_vg_lite_image_recolor(&src_buf, dsc);
/* convert the blend mode to vg-lite blend mode, considering the premultiplied alpha */
- bool has_pre_mul = lv_draw_buf_has_flag(decoder_dsc.decoded, LV_IMAGE_FLAGS_PREMULTIPLIED);
+ bool has_pre_mul = lv_draw_buf_has_flag(decoder_dsc.decoded, LV_IMAGE_FLAGS_PREMULTIPLIED)
+ || (decoder_dsc.decoded->header.cf == LV_COLOR_FORMAT_ARGB8888_PREMULTIPLIED);
vg_lite_blend_t blend = lv_vg_lite_blend_mode(dsc->blend_mode, has_pre_mul);
/* original image matrix */
@@ -98,17 +85,25 @@ void lv_draw_vg_lite_img(lv_draw_task_t * t, const lv_draw_image_dsc_t * dsc,
vg_lite_matrix_t matrix = u->global_matrix;
lv_vg_lite_matrix_multiply(&matrix, &image_matrix);
- bool has_transform = matrix_has_transform(&matrix);
- vg_lite_filter_t filter = has_transform ? VG_LITE_FILTER_BI_LINEAR : VG_LITE_FILTER_POINT;
+ const bool has_transform = matrix_has_transform(&matrix);
+ const vg_lite_filter_t filter = has_transform ? VG_LITE_FILTER_BI_LINEAR : VG_LITE_FILTER_POINT;
+
+ /* Use coords as the fallback image width and height */
+ const uint32_t img_w = dsc->header.w ? dsc->header.w : lv_area_get_width(coords);
+ const uint32_t img_h = dsc->header.h ? dsc->header.h : lv_area_get_height(coords);
+
+ if(dsc->colorkey) {
+ lv_vg_lite_set_color_key(dsc->colorkey);
+ }
/* If clipping is not required, blit directly */
- if(lv_area_is_in(&image_tf_area, &t->clip_area, false) && dsc->clip_radius <= 0) {
+ if(lv_area_is_in(&t->_real_area, &t->clip_area, false) && dsc->clip_radius <= 0 && !dsc->tile) {
/* rect is used to crop the pixel-aligned padding area */
vg_lite_rectangle_t rect = {
.x = 0,
.y = 0,
- .width = lv_area_get_width(coords),
- .height = lv_area_get_height(coords),
+ .width = img_w,
+ .height = img_h,
};
lv_vg_lite_blit_rect(
@@ -119,38 +114,107 @@ void lv_draw_vg_lite_img(lv_draw_task_t * t, const lv_draw_image_dsc_t * dsc,
blend,
color,
filter);
- }
- else {
- lv_vg_lite_path_t * path = lv_vg_lite_path_get(u, VG_LITE_FP32);
+ lv_vg_lite_pending_add(u->image_dsc_pending, &decoder_dsc);
+ LV_PROFILER_DRAW_END;
+ return;
+ }
+
+
+ lv_vg_lite_path_t * path = lv_vg_lite_path_get(u, VG_LITE_FP32);
+
+ if(dsc->tile) {
+ /* When the image is tiled, use coords as the tile area and create a path around it */
+ lv_vg_lite_path_append_rect(
+ path,
+ coords->x1, coords->y1,
+ lv_area_get_width(coords), lv_area_get_height(coords),
+ dsc->clip_radius);
+ }
+ else if(has_transform || dsc->clip_radius) {
/**
* When the image is transformed or rounded, create a path around
* the image and follow the image_matrix for coordinate transformation
*/
- if(has_transform || dsc->clip_radius) {
- /* apply the image transform to the path */
- lv_vg_lite_path_set_transform(path, &image_matrix);
- lv_vg_lite_path_append_rect(
- path,
- 0, 0,
- lv_area_get_width(&dsc->image_area), lv_area_get_height(&dsc->image_area),
- dsc->clip_radius);
- lv_vg_lite_path_set_transform(path, NULL);
+ lv_vg_lite_path_set_transform(path, &image_matrix);
+
+ /* Each point will be transformed accordingly. */
+ lv_vg_lite_path_append_rect(
+ path,
+ dsc->image_area.x1 - coords->x1, dsc->image_area.y1 - coords->y1,
+ lv_area_get_width(&dsc->image_area), lv_area_get_height(&dsc->image_area),
+ dsc->clip_radius);
+ }
+ else {
+ /* append normal rect to the path */
+ lv_vg_lite_path_append_rect(
+ path,
+ clip_area.x1, clip_area.y1,
+ lv_area_get_width(&clip_area), lv_area_get_height(&clip_area),
+ 0);
+ }
+
+ lv_vg_lite_path_set_bounding_box_area(path, &clip_area);
+ lv_vg_lite_path_end(path);
+
+ vg_lite_matrix_t path_matrix = u->global_matrix;
+
+ if(dsc->tile) {
+ lv_area_t tile_area;
+ if(lv_area_get_width(&dsc->image_area) >= 0) {
+ tile_area = dsc->image_area;
}
else {
- /* append normal rect to the path */
- lv_vg_lite_path_append_rect(
- path,
- clip_area.x1, clip_area.y1,
- lv_area_get_width(&clip_area), lv_area_get_height(&clip_area),
- 0);
+ tile_area = *coords;
}
+ lv_area_set_width(&tile_area, img_w);
+ lv_area_set_height(&tile_area, img_h);
- lv_vg_lite_path_set_bounding_box_area(path, &clip_area);
- lv_vg_lite_path_end(path);
+ /**
+ * vg_lite_tvg does not support VG_LITE_PATTERN_REPEAT,
+ * use looping texture for simulation.
+ */
+#if LV_USE_VG_LITE_THORVG
+ const int32_t tile_x_start = tile_area.x1;
+ while(tile_area.y1 <= coords->y2) {
+ while(tile_area.x1 <= coords->x2) {
+#endif
+ vg_lite_matrix_t tile_matrix;
+ vg_lite_identity(&tile_matrix);
+ vg_lite_translate(tile_area.x1 - coords->x1, tile_area.y1 - coords->y1, &tile_matrix);
- vg_lite_matrix_t path_matrix = u->global_matrix;
+ vg_lite_matrix_t pattern_matrix = matrix;
+ lv_vg_lite_matrix_multiply(&pattern_matrix, &tile_matrix);
+ lv_area_t clipped_img_area;
+ if(!LV_USE_VG_LITE_THORVG || lv_area_intersect(&clipped_img_area, &tile_area, coords)) {
+ lv_vg_lite_draw_pattern(
+ &u->target_buffer,
+ lv_vg_lite_path_get_path(path),
+ VG_LITE_FILL_EVEN_ODD,
+ &path_matrix,
+ &src_buf,
+ &pattern_matrix,
+ blend,
+ VG_LITE_PATTERN_REPEAT,
+ 0,
+ color,
+ filter);
+ }
+
+#if LV_USE_VG_LITE_THORVG
+ tile_area.x1 += img_w;
+ tile_area.x2 += img_w;
+ }
+
+ tile_area.y1 += img_h;
+ tile_area.y2 += img_h;
+ tile_area.x1 = tile_x_start;
+ tile_area.x2 = tile_x_start + img_w - 1;
+ }
+#endif
+ }
+ else {
lv_vg_lite_draw_pattern(
&u->target_buffer,
lv_vg_lite_path_get_path(path),
@@ -163,10 +227,14 @@ void lv_draw_vg_lite_img(lv_draw_task_t * t, const lv_draw_image_dsc_t * dsc,
0,
color,
filter);
-
- lv_vg_lite_path_drop(u, path);
}
+ if(dsc->colorkey) {
+ lv_vg_lite_set_color_key(NULL);
+ }
+
+ lv_vg_lite_path_drop(u, path);
+
lv_vg_lite_pending_add(u->image_dsc_pending, &decoder_dsc);
LV_PROFILER_DRAW_END;
}
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_draw_vg_lite_label.c b/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_draw_vg_lite_label.c
index afbdd37df..9ab37bfc4 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_draw_vg_lite_label.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_draw_vg_lite_label.c
@@ -20,6 +20,7 @@
#include "../../misc/lv_area_private.h"
#include "../../libs/freetype/lv_freetype_private.h"
#include "../lv_draw_label_private.h"
+#include "../lv_draw_image_private.h"
/*********************
@@ -53,13 +54,14 @@
static void draw_letter_cb(lv_draw_task_t * t, lv_draw_glyph_dsc_t * glyph_draw_dsc,
lv_draw_fill_dsc_t * fill_draw_dsc, const lv_area_t * fill_area);
-static void draw_letter_bitmap(lv_draw_task_t * t, const lv_draw_glyph_dsc_t * dsc);
+static void draw_letter_bitmap(lv_draw_task_t * t, const lv_draw_glyph_dsc_t * dsc, vg_lite_buffer_t * src_buf);
static void bitmap_cache_release_cb(void * entry, void * user_data);
#if LV_USE_FREETYPE
static void freetype_outline_event_cb(lv_event_t * e);
static void draw_letter_outline(lv_draw_task_t * t, const lv_draw_glyph_dsc_t * dsc);
+ static void outline_iter_cb(void * user_data, uint8_t op_code, const float * data, uint32_t len);
#endif /* LV_USE_FREETYPE */
/**********************
@@ -135,6 +137,27 @@ void lv_draw_vg_lite_label(lv_draw_task_t * t, const lv_draw_label_dsc_t * dsc,
* STATIC FUNCTIONS
**********************/
+static inline bool init_buffer_from_glyph_dsc(vg_lite_buffer_t * buffer, lv_font_glyph_dsc_t * g_dsc)
+{
+ const void * glyph_bitmap = lv_font_get_glyph_static_bitmap(g_dsc);
+ if(!glyph_bitmap) {
+ return false;
+ }
+
+ if(!LV_VG_LITE_IS_ALIGNED(glyph_bitmap, 16)) {
+ LV_LOG_WARN("Glyph data %p is not aligned to 16 bytes", glyph_bitmap);
+ return false;
+ }
+
+ if(!LV_VG_LITE_IS_ALIGNED(g_dsc->stride, 16)) {
+ LV_LOG_WARN("Glyph stride %" LV_PRIu32 " is not aligned to 16 bytes", g_dsc->stride);
+ return false;
+ }
+
+ lv_vg_lite_buffer_init(buffer, glyph_bitmap, g_dsc->box_w, g_dsc->box_h, g_dsc->stride, VG_LITE_A8, false);
+ return true;
+}
+
static void draw_letter_cb(lv_draw_task_t * t, lv_draw_glyph_dsc_t * glyph_draw_dsc,
lv_draw_fill_dsc_t * fill_draw_dsc, const lv_area_t * fill_area)
{
@@ -146,12 +169,22 @@ static void draw_letter_cb(lv_draw_task_t * t, lv_draw_glyph_dsc_t * glyph_draw_
case LV_FONT_GLYPH_FORMAT_A3:
case LV_FONT_GLYPH_FORMAT_A4:
case LV_FONT_GLYPH_FORMAT_A8: {
- glyph_draw_dsc->glyph_data = lv_font_get_glyph_bitmap(glyph_draw_dsc->g, glyph_draw_dsc->_draw_buf);
- if(!glyph_draw_dsc->glyph_data) {
- return;
+ vg_lite_buffer_t src_buf;
+ if(lv_font_has_static_bitmap(glyph_draw_dsc->g->resolved_font)) {
+ if(!init_buffer_from_glyph_dsc(&src_buf, glyph_draw_dsc->g)) {
+ return;
+ }
+ }
+ else {
+ glyph_draw_dsc->glyph_data = lv_font_get_glyph_bitmap(glyph_draw_dsc->g, glyph_draw_dsc->_draw_buf);
+ if(!glyph_draw_dsc->glyph_data) {
+ return;
+ }
+
+ lv_vg_lite_buffer_from_draw_buf(&src_buf, glyph_draw_dsc->glyph_data);
}
- draw_letter_bitmap(t, glyph_draw_dsc);
+ draw_letter_bitmap(t, glyph_draw_dsc, &src_buf);
}
break;
@@ -213,50 +246,87 @@ static void draw_letter_cb(lv_draw_task_t * t, lv_draw_glyph_dsc_t * glyph_draw_
}
}
-static void draw_letter_bitmap(lv_draw_task_t * t, const lv_draw_glyph_dsc_t * dsc)
+static inline void convert_letter_matrix(vg_lite_matrix_t * matrix, const lv_draw_glyph_dsc_t * dsc)
{
- lv_area_t clip_area;
- lv_draw_vg_lite_unit_t * u = (lv_draw_vg_lite_unit_t *)t->draw_unit;
- if(!lv_area_intersect(&clip_area, &t->clip_area, dsc->letter_coords)) {
+ vg_lite_translate(dsc->letter_coords->x1, dsc->letter_coords->y1, matrix);
+
+ if(!dsc->rotation) {
return;
}
+ const lv_point_t pivot = {
+ .x = dsc->pivot.x,
+ .y = dsc->g->box_h + dsc->g->ofs_y
+ };
+ vg_lite_translate(pivot.x, pivot.y, matrix);
+ vg_lite_rotate(dsc->rotation / 10.0f, matrix);
+ vg_lite_translate(-pivot.x, -pivot.y, matrix);
+}
+
+static bool draw_letter_clip_areas(lv_draw_task_t * t, const lv_draw_glyph_dsc_t * dsc, lv_area_t * letter_area,
+ lv_area_t * cliped_area)
+{
+ *letter_area = *dsc->letter_coords;
+
+ if(dsc->rotation) {
+ const lv_point_t pivot = {
+ .x = dsc->pivot.x,
+ .y = dsc->g->box_h + dsc->g->ofs_y
+ };
+
+ lv_image_buf_get_transformed_area(
+ letter_area,
+ lv_area_get_width(dsc->letter_coords),
+ lv_area_get_height(dsc->letter_coords),
+ dsc->rotation,
+ LV_SCALE_NONE,
+ LV_SCALE_NONE,
+ &pivot);
+ lv_area_move(letter_area, dsc->letter_coords->x1, dsc->letter_coords->y1);
+ }
+
+ if(!lv_area_intersect(cliped_area, &t->clip_area, letter_area)) {
+ return false;
+ }
+
+ return true;
+}
+
+static void draw_letter_bitmap(lv_draw_task_t * t, const lv_draw_glyph_dsc_t * dsc, vg_lite_buffer_t * src_buf)
+{
LV_PROFILER_DRAW_BEGIN;
- const lv_area_t image_area = *dsc->letter_coords;
+ lv_area_t image_area;
+ lv_area_t clip_area;
+ if(!draw_letter_clip_areas(t, dsc, &image_area, &clip_area)) {
+ LV_PROFILER_DRAW_END;
+ return;
+ }
+
+ lv_draw_vg_lite_unit_t * u = (lv_draw_vg_lite_unit_t *)t->draw_unit;
vg_lite_matrix_t matrix = u->global_matrix;
-
- const bool is_rotated = dsc->rotation % 3600 != 0;
-
- if(!is_rotated) {
- vg_lite_translate(image_area.x1, image_area.y1, &matrix);
- }
- else {
- vg_lite_translate(image_area.x1 + dsc->pivot.x, image_area.y1 + (dsc->g->box_h + dsc->g->ofs_y), &matrix);
- vg_lite_rotate(dsc->rotation / 10.0f, &matrix);
- vg_lite_translate(-dsc->pivot.x, -dsc->g->box_h - dsc->g->ofs_y, &matrix);
- }
-
- vg_lite_buffer_t src_buf;
- const lv_draw_buf_t * draw_buf = dsc->glyph_data;
- lv_vg_lite_buffer_from_draw_buf(&src_buf, draw_buf);
+ convert_letter_matrix(&matrix, dsc);
const vg_lite_color_t color = lv_vg_lite_color(dsc->color, dsc->opa, true);
- /* If clipping is not required, blit directly */
- if(lv_area_is_in(&image_area, &t->clip_area, false)) {
- /* rect is used to crop the pixel-aligned padding area */
+ /* If rotation is not required, blit directly */
+ if(!dsc->rotation) {
vg_lite_rectangle_t rect = {
- .x = 0,
- .y = 0,
- .width = lv_area_get_width(&image_area),
- .height = lv_area_get_height(&image_area)
+ .x = clip_area.x1 - image_area.x1,
+ .y = clip_area.y1 - image_area.y1,
+ .width = lv_area_get_width(&clip_area),
+ .height = lv_area_get_height(&clip_area)
};
+ /* add offset for clipped area */
+ if(rect.x || rect.y) {
+ vg_lite_translate(rect.x, rect.y, &matrix);
+ }
+
lv_vg_lite_blit_rect(
&u->target_buffer,
- &src_buf,
+ src_buf,
&rect,
&matrix,
VG_LITE_BLEND_SRC_OVER,
@@ -267,21 +337,20 @@ static void draw_letter_bitmap(lv_draw_task_t * t, const lv_draw_glyph_dsc_t * d
lv_vg_lite_path_t * path = lv_vg_lite_path_get(u, VG_LITE_S16);
lv_vg_lite_path_append_rect(
path,
- clip_area.x1, clip_area.y1,
- lv_area_get_width(&clip_area), lv_area_get_height(&clip_area),
+ image_area.x1, image_area.y1,
+ lv_area_get_width(&image_area), lv_area_get_height(&image_area),
0);
- lv_vg_lite_path_set_bounding_box_area(path, &clip_area);
lv_vg_lite_path_end(path);
+ lv_vg_lite_path_set_bounding_box_area(path, &clip_area);
vg_lite_matrix_t path_matrix = u->global_matrix;
- if(is_rotated) vg_lite_rotate(dsc->rotation / 10.0f, &path_matrix);
lv_vg_lite_draw_pattern(
&u->target_buffer,
lv_vg_lite_path_get_path(path),
VG_LITE_FILL_EVEN_ODD,
&path_matrix,
- &src_buf,
+ src_buf,
&matrix,
VG_LITE_BLEND_SRC_OVER,
VG_LITE_PATTERN_COLOR,
@@ -298,8 +367,8 @@ static void draw_letter_bitmap(lv_draw_task_t * t, const lv_draw_glyph_dsc_t * d
lv_cache_entry_acquire_data(dsc->g->entry);
lv_vg_lite_pending_add(u->bitmap_font_pending, dsc->g);
}
- else {
- /* No caching, wait for GPU finish before releasing the data */
+ else if(!lv_font_has_static_bitmap(dsc->g->resolved_font)) {
+ /* If there is no caching or no static bitmap is used, wait for the GPU to finish before releasing the data. */
lv_vg_lite_finish(u);
}
@@ -317,80 +386,118 @@ static void bitmap_cache_release_cb(void * entry, void * user_data)
static void draw_letter_outline(lv_draw_task_t * t, const lv_draw_glyph_dsc_t * dsc)
{
- lv_draw_vg_lite_unit_t * u = (lv_draw_vg_lite_unit_t *)t->draw_unit;
- /* get clip area */
+ LV_PROFILER_DRAW_BEGIN;
+
+ lv_area_t letter_area;
lv_area_t path_clip_area;
- if(!lv_area_intersect(&path_clip_area, &t->clip_area, dsc->letter_coords)) {
+ if(!draw_letter_clip_areas(t, dsc, &letter_area, &path_clip_area)) {
+ LV_PROFILER_DRAW_END;
return;
}
- LV_PROFILER_DRAW_BEGIN;
+ lv_draw_vg_lite_unit_t * u = (lv_draw_vg_lite_unit_t *)t->draw_unit;
/* vg-lite bounding_box will crop the pixels on the edge, so +1px is needed here */
path_clip_area.x2++;
path_clip_area.y2++;
lv_vg_lite_path_t * outline = (lv_vg_lite_path_t *)dsc->glyph_data;
- const lv_point_t pos = {dsc->letter_coords->x1, dsc->letter_coords->y1};
+ const lv_point_t glyph_pos = {
+ dsc->letter_coords->x1 - dsc->g->ofs_x,
+ dsc->letter_coords->y1 + dsc->g->box_h + dsc->g->ofs_y
+ };
/* scale size */
const float scale = FT_F26DOT6_TO_PATH_SCALE(lv_freetype_outline_get_scale(dsc->g->resolved_font));
- const bool is_rotated = dsc->rotation % 3600 != 0;
+
+ const bool has_rotation_with_cliped = dsc->rotation && !lv_area_is_in(&letter_area, &t->clip_area, false);
/* calc convert matrix */
vg_lite_matrix_t matrix;
vg_lite_identity(&matrix);
- if(!is_rotated) {
- vg_lite_translate(pos.x - dsc->g->ofs_x, pos.y + dsc->g->box_h + dsc->g->ofs_y, &matrix);
- vg_lite_scale(scale, scale, &matrix);
- }
- else {
- vg_lite_translate(pos.x - dsc->g->ofs_x + dsc->pivot.x, pos.y + dsc->g->box_h + dsc->g->ofs_y, &matrix);
+ if(!has_rotation_with_cliped && dsc->rotation) {
+ vg_lite_translate(glyph_pos.x + dsc->pivot.x, glyph_pos.y, &matrix);
vg_lite_rotate(dsc->rotation / 10.0f, &matrix);
vg_lite_translate(-dsc->pivot.x, 0, &matrix);
- vg_lite_scale(scale, scale, &matrix);
- }
-
- if(vg_lite_query_feature(gcFEATURE_BIT_VG_SCISSOR)) {
- /* set scissor area */
- lv_vg_lite_set_scissor_area(&t->clip_area);
-
- /* no bounding box */
- lv_vg_lite_path_set_bounding_box(outline,
- (float)PATH_COORD_MIN, (float)PATH_COORD_MIN,
- (float)PATH_COORD_MAX, (float)PATH_COORD_MAX);
}
else {
- if(is_rotated) {
- LV_LOG_WARN("clip may be incorrect when vg_lite_query_feature(gcFEATURE_BIT_VG_SCISSOR) is false");
- }
-
- /* calc inverse matrix */
- vg_lite_matrix_t result;
- if(!lv_vg_lite_matrix_inverse(&result, &matrix)) {
- LV_LOG_ERROR("no inverse matrix");
- LV_PROFILER_DRAW_END;
- return;
- }
-
- const lv_point_precise_t p1 = { path_clip_area.x1, path_clip_area.y1 };
- const lv_point_precise_t p1_res = lv_vg_lite_matrix_transform_point(&result, &p1);
-
- const lv_point_precise_t p2 = { path_clip_area.x2, path_clip_area.y2 };
- const lv_point_precise_t p2_res = lv_vg_lite_matrix_transform_point(&result, &p2);
-
- /* Since the font uses Cartesian coordinates, the y coordinates need to be reversed */
- if(is_rotated)
- lv_vg_lite_path_set_bounding_box(outline,
- (float)PATH_COORD_MIN, (float)PATH_COORD_MIN,
- (float)PATH_COORD_MAX, (float)PATH_COORD_MAX);
- else lv_vg_lite_path_set_bounding_box(outline, p1_res.x, p2_res.y, p2_res.x, p1_res.y);
+ vg_lite_translate(glyph_pos.x, glyph_pos.y, &matrix);
}
+ vg_lite_scale(scale, scale, &matrix);
+
/* matrix for drawing, different from matrix for calculating the bounding box */
vg_lite_matrix_t draw_matrix = u->global_matrix;
lv_vg_lite_matrix_multiply(&draw_matrix, &matrix);
+ /* calc inverse matrix */
+ vg_lite_matrix_t result;
+ if(!lv_vg_lite_matrix_inverse(&result, &matrix)) {
+ LV_LOG_ERROR("no inverse matrix");
+ lv_vg_lite_matrix_dump_info(&matrix);
+ LV_PROFILER_DRAW_END;
+ return;
+ }
+
+ const lv_point_precise_t p1 = { path_clip_area.x1, path_clip_area.y1 };
+ const lv_point_precise_t p1_res = lv_vg_lite_matrix_transform_point(&result, &p1);
+ const lv_point_precise_t p2 = { path_clip_area.x2, path_clip_area.y2 };
+ const lv_point_precise_t p2_res = lv_vg_lite_matrix_transform_point(&result, &p2);
+
+ if(has_rotation_with_cliped) {
+ /**
+ * When intersecting the clipping region,
+ * rotate the path contents without rotating the bounding box for cropping
+ */
+ vg_lite_matrix_t internal_matrix;
+ vg_lite_identity(&internal_matrix);
+ const float pivot_x = dsc->pivot.x / scale;
+ const float pivot_y = dsc->g->box_h + dsc->g->ofs_y;
+ vg_lite_translate(pivot_x, pivot_y, &internal_matrix);
+ vg_lite_rotate(dsc->rotation / 10.0f, &internal_matrix);
+ vg_lite_translate(-pivot_x, -pivot_y, &internal_matrix);
+
+ lv_vg_lite_path_t * outline_transformed = lv_vg_lite_path_get(u, VG_LITE_FP32);
+ lv_vg_lite_path_set_transform(outline_transformed, &internal_matrix);
+ lv_vg_lite_path_for_each_data(lv_vg_lite_path_get_path(outline), outline_iter_cb, outline_transformed);
+ lv_vg_lite_path_set_bounding_box(outline_transformed, p1_res.x, p2_res.y, p2_res.x, p1_res.y);
+
+ lv_vg_lite_draw(
+ &u->target_buffer,
+ lv_vg_lite_path_get_path(outline_transformed),
+ VG_LITE_FILL_NON_ZERO,
+ &draw_matrix,
+ VG_LITE_BLEND_SRC_OVER,
+ lv_vg_lite_color(dsc->color, dsc->opa, true));
+
+ lv_vg_lite_path_drop(u, outline_transformed);
+
+ LV_PROFILER_DRAW_END;
+ return;
+ }
+
+ if(dsc->rotation) {
+ /* The bounding rectangle before scaling relative to the original coordinates of the path */
+ lv_area_t box_area;
+ box_area.x1 = dsc->g->ofs_x;
+ box_area.y1 = -dsc->g->box_h - dsc->g->ofs_y;
+ lv_area_set_width(&box_area, dsc->g->box_w);
+ lv_area_set_height(&box_area, dsc->g->box_h);
+
+ /* Workaround for loss of rotation precision */
+ lv_area_increase(&box_area, 5, 5);
+
+ /* Scale the path area to fit the original path data */
+ lv_vg_lite_path_set_bounding_box(outline,
+ box_area.x1 / scale,
+ box_area.y1 / scale,
+ box_area.x2 / scale,
+ box_area.y2 / scale);
+ }
+ else {
+ lv_vg_lite_path_set_bounding_box(outline, p1_res.x, p2_res.y, p2_res.x, p1_res.y);
+ }
+
lv_vg_lite_draw(
&u->target_buffer,
lv_vg_lite_path_get_path(outline),
@@ -463,6 +570,42 @@ static void freetype_outline_event_cb(lv_event_t * e)
LV_PROFILER_DRAW_END;
}
+static void outline_iter_cb(void * user_data, uint8_t op_code, const float * data, uint32_t len)
+{
+ LV_UNUSED(len);
+ typedef struct {
+ float x;
+ float y;
+ } point_t;
+
+ lv_vg_lite_path_t * path = user_data;
+ const point_t * pt = (point_t *)data;
+
+ switch(op_code) {
+ case VLC_OP_MOVE:
+ lv_vg_lite_path_move_to(path, pt->x, pt->y);
+ break;
+ case VLC_OP_LINE:
+ lv_vg_lite_path_line_to(path, pt->x, pt->y);
+ break;
+ case VLC_OP_QUAD:
+ lv_vg_lite_path_quad_to(path, pt[0].x, pt[0].y, pt[1].x, pt[1].y);
+ break;
+ case VLC_OP_CUBIC:
+ lv_vg_lite_path_cubic_to(path, pt[0].x, pt[0].y, pt[1].x, pt[1].y, pt[2].x, pt[2].y);
+ break;
+ case VLC_OP_CLOSE:
+ lv_vg_lite_path_close(path);
+ break;
+ case VLC_OP_END:
+ lv_vg_lite_path_end(path);
+ break;
+ default:
+ LV_ASSERT_FORMAT_MSG(false, "unknown op_code: %d", op_code);
+ break;
+ }
+}
+
#endif /* LV_USE_FREETYPE */
#endif /*LV_USE_DRAW_VG_LITE*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_draw_vg_lite_mask_rect.c b/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_draw_vg_lite_mask_rect.c
index 0620d981f..934d116da 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_draw_vg_lite_mask_rect.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_draw_vg_lite_mask_rect.c
@@ -1,5 +1,5 @@
/**
- * @file lv_draw_vg_lite_rect.c
+ * @file lv_draw_vg_lite_mask_rect.c
*
*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_draw_vg_lite_type.h b/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_draw_vg_lite_type.h
index 99569bea4..a5cc89961 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_draw_vg_lite_type.h
+++ b/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_draw_vg_lite_type.h
@@ -24,8 +24,12 @@ extern "C" {
#if LV_USE_VG_LITE_THORVG
#include "../../others/vg_lite_tvg/vg_lite.h"
#else
+#if LV_USE_VG_LITE_DRIVER
+#include "../../libs/vg_lite_driver/inc/vg_lite.h"
+#else
#include
#endif
+#endif
/*********************
* DEFINES
@@ -41,6 +45,7 @@ struct _lv_vg_lite_grad_ctx_t;
struct _lv_draw_vg_lite_unit_t {
lv_draw_unit_t base_unit;
lv_draw_task_t * task_act;
+ lv_area_t current_scissor_area;
struct _lv_vg_lite_pending_t * image_dsc_pending;
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_draw_vg_lite_vector.c b/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_draw_vg_lite_vector.c
index 46870434c..3dc4bc307 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_draw_vg_lite_vector.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_draw_vg_lite_vector.c
@@ -26,6 +26,8 @@
* DEFINES
*********************/
+#define OPA_MIX(opa1, opa2) LV_UDIV255((opa1) * (opa2))
+
/**********************
* TYPEDEFS
**********************/
@@ -37,7 +39,7 @@ typedef void (*path_drop_func_t)(struct _lv_draw_vg_lite_unit_t *, path_drop_dat
* STATIC PROTOTYPES
**********************/
-static void task_draw_cb(void * ctx, const lv_vector_path_t * path, const lv_vector_draw_dsc_t * dsc);
+static void task_draw_cb(void * user_data, const lv_vector_path_t * path, const lv_vector_path_ctx_t * ctx);
static void lv_path_to_vg(lv_vg_lite_path_t * dest, const lv_vector_path_t * src, lv_fpoint_t * offset,
float expand_bound);
static vg_lite_blend_t lv_blend_to_vg(lv_vector_blend_t blend);
@@ -55,7 +57,7 @@ static vg_lite_fill_t lv_fill_to_vg(lv_vector_fill_t fill_rule);
* GLOBAL FUNCTIONS
**********************/
-void lv_draw_vg_lite_vector(lv_draw_task_t * t, const lv_draw_vector_task_dsc_t * dsc)
+void lv_draw_vg_lite_vector(lv_draw_task_t * t, const lv_draw_vector_dsc_t * dsc)
{
if(dsc->task_list == NULL)
return;
@@ -88,15 +90,16 @@ static vg_lite_color_t lv_color32_to_vg(lv_color32_t color, lv_opa_t opa)
static void draw_fill(lv_draw_vg_lite_unit_t * u,
lv_vg_lite_path_t * lv_vg_path,
- const lv_vector_draw_dsc_t * dsc,
+ const lv_vector_path_ctx_t * ctx,
vg_lite_matrix_t * matrix,
- const lv_fpoint_t * offset)
+ const lv_fpoint_t * offset,
+ const lv_opa_t opa)
{
LV_PROFILER_DRAW_BEGIN;
- const vg_lite_color_t vg_color = lv_color32_to_vg(dsc->fill_dsc.color, dsc->fill_dsc.opa);
- const vg_lite_blend_t blend = lv_blend_to_vg(dsc->blend_mode);
- const vg_lite_fill_t fill = lv_fill_to_vg(dsc->fill_dsc.fill_rule);
+ const vg_lite_color_t vg_color = lv_color32_to_vg(ctx->fill_dsc.color, OPA_MIX(ctx->fill_dsc.opa, opa));
+ const vg_lite_blend_t blend = lv_blend_to_vg(ctx->blend_mode);
+ const vg_lite_fill_t fill = lv_fill_to_vg(ctx->fill_dsc.fill_rule);
/* If it is fill mode, the end op code should be added */
lv_vg_lite_path_end(lv_vg_path);
@@ -104,7 +107,7 @@ static void draw_fill(lv_draw_vg_lite_unit_t * u,
vg_lite_path_t * vg_path = lv_vg_lite_path_get_path(lv_vg_path);
LV_VG_LITE_ASSERT_PATH(vg_path);
- switch(dsc->fill_dsc.style) {
+ switch(ctx->fill_dsc.style) {
case LV_VECTOR_DRAW_STYLE_SOLID: {
/* normal draw shape */
lv_vg_lite_draw(
@@ -120,21 +123,32 @@ static void draw_fill(lv_draw_vg_lite_unit_t * u,
/* draw image */
vg_lite_buffer_t image_buffer;
lv_image_decoder_dsc_t decoder_dsc;
- if(lv_vg_lite_buffer_open_image(&image_buffer, &decoder_dsc, dsc->fill_dsc.img_dsc.src, false, true)) {
+ if(lv_vg_lite_buffer_open_image(&image_buffer, &decoder_dsc, ctx->fill_dsc.img_dsc.src, false, true)) {
/* Calculate pattern matrix. Should start from path bond box, and also apply fill matrix. */
vg_lite_matrix_t pattern_matrix = *matrix;
- if(dsc->fill_dsc.fill_units == LV_VECTOR_FILL_UNITS_OBJECT_BOUNDING_BOX) {
+ if(ctx->fill_dsc.fill_units == LV_VECTOR_FILL_UNITS_OBJECT_BOUNDING_BOX) {
/* Convert to object bounding box coordinates */
vg_lite_translate(offset->x, offset->y, &pattern_matrix);
}
vg_lite_matrix_t fill_matrix;
- lv_vg_lite_matrix(&fill_matrix, &dsc->fill_dsc.matrix);
+ lv_vg_lite_matrix(&fill_matrix, &ctx->fill_dsc.matrix);
lv_vg_lite_matrix_multiply(&pattern_matrix, &fill_matrix);
- vg_lite_color_t recolor = lv_vg_lite_image_recolor(&image_buffer, &dsc->fill_dsc.img_dsc);
+ const lv_draw_image_dsc_t * img_dsc = &ctx->fill_dsc.img_dsc;
+ lv_draw_image_dsc_t tmp_dsc;
+ if(opa < LV_OPA_COVER) {
+ tmp_dsc = ctx->fill_dsc.img_dsc;
+ tmp_dsc.opa = OPA_MIX(tmp_dsc.opa, opa);
+ img_dsc = &tmp_dsc;
+ }
+ vg_lite_color_t recolor = lv_vg_lite_image_recolor(&image_buffer, img_dsc);
+
+ if(ctx->fill_dsc.img_dsc.colorkey) {
+ lv_vg_lite_set_color_key(ctx->fill_dsc.img_dsc.colorkey);
+ }
lv_vg_lite_draw_pattern(
&u->target_buffer,
vg_path,
@@ -148,30 +162,36 @@ static void draw_fill(lv_draw_vg_lite_unit_t * u,
recolor,
VG_LITE_FILTER_BI_LINEAR);
+ if(ctx->fill_dsc.img_dsc.colorkey) {
+ lv_vg_lite_set_color_key(NULL);
+ }
+
lv_vg_lite_pending_add(u->image_dsc_pending, &decoder_dsc);
}
}
break;
case LV_VECTOR_DRAW_STYLE_GRADIENT: {
vg_lite_matrix_t grad_matrix = *matrix;
-
-#if LV_USE_VG_LITE_THORVG
- /* Workaround inconsistent radial gradient matrix behavior between device and ThorVG */
- if(dsc->fill_dsc.gradient.style == LV_VECTOR_GRADIENT_STYLE_RADIAL) {
- /* Restore matrix to identity */
- vg_lite_identity(&grad_matrix);
- }
-#endif
-
vg_lite_matrix_t fill_matrix;
- lv_vg_lite_matrix(&fill_matrix, &dsc->fill_dsc.matrix);
+ lv_vg_lite_matrix(&fill_matrix, &ctx->fill_dsc.matrix);
lv_vg_lite_matrix_multiply(&grad_matrix, &fill_matrix);
+ const lv_vector_gradient_t * gradient = &ctx->fill_dsc.gradient;
+ lv_vector_gradient_t tmp_gradient;
+ if(opa < LV_OPA_COVER) {
+ tmp_gradient = ctx->fill_dsc.gradient;
+ for(uint16_t i = 0; i < tmp_gradient.stops_count; i++) {
+ tmp_gradient.stops[i].opa = OPA_MIX(tmp_gradient.stops[i].opa, opa);
+ }
+
+ gradient = &tmp_gradient;
+ }
+
lv_vg_lite_draw_grad(
u->grad_ctx,
&u->target_buffer,
vg_path,
- &dsc->fill_dsc.gradient,
+ gradient,
&grad_matrix,
matrix,
fill,
@@ -179,7 +199,7 @@ static void draw_fill(lv_draw_vg_lite_unit_t * u,
}
break;
default:
- LV_LOG_WARN("unsupported style: %d", dsc->fill_dsc.style);
+ LV_LOG_WARN("unsupported style: %d", ctx->fill_dsc.style);
break;
}
@@ -189,15 +209,16 @@ static void draw_fill(lv_draw_vg_lite_unit_t * u,
static void draw_stroke(lv_draw_vg_lite_unit_t * u,
const lv_vector_path_t * path,
lv_vg_lite_path_t * lv_vg_path,
- const lv_vector_draw_dsc_t * dsc,
- vg_lite_matrix_t * matrix)
+ const lv_vector_path_ctx_t * ctx,
+ vg_lite_matrix_t * matrix,
+ const lv_opa_t opa)
{
LV_PROFILER_DRAW_BEGIN;
vg_lite_path_t * vg_path = lv_vg_lite_path_get_path(lv_vg_path);
LV_UNUSED(path);
- lv_cache_entry_t * stroke_cache_entey = lv_vg_lite_stroke_get(u, lv_vg_path, &dsc->stroke_dsc);
+ lv_cache_entry_t * stroke_cache_entey = lv_vg_lite_stroke_get(u, lv_vg_path, &ctx->stroke_dsc);
if(!stroke_cache_entey) {
LV_LOG_ERROR("convert stroke failed");
LV_PROFILER_DRAW_END;
@@ -208,16 +229,16 @@ static void draw_stroke(lv_draw_vg_lite_unit_t * u,
/* set stroke params */
vg_stroke_path->quality = vg_path->quality;
- vg_stroke_path->stroke_color = lv_color32_to_vg(dsc->stroke_dsc.color, dsc->stroke_dsc.opa);
+ vg_stroke_path->stroke_color = lv_color32_to_vg(ctx->stroke_dsc.color, OPA_MIX(ctx->stroke_dsc.opa, opa));
const vg_lite_color_t vg_color = 0;
/* set stroke path bounding box */
lv_memcpy(vg_stroke_path->bounding_box, vg_path->bounding_box, sizeof(vg_path->bounding_box));
LV_VG_LITE_ASSERT_PATH(vg_stroke_path);
- const vg_lite_blend_t blend = lv_blend_to_vg(dsc->blend_mode);
+ const vg_lite_blend_t blend = lv_blend_to_vg(ctx->blend_mode);
- switch(dsc->stroke_dsc.style) {
+ switch(ctx->stroke_dsc.style) {
case LV_VECTOR_DRAW_STYLE_SOLID: {
/* normal draw shape */
lv_vg_lite_draw(
@@ -230,7 +251,7 @@ static void draw_stroke(lv_draw_vg_lite_unit_t * u,
}
break;
default:
- LV_LOG_WARN("unsupported style: %d", dsc->stroke_dsc.style);
+ LV_LOG_WARN("unsupported style: %d", ctx->stroke_dsc.style);
break;
}
@@ -238,36 +259,27 @@ static void draw_stroke(lv_draw_vg_lite_unit_t * u,
LV_PROFILER_DRAW_END;
}
-static void task_draw_cb(void * ctx, const lv_vector_path_t * path, const lv_vector_draw_dsc_t * dsc)
+static void task_draw_cb(void * user_data, const lv_vector_path_t * path, const lv_vector_path_ctx_t * ctx)
{
LV_PROFILER_DRAW_BEGIN;
- lv_draw_vg_lite_unit_t * u = ctx;
+ lv_draw_vg_lite_unit_t * u = user_data;
LV_VG_LITE_ASSERT_DEST_BUFFER(&u->target_buffer);
vg_lite_matrix_t matrix = u->global_matrix;
const lv_area_t scissor_area = lv_matrix_is_identity((lv_matrix_t *)&matrix)
- ? dsc->scissor_area
- : lv_matrix_transform_area((lv_matrix_t *)&matrix, &dsc->scissor_area);
+ ? ctx->scissor_area
+ : lv_matrix_transform_area((lv_matrix_t *)&matrix, &ctx->scissor_area);
/* clear area */
if(!path) {
- /* clear color needs to ignore fill_dsc.opa */
- vg_lite_color_t c = lv_color32_to_vg(dsc->fill_dsc.color, dsc->fill_dsc.opa);
- vg_lite_rectangle_t rect;
- lv_vg_lite_rect(&rect, &scissor_area);
- LV_PROFILER_DRAW_BEGIN_TAG("vg_lite_clear");
- LV_VG_LITE_CHECK_ERROR(vg_lite_clear(&u->target_buffer, &rect, c), {
- lv_vg_lite_buffer_dump_info(&u->target_buffer);
- LV_LOG_ERROR("rect: X%d Y%d W%d H%d", rect.x, rect.y, rect.width, rect.height);
- lv_vg_lite_color_dump_info(c);
- });
- LV_PROFILER_DRAW_END_TAG("vg_lite_clear");
+ vg_lite_color_t c = lv_color32_to_vg(ctx->fill_dsc.color, OPA_MIX(ctx->fill_dsc.opa, u->task_act->opa));
+ lv_vg_lite_clear(&u->target_buffer, &scissor_area, c);
LV_PROFILER_DRAW_END;
return;
}
- if(dsc->fill_dsc.opa == LV_OPA_TRANSP && dsc->stroke_dsc.opa == LV_OPA_TRANSP) {
+ if(ctx->fill_dsc.opa == LV_OPA_TRANSP && ctx->stroke_dsc.opa == LV_OPA_TRANSP) {
LV_LOG_TRACE("Full transparent, no need to draw");
LV_PROFILER_DRAW_END;
return;
@@ -275,7 +287,7 @@ static void task_draw_cb(void * ctx, const lv_vector_path_t * path, const lv_vec
/* transform matrix */
vg_lite_matrix_t dsc_matrix;
- lv_vg_lite_matrix(&dsc_matrix, &dsc->matrix);
+ lv_vg_lite_matrix(&dsc_matrix, &ctx->matrix);
lv_vg_lite_matrix_multiply(&matrix, &dsc_matrix);
LV_VG_LITE_ASSERT_MATRIX(&matrix);
@@ -283,11 +295,11 @@ static void task_draw_cb(void * ctx, const lv_vector_path_t * path, const lv_vec
lv_vg_lite_path_t * lv_vg_path = lv_vg_lite_path_get(u, VG_LITE_FP32);
lv_fpoint_t offset = {0, 0};
- lv_path_to_vg(lv_vg_path, path, &offset, dsc->stroke_dsc.opa ? dsc->stroke_dsc.width : 0);
+ lv_path_to_vg(lv_vg_path, path, &offset, ctx->stroke_dsc.opa ? ctx->stroke_dsc.width : 0);
if(vg_lite_query_feature(gcFEATURE_BIT_VG_SCISSOR)) {
/* set scissor area */
- lv_vg_lite_set_scissor_area(&scissor_area);
+ lv_vg_lite_set_scissor_area(u, &scissor_area);
LV_LOG_TRACE("Set scissor area: X1:%" LV_PRId32 ", Y1:%" LV_PRId32 ", X2:%" LV_PRId32 ", Y2:%" LV_PRId32,
scissor_area.x1, scissor_area.y1, scissor_area.x2, scissor_area.y2);
}
@@ -313,12 +325,14 @@ static void task_draw_cb(void * ctx, const lv_vector_path_t * path, const lv_vec
lv_vg_lite_path_set_bounding_box(lv_vg_path, p1_res.x, p1_res.y, p2_res.x, p2_res.y);
}
- if(dsc->fill_dsc.opa) {
- draw_fill(u, lv_vg_path, dsc, &matrix, &offset);
+ const lv_opa_t layer_opa = u->task_act->opa;
+
+ if(ctx->fill_dsc.opa) {
+ draw_fill(u, lv_vg_path, ctx, &matrix, &offset, layer_opa);
}
- if(dsc->stroke_dsc.opa) {
- draw_stroke(u, path, lv_vg_path, dsc, &matrix);
+ if(ctx->stroke_dsc.opa) {
+ draw_stroke(u, path, lv_vg_path, ctx, &matrix, layer_opa);
}
/* drop path */
@@ -352,8 +366,8 @@ static void lv_path_to_vg(lv_vg_lite_path_t * dest, const lv_vector_path_t * src
float min_x = FLT_MAX;
float min_y = FLT_MAX;
- float max_x = FLT_MIN;
- float max_y = FLT_MIN;
+ float max_x = -FLT_MAX;
+ float max_y = -FLT_MAX;
#define CMP_BOUNDS(point) \
do { \
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_vg_lite_grad.c b/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_vg_lite_grad.c
index 46d0c0507..e5fb595bf 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_vg_lite_grad.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_vg_lite_grad.c
@@ -40,7 +40,10 @@ typedef enum {
GRAD_TYPE_UNKNOWN,
} grad_type_t;
+struct _lv_vg_lite_grad_ctx_t;
+
typedef struct {
+ struct _lv_vg_lite_grad_ctx_t * ctx;
grad_type_t type;
lv_vector_gradient_t lv;
union {
@@ -56,8 +59,7 @@ typedef struct _lv_vg_lite_grad_ctx_t {
struct _lv_draw_vg_lite_unit_t * unit;
lv_cache_t * cache;
struct _lv_vg_lite_pending_t * pending;
- grad_item_t * item_pool;
- uint32_t item_pool_size;
+ lv_ll_t item_pool;
/**
* Temporary reuse of data to reduce the use of
@@ -111,9 +113,7 @@ struct _lv_vg_lite_grad_ctx_t * lv_vg_lite_grad_ctx_create(uint32_t cache_cnt, s
LV_ASSERT_MALLOC(ctx);
ctx->unit = unit;
- ctx->item_pool = lv_malloc_zeroed(cache_cnt * sizeof(grad_item_t));
- LV_ASSERT_MALLOC(ctx->item_pool);
- ctx->item_pool_size = cache_cnt;
+ lv_ll_init(&ctx->item_pool, sizeof(grad_item_t));
ctx->cache = lv_cache_create(&lv_cache_class_lru_ll_count, sizeof(grad_item_ref_t), cache_cnt, ops);
lv_cache_set_name(ctx->cache, "VG_GRAD");
@@ -128,7 +128,7 @@ void lv_vg_lite_grad_ctx_delete(struct _lv_vg_lite_grad_ctx_t * ctx)
LV_ASSERT_NULL(ctx);
lv_vg_lite_pending_destroy(ctx->pending);
lv_cache_destroy(ctx->cache, NULL);
- lv_free(ctx->item_pool);
+ lv_ll_clear(&ctx->item_pool);
lv_memzero(ctx, sizeof(lv_vg_lite_grad_ctx_t));
lv_free(ctx);
@@ -140,6 +140,12 @@ struct _lv_vg_lite_pending_t * lv_vg_lite_grad_ctx_get_pending(struct _lv_vg_lit
return ctx->pending;
}
+struct _lv_cache_t * lv_vg_lite_grad_ctx_get_cache(struct _lv_vg_lite_grad_ctx_t * ctx)
+{
+ LV_ASSERT_NULL(ctx);
+ return ctx->cache;
+}
+
bool lv_vg_lite_draw_grad(
struct _lv_vg_lite_grad_ctx_t * ctx,
vg_lite_buffer_t * buffer,
@@ -160,13 +166,13 @@ bool lv_vg_lite_draw_grad(
/* check radial gradient is supported */
if(grad->style == LV_VECTOR_GRADIENT_STYLE_RADIAL) {
if(!vg_lite_query_feature(gcFEATURE_BIT_VG_RADIAL_GRADIENT)) {
- LV_LOG_INFO("radial gradient is not supported");
+ LV_LOG_WARN("radial gradient is not supported");
return false;
}
/* check if the radius is valid */
if(grad->cr <= 0) {
- LV_LOG_INFO("radius: %f is not valid", grad->cr);
+ LV_LOG_WARN("radius: %f is not valid", grad->cr);
return false;
}
}
@@ -174,7 +180,7 @@ bool lv_vg_lite_draw_grad(
/* check spread mode is supported */
if(grad->spread == LV_VECTOR_GRADIENT_SPREAD_REPEAT || grad->spread == LV_VECTOR_GRADIENT_SPREAD_REFLECT) {
if(!vg_lite_query_feature(gcFEATURE_BIT_VG_IM_REPEAT_REFLECT)) {
- LV_LOG_INFO("repeat/reflect spread(%d) is not supported", grad->spread);
+ LV_LOG_WARN("repeat/reflect spread(%d) is not supported", grad->spread);
return false;
}
}
@@ -191,8 +197,7 @@ bool lv_vg_lite_draw_grad(
vg_lite_linear_gradient_t * linear_grad = &grad_item->vg.linear;
vg_lite_matrix_t * grad_mat_p = vg_lite_get_grad_matrix(linear_grad);
LV_ASSERT_NULL(grad_mat_p);
- vg_lite_identity(grad_mat_p);
- lv_vg_lite_matrix_multiply(grad_mat_p, grad_matrix);
+ *grad_mat_p = *grad_matrix;
grad_point_to_matrix(grad_mat_p, grad->x1, grad->y1, grad->x2, grad->y2);
LV_PROFILER_DRAW_BEGIN_TAG("vg_lite_draw_grad");
@@ -307,7 +312,6 @@ bool lv_vg_lite_draw_grad_helper(
lv_memcpy(grad.stops, grad_dsc->stops, sizeof(lv_grad_stop_t) * grad_dsc->stops_count);
/*convert to spread mode*/
-#if LV_USE_DRAW_SW_COMPLEX_GRADIENTS
switch(grad_dsc->extend) {
case LV_GRAD_EXTEND_PAD:
grad.spread = LV_VECTOR_GRADIENT_SPREAD_PAD;
@@ -323,9 +327,6 @@ bool lv_vg_lite_draw_grad_helper(
grad.spread = LV_VECTOR_GRADIENT_SPREAD_PAD;
break;
}
-#else
- grad.spread = LV_VECTOR_GRADIENT_SPREAD_PAD;
-#endif
switch(grad_dsc->dir) {
case LV_GRAD_DIR_VER:
@@ -342,7 +343,6 @@ bool lv_vg_lite_draw_grad_helper(
grad.y2 = area->y1;
break;
-#if LV_USE_DRAW_SW_COMPLEX_GRADIENTS
case LV_GRAD_DIR_LINEAR: {
int32_t w = lv_area_get_width(area);
int32_t h = lv_area_get_height(area);
@@ -366,7 +366,6 @@ bool lv_vg_lite_draw_grad_helper(
grad.cr = LV_MAX(end_extent_x - grad.cx, end_extent_y - grad.cy);
}
break;
-#endif
default:
LV_LOG_WARN("Unsupported gradient direction: %d", grad_dsc->dir);
@@ -420,21 +419,42 @@ static grad_item_t * grad_get(lv_vg_lite_grad_ctx_t * ctx, const lv_vector_gradi
static grad_item_t * grad_item_pool_alloc(lv_vg_lite_grad_ctx_t * ctx, grad_type_t type)
{
LV_ASSERT_NULL(ctx);
- for(uint32_t i = 0; i < ctx->item_pool_size; i++) {
- if(ctx->item_pool[i].type == GRAD_TYPE_FREE) {
- ctx->item_pool[i].type = type;
- return &ctx->item_pool[i];
+
+ grad_item_t * item = lv_ll_get_head(&ctx->item_pool);
+
+ /* Try to obtain a free node from the head */
+ if(item && item->type == GRAD_TYPE_FREE) {
+ lv_ll_move_before(&ctx->item_pool, item, NULL);
+ LV_LOG_TRACE("reuse item: %p, type: %d", (void *)item, type);
+ }
+ else {
+ /* Allocate a new node if the pool is empty or all nodes are in use */
+ item = lv_ll_ins_tail(&ctx->item_pool);
+ LV_ASSERT_MALLOC(item);
+ if(!item) {
+ LV_LOG_ERROR("alloc grad item failed");
+ return NULL;
}
+
+ LV_LOG_TRACE("alloc new item: %p, type: %d, pool size: %" LV_PRIu32,
+ (void *)item, type, lv_ll_get_len(&ctx->item_pool));
}
- LV_LOG_WARN("alloc grad item failed, no free slot");
- return NULL;
+ lv_memzero(item, sizeof(grad_item_t));
+ item->ctx = ctx;
+ item->type = type;
+ return item;
}
static void grad_item_pool_free(grad_item_t * item)
{
LV_ASSERT_NULL(item);
+ LV_ASSERT_NULL(item->ctx);
+
+ /* Move the free nodes to the head to ensure quick allocation */
item->type = GRAD_TYPE_FREE;
+ grad_item_t * head = lv_ll_get_head(&item->ctx->item_pool);
+ lv_ll_move_before(&item->ctx->item_pool, item, head);
}
static void grad_cache_release_cb(void * entry, void * user_data)
@@ -608,7 +628,11 @@ static bool radial_grad_create(grad_item_t * item, vg_lite_color_ramp_t * color_
static grad_type_t lv_grad_style_to_type(lv_vector_gradient_style_t style)
{
if(style == LV_VECTOR_GRADIENT_STYLE_LINEAR) {
+#if LV_VG_LITE_DISABLE_LINEAR_GRADIENT_EXT
+ return GRAD_TYPE_LINEAR;
+#else
return vg_lite_query_feature(gcFEATURE_BIT_VG_LINEAR_GRADIENT_EXT) ? GRAD_TYPE_LINEAR_EXT : GRAD_TYPE_LINEAR;
+#endif
}
if(style == LV_VECTOR_GRADIENT_STYLE_RADIAL) {
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_vg_lite_grad.h b/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_vg_lite_grad.h
index 7688bc530..4195701f0 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_vg_lite_grad.h
+++ b/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_vg_lite_grad.h
@@ -51,6 +51,12 @@ void lv_vg_lite_grad_ctx_delete(struct _lv_vg_lite_grad_ctx_t * ctx);
*/
struct _lv_vg_lite_pending_t * lv_vg_lite_grad_ctx_get_pending(struct _lv_vg_lite_grad_ctx_t * ctx);
+/**
+ * @brief Get the cache of gradient items
+ * @param ctx the gradient context
+ */
+struct _lv_cache_t * lv_vg_lite_grad_ctx_get_cache(struct _lv_vg_lite_grad_ctx_t * ctx);
+
/**
* @brief Draw a gradient
* @param ctx the gradient context
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_vg_lite_math.c b/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_vg_lite_math.c
index 25a416bf8..0c9bd8ebc 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_vg_lite_math.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_vg_lite_math.c
@@ -1,5 +1,5 @@
/**
- * @file lv_vg_lite_math.h
+ * @file lv_vg_lite_math.c
*
*/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_vg_lite_path.c b/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_vg_lite_path.c
index 0a06485a0..ea49cf86d 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_vg_lite_path.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_vg_lite_path.c
@@ -228,8 +228,8 @@ bool lv_vg_lite_path_update_bounding_box(lv_vg_lite_path_t * path)
/* init bounds */
bounds.min_x = FLT_MAX;
bounds.min_y = FLT_MAX;
- bounds.max_x = FLT_MIN;
- bounds.max_y = FLT_MIN;
+ bounds.max_x = -FLT_MAX;
+ bounds.max_y = -FLT_MAX;
/* calc bounds */
lv_vg_lite_path_for_each_data(lv_vg_lite_path_get_path(path), path_bounds_iter_cb, &bounds);
@@ -398,8 +398,12 @@ void lv_vg_lite_path_cubic_to(lv_vg_lite_path_t * path,
void lv_vg_lite_path_close(lv_vg_lite_path_t * path)
{
LV_ASSERT_NULL(path);
+#if LV_VG_LITE_DISABLE_VLC_OP_CLOSE
+ LV_UNUSED(path);
+#else
lv_vg_lite_path_reserve_space(path, 1 * path->format_len);
lv_vg_lite_path_append_op(path, VLC_OP_CLOSE);
+#endif
}
void lv_vg_lite_path_end(lv_vg_lite_path_t * path)
@@ -643,6 +647,7 @@ void lv_vg_lite_path_for_each_data(const vg_lite_path_t * path, lv_vg_lite_path_
{
LV_ASSERT_NULL(path);
LV_ASSERT_NULL(cb);
+ LV_PROFILER_DRAW_BEGIN;
uint8_t fmt_len = lv_vg_lite_path_format_len(path->format);
uint8_t * cur = path->path;
@@ -684,6 +689,8 @@ void lv_vg_lite_path_for_each_data(const vg_lite_path_t * path, lv_vg_lite_path_
cb(user_data, op_code, tmp_data, arg_len);
}
+
+ LV_PROFILER_DRAW_END;
}
void lv_vg_lite_path_append_path(lv_vg_lite_path_t * dest, const lv_vg_lite_path_t * src)
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_vg_lite_path.h b/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_vg_lite_path.h
index a9ffee3dc..09ac1d278 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_vg_lite_path.h
+++ b/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_vg_lite_path.h
@@ -23,20 +23,6 @@ extern "C" {
* DEFINES
*********************/
-#if LV_USE_VG_LITE_THORVG
-/**
-* It is found that thorvg cannot handle large coordinates well.
-* When the coordinates are larger than 4096, the calculation of tvgSwRle module will overflow in 32-bit system.
-* So we use FLT_MAX and FLT_MIN to write the mark to bounding_box to tell vg_lite_tvg not to add clip path to the current path.
-*/
-#define PATH_COORD_MAX FLT_MAX
-#define PATH_COORD_MIN FLT_MIN
-#else
-/* 18 bits is enough to represent the coordinates of path bounding box */
-#define PATH_COORD_MAX (1 << 18)
-#define PATH_COORD_MIN (-PATH_COORD_MAX)
-#endif
-
#define LV_VG_LITE_PATH_SET_OP_CODE(PTR, TYPE, OP_CODE) (*((TYPE*)PTR) = (OP_CODE))
#define LV_VG_LITE_PATH_GET_OP_CODE(PTR) (*((uint8_t*)PTR))
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_vg_lite_utils.c b/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_vg_lite_utils.c
index 56c2da4d1..62e6cfea5 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_vg_lite_utils.c
+++ b/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_vg_lite_utils.c
@@ -1,5 +1,5 @@
/**
- * @file vg_lite_utils.c
+ * @file lv_vg_lite_utils.c
*
*/
@@ -17,6 +17,7 @@
#include "lv_vg_lite_pending.h"
#include "lv_vg_lite_grad.h"
#include "lv_draw_vg_lite_type.h"
+#include "../../misc/lv_area_private.h"
#include
#include
@@ -40,6 +41,8 @@
case (gcFEATURE_BIT_VG_##e): \
return #e
+#define LV_VG_LITE_IMAGE_FLAGS_TILED LV_IMAGE_FLAGS_USER1
+
/**********************
* TYPEDEFS
**********************/
@@ -158,7 +161,7 @@ const char * lv_vg_lite_error_string(vg_lite_error_t error)
default:
break;
}
- return "UNKNOW_ERROR";
+ return "UNKNOWN_ERROR";
}
const char * lv_vg_lite_feature_string(vg_lite_feature_t feature)
@@ -213,7 +216,7 @@ const char * lv_vg_lite_feature_string(vg_lite_feature_t feature)
default:
break;
}
- return "UNKNOW_FEATURE";
+ return "UNKNOWN_FEATURE";
}
const char * lv_vg_lite_buffer_format_string(vg_lite_buffer_format_t format)
@@ -271,7 +274,7 @@ const char * lv_vg_lite_buffer_format_string(vg_lite_buffer_format_t format)
default:
break;
}
- return "UNKNOW_BUFFER_FORMAT";
+ return "UNKNOWN_BUFFER_FORMAT";
}
const char * lv_vg_lite_vlc_op_string(uint8_t vlc_op)
@@ -299,7 +302,7 @@ const char * lv_vg_lite_vlc_op_string(uint8_t vlc_op)
default:
break;
}
- return "UNKNOW_VLC_OP";
+ return "UNKNOWN_VLC_OP";
}
static void path_data_print_cb(void * user_data, uint8_t op_code, const float * data, uint32_t len)
@@ -478,6 +481,7 @@ bool lv_vg_lite_is_dest_cf_supported(lv_color_format_t cf)
case LV_COLOR_FORMAT_L8:
case LV_COLOR_FORMAT_RGB565:
case LV_COLOR_FORMAT_ARGB8888:
+ case LV_COLOR_FORMAT_ARGB8888_PREMULTIPLIED:
case LV_COLOR_FORMAT_XRGB8888:
case LV_COLOR_FORMAT_ARGB1555:
case LV_COLOR_FORMAT_ARGB4444:
@@ -503,6 +507,7 @@ bool lv_vg_lite_is_src_cf_supported(lv_color_format_t cf)
case LV_COLOR_FORMAT_L8:
case LV_COLOR_FORMAT_RGB565:
case LV_COLOR_FORMAT_ARGB8888:
+ case LV_COLOR_FORMAT_ARGB8888_PREMULTIPLIED:
case LV_COLOR_FORMAT_XRGB8888:
case LV_COLOR_FORMAT_ARGB1555:
case LV_COLOR_FORMAT_ARGB4444:
@@ -579,10 +584,13 @@ vg_lite_buffer_format_t lv_vg_lite_vg_fmt(lv_color_format_t cf)
case LV_COLOR_FORMAT_RGB888:
return VG_LITE_BGR888;
+ /**
+ * The lv_vg_lite_blend_mode function will automatically select the appropriate blend mode,
+ * which is uniformly mapped to VG_LITE_BGRA8888 here.
+ */
case LV_COLOR_FORMAT_ARGB8888:
- return VG_LITE_BGRA8888;
case LV_COLOR_FORMAT_ARGB8888_PREMULTIPLIED:
- return VG_sBGRA_8888_PRE;
+ return VG_LITE_BGRA8888;
case LV_COLOR_FORMAT_XRGB8888:
return VG_LITE_BGRX8888;
@@ -645,7 +653,6 @@ void lv_vg_lite_buffer_format_bytes(
case VG_LITE_BGRX8888:
case VG_LITE_XBGR8888:
case VG_LITE_XRGB8888:
- case VG_sBGRA_8888_PRE:
*mul = 4;
break;
case VG_LITE_NV12:
@@ -694,22 +701,15 @@ void lv_vg_lite_buffer_format_bytes(
uint32_t lv_vg_lite_width_to_stride(uint32_t w, vg_lite_buffer_format_t color_format)
{
- w = lv_vg_lite_width_align(w);
+ if(vg_lite_query_feature(gcFEATURE_BIT_VG_16PIXELS_ALIGN)) {
+ w = LV_VG_LITE_ALIGN(w, 16);
+ }
uint32_t mul, div, align;
lv_vg_lite_buffer_format_bytes(color_format, &mul, &div, &align);
return LV_VG_LITE_ALIGN(((w * mul + div - 1) / div), align);
}
-uint32_t lv_vg_lite_width_align(uint32_t w)
-{
- if(lv_vg_lite_16px_align()) {
- w = LV_VG_LITE_ALIGN(w, 16);
- }
-
- return w;
-}
-
void lv_vg_lite_buffer_init(
vg_lite_buffer_t * buffer,
const void * ptr,
@@ -719,9 +719,6 @@ void lv_vg_lite_buffer_init(
vg_lite_buffer_format_t format,
bool tiled)
{
- uint32_t mul;
- uint32_t div;
- uint32_t align;
LV_ASSERT_NULL(buffer);
LV_ASSERT_NULL(ptr);
@@ -734,13 +731,26 @@ void lv_vg_lite_buffer_init(
else {
buffer->tiled = VG_LITE_LINEAR;
}
- buffer->image_mode = VG_LITE_NORMAL_IMAGE_MODE;
+
+ if(buffer->tiled) {
+ LV_ASSERT_FORMAT_MSG(LV_VG_LITE_IS_ALIGNED(width, 4) &&
+ LV_VG_LITE_IS_ALIGNED(height, 4),
+ "width : %" LV_PRId32 ", height : %" LV_PRId32, width, height);
+ }
+
+ /* Alpha image need to be multiplied by color */
+ if(format == VG_LITE_A8 || format == VG_LITE_A4) {
+ buffer->image_mode = VG_LITE_MULTIPLY_IMAGE_MODE;
+ }
+ else {
+ buffer->image_mode = VG_LITE_NORMAL_IMAGE_MODE;
+ }
+
buffer->transparency_mode = VG_LITE_IMAGE_OPAQUE;
buffer->width = width;
buffer->height = height;
if(stride == LV_STRIDE_AUTO) {
- lv_vg_lite_buffer_format_bytes(buffer->format, &mul, &div, &align);
- buffer->stride = LV_VG_LITE_ALIGN((buffer->width * mul / div), align);
+ buffer->stride = lv_vg_lite_width_to_stride(width, buffer->format);
}
else {
buffer->stride = stride;
@@ -781,14 +791,9 @@ void lv_vg_lite_buffer_from_draw_buf(vg_lite_buffer_t * buffer, const lv_draw_bu
ptr += LV_VG_LITE_ALIGN(palette_size_bytes, LV_DRAW_BUF_ALIGN);
}
- width = lv_vg_lite_width_align(width);
-
- lv_vg_lite_buffer_init(buffer, ptr, width, height, stride, format, false);
-
- /* Alpha image need to be multiplied by color */
- if(LV_COLOR_FORMAT_IS_ALPHA_ONLY(draw_buf->header.cf)) {
- buffer->image_mode = VG_LITE_MULTIPLY_IMAGE_MODE;
- }
+ lv_vg_lite_buffer_init(buffer, ptr,
+ width, height, stride, format,
+ lv_draw_buf_has_flag(draw_buf, LV_VG_LITE_IMAGE_FLAGS_TILED));
}
void lv_vg_lite_image_matrix(vg_lite_matrix_t * matrix, int32_t x, int32_t y, const lv_draw_image_dsc_t * dsc)
@@ -952,7 +957,7 @@ vg_lite_color_t lv_vg_lite_color(lv_color_t color, lv_opa_t opa, bool pre_mul)
vg_lite_blend_t lv_vg_lite_blend_mode(lv_blend_mode_t blend_mode, bool has_pre_mul)
{
- if(!has_pre_mul && vg_lite_query_feature(gcFEATURE_BIT_VG_LVGL_SUPPORT)) {
+ if(!has_pre_mul && lv_vg_lite_support_blend_normal()) {
switch(blend_mode) {
case LV_BLEND_MODE_NORMAL: /**< Simply mix according to the opacity value*/
return VG_LITE_BLEND_NORMAL_LVGL;
@@ -973,9 +978,6 @@ vg_lite_blend_t lv_vg_lite_blend_mode(lv_blend_mode_t blend_mode, bool has_pre_m
switch(blend_mode) {
case LV_BLEND_MODE_NORMAL: /**< Simply mix according to the opacity value*/
- if(!has_pre_mul && vg_lite_query_feature(gcFEATURE_BIT_VG_HW_PREMULTIPLY)) {
- return VG_LITE_BLEND_PREMULTIPLY_SRC_OVER;
- }
return VG_LITE_BLEND_SRC_OVER;
case LV_BLEND_MODE_ADDITIVE: /**< Add the respective color channels*/
@@ -994,11 +996,6 @@ vg_lite_blend_t lv_vg_lite_blend_mode(lv_blend_mode_t blend_mode, bool has_pre_m
bool lv_vg_lite_buffer_check(const vg_lite_buffer_t * buffer, bool is_src)
{
- uint32_t mul;
- uint32_t div;
- uint32_t align;
- int32_t stride;
-
if(!buffer) {
LV_LOG_ERROR("buffer is NULL");
return false;
@@ -1024,21 +1021,59 @@ bool lv_vg_lite_buffer_check(const vg_lite_buffer_t * buffer, bool is_src)
return false;
}
- if(is_src && buffer->width != (vg_lite_int32_t)lv_vg_lite_width_align(buffer->width)) {
- LV_LOG_ERROR("buffer width(%d) is not aligned", (int)buffer->width);
+ if(buffer->tiled == VG_LITE_TILED) {
+ if(!LV_VG_LITE_IS_ALIGNED(buffer->width, 4) || !LV_VG_LITE_IS_ALIGNED(buffer->height, 4)) {
+ LV_LOG_ERROR("tiled buffer width(%d) or height(%d) is not aligned to 4", (int)buffer->width, (int)buffer->height);
+ return false;
+ }
+ }
+
+ int memory_align = LV_DRAW_BUF_ALIGN;
+ if(is_src) {
+ switch(buffer->format) {
+ case VG_LITE_INDEX_1:
+ case VG_LITE_INDEX_2:
+ case VG_LITE_INDEX_4:
+ case VG_LITE_A4:
+ memory_align = 8;
+ break;
+
+ case VG_LITE_INDEX_8:
+ case VG_LITE_A8:
+ case VG_LITE_L8:
+ case VG_LITE_RGBA2222:
+ case VG_LITE_BGRA2222:
+ case VG_LITE_ABGR2222:
+ case VG_LITE_ARGB2222:
+ memory_align = 16;
+ break;
+
+ case VG_LITE_ABGR1555:
+ case VG_LITE_ARGB1555:
+ case VG_LITE_BGRA5551:
+ case VG_LITE_RGBA5551:
+ case VG_LITE_RGBA4444:
+ case VG_LITE_BGRA4444:
+ case VG_LITE_ABGR4444:
+ case VG_LITE_ARGB4444:
+ case VG_LITE_RGB565:
+ case VG_LITE_BGR565:
+ memory_align = 32;
+ break;
+
+ default:
+ break;
+ }
+ }
+
+ if(!LV_VG_LITE_IS_ALIGNED(buffer->memory, memory_align)) {
+ LV_LOG_ERROR("buffer address(%p) is not aligned to %d", buffer->memory, memory_align);
return false;
}
- if(!LV_VG_LITE_IS_ALIGNED(buffer->memory, LV_DRAW_BUF_ALIGN)) {
- LV_LOG_ERROR("buffer address(%p) is not aligned to %d", buffer->memory, LV_DRAW_BUF_ALIGN);
- return false;
- }
-
- lv_vg_lite_buffer_format_bytes(buffer->format, &mul, &div, &align);
- stride = LV_VG_LITE_ALIGN((buffer->width * mul / div), align);
-
- if(buffer->stride != stride) {
- LV_LOG_ERROR("buffer stride(%d) != %d", (int)buffer->stride, (int)stride);
+ const uint32_t stride = lv_vg_lite_width_to_stride(buffer->width, buffer->format);
+ if(buffer->stride < 0 || (uint32_t)buffer->stride != stride) {
+ LV_LOG_ERROR("buffer stride(%d) != expected(%d)", (int)buffer->stride, (int)stride);
return false;
}
@@ -1161,20 +1196,7 @@ bool lv_vg_lite_matrix_check(const vg_lite_matrix_t * matrix)
bool lv_vg_lite_support_blend_normal(void)
{
- if(vg_lite_query_feature(gcFEATURE_BIT_VG_HW_PREMULTIPLY)) {
- return true;
- }
-
- if(vg_lite_query_feature(gcFEATURE_BIT_VG_LVGL_SUPPORT)) {
- return true;
- }
-
- return false;
-}
-
-bool lv_vg_lite_16px_align(void)
-{
- return vg_lite_query_feature(gcFEATURE_BIT_VG_16PIXELS_ALIGN);
+ return vg_lite_query_feature(gcFEATURE_BIT_VG_LVGL_SUPPORT);
}
void lv_vg_lite_matrix_multiply(vg_lite_matrix_t * matrix, const vg_lite_matrix_t * mult)
@@ -1262,9 +1284,16 @@ lv_point_precise_t lv_vg_lite_matrix_transform_point(const vg_lite_matrix_t * ma
return p;
}
-void lv_vg_lite_set_scissor_area(const lv_area_t * area)
+void lv_vg_lite_set_scissor_area(struct _lv_draw_vg_lite_unit_t * u, const lv_area_t * area)
{
LV_PROFILER_DRAW_BEGIN;
+
+ /* Avoid setting the same scissor frequently */
+ if(lv_area_is_equal(area, &u->current_scissor_area)) {
+ LV_PROFILER_DRAW_END;
+ return;
+ }
+
#if VGLITE_RELEASE_VERSION <= VGLITE_MAKE_VERSION(4,0,57)
/**
* In the new version of VG-Lite, vg_lite_set_scissor no longer needs to call vg_lite_enable_scissor and
@@ -1287,6 +1316,8 @@ void lv_vg_lite_set_scissor_area(const lv_area_t * area)
LV_LOG_ERROR("area: %d, %d, %d, %d",
(int)area->x1, (int)area->y1, (int)area->x2, (int)area->y2);
});
+
+ u->current_scissor_area = *area;
LV_PROFILER_DRAW_END;
}
@@ -1363,11 +1394,39 @@ void lv_vg_lite_finish(struct _lv_draw_vg_lite_unit_t * u)
/* Clear bitmap font dsc reference */
lv_vg_lite_pending_remove_all(u->bitmap_font_pending);
+ /* Reset scissor area */
+ lv_memzero(&u->current_scissor_area, sizeof(u->current_scissor_area));
+
u->flush_count = 0;
u->letter_count = 0;
LV_PROFILER_DRAW_END;
}
+void lv_vg_lite_set_color_key(const lv_image_colorkey_t * colorkey)
+{
+ if(!vg_lite_query_feature(gcFEATURE_BIT_VG_COLOR_KEY)) {
+ LV_LOG_TRACE("vg_lite_set_color_key not support");
+ return;
+ }
+
+ vg_lite_color_key4_t vg_colorkey;
+ lv_memzero(&vg_colorkey, sizeof(vg_colorkey));
+ if(colorkey) {
+ vg_lite_color_key_t key0 = {
+ .enable = true,
+ .low_r = colorkey->low.red,
+ .low_g = colorkey->low.green,
+ .low_b = colorkey->low.blue,
+ .alpha = 0,
+ .hign_r = colorkey->high.red,
+ .hign_g = colorkey->high.green,
+ .hign_b = colorkey->high.blue,
+ };
+ vg_colorkey[0] = key0;
+ }
+ LV_VG_LITE_CHECK_ERROR(vg_lite_set_color_key(vg_colorkey), {});
+}
+
/**********************
* STATIC FUNCTIONS
**********************/
diff --git a/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_vg_lite_utils.h b/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_vg_lite_utils.h
index 425050fc5..50f39f21e 100644
--- a/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_vg_lite_utils.h
+++ b/lib/libesp32_lvgl/lvgl/src/draw/vg_lite/lv_vg_lite_utils.h
@@ -24,8 +24,12 @@ extern "C" {
#if LV_USE_VG_LITE_THORVG
#include "../../others/vg_lite_tvg/vg_lite.h"
#else
+#if LV_USE_VG_LITE_DRIVER
+#include "../../libs/vg_lite_driver/inc/vg_lite.h"
+#else
#include
#endif
+#endif
/*********************
* DEFINES
@@ -114,8 +118,6 @@ void lv_vg_lite_buffer_format_bytes(
uint32_t lv_vg_lite_width_to_stride(uint32_t w, vg_lite_buffer_format_t color_format);
-uint32_t lv_vg_lite_width_align(uint32_t w);
-
void lv_vg_lite_buffer_init(
vg_lite_buffer_t * buffer,
const void * ptr,
@@ -163,15 +165,13 @@ bool lv_vg_lite_matrix_check(const vg_lite_matrix_t * matrix);
bool lv_vg_lite_support_blend_normal(void);
-bool lv_vg_lite_16px_align(void);
-
void lv_vg_lite_matrix_multiply(vg_lite_matrix_t * matrix, const vg_lite_matrix_t * mult);
bool lv_vg_lite_matrix_inverse(vg_lite_matrix_t * result, const vg_lite_matrix_t * matrix);
lv_point_precise_t lv_vg_lite_matrix_transform_point(const vg_lite_matrix_t * matrix, const lv_point_precise_t * point);
-void lv_vg_lite_set_scissor_area(const lv_area_t * area);
+void lv_vg_lite_set_scissor_area(struct _lv_draw_vg_lite_unit_t * u, const lv_area_t * area);
void lv_vg_lite_disable_scissor(void);
@@ -292,6 +292,20 @@ static inline void lv_vg_lite_blit_rect(vg_lite_buffer_t * target,
});
LV_PROFILER_DRAW_END_TAG("vg_lite_blit_rect");
}
+void lv_vg_lite_set_color_key(const lv_image_colorkey_t * colorkey);
+
+static inline void lv_vg_lite_clear(vg_lite_buffer_t * target, const lv_area_t * area, vg_lite_color_t color)
+{
+ vg_lite_rectangle_t rect;
+ lv_vg_lite_rect(&rect, area);
+ LV_PROFILER_DRAW_BEGIN_TAG("vg_lite_clear");
+ LV_VG_LITE_CHECK_ERROR(vg_lite_clear(target, &rect, color), {
+ lv_vg_lite_buffer_dump_info(target);
+ LV_LOG_ERROR("rect: X%d Y%d W%d H%d", rect.x, rect.y, rect.width, rect.height);
+ lv_vg_lite_color_dump_info(color);
+ });
+ LV_PROFILER_DRAW_END_TAG("vg_lite_clear");
+}
/**********************
* MACROS
@@ -303,4 +317,4 @@ static inline void lv_vg_lite_blit_rect(vg_lite_buffer_t * target,
} /*extern "C"*/
#endif
-#endif /*VG_LITE_UTILS_H*/
+#endif /*LV_VG_LITE_UTILS_H*/
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/display/drm/lv_linux_drm.c b/lib/libesp32_lvgl/lvgl/src/drivers/display/drm/lv_linux_drm.c
index 2bb6cb518..050556e06 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/display/drm/lv_linux_drm.c
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/display/drm/lv_linux_drm.c
@@ -7,7 +7,7 @@
* INCLUDES
*********************/
#include "lv_linux_drm.h"
-#if LV_USE_LINUX_DRM
+#if LV_USE_LINUX_DRM && !LV_LINUX_DRM_USE_EGL
#include
#include
@@ -25,7 +25,7 @@
#include "../../../stdlib/lv_sprintf.h"
#include "../../../draw/lv_draw_buf.h"
-#if LV_LINUX_DRM_GBM_BUFFERS
+#if LV_USE_LINUX_DRM_GBM_BUFFERS
#include
#include
@@ -80,6 +80,9 @@ typedef struct {
drmModePropertyPtr conn_props[128];
drm_buffer_t drm_bufs[BUFFER_CNT];
drm_buffer_t * act_buf;
+#if LV_USE_LINUX_DRM_GBM_BUFFERS
+ struct gbm_device * gbm_device;
+#endif
} drm_dev_t;
/**********************
@@ -96,36 +99,30 @@ static int drm_get_conn_props(drm_dev_t * drm_dev);
static int drm_add_plane_property(drm_dev_t * drm_dev, const char * name, uint64_t value);
static int drm_add_crtc_property(drm_dev_t * drm_dev, const char * name, uint64_t value);
static int drm_add_conn_property(drm_dev_t * drm_dev, const char * name, uint64_t value);
-static int drm_dmabuf_set_plane(drm_dev_t * drm_dev, drm_buffer_t * buf);
static int find_plane(drm_dev_t * drm_dev, unsigned int fourcc, uint32_t * plane_id, uint32_t crtc_id,
uint32_t crtc_idx);
static int drm_find_connector(drm_dev_t * drm_dev, int64_t connector_id);
static int drm_open(const char * path);
static int drm_setup(drm_dev_t * drm_dev, const char * device_path, int64_t connector_id, unsigned int fourcc);
-static int drm_allocate_dumb(drm_dev_t * drm_dev, drm_buffer_t * buf);
+
+static uint32_t tick_get_cb(void);
+
+#if !LV_USE_LINUX_DRM_GBM_BUFFERS
+ static int drm_allocate_dumb(drm_dev_t * drm_dev, drm_buffer_t * buf);
+#elif LV_USE_LINUX_DRM_GBM_BUFFERS
+ static int create_gbm_buffer(drm_dev_t * drm_dev, drm_buffer_t * buf);
+#endif
+
static int drm_setup_buffers(drm_dev_t * drm_dev);
+static int drm_dmabuf_set_plane(drm_dev_t * drm_dev, drm_buffer_t * buf);
static void drm_flush_wait(lv_display_t * drm_dev);
static void drm_flush(lv_display_t * disp, const lv_area_t * area, uint8_t * px_map);
static void drm_dmabuf_set_active_buf(lv_event_t * event);
-static uint32_t tick_get_cb(void);
-
-#if LV_LINUX_DRM_GBM_BUFFERS
-
- static int create_gbm_buffer(drm_dev_t * drm_dev, drm_buffer_t * buf);
-
-#endif
-
/**********************
* STATIC VARIABLES
**********************/
-#if LV_LINUX_DRM_GBM_BUFFERS
-
- static struct gbm_device * gbm_device;
-
-#endif
-
/**********************
* MACROS
**********************/
@@ -139,23 +136,25 @@ static uint32_t tick_get_cb(void);
lv_display_t * lv_linux_drm_create(void)
{
+ lv_display_t * disp;
+
lv_tick_set_cb(tick_get_cb);
drm_dev_t * drm_dev = lv_malloc_zeroed(sizeof(drm_dev_t));
LV_ASSERT_MALLOC(drm_dev);
if(drm_dev == NULL) return NULL;
- lv_display_t * disp = lv_display_create(800, 480);
+ drm_dev->fd = -1;
+
+ disp = lv_display_create(800, 480);
if(disp == NULL) {
lv_free(drm_dev);
return NULL;
}
- drm_dev->fd = -1;
lv_display_set_driver_data(disp, drm_dev);
lv_display_set_flush_wait_cb(disp, drm_flush_wait);
lv_display_set_flush_cb(disp, drm_flush);
-
return disp;
}
@@ -186,7 +185,7 @@ static void drm_dmabuf_set_active_buf(lv_event_t * event)
}
-#if LV_LINUX_DRM_GBM_BUFFERS
+#if LV_USE_LINUX_DRM_GBM_BUFFERS
struct dma_buf_sync sync_req;
sync_req.flags = DMA_BUF_SYNC_START | DMA_BUF_SYNC_RW;
@@ -207,16 +206,18 @@ static void drm_dmabuf_set_active_buf(lv_event_t * event)
void lv_linux_drm_set_file(lv_display_t * disp, const char * file, int64_t connector_id)
{
- drm_dev_t * drm_dev = lv_display_get_driver_data(disp);
int ret;
+ drm_dev_t * drm_dev = lv_display_get_driver_data(disp);
+
ret = drm_setup(drm_dev, file, connector_id, DRM_FOURCC);
if(ret) {
- close(drm_dev->fd);
- drm_dev->fd = -1;
return;
}
+ int32_t hor_res = drm_dev->width;
+ int32_t ver_res = drm_dev->height;
+
ret = drm_setup_buffers(drm_dev);
if(ret) {
LV_LOG_ERROR("DRM buffer allocation failed");
@@ -227,8 +228,6 @@ void lv_linux_drm_set_file(lv_display_t * disp, const char * file, int64_t conne
LV_LOG_INFO("DRM subsystem and buffer mapped successfully");
- int32_t hor_res = drm_dev->width;
- int32_t ver_res = drm_dev->height;
int32_t width = drm_dev->mmWidth;
size_t buf_size = LV_MIN(drm_dev->drm_bufs[1].size, drm_dev->drm_bufs[0].size);
@@ -252,6 +251,12 @@ void lv_linux_drm_set_file(lv_display_t * disp, const char * file, int64_t conne
hor_res, ver_res, lv_display_get_dpi(disp));
}
+void lv_linux_drm_set_mode_cb(lv_display_t * disp, lv_linux_drm_select_mode_cb_t callback)
+{
+ LV_UNUSED(disp);
+ LV_UNUSED(callback);
+ LV_LOG_WARN("DRM without EGL support doesn't currently support setting a mode selection callback");
+}
/**********************
* STATIC FUNCTIONS
**********************/
@@ -442,7 +447,7 @@ static int drm_dmabuf_set_plane(drm_dev_t * drm_dev, drm_buffer_t * buf)
static int first = 1;
uint32_t flags = DRM_MODE_PAGE_FLIP_EVENT | DRM_MODE_ATOMIC_NONBLOCK;
-#if LV_LINUX_DRM_GBM_BUFFERS
+#if LV_USE_LINUX_DRM_GBM_BUFFERS
struct dma_buf_sync sync_req;
@@ -807,18 +812,17 @@ static int drm_setup(drm_dev_t * drm_dev, const char * device_path, int64_t conn
(fourcc >> 0) & 0xff, (fourcc >> 8) & 0xff, (fourcc >> 16) & 0xff, (fourcc >> 24) & 0xff);
-#if LV_LINUX_DRM_GBM_BUFFERS
+#if LV_USE_LINUX_DRM_GBM_BUFFERS
/* Create GBM device and buffer */
- gbm_device = gbm_create_device(drm_dev->fd);
+ drm_dev->gbm_device = gbm_create_device(drm_dev->fd);
- if(gbm_device == NULL) {
+ if(drm_dev->gbm_device == NULL) {
LV_LOG_ERROR("Failed to create GBM device");
goto err;
}
- LV_LOG_INFO("GBM device backend: %s", gbm_device_get_backend_name(gbm_device));
-
+ LV_LOG_INFO("GBM device backend: %s", gbm_device_get_backend_name(drm_dev->gbm_device));
#endif
return 0;
@@ -828,6 +832,7 @@ err:
return -1;
}
+#if !LV_USE_LINUX_DRM_GBM_BUFFERS
static int drm_allocate_dumb(drm_dev_t * drm_dev, drm_buffer_t * buf)
{
struct drm_mode_create_dumb creq;
@@ -885,8 +890,9 @@ static int drm_allocate_dumb(drm_dev_t * drm_dev, drm_buffer_t * buf)
return 0;
}
+#endif /*!LV_USE_LINUX_DRM_GBM_BUFFERS*/
-#if LV_LINUX_DRM_GBM_BUFFERS
+#if LV_USE_LINUX_DRM_GBM_BUFFERS
static int create_gbm_buffer(drm_dev_t * drm_dev, drm_buffer_t * buf)
{
@@ -894,9 +900,7 @@ static int create_gbm_buffer(drm_dev_t * drm_dev, drm_buffer_t * buf)
struct gbm_bo * gbm_bo;
int prime_fd;
uint32_t handles[4] = {0}, pitches[4] = {0}, offsets[4] = {0};
- uint32_t w, h, format;
uint32_t n_planes;
- char * drm_format_name;
int res;
/* gbm_bo_format does not define anything other than ARGB8888 or XRGB8888 */
@@ -906,7 +910,7 @@ static int create_gbm_buffer(drm_dev_t * drm_dev, drm_buffer_t * buf)
}
/* Create a linear GBM buffer object - best practice when modifiers are not used */
- if(!(gbm_bo = gbm_bo_create(gbm_device,
+ if(!(gbm_bo = gbm_bo_create(drm_dev->gbm_device,
drm_dev->width, drm_dev->height, GBM_BO_FORMAT_XRGB8888,
GBM_BO_USE_SCANOUT | GBM_BO_USE_LINEAR))) {
@@ -925,16 +929,13 @@ static int create_gbm_buffer(drm_dev_t * drm_dev, drm_buffer_t * buf)
return -1;
}
- w = gbm_bo_get_width(gbm_bo);
- h = gbm_bo_get_height(gbm_bo);
- format = gbm_bo_get_format(gbm_bo);
+ uint32_t h = gbm_bo_get_height(gbm_bo);
pitches[0] = buf->pitch = gbm_bo_get_stride_for_plane(gbm_bo, 0);
offsets[0] = buf->offset = gbm_bo_get_offset(gbm_bo, 0);
buf->size = h * buf->pitch;
- drm_format_name = drmGetFormatName(format);
- LV_LOG_INFO("Created GBM BO of size: %lu pitch: %u offset: %u format: %s",
- buf->size, buf->pitch, buf->offset, drm_format_name);
+ LV_LOG_INFO("Created GBM BO of size: %lu pitch: %u offset: %u",
+ buf->size, buf->pitch, buf->offset);
prime_fd = gbm_bo_get_fd_for_plane(gbm_bo, 0);
@@ -975,14 +976,13 @@ static int create_gbm_buffer(drm_dev_t * drm_dev, drm_buffer_t * buf)
}
-#endif /* END LV_LINUX_DRM_GBM_BUFFERS */
-
+#endif /* LV_USE_LINUX_DRM_GBM_BUFFERS */
static int drm_setup_buffers(drm_dev_t * drm_dev)
{
int ret;
-#if LV_LINUX_DRM_GBM_BUFFERS
+#if LV_USE_LINUX_DRM_GBM_BUFFERS
ret = create_gbm_buffer(drm_dev, &drm_dev->drm_bufs[0]);
if(ret < 0) {
@@ -1061,4 +1061,4 @@ static uint32_t tick_get_cb(void)
return time_ms;
}
-#endif /*LV_USE_LINUX_DRM*/
+#endif /*LV_USE_LINUX_DRM && !LV_LINUX_DRM_USE_EGL*/
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/display/drm/lv_linux_drm.h b/lib/libesp32_lvgl/lvgl/src/drivers/display/drm/lv_linux_drm.h
index ee32466ca..b4547308e 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/display/drm/lv_linux_drm.h
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/display/drm/lv_linux_drm.h
@@ -17,6 +17,7 @@ extern "C" {
#include "../../../display/lv_display.h"
#if LV_USE_LINUX_DRM
+#include
/*********************
* DEFINES
@@ -26,13 +27,96 @@ extern "C" {
* TYPEDEFS
**********************/
+typedef drmModeModeInfo lv_linux_drm_mode_t;
+
+/**
+ * Callback function type for selecting a DRM display mode
+ * @param disp pointer to the display object
+ * @param modes array of available DRM modes
+ * @param mode_count number of modes in the array
+ * @return index of the selected mode from the modes array
+ */
+typedef size_t (*lv_linux_drm_select_mode_cb_t)(lv_display_t * disp,
+ const lv_linux_drm_mode_t * modes,
+ size_t mode_count);
+
/**********************
* GLOBAL PROTOTYPES
**********************/
+
+/**
+ * @brief Create a new Linux DRM display
+ *
+ * Creates and initializes a new LVGL display using the Linux DRM (Direct Rendering Manager)
+ * subsystem for hardware-accelerated graphics output.
+ *
+ * @return Pointer to the created display object, or NULL on failure
+ */
lv_display_t * lv_linux_drm_create(void);
+/**
+ * @brief Configure the DRM device file and connector for a display
+ *
+ * Sets the DRM device file path and connector ID to use for the specified display.
+ * The DRM device file is typically located at /dev/dri/cardN where N is the card number.
+ * The connector ID specifies which physical output (HDMI, VGA, etc.) to use.
+ *
+ * @param disp Pointer to the display object created with lv_linux_drm_create()
+ * @param file Path to the DRM device file (e.g., "/dev/dri/card0")
+ * @param connector_id ID of the DRM connector to use, or -1 to auto-select the first available
+ */
void lv_linux_drm_set_file(lv_display_t * disp, const char * file, int64_t connector_id);
+/**
+ * @brief Automatically find a suitable DRM device path
+ *
+ * Scans the system for available DRM devices and returns the path to a suitable
+ * device file that can be used with lv_linux_drm_set_file().
+ *
+ * @return Dynamically allocated string containing the device path (must be freed with lv_free()),
+ * or NULL if no suitable device is found
+ */
+char * lv_linux_drm_find_device_path(void);
+
+/**
+ * Set a callback function for custom DRM mode selection to override the default mode selection behavior
+ *
+ * The default mode selection behavior is selecting the native mode
+ *
+ * @param disp pointer to the display object
+ * @param callback function to be called when a display mode needs to be selected,
+ * or NULL to use the default mode selection behavior
+ */
+void lv_linux_drm_set_mode_cb(lv_display_t * disp, lv_linux_drm_select_mode_cb_t callback);
+
+/**
+ * Get the horizontal resolution of a DRM mode
+ * @param mode pointer to the DRM mode object
+ * @return horizontal resolution in pixels, or 0 if mode is invalid
+ */
+int32_t lv_linux_drm_mode_get_horizontal_resolution(const lv_linux_drm_mode_t * mode);
+
+/**
+ * Get the vertical resolution of a DRM mode
+ * @param mode pointer to the DRM mode object
+ * @return vertical resolution in pixels, or 0 if mode is invalid
+ */
+int32_t lv_linux_drm_mode_get_vertical_resolution(const lv_linux_drm_mode_t * mode);
+
+/**
+ * Get the refresh rate of a DRM mode
+ * @param mode pointer to the DRM mode object
+ * @return refresh rate in Hz, or 0 if mode is invalid
+ */
+int32_t lv_linux_drm_mode_get_refresh_rate(const lv_linux_drm_mode_t * mode);
+
+/**
+ * Check if a DRM mode is the preferred mode for the display
+ * @param mode pointer to the DRM mode object
+ * @return true if this is the preferred/native mode, false otherwise
+ */
+bool lv_linux_drm_mode_is_preferred(const lv_linux_drm_mode_t * mode);
+
/**********************
* MACROS
**********************/
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/display/drm/lv_linux_drm_common.c b/lib/libesp32_lvgl/lvgl/src/drivers/display/drm/lv_linux_drm_common.c
new file mode 100644
index 000000000..0fecb501a
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/display/drm/lv_linux_drm_common.c
@@ -0,0 +1,128 @@
+/**
+ * @file lv_linux_drm_common.c
+ *
+ */
+
+/*********************
+ * INCLUDES
+ *********************/
+
+#include "lv_linux_drm.h"
+
+#if LV_USE_LINUX_DRM
+
+#include
+#include
+
+#include "lv_linux_drm.h"
+#include "../../../stdlib/lv_sprintf.h"
+
+/*********************
+ * DEFINES
+ *********************/
+
+#define LV_DRM_CLASS_DIR "/sys/class/drm"
+#define LV_DRM_CARD_PATH "/dev/dri/card"
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+/**********************
+ * STATIC PROTOTYPES
+ **********************/
+
+static char * find_by_class(void);
+
+/**********************
+ * STATIC VARIABLES
+ **********************/
+
+/**********************
+ * MACROS
+ **********************/
+
+/**********************
+ * GLOBAL FUNCTIONS
+ **********************/
+
+char * lv_linux_drm_find_device_path(void)
+{
+ return find_by_class();
+}
+
+/**********************
+ * STATIC FUNCTIONS
+ **********************/
+
+static char * find_by_class(void)
+{
+ DIR * d = opendir(LV_DRM_CLASS_DIR);
+ if(!d) {
+ return NULL;
+ }
+
+ struct dirent * ent;
+ while((ent = readdir(d)) != NULL) {
+ if(lv_strcmp(ent->d_name, ".") == 0 || lv_strcmp(ent->d_name, "..") == 0) {
+ continue;
+ }
+ /* connector dirs look like card0-HDMI-A-1, card0-eDP-1, etc. */
+ bool is_card = lv_strncmp(ent->d_name, "card", 4) == 0;
+ bool is_connected = lv_strchr(ent->d_name, '-') != NULL;
+
+ if(!is_card || !is_connected) {
+ continue;
+ }
+
+ const size_t buf_size = lv_strlen(LV_DRM_CARD_PATH) + 3;
+ char * card_path = lv_zalloc(buf_size);
+ if(ent->d_name[5] != '-') {
+ /* Double digit card*/
+ lv_snprintf(card_path, buf_size, LV_DRM_CARD_PATH "%c%c", ent->d_name[4], ent->d_name[5]);
+ }
+ else {
+ lv_snprintf(card_path, buf_size, LV_DRM_CARD_PATH "%c", ent->d_name[4]);
+ }
+ closedir(d);
+ return card_path;
+ }
+
+ closedir(d);
+ return NULL;
+
+}
+
+int32_t lv_linux_drm_mode_get_horizontal_resolution(const lv_linux_drm_mode_t * mode)
+{
+ if(!mode) {
+ return 0;
+ }
+ return mode->hdisplay;
+}
+
+int32_t lv_linux_drm_mode_get_vertical_resolution(const lv_linux_drm_mode_t * mode)
+{
+ if(!mode) {
+ return 0;
+ }
+ return mode->vdisplay;
+}
+
+int32_t lv_linux_drm_mode_get_refresh_rate(const lv_linux_drm_mode_t * mode)
+{
+ if(!mode) {
+ return 0;
+ }
+ return mode->vrefresh;
+}
+
+bool lv_linux_drm_mode_is_preferred(const lv_linux_drm_mode_t * mode)
+{
+ if(!mode) {
+ return false;
+ }
+ return (mode->type & DRM_MODE_TYPE_PREFERRED) != 0;
+}
+
+#endif /*LV_USE_LINUX_DRM*/
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/display/drm/lv_linux_drm_egl.c b/lib/libesp32_lvgl/lvgl/src/drivers/display/drm/lv_linux_drm_egl.c
new file mode 100644
index 000000000..d315898bb
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/display/drm/lv_linux_drm_egl.c
@@ -0,0 +1,746 @@
+/**
+ * @file lv_linux_drm_egl.c
+ *
+ */
+
+/*********************
+ * INCLUDES
+ *********************/
+#include "lv_linux_drm.h"
+
+#if LV_USE_LINUX_DRM && LV_LINUX_DRM_USE_EGL
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include "lv_linux_drm_egl_private.h"
+#include "../../../draw/lv_draw_buf.h"
+#include "../../opengles/lv_opengles_debug.h"
+
+#include "../../opengles/lv_opengles_driver.h"
+#include "../../opengles/lv_opengles_texture.h"
+#include "../../opengles/lv_opengles_private.h"
+
+#include "../../../stdlib/lv_string.h"
+#include "../../../display/lv_display.h"
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+typedef struct {
+ int fd;
+ struct gbm_bo * bo;
+ uint32_t fb_id;
+} drm_fb_state_t;
+
+/**********************
+ * STATIC PROTOTYPES
+ **********************/
+
+static uint32_t tick_cb(void);
+static void flush_cb(lv_display_t * disp, const lv_area_t * area, uint8_t * px_map);
+static void event_cb(lv_event_t * e);
+
+static lv_result_t drm_device_init(lv_drm_ctx_t * ctx, const char * path);
+static void drm_device_deinit(lv_drm_ctx_t * ctx);
+
+static lv_egl_interface_t drm_get_egl_interface(lv_drm_ctx_t * ctx);
+static drmModeConnector * drm_get_connector(lv_drm_ctx_t * ctx);
+static drmModeModeInfo * drm_get_mode(lv_drm_ctx_t * ctx);
+static drmModeEncoder * drm_get_encoder(lv_drm_ctx_t * ctx);
+static drmModeCrtc * drm_get_crtc(lv_drm_ctx_t * ctx);
+static void drm_on_page_flip(int fd, unsigned int frame, unsigned int sec, unsigned int usec, void * data);
+static drm_fb_state_t * drm_fb_state_create(lv_drm_ctx_t * ctx, struct gbm_bo * bo);
+static void drm_fb_state_destroy_cb(struct gbm_bo * bo, void * data);
+static void drm_flip_cb(void * driver_data, bool vsync);
+
+static void * drm_create_window(void * driver_data, const lv_egl_native_window_properties_t * properties);
+static void drm_destroy_window(void * driver_data, void * native_window);
+static size_t drm_egl_select_config_cb(void * driver_data, const lv_egl_config_t * configs, size_t config_count);
+static inline void set_viewport(lv_display_t * display);
+
+/**********************
+ * STATIC VARIABLES
+ **********************/
+
+/**********************
+ * MACROS
+ **********************/
+
+/**********************
+ * GLOBAL FUNCTIONS
+ **********************/
+
+lv_display_t * lv_linux_drm_create(void)
+{
+ lv_tick_set_cb(tick_cb);
+ lv_drm_ctx_t * ctx = lv_zalloc(sizeof(*ctx));
+ LV_ASSERT_MALLOC(ctx);
+ if(!ctx) {
+ LV_LOG_ERROR("Failed to create drm context");
+ return NULL;
+ }
+
+ ctx->display = lv_display_create(1, 1);
+
+ if(!ctx->display) {
+ LV_LOG_ERROR("Failed to create display");
+ lv_free(ctx);
+ return NULL;
+ }
+
+ lv_display_set_driver_data(ctx->display, ctx);
+ lv_display_add_event_cb(ctx->display, event_cb, LV_EVENT_DELETE, NULL);
+ return ctx->display;
+}
+
+void lv_linux_drm_set_file(lv_display_t * display, const char * file, int64_t connector_id)
+{
+ LV_UNUSED(connector_id);
+ lv_drm_ctx_t * ctx = lv_display_get_driver_data(display);
+
+ lv_result_t err = drm_device_init(ctx, file);
+ if(err != LV_RESULT_OK) {
+ LV_LOG_ERROR("Failed to initialize DRM device");
+ return;
+ }
+
+ lv_display_set_resolution(display, ctx->drm_mode->hdisplay, ctx->drm_mode->vdisplay);
+
+ ctx->egl_interface = drm_get_egl_interface(ctx);
+ ctx->egl_ctx = lv_opengles_egl_context_create(&ctx->egl_interface);
+ if(!ctx->egl_ctx) {
+ LV_LOG_ERROR("Failed to create egl context");
+ return;
+ }
+
+ /* Let the opengles texture driver handle the texture lifetime */
+ ctx->texture.is_texture_owner = true;
+ lv_result_t res = lv_opengles_texture_create_draw_buffers(&ctx->texture, display);
+ if(res != LV_RESULT_OK) {
+ LV_LOG_ERROR("Failed to create draw buffers");
+ lv_opengles_egl_context_destroy(ctx->egl_ctx);
+ ctx->egl_ctx = NULL;
+ return;
+ }
+ /* This creates the texture for the first time*/
+ lv_opengles_texture_reshape(display, ctx->drm_mode->hdisplay, ctx->drm_mode->vdisplay);
+
+ lv_display_set_flush_cb(display, flush_cb);
+ lv_display_set_render_mode(display, LV_DISPLAY_RENDER_MODE_DIRECT);
+
+ lv_display_add_event_cb(ctx->display, event_cb, LV_EVENT_RESOLUTION_CHANGED, NULL);
+ lv_display_add_event_cb(ctx->display, event_cb, LV_EVENT_DELETE, NULL);
+}
+
+void lv_linux_drm_set_mode_cb(lv_display_t * disp, lv_linux_drm_select_mode_cb_t callback)
+{
+ if(!disp) {
+ LV_LOG_ERROR("Cannot set a mode select callback on a NULL display");
+ return;
+ }
+ lv_drm_ctx_t * ctx = lv_display_get_driver_data(disp);
+ ctx->mode_select_cb = callback;
+}
+
+/**********************
+ * STATIC FUNCTIONS
+ **********************/
+
+static void event_cb(lv_event_t * e)
+{
+ lv_event_code_t code = lv_event_get_code(e);
+ lv_display_t * display = (lv_display_t *) lv_event_get_target(e);
+ lv_drm_ctx_t * ctx = lv_display_get_driver_data(display);
+ switch(code) {
+ case LV_EVENT_DELETE:
+ if(ctx) {
+ lv_opengles_egl_context_destroy(ctx->egl_ctx);
+ ctx->egl_ctx = NULL;
+ lv_opengles_texture_deinit(&ctx->texture);
+ drm_device_deinit(ctx);
+ lv_display_set_driver_data(display, NULL);
+ }
+ break;
+ case LV_EVENT_RESOLUTION_CHANGED:
+ lv_opengles_texture_reshape(display, lv_display_get_horizontal_resolution(display),
+ lv_display_get_vertical_resolution(display));
+ break;
+ default:
+ return;
+ }
+}
+
+static uint32_t tick_cb(void)
+{
+ struct timespec ts;
+ clock_gettime(CLOCK_MONOTONIC, &ts);
+ return ts.tv_sec * 1000 + (ts.tv_nsec / 1000000);;
+}
+
+static inline void set_viewport(lv_display_t * display)
+{
+ const lv_display_rotation_t rotation = lv_display_get_rotation(display);
+ int32_t disp_width, disp_height;
+ if(rotation == LV_DISPLAY_ROTATION_0 || rotation == LV_DISPLAY_ROTATION_180) {
+ disp_width = lv_display_get_horizontal_resolution(display);
+ disp_height = lv_display_get_vertical_resolution(display);
+ }
+ else {
+ disp_width = lv_display_get_vertical_resolution(display) ;
+ disp_height = lv_display_get_horizontal_resolution(display) ;
+ }
+ lv_opengles_viewport(0, 0, disp_width, disp_height);
+}
+
+#if LV_USE_DRAW_OPENGLES
+
+static void flush_cb(lv_display_t * disp, const lv_area_t * area, uint8_t * px_map)
+{
+ LV_UNUSED(area);
+ LV_UNUSED(px_map);
+ if(lv_display_flush_is_last(disp)) {
+ set_viewport(disp);
+ lv_drm_ctx_t * ctx = lv_display_get_driver_data(disp);
+ lv_opengles_render_display_texture(disp, false, true);
+ lv_opengles_egl_update(ctx->egl_ctx);
+ }
+ lv_display_flush_ready(disp);
+}
+
+#else
+
+static void flush_cb(lv_display_t * disp, const lv_area_t * area, uint8_t * px_map)
+{
+ LV_UNUSED(px_map);
+ LV_UNUSED(area);
+ if(lv_display_flush_is_last(disp)) {
+ lv_drm_ctx_t * ctx = lv_display_get_driver_data(disp);
+ int32_t disp_width = lv_display_get_horizontal_resolution(disp);
+ int32_t disp_height = lv_display_get_vertical_resolution(disp);
+
+ set_viewport(disp);
+
+ lv_color_format_t cf = lv_display_get_color_format(disp);
+ uint32_t stride = lv_draw_buf_width_to_stride(lv_display_get_horizontal_resolution(disp), cf);
+ GL_CALL(glBindTexture(GL_TEXTURE_2D, ctx->texture.texture_id));
+
+ GL_CALL(glPixelStorei(GL_UNPACK_ALIGNMENT, 1));
+ GL_CALL(glPixelStorei(GL_UNPACK_ROW_LENGTH, stride / lv_color_format_get_size(cf)));
+ /*Color depth: 16 (RGB565), 32 (ARGB8888)*/
+#if LV_COLOR_DEPTH == 16
+ GL_CALL(glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB565, disp_width, disp_height, 0, GL_RGB, GL_UNSIGNED_SHORT_5_6_5,
+ ctx->texture.fb1));
+#elif LV_COLOR_DEPTH == 32
+ GL_CALL(glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, disp_width, disp_height, 0, GL_BGRA, GL_UNSIGNED_BYTE,
+ ctx->texture.fb1));
+#else
+#error("Unsupported color format")
+#endif
+
+ lv_opengles_render_display_texture(disp, false, false);
+ lv_opengles_egl_update(ctx->egl_ctx);
+ }
+ lv_display_flush_ready(disp);
+}
+#endif
+
+void drm_device_deinit(lv_drm_ctx_t * ctx)
+{
+ if(ctx->drm_crtc) {
+ drmModeSetCrtc(ctx->fd,
+ ctx->drm_crtc->crtc_id,
+ ctx->drm_crtc->buffer_id,
+ ctx->drm_crtc->x,
+ ctx->drm_crtc->y,
+ &ctx->drm_connector->connector_id,
+ 1,
+ &ctx->drm_crtc->mode);
+ drmModeFreeCrtc(ctx->drm_crtc);
+ ctx->drm_crtc = 0;
+ }
+ drm_destroy_window(ctx, ctx->gbm_surface);
+
+ if(ctx->gbm_dev) {
+ gbm_device_destroy(ctx->gbm_dev);
+ ctx->gbm_dev = NULL;
+ }
+ if(ctx->drm_connector) {
+ drmModeFreeConnector(ctx->drm_connector);
+ ctx->drm_connector = NULL;
+ }
+ if(ctx->drm_encoder) {
+ drmModeFreeEncoder(ctx->drm_encoder);
+ ctx->drm_encoder = NULL;
+ }
+ if(ctx->drm_resources) {
+ drmModeFreeResources(ctx->drm_resources);
+ ctx->drm_resources = NULL;
+ }
+ if(ctx->fd > 0) {
+ drmClose(ctx->fd);
+ }
+ ctx->fd = 0;
+ ctx->drm_mode = NULL;
+ lv_free(ctx);
+}
+
+static void drm_fb_state_destroy_cb(struct gbm_bo * bo, void * data)
+{
+ LV_UNUSED(bo);
+ drm_fb_state_t * fb = (drm_fb_state_t *) data;
+ if(fb && fb->fb_id) {
+ drmModeRmFB(fb->fd, fb->fb_id);
+ }
+ lv_free(fb);
+}
+
+static int drm_do_page_flip(lv_drm_ctx_t * ctx, int timeout_ms)
+{
+ fd_set fds;
+ FD_ZERO(&fds);
+ FD_SET(ctx->fd, &fds);
+
+ drmEventContext event_ctx;
+ lv_memset(&event_ctx, 0, sizeof(event_ctx));
+ event_ctx.version = 2;
+ event_ctx.page_flip_handler = drm_on_page_flip;
+
+ struct timeval timeout;
+ int status;
+ if(timeout_ms >= 0) {
+ timeout.tv_sec = timeout_ms / 1000;
+ timeout.tv_usec = (timeout_ms % 1000) * 1000;
+ status = select(ctx->fd + 1, &fds, NULL, NULL, &timeout);
+ }
+ else {
+ status = select(ctx->fd + 1, &fds, NULL, NULL, NULL);
+ }
+
+ if(status == 1) {
+ drmHandleEvent(ctx->fd, &event_ctx);
+ }
+ return status;
+}
+
+static void drm_on_page_flip(int fd, unsigned int frame, unsigned int sec, unsigned int usec, void * data)
+{
+ LV_UNUSED(fd);
+ LV_UNUSED(frame);
+ LV_UNUSED(sec);
+ LV_UNUSED(usec);
+ lv_drm_ctx_t * ctx = (lv_drm_ctx_t *) data;
+
+ if(ctx->gbm_bo_presented) {
+ gbm_surface_release_buffer(ctx->gbm_surface, ctx->gbm_bo_presented);
+ }
+ ctx->gbm_bo_presented = ctx->gbm_bo_flipped;
+ ctx->gbm_bo_flipped = NULL;
+}
+
+static drm_fb_state_t * drm_fb_state_create(lv_drm_ctx_t * ctx, struct gbm_bo * bo)
+{
+ LV_ASSERT_NULL(bo);
+ drm_fb_state_t * fb = (drm_fb_state_t *)gbm_bo_get_user_data(bo);
+
+ if(fb) {
+ return fb;
+ }
+
+ uint32_t width = gbm_bo_get_width(bo);
+ uint32_t height = gbm_bo_get_height(bo);
+ uint32_t handles[4] = {0};
+ uint32_t strides[4] = {0};
+ uint32_t offsets[4] = {0};
+ uint64_t modifiers[4] = {0};
+ uint32_t format = gbm_bo_get_format(bo);
+ uint64_t modifier = gbm_bo_get_modifier(bo);
+ uint32_t fb_id = 0;
+ uint64_t addfb2_mods = 0;
+ int32_t status;
+
+ drmGetCap(ctx->fd, DRM_CAP_ADDFB2_MODIFIERS, &addfb2_mods);
+
+ for(int i = 0; i < gbm_bo_get_plane_count(bo); i++) {
+ handles[i] = gbm_bo_get_handle_for_plane(bo, i).u32;
+ strides[i] = gbm_bo_get_stride_for_plane(bo, i);
+ offsets[i] = gbm_bo_get_offset(bo, i);
+ modifiers[i] = modifier;
+ }
+
+ if(addfb2_mods && modifier != DRM_FORMAT_MOD_INVALID) {
+ status = drmModeAddFB2WithModifiers(ctx->fd, width, height, format,
+ handles, strides, offsets, modifiers,
+ &fb_id, DRM_MODE_FB_MODIFIERS);
+ }
+ else {
+ status = drmModeAddFB2(ctx->fd, width, height, format,
+ handles, strides, offsets, &fb_id, 0);
+ }
+
+ if(status < 0) {
+ LV_LOG_ERROR("Failed to create drm_fb_state: %d", status);
+ return NULL;
+ }
+
+ fb = (drm_fb_state_t *)lv_malloc(sizeof(*fb));
+ if(!fb) {
+ LV_LOG_ERROR("Failed to allocate drmfb_state");
+ return NULL;
+ }
+
+ fb->fd = ctx->fd;
+ fb->bo = bo;
+ fb->fb_id = fb_id;
+
+ gbm_bo_set_user_data(bo, fb, drm_fb_state_destroy_cb);
+ return fb;
+}
+
+static void drm_flip_cb(void * driver_data, bool vsync)
+{
+ lv_drm_ctx_t * ctx = (lv_drm_ctx_t *) driver_data;
+
+ if(ctx->gbm_bo_pending) {
+ gbm_surface_release_buffer(ctx->gbm_surface, ctx->gbm_bo_pending);
+ }
+ ctx->gbm_bo_pending = gbm_surface_lock_front_buffer(ctx->gbm_surface);
+
+ if(!ctx->gbm_bo_pending) {
+ LV_LOG_ERROR("Failed to lock front buffer");
+ return;
+ }
+
+ drm_fb_state_t * pending_fb = drm_fb_state_create(ctx, ctx->gbm_bo_pending);
+
+ if(!ctx->gbm_bo_pending || !pending_fb) {
+ LV_LOG_ERROR("Failed to get gbm front buffer");
+ return;
+ }
+
+ if(vsync) {
+ while(ctx->gbm_bo_flipped && drm_do_page_flip(ctx, -1) >= 0)
+ continue;
+ }
+ else {
+ drm_do_page_flip(ctx, 0);
+ }
+
+ if(!ctx->gbm_bo_flipped) {
+ if(!ctx->crtc_isset) {
+ int status = drmModeSetCrtc(ctx->fd, ctx->drm_encoder->crtc_id, pending_fb->fb_id, 0, 0,
+ &(ctx->drm_connector->connector_id), 1, ctx->drm_mode);
+ if(status < 0) {
+ LV_LOG_ERROR("Failed to set crtc: %d", status);
+ return;
+ }
+ ctx->crtc_isset = true;
+ if(ctx->gbm_bo_presented)
+ gbm_surface_release_buffer(ctx->gbm_surface, ctx->gbm_bo_presented);
+ ctx->gbm_bo_presented = ctx->gbm_bo_pending;
+ ctx->gbm_bo_flipped = NULL;
+ ctx->gbm_bo_pending = NULL;
+ return;
+ }
+
+
+ uint32_t flip_flags = DRM_MODE_PAGE_FLIP_EVENT;
+ int status = drmModePageFlip(ctx->fd, ctx->drm_encoder->crtc_id, pending_fb->fb_id, flip_flags, ctx);
+ if(status < 0) {
+ LV_LOG_ERROR("Failed to enqueue page flip: %d", status);
+ return;
+ }
+ ctx->gbm_bo_flipped = ctx->gbm_bo_pending;
+ ctx->gbm_bo_pending = NULL;
+ }
+
+ /* We need to ensure our surface has a free buffer, otherwise GL will
+ * have no buffer to render on. */
+ while(!gbm_surface_has_free_buffers(ctx->gbm_surface) &&
+ drm_do_page_flip(ctx, -1) >= 0) {
+ continue;
+ }
+}
+
+static lv_result_t drm_device_init(lv_drm_ctx_t * ctx, const char * path)
+{
+ if(!path) {
+ LV_LOG_ERROR("Device path must not be NULL");
+ return LV_RESULT_INVALID;
+ }
+ int ret = open(path, O_RDWR);
+ if(ret < 0) {
+ LV_LOG_ERROR("Failed to open device path '%s'", path);
+ goto open_err;
+ }
+ ctx->fd = ret;
+
+ ret = drmSetClientCap(ctx->fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1);
+ if(ret < 0) {
+ LV_LOG_ERROR("Failed to set universal planes capability");
+ goto set_client_cap_err;
+ }
+
+ ctx->drm_resources = drmModeGetResources(ctx->fd);
+ if(!ctx->drm_resources) {
+ LV_LOG_ERROR("Failed to get card resources");
+ goto get_resources_err;
+ }
+
+ ctx->drm_connector = drm_get_connector(ctx);
+ if(!ctx->drm_connector) {
+ LV_LOG_ERROR("Failed to find a suitable connector");
+ goto get_connector_err;
+ }
+
+ ctx->drm_mode = drm_get_mode(ctx);
+ if(!ctx->drm_mode) {
+ LV_LOG_ERROR("Failed to find a suitable drm mode");
+ goto get_mode_err;
+ }
+
+ ctx->drm_encoder = drm_get_encoder(ctx);
+ if(!ctx->drm_encoder) {
+ LV_LOG_ERROR("Failed to find a suitable encoder");
+ goto get_encoder_err;
+ }
+
+ ctx->gbm_dev = gbm_create_device(ctx->fd);
+ if(!ctx->gbm_dev) {
+ LV_LOG_ERROR("Failed to create gbm device");
+ goto gbm_create_device_err;
+ }
+
+ if(drmSetMaster(ctx->fd) < 0) {
+ LV_LOG_ERROR("Failed to become DRM master");
+ goto set_master_err;
+ }
+
+ ctx->drm_crtc = drm_get_crtc(ctx);
+ if(!ctx->drm_crtc) {
+ LV_LOG_ERROR("Failed to get crtc");
+ goto get_crtc_err;
+ }
+
+ return LV_RESULT_OK;
+
+get_crtc_err:
+ gbm_device_destroy(ctx->gbm_dev);
+ ctx->gbm_dev = NULL;
+set_master_err:
+ /* Nothing special to do */
+gbm_create_device_err:
+ drmModeFreeEncoder(ctx->drm_encoder);
+ ctx->drm_encoder = NULL;
+get_encoder_err:
+ drmModeFreeConnector(ctx->drm_connector);
+ ctx->drm_connector = NULL;
+get_mode_err:
+ /* Nothing special to do */
+get_connector_err:
+ drmModeFreeResources(ctx->drm_resources);
+ ctx->drm_resources = NULL;
+get_resources_err:
+ /* Nothing special to do */
+set_client_cap_err:
+ close(ctx->fd);
+ ctx->fd = 0;
+open_err:
+ return LV_RESULT_INVALID;
+}
+
+static size_t drm_egl_select_config_cb(void * driver_data, const lv_egl_config_t * configs, size_t config_count)
+{
+ lv_drm_ctx_t * ctx = (lv_drm_ctx_t *)driver_data;
+ int32_t target_w = lv_display_get_horizontal_resolution(ctx->display);
+ int32_t target_h = lv_display_get_vertical_resolution(ctx->display);
+
+#if LV_COLOR_DEPTH == 16
+ lv_color_format_t target_cf = LV_COLOR_FORMAT_RGB565;
+#elif LV_COLOR_DEPTH == 32
+ lv_color_format_t target_cf = LV_COLOR_FORMAT_ARGB8888;
+#else
+#error("Unsupported color format")
+#endif
+
+
+ for(size_t i = 0; i < config_count; ++i) {
+ LV_LOG_TRACE("Got config %zu %#x %dx%d %d %d %d %d buffer size %d depth %d samples %d stencil %d surface type %d",
+ i, configs[i].id,
+ configs[i].max_width, configs[i].max_height, configs[i].r_bits, configs[i].g_bits, configs[i].b_bits, configs[i].a_bits,
+ configs[i].buffer_size, configs[i].depth, configs[i].samples, configs[i].stencil, configs[i].surface_type);
+ }
+
+ for(size_t i = 0; i < config_count; ++i) {
+ lv_color_format_t config_cf = lv_opengles_egl_color_format_from_egl_config(&configs[i]);
+ if(configs[i].max_width >= target_w &&
+ configs[i].max_height >= target_h &&
+ config_cf == target_cf &&
+ configs[i].surface_type & EGL_WINDOW_BIT
+ ) {
+ LV_LOG_TRACE("Choosing config %zu", i);
+ return i;
+ }
+ }
+ return config_count;
+}
+
+
+/**********************
+ * STATIC FUNCTIONS
+ **********************/
+
+static lv_egl_interface_t drm_get_egl_interface(lv_drm_ctx_t * ctx)
+{
+ return (lv_egl_interface_t) {
+ .driver_data = ctx,
+ .native_display = ctx->gbm_dev,
+ .egl_platform = EGL_PLATFORM_GBM_KHR,
+ .select_config = drm_egl_select_config_cb,
+ .flip_cb = drm_flip_cb,
+ .create_window_cb = drm_create_window,
+ .destroy_window_cb = drm_destroy_window,
+ };
+}
+
+static drmModeConnector * drm_get_connector(lv_drm_ctx_t * ctx)
+{
+ drmModeConnector * connector = NULL;
+
+ LV_ASSERT_NULL(ctx->drm_resources);
+ for(int i = 0; i < ctx->drm_resources->count_connectors; i++) {
+ connector = drmModeGetConnector(ctx->fd, ctx->drm_resources->connectors[i]);
+ if(connector->connection == DRM_MODE_CONNECTED && connector->count_modes > 0) {
+ return connector;
+ }
+ drmModeFreeConnector(connector);
+ connector = NULL;
+ }
+ return connector;
+}
+
+static drmModeModeInfo * drm_get_mode(lv_drm_ctx_t * ctx)
+{
+ LV_ASSERT_NULL(ctx->drm_connector);
+ if(ctx->mode_select_cb) {
+ size_t mode_index = ctx->mode_select_cb(ctx->display, (lv_linux_drm_mode_t *)ctx->drm_connector->modes,
+ (size_t)ctx->drm_connector->count_modes);
+ if(mode_index >= (size_t)ctx->drm_connector->count_modes) {
+ LV_LOG_ERROR("Failed to select drm mode. User select callback return an invalid mode index");
+ return NULL;
+ }
+ return &ctx->drm_connector->modes[mode_index];
+ }
+
+ drmModeModeInfo * best_mode = NULL;
+ uint32_t best_area = 0;
+
+ for(int i = 0 ; i < ctx->drm_connector->count_modes; ++i) {
+ drmModeModeInfo * mode = &ctx->drm_connector->modes[i];
+ if(mode->type & DRM_MODE_TYPE_PREFERRED) {
+ return mode;
+ }
+ uint32_t area = mode->hdisplay * mode->vdisplay;
+ if(area > best_area) {
+ best_area = area;
+ best_mode = mode;
+ }
+ }
+ LV_LOG_WARN("Failed to find a drm mode with the TYPE_PREFERRED flag. Using the one with the biggest area");
+ return best_mode;
+}
+
+static drmModeCrtc * drm_get_crtc(lv_drm_ctx_t * ctx)
+{
+ drmModeCrtc * crtc = drmModeGetCrtc(ctx->fd, ctx->drm_encoder->crtc_id);
+ if(crtc) {
+ return crtc;
+ }
+
+ /* if there is no current CRTC, attach a suitable one */
+ for(int i = 0; i < ctx->drm_resources->count_crtcs; i++) {
+ if(ctx->drm_encoder->possible_crtcs & (1 << i)) {
+ ctx->drm_encoder->crtc_id = ctx->drm_resources->crtcs[i];
+ crtc = drmModeGetCrtc(ctx->fd, ctx->drm_encoder->crtc_id);
+ break;
+ }
+ }
+ return crtc;
+}
+
+static drmModeEncoder * drm_get_encoder(lv_drm_ctx_t * ctx)
+{
+ LV_ASSERT_NULL(ctx->drm_connector);
+ drmModeEncoder * encoder = NULL;
+ for(int i = 0; i < ctx->drm_resources->count_encoders; i++) {
+ encoder = drmModeGetEncoder(ctx->fd, ctx->drm_resources->encoders[i]);
+ if(!encoder) {
+ continue;
+ }
+ for(int j = 0; j < ctx->drm_connector->count_encoders; j++) {
+ if(encoder->encoder_id == ctx->drm_connector->encoders[j]) {
+ return encoder;
+ }
+ }
+ drmModeFreeEncoder(encoder);
+ encoder = NULL;
+ }
+ return encoder;
+}
+
+static void * drm_create_window(void * driver_data, const lv_egl_native_window_properties_t * properties)
+{
+ lv_drm_ctx_t * ctx = (lv_drm_ctx_t *)driver_data;
+ LV_ASSERT_NULL(ctx->gbm_dev);
+
+ uint32_t format = properties->visual_id;
+
+ if(format == 0) {
+ LV_LOG_ERROR("Invalid format requested");
+ return NULL;
+ }
+ ctx->gbm_surface = gbm_surface_create(ctx->gbm_dev, ctx->drm_mode->hdisplay, ctx->drm_mode->vdisplay, format,
+ GBM_BO_USE_SCANOUT | GBM_BO_USE_RENDERING);
+ if(!ctx->gbm_surface) {
+ LV_LOG_ERROR("Failed to create GBM surface");
+ return NULL;
+ }
+ return (void *)ctx->gbm_surface;
+
+}
+
+static void drm_destroy_window(void * driver_data, void * native_window)
+{
+ lv_drm_ctx_t * ctx = (lv_drm_ctx_t *)driver_data;
+ LV_ASSERT(native_window == ctx->gbm_surface);
+
+ if(!ctx->gbm_surface) {
+ return;
+ }
+
+ if(ctx->gbm_bo_pending) {
+ gbm_surface_release_buffer(ctx->gbm_surface, ctx->gbm_bo_pending);
+ ctx->gbm_bo_pending = NULL;
+ }
+ if(ctx->gbm_bo_flipped) {
+ gbm_surface_release_buffer(ctx->gbm_surface, ctx->gbm_bo_flipped);
+ ctx->gbm_bo_flipped = NULL;
+ }
+ if(ctx->gbm_bo_presented) {
+ gbm_surface_release_buffer(ctx->gbm_surface, ctx->gbm_bo_presented);
+ ctx->gbm_bo_presented = NULL;
+ }
+ gbm_surface_destroy(ctx->gbm_surface);
+ ctx->gbm_surface = NULL;
+}
+
+
+#endif /*LV_USE_LINUX_DRM && LV_LINUX_DRM_USE_EGL*/
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/display/drm/lv_linux_drm_egl_private.h b/lib/libesp32_lvgl/lvgl/src/drivers/display/drm/lv_linux_drm_egl_private.h
new file mode 100644
index 000000000..f94572f41
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/display/drm/lv_linux_drm_egl_private.h
@@ -0,0 +1,76 @@
+/**
+ * @file lv_linux_drm_egl_private.h
+ *
+ */
+
+#ifndef LV_LINUX_DRM_EGL_PRIVATE_H
+#define LV_LINUX_DRM_EGL_PRIVATE_H
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*********************
+ * INCLUDES
+ *********************/
+
+#include "../../../lv_conf_internal.h"
+
+#if LV_USE_LINUX_DRM && LV_LINUX_DRM_USE_EGL
+
+#include
+#include "../../opengles/lv_opengles_texture_private.h"
+#include "../../opengles/lv_opengles_egl.h"
+#include "../../opengles/lv_opengles_egl_private.h"
+#include "lv_linux_drm.h"
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+typedef struct {
+ lv_opengles_texture_t texture;
+ lv_display_t * display;
+ lv_opengles_egl_t * egl_ctx;
+ lv_egl_interface_t egl_interface;
+
+ drmModeRes * drm_resources;
+ drmModeConnector * drm_connector;
+ drmModeEncoder * drm_encoder;
+ drmModeCrtc * drm_crtc;
+ drmModeModeInfo * drm_mode;
+
+ struct gbm_device * gbm_dev;
+ struct gbm_surface * gbm_surface;
+ struct gbm_bo * gbm_bo_pending;
+ struct gbm_bo * gbm_bo_flipped;
+ struct gbm_bo * gbm_bo_presented;
+
+ lv_linux_drm_select_mode_cb_t mode_select_cb;
+ int fd;
+ bool crtc_isset;
+} lv_drm_ctx_t;
+
+
+
+/**********************
+ * GLOBAL PROTOTYPES
+ **********************/
+
+/**********************
+ * MACROS
+ **********************/
+
+#endif /*LV_USE_LINUX_DRM && LV_LINUX_DRM_USE_EGL*/
+
+#ifdef __cplusplus
+} /*extern "C"*/
+#endif
+
+
+#endif /*LV_LINUX_DRM_EGL_PRIVATE_H*/
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/display/fb/lv_linux_fbdev.c b/lib/libesp32_lvgl/lvgl/src/drivers/display/fb/lv_linux_fbdev.c
index 1b9ddc02b..768f7487a 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/display/fb/lv_linux_fbdev.c
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/display/fb/lv_linux_fbdev.c
@@ -28,6 +28,7 @@
#include "../../../display/lv_display_private.h"
#include "../../../draw/sw/lv_draw_sw.h"
+#include "../../../misc/lv_area_private.h"
/*********************
* DEFINES
@@ -241,6 +242,7 @@ void lv_linux_fbdev_set_file(lv_display_t * disp, const char * file)
LV_LOG_INFO("Resolution is set to %" LV_PRId32 "x%" LV_PRId32 " at %" LV_PRId32 "dpi",
hor_res, ver_res, lv_display_get_dpi(disp));
+ /* TODO: map delete event callback to deallocate buffers */
}
void lv_linux_fbdev_set_force_refresh(lv_display_t * disp, bool enabled)
@@ -275,55 +277,75 @@ static void flush_cb(lv_display_t * disp, const lv_area_t * area, uint8_t * colo
}
#endif
- int32_t w = lv_area_get_width(area);
- int32_t h = lv_area_get_height(area);
- lv_color_format_t cf = lv_display_get_color_format(disp);
- uint32_t px_size = lv_color_format_get_size(cf);
+ const bool wait_for_last_flush = LV_LINUX_FBDEV_RENDER_MODE == LV_DISPLAY_RENDER_MODE_FULL;
+ const bool is_last_flush = lv_display_flush_is_last(disp);
+ const bool skip_flush = wait_for_last_flush && !is_last_flush;
- lv_area_t rotated_area;
- lv_display_rotation_t rotation = lv_display_get_rotation(disp);
-
- /* Not all framebuffer kernel drivers support hardware rotation, so we need to handle it in software here */
- if(rotation != LV_DISPLAY_ROTATION_0 && LV_LINUX_FBDEV_RENDER_MODE == LV_DISPLAY_RENDER_MODE_PARTIAL) {
- /* (Re)allocate temporary buffer if needed */
- size_t buf_size = w * h * px_size;
- if(!dsc->rotated_buf || dsc->rotated_buf_size != buf_size) {
- dsc->rotated_buf = realloc(dsc->rotated_buf, buf_size);
- dsc->rotated_buf_size = buf_size;
- }
-
- /* Rotate the pixel buffer */
- uint32_t w_stride = lv_draw_buf_width_to_stride(w, cf);
- uint32_t h_stride = lv_draw_buf_width_to_stride(h, cf);
-
- switch(rotation) {
- case LV_DISPLAY_ROTATION_0:
- break;
- case LV_DISPLAY_ROTATION_90:
- lv_draw_sw_rotate(color_p, dsc->rotated_buf, w, h, w_stride, h_stride, rotation, cf);
- break;
- case LV_DISPLAY_ROTATION_180:
- lv_draw_sw_rotate(color_p, dsc->rotated_buf, w, h, w_stride, w_stride, rotation, cf);
- break;
- case LV_DISPLAY_ROTATION_270:
- lv_draw_sw_rotate(color_p, dsc->rotated_buf, w, h, w_stride, h_stride, rotation, cf);
- break;
- }
- color_p = dsc->rotated_buf;
-
- /* Rotate the area */
- rotated_area = *area;
- lv_display_rotate_area(disp, &rotated_area);
- area = &rotated_area;
-
- if(rotation != LV_DISPLAY_ROTATION_180) {
- w = lv_area_get_width(area);
- h = lv_area_get_height(area);
- }
+ if(skip_flush) {
+ lv_display_flush_ready(disp);
+ return;
}
- /* Ensure that we're within the framebuffer's bounds */
- if(area->x2 < 0 || area->y2 < 0 || area->x1 > (int32_t)dsc->vinfo.xres - 1 || area->y1 > (int32_t)dsc->vinfo.yres - 1) {
+ const lv_color_format_t cf = lv_display_get_color_format(disp);
+ const uint32_t px_size = lv_color_format_get_size(cf);
+
+ lv_area_t rotated_area;
+ const lv_display_rotation_t rotation = lv_display_get_rotation(disp);
+
+ /* Not all framebuffer kernel drivers support hardware rotation, so we need to handle it in software here */
+ if(rotation != LV_DISPLAY_ROTATION_0) {
+ int32_t src_w;
+ int32_t src_h;
+ uint32_t src_stride;
+
+ /* Direct render mode rotation only works if we rotate the whole screen at the same time
+ * To do that, we use the display's resolution and as the area
+ * we also grab the current draw buffer so that we can rotate the whole display */
+ if(LV_LINUX_FBDEV_RENDER_MODE == LV_DISPLAY_RENDER_MODE_DIRECT) {
+ if(!is_last_flush) {
+ /* We need to wait for the last flush when using direct render mode with rotation*/
+ lv_display_flush_ready(disp);
+ return;
+ }
+ lv_draw_buf_t * draw_buf = lv_display_get_buf_active(disp);
+ src_w = lv_display_get_horizontal_resolution(disp);
+ src_h = lv_display_get_vertical_resolution(disp);
+ src_stride = lv_draw_buf_width_to_stride(src_w, cf);
+ color_p = draw_buf->data;
+ rotated_area.x1 = rotated_area.y1 = 0;
+ lv_area_set_width(&rotated_area, src_w);
+ lv_area_set_height(&rotated_area, src_h);
+ }
+ else {
+ /* For partial and full render modes, we need to rotate the current area
+ * In Full mode we will rotate the whole display just like with direct render mode
+ * but we don't need to do anything special since the area is already the full area of the display
+ * For Partial mode we will rotate just the part we're currently displaying*/
+ src_w = lv_area_get_width(area);
+ src_h = lv_area_get_height(area);
+ src_stride = lv_draw_buf_width_to_stride(lv_area_get_width(area), cf);
+ rotated_area = *area;
+ }
+
+ lv_display_rotate_area(disp, &rotated_area);
+ const uint32_t dest_stride = lv_draw_buf_width_to_stride(lv_area_get_width(&rotated_area), cf);
+ const size_t buf_size = dest_stride * lv_area_get_height(&rotated_area);
+ if(!dsc->rotated_buf || dsc->rotated_buf_size != buf_size) {
+ dsc->rotated_buf = lv_realloc(dsc->rotated_buf, buf_size);
+ LV_ASSERT_MALLOC(dsc->rotated_buf);
+ dsc->rotated_buf_size = buf_size;
+ }
+ lv_draw_sw_rotate(color_p, dsc->rotated_buf, src_w, src_h, src_stride, dest_stride, rotation, cf);
+ area = &rotated_area;
+ color_p = dsc->rotated_buf;
+ }
+
+ lv_area_t display_area;
+ /* vinfo.xres and vinfo.yres will already be 1 less than the actual resolution. i.e: 1023x767 on a 1024x768 screen */
+ lv_area_set(&display_area, 0, 0, dsc->vinfo.xres, dsc->vinfo.yres);
+
+ /* TODO: Consider rendering the clipped area*/
+ if(!lv_area_is_in(area, &display_area, 0)) {
lv_display_flush_ready(disp);
return;
}
@@ -332,24 +354,25 @@ static void flush_cb(lv_display_t * disp, const lv_area_t * area, uint8_t * colo
(area->x1 + dsc->vinfo.xoffset) * px_size +
(area->y1 + dsc->vinfo.yoffset) * dsc->finfo.line_length;
- int32_t y;
- if(LV_LINUX_FBDEV_RENDER_MODE == LV_DISPLAY_RENDER_MODE_DIRECT) {
+
+ const int32_t w = lv_area_get_width(area);
+ if(LV_LINUX_FBDEV_RENDER_MODE == LV_DISPLAY_RENDER_MODE_DIRECT && rotation == LV_DISPLAY_ROTATION_0) {
uint32_t color_pos =
area->x1 * px_size +
area->y1 * disp->hor_res * px_size;
- for(y = area->y1; y <= area->y2; y++) {
+ for(int32_t y = area->y1; y <= area->y2; y++) {
write_to_fb(dsc, fb_pos, &color_p[color_pos], w * px_size);
fb_pos += dsc->finfo.line_length;
color_pos += disp->hor_res * px_size;
}
}
else {
- w = lv_area_get_width(area);
- for(y = area->y1; y <= area->y2; y++) {
+ const int32_t stride = lv_draw_buf_width_to_stride(w, cf);
+ for(int32_t y = area->y1; y <= area->y2; y++) {
write_to_fb(dsc, fb_pos, color_p, w * px_size);
fb_pos += dsc->finfo.line_length;
- color_p += w * px_size;
+ color_p += stride;
}
}
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/display/ft81x/lv_ft81x.h b/lib/libesp32_lvgl/lvgl/src/drivers/display/ft81x/lv_ft81x.h
index 0995d4a47..05899ee02 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/display/ft81x/lv_ft81x.h
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/display/ft81x/lv_ft81x.h
@@ -28,24 +28,24 @@ extern "C" {
**********************/
typedef struct {
- uint16_t hor_res;
- uint16_t ver_res;
+ uint16_t hor_res; /**< active display width */
+ uint16_t ver_res; /**< active display height */
- uint16_t hcycle;
- uint16_t hoffset;
- uint16_t hsync0;
- uint16_t hsync1;
- uint16_t vcycle;
- uint16_t voffset;
- uint16_t vsync0;
- uint16_t vsync1;
- uint8_t swizzle;
- uint8_t pclkpol;
- uint8_t cspread;
- uint8_t pclk;
+ uint16_t hcycle; /**< total number of clocks per line, incl front/back porch */
+ uint16_t hoffset; /**< start of active line */
+ uint16_t hsync0; /**< start of horizontal sync pulse */
+ uint16_t hsync1; /**< end of horizontal sync pulse */
+ uint16_t vcycle; /**< total number of lines per screen, including pre/post */
+ uint16_t voffset; /**< start of active screen */
+ uint16_t vsync0; /**< start of vertical sync pulse */
+ uint16_t vsync1; /**< end of vertical sync pulse */
+ uint8_t swizzle; /**< FT8xx output to LCD - pin order */
+ uint8_t pclkpol; /**< LCD data is clocked in on this PCLK edge */
+ uint8_t cspread; /**< helps with noise, when set to 1 fewer signals are changed simultaneously, reset-default: 1 */
+ uint8_t pclk; /**< 60MHz / pclk = pclk frequency */
- bool has_crystal;
- bool is_bt81x;
+ bool has_crystal; /**< has an external clock crystal */
+ bool is_bt81x; /**< is a BT series model, not FT */
} lv_ft81x_parameters_t;
typedef enum {
@@ -53,9 +53,10 @@ typedef enum {
LV_FT81X_SPI_OPERATION_CS_DEASSERT,
LV_FT81X_SPI_OPERATION_SEND,
LV_FT81X_SPI_OPERATION_RECEIVE
-} lv_ft81x_spi_operation;
+} lv_ft81x_spi_operation_t;
-typedef void (*lv_ft81x_spi_cb_t)(lv_display_t * disp, lv_ft81x_spi_operation operation, void * data, uint32_t length);
+typedef void (*lv_ft81x_spi_cb_t)(lv_display_t * disp, lv_ft81x_spi_operation_t operation, void * data,
+ uint32_t length);
/**********************
* GLOBAL PROTOTYPES
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/display/ft81x/lv_ft81x_defines.h b/lib/libesp32_lvgl/lvgl/src/drivers/display/ft81x/lv_ft81x_defines.h
index ae9a51109..9a81cd652 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/display/ft81x/lv_ft81x_defines.h
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/display/ft81x/lv_ft81x_defines.h
@@ -42,7 +42,7 @@ extern "C" {
#define CLR_STN 0x2
#define CLR_TAG 0x1
-/* SPI SIO/DIO/QIO tranfer widths */
+/* SPI SIO/DIO/QIO transfer widths */
#define SPI_WIDTH_SIO 0x0
#define SPI_WIDTH_DIO 0x1
#define SPI_WIDTH_QIO 0x2
@@ -168,7 +168,7 @@ extern "C" {
/* Defines related to inbuilt font */
#define EVE_NUMCHAR_PERFONT (128L) /* number of font characters per bitmap handle */
-#define EVE_FONT_TABLE_SIZE (148L) /* size of the font table - utilized for loopup by the graphics engine */
+#define EVE_FONT_TABLE_SIZE (148L) /* size of the font table - utilized for lookup by the graphics engine */
#define EVE_FONT_TABLE_POINTER (0xFFFFCUL) /* pointer to the inbuilt font tables starting from bitmap handle 16 */
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/display/lcd/lv_lcd_generic_mipi.c b/lib/libesp32_lvgl/lvgl/src/drivers/display/lcd/lv_lcd_generic_mipi.c
index f589ce9df..05edf3aa7 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/display/lcd/lv_lcd_generic_mipi.c
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/display/lcd/lv_lcd_generic_mipi.c
@@ -30,6 +30,7 @@ static void set_mirror(lv_lcd_generic_mipi_driver_t * drv, bool mirror_x, bool m
static void set_swap_xy(lv_lcd_generic_mipi_driver_t * drv, bool swap);
static void set_rotation(lv_lcd_generic_mipi_driver_t * drv, lv_display_rotation_t rot);
static void res_chg_event_cb(lv_event_t * e);
+static void delete_cb(lv_event_t * e);
static lv_lcd_generic_mipi_driver_t * get_driver(lv_display_t * disp);
static void flush_cb(lv_display_t * disp, const lv_area_t * area, uint8_t * px_map);
@@ -71,6 +72,9 @@ lv_display_t * lv_lcd_generic_mipi_create(uint32_t hor_res, uint32_t ver_res, lv
/* register resolution change callback (NOTE: this handles screen rotation as well) */
lv_display_add_event_cb(disp, res_chg_event_cb, LV_EVENT_RESOLUTION_CHANGED, NULL);
+ /* register object deletion callback for freeing driver struct */
+ lv_display_add_event_cb(disp, delete_cb, LV_EVENT_DELETE, NULL);
+
/* register flush callback */
lv_display_set_flush_cb(disp, flush_cb);
@@ -333,6 +337,15 @@ static void res_chg_event_cb(lv_event_t * e)
set_rotation(drv, rot);
}
+static void delete_cb(lv_event_t * e)
+{
+ lv_display_t * disp = lv_event_get_current_target(e);
+ lv_lcd_generic_mipi_driver_t * drv = get_driver(disp);
+ LV_ASSERT_NULL(drv);
+ lv_free(drv);
+ lv_display_set_driver_data(disp, NULL);
+}
+
static lv_lcd_generic_mipi_driver_t * get_driver(lv_display_t * disp)
{
return (lv_lcd_generic_mipi_driver_t *)lv_display_get_driver_data(disp);
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/display/lovyan_gfx/lv_lgfx_user.hpp b/lib/libesp32_lvgl/lvgl/src/drivers/display/lovyan_gfx/lv_lgfx_user.hpp
new file mode 100644
index 000000000..7dfce479e
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/display/lovyan_gfx/lv_lgfx_user.hpp
@@ -0,0 +1,53 @@
+#pragma once
+
+#if LV_USE_LOVYAN_GFX
+
+/**
+ * If using LovyanGFX create LGFX class that inherits from lgfx::LGFX_Device
+ * https://github.com/lovyan03/LovyanGFX/blob/master/examples/HowToUse/2_user_setting/2_user_setting.ino */
+
+/**
+ * If using other display drivers that is not LovyanGFX
+ * Create an LGFX wrapper class that implements the functions used in lv_lovyan_gfx.cpp */
+class LGFX
+{
+public:
+ LGFX(void) {}
+
+ bool init(void)
+ {
+ return true;
+ }
+
+ void initDMA(void) {}
+
+ void waitDMA(void) {}
+
+ void fillScreen(uint16_t color) {}
+
+ void setRotation(uint8_t rotation) {}
+
+ void pushImage(int32_t x, int32_t y, int32_t w, int32_t h, uint16_t *data) {}
+
+ void pushImageDMA(int32_t x, int32_t y, int32_t w, int32_t h, uint16_t *data) {}
+
+ void startWrite(void) {}
+
+ uint32_t getStartCount(void)
+ {
+ return 0;
+ }
+
+ void endWrite(void) {}
+
+ void setBrightness(uint8_t brightness){}
+
+ void writePixel(int32_t x, int32_t y, const uint16_t color) {}
+
+ bool getTouch(uint16_t *x, uint16_t *y)
+ {
+ return false;
+ }
+};
+
+#endif
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/display/lovyan_gfx/lv_lovyan_gfx.cpp b/lib/libesp32_lvgl/lvgl/src/drivers/display/lovyan_gfx/lv_lovyan_gfx.cpp
new file mode 100644
index 000000000..1cfa88f98
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/display/lovyan_gfx/lv_lovyan_gfx.cpp
@@ -0,0 +1,145 @@
+/**
+ * @file lv_lovyan_gfx.cpp
+ *
+ */
+
+/*********************
+ * INCLUDES
+ *********************/
+#include "lv_lovyan_gfx.h"
+#if LV_USE_LOVYAN_GFX
+
+#include LV_LGFX_USER_INCLUDE
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+typedef struct {
+ LGFX * tft;
+} lv_lovyan_gfx_t;
+
+/**********************
+ * STATIC PROTOTYPES
+ **********************/
+static void flush_cb(lv_display_t * disp, const lv_area_t * area, uint8_t * px_map);
+static void resolution_changed_event_cb(lv_event_t * e);
+static void read_touch(lv_indev_t * indev_driver, lv_indev_data_t * data);
+
+/**********************
+ * STATIC VARIABLES
+ **********************/
+
+/**********************
+ * MACROS
+ **********************/
+
+/**********************
+ * GLOBAL FUNCTIONS
+ **********************/
+
+lv_display_t * lv_lovyan_gfx_create(uint32_t hor_res, uint32_t ver_res, void * buf, uint32_t buf_size_bytes, bool touch)
+{
+ lv_lovyan_gfx_t * dsc = (lv_lovyan_gfx_t *)lv_malloc_zeroed(sizeof(lv_lovyan_gfx_t));
+ LV_ASSERT_MALLOC(dsc);
+ if(dsc == NULL) return NULL;
+
+ lv_display_t * disp = lv_display_create(hor_res, ver_res);
+ if(disp == NULL) {
+ lv_free(dsc);
+ return NULL;
+ }
+
+ dsc->tft = new LGFX();
+ dsc->tft->init(); /* TFT init */
+ dsc->tft->initDMA();
+ dsc->tft->setRotation(0);
+ dsc->tft->setBrightness(255);
+ dsc->tft->startWrite();
+ dsc->tft->fillScreen(0x00000);
+
+ lv_display_set_driver_data(disp, (void *)dsc);
+ lv_display_set_flush_cb(disp, flush_cb);
+ lv_display_set_color_format(disp, LV_COLOR_FORMAT_RGB565_SWAPPED);
+ lv_display_add_event_cb(disp, resolution_changed_event_cb, LV_EVENT_RESOLUTION_CHANGED, NULL);
+ lv_display_set_buffers(disp, (void *)buf, NULL, buf_size_bytes, LV_DISPLAY_RENDER_MODE_PARTIAL);
+
+ if(touch) {
+ /* Register an input device when touch is enabled */
+ lv_indev_t * lv_input = lv_indev_create();
+ lv_indev_set_driver_data(lv_input, (void *)dsc);
+ lv_indev_set_type(lv_input, LV_INDEV_TYPE_POINTER);
+ lv_indev_set_read_cb(lv_input, read_touch);
+ }
+
+ return disp;
+}
+
+/**********************
+ * STATIC FUNCTIONS
+ **********************/
+
+static void flush_cb(lv_display_t * disp, const lv_area_t * area, uint8_t * px_map)
+{
+ lv_lovyan_gfx_t * dsc = (lv_lovyan_gfx_t *)lv_display_get_driver_data(disp);
+
+ uint32_t w = (area->x2 - area->x1 + 1);
+ uint32_t h = (area->y2 - area->y1 + 1);
+
+
+ if(dsc->tft->getStartCount() == 0) {
+ dsc->tft->endWrite();
+ }
+ dsc->tft->pushImageDMA(area->x1, area->y1, w, h, (uint16_t *)px_map);
+ dsc->tft->waitDMA();
+
+ lv_display_flush_ready(disp);
+
+}
+
+static void resolution_changed_event_cb(lv_event_t * e)
+{
+ lv_display_t * disp = (lv_display_t *)lv_event_get_target(e);
+ lv_lovyan_gfx_t * dsc = (lv_lovyan_gfx_t *)lv_display_get_driver_data(disp);
+ int32_t hor_res = lv_display_get_horizontal_resolution(disp);
+ int32_t ver_res = lv_display_get_vertical_resolution(disp);
+ lv_display_rotation_t rot = lv_display_get_rotation(disp);
+
+ /* handle rotation */
+ switch(rot) {
+ case LV_DISPLAY_ROTATION_0:
+ dsc->tft->setRotation(0); /* Portrait orientation */
+ break;
+ case LV_DISPLAY_ROTATION_90:
+ dsc->tft->setRotation(1); /* Landscape orientation */
+ break;
+ case LV_DISPLAY_ROTATION_180:
+ dsc->tft->setRotation(2); /* Portrait orientation, flipped */
+ break;
+ case LV_DISPLAY_ROTATION_270:
+ dsc->tft->setRotation(3); /* Landscape orientation, flipped */
+ break;
+ }
+}
+
+static void read_touch(lv_indev_t * indev_driver, lv_indev_data_t * data)
+{
+ lv_lovyan_gfx_t * dsc = (lv_lovyan_gfx_t *)lv_indev_get_driver_data(indev_driver);
+ uint16_t x;
+ uint16_t y;
+ bool touched = dsc->tft->getTouch(&x, &y);
+ if(!touched) {
+ data->state = LV_INDEV_STATE_RELEASED;
+ }
+ else {
+ data->state = LV_INDEV_STATE_PRESSED;
+ /*Set the coordinates*/
+ data->point.x = x;
+ data->point.y = y;
+ }
+}
+
+#endif /*LV_USE_LOVYAN_GFX*/
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/display/lovyan_gfx/lv_lovyan_gfx.h b/lib/libesp32_lvgl/lvgl/src/drivers/display/lovyan_gfx/lv_lovyan_gfx.h
new file mode 100644
index 000000000..1d27c454d
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/display/lovyan_gfx/lv_lovyan_gfx.h
@@ -0,0 +1,45 @@
+/**
+ * @file lv_lovyan_gfx.h
+ *
+ */
+
+#ifndef LV_LOVYAN_GFX_H
+#define LV_LOVYAN_GFX_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*********************
+ * INCLUDES
+ *********************/
+#include "../../../display/lv_display.h"
+#include "../../../indev/lv_indev.h"
+
+#if LV_USE_LOVYAN_GFX
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+/**********************
+ * GLOBAL PROTOTYPES
+ **********************/
+lv_display_t * lv_lovyan_gfx_create(uint32_t hor_res, uint32_t ver_res, void * buf, uint32_t buf_size_bytes,
+ bool touch);
+
+/**********************
+ * MACROS
+ **********************/
+
+#endif /* LV_USE_LOVYAN_GFX */
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* LV_LOVYAN_GFX_H */
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/display/nv3007/lv_nv3007.c b/lib/libesp32_lvgl/lvgl/src/drivers/display/nv3007/lv_nv3007.c
new file mode 100644
index 000000000..5e96adc7e
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/display/nv3007/lv_nv3007.c
@@ -0,0 +1,226 @@
+/**
+ * @file lv_nv3007.c
+ *
+ */
+
+/*********************
+ * INCLUDES
+ *********************/
+#include "lv_nv3007.h"
+
+#if LV_USE_NV3007
+
+/*********************
+ * DEFINES
+ *********************/
+
+#define NV3007_SLPIN 0x10
+#define NV3007_SLPOUT 0x11
+
+#define NV3007_INVOFF 0x20
+#define NV3007_INVON 0x21
+#define NV3007_DISPOFF 0x28
+#define NV3007_DISPON 0x29
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+/**********************
+ * STATIC PROTOTYPES
+ **********************/
+
+/**********************
+ * STATIC CONSTANTS
+ **********************/
+
+/* init commands based on ArduinoGFX NV3007 driver */
+static const uint8_t init_cmd_list[] = {
+ 0x9a, 1, 0x08,
+ 0x9b, 1, 0x08,
+ 0x9c, 1, 0xb0,
+ 0x9d, 1, 0x16,
+ 0x9e, 1, 0xc4,
+ 0x8f, 2, 0x55, 0x04,
+ 0x84, 1, 0x90,
+ 0x83, 1, 0x7b,
+ 0x85, 1, 0x33,
+ 0x60, 1, 0x00,
+ 0x70, 1, 0x00,
+ 0x61, 1, 0x02,
+ 0x71, 1, 0x02,
+ 0x62, 1, 0x04,
+ 0x72, 1, 0x04,
+ 0x6c, 1, 0x29,
+ 0x7c, 1, 0x29,
+ 0x6d, 1, 0x31,
+ 0x7d, 1, 0x31,
+ 0x6e, 1, 0x0f,
+ 0x7e, 1, 0x0f,
+ 0x66, 1, 0x21,
+ 0x76, 1, 0x21,
+ 0x68, 1, 0x3A,
+ 0x78, 1, 0x3A,
+ 0x63, 1, 0x07,
+ 0x73, 1, 0x07,
+ 0x64, 1, 0x05,
+ 0x74, 1, 0x05,
+ 0x65, 1, 0x02,
+ 0x75, 1, 0x02,
+ 0x67, 1, 0x23,
+ 0x77, 1, 0x23,
+ 0x69, 1, 0x08,
+ 0x79, 1, 0x08,
+ 0x6a, 1, 0x13,
+ 0x7a, 1, 0x13,
+ 0x6b, 1, 0x13,
+ 0x7b, 1, 0x13,
+ 0x6f, 1, 0x00,
+ 0x7f, 1, 0x00,
+ 0x50, 1, 0x00,
+ 0x52, 1, 0xd6,
+ 0x53, 1, 0x08,
+ 0x54, 1, 0x08,
+ 0x55, 1, 0x1e,
+ 0x56, 1, 0x1c,
+
+ 0xa0, 3, 0x2b, 0x24, 0x00,
+
+ 0xa1, 1, 0x87,
+ 0xa2, 1, 0x86,
+ 0xa5, 1, 0x00,
+ 0xa6, 1, 0x00,
+ 0xa7, 1, 0x00,
+ 0xa8, 1, 0x36,
+ 0xa9, 1, 0x7e,
+ 0xaa, 1, 0x7e,
+ 0xB9, 1, 0x85,
+ 0xBA, 1, 0x84,
+ 0xBB, 1, 0x83,
+ 0xBC, 1, 0x82,
+ 0xBD, 1, 0x81,
+ 0xBE, 1, 0x80,
+ 0xBF, 1, 0x01,
+ 0xC0, 1, 0x02,
+ 0xc1, 1, 0x00,
+ 0xc2, 1, 0x00,
+ 0xc3, 1, 0x00,
+ 0xc4, 1, 0x33,
+ 0xc5, 1, 0x7e,
+ 0xc6, 1, 0x7e,
+ 0xC8, 2, 0x33, 0x33,
+ 0xC9, 1, 0x68,
+ 0xCA, 1, 0x69,
+ 0xCB, 1, 0x6a,
+ 0xCC, 1, 0x6b,
+ 0xCD, 2, 0x33, 0x33,
+ 0xCE, 1, 0x6c,
+ 0xCF, 1, 0x6d,
+ 0xD0, 1, 0x6e,
+ 0xD1, 1, 0x6f,
+ 0xAB, 2, 0x03, 0x67,
+ 0xAC, 2, 0x03, 0x6b,
+ 0xAD, 2, 0x03, 0x68,
+ 0xAE, 2, 0x03, 0x6c,
+ 0xb3, 1, 0x00,
+ 0xb4, 1, 0x00,
+ 0xb5, 1, 0x00,
+ 0xB6, 1, 0x32,
+ 0xB7, 1, 0x7e,
+ 0xB8, 1, 0x7e,
+ 0xe0, 1, 0x00,
+ 0xe1, 2, 0x03, 0x0f,
+ 0xe2, 1, 0x04,
+ 0xe3, 1, 0x01,
+ 0xe4, 1, 0x0e,
+ 0xe5, 1, 0x01,
+ 0xe6, 1, 0x19,
+ 0xe7, 1, 0x10,
+ 0xe8, 1, 0x10,
+ 0xea, 1, 0x12,
+ 0xeb, 1, 0xd0,
+ 0xec, 1, 0x04,
+ 0xed, 1, 0x07,
+ 0xee, 1, 0x07,
+ 0xef, 1, 0x09,
+ 0xf0, 1, 0xd0,
+ 0xf1, 1, 0x0e,
+ 0xF9, 1, 0x17,
+
+ 0xf2, 4, 0x2c, 0x1b, 0x0b, 0x20,
+
+ 0xe9, 1, 0x29,
+ 0xec, 1, 0x04,
+ 0x35, 1, 0x00,
+ 0x44, 2, 0x00, 0x10,
+ 0x46, 1, 0x10,
+
+ LV_LCD_CMD_DELAY_MS, LV_LCD_CMD_EOF
+};
+
+static const uint8_t init_cmd_list_2[] = {
+ 0x3a, 1, 0x05,
+ NV3007_SLPOUT, 0,
+ LV_LCD_CMD_DELAY_MS, 22,
+ NV3007_DISPON, 0,
+
+ LV_LCD_CMD_DELAY_MS, LV_LCD_CMD_EOF
+};
+
+/**********************
+ * STATIC VARIABLES
+ **********************/
+
+/**********************
+ * MACROS
+ **********************/
+
+/**********************
+ * GLOBAL FUNCTIONS
+ **********************/
+
+lv_display_t * lv_nv3007_create(uint32_t hor_res, uint32_t ver_res, lv_lcd_flag_t flags,
+ lv_nv3007_send_cmd_cb_t send_cmd_cb, lv_nv3007_send_color_cb_t send_color_cb)
+{
+ lv_display_t * disp = lv_lcd_generic_mipi_create(hor_res, ver_res, flags, send_cmd_cb, send_color_cb);
+
+ send_cmd_cb(disp, (const uint8_t[]) {
+ 0xFF
+ }, 1, (const uint8_t[]) {
+ 0xA5
+ }, 1);
+ lv_lcd_generic_mipi_send_cmd_list(disp, init_cmd_list);
+ send_cmd_cb(disp, (const uint8_t[]) {
+ 0xFF
+ }, 1, (const uint8_t[]) {
+ 0x00
+ }, 1);
+ lv_lcd_generic_mipi_send_cmd_list(disp, init_cmd_list_2);
+ return disp;
+}
+
+void lv_nv3007_set_gap(lv_display_t * disp, uint16_t x, uint16_t y)
+{
+ lv_lcd_generic_mipi_set_gap(disp, x, y);
+}
+
+void lv_nv3007_set_invert(lv_display_t * disp, bool invert)
+{
+ lv_lcd_generic_mipi_set_invert(disp, invert);
+}
+
+void lv_nv3007_set_gamma_curve(lv_display_t * disp, uint8_t gamma)
+{
+ lv_lcd_generic_mipi_set_gamma_curve(disp, gamma);
+}
+
+void lv_nv3007_send_cmd_list(lv_display_t * disp, const uint8_t * cmd_list)
+{
+ lv_lcd_generic_mipi_send_cmd_list(disp, cmd_list);
+}
+
+/**********************
+ * STATIC FUNCTIONS
+ **********************/
+
+#endif /*LV_USE_NV3007*/
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/display/nv3007/lv_nv3007.h b/lib/libesp32_lvgl/lvgl/src/drivers/display/nv3007/lv_nv3007.h
new file mode 100644
index 000000000..9b5d581e6
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/display/nv3007/lv_nv3007.h
@@ -0,0 +1,94 @@
+/**
+ * @file lv_nv3007.h
+ *
+ * This driver is just a wrapper around the generic MIPI compatible LCD controller driver
+ *
+ */
+
+#ifndef LV_NV3007_H
+#define LV_NV3007_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*********************
+ * INCLUDES
+ *********************/
+
+#include "../lcd/lv_lcd_generic_mipi.h"
+
+#if LV_USE_NV3007
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+typedef lv_lcd_send_cmd_cb_t lv_nv3007_send_cmd_cb_t;
+typedef lv_lcd_send_color_cb_t lv_nv3007_send_color_cb_t;
+
+/**********************
+ * GLOBAL PROTOTYPES
+ **********************/
+
+/**
+ * Create an LCD display with NV3007 driver
+ * @param hor_res horizontal resolution
+ * @param ver_res vertical resolution
+ * @param flags default configuration settings (mirror, RGB ordering, etc.)
+ * @param send_cmd platform-dependent function to send a command to the LCD controller (usually uses polling transfer)
+ * @param send_color platform-dependent function to send pixel data to the LCD controller (usually uses DMA transfer: must implement a 'ready' callback)
+ * @return pointer to the created display
+ */
+lv_display_t * lv_nv3007_create(uint32_t hor_res, uint32_t ver_res, lv_lcd_flag_t flags,
+ lv_nv3007_send_cmd_cb_t send_cmd_cb, lv_nv3007_send_color_cb_t send_color_cb);
+
+/**
+ * Set gap, i.e., the offset of the (0,0) pixel in the VRAM
+ * @param disp display object
+ * @param x x offset
+ * @param y y offset
+ */
+void lv_nv3007_set_gap(lv_display_t * disp, uint16_t x, uint16_t y);
+
+/**
+ * Set color inversion
+ * @param disp display object
+ * @param invert false: normal, true: invert
+ */
+void lv_nv3007_set_invert(lv_display_t * disp, bool invert);
+
+/**
+ * Set gamma curve
+ * @param disp display object
+ * @param gamma gamma curve
+ */
+void lv_nv3007_set_gamma_curve(lv_display_t * disp, uint8_t gamma);
+
+/**
+ * Send list of commands.
+ * @param disp display object
+ * @param cmd_list controller and panel-specific commands
+ */
+void lv_nv3007_send_cmd_list(lv_display_t * disp, const uint8_t * cmd_list);
+
+/**********************
+ * OTHERS
+ **********************/
+
+/**********************
+ * MACROS
+ **********************/
+
+
+#endif /*LV_USE_NV3007*/
+
+#ifdef __cplusplus
+} /*extern "C"*/
+#endif
+
+#endif /*LV_NV3007_H*/
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/display/nxp_elcdif/lv_nxp_elcdif.c b/lib/libesp32_lvgl/lvgl/src/drivers/display/nxp_elcdif/lv_nxp_elcdif.c
new file mode 100644
index 000000000..c25b371ee
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/display/nxp_elcdif/lv_nxp_elcdif.c
@@ -0,0 +1,185 @@
+/**
+ * @file lv_nxp_elcdif.c
+ *
+ * Driver for NXP's ELCD
+ */
+
+#include "lv_nxp_elcdif.h"
+
+#if LV_USE_NXP_ELCDIF == 1
+/*********************
+ * INCLUDES
+ *********************/
+#include "../../../display/lv_display_private.h"
+#include "fsl_video_common.h"
+#include "fsl_elcdif.h"
+#include "fsl_cache.h"
+
+/*********************
+ * DEFINES
+ *********************/
+#if (defined(FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET) && (0 != FSL_FEATURE_MEMORY_HAS_ADDRESS_OFFSET))
+ #define ELCDIF_ADDR_IP_2_CPU(addr) (MEMORY_ConvertMemoryMapAddress((uint32_t)(addr), kMEMORY_DMA2Local))
+#else
+ #define ELCDIF_ADDR_IP_2_CPU(addr) (addr)
+#endif
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+/**********************
+ * STATIC PROTOTYPES
+ **********************/
+static void flush_cb(lv_display_t * disp, const lv_area_t * area, uint8_t * color_p);
+static void flush_partial_cb(lv_display_t * disp, const lv_area_t * area, uint8_t * color_p);
+static lv_color_format_t lv_nxp_elcdif_to_lvgl_color_converter(elcdif_rgb_mode_config_t * config);
+
+/**********************
+ * STATIC VARIABLES
+ **********************/
+
+/**********************
+ * MACROS
+ **********************/
+
+/**********************
+ * GLOBAL FUNCTIONS
+ **********************/
+
+lv_display_t * lv_nxp_display_elcdif_create_direct(LCDIF_Type * base, const elcdif_rgb_mode_config_t * config,
+ void * frame_buffer1,
+ void * frame_buffer2, size_t buf_size)
+{
+ LV_ASSERT(base);
+ LV_ASSERT(config);
+
+ lv_display_t * disp = lv_display_create(config->panelWidth, config->panelHeight);
+ LV_ASSERT(disp);
+
+ lv_color_format_t color_format = lv_nxp_elcdif_to_lvgl_color_converter((elcdif_rgb_mode_config_t *)config);
+ lv_display_set_color_format(disp, color_format);
+ lv_display_set_buffers(disp, frame_buffer1, frame_buffer2, buf_size, LV_DISPLAY_RENDER_MODE_DIRECT);
+ lv_display_set_user_data(disp, base);
+
+ ELCDIF_EnableInterrupts(base, kELCDIF_CurFrameDoneInterruptEnable);
+ NVIC_EnableIRQ(eLCDIF_IRQn);
+
+ return disp;
+}
+
+lv_display_t * lv_nxp_display_elcdif_create_partial(LCDIF_Type * base, const elcdif_rgb_mode_config_t * config,
+ void * frame_buffer1,
+ void * frame_buffer2, size_t buf_size)
+{
+ LV_ASSERT(base);
+ LV_ASSERT(config);
+
+ /* Create a direct mode display and then update the buffers to be set in partial mode */
+ lv_display_t * disp = lv_nxp_display_elcdif_create_direct(base, config, frame_buffer1, frame_buffer2, buf_size);
+ ELCDIF_DisableInterrupts(base, kELCDIF_CurFrameDoneInterruptEnable);
+ NVIC_DisableIRQ(eLCDIF_IRQn);
+
+ lv_display_set_flush_cb(disp, flush_partial_cb);
+ lv_display_set_buffers(disp, frame_buffer1, frame_buffer2, buf_size, LV_DISPLAY_RENDER_MODE_PARTIAL);
+
+ ELCDIF_EnableInterrupts(base, kELCDIF_CurFrameDoneInterruptEnable);
+ NVIC_EnableIRQ(eLCDIF_IRQn);
+
+ return disp;
+}
+
+void lv_nxp_display_elcdif_event_handler(const lv_display_t * disp)
+{
+ if(disp == NULL) {
+ /* Just return since no valid display has been set yet */
+ return;
+ }
+
+ LCDIF_Type * base = (LCDIF_Type *)lv_display_get_user_data((lv_display_t *)disp);
+ uint32_t intStatus = ELCDIF_GetInterruptStatus(base);
+
+ ELCDIF_ClearInterruptStatus(base, intStatus);
+
+ if(intStatus & kELCDIF_CurFrameDone) {
+ /* flush ready is ISR safe and atomic, so calling inside of the
+ * framebuffer interrupt is safe and makes the flush chain
+ * non blocking even in bare metal systems.
+ */
+ lv_disp_flush_ready((lv_display_t *)disp);
+ }
+
+ SDK_ISR_EXIT_BARRIER;
+}
+
+/**********************
+ * STATIC FUNCTIONS
+ **********************/
+
+static void flush_cb(lv_display_t * disp, const lv_area_t * area, uint8_t * color_p)
+{
+ LCDIF_Type * base = (LCDIF_Type *)lv_display_get_user_data(disp);
+
+ DCACHE_CleanInvalidateByRange((uint32_t)color_p, lv_display_get_draw_buf_size(disp));
+
+ if(!lv_display_flush_is_last(disp)) {
+ lv_disp_flush_ready(disp);
+ return;
+ }
+ ELCDIF_SetNextBufferAddr(base, (uint32_t)color_p);
+}
+
+static void flush_partial_cb(lv_display_t * disp, const lv_area_t * area, uint8_t * color_p)
+{
+ LCDIF_Type * base = (LCDIF_Type *)lv_display_get_user_data(disp);
+
+ DCACHE_CleanInvalidateByRange((uint32_t)color_p, lv_display_get_draw_buf_size(disp));
+
+ uint8_t * fb = (uint8_t *)ELCDIF_ADDR_IP_2_CPU(base->CUR_BUF);
+ int32_t w = lv_area_get_width(area);
+ int32_t h = lv_area_get_height(area);
+ int32_t disp_w = lv_display_get_horizontal_resolution(disp);
+ int32_t disp_h = lv_display_get_vertical_resolution(disp);
+ int32_t bytes_per_pixel = LV_COLOR_FORMAT_GET_SIZE(lv_display_get_color_format(disp));
+ int32_t i;
+
+ fb = fb + area->y1 * disp_h;
+ fb = fb + area->x1;
+
+ for(i = 0; i < h; i++) {
+ lv_memcpy(fb, color_p, w * bytes_per_pixel);
+ fb += disp_h;
+ color_p += w;
+ }
+}
+
+static lv_color_format_t lv_nxp_elcdif_to_lvgl_color_converter(elcdif_rgb_mode_config_t * config)
+{
+ /*Handle color format conversion*/
+ lv_color_format_t color_format;
+
+ switch(config->pixelFormat) {
+ case kELCDIF_PixelFormatRAW8 :
+ color_format = LV_COLOR_FORMAT_L8;
+ break;
+ case kELCDIF_PixelFormatRGB565 :
+ color_format = LV_COLOR_FORMAT_RGB565;
+ break;
+ case kELCDIF_PixelFormatXRGB8888 :
+ color_format = LV_COLOR_FORMAT_XRGB8888;
+ break;
+ case kELCDIF_PixelFormatRGB888 :
+ color_format = LV_COLOR_FORMAT_RGB888;
+ break;
+ /*
+ There are some color formats in ELCDIF which LVGL does not support.
+ For these, use unknown format and drop a msg for the user
+ */
+ default :
+ color_format = LV_COLOR_FORMAT_UNKNOWN;
+ LV_LOG_WARN("Not supported color format in ELCDIF. Using LV_UNKNOWN!");
+ }
+ return color_format;
+}
+
+#endif /*LV_USE_NXP_ELCDIF*/
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/display/nxp_elcdif/lv_nxp_elcdif.h b/lib/libesp32_lvgl/lvgl/src/drivers/display/nxp_elcdif/lv_nxp_elcdif.h
new file mode 100644
index 000000000..29625e9e3
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/display/nxp_elcdif/lv_nxp_elcdif.h
@@ -0,0 +1,84 @@
+/**
+ * @file lv_nxp_elcdif.h
+ * Driver for NXP's ELCD
+ */
+
+#ifndef LV_NXP_ELCDIF_H
+#define LV_NXP_ELCDIF_H
+
+#include "../../../lvgl.h"
+#include "../../../display/lv_display.h"
+
+#if LV_USE_NXP_ELCDIF == 1
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*********************
+ * INCLUDES
+ *********************/
+
+#include "fsl_elcdif.h"
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+/**********************
+ * GLOBAL PROTOTYPES
+ **********************/
+
+/**
+ * Attach LVGL to ELCDIF using DIRECT rendering mode.
+ * ELCDIF should be already initialized.
+ * @param base The NXP eLCD controller base address
+ * @param config NXP eLCD config object
+ * @param frame_buffer1 pointer the first frame buffers
+ * @param frame_buffer2 pointer the second frame buffers
+ * @param buf_size size of a buffer in bytes (must be at least as large as the screen)
+ * @return a display object initialized and registerd on the LVGL runtime
+ */
+lv_display_t * lv_nxp_display_elcdif_create_direct(LCDIF_Type * base, const elcdif_rgb_mode_config_t * config,
+ void * frame_buffer1,
+ void * frame_buffer2, size_t buf_size);
+
+
+/**
+* Attach LVGL to ELCDIF using PARTIAL rendering mode.
+* ELCDIF should be already initialized.
+* @param base The NXP eLCD controller base address
+* @param config NXP eLCD config object
+* @param frame_buffer1 pointer the first frame buffers
+* @param frame_buffer2 pointer the second frame buffers
+* @param buf_size size of a buffer in bytes
+* @return a display object initialized and registerd on the LVGL runtime
+*/
+lv_display_t * lv_nxp_display_elcdif_create_partial(LCDIF_Type * base, const elcdif_rgb_mode_config_t * config,
+ void * frame_buffer1,
+ void * frame_buffer2, size_t buf_size);
+
+/**
+ * Call this function on the LCD Interrupt Service Routine
+ * It tells to LVGL what to do when a framebuffer is transmitted
+ * to the LCD panel
+ * @param disp The display instance that contains the eLCD related data
+ *
+ * @note: the parameter disp is tipycally the return value after
+ * `lv_nxp_display_elcdif_create_direct` has been sucessfully executed
+ */
+void lv_nxp_display_elcdif_event_handler(const lv_display_t * disp);
+/**********************
+ * MACROS
+ **********************/
+
+#ifdef __cplusplus
+} /*extern "C"*/
+#endif
+
+#endif /*LV_USE_NXP_ELCDIF*/
+
+#endif /* LV_NXP_ELCDIF_H */
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/display/st_ltdc/lv_st_ltdc.c b/lib/libesp32_lvgl/lvgl/src/drivers/display/st_ltdc/lv_st_ltdc.c
index 0b167f14b..10599d152 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/display/st_ltdc/lv_st_ltdc.c
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/display/st_ltdc/lv_st_ltdc.c
@@ -13,16 +13,18 @@
#include "lv_st_ltdc.h"
#include "../../../display/lv_display_private.h"
#include "../../../draw/sw/lv_draw_sw.h"
-#include "ltdc.h"
+#include "main.h"
#if LV_ST_LTDC_USE_DMA2D_FLUSH
#if LV_USE_DRAW_DMA2D
#error cannot use LV_ST_LTDC_USE_DMA2D_FLUSH with LV_USE_DRAW_DMA2D
#endif /*LV_USE_DRAW_DMA2D*/
- #include "dma2d.h"
+ extern DMA2D_HandleTypeDef hdma2d;
#endif /*LV_ST_LTDC_USE_DMA2D_FLUSH*/
+extern LTDC_HandleTypeDef hltdc;
+
/*********************
* DEFINES
*********************/
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/draw/eve/lv_draw_eve_display.c b/lib/libesp32_lvgl/lvgl/src/drivers/draw/eve/lv_draw_eve_display.c
new file mode 100644
index 000000000..e6c3d3a14
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/draw/eve/lv_draw_eve_display.c
@@ -0,0 +1,278 @@
+/**
+ * @file lv_draw_eve_display.c
+ *
+ */
+
+/*********************
+ * INCLUDES
+ *********************/
+
+#include "lv_draw_eve_display.h"
+#if LV_USE_DRAW_EVE
+
+#include "../../../draw/eve/lv_eve.h"
+#include "../../../draw/eve/lv_draw_eve.h"
+#include "../../../display/lv_display_private.h"
+#include "../../../misc/lv_text_private.h"
+
+#include "../../../libs/FT800-FT813/EVE_commands.h"
+
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+/**********************
+ * STATIC PROTOTYPES
+ **********************/
+
+static void flush_cb(lv_display_t * disp, const lv_area_t * area, uint8_t * px_map);
+static void resolution_changed_cb(lv_event_t * e);
+static void render_start_cb(lv_event_t * e);
+static void render_ready_cb(lv_event_t * e);
+static void touch_read_cb(lv_indev_t * indev, lv_indev_data_t * data);
+
+/**********************
+ * STATIC VARIABLES
+ **********************/
+
+/**********************
+ * MACROS
+ **********************/
+
+/**********************
+ * GLOBAL FUNCTIONS
+ **********************/
+
+lv_display_t * lv_draw_eve_display_create(const lv_draw_eve_parameters_t * params, lv_draw_eve_operation_cb_t op_cb,
+ void * user_data)
+{
+ static uint32_t dummy_buf; /* It won't be used as it will send commands instead of draw pixels. */
+
+ lv_display_t * disp = lv_display_create(params->hor_res, params->ver_res);
+ lv_display_set_flush_cb(disp, flush_cb);
+ lv_display_set_buffers(disp, &dummy_buf, NULL,
+ params->hor_res * params->ver_res * LV_COLOR_FORMAT_GET_SIZE(LV_COLOR_FORMAT_NATIVE),
+ LV_DISPLAY_RENDER_MODE_FULL); /* recreate the full display list each refresh */
+ lv_display_add_event_cb(disp, resolution_changed_cb, LV_EVENT_RESOLUTION_CHANGED, NULL);
+ lv_display_add_event_cb(disp, render_start_cb, LV_EVENT_RENDER_START, NULL);
+ lv_display_add_event_cb(disp, render_ready_cb, LV_EVENT_RENDER_READY, NULL);
+ lv_display_set_driver_data(disp, user_data);
+
+ lv_draw_eve_set_display_data(disp, params, op_cb);
+
+ EVE_init();
+ EVE_memWrite8(REG_PWM_DUTY, EVE_BACKLIGHT_PWM); /* 0 = off, 0x80 = max */
+
+ return disp;
+}
+
+void * lv_draw_eve_display_get_user_data(lv_display_t * disp)
+{
+ return lv_display_get_driver_data(disp);
+}
+
+lv_indev_t * lv_draw_eve_touch_create(lv_display_t * disp)
+{
+ lv_indev_t * indev = lv_indev_create();
+
+ lv_indev_set_display(indev, disp);
+ lv_indev_set_type(indev, LV_INDEV_TYPE_POINTER);
+ lv_indev_set_read_cb(indev, touch_read_cb);
+
+ return indev;
+}
+
+void lv_draw_eve_pre_upload_image(lv_display_t * disp, const void * src)
+{
+ LV_ASSERT_MSG(disp->flush_cb == flush_cb, "tried to do an LVGL EVE pre-upload without a draw_eve display");
+
+ if(!lv_draw_eve_image_src_check(src)) {
+ return;
+ }
+
+ uint32_t ramg_addr = lv_draw_eve_image_upload_image(false, src);
+ if(ramg_addr == LV_DRAW_EVE_RAMG_OUT_OF_RAMG) {
+ LV_LOG_WARN("Could not pre-upload image because space could not be allocated in RAM_G.");
+ }
+}
+
+void lv_draw_eve_pre_upload_font_range(lv_display_t * disp, const lv_font_t * font, uint32_t unicode_range_start,
+ uint32_t unicode_range_end)
+{
+ LV_ASSERT_MSG(disp->flush_cb == flush_cb, "tried to do an LVGL EVE pre-upload without a draw_eve display");
+
+ if(!lv_draw_eve_label_font_check(font)) {
+ return;
+ }
+
+ for(uint32_t i = unicode_range_start; i <= unicode_range_end; i++) {
+ lv_font_glyph_dsc_t glyph_dsc;
+ bool found = lv_font_get_glyph_dsc_fmt_txt(font, &glyph_dsc, i, '\0');
+ if(!found) {
+ LV_LOG_INFO("Could not pre-upload glyph with unicode code point '0x%"LV_PRIX32"' "
+ "because it is not part of the font", i);
+ continue;
+ }
+ uint32_t ramg_addr = lv_draw_eve_label_upload_glyph(false, font->dsc, glyph_dsc.gid.index);
+ if(ramg_addr == LV_DRAW_EVE_RAMG_OUT_OF_RAMG) {
+ LV_LOG_WARN("Could not pre-upload glyph because space could not be allocated in RAM_G.");
+ /* don't return in case there are smaller glyphs that there is space for */
+ }
+ }
+}
+
+void lv_draw_eve_pre_upload_font_text(lv_display_t * disp, const lv_font_t * font, const char * text)
+{
+ LV_ASSERT_MSG(disp->flush_cb == flush_cb, "tried to do an LVGL EVE pre-upload without a draw_eve display");
+
+ if(!lv_draw_eve_label_font_check(font)) {
+ return;
+ }
+
+ for(uint32_t i = 0; text[i];) {
+ uint32_t unicode_letter;
+ uint32_t unicode_letter_next;
+ lv_text_encoded_letter_next_2(text, &unicode_letter, &unicode_letter_next, &i);
+ lv_font_glyph_dsc_t glyph_dsc;
+ bool found = lv_font_get_glyph_dsc_fmt_txt(font, &glyph_dsc, unicode_letter, unicode_letter_next);
+ if(!found) {
+ LV_LOG_INFO("Could not pre-upload glyph with unicode code point '0x%"LV_PRIX32"' "
+ "because it is not part of the font", unicode_letter);
+ continue;
+ }
+ uint32_t ramg_addr = lv_draw_eve_label_upload_glyph(false, font->dsc, glyph_dsc.gid.index);
+ if(ramg_addr == LV_DRAW_EVE_RAMG_OUT_OF_RAMG) {
+ LV_LOG_WARN("Could not pre-upload glyph because space could not be allocated in RAM_G.");
+ /* don't return in case there are smaller glyphs that there is space for */
+ }
+ }
+}
+
+uint8_t lv_draw_eve_memread8(lv_display_t * disp, uint32_t address)
+{
+ LV_ASSERT_MSG(disp->flush_cb == flush_cb, "tried to use an LVGL EVE command without a draw_eve display");
+ return EVE_memRead8(address);
+}
+
+uint16_t lv_draw_eve_memread16(lv_display_t * disp, uint32_t address)
+{
+ LV_ASSERT_MSG(disp->flush_cb == flush_cb, "tried to use an LVGL EVE command with a non-draw_eve display");
+ return EVE_memRead16(address);
+}
+
+uint32_t lv_draw_eve_memread32(lv_display_t * disp, uint32_t address)
+{
+ LV_ASSERT_MSG(disp->flush_cb == flush_cb, "tried to use an LVGL EVE command with a non-draw_eve display");
+ return EVE_memRead32(address);
+}
+
+void lv_draw_eve_memwrite8(lv_display_t * disp, uint32_t address, uint8_t data)
+{
+ LV_ASSERT_MSG(disp->flush_cb == flush_cb, "tried to use an LVGL EVE command with a non-draw_eve display");
+ EVE_memWrite8(address, data);
+}
+
+void lv_draw_eve_memwrite16(lv_display_t * disp, uint32_t address, uint16_t data)
+{
+ LV_ASSERT_MSG(disp->flush_cb == flush_cb, "tried to use an LVGL EVE command with a non-draw_eve display");
+ EVE_memWrite16(address, data);
+}
+
+void lv_draw_eve_memwrite32(lv_display_t * disp, uint32_t address, uint32_t data)
+{
+ LV_ASSERT_MSG(disp->flush_cb == flush_cb, "tried to use an LVGL EVE command with a non-draw_eve display");
+ EVE_memWrite32(address, data);
+}
+
+/**********************
+ * STATIC FUNCTIONS
+ **********************/
+
+static void flush_cb(lv_display_t * disp, const lv_area_t * area, uint8_t * px_map)
+{
+ if(lv_display_flush_is_last(disp)) {
+ EVE_cmd_dl_burst(DL_DISPLAY); /* instruct the co-processor to show the list */
+ EVE_cmd_dl_burst(CMD_SWAP); /* make this list active */
+ EVE_end_cmd_burst();
+
+ EVE_execute_cmd();
+
+ EVE_start_cmd_burst();
+ }
+
+ lv_display_flush_ready(disp);
+}
+
+static void resolution_changed_cb(lv_event_t * e)
+{
+ lv_display_t * disp = lv_event_get_target(e);
+
+ lv_display_rotation_t rotation = lv_display_get_rotation(disp);
+ uint32_t cmd_value;
+ switch(rotation) {
+ case LV_DISPLAY_ROTATION_0:
+ cmd_value = 0;
+ break;
+ case LV_DISPLAY_ROTATION_90:
+ cmd_value = 2;
+ break;
+ case LV_DISPLAY_ROTATION_180:
+ cmd_value = 1;
+ break;
+ case LV_DISPLAY_ROTATION_270:
+ cmd_value = 3;
+ break;
+ default:
+ return;
+ }
+
+ /* no need to rotate the touch coordinates with CMD_SETROTATE, as LVGL
+ * already rotates the input coordinates.
+ */
+ EVE_memWrite8(REG_ROTATE, cmd_value);
+}
+
+static void render_start_cb(lv_event_t * e)
+{
+ EVE_start_cmd_burst();
+
+ EVE_cmd_dl_burst(CMD_DLSTART); /* start the display list */
+ EVE_cmd_dl_burst(DL_CLEAR_COLOR_RGB | 0x000000);
+ EVE_cmd_dl_burst(DL_CLEAR | CLR_COL | CLR_STN | CLR_TAG);
+ EVE_cmd_dl_burst(VERTEX_FORMAT(0));
+}
+
+static void render_ready_cb(lv_event_t * e)
+{
+ EVE_end_cmd_burst();
+}
+
+static void touch_read_cb(lv_indev_t * indev, lv_indev_data_t * data)
+{
+ lv_display_t * disp = lv_indev_get_display(indev);
+
+ if(disp == NULL || disp->flush_cb != flush_cb) return;
+
+ uint32_t xy = EVE_memRead32(REG_TOUCH_SCREEN_XY);
+ uint16_t x = xy >> 16;
+ uint16_t y = xy & 0xffff;
+
+ int32_t disp_w = lv_display_get_original_horizontal_resolution(disp);
+ int32_t disp_h = lv_display_get_original_vertical_resolution(disp);
+
+ if(x < disp_w && y < disp_h) {
+ data->state = LV_INDEV_STATE_PRESSED;
+ data->point.x = x;
+ data->point.y = y;
+ }
+ else {
+ data->state = LV_INDEV_STATE_RELEASED;
+ }
+}
+
+#endif /*LV_USE_DRAW_EVE*/
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/draw/eve/lv_draw_eve_display.h b/lib/libesp32_lvgl/lvgl/src/drivers/draw/eve/lv_draw_eve_display.h
new file mode 100644
index 000000000..860159ba0
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/draw/eve/lv_draw_eve_display.h
@@ -0,0 +1,151 @@
+/**
+ * @file lv_draw_eve_display.h
+ *
+ */
+
+#ifndef LV_DRAW_EVE_DISPLAY_H
+#define LV_DRAW_EVE_DISPLAY_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*********************
+ * INCLUDES
+ *********************/
+
+#include "../../../lv_conf_internal.h"
+#if LV_USE_DRAW_EVE
+
+#include "../../../draw/eve/lv_draw_eve_target.h"
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+/**********************
+ * GLOBAL PROTOTYPES
+ **********************/
+
+/**
+ * Create a display for the EVE draw unit.
+ * @param params Pointer to a struct of display parameters. Can be a temporary variable
+ * @param op_cb A callback that will be called to perform pin and SPI IO operations with the EVE chip
+ * @param user_data use `lv_draw_eve_display_get_user_data` to get this pointer inside the `op_cb`
+ * @return the EVE display
+ */
+lv_display_t * lv_draw_eve_display_create(const lv_draw_eve_parameters_t * params, lv_draw_eve_operation_cb_t op_cb,
+ void * user_data);
+
+/**
+ * Get the `user_data` parameter that was passed to `lv_draw_eve_display_create`. Useful in the operation callback.
+ * @param disp pointer to the lv_draw_eve display
+ * @return the `user_data` pointer
+ */
+void * lv_draw_eve_display_get_user_data(lv_display_t * disp);
+
+/**
+ * Create a touchscreen indev for the EVE display.
+ * @param disp pointer to the lv_draw_eve display
+ * @return the EVE touchscreen indev
+ */
+lv_indev_t * lv_draw_eve_touch_create(lv_display_t * disp);
+
+
+/* RAM_G asset pre-upload functions */
+
+/**
+ * Upload an image src to RAM_G now instead of as-needed during rendering.
+ * @param disp pointer to the lv_draw_eve display
+ * @param src image src. The value passed to `lv_image_set_src`
+ */
+void lv_draw_eve_pre_upload_image(lv_display_t * disp, const void * src);
+
+/**
+ * Upload font glyphs to RAM_G now instead of as-needed during rendering.
+ * Upload all the glyphs in the range of unicode code points (inclusive of the start and end values).
+ * It can be called multiple times with different ranges.
+ * @param disp pointer to the lv_draw_eve display
+ * @param font the font to upload glyphs from
+ * @param unicode_range_start the first unicode code point in the range of glyphs to upload
+ * @param unicode_range_end the last unicode code point (inclusive) in the range of glyphs to upload
+ */
+void lv_draw_eve_pre_upload_font_range(lv_display_t * disp, const lv_font_t * font, uint32_t unicode_range_start,
+ uint32_t unicode_range_end);
+
+/**
+ * Upload font glyphs to RAM_G now instead of as-needed during rendering.
+ * It will upload all the glyphs needed to render the string `text`.
+ * It can be called multiple times with different strings.
+ * @param disp pointer to the lv_draw_eve display
+ * @param font the font to upload glyphs from
+ * @param text the ASCII or UTF-8 string that will be iterated for glyphs to upload
+ */
+void lv_draw_eve_pre_upload_font_text(lv_display_t * disp, const lv_font_t * font, const char * text);
+
+
+/* Low-level EVE control functions */
+
+/**
+ * Call `EVE_memRead8` for custom low-level control of the display.
+ * @param disp the display returned by `lv_draw_eve_display_create`
+ * @param address the EVE address to read from
+ * @return the read value
+ */
+uint8_t lv_draw_eve_memread8(lv_display_t * disp, uint32_t address);
+
+/**
+ * Call `EVE_memRead16` for custom low-level control of the display.
+ * @param disp the display returned by `lv_draw_eve_display_create`
+ * @param address the EVE address to read from
+ * @return the read value
+ */
+uint16_t lv_draw_eve_memread16(lv_display_t * disp, uint32_t address);
+
+/**
+ * Call `EVE_memRead32` for custom low-level control of the display.
+ * @param disp the display returned by `lv_draw_eve_display_create`
+ * @param address the EVE address to read from
+ * @return the read value
+ */
+uint32_t lv_draw_eve_memread32(lv_display_t * disp, uint32_t address);
+
+/**
+ * Call `EVE_memWrite8` for custom low-level control of the display.
+ * @param disp the display returned by `lv_draw_eve_display_create`
+ * @param address the EVE address to write to
+ * @param data the value to write
+ */
+void lv_draw_eve_memwrite8(lv_display_t * disp, uint32_t address, uint8_t data);
+
+/**
+ * Call `EVE_memWrite16` for custom low-level control of the display.
+ * @param disp the display returned by `lv_draw_eve_display_create`
+ * @param address the EVE address to write to
+ * @param data the value to write
+ */
+void lv_draw_eve_memwrite16(lv_display_t * disp, uint32_t address, uint16_t data);
+
+/**
+ * Call `EVE_memWrite32` for custom low-level control of the display.
+ * @param disp the display returned by `lv_draw_eve_display_create`
+ * @param address the EVE address to write to
+ * @param data the value to write
+ */
+void lv_draw_eve_memwrite32(lv_display_t * disp, uint32_t address, uint32_t data);
+
+/**********************
+ * MACROS
+ **********************/
+
+#endif /*LV_USE_DRAW_EVE*/
+
+#ifdef __cplusplus
+} /*extern "C"*/
+#endif
+
+#endif /*LV_DRAW_EVE_DISPLAY_H*/
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/draw/eve/lv_draw_eve_display_defines.h b/lib/libesp32_lvgl/lvgl/src/drivers/draw/eve/lv_draw_eve_display_defines.h
new file mode 100644
index 000000000..1d2efff15
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/draw/eve/lv_draw_eve_display_defines.h
@@ -0,0 +1,1207 @@
+/**
+ * @file lv_draw_eve_display_defines.h
+ *
+ */
+
+#ifndef LV_DRAW_EVE_DISPLAY_DEFINES_H
+#define LV_DRAW_EVE_DISPLAY_DEFINES_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*********************
+ * INCLUDES
+ *********************/
+
+#include "../../../lv_conf_internal.h"
+#if LV_USE_DRAW_EVE
+
+/*********************
+ * DEFINES
+ *********************/
+
+/* Memory */
+#define LV_EVE_EVE_RAM_G ((uint32_t) 0x00000000UL)
+#define LV_EVE_EVE_ROM_CHIPID ((uint32_t) 0x000C0000UL)
+#define LV_EVE_EVE_ROM_FONT ((uint32_t) 0x001E0000UL)
+#define LV_EVE_EVE_ROM_FONTROOT ((uint32_t) 0x002FFFFCUL)
+#define LV_EVE_EVE_RAM_DL ((uint32_t) 0x00300000UL)
+#define LV_EVE_EVE_RAM_REG ((uint32_t) 0x00302000UL)
+#define LV_EVE_EVE_RAM_CMD ((uint32_t) 0x00308000UL)
+
+/* Memory buffer sizes */
+#define LV_EVE_EVE_RAM_G_SIZE ((uint32_t) 1024U*1024UL)
+#define LV_EVE_EVE_CMDFIFO_SIZE ((uint32_t) 4U*1024UL)
+#define LV_EVE_EVE_RAM_DL_SIZE ((uint32_t) 8U*1024UL)
+
+/* diplay list list commands, most need OR's arguments */
+#define LV_EVE_DL_DISPLAY ((uint32_t) 0x00000000UL)
+#define LV_EVE_DL_BITMAP_SOURCE ((uint32_t) 0x01000000UL)
+#define LV_EVE_DL_CLEAR_COLOR_RGB ((uint32_t) 0x02000000UL)
+#define LV_EVE_DL_TAG ((uint32_t) 0x03000000UL)
+#define LV_EVE_DL_COLOR_RGB ((uint32_t) 0x04000000UL)
+#define LV_EVE_DL_BITMAP_HANDLE ((uint32_t) 0x05000000UL)
+#define LV_EVE_DL_CELL ((uint32_t) 0x06000000UL)
+#define LV_EVE_DL_BITMAP_LAYOUT ((uint32_t) 0x07000000UL)
+#define LV_EVE_DL_BITMAP_SIZE ((uint32_t) 0x08000000UL)
+#define LV_EVE_DL_ALPHA_FUNC ((uint32_t) 0x09000000UL)
+#define LV_EVE_DL_STENCIL_FUNC ((uint32_t) 0x0A000000UL)
+#define LV_EVE_DL_BLEND_FUNC ((uint32_t) 0x0B000000UL)
+#define LV_EVE_DL_STENCIL_OP ((uint32_t) 0x0C000000UL)
+#define LV_EVE_DL_POINT_SIZE ((uint32_t) 0x0D000000UL)
+#define LV_EVE_DL_LINE_WIDTH ((uint32_t) 0x0E000000UL)
+#define LV_EVE_DL_CLEAR_COLOR_A ((uint32_t) 0x0F000000UL)
+#define LV_EVE_DL_COLOR_A ((uint32_t) 0x10000000UL)
+#define LV_EVE_DL_CLEAR_STENCIL ((uint32_t) 0x11000000UL)
+#define LV_EVE_DL_CLEAR_TAG ((uint32_t) 0x12000000UL)
+#define LV_EVE_DL_STENCIL_MASK ((uint32_t) 0x13000000UL)
+#define LV_EVE_DL_TAG_MASK ((uint32_t) 0x14000000UL)
+#define LV_EVE_DL_BITMAP_TRANSFORM_A ((uint32_t) 0x15000000UL)
+#define LV_EVE_DL_BITMAP_TRANSFORM_B ((uint32_t) 0x16000000UL)
+#define LV_EVE_DL_BITMAP_TRANSFORM_C ((uint32_t) 0x17000000UL)
+#define LV_EVE_DL_BITMAP_TRANSFORM_D ((uint32_t) 0x18000000UL)
+#define LV_EVE_DL_BITMAP_TRANSFORM_E ((uint32_t) 0x19000000UL)
+#define LV_EVE_DL_BITMAP_TRANSFORM_F ((uint32_t) 0x1A000000UL)
+#define LV_EVE_DL_SCISSOR_XY ((uint32_t) 0x1B000000UL)
+#define LV_EVE_DL_SCISSOR_SIZE ((uint32_t) 0x1C000000UL)
+#define LV_EVE_DL_CALL ((uint32_t) 0x1D000000UL)
+#define LV_EVE_DL_JUMP ((uint32_t) 0x1E000000UL)
+#define LV_EVE_DL_BEGIN ((uint32_t) 0x1F000000UL)
+#define LV_EVE_DL_COLOR_MASK ((uint32_t) 0x20000000UL)
+#define LV_EVE_DL_END ((uint32_t) 0x21000000UL)
+#define LV_EVE_DL_SAVE_CONTEXT ((uint32_t) 0x22000000UL)
+#define LV_EVE_DL_RESTORE_CONTEXT ((uint32_t) 0x23000000UL)
+#define LV_EVE_DL_RETURN ((uint32_t) 0x24000000UL)
+#define LV_EVE_DL_MACRO ((uint32_t) 0x25000000UL)
+#define LV_EVE_DL_CLEAR ((uint32_t) 0x26000000UL)
+#define LV_EVE_DL_VERTEX_FORMAT ((uint32_t) 0x27000000UL)
+#define LV_EVE_DL_BITMAP_LAYOUT_H ((uint32_t) 0x28000000UL)
+#define LV_EVE_DL_BITMAP_SIZE_H ((uint32_t) 0x29000000UL)
+#define LV_EVE_DL_PALETTE_SOURCE ((uint32_t) 0x2A000000UL)
+#define LV_EVE_DL_VERTEX_TRANSLATE_X ((uint32_t) 0x2B000000UL)
+#define LV_EVE_DL_VERTEX_TRANSLATE_Y ((uint32_t) 0x2C000000UL)
+#define LV_EVE_DL_NOP ((uint32_t) 0x2D000000UL)
+
+#define LV_EVE_DL_VERTEX2F ((uint32_t) 0x40000000UL)
+#define LV_EVE_DL_VERTEX2II ((uint32_t) 0x80000000UL)
+
+#define LV_EVE_CLR_COL ((uint8_t) 0x4U)
+#define LV_EVE_CLR_STN ((uint8_t) 0x2U)
+#define LV_EVE_CLR_TAG ((uint8_t) 0x1U)
+
+/* Host commands */
+#define LV_EVE_EVE_ACTIVE ((uint8_t) 0x00U) /* place EVE in active state */
+#define LV_EVE_EVE_STANDBY ((uint8_t) 0x41U) /* place EVE in Standby (clk running) */
+#define LV_EVE_EVE_SLEEP ((uint8_t) 0x42U) /* place EVE in Sleep (clk off) */
+#define LV_EVE_EVE_CLKEXT ((uint8_t) 0x44U) /* select external clock source */
+#define LV_EVE_EVE_CLKINT ((uint8_t) 0x48U) /* select internal clock source, not a valid option for BT817 / BT818 */
+#define LV_EVE_EVE_PWRDOWN ((uint8_t) 0x50U) /* place EVE in Power Down (core off) */
+#define LV_EVE_EVE_CLKSEL ((uint8_t) 0x61U) /* configure system clock */
+#define LV_EVE_EVE_RST_PULSE ((uint8_t) 0x68U) /* reset core - all registers default and processors reset */
+#define LV_EVE_EVE_CORERST ((uint8_t) 0x68U) /* reset core - all registers default and processors reset */
+#define LV_EVE_EVE_PINDRIVE ((uint8_t) 0x70U) /* setup drive strength for various pins */
+#define LV_EVE_EVE_PIN_PD_STATE ((uint8_t) 0x71U) /* setup how pins behave during power down */
+
+/* Graphic command defines */
+#define LV_EVE_EVE_NEVER ((uint8_t) 0UL)
+#define LV_EVE_EVE_LESS ((uint8_t) 1UL)
+#define LV_EVE_EVE_LEQUAL ((uint8_t) 2UL)
+#define LV_EVE_EVE_GREATER ((uint8_t) 3UL)
+#define LV_EVE_EVE_GEQUAL ((uint8_t) 4UL)
+#define LV_EVE_EVE_EQUAL ((uint8_t) 5UL)
+#define LV_EVE_EVE_NOTEQUAL ((uint8_t) 6UL)
+#define LV_EVE_EVE_ALWAYS ((uint8_t) 7UL)
+
+/* Bitmap formats */
+#define LV_EVE_EVE_ARGB1555 ((uint8_t) 0UL)
+#define LV_EVE_EVE_L1 ((uint8_t) 1UL)
+#define LV_EVE_EVE_L4 ((uint8_t) 2UL)
+#define LV_EVE_EVE_L8 ((uint8_t) 3UL)
+#define LV_EVE_EVE_RGB332 ((uint8_t) 4UL)
+#define LV_EVE_EVE_ARGB2 ((uint8_t) 5UL)
+#define LV_EVE_EVE_ARGB4 ((uint8_t) 6UL)
+#define LV_EVE_EVE_RGB565 ((uint8_t) 7UL)
+#define LV_EVE_EVE_PALETTED ((uint8_t) 8UL)
+#define LV_EVE_EVE_TEXT8X8 ((uint8_t) 9UL)
+#define LV_EVE_EVE_TEXTVGA ((uint8_t) 10UL)
+#define LV_EVE_EVE_BARGRAPH ((uint8_t) 11UL)
+
+/* Bitmap filter types */
+#define LV_EVE_EVE_NEAREST ((uint8_t) 0UL)
+#define LV_EVE_EVE_BILINEAR ((uint8_t) 1UL)
+
+/* Bitmap wrap types */
+#define LV_EVE_EVE_BORDER ((uint8_t) 0UL)
+#define LV_EVE_EVE_REPEAT ((uint8_t) 1UL)
+
+/* Stencil defines */
+#define LV_EVE_EVE_KEEP ((uint8_t) 1UL)
+#define LV_EVE_EVE_REPLACE ((uint8_t) 2UL)
+#define LV_EVE_EVE_INCR ((uint8_t) 3UL)
+#define LV_EVE_EVE_DECR ((uint8_t) 4UL)
+#define LV_EVE_EVE_INVERT ((uint8_t) 5UL)
+
+/* Graphics display list swap defines */
+#define LV_EVE_EVE_DLSWAP_DONE ((uint8_t) 0UL)
+#define LV_EVE_EVE_DLSWAP_LINE ((uint8_t) 1UL)
+#define LV_EVE_EVE_DLSWAP_FRAME ((uint8_t) 2UL)
+
+/* Interrupt bits */
+#define LV_EVE_EVE_INT_SWAP ((uint8_t) 0x01)
+#define LV_EVE_EVE_INT_TOUCH ((uint8_t) 0x02)
+#define LV_EVE_EVE_INT_TAG ((uint8_t) 0x04)
+#define LV_EVE_EVE_INT_SOUND ((uint8_t) 0x08)
+#define LV_EVE_EVE_INT_PLAYBACK ((uint8_t) 0x10)
+#define LV_EVE_EVE_INT_CMDEMPTY ((uint8_t) 0x20)
+#define LV_EVE_EVE_INT_CMDFLAG ((uint8_t) 0x40)
+#define LV_EVE_EVE_INT_CONVCOMPLETE ((uint8_t) 0x80)
+
+/* Touch mode */
+#define LV_EVE_EVE_TMODE_OFF ((uint8_t) 0U)
+#define LV_EVE_EVE_TMODE_ONESHOT ((uint8_t) 1U)
+#define LV_EVE_EVE_TMODE_FRAME ((uint8_t) 2U)
+#define LV_EVE_EVE_TMODE_CONTINUOUS ((uint8_t) 3U)
+
+/* Alpha blending */
+#define LV_EVE_EVE_ZERO ((uint32_t) 0UL)
+#define LV_EVE_EVE_ONE ((uint32_t) 1UL)
+#define LV_EVE_EVE_SRC_ALPHA ((uint32_t) 2UL)
+#define LV_EVE_EVE_DST_ALPHA ((uint32_t) 3UL)
+#define LV_EVE_EVE_ONE_MINUS_SRC_ALPHA ((uint32_t) 4UL)
+#define LV_EVE_EVE_ONE_MINUS_DST_ALPHA ((uint32_t) 5UL)
+
+/* Graphics primitives */
+#define LV_EVE_EVE_BITMAPS ((uint32_t) 1UL)
+#define LV_EVE_EVE_POINTS ((uint32_t) 2UL)
+#define LV_EVE_EVE_LINES ((uint32_t) 3UL)
+#define LV_EVE_EVE_LINE_STRIP ((uint32_t) 4UL)
+#define LV_EVE_EVE_EDGE_STRIP_R ((uint32_t) 5UL)
+#define LV_EVE_EVE_EDGE_STRIP_L ((uint32_t) 6UL)
+#define LV_EVE_EVE_EDGE_STRIP_A ((uint32_t) 7UL)
+#define LV_EVE_EVE_EDGE_STRIP_B ((uint32_t) 8UL)
+#define LV_EVE_EVE_RECTS ((uint32_t) 9UL)
+#define LV_EVE_EVE_INT_G8 ((uint32_t) 18UL)
+#define LV_EVE_EVE_INT_L8C ((uint32_t) 12UL)
+#define LV_EVE_EVE_INT_VGA ((uint32_t) 13UL)
+#define LV_EVE_EVE_PALETTED565 ((uint32_t) 14UL)
+#define LV_EVE_EVE_PALETTED4444 ((uint32_t) 15UL)
+#define LV_EVE_EVE_PALETTED8 ((uint32_t) 16UL)
+#define LV_EVE_EVE_L2 ((uint32_t) 17UL)
+
+/* Widget command options */
+#define LV_EVE_EVE_OPT_MONO ((uint16_t) 1U)
+#define LV_EVE_EVE_OPT_NODL ((uint16_t) 2U)
+#define LV_EVE_EVE_OPT_FLAT ((uint16_t) 256U)
+#define LV_EVE_EVE_OPT_CENTERX ((uint16_t) 512U)
+#define LV_EVE_EVE_OPT_CENTERY ((uint16_t) 1024U)
+#define LV_EVE_EVE_OPT_CENTER (LV_EVE_EVE_OPT_CENTERX | LV_EVE_EVE_OPT_CENTERY)
+#define LV_EVE_EVE_OPT_NOBACK ((uint16_t) 4096U)
+#define LV_EVE_EVE_OPT_NOTICKS ((uint16_t) 8192U)
+#define LV_EVE_EVE_OPT_NOHM ((uint16_t) 16384U)
+#define LV_EVE_EVE_OPT_NOPOINTER ((uint16_t) 16384U)
+#define LV_EVE_EVE_OPT_NOSECS ((uint16_t) 32768U)
+#define LV_EVE_EVE_OPT_NOHANDS ((uint16_t) 49152U)
+#define LV_EVE_EVE_OPT_RIGHTX ((uint16_t) 2048U)
+#define LV_EVE_EVE_OPT_SIGNED ((uint16_t) 256U)
+
+#define LV_EVE_EVE_OPT_MEDIAFIFO ((uint16_t) 16U)
+#define LV_EVE_EVE_OPT_FULLSCREEN ((uint16_t) 8U)
+#define LV_EVE_EVE_OPT_NOTEAR ((uint16_t) 4U)
+#define LV_EVE_EVE_OPT_SOUND ((uint16_t) 32U)
+
+/* ADC */
+#define LV_EVE_EVE_ADC_DIFFERENTIAL ((uint32_t) 1UL)
+#define LV_EVE_EVE_ADC_SINGLE_ENDED ((uint32_t) 0UL)
+
+/* Fonts */
+#define LV_EVE_EVE_NUMCHAR_PERFONT ((uint32_t) 128UL) /* number of font characters per bitmap handle */
+#define LV_EVE_EVE_FONT_TABLE_SIZE ((uint32_t) 148UL) /* size of the font table - utilized for loopup by the graphics engine */
+#define LV_EVE_EVE_FONT_TABLE_POINTER ((uint32_t) 0xFFFFCUL) /* pointer to the inbuilt font tables starting from bitmap handle 16 */
+
+/* Audio sample type defines */
+#define LV_EVE_EVE_LINEAR_SAMPLES ((uint32_t) 0UL) /* 8bit signed samples */
+#define LV_EVE_EVE_ULAW_SAMPLES ((uint32_t) 1UL) /* 8bit ulaw samples */
+#define LV_EVE_EVE_ADPCM_SAMPLES ((uint32_t) 2UL) /* 4bit ima adpcm samples */
+
+/* Synthesized sound */
+#define LV_EVE_EVE_SILENCE ((uint8_t) 0x00U)
+#define LV_EVE_EVE_SQUAREWAVE ((uint8_t) 0x01U)
+#define LV_EVE_EVE_SINEWAVE ((uint8_t) 0x02U)
+#define LV_EVE_EVE_SAWTOOTH ((uint8_t) 0x03U)
+#define LV_EVE_EVE_TRIANGLE ((uint8_t) 0x04U)
+#define LV_EVE_EVE_BEEPING ((uint8_t) 0x05U)
+#define LV_EVE_EVE_ALARM ((uint8_t) 0x06U)
+#define LV_EVE_EVE_WARBLE ((uint8_t) 0x07U)
+#define LV_EVE_EVE_CAROUSEL ((uint8_t) 0x08U)
+#define LV_EVE_EVE_PIPS(n) ((uint8_t) (0x0FU + (n)))
+#define LV_EVE_EVE_HARP ((uint8_t) 0x40U)
+#define LV_EVE_EVE_XYLOPHONE ((uint8_t) 0x41U)
+#define LV_EVE_EVE_TUBA ((uint8_t) 0x42U)
+#define LV_EVE_EVE_GLOCKENSPIEL ((uint8_t) 0x43U)
+#define LV_EVE_EVE_ORGAN ((uint8_t) 0x44U)
+#define LV_EVE_EVE_TRUMPET ((uint8_t) 0x45U)
+#define LV_EVE_EVE_PIANO ((uint8_t) 0x46U)
+#define LV_EVE_EVE_CHIMES ((uint8_t) 0x47U)
+#define LV_EVE_EVE_MUSICBOX ((uint8_t) 0x48U)
+#define LV_EVE_EVE_BELL ((uint8_t) 0x49U)
+#define LV_EVE_EVE_CLICK ((uint8_t) 0x50U)
+#define LV_EVE_EVE_SWITCH ((uint8_t) 0x51U)
+#define LV_EVE_EVE_COWBELL ((uint8_t) 0x52U)
+#define LV_EVE_EVE_NOTCH ((uint8_t) 0x53U)
+#define LV_EVE_EVE_HIHAT ((uint8_t) 0x54U)
+#define LV_EVE_EVE_KICKDRUM ((uint8_t) 0x55U)
+#define LV_EVE_EVE_POP ((uint8_t) 0x56U)
+#define LV_EVE_EVE_CLACK ((uint8_t) 0x57U)
+#define LV_EVE_EVE_CHACK ((uint8_t) 0x58U)
+#define LV_EVE_EVE_MUTE ((uint8_t) 0x60U)
+#define LV_EVE_EVE_UNMUTE ((uint8_t) 0x61U)
+
+/* Synthesized sound frequencies, midi note */
+#define LV_EVE_EVE_MIDI_A0 ((uint8_t) 21U)
+#define LV_EVE_EVE_MIDI_A_0 ((uint8_t) 22U)
+#define LV_EVE_EVE_MIDI_B0 ((uint8_t) 23U)
+#define LV_EVE_EVE_MIDI_C1 ((uint8_t) 24U)
+#define LV_EVE_EVE_MIDI_C_1 ((uint8_t) 25U)
+#define LV_EVE_EVE_MIDI_D1 ((uint8_t) 26U)
+#define LV_EVE_EVE_MIDI_D_1 ((uint8_t) 27U)
+#define LV_EVE_EVE_MIDI_E1 ((uint8_t) 28U)
+#define LV_EVE_EVE_MIDI_F1 ((uint8_t) 29U)
+#define LV_EVE_EVE_MIDI_F_1 ((uint8_t) 30U)
+#define LV_EVE_EVE_MIDI_G1 ((uint8_t) 31U)
+#define LV_EVE_EVE_MIDI_G_1 ((uint8_t) 32U)
+#define LV_EVE_EVE_MIDI_A1 ((uint8_t) 33U)
+#define LV_EVE_EVE_MIDI_A_1 ((uint8_t) 34U)
+#define LV_EVE_EVE_MIDI_B1 ((uint8_t) 35U)
+#define LV_EVE_EVE_MIDI_C2 ((uint8_t) 36U)
+#define LV_EVE_EVE_MIDI_C_2 ((uint8_t) 37U)
+#define LV_EVE_EVE_MIDI_D2 ((uint8_t) 38U)
+#define LV_EVE_EVE_MIDI_D_2 ((uint8_t) 39U)
+#define LV_EVE_EVE_MIDI_E2 ((uint8_t) 40U)
+#define LV_EVE_EVE_MIDI_F2 ((uint8_t) 41U)
+#define LV_EVE_EVE_MIDI_F_2 ((uint8_t) 42U)
+#define LV_EVE_EVE_MIDI_G2 ((uint8_t) 43U)
+#define LV_EVE_EVE_MIDI_G_2 ((uint8_t) 44U)
+#define LV_EVE_EVE_MIDI_A2 ((uint8_t) 45U)
+#define LV_EVE_EVE_MIDI_A_2 ((uint8_t) 46U)
+#define LV_EVE_EVE_MIDI_B2 ((uint8_t) 47U)
+#define LV_EVE_EVE_MIDI_C3 ((uint8_t) 48U)
+#define LV_EVE_EVE_MIDI_C_3 ((uint8_t) 49U)
+#define LV_EVE_EVE_MIDI_D3 ((uint8_t) 50U)
+#define LV_EVE_EVE_MIDI_D_3 ((uint8_t) 51U)
+#define LV_EVE_EVE_MIDI_E3 ((uint8_t) 52U)
+#define LV_EVE_EVE_MIDI_F3 ((uint8_t) 53U)
+#define LV_EVE_EVE_MIDI_F_3 ((uint8_t) 54U)
+#define LV_EVE_EVE_MIDI_G3 ((uint8_t) 55U)
+#define LV_EVE_EVE_MIDI_G_3 ((uint8_t) 56U)
+#define LV_EVE_EVE_MIDI_A3 ((uint8_t) 57U)
+#define LV_EVE_EVE_MIDI_A_3 ((uint8_t) 58U)
+#define LV_EVE_EVE_MIDI_B3 ((uint8_t) 59U)
+#define LV_EVE_EVE_MIDI_C4 ((uint8_t) 60U)
+#define LV_EVE_EVE_MIDI_C_4 ((uint8_t) 61U)
+#define LV_EVE_EVE_MIDI_D4 ((uint8_t) 62U)
+#define LV_EVE_EVE_MIDI_D_4 ((uint8_t) 63U)
+#define LV_EVE_EVE_MIDI_E4 ((uint8_t) 64U)
+#define LV_EVE_EVE_MIDI_F4 ((uint8_t) 65U)
+#define LV_EVE_EVE_MIDI_F_4 ((uint8_t) 66U)
+#define LV_EVE_EVE_MIDI_G4 ((uint8_t) 67U)
+#define LV_EVE_EVE_MIDI_G_4 ((uint8_t) 68U)
+#define LV_EVE_EVE_MIDI_A4 ((uint8_t) 69U)
+#define LV_EVE_EVE_MIDI_A_4 ((uint8_t) 70U)
+#define LV_EVE_EVE_MIDI_B4 ((uint8_t) 71U)
+#define LV_EVE_EVE_MIDI_C5 ((uint8_t) 72U)
+#define LV_EVE_EVE_MIDI_C_5 ((uint8_t) 73U)
+#define LV_EVE_EVE_MIDI_D5 ((uint8_t) 74U)
+#define LV_EVE_EVE_MIDI_D_5 ((uint8_t) 75U)
+#define LV_EVE_EVE_MIDI_E5 ((uint8_t) 76U)
+#define LV_EVE_EVE_MIDI_F5 ((uint8_t) 77U)
+#define LV_EVE_EVE_MIDI_F_5 ((uint8_t) 78U)
+#define LV_EVE_EVE_MIDI_G5 ((uint8_t) 79U)
+#define LV_EVE_EVE_MIDI_G_5 ((uint8_t) 80U)
+#define LV_EVE_EVE_MIDI_A5 ((uint8_t) 81U)
+#define LV_EVE_EVE_MIDI_A_5 ((uint8_t) 82U)
+#define LV_EVE_EVE_MIDI_B5 ((uint8_t) 83U)
+#define LV_EVE_EVE_MIDI_C6 ((uint8_t) 84U)
+#define LV_EVE_EVE_MIDI_C_6 ((uint8_t) 85U)
+#define LV_EVE_EVE_MIDI_D6 ((uint8_t) 86U)
+#define LV_EVE_EVE_MIDI_D_6 ((uint8_t) 87U)
+#define LV_EVE_EVE_MIDI_E6 ((uint8_t) 88U)
+#define LV_EVE_EVE_MIDI_F6 ((uint8_t) 89U)
+#define LV_EVE_EVE_MIDI_F_6 ((uint8_t) 90U)
+#define LV_EVE_EVE_MIDI_G6 ((uint8_t) 91U)
+#define LV_EVE_EVE_MIDI_G_6 ((uint8_t) 92U)
+#define LV_EVE_EVE_MIDI_A6 ((uint8_t) 93U)
+#define LV_EVE_EVE_MIDI_A_6 ((uint8_t) 94U)
+#define LV_EVE_EVE_MIDI_B6 ((uint8_t) 95U)
+#define LV_EVE_EVE_MIDI_C7 ((uint8_t) 96U)
+#define LV_EVE_EVE_MIDI_C_7 ((uint8_t) 97U)
+#define LV_EVE_EVE_MIDI_D7 ((uint8_t) 98U)
+#define LV_EVE_EVE_MIDI_D_7 ((uint8_t) 99U)
+#define LV_EVE_EVE_MIDI_E7 ((uint8_t) 100U)
+#define LV_EVE_EVE_MIDI_F7 ((uint8_t) 101U)
+#define LV_EVE_EVE_MIDI_F_7 ((uint8_t) 102U)
+#define LV_EVE_EVE_MIDI_G7 ((uint8_t) 103U)
+#define LV_EVE_EVE_MIDI_G_7 ((uint8_t) 104U)
+#define LV_EVE_EVE_MIDI_A7 ((uint8_t) 105U)
+#define LV_EVE_EVE_MIDI_A_7 ((uint8_t) 106U)
+#define LV_EVE_EVE_MIDI_B7 ((uint8_t) 107U)
+#define LV_EVE_EVE_MIDI_C8 ((uint8_t) 108U)
+
+/* GPIO bits */
+#define LV_EVE_EVE_GPIO0 ((uint8_t) 0U)
+#define LV_EVE_EVE_GPIO1 ((uint8_t) 1U) /* default gpio pin for audio shutdown, 1 - enable, 0 - disable */
+#define LV_EVE_EVE_GPIO7 ((uint8_t) 7U) /* default gpio pin for display enable, 1 - enable, 0 - disable */
+
+/* Display rotation */
+#define LV_EVE_EVE_DISPLAY_0 ((uint8_t) 0U) /* 0 degrees rotation */
+#define LV_EVE_EVE_DISPLAY_180 ((uint8_t) 1U) /* 180 degrees rotation */
+
+/* Commands */
+#define LV_EVE_CMD_APPEND ((uint32_t) 0xFFFFFF1EUL)
+#define LV_EVE_CMD_BGCOLOR ((uint32_t) 0xFFFFFF09UL)
+#define LV_EVE_CMD_BUTTON ((uint32_t) 0xFFFFFF0DUL)
+#define LV_EVE_CMD_CALIBRATE ((uint32_t) 0xFFFFFF15UL)
+#define LV_EVE_CMD_CLOCK ((uint32_t) 0xFFFFFF14UL)
+#define LV_EVE_CMD_COLDSTART ((uint32_t) 0xFFFFFF32UL)
+#define LV_EVE_CMD_DIAL ((uint32_t) 0xFFFFFF2DUL)
+#define LV_EVE_CMD_DLSTART ((uint32_t) 0xFFFFFF00UL)
+#define LV_EVE_CMD_FGCOLOR ((uint32_t) 0xFFFFFF0AUL)
+#define LV_EVE_CMD_GAUGE ((uint32_t) 0xFFFFFF13UL)
+#define LV_EVE_CMD_GETMATRIX ((uint32_t) 0xFFFFFF33UL)
+#define LV_EVE_CMD_GETPROPS ((uint32_t) 0xFFFFFF25UL)
+#define LV_EVE_CMD_GETPTR ((uint32_t) 0xFFFFFF23UL)
+#define LV_EVE_CMD_GRADCOLOR ((uint32_t) 0xFFFFFF34UL)
+#define LV_EVE_CMD_GRADIENT ((uint32_t) 0xFFFFFF0BUL)
+#define LV_EVE_CMD_INFLATE ((uint32_t) 0xFFFFFF22UL)
+#define LV_EVE_CMD_INTERRUPT ((uint32_t) 0xFFFFFF02UL)
+#define LV_EVE_CMD_KEYS ((uint32_t) 0xFFFFFF0EUL)
+#define LV_EVE_CMD_LOADIDENTITY ((uint32_t) 0xFFFFFF26UL)
+#define LV_EVE_CMD_LOADIMAGE ((uint32_t) 0xFFFFFF24UL)
+#define LV_EVE_CMD_LOGO ((uint32_t) 0xFFFFFF31UL)
+#define LV_EVE_CMD_MEDIAFIFO ((uint32_t) 0xFFFFFF39UL)
+#define LV_EVE_CMD_MEMCPY ((uint32_t) 0xFFFFFF1DUL)
+#define LV_EVE_CMD_MEMCRC ((uint32_t) 0xFFFFFF18UL)
+#define LV_EVE_CMD_MEMSET ((uint32_t) 0xFFFFFF1BUL)
+#define LV_EVE_CMD_MEMWRITE ((uint32_t) 0xFFFFFF1AUL)
+#define LV_EVE_CMD_MEMZERO ((uint32_t) 0xFFFFFF1CUL)
+#define LV_EVE_CMD_NUMBER ((uint32_t) 0xFFFFFF2EUL)
+#define LV_EVE_CMD_PLAYVIDEO ((uint32_t) 0xFFFFFF3AUL)
+#define LV_EVE_CMD_PROGRESS ((uint32_t) 0xFFFFFF0FUL)
+#define LV_EVE_CMD_REGREAD ((uint32_t) 0xFFFFFF19UL)
+#define LV_EVE_CMD_ROMFONT ((uint32_t) 0xFFFFFF3FUL)
+#define LV_EVE_CMD_ROTATE ((uint32_t) 0xFFFFFF29UL)
+#define LV_EVE_CMD_SCALE ((uint32_t) 0xFFFFFF28UL)
+#define LV_EVE_CMD_SCREENSAVER ((uint32_t) 0xFFFFFF2FUL)
+#define LV_EVE_CMD_SCROLLBAR ((uint32_t) 0xFFFFFF11UL)
+#define LV_EVE_CMD_SETBASE ((uint32_t) 0xFFFFFF38UL)
+#define LV_EVE_CMD_SETBITMAP ((uint32_t) 0xFFFFFF43UL)
+#define LV_EVE_CMD_SETFONT ((uint32_t) 0xFFFFFF2BUL)
+#define LV_EVE_CMD_SETFONT2 ((uint32_t) 0xFFFFFF3BUL)
+#define LV_EVE_CMD_SETMATRIX ((uint32_t) 0xFFFFFF2AUL)
+#define LV_EVE_CMD_SETROTATE ((uint32_t) 0xFFFFFF36UL)
+#define LV_EVE_CMD_SETSCRATCH ((uint32_t) 0xFFFFFF3CUL)
+#define LV_EVE_CMD_SKETCH ((uint32_t) 0xFFFFFF30UL)
+#define LV_EVE_CMD_SLIDER ((uint32_t) 0xFFFFFF10UL)
+#define LV_EVE_CMD_SNAPSHOT ((uint32_t) 0xFFFFFF1FUL)
+#define LV_EVE_CMD_SNAPSHOT2 ((uint32_t) 0xFFFFFF37UL)
+#define LV_EVE_CMD_SPINNER ((uint32_t) 0xFFFFFF16UL)
+#define LV_EVE_CMD_STOP ((uint32_t) 0xFFFFFF17UL)
+#define LV_EVE_CMD_SWAP ((uint32_t) 0xFFFFFF01UL)
+#define LV_EVE_CMD_TEXT ((uint32_t) 0xFFFFFF0CUL)
+#define LV_EVE_CMD_TOGGLE ((uint32_t) 0xFFFFFF12UL)
+#define LV_EVE_CMD_TRACK ((uint32_t) 0xFFFFFF2CUL)
+#define LV_EVE_CMD_TRANSLATE ((uint32_t) 0xFFFFFF27UL)
+#define LV_EVE_CMD_VIDEOFRAME ((uint32_t) 0xFFFFFF41UL)
+#define LV_EVE_CMD_VIDEOSTART ((uint32_t) 0xFFFFFF40UL)
+
+/* Registers */
+#define LV_EVE_REG_ANA_COMP ((uint32_t) 0x00302184UL) /* only listed in datasheet */
+#define LV_EVE_REG_BIST_EN ((uint32_t) 0x00302174UL) /* only listed in datasheet */
+#define LV_EVE_REG_CLOCK ((uint32_t) 0x00302008UL)
+#define LV_EVE_REG_CMDB_SPACE ((uint32_t) 0x00302574UL)
+#define LV_EVE_REG_CMDB_WRITE ((uint32_t) 0x00302578UL)
+#define LV_EVE_REG_CMD_DL ((uint32_t) 0x00302100UL)
+#define LV_EVE_REG_CMD_READ ((uint32_t) 0x003020f8UL)
+#define LV_EVE_REG_CMD_WRITE ((uint32_t) 0x003020fcUL)
+#define LV_EVE_REG_CPURESET ((uint32_t) 0x00302020UL)
+#define LV_EVE_REG_CSPREAD ((uint32_t) 0x00302068UL)
+#define LV_EVE_REG_CTOUCH_EXTENDED ((uint32_t) 0x00302108UL)
+#define LV_EVE_REG_CTOUCH_TOUCH0_XY ((uint32_t) 0x00302124UL) /* only listed in datasheet */
+#define LV_EVE_REG_CTOUCH_TOUCH4_X ((uint32_t) 0x0030216cUL)
+#define LV_EVE_REG_CTOUCH_TOUCH4_Y ((uint32_t) 0x00302120UL)
+#define LV_EVE_REG_CTOUCH_TOUCH1_XY ((uint32_t) 0x0030211cUL)
+#define LV_EVE_REG_CTOUCH_TOUCH2_XY ((uint32_t) 0x0030218cUL)
+#define LV_EVE_REG_CTOUCH_TOUCH3_XY ((uint32_t) 0x00302190UL)
+#define LV_EVE_REG_TOUCH_CONFIG ((uint32_t) 0x00302168UL)
+#define LV_EVE_REG_DATESTAMP ((uint32_t) 0x00302564UL) /* only listed in datasheet */
+#define LV_EVE_REG_DITHER ((uint32_t) 0x00302060UL)
+#define LV_EVE_REG_DLSWAP ((uint32_t) 0x00302054UL)
+#define LV_EVE_REG_FRAMES ((uint32_t) 0x00302004UL)
+#define LV_EVE_REG_FREQUENCY ((uint32_t) 0x0030200cUL)
+#define LV_EVE_REG_GPIO ((uint32_t) 0x00302094UL)
+#define LV_EVE_REG_GPIOX ((uint32_t) 0x0030209cUL)
+#define LV_EVE_REG_GPIOX_DIR ((uint32_t) 0x00302098UL)
+#define LV_EVE_REG_GPIO_DIR ((uint32_t) 0x00302090UL)
+#define LV_EVE_REG_HCYCLE ((uint32_t) 0x0030202cUL)
+#define LV_EVE_REG_HOFFSET ((uint32_t) 0x00302030UL)
+#define LV_EVE_REG_HSIZE ((uint32_t) 0x00302034UL)
+#define LV_EVE_REG_HSYNC0 ((uint32_t) 0x00302038UL)
+#define LV_EVE_REG_HSYNC1 ((uint32_t) 0x0030203cUL)
+#define LV_EVE_REG_ID ((uint32_t) 0x00302000UL)
+#define LV_EVE_REG_INT_EN ((uint32_t) 0x003020acUL)
+#define LV_EVE_REG_INT_FLAGS ((uint32_t) 0x003020a8UL)
+#define LV_EVE_REG_INT_MASK ((uint32_t) 0x003020b0UL)
+#define LV_EVE_REG_MACRO_0 ((uint32_t) 0x003020d8UL)
+#define LV_EVE_REG_MACRO_1 ((uint32_t) 0x003020dcUL)
+#define LV_EVE_REG_MEDIAFIFO_READ ((uint32_t) 0x00309014UL) /* only listed in programmers guide */
+#define LV_EVE_REG_MEDIAFIFO_WRITE ((uint32_t) 0x00309018UL) /* only listed in programmers guide */
+#define LV_EVE_REG_OUTBITS ((uint32_t) 0x0030205cUL)
+#define LV_EVE_REG_PCLK ((uint32_t) 0x00302070UL)
+#define LV_EVE_REG_PCLK_POL ((uint32_t) 0x0030206cUL)
+#define LV_EVE_REG_PLAY ((uint32_t) 0x0030208cUL)
+#define LV_EVE_REG_PLAYBACK_FORMAT ((uint32_t) 0x003020c4UL)
+#define LV_EVE_REG_PLAYBACK_FREQ ((uint32_t) 0x003020c0UL)
+#define LV_EVE_REG_PLAYBACK_LENGTH ((uint32_t) 0x003020b8UL)
+#define LV_EVE_REG_PLAYBACK_LOOP ((uint32_t) 0x003020c8UL)
+#define LV_EVE_REG_PLAYBACK_PLAY ((uint32_t) 0x003020ccUL)
+#define LV_EVE_REG_PLAYBACK_READPTR ((uint32_t) 0x003020bcUL)
+#define LV_EVE_REG_PLAYBACK_START ((uint32_t) 0x003020b4UL)
+#define LV_EVE_REG_PWM_DUTY ((uint32_t) 0x003020d4UL)
+#define LV_EVE_REG_PWM_HZ ((uint32_t) 0x003020d0UL)
+#define LV_EVE_REG_RENDERMODE ((uint32_t) 0x00302010UL) /* only listed in datasheet */
+#define LV_EVE_REG_ROTATE ((uint32_t) 0x00302058UL)
+#define LV_EVE_REG_SNAPFORMAT ((uint32_t) 0x0030201cUL) /* only listed in datasheet */
+#define LV_EVE_REG_SNAPSHOT ((uint32_t) 0x00302018UL) /* only listed in datasheet */
+#define LV_EVE_REG_SNAPY ((uint32_t) 0x00302014UL) /* only listed in datasheet */
+#define LV_EVE_REG_SOUND ((uint32_t) 0x00302088UL)
+#define LV_EVE_REG_SPI_WIDTH ((uint32_t) 0x00302188UL) /* listed with false offset in programmers guide V1.1 */
+#define LV_EVE_REG_SWIZZLE ((uint32_t) 0x00302064UL)
+#define LV_EVE_REG_TAG ((uint32_t) 0x0030207cUL)
+#define LV_EVE_REG_TAG_X ((uint32_t) 0x00302074UL)
+#define LV_EVE_REG_TAG_Y ((uint32_t) 0x00302078UL)
+#define LV_EVE_REG_TAP_CRC ((uint32_t) 0x00302024UL) /* only listed in datasheet */
+#define LV_EVE_REG_TAP_MASK ((uint32_t) 0x00302028UL) /* only listed in datasheet */
+#define LV_EVE_REG_TOUCH_ADC_MODE ((uint32_t) 0x00302108UL)
+#define LV_EVE_REG_TOUCH_CHARGE ((uint32_t) 0x0030210cUL)
+#define LV_EVE_REG_TOUCH_DIRECT_XY ((uint32_t) 0x0030218cUL)
+#define LV_EVE_REG_TOUCH_DIRECT_Z1Z2 ((uint32_t) 0x00302190UL)
+#define LV_EVE_REG_TOUCH_MODE ((uint32_t) 0x00302104UL)
+#define LV_EVE_REG_TOUCH_OVERSAMPLE ((uint32_t) 0x00302114UL)
+#define LV_EVE_REG_TOUCH_RAW_XY ((uint32_t) 0x0030211cUL)
+#define LV_EVE_REG_TOUCH_RZ ((uint32_t) 0x00302120UL)
+#define LV_EVE_REG_TOUCH_RZTHRESH ((uint32_t) 0x00302118UL)
+#define LV_EVE_REG_TOUCH_SCREEN_XY ((uint32_t) 0x00302124UL)
+#define LV_EVE_REG_TOUCH_SETTLE ((uint32_t) 0x00302110UL)
+#define LV_EVE_REG_TOUCH_TAG ((uint32_t) 0x0030212cUL)
+#define LV_EVE_REG_TOUCH_TAG1 ((uint32_t) 0x00302134UL) /* only listed in datasheet */
+#define LV_EVE_REG_TOUCH_TAG1_XY ((uint32_t) 0x00302130UL) /* only listed in datasheet */
+#define LV_EVE_REG_TOUCH_TAG2 ((uint32_t) 0x0030213cUL) /* only listed in datasheet */
+#define LV_EVE_REG_TOUCH_TAG2_XY ((uint32_t) 0x00302138UL) /* only listed in datasheet */
+#define LV_EVE_REG_TOUCH_TAG3 ((uint32_t) 0x00302144UL) /* only listed in datasheet */
+#define LV_EVE_REG_TOUCH_TAG3_XY ((uint32_t) 0x00302140UL) /* only listed in datasheet */
+#define LV_EVE_REG_TOUCH_TAG4 ((uint32_t) 0x0030214cUL)/* only listed in datasheet */
+#define LV_EVE_REG_TOUCH_TAG4_XY ((uint32_t) 0x00302148UL) /* only listed in datasheet */
+#define LV_EVE_REG_TOUCH_TAG_XY ((uint32_t) 0x00302128UL)
+#define LV_EVE_REG_TOUCH_TRANSFORM_A ((uint32_t) 0x00302150UL)
+#define LV_EVE_REG_TOUCH_TRANSFORM_B ((uint32_t) 0x00302154UL)
+#define LV_EVE_REG_TOUCH_TRANSFORM_C ((uint32_t) 0x00302158UL)
+#define LV_EVE_REG_TOUCH_TRANSFORM_D ((uint32_t) 0x0030215cUL)
+#define LV_EVE_REG_TOUCH_TRANSFORM_E ((uint32_t) 0x00302160UL)
+#define LV_EVE_REG_TOUCH_TRANSFORM_F ((uint32_t) 0x00302164UL)
+#define LV_EVE_REG_TRACKER ((uint32_t) 0x00309000UL) /* only listed in programmers guide */
+#define LV_EVE_REG_TRACKER_1 ((uint32_t) 0x00309004UL) /* only listed in programmers guide */
+#define LV_EVE_REG_TRACKER_2 ((uint32_t) 0x00309008UL) /* only listed in programmers guide */
+#define LV_EVE_REG_TRACKER_3 ((uint32_t) 0x0030900cUL) /* only listed in programmers guide */
+#define LV_EVE_REG_TRACKER_4 ((uint32_t) 0x00309010UL) /* only listed in programmers guide */
+#define LV_EVE_REG_TRIM ((uint32_t) 0x00302180UL)
+#define LV_EVE_REG_VCYCLE ((uint32_t) 0x00302040UL)
+#define LV_EVE_REG_VOFFSET ((uint32_t) 0x00302044UL)
+#define LV_EVE_REG_VOL_PB ((uint32_t) 0x00302080UL)
+#define LV_EVE_REG_VOL_SOUND ((uint32_t) 0x00302084UL)
+#define LV_EVE_REG_VSIZE ((uint32_t) 0x00302048UL)
+#define LV_EVE_REG_VSYNC0 ((uint32_t) 0x0030204cUL)
+#define LV_EVE_REG_VSYNC1 ((uint32_t) 0x00302050UL)
+
+
+/* Macros for static display list generation */
+
+//#define LV_EVE_ALPHA_FUNC(func,ref) ((LV_EVE_DL_ALPHA_FUNC) | (((func) & 7UL) << 8U) | ((ref) & 0xFFUL))
+/**
+ * @brief Set the alpha test function.
+ *
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_ALPHA_FUNC(uint8_t func, uint8_t ref)
+{
+ uint32_t const funcv = ((uint32_t) func & 7U) << 8U;
+ return (LV_EVE_DL_ALPHA_FUNC | funcv | ref);
+}
+
+//#define LV_EVE_BITMAP_HANDLE(handle) ((LV_EVE_DL_BITMAP_HANDLE) | ((handle) & 0x1FUL))
+/**
+ * @brief Set the bitmap handle.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_BITMAP_HANDLE(uint8_t handle)
+{
+ return (LV_EVE_DL_BITMAP_HANDLE | ((handle) & 0x1FUL));
+}
+
+//#define LV_EVE_BITMAP_LAYOUT(format,linestride,height) ((LV_EVE_DL_BITMAP_LAYOUT) | (((format) & 0x1FUL) << 19U) | (((linestride) & 0x3FFUL) << 9U) | ((height) & 0x1FFUL))
+/**
+ * @brief Set the source bitmap memory format and layout for the current handle.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_BITMAP_LAYOUT(uint8_t format, uint16_t linestride, uint16_t height)
+{
+ uint32_t const formatv = ((uint32_t) format & 0x1FUL) << 19U;
+ uint32_t const linestridev = ((uint32_t) linestride & 0x3FFUL) << 9U;
+ uint32_t const heightv = height & 0x1FFUL;
+ return (LV_EVE_DL_BITMAP_LAYOUT | formatv | linestridev | heightv);
+}
+
+//#define LV_EVE_BITMAP_SIZE(filter,wrapx,wrapy,width,height) ((LV_EVE_DL_BITMAP_SIZE) | (((filter) & 1UL) << 20U) | (((wrapx) & 1UL) << 19U) | (((wrapy) & 1UL) << 18U) | (((width) & 0x1FFUL) << 9U) | ((height) & 0x1FFUL))
+/**
+ * @brief Set the source bitmap memory format and layout for the current handle.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_BITMAP_SIZE(uint8_t filter, uint8_t wrapx, uint8_t wrapy, uint16_t width, uint16_t height)
+{
+ uint32_t const filterv = (filter & 0x1UL) << 20U;
+ uint32_t const wrapxv = (wrapx & 0x1UL) << 19U;
+ uint32_t const wrapyv = (wrapy & 0x1UL) << 18U;
+ uint32_t const widthv = (width & 0x1FFUL) << 9U;
+ uint32_t const heightv = height & 0x1FFUL;
+ return (LV_EVE_DL_BITMAP_SIZE | filterv | wrapxv | wrapyv | widthv | heightv);
+}
+
+//#define LV_EVE_BITMAP_LAYOUT_H(linestride,height) ((LV_EVE_DL_BITMAP_LAYOUT_H) | (((((linestride) & 0xC00U) >> 10U)&3UL) << 2U) | ((((height) & 0x600U) >> 9U) & 3UL))
+/**
+ * @brief Set the 2 most significant bits of the source bitmap memory format and layout for the current handle.
+ * @param linestride 12-bit value specified to BITMAP_LAYOUT
+ * @param height 11-bit value specified to BITMAP_LAYOUT
+ * @note this is different to FTDIs implementation as this takes the original values as parameters and not only the upper bits
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_BITMAP_LAYOUT_H(uint16_t linestride, uint16_t height)
+{
+ uint32_t const linestridev = (uint32_t)((((linestride & 0xC00U) >> 10U) & 3UL) << 2U);
+ uint32_t const heightv = (uint32_t)(((height & 0x600U) >> 9U) & 3UL);
+ return (LV_EVE_DL_BITMAP_LAYOUT_H | linestridev | heightv);
+}
+
+//#define LV_EVE_BITMAP_SIZE_H(width,height) ((LV_EVE_DL_BITMAP_SIZE_H) | (((((width) & 0x600U) >> 9U) & 3UL) << 2U) | ((((height) & 0x600U) >> 9U) & 3UL))
+/**
+ * @brief Set the 2 most significant bits of bitmaps dimension for the current handle.
+ * @param linestride 11-bit value of bitmap width, the 2 most significant bits are used
+ * @param height 11-bit value of bitmap width, the 2 most significant bits are used
+ * @note this is different to FTDIs implementation as this takes the original values as parameters and not only the upper bits
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_BITMAP_SIZE_H(uint16_t width, uint16_t height)
+{
+ uint32_t const widthv = (uint32_t)((((width & 0x600U) >> 9U) & 3UL) << 2U);
+ uint32_t const heightv = (uint32_t)(((height & 0x600U) >> 9U) & 3UL);
+ return ((LV_EVE_DL_BITMAP_SIZE_H) | widthv | heightv);
+}
+
+//#define LV_EVE_BITMAP_SOURCE(addr) ((LV_EVE_DL_BITMAP_SOURCE) | ((addr) & 0x3FFFFFUL))
+/**
+ * @brief Set the source address of bitmap data in RAM_G or flash memory.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_BITMAP_SOURCE(uint32_t addr)
+{
+ return (LV_EVE_DL_BITMAP_SOURCE | (addr & 0x3FFFFFUL));
+}
+
+#if LV_DRAW_EVE_EVE_GENERATION < 3 /* only define these for FT81x */
+//#define LV_EVE_BITMAP_TRANSFORM_A(a) ((LV_EVE_DL_BITMAP_TRANSFORM_A) | ((a) & 0x1FFFFUL))
+/**
+ * @brief Set the A coefficient of the bitmap transform matrix.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_BITMAP_TRANSFORM_A(uint32_t val)
+{
+ return (LV_EVE_DL_BITMAP_TRANSFORM_A | (val & 0x1FFFFUL));
+}
+
+//#define LV_EVE_BITMAP_TRANSFORM_B(b) ((LV_EVE_DL_BITMAP_TRANSFORM_B) | ((b) & 0x1FFFFUL))
+/**
+ * @brief Set the B coefficient of the bitmap transform matrix.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_BITMAP_TRANSFORM_B(uint32_t val)
+{
+ return (LV_EVE_DL_BITMAP_TRANSFORM_B | (val & 0x1FFFFUL));
+}
+
+//#define LV_EVE_BITMAP_TRANSFORM_D(d) ((LV_EVE_DL_BITMAP_TRANSFORM_D) | ((d) & 0x1FFFFUL))
+/**
+ * @brief Set the D coefficient of the bitmap transform matrix.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_BITMAP_TRANSFORM_D(uint32_t val)
+{
+ return (LV_EVE_DL_BITMAP_TRANSFORM_D | (val & 0x1FFFFUL));
+}
+
+//#define LV_EVE_BITMAP_TRANSFORM_E(e) ((LV_EVE_DL_BITMAP_TRANSFORM_E) | ((e) & 0x1FFFFUL))
+/**
+ * @brief Set he E coefficient of the bitmap transform matrix.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_BITMAP_TRANSFORM_E(uint32_t val)
+{
+ return (LV_EVE_DL_BITMAP_TRANSFORM_E | (val & 0x1FFFFUL));
+}
+
+#endif
+
+//#define LV_EVE_BITMAP_TRANSFORM_C(c) ((LV_EVE_DL_BITMAP_TRANSFORM_C) | ((c) & 0x1FFFFUL))
+/**
+ * @brief Set the C coefficient of the bitmap transform matrix.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_BITMAP_TRANSFORM_C(uint32_t val)
+{
+ return (LV_EVE_DL_BITMAP_TRANSFORM_C | (val & 0x1FFFFUL));
+}
+
+//#define LV_EVE_BITMAP_TRANSFORM_F(f) ((LV_EVE_DL_BITMAP_TRANSFORM_F) | ((f) & 0x1FFFFUL))
+/**
+ * @brief Set the F coefficient of the bitmap transform matrix.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_BITMAP_TRANSFORM_F(uint32_t val)
+{
+ return (LV_EVE_DL_BITMAP_TRANSFORM_F | (val & 0x1FFFFUL));
+}
+
+//#define LV_EVE_BLEND_FUNC(src,dst) ((LV_EVE_DL_BLEND_FUNC) | (((src) & 7UL) << 3U) | ((dst) & 7UL))
+/**
+ * @brief Execute a sequence of commands at another location in the display list.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_BLEND_FUNC(uint8_t src, uint8_t dst)
+{
+ uint32_t const srcv = (uint32_t)((src & 7UL) << 3U);
+ uint32_t const dstv = (uint32_t)(dst & 7UL);
+ return (LV_EVE_DL_BLEND_FUNC | srcv | dstv);
+}
+
+//#define LV_EVE_CALL(dest) ((LV_EVE_DL_CALL) | ((dest) & 0xFFFFUL))
+/**
+ * @brief Execute a sequence of commands at another location in the display list.
+ * @note valid range for dest is from zero to 2047
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_CALL(uint16_t dest)
+{
+ return (LV_EVE_DL_CALL | (dest & 0x7FFUL));
+}
+
+//#define LV_EVE_JUMP(dest) ((LV_EVE_DL_JUMP) | ((dest) & 0xFFFFUL))
+/**
+ * @brief Execute commands at another location in the display list.
+ * @note valid range for dest is from zero to 2047
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_JUMP(uint16_t dest)
+{
+ return (LV_EVE_DL_JUMP | (dest & 0x7FFUL));
+}
+
+//#define LV_EVE_CELL(cell) ((LV_EVE_DL_CELL) | ((cell) & 0x7FUL))
+/**
+ * @brief Set the bitmap cell number for the VERTEX2F command.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_CELL(uint8_t cell)
+{
+ return (LV_EVE_DL_CELL | (cell & 0x7FUL));
+}
+
+//#define LV_EVE_CLEAR(c,s,t) ((LV_EVE_DL_CLEAR) | (((c) & 1UL) << 2U) | (((s) & 1UL) << 1U) | ((t) & 1UL))
+/**
+ * @brief Clear buffers to preset values.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_CLEAR(uint8_t color, uint8_t stencil, uint8_t tag)
+{
+ uint32_t const colorv = (color & 1UL) << 2U;
+ uint32_t const stencilv = (stencil & 1UL) << 1U;
+ uint32_t const tagv = (tag & 1UL);
+ return (LV_EVE_DL_CLEAR | colorv | stencilv | tagv);
+}
+
+//#define LV_EVE_CLEAR_COLOR_A(alpha) ((LV_EVE_DL_CLEAR_COLOR_A) | ((alpha) & 0xFFUL))
+/**
+ * @brief Set clear value for the alpha channel.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_CLEAR_COLOR_A(uint8_t alpha)
+{
+ return (LV_EVE_DL_CLEAR_COLOR_A | alpha);
+}
+
+//#define LV_EVE_CLEAR_COLOR_RGB(red,green,blue) ((LV_EVE_DL_CLEAR_COLOR_RGB) | (((red) & 0xFFUL) << 16U) | (((green) & 0xFFUL) << 8U) | ((blue) & 0xFFUL))
+/**
+ * @brief Set clear values for red, green and blue channels.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_CLEAR_COLOR_RGB(uint8_t red, uint8_t green, uint8_t blue)
+{
+ uint32_t const redv = ((red & 0xFFUL) << 16U);
+ uint32_t const greenv = ((green & 0xFFUL) << 8U);
+ uint32_t const bluev = (blue & 0xFFUL);
+ return (LV_EVE_DL_CLEAR_COLOR_RGB | redv | greenv | bluev);
+}
+
+//#define LV_EVE_CLEAR_STENCIL(s) ((LV_EVE_DL_CLEAR_STENCIL) | ((s) & 0xFFUL))
+/**
+ * @brief Set clear value for the stencil buffer.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_CLEAR_STENCIL(uint8_t val)
+{
+ return (LV_EVE_DL_CLEAR_STENCIL | val);
+}
+
+//#define LV_EVE_CLEAR_TAG(s) ((LV_EVE_DL_CLEAR_TAG) | ((s) & 0xFFUL))
+/**
+ * @brief Set clear value for the tag buffer.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_CLEAR_TAG(uint8_t val)
+{
+ return (LV_EVE_DL_CLEAR_TAG | val);
+}
+
+//#define LV_EVE_COLOR_A(alpha) ((LV_EVE_DL_COLOR_A) | ((alpha) & 0xFFUL))
+/**
+ * @brief Set the current color alpha.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_COLOR_A(uint8_t alpha)
+{
+ return (LV_EVE_DL_COLOR_A | alpha);
+}
+
+//#define LV_EVE_COLOR_MASK(r,g,b,a) ((LV_EVE_DL_COLOR_MASK) | (((r) & 1UL) << 3U) | (((g) & 1UL) << 2U) | (((b) & 1UL) << 1U) | ((a) & 1UL))
+/**
+ * @brief Enable or disable writing of color components.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_COLOR_MASK(uint8_t red, uint8_t green, uint8_t blue, uint8_t alpha)
+{
+ uint32_t const redv = ((red & 1UL) << 3U);
+ uint32_t const greenv = ((green & 1UL) << 2U);
+ uint32_t const bluev = ((blue & 1UL) << 1U);
+ uint32_t const alphav = (alpha & 1UL);
+ return (LV_EVE_DL_COLOR_MASK | redv | greenv | bluev | alphav);
+}
+
+//#define LV_EVE_COLOR_RGB(red,green,blue) ((LV_EVE_DL_COLOR_RGB) | (((red) & 0xFFUL) << 16U) | (((green) & 0xFFUL) << 8U) | ((blue) & 0xFFUL))
+/**
+ * @brief Set the current color red, green and blue.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_COLOR_RGB(uint8_t red, uint8_t green, uint8_t blue)
+{
+ uint32_t const redv = ((red & 0xFFUL) << 16U);
+ uint32_t const greenv = ((green & 0xFFUL) << 8U);
+ uint32_t const bluev = (blue & 0xFFUL);
+ return (LV_EVE_DL_COLOR_RGB | redv | greenv | bluev);
+}
+
+//#define LV_EVE_LINE_WIDTH(width) ((LV_EVE_DL_LINE_WIDTH) | (((uint32_t) (width)) & 0xFFFUL))
+/**
+ * @brief Set the width of lines to be drawn with primitive LINES in 1/16 pixel precision.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_LINE_WIDTH(uint16_t width)
+{
+ return (LV_EVE_DL_LINE_WIDTH | (width & 0xFFFUL));
+}
+
+//#define LV_EVE_MACRO(m) ((LV_EVE_DL_MACRO) | ((m) & 1UL))
+/**
+ * @brief Execute a single command from a macro register.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_MACRO(uint8_t macro)
+{
+ return (LV_EVE_DL_MACRO | (macro & 0x1UL));
+}
+
+//#define LV_EVE_PALETTE_SOURCE(addr) ((LV_EVE_DL_PALETTE_SOURCE) | ((addr) & 0x3FFFFF3UL))
+/**
+ * @brief Set the base address of the palette.
+ * @note 2-byte alignment is required if pixel format is PALETTE4444 or PALETTE565.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_PALETTE_SOURCE(uint32_t addr)
+{
+ return (LV_EVE_DL_PALETTE_SOURCE | (addr & 0x3FFFFFUL));
+}
+
+//#define LV_EVE_POINT_SIZE(size) ((LV_EVE_DL_POINT_SIZE) | ((size) & 0x1FFFUL))
+/**
+ * @brief Set the radius of points to be drawn with primitive POINTS in 1/16 pixel precision.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_POINT_SIZE(uint16_t size)
+{
+ return (LV_EVE_DL_POINT_SIZE | (size & 0x1FFFUL));
+}
+
+//#define LV_EVE_SCISSOR_SIZE(width,height) ((LV_EVE_DL_SCISSOR_SIZE) | (((width) & 0xFFFUL) << 12U) | ((height) & 0xFFFUL))
+/**
+ * @brief Set the size of the scissor clip rectangle.
+ * @note valid range for width and height is from zero to 2048
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_SCISSOR_SIZE(uint16_t width, uint16_t height)
+{
+ uint32_t const widthv = (uint32_t)((width & 0xFFFUL) << 12U);
+ uint32_t const heightv = (uint32_t)(height & 0xFFFUL);
+ return (LV_EVE_DL_SCISSOR_SIZE | widthv | heightv);
+}
+
+//#define LV_EVE_SCISSOR_XY(x,y) ((LV_EVE_DL_SCISSOR_XY) | (((x) & 0x7FFUL) << 11U) | ((y) & 0x7FFUL))
+/**
+ * @brief Set the top left corner of the scissor clip rectangle.
+ * @note valid range for width and height is from zero to 2047
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_SCISSOR_XY(uint16_t xc0, uint16_t yc0)
+{
+ uint32_t const xc0v = (uint32_t)((xc0 & 0x7FFUL) << 11U);
+ uint32_t const yc0v = (uint32_t)(yc0 & 0x7FFUL);
+ return (LV_EVE_DL_SCISSOR_XY | xc0v | yc0v);
+}
+
+//#define LV_EVE_STENCIL_FUNC(func,ref,mask) ((LV_EVE_DL_STENCIL_FUNC) | (((func) & 7UL) << 16U) | (((ref) & 0xFFUL) << 8U)|((mask) & 0xFFUL))
+/**
+ * @brief Set function and reference value for stencil testing.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_STENCIL_FUNC(uint8_t func, uint8_t ref, uint8_t mask)
+{
+ uint32_t const funcv = (uint32_t)((func & 7UL) << 16U);
+ uint32_t const refv = (uint32_t)((ref & 0xFFUL) << 8U);
+ uint32_t const maskv = (uint32_t)(mask & 0xFFUL);
+ return (LV_EVE_DL_STENCIL_FUNC | funcv | refv | maskv);
+}
+
+//#define LV_EVE_STENCIL_MASK(mask) ((LV_EVE_DL_STENCIL_MASK) | ((mask) & 0xFFUL))
+/**
+ * @brief Control the writing of individual bits in the stencil planes.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_STENCIL_MASK(uint8_t mask)
+{
+ return (LV_EVE_DL_STENCIL_MASK | mask);
+}
+
+//#define LV_EVE_STENCIL_OP(sfail,spass) ((LV_EVE_DL_STENCIL_OP) | (((sfail) & 7UL) << 3U) | ((spass) & 7UL))
+/**
+ * @brief Set stencil test actions.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_STENCIL_OP(uint8_t sfail, uint8_t spass)
+{
+ uint32_t const sfailv = (uint32_t)((sfail & 0x07UL) << 3U);
+ uint32_t const spassv = (uint32_t)(spass & 0x07UL);
+ return (LV_EVE_DL_STENCIL_OP | sfailv | spassv);
+}
+
+//#define LV_EVE_TAG(s) ((LV_EVE_DL_TAG) | ((s) & 0xFFUL))
+/**
+ * @brief Attach the tag value for the following graphics objects drawn on the screen.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_TAG(uint8_t tagval)
+{
+ return (LV_EVE_DL_TAG | tagval);
+}
+
+//#define LV_EVE_TAG_MASK(mask) ((LV_EVE_DL_TAG_MASK) | ((mask) & 1UL))
+/**
+ * @brief Control the writing of the tag buffer.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_TAG_MASK(uint8_t mask)
+{
+ return (LV_EVE_DL_TAG_MASK | ((mask) & 1UL));
+}
+
+//#define LV_EVE_VERTEX2F(x,y) ((LV_EVE_DL_VERTEX2F) | ((((uint32_t) (x)) & 0x7FFFUL) << 15U) | (((uint32_t) (y)) & 0x7FFFUL))
+/**
+ * @brief Set coordinates for graphics primitves.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_VERTEX2F(int16_t xc0, int16_t yc0)
+{
+ uint32_t const xc0v = ((((uint32_t)((uint16_t) xc0)) & 0x7FFFUL) << 15U);
+ uint32_t const yc0v = (((uint32_t)((uint16_t) yc0)) & 0x7FFFUL);
+ return (LV_EVE_DL_VERTEX2F | xc0v | yc0v);
+}
+
+//#define LV_EVE_VERTEX2II(x,y,handle,cell) ((LV_EVE_DL_VERTEX2II) | (((x) & 0x1FFUL) << 21U) | (((y) & 0x1FFUL) << 12U) | (((handle) & 0x1FUL) << 7U) | ((cell) & 0x7FUL))
+/**
+ * @brief Set coordinates, bitmap-handle and cell-number for graphics primitves.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_VERTEX2II(uint16_t xc0, uint16_t yc0, uint8_t handle, uint8_t cell)
+{
+ uint32_t const xc0v = ((((uint32_t) xc0) & 0x1FFUL) << 21U);
+ uint32_t const yc0v = ((((uint32_t) yc0) & 0x1FFUL) << 12U);
+ uint32_t const handlev = ((((uint32_t) handle) & 0x1FUL) << 7U);
+ uint32_t const cellv = (((uint32_t) cell) & 0x7FUL);
+ return (LV_EVE_DL_VERTEX2II | xc0v | yc0v | handlev | cellv);
+}
+
+//#define LV_EVE_VERTEX_FORMAT(frac) ((LV_EVE_DL_VERTEX_FORMAT) | ((frac) & 7UL))
+/**
+ * @brief Set the precision of VERTEX2F coordinates.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_VERTEX_FORMAT(uint8_t frac)
+{
+ return (LV_EVE_DL_VERTEX_FORMAT | ((frac) & 7UL));
+}
+
+//#define LV_EVE_VERTEX_TRANSLATE_X(x) ((LV_EVE_DL_VERTEX_TRANSLATE_X) | ((x) & 0x1FFFFUL))
+/**
+ * @brief Set the vertex transformations X translation component.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_VERTEX_TRANSLATE_X(int32_t xco)
+{
+ return (LV_EVE_DL_VERTEX_TRANSLATE_X | (((uint32_t) xco) & 0x1FFFFUL));
+}
+
+//#define LV_EVE_VERTEX_TRANSLATE_Y(y) ((LV_EVE_DL_VERTEX_TRANSLATE_Y) | ((y) & 0x1FFFFUL))
+/**
+ * @brief Set the vertex transformations Y translation component.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_VERTEX_TRANSLATE_Y(int32_t yco)
+{
+ return (LV_EVE_DL_VERTEX_TRANSLATE_Y | (((uint32_t) yco) & 0x1FFFFUL));
+}
+
+/* #define LV_EVE_BEGIN(prim) ((LV_EVE_DL_BEGIN) | ((prim) & 15UL)) */ /* use define LV_EVE_DL_BEGIN */
+/* #define LV_EVE_DISPLAY() ((LV_EVE_DL_DISPLAY)) */ /* use define LV_EVE_DL_DISPLAY */
+/* #define LV_EVE_END() ((LV_EVE_DL_END)) */ /* use define LV_EVE_DL_END */
+/* #define LV_EVE_RESTORE_CONTEXT() ((LV_EVE_DL_RESTORE_CONTEXT)) */ /* use define LV_EVE_DL_RESTORE_CONTEXT */
+/* #define LV_EVE_RETURN() ((LV_EVE_DL_RETURN)) */ /* use define LV_EVE_DL_RETURN */
+/* #define LV_EVE_SAVE_CONTEXT() ((LV_EVE_DL_SAVE_CONTEXT)) */ /* use define LV_EVE_DL_SAVE_CONTEXT */
+/* #define LV_EVE_NOP() ((LV_EVE_DL_NOP)) */
+
+/* ########## EVE Generation 3: BT815 / BT816 definitions ########## */
+
+#if LV_DRAW_EVE_EVE_GENERATION > 2
+
+#define LV_EVE_EVE_GLFORMAT ((uint32_t) 31UL) /* used with BITMAP_LAYOUT to indicate bitmap-format is specified by BITMAP_EXT_FORMAT */
+
+#define LV_EVE_DL_BITMAP_EXT_FORMAT ((uint32_t) 0x2E000000UL) /* requires OR'd arguments */
+#define LV_EVE_DL_BITMAP_SWIZZLE ((uint32_t) 0x2F000000UL)
+/* #define LV_EVE_DL_INT_FRR ((uint32_t) 0x30000000UL) */ /* ESE displays "Internal: flash read result" - undocumented display list command */
+
+/* Extended Bitmap formats */
+#define LV_EVE_EVE_ASTC_4X4 ((uint32_t) 37808UL)
+#define LV_EVE_EVE_ASTC_5X4 ((uint32_t) 37809UL)
+#define LV_EVE_EVE_ASTC_5X5 ((uint32_t) 37810UL)
+#define LV_EVE_EVE_ASTC_6X5 ((uint32_t) 37811UL)
+#define LV_EVE_EVE_ASTC_6X6 ((uint32_t) 37812UL)
+#define LV_EVE_EVE_ASTC_8X5 ((uint32_t) 37813UL)
+#define LV_EVE_EVE_ASTC_8X6 ((uint32_t) 37814UL)
+#define LV_EVE_EVE_ASTC_8X8 ((uint32_t) 37815UL)
+#define LV_EVE_EVE_ASTC_10X5 ((uint32_t) 37816UL)
+#define LV_EVE_EVE_ASTC_10X6 ((uint32_t) 37817UL)
+#define LV_EVE_EVE_ASTC_10X8 ((uint32_t) 37818UL)
+#define LV_EVE_EVE_ASTC_10X10 ((uint32_t) 37819UL)
+#define LV_EVE_EVE_ASTC_12X10 ((uint32_t) 37820UL)
+#define LV_EVE_EVE_ASTC_12X12 ((uint32_t) 37821UL)
+
+#define LV_EVE_EVE_RAM_ERR_REPORT ((uint32_t) 0x309800UL) /* max 128 bytes null terminated string */
+#define LV_EVE_EVE_RAM_FLASH ((uint32_t) 0x800000UL)
+#define LV_EVE_EVE_RAM_FLASH_POSTBLOB ((uint32_t) 0x801000UL)
+
+#define LV_EVE_EVE_OPT_FLASH ((uint16_t) 64U)
+#define LV_EVE_EVE_OPT_OVERLAY ((uint16_t) 128U)
+#define LV_EVE_EVE_OPT_FORMAT ((uint16_t) 4096U)
+#define LV_EVE_EVE_OPT_FILL ((uint16_t) 8192U)
+
+/* Commands for BT815 / BT816 */
+#define LV_EVE_CMD_BITMAP_TRANSFORM ((uint32_t) 0xFFFFFF21UL)
+#define LV_EVE_CMD_SYNC ((uint32_t) 0xFFFFFF42UL) /* does not need a dedicated function, just use EVE_cmd_dl(CMD_SYNC) */
+#define LV_EVE_CMD_FLASHERASE ((uint32_t) 0xFFFFFF44UL) /* does not need a dedicated function, just use EVE_cmd_dl(CMD_FLASHERASE) */
+#define LV_EVE_CMD_FLASHWRITE ((uint32_t) 0xFFFFFF45UL)
+#define LV_EVE_CMD_FLASHREAD ((uint32_t) 0xFFFFFF46UL)
+#define LV_EVE_CMD_FLASHUPDATE ((uint32_t) 0xFFFFFF47UL)
+#define LV_EVE_CMD_FLASHDETACH ((uint32_t) 0xFFFFFF48UL) /* does not need a dedicated function, just use EVE_cmd_dl(CMD_FLASHDETACH) */
+#define LV_EVE_CMD_FLASHATTACH ((uint32_t) 0xFFFFFF49UL) /* does not need a dedicated function, just use EVE_cmd_dl(CMD_FLASHATTACH) */
+#define LV_EVE_CMD_FLASHFAST ((uint32_t) 0xFFFFFF4AUL)
+#define LV_EVE_CMD_FLASHSPIDESEL ((uint32_t) 0xFFFFFF4BUL) /* does not need a dedicated function, just use EVE_cmd_dl(CMD_FLASHSPIDESEL) */
+#define LV_EVE_CMD_FLASHSPITX ((uint32_t) 0xFFFFFF4CUL)
+#define LV_EVE_CMD_FLASHSPIRX ((uint32_t) 0xFFFFFF4DUL)
+#define LV_EVE_CMD_FLASHSOURCE ((uint32_t) 0xFFFFFF4EUL)
+#define LV_EVE_CMD_CLEARCACHE ((uint32_t) 0xFFFFFF4FUL) /* does not need a dedicated function, just use EVE_cmd_dl(CMD_CLEARCACHE) */
+#define LV_EVE_CMD_INFLATE2 ((uint32_t) 0xFFFFFF50UL)
+#define LV_EVE_CMD_ROTATEAROUND ((uint32_t) 0xFFFFFF51UL)
+#define LV_EVE_CMD_RESETFONTS ((uint32_t) 0xFFFFFF52UL) /* does not need a dedicated function, just use EVE_cmd_dl(CMD_RESETFONTS) */
+#define LV_EVE_CMD_ANIMSTART ((uint32_t) 0xFFFFFF53UL)
+#define LV_EVE_CMD_ANIMSTOP ((uint32_t) 0xFFFFFF54UL)
+#define LV_EVE_CMD_ANIMXY ((uint32_t) 0xFFFFFF55UL)
+#define LV_EVE_CMD_ANIMDRAW ((uint32_t) 0xFFFFFF56UL)
+#define LV_EVE_CMD_GRADIENTA ((uint32_t) 0xFFFFFF57UL)
+#define LV_EVE_CMD_FILLWIDTH ((uint32_t) 0xFFFFFF58UL)
+#define LV_EVE_CMD_APPENDF ((uint32_t) 0xFFFFFF59UL)
+#define LV_EVE_CMD_ANIMFRAME ((uint32_t) 0xFFFFFF5AUL)
+#define LV_EVE_CMD_VIDEOSTARTF ((uint32_t) 0xFFFFFF5FUL) /* does not need a dedicated function, just use EVE_cmd_dl(CMD_VIDEOSTARTF) */
+
+/* Registers for BT815 / BT816 */
+#define LV_EVE_REG_ADAPTIVE_FRAMERATE ((uint32_t) 0x0030257cUL)
+#define LV_EVE_REG_PLAYBACK_PAUSE ((uint32_t) 0x003025ecUL)
+#define LV_EVE_REG_FLASH_STATUS ((uint32_t) 0x003025f0UL)
+#define LV_EVE_REG_FLASH_SIZE ((uint32_t) 0x00309024UL)
+#define LV_EVE_REG_PLAY_CONTROL ((uint32_t) 0x0030914eUL)
+#define LV_EVE_REG_COPRO_PATCH_PTR ((uint32_t) 0x00309162UL)
+
+/* Macros for BT815 / BT816 */
+
+//#define LV_EVE_BITMAP_EXT_FORMAT(format) ((LV_EVE_DL_BITMAP_EXT_FORMAT) | ((format) & 0xFFFFUL))
+/**
+ * @brief Set the extended format of the bitmap.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_BITMAP_EXT_FORMAT(uint16_t format)
+{
+ return (LV_EVE_DL_BITMAP_EXT_FORMAT | format);
+}
+
+//#define LV_EVE_BITMAP_SWIZZLE(r,g,b,a) ((LV_EVE_DL_BITMAP_SWIZZLE) | (((r) & 7UL) << 9U) | (((g) & 7UL) << 6U) | (((b) & 7UL) << 3U) | ((a) & 7UL))
+/**
+ * @brief Set the source for the red, green, blue and alpha channels of a bitmap.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_BITMAP_SWIZZLE(uint8_t red, uint8_t green, uint8_t blue, uint8_t alpha)
+{
+ uint32_t const redv = ((red & 7UL) << 9U);
+ uint32_t const greenv = ((green & 7UL) << 6U);
+ uint32_t const bluev = ((blue & 7UL) << 3U);
+ uint32_t const alphav = (alpha & 7UL);
+ return (LV_EVE_DL_BITMAP_SWIZZLE | redv | greenv | bluev | alphav);
+}
+
+//#define LV_EVE_BITMAP_TRANSFORM_A_EXT(p,v) ((LV_EVE_DL_BITMAP_TRANSFORM_A) | (((p) & 1UL) << 17U) | ((v) & 0x1FFFFUL))
+/**
+ * @brief Set the A coefficient of the bitmap transform matrix.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_BITMAP_TRANSFORM_A(uint8_t prc, uint32_t val)
+{
+ uint32_t const prcv = ((prc & 1UL) << 17U);
+ uint32_t const valv = (val & 0x1FFFFUL);
+ return (LV_EVE_DL_BITMAP_TRANSFORM_A | prcv | valv);
+}
+
+//#define LV_EVE_BITMAP_TRANSFORM_B_EXT(p,v) ((LV_EVE_DL_BITMAP_TRANSFORM_B) | (((p) & 1UL) << 17U) | ((v) & 0x1FFFFUL))
+/**
+ * @brief Set the B coefficient of the bitmap transform matrix.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_BITMAP_TRANSFORM_B(uint8_t prc, uint32_t val)
+{
+ uint32_t const prcv = ((prc & 1UL) << 17U);
+ uint32_t const valv = (val & 0x1FFFFUL);
+ return (LV_EVE_DL_BITMAP_TRANSFORM_B | prcv | valv);
+}
+
+//#define LV_EVE_BITMAP_TRANSFORM_D_EXT(p,v) ((LV_EVE_DL_BITMAP_TRANSFORM_D) | (((p) & 1UL) << 17U) | ((v) & 0x1FFFFUL))
+/**
+ * @brief Set the D coefficient of the bitmap transform matrix.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_BITMAP_TRANSFORM_D(uint8_t prc, uint32_t val)
+{
+ uint32_t const prcv = ((prc & 1UL) << 17U);
+ uint32_t const valv = (val & 0x1FFFFUL);
+ return (LV_EVE_DL_BITMAP_TRANSFORM_D | prcv | valv);
+}
+
+//#define LV_EVE_BITMAP_TRANSFORM_E_EXT(p,v) ((LV_EVE_DL_BITMAP_TRANSFORM_E) | (((p) & 1UL) << 17U) | ((v) & 0x1FFFFUL))
+/**
+ * @brief Set the E coefficient of the bitmap transform matrix.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LV_EVE_BITMAP_TRANSFORM_E(uint8_t prc, uint32_t val)
+{
+ uint32_t const prcv = ((prc & 1UL) << 17U);
+ uint32_t const valv = (val & 0x1FFFFUL);
+ return (LV_EVE_DL_BITMAP_TRANSFORM_E | prcv | valv);
+}
+
+//#define LV_EVE_BITMAP_TRANSFORM_A(a) LV_EVE_BITMAP_TRANSFORM_A_EXT(0UL,(a))
+//#define LV_EVE_BITMAP_TRANSFORM_B(b) LV_EVE_BITMAP_TRANSFORM_B_EXT(0UL,(b))
+//#define LV_EVE_BITMAP_TRANSFORM_D(d) LV_EVE_BITMAP_TRANSFORM_D_EXT(0UL,(d))
+//#define LV_EVE_BITMAP_TRANSFORM_E(e) LV_EVE_BITMAP_TRANSFORM_E_EXT(0UL,(e))
+
+#endif /* LV_DRAW_EVE_EVE_GENERATION > 2 */
+
+/* ########## EVE Generation 4: BT817 / BT818 definitions ########## */
+
+#if LV_DRAW_EVE_EVE_GENERATION > 3
+
+/* Commands for BT817 / BT818 */
+#define LV_EVE_CMD_ANIMFRAMERAM ((uint32_t) 0xFFFFFF6DUL)
+#define LV_EVE_CMD_ANIMSTARTRAM ((uint32_t) 0xFFFFFF6EUL)
+#define LV_EVE_CMD_APILEVEL ((uint32_t) 0xFFFFFF63UL)
+#define LV_EVE_CMD_CALIBRATESUB ((uint32_t) 0xFFFFFF60UL)
+#define LV_EVE_CMD_CALLLIST ((uint32_t) 0xFFFFFF67UL)
+#define LV_EVE_CMD_ENDLIST ((uint32_t) 0xFFFFFF69UL) /* does not need a dedicated function, just use EVE_cmd_dl(CMD_ENDLIST) */
+#define LV_EVE_CMD_FLASHPROGRAM ((uint32_t) 0xFFFFFF70UL)
+#define LV_EVE_CMD_FONTCACHE ((uint32_t) 0xFFFFFF6BUL)
+#define LV_EVE_CMD_FONTCACHEQUERY ((uint32_t) 0xFFFFFF6CUL)
+#define LV_EVE_CMD_GETIMAGE ((uint32_t) 0xFFFFFF64UL)
+#define LV_EVE_CMD_HSF ((uint32_t) 0xFFFFFF62UL)
+#define LV_EVE_CMD_LINETIME ((uint32_t) 0xFFFFFF5EUL)
+#define LV_EVE_CMD_NEWLIST ((uint32_t) 0xFFFFFF68UL)
+#define LV_EVE_CMD_PCLKFREQ ((uint32_t) 0xFFFFFF6AUL)
+#define LV_EVE_CMD_RETURN ((uint32_t) 0xFFFFFF66UL) /* does not need a dedicated function, just use EVE_cmd_dl(CMD_RETURN) */
+#define LV_EVE_CMD_RUNANIM ((uint32_t) 0xFFFFFF6FUL)
+#define LV_EVE_CMD_TESTCARD ((uint32_t) 0xFFFFFF61UL) /* does not need a dedicated function, just use EVE_cmd_dl(CMD_TESTCARD) */
+#define LV_EVE_CMD_WAIT ((uint32_t) 0xFFFFFF65UL)
+
+/* Registers for BT817 / BT818 */
+#define LV_EVE_REG_UNDERRUN ((uint32_t) 0x0030260cUL)
+#define LV_EVE_REG_AH_HCYCLE_MAX ((uint32_t) 0x00302610UL)
+#define LV_EVE_REG_PCLK_FREQ ((uint32_t) 0x00302614UL)
+#define LV_EVE_REG_PCLK_2X ((uint32_t) 0x00302618UL)
+#define LV_EVE_REG_ANIM_ACTIVE ((uint32_t) 0x0030902CUL)
+
+#endif /* LV_DRAW_EVE_EVE_GENERATION > 3 */
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+/**********************
+ * GLOBAL PROTOTYPES
+ **********************/
+
+/**********************
+ * MACROS
+ **********************/
+
+#endif /*LV_USE_DRAW_EVE*/
+
+#ifdef __cplusplus
+} /*extern "C"*/
+#endif
+
+#endif /*LV_DRAW_EVE_DISPLAY_DEFINES_H*/
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/evdev/lv_evdev.c b/lib/libesp32_lvgl/lvgl/src/drivers/evdev/lv_evdev.c
index a1c954beb..1b8319e04 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/evdev/lv_evdev.c
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/evdev/lv_evdev.c
@@ -33,6 +33,7 @@
#include "../../display/lv_display.h"
#include "../../display/lv_display_private.h"
#include "../../widgets/image/lv_image.h"
+#include "../../indev/lv_indev_gesture.h"
/*********************
* DEFINES
@@ -43,6 +44,7 @@
#define EVDEV_DISCOVERY_PATH_BUF_SIZE 32
#define REL_XY_MASK ((1 << REL_X) | (1 << REL_Y))
#define ABS_XY_MASK ((1 << ABS_X) | (1 << ABS_Y))
+#define MAX_TOUCH_POINTS 5
/**********************
* TYPEDEFS
@@ -66,6 +68,13 @@ typedef struct {
int key;
lv_indev_state_t state;
bool deleting;
+ /* Multi-touch support */
+#if LV_USE_GESTURE_RECOGNITION
+ lv_indev_touch_data_t touch_data[MAX_TOUCH_POINTS]; /* Array of touch points for gesture recognition */
+ uint8_t touch_count; /* Number of valid touch points */
+ uint8_t current_slot; /* Current touch point slot */
+ bool touch_data_changed; /* Flag to indicate if touch data has changed since last SYN_REPORT */
+#endif
} lv_evdev_t;
#ifndef BSD
@@ -161,12 +170,70 @@ static void _evdev_read(lv_indev_t * indev, lv_indev_data_t * data)
else if(in.code == REL_Y) dsc->root_y += in.value;
}
else if(in.type == EV_ABS) {
- if(in.code == ABS_X || in.code == ABS_MT_POSITION_X) dsc->root_x = in.value;
- else if(in.code == ABS_Y || in.code == ABS_MT_POSITION_Y) dsc->root_y = in.value;
- else if(in.code == ABS_MT_TRACKING_ID) {
- if(in.value == -1) dsc->state = LV_INDEV_STATE_RELEASED;
- else if(in.value == 0) dsc->state = LV_INDEV_STATE_PRESSED;
+#if LV_USE_GESTURE_RECOGNITION
+ if(in.code == ABS_MT_SLOT) {
+ if(in.value >= MAX_TOUCH_POINTS) {
+ dsc->current_slot = MAX_TOUCH_POINTS - 1;
+ dsc->touch_count = MAX_TOUCH_POINTS;
+ LV_LOG_WARN("Touch point slot out of range, setting to max: %d", MAX_TOUCH_POINTS - 1);
+ }
+ else {
+ dsc->current_slot = in.value;
+ dsc->touch_count = LV_MAX(dsc->touch_count, dsc->current_slot + 1);
+ LV_LOG_TRACE("Slot changed to %d, touch_count=%d", dsc->current_slot, dsc->touch_count);
+ }
}
+ else
+#endif
+ if(in.code == ABS_X || in.code == ABS_MT_POSITION_X) {
+ dsc->root_x = in.value;
+#if LV_USE_GESTURE_RECOGNITION
+ if(in.code == ABS_MT_POSITION_X && dsc->current_slot < MAX_TOUCH_POINTS) {
+ dsc->touch_data[dsc->current_slot].point.x = in.value;
+ dsc->touch_data_changed = true;
+ LV_LOG_TRACE("MT_X update: slot=%d, x=%d", dsc->current_slot, in.value);
+ }
+#endif
+ }
+ else if(in.code == ABS_Y || in.code == ABS_MT_POSITION_Y) {
+ dsc->root_y = in.value;
+#if LV_USE_GESTURE_RECOGNITION
+ if(in.code == ABS_MT_POSITION_Y && dsc->current_slot < MAX_TOUCH_POINTS) {
+ dsc->touch_data[dsc->current_slot].point.y = in.value;
+ dsc->touch_data_changed = true;
+ LV_LOG_TRACE("MT_Y update: slot=%d, y=%d", dsc->current_slot, in.value);
+ }
+#endif
+ }
+ else if(in.code == ABS_MT_TRACKING_ID) {
+ if(in.value == -1) dsc->state = LV_INDEV_STATE_RELEASED;
+ else dsc->state = LV_INDEV_STATE_PRESSED;
+#if LV_USE_GESTURE_RECOGNITION
+ if(in.value == -1) {
+ if(dsc->current_slot < MAX_TOUCH_POINTS) {
+ dsc->touch_data[dsc->current_slot].state = LV_INDEV_STATE_RELEASED;
+ dsc->touch_data_changed = true;
+ LV_LOG_TRACE("Touch slot %d released", dsc->current_slot);
+
+ dsc->touch_count = 0;
+ for(int i = 0; i < MAX_TOUCH_POINTS; i++) {
+ if(dsc->touch_data[i].state == LV_INDEV_STATE_PRESSED) {
+ dsc->touch_count = i + 1;
+ }
+ }
+ }
+ }
+ else {
+ if(dsc->current_slot < MAX_TOUCH_POINTS) {
+ dsc->touch_data[dsc->current_slot].state = LV_INDEV_STATE_PRESSED;
+ dsc->touch_data[dsc->current_slot].id = dsc->current_slot;
+ dsc->touch_count = LV_MAX(dsc->touch_count, dsc->current_slot + 1);
+ dsc->touch_data_changed = true;
+ LV_LOG_TRACE("Touch slot %d pressed, touch_count=%d", dsc->current_slot, dsc->touch_count);
+ }
+ }
+#endif
+ }
}
else if(in.type == EV_KEY) {
if(in.code == BTN_MOUSE || in.code == BTN_TOUCH) {
@@ -182,7 +249,64 @@ static void _evdev_read(lv_indev_t * indev, lv_indev_data_t * data)
}
}
}
+#if LV_USE_GESTURE_RECOGNITION
+ else if(in.type == EV_SYN && in.code == SYN_REPORT) {
+ /* Handle gesture recognition at sync event */
+ if(dsc->touch_count > 0 && dsc->touch_data_changed) {
+ LV_LOG_TRACE("=== SYN_REPORT: touch_count=%d ===", dsc->touch_count);
+ for(int i = 0; i < MAX_TOUCH_POINTS; i++) {
+ if(dsc->touch_data[i].state == LV_INDEV_STATE_PRESSED || dsc->touch_data[i].state == LV_INDEV_STATE_RELEASED) {
+ LV_LOG_TRACE("Slot %d: state=%s, raw(%d, %d)",
+ i,
+ dsc->touch_data[i].state == LV_INDEV_STATE_PRESSED ? "PRESSED" : "RELEASED",
+ dsc->touch_data[i].point.x, dsc->touch_data[i].point.y);
+ }
+ }
+
+ /* Create a temporary array with calibrated coordinates for gesture recognition */
+ lv_indev_touch_data_t calibrated_touch_data[MAX_TOUCH_POINTS];
+
+ int active_touches = 0;
+
+ for(int i = 0; i < MAX_TOUCH_POINTS; i++) {
+ if(dsc->touch_data[i].state == LV_INDEV_STATE_PRESSED || dsc->touch_data[i].state == LV_INDEV_STATE_RELEASED) {
+ calibrated_touch_data[active_touches] = dsc->touch_data[i];
+
+ lv_point_t calib_point = _evdev_process_pointer(indev, dsc->touch_data[i].point.x, dsc->touch_data[i].point.y);
+ calibrated_touch_data[active_touches].point = calib_point;
+
+ LV_LOG_TRACE("Touch %d (slot %d): state=%s, raw(%d, %d) -> calib(%d, %d)",
+ active_touches, i,
+ dsc->touch_data[i].state == LV_INDEV_STATE_PRESSED ? "PRESSED" : "RELEASED",
+ dsc->touch_data[i].point.x, dsc->touch_data[i].point.y,
+ calib_point.x, calib_point.y);
+ active_touches++;
+ }
+ }
+
+ LV_LOG_TRACE("Gesture recognition: %d touches detected", active_touches);
+ lv_indev_gesture_recognizers_update(indev, calibrated_touch_data, active_touches);
+ lv_indev_gesture_recognizers_set_data(indev, data);
+
+ /* Clear RELEASED touch points after gesture recognition to prevent duplicate processing */
+ for(int i = 0; i < MAX_TOUCH_POINTS; i++) {
+ if(dsc->touch_data[i].state == LV_INDEV_STATE_RELEASED) {
+ /* Mark touch point as invalid by zeroing out the data */
+ dsc->touch_data[i].point.x = 0;
+ dsc->touch_data[i].point.y = 0;
+ dsc->touch_data[i].id = -1; /* Mark as invalid */
+ /* Note: We keep the RELEASED state for this frame, it will be naturally
+ * cleared when new touch events come in or when all touches end */
+ LV_LOG_TRACE("Cleared released touch point slot %d", i);
+ }
+ }
+
+ dsc->touch_data_changed = false;
+ }
+ }
+#endif
}
+
if(!dsc->deleting && br == -1 && errno != EAGAIN) {
if(errno == ENODEV) {
LV_LOG_INFO("evdev device was removed");
@@ -201,8 +325,19 @@ static void _evdev_read(lv_indev_t * indev, lv_indev_data_t * data)
data->key = dsc->key;
break;
case LV_INDEV_TYPE_POINTER:
+#if LV_USE_GESTURE_RECOGNITION
+ if(dsc->touch_count > 0) {
+ data->state = dsc->touch_data[0].state;
+ data->point = _evdev_process_pointer(indev, dsc->touch_data[0].point.x, dsc->touch_data[0].point.y);
+ }
+ else {
+ data->state = dsc->state;
+ data->point = _evdev_process_pointer(indev, dsc->root_x, dsc->root_y);
+ }
+#else
data->state = dsc->state;
data->point = _evdev_process_pointer(indev, dsc->root_x, dsc->root_y);
+#endif
break;
default:
break;
@@ -339,22 +474,18 @@ static void _evdev_discovery_timer_cb(lv_timer_t * tim)
* GLOBAL FUNCTIONS
**********************/
-lv_indev_t * lv_evdev_create(lv_indev_type_t indev_type, const char * dev_path)
+lv_indev_t * lv_evdev_create_fd(lv_indev_type_t indev_type, int fd)
{
lv_evdev_t * dsc = lv_malloc_zeroed(sizeof(lv_evdev_t));
LV_ASSERT_MALLOC(dsc);
- if(dsc == NULL) return NULL;
+ if(dsc == NULL) goto err_malloc;
- dsc->fd = open(dev_path, O_RDONLY | O_NOCTTY | O_CLOEXEC);
- if(dsc->fd < 0) {
- LV_LOG_WARN("open failed: %s", strerror(errno));
- goto err_after_malloc;
- }
+ dsc->fd = fd;
struct stat sb;
if(0 != fstat(dsc->fd, &sb)) {
LV_LOG_ERROR("fstat failed: %s", strerror(errno));
- goto err_after_open;
+ goto err_after_malloc;
}
dsc->st_dev = sb.st_dev;
dsc->st_ino = sb.st_ino;
@@ -405,12 +536,12 @@ lv_indev_t * lv_evdev_create(lv_indev_type_t indev_type, const char * dev_path)
}
if(indev_type == LV_INDEV_TYPE_NONE) {
- goto err_after_open;
+ goto err_after_malloc;
}
if(fcntl(dsc->fd, F_SETFL, O_NONBLOCK) < 0) {
LV_LOG_ERROR("fcntl failed: %s", strerror(errno));
- goto err_after_open;
+ goto err_after_malloc;
}
/* Detect the minimum and maximum values of the input device for calibration. */
@@ -434,7 +565,7 @@ lv_indev_t * lv_evdev_create(lv_indev_type_t indev_type, const char * dev_path)
}
lv_indev_t * indev = lv_indev_create();
- if(indev == NULL) goto err_after_open;
+ if(indev == NULL) goto err_after_malloc;
lv_indev_set_type(indev, indev_type);
lv_indev_set_read_cb(indev, _evdev_read);
lv_indev_set_driver_data(indev, dsc);
@@ -442,13 +573,24 @@ lv_indev_t * lv_evdev_create(lv_indev_type_t indev_type, const char * dev_path)
return indev;
-err_after_open:
- close(dsc->fd);
err_after_malloc:
lv_free(dsc);
+err_malloc:
+ close(fd);
return NULL;
}
+lv_indev_t * lv_evdev_create(lv_indev_type_t indev_type, const char * dev_path)
+{
+ int fd = open(dev_path, O_RDONLY | O_NOCTTY | O_CLOEXEC);
+ if(fd < 0) {
+ LV_LOG_WARN("open failed: %s", strerror(errno));
+ return NULL;
+ }
+
+ return lv_evdev_create_fd(indev_type, fd);
+}
+
lv_result_t lv_evdev_discovery_start(lv_evdev_discovery_cb_t cb, void * user_data)
{
#ifndef BSD
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/evdev/lv_evdev.h b/lib/libesp32_lvgl/lvgl/src/drivers/evdev/lv_evdev.h
index 091de6717..ed00bb1e6 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/evdev/lv_evdev.h
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/evdev/lv_evdev.h
@@ -40,13 +40,21 @@ typedef void (*lv_evdev_discovery_cb_t)(lv_indev_t * indev, lv_evdev_type_t type
**********************/
/**
- * Create evdev input device.
+ * Create evdev input device from a given path.
* @param type LV_INDEV_TYPE_POINTER or LV_INDEV_TYPE_KEYPAD
* @param dev_path device path, e.g., /dev/input/event0
* @return pointer to input device or NULL if opening failed
*/
lv_indev_t * lv_evdev_create(lv_indev_type_t indev_type, const char * dev_path);
+/**
+ * Create evdev input device, taking ownership of the given file descriptor.
+ * @param type LV_INDEV_TYPE_POINTER or LV_INDEV_TYPE_KEYPAD
+ * @param fd file descriptor of the evdev device
+ * @return pointer to input device or NULL if opening failed
+ */
+lv_indev_t * lv_evdev_create_fd(lv_indev_type_t indev_type, int fd);
+
/**
* Begin automatically creating evdev indevs for all new and existing
* evdev devices found in /dev/input/
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/glfw/lv_glfw_window.c b/lib/libesp32_lvgl/lvgl/src/drivers/glfw/lv_glfw_window.c
deleted file mode 100644
index 6b4c19575..000000000
--- a/lib/libesp32_lvgl/lvgl/src/drivers/glfw/lv_glfw_window.c
+++ /dev/null
@@ -1,403 +0,0 @@
-/**
- * @file lv_glfw_window.c
- *
- */
-
-/*********************
- * INCLUDES
- *********************/
-#include "lv_glfw_window_private.h"
-#if LV_USE_OPENGLES
-#include
-#include "../../core/lv_refr.h"
-#include "../../stdlib/lv_string.h"
-#include "../../core/lv_global.h"
-#include "../../display/lv_display_private.h"
-#include "../../indev/lv_indev.h"
-#include "../../lv_init.h"
-#include "../../misc/lv_area_private.h"
-
-#include
-#include
-
-#include "lv_opengles_driver.h"
-#include "lv_opengles_texture.h"
-
-/*********************
- * DEFINES
- *********************/
-
-/**********************
- * TYPEDEFS
- **********************/
-
-/**********************
- * STATIC PROTOTYPES
- **********************/
-static void window_update_handler(lv_timer_t * t);
-static uint32_t lv_glfw_tick_count_callback(void);
-static lv_glfw_window_t * lv_glfw_get_lv_window_from_window(GLFWwindow * window);
-static void glfw_error_cb(int error, const char * description);
-static int lv_glfw_init(void);
-static int lv_glew_init(void);
-static void lv_glfw_timer_init(void);
-static void lv_glfw_window_config(GLFWwindow * window, bool use_mouse_indev);
-static void lv_glfw_window_quit(void);
-static void window_close_callback(GLFWwindow * window);
-static void key_callback(GLFWwindow * window, int key, int scancode, int action, int mods);
-static void mouse_button_callback(GLFWwindow * window, int button, int action, int mods);
-static void mouse_move_callback(GLFWwindow * window, double xpos, double ypos);
-static void proc_mouse(lv_glfw_window_t * window);
-static void indev_read_cb(lv_indev_t * indev, lv_indev_data_t * data);
-static void framebuffer_size_callback(GLFWwindow * window, int width, int height);
-
-/**********************
- * STATIC VARIABLES
- **********************/
-static bool glfw_inited;
-static bool glew_inited;
-static lv_timer_t * update_handler_timer;
-static lv_ll_t glfw_window_ll;
-
-/**********************
- * MACROS
- **********************/
-
-/**********************
- * GLOBAL FUNCTIONS
- **********************/
-
-lv_glfw_window_t * lv_glfw_window_create(int32_t hor_res, int32_t ver_res, bool use_mouse_indev)
-{
- if(lv_glfw_init() != 0) {
- return NULL;
- }
-
- lv_glfw_window_t * window = lv_ll_ins_tail(&glfw_window_ll);
- LV_ASSERT_MALLOC(window);
- if(window == NULL) return NULL;
- lv_memzero(window, sizeof(*window));
-
- /* Create window with graphics context */
- lv_glfw_window_t * existing_window = lv_ll_get_head(&glfw_window_ll);
- window->window = glfwCreateWindow(hor_res, ver_res, "LVGL Simulator", NULL,
- existing_window ? existing_window->window : NULL);
- if(window->window == NULL) {
- LV_LOG_ERROR("glfwCreateWindow fail.");
- lv_ll_remove(&glfw_window_ll, window);
- lv_free(window);
- return NULL;
- }
-
- window->hor_res = hor_res;
- window->ver_res = ver_res;
- lv_ll_init(&window->textures, sizeof(lv_glfw_texture_t));
- window->use_indev = use_mouse_indev;
-
- glfwSetWindowUserPointer(window->window, window);
- lv_glfw_timer_init();
- lv_glfw_window_config(window->window, use_mouse_indev);
- lv_glew_init();
- glfwMakeContextCurrent(window->window);
- lv_opengles_init();
-
- return window;
-}
-
-void lv_glfw_window_delete(lv_glfw_window_t * window)
-{
- glfwDestroyWindow(window->window);
- if(window->use_indev) {
- lv_glfw_texture_t * texture;
- LV_LL_READ(&window->textures, texture) {
- if(texture->indev != NULL) lv_indev_delete(texture->indev);
- }
- }
- lv_ll_clear(&window->textures);
- lv_ll_remove(&glfw_window_ll, window);
- lv_free(window);
-
- if(lv_ll_is_empty(&glfw_window_ll)) {
- lv_glfw_window_quit();
- }
-}
-
-void * lv_glfw_window_get_glfw_window(lv_glfw_window_t * window)
-{
- return (void *)(window->window);
-}
-
-lv_glfw_texture_t * lv_glfw_window_add_texture(lv_glfw_window_t * window, unsigned int texture_id, int32_t w, int32_t h)
-{
- lv_glfw_texture_t * texture = lv_ll_ins_tail(&window->textures);
- LV_ASSERT_MALLOC(texture);
- if(texture == NULL) return NULL;
- lv_memzero(texture, sizeof(*texture));
- texture->window = window;
- texture->texture_id = texture_id;
- lv_area_set(&texture->area, 0, 0, w - 1, h - 1);
- texture->opa = LV_OPA_COVER;
-
- if(window->use_indev) {
- lv_display_t * texture_disp = lv_opengles_texture_get_from_texture_id(texture_id);
- if(texture_disp != NULL) {
- lv_indev_t * indev = lv_indev_create();
- if(indev == NULL) {
- lv_ll_remove(&window->textures, texture);
- lv_free(texture);
- return NULL;
- }
- texture->indev = indev;
- lv_indev_set_type(indev, LV_INDEV_TYPE_POINTER);
- lv_indev_set_read_cb(indev, indev_read_cb);
- lv_indev_set_driver_data(indev, texture);
- lv_indev_set_mode(indev, LV_INDEV_MODE_EVENT);
- lv_indev_set_display(indev, texture_disp);
- }
- }
-
- return texture;
-}
-
-void lv_glfw_texture_remove(lv_glfw_texture_t * texture)
-{
- if(texture->indev != NULL) {
- lv_indev_delete(texture->indev);
- }
- lv_ll_remove(&texture->window->textures, texture);
- lv_free(texture);
-}
-
-void lv_glfw_texture_set_x(lv_glfw_texture_t * texture, int32_t x)
-{
- lv_area_set_pos(&texture->area, x, texture->area.y1);
-}
-
-void lv_glfw_texture_set_y(lv_glfw_texture_t * texture, int32_t y)
-{
- lv_area_set_pos(&texture->area, texture->area.x1, y);
-}
-
-void lv_glfw_texture_set_opa(lv_glfw_texture_t * texture, lv_opa_t opa)
-{
- texture->opa = opa;
-}
-
-lv_indev_t * lv_glfw_texture_get_mouse_indev(lv_glfw_texture_t * texture)
-{
- return texture->indev;
-}
-
-/**********************
- * STATIC FUNCTIONS
- **********************/
-
-static int lv_glfw_init(void)
-{
- if(glfw_inited) {
- return 0;
- }
-
- glfwSetErrorCallback(glfw_error_cb);
-
- int ret = glfwInit();
- if(ret == 0) {
- LV_LOG_ERROR("glfwInit fail.");
- return 1;
- }
-
- lv_ll_init(&glfw_window_ll, sizeof(lv_glfw_window_t));
-
- glfw_inited = true;
- return 0;
-}
-
-static int lv_glew_init(void)
-{
- if(glew_inited) {
- return 0;
- }
-
- GLenum ret = glewInit();
- if(ret != GLEW_OK) {
- LV_LOG_ERROR("glewInit fail: %d.", ret);
- return ret;
- }
-
- LV_LOG_INFO("GL version: %s", glGetString(GL_VERSION));
- LV_LOG_INFO("GLSL version: %s", glGetString(GL_SHADING_LANGUAGE_VERSION));
-
- glew_inited = true;
-
- return 0;
-}
-
-static void lv_glfw_timer_init(void)
-{
- if(update_handler_timer == NULL) {
- update_handler_timer = lv_timer_create(window_update_handler, LV_DEF_REFR_PERIOD, NULL);
- lv_tick_set_cb(lv_glfw_tick_count_callback);
- }
-}
-
-static void lv_glfw_window_config(GLFWwindow * window, bool use_mouse_indev)
-{
- glfwMakeContextCurrent(window);
-
- glfwSwapInterval(1);
-
- glfwSetFramebufferSizeCallback(window, framebuffer_size_callback);
-
- if(use_mouse_indev) {
- glfwSetMouseButtonCallback(window, mouse_button_callback);
- glfwSetCursorPosCallback(window, mouse_move_callback);
- }
-
- glfwSetKeyCallback(window, key_callback);
-
- glfwSetWindowCloseCallback(window, window_close_callback);
-}
-
-static void lv_glfw_window_quit(void)
-{
- lv_timer_delete(update_handler_timer);
- update_handler_timer = NULL;
-
- glfwTerminate();
- glfw_inited = false;
-
- lv_deinit();
-
- exit(0);
-}
-
-static void window_update_handler(lv_timer_t * t)
-{
- LV_UNUSED(t);
-
- lv_glfw_window_t * window;
-
- glfwPollEvents();
-
- /* delete windows that are ready to close */
- window = lv_ll_get_head(&glfw_window_ll);
- while(window) {
- lv_glfw_window_t * window_to_delete = window->closing ? window : NULL;
- window = lv_ll_get_next(&glfw_window_ll, window);
- if(window_to_delete) {
- glfwSetWindowShouldClose(window_to_delete->window, GLFW_TRUE);
- lv_glfw_window_delete(window_to_delete);
- }
- }
-
- /* render each window */
- LV_LL_READ(&glfw_window_ll, window) {
- glfwMakeContextCurrent(window->window);
- lv_opengles_viewport(0, 0, window->hor_res, window->ver_res);
- lv_opengles_render_clear();
-
- /* render each texture in the window */
- lv_glfw_texture_t * texture;
- LV_LL_READ(&window->textures, texture) {
- /* if the added texture is an LVGL opengles texture display, refresh it before rendering it */
- lv_display_t * texture_disp = lv_opengles_texture_get_from_texture_id(texture->texture_id);
- if(texture_disp != NULL) {
- lv_refr_now(texture_disp);
- }
-
- lv_area_t clip_area = texture->area;
-#if LV_USE_DRAW_OPENGLES
- lv_opengles_render_texture(texture->texture_id, &texture->area, texture->opa, window->hor_res, window->ver_res,
- &clip_area, texture_disp == NULL);
-#else
- lv_opengles_render_texture(texture->texture_id, &texture->area, texture->opa, window->hor_res, window->ver_res,
- &clip_area, true);
-#endif
- }
-
- /* Swap front and back buffers */
- glfwSwapBuffers(window->window);
- }
-}
-
-static void glfw_error_cb(int error, const char * description)
-{
- LV_LOG_ERROR("GLFW Error %d: %s", error, description);
-}
-
-static lv_glfw_window_t * lv_glfw_get_lv_window_from_window(GLFWwindow * window)
-{
- return glfwGetWindowUserPointer(window);
-}
-
-static void window_close_callback(GLFWwindow * window)
-{
- lv_glfw_window_t * lv_window = lv_glfw_get_lv_window_from_window(window);
- lv_window->closing = 1;
-}
-
-static void key_callback(GLFWwindow * window, int key, int scancode, int action, int mods)
-{
- LV_UNUSED(scancode);
- LV_UNUSED(mods);
- if(key == GLFW_KEY_ESCAPE && action == GLFW_PRESS) {
- lv_glfw_window_t * lv_window = lv_glfw_get_lv_window_from_window(window);
- lv_window->closing = 1;
- }
-}
-
-static void mouse_button_callback(GLFWwindow * window, int button, int action, int mods)
-{
- LV_UNUSED(mods);
- if(button == GLFW_MOUSE_BUTTON_LEFT) {
- lv_glfw_window_t * lv_window = lv_glfw_get_lv_window_from_window(window);
- lv_window->mouse_last_state = action == GLFW_PRESS ? LV_INDEV_STATE_PRESSED : LV_INDEV_STATE_RELEASED;
- proc_mouse(lv_window);
- }
-}
-
-static void mouse_move_callback(GLFWwindow * window, double xpos, double ypos)
-{
- lv_glfw_window_t * lv_window = lv_glfw_get_lv_window_from_window(window);
- lv_window->mouse_last_point.x = (int32_t)xpos;
- lv_window->mouse_last_point.y = (int32_t)ypos;
- proc_mouse(lv_window);
-}
-
-static void proc_mouse(lv_glfw_window_t * window)
-{
- /* mouse activity will affect the topmost LVGL display texture */
- lv_glfw_texture_t * texture;
- LV_LL_READ_BACK(&window->textures, texture) {
- if(lv_area_is_point_on(&texture->area, &window->mouse_last_point, 0)) {
- /* adjust the mouse pointer coordinates so that they are relative to the texture */
- texture->indev_last_point.x = window->mouse_last_point.x - texture->area.x1;
- texture->indev_last_point.y = window->mouse_last_point.y - texture->area.y1;
- texture->indev_last_state = window->mouse_last_state;
- lv_indev_read(texture->indev);
- break;
- }
- }
-}
-
-static void indev_read_cb(lv_indev_t * indev, lv_indev_data_t * data)
-{
- lv_glfw_texture_t * texture = lv_indev_get_driver_data(indev);
- data->point = texture->indev_last_point;
- data->state = texture->indev_last_state;
-}
-
-static void framebuffer_size_callback(GLFWwindow * window, int width, int height)
-{
- lv_glfw_window_t * lv_window = lv_glfw_get_lv_window_from_window(window);
- lv_window->hor_res = width;
- lv_window->ver_res = height;
-}
-
-static uint32_t lv_glfw_tick_count_callback(void)
-{
- double tick = glfwGetTime() * 1000.0;
- return (uint32_t)tick;
-}
-
-#endif /*LV_USE_OPENGLES*/
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/glfw/lv_glfw_window.h b/lib/libesp32_lvgl/lvgl/src/drivers/glfw/lv_glfw_window.h
deleted file mode 100644
index 81c289e7c..000000000
--- a/lib/libesp32_lvgl/lvgl/src/drivers/glfw/lv_glfw_window.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/**
- * @file lv_glfw_window.h
- *
- */
-
-#ifndef LV_GLFW_WINDOW_H
-#define LV_GLFW_WINDOW_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*********************
- * INCLUDES
- *********************/
-
-#include "../../lv_conf_internal.h"
-#if LV_USE_OPENGLES
-
-#include "../../misc/lv_types.h"
-#include "../../display/lv_display.h"
-
-/*********************
- * DEFINES
- *********************/
-
-/**********************
- * TYPEDEFS
- **********************/
-
-/**********************
- * GLOBAL PROTOTYPES
- **********************/
-
-/**
- * Create a GLFW window with no textures and initialize OpenGL
- * @param hor_res width in pixels of the window
- * @param ver_res height in pixels of the window
- * @param use_mouse_indev send pointer indev input to LVGL display textures
- * @return the new GLFW window handle
- */
-lv_glfw_window_t * lv_glfw_window_create(int32_t hor_res, int32_t ver_res, bool use_mouse_indev);
-
-/**
- * Delete a GLFW window. If it is the last one, the process will exit
- * @param window GLFW window to delete
- */
-void lv_glfw_window_delete(lv_glfw_window_t * window);
-
-/**
- * Get the GLFW window handle for an lv_glfw_window
- * @param window GLFW window to return the handle of
- * @return the GLFW window handle
- */
-void * lv_glfw_window_get_glfw_window(lv_glfw_window_t * window);
-
-/**
- * Add a texture to the GLFW window. It can be an LVGL display texture, or any OpenGL texture
- * @param window GLFW window
- * @param texture_id OpenGL texture ID
- * @param w width in pixels of the texture
- * @param h height in pixels of the texture
- * @return the new texture handle
- */
-lv_glfw_texture_t * lv_glfw_window_add_texture(lv_glfw_window_t * window, unsigned int texture_id, int32_t w,
- int32_t h);
-
-/**
- * Remove a texture from its GLFW window and delete it
- * @param texture handle of a GLFW window texture
- */
-void lv_glfw_texture_remove(lv_glfw_texture_t * texture);
-
-/**
- * Set the x position of a texture within its GLFW window
- * @param texture handle of a GLFW window texture
- * @param x new x position of the texture
- */
-void lv_glfw_texture_set_x(lv_glfw_texture_t * texture, int32_t x);
-
-/**
- * Set the y position of a texture within its GLFW window
- * @param texture handle of a GLFW window texture
- * @param y new y position of the texture
- */
-void lv_glfw_texture_set_y(lv_glfw_texture_t * texture, int32_t y);
-
-/**
- * Set the opacity of a texture in a GLFW window
- * @param texture handle of a GLFW window texture
- * @param opa new opacity of the texture
- */
-void lv_glfw_texture_set_opa(lv_glfw_texture_t * texture, lv_opa_t opa);
-
-/**
- * Get the mouse indev associated with a texture in a GLFW window, if it exists
- * @param texture handle of a GLFW window texture
- * @return the indev or `NULL`
- * @note there will only be an indev if the texture is based on an
- * LVGL display texture and the window was created with
- * `use_mouse_indev` as `true`
- */
-lv_indev_t * lv_glfw_texture_get_mouse_indev(lv_glfw_texture_t * texture);
-
-/**********************
- * MACROS
- **********************/
-
-#endif /* LV_USE_OPENGLES */
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-#endif /* LV_GLFW_WINDOW_H */
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/glfw/lv_glfw_window_private.h b/lib/libesp32_lvgl/lvgl/src/drivers/glfw/lv_glfw_window_private.h
deleted file mode 100644
index cc6cac09e..000000000
--- a/lib/libesp32_lvgl/lvgl/src/drivers/glfw/lv_glfw_window_private.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/**
- * @file lv_glfw_window_private.h
- *
- */
-
-#ifndef LV_GLFW_WINDOW_PRIVATE_H
-#define LV_GLFW_WINDOW_PRIVATE_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*********************
- * INCLUDES
- *********************/
-
-#include "lv_glfw_window.h"
-#if LV_USE_OPENGLES
-
-#include
-#include
-
-#include "../../misc/lv_area.h"
-#include "../../display/lv_display.h"
-#include "../../indev/lv_indev.h"
-
-/*********************
- * DEFINES
- *********************/
-
-/**********************
- * TYPEDEFS
- **********************/
-
-struct _lv_glfw_window_t {
- GLFWwindow * window;
- int32_t hor_res;
- int32_t ver_res;
- lv_ll_t textures;
- lv_point_t mouse_last_point;
- lv_indev_state_t mouse_last_state;
- uint8_t use_indev : 1;
- uint8_t closing : 1;
-};
-
-struct _lv_glfw_texture_t {
- lv_glfw_window_t * window;
- unsigned int texture_id;
- lv_area_t area;
- lv_opa_t opa;
- lv_indev_t * indev;
- lv_point_t indev_last_point;
- lv_indev_state_t indev_last_state;
-};
-
-/**********************
- * GLOBAL PROTOTYPES
- **********************/
-
-/**********************
- * MACROS
- **********************/
-
-#endif /*LV_USE_OPENGLES*/
-
-#ifdef __cplusplus
-} /*extern "C"*/
-#endif
-
-#endif /*LV_GLFW_WINDOW_PRIVATE_H*/
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/glfw/lv_opengles_driver.c b/lib/libesp32_lvgl/lvgl/src/drivers/glfw/lv_opengles_driver.c
deleted file mode 100644
index 1f46f63b8..000000000
--- a/lib/libesp32_lvgl/lvgl/src/drivers/glfw/lv_opengles_driver.c
+++ /dev/null
@@ -1,499 +0,0 @@
-/**
- * @file lv_opengles_driver.c
- *
- */
-
-/*********************
- * INCLUDES
- *********************/
-#include "../../display/lv_display.h"
-#include "../../misc/lv_area_private.h"
-
-#if LV_USE_OPENGLES
-
-#include "lv_opengles_debug.h"
-#include "lv_opengles_driver.h"
-
-/*********************
- * DEFINES
- *********************/
-
-#define LV_OPENGLES_VERTEX_BUFFER_LEN 16
-
-/**********************
- * TYPEDEFS
- **********************/
-
-/**********************
- * STATIC PROTOTYPES
- **********************/
-static void lv_opengles_render_internal(unsigned int texture, const lv_area_t * texture_area, lv_opa_t opa,
- int32_t disp_w, int32_t disp_h, const lv_area_t * texture_clip_area, bool flip, lv_color_t fill_color);
-static void lv_opengles_enable_blending(void);
-static void lv_opengles_vertex_buffer_init(const void * data, unsigned int size);
-static void lv_opengles_vertex_buffer_deinit(void);
-static void lv_opengles_vertex_buffer_bind(void);
-static void lv_opengles_vertex_buffer_unbind(void);
-static void lv_opengles_vertex_array_init(void);
-static void lv_opengles_vertex_array_deinit(void);
-static void lv_opengles_vertex_array_bind(void);
-static void lv_opengles_vertex_array_unbind(void);
-static void lv_opengles_vertex_array_add_buffer(void);
-static void lv_opengles_index_buffer_init(const unsigned int * data, unsigned int count);
-static void lv_opengles_index_buffer_deinit(void);
-static unsigned int lv_opengles_index_buffer_get_count(void);
-static void lv_opengles_index_buffer_bind(void);
-static void lv_opengles_index_buffer_unbind(void);
-static unsigned int lv_opengles_shader_compile(unsigned int type, const char * source);
-static unsigned int lv_opengles_shader_create(const char * vertexShader, const char * fragmentShader);
-static void lv_opengles_shader_init(void);
-static void lv_opengles_shader_deinit(void);
-static void lv_opengles_shader_bind(void);
-static void lv_opengles_shader_unbind(void);
-static int lv_opengles_shader_get_uniform_location(const char * name);
-static void lv_opengles_shader_set_uniform1i(const char * name, int value);
-static void lv_opengles_shader_set_uniformmatrix3fv(const char * name, int count, bool transpose, const float * values);
-static void lv_opengles_shader_set_uniform1f(const char * name, float value);
-static void lv_opengles_shader_set_uniform3f(const char * name, float value_0, float value_1, float value_2);
-static void lv_opengles_render_draw(void);
-static float lv_opengles_map_float(float x, float min_in, float max_in, float min_out, float max_out);
-
-/***********************
- * GLOBAL PROTOTYPES
- ***********************/
-
-/**********************
- * STATIC VARIABLES
- **********************/
-static bool is_init;
-
-static unsigned int vertex_buffer_id = 0;
-
-static unsigned int vertex_array_id = 0;
-
-static unsigned int index_buffer_id = 0;
-static unsigned int index_buffer_count = 0;
-
-static unsigned int shader_id;
-
-static const char * shader_names[] = { "u_Texture", "u_ColorDepth", "u_VertexTransform", "u_Opa", "u_IsFill", "u_FillColor" };
-static int shader_location[] = { 0, 0, 0, 0, 0, 0 };
-
-static const char * vertex_shader =
- "#version 300 es\n"
- "\n"
- "in vec4 position;\n"
- "in vec2 texCoord;\n"
- "\n"
- "out vec2 v_TexCoord;\n"
- "\n"
- "uniform mat3 u_VertexTransform;\n"
- "\n"
- "void main()\n"
- "{\n"
- " gl_Position = vec4((u_VertexTransform * vec3(position.xy, 1)).xy, position.zw);\n"
- " v_TexCoord = texCoord;\n"
- "};\n";
-
-static const char * fragment_shader =
- "#version 300 es\n"
- "\n"
- "precision lowp float;\n"
- "\n"
- "layout(location = 0) out vec4 color;\n"
- "\n"
- "in vec2 v_TexCoord;\n"
- "\n"
- "uniform sampler2D u_Texture;\n"
- "uniform int u_ColorDepth;\n"
- "uniform float u_Opa;\n"
- "uniform bool u_IsFill;\n"
- "uniform vec3 u_FillColor;\n"
- "\n"
- "void main()\n"
- "{\n"
- " vec4 texColor;\n"
- " if (u_IsFill) {\n"
- " texColor = vec4(u_FillColor, 1.0f);\n"
- " } else {\n"
- " texColor = texture(u_Texture, v_TexCoord);\n"
- " }\n"
- " if (u_ColorDepth == 8) {\n"
- " float gray = texColor.r;\n"
- " color = vec4(gray, gray, gray, u_Opa);\n"
- " } else {\n"
- " float combinedAlpha = texColor.a * u_Opa;\n"
- " color = vec4(texColor.rgb * combinedAlpha, combinedAlpha);\n"
- " }\n"
- "};\n";
-
-/**********************
- * MACROS
- **********************/
-
-/**********************
- * GLOBAL FUNCTIONS
- **********************/
-
-void lv_opengles_init(void)
-{
- if(is_init) return;
-
- lv_opengles_enable_blending();
-
- unsigned int indices[] = {
- 0, 1, 2,
- 2, 3, 0
- };
-
- lv_opengles_vertex_buffer_init(NULL, sizeof(float) * LV_OPENGLES_VERTEX_BUFFER_LEN);
-
- lv_opengles_vertex_array_init();
- lv_opengles_vertex_array_add_buffer();
-
- lv_opengles_index_buffer_init(indices, 6);
-
- lv_opengles_shader_init();
- lv_opengles_shader_bind();
-
- /* unbind everything */
- lv_opengles_vertex_array_unbind();
- lv_opengles_vertex_buffer_unbind();
- lv_opengles_index_buffer_unbind();
- lv_opengles_shader_unbind();
-
- is_init = true;
-}
-
-void lv_opengles_deinit(void)
-{
- if(!is_init) return;
-
- lv_opengles_shader_deinit();
- lv_opengles_index_buffer_deinit();
- lv_opengles_vertex_buffer_deinit();
- lv_opengles_vertex_array_deinit();
-
- is_init = false;
-}
-
-void lv_opengles_render_texture(unsigned int texture, const lv_area_t * texture_area, lv_opa_t opa, int32_t disp_w,
- int32_t disp_h, const lv_area_t * texture_clip_area, bool flip)
-{
- lv_opengles_render_internal(texture, texture_area, opa, disp_w, disp_h, texture_clip_area, flip, lv_color_black());
-}
-
-void lv_opengles_render_fill(lv_color_t color, const lv_area_t * area, lv_opa_t opa, int32_t disp_w, int32_t disp_h)
-{
- lv_opengles_render_internal(0, area, opa, disp_w, disp_h, area, false, color);
-}
-
-void lv_opengles_render_clear(void)
-{
- GL_CALL(glClear(GL_COLOR_BUFFER_BIT));
-}
-
-void lv_opengles_viewport(int32_t x, int32_t y, int32_t w, int32_t h)
-{
- glViewport(x, y, w, h);
-}
-
-/**********************
- * STATIC FUNCTIONS
- **********************/
-
-static void lv_opengles_render_internal(unsigned int texture, const lv_area_t * texture_area, lv_opa_t opa,
- int32_t disp_w, int32_t disp_h, const lv_area_t * texture_clip_area, bool flip, lv_color_t fill_color)
-{
- lv_area_t intersection;
- if(!lv_area_intersect(&intersection, texture_area, texture_clip_area)) return;
-
- GL_CALL(glActiveTexture(GL_TEXTURE0));
- GL_CALL(glBindTexture(GL_TEXTURE_2D, texture));
-
- float tex_w = (float)lv_area_get_width(&intersection);
- float tex_h = (float)lv_area_get_height(&intersection);
-
- float hor_scale = tex_w / (float)disp_w;
- float ver_scale = tex_h / (float)disp_h;
- float hor_translate = (float)intersection.x1 / (float)disp_w * 2.0f - (1.0f - hor_scale);
- float ver_translate = -((float)intersection.y1 / (float)disp_h * 2.0f - (1.0f - ver_scale));
- if(flip) ver_scale = -ver_scale;
- float matrix[9] = {
- hor_scale, 0.0f, hor_translate,
- 0.0f, ver_scale, ver_translate,
- 0.0f, 0.0f, 1.0f
- };
-
- if(texture != 0) {
- float x_coef = 1.0f / (float)(2 * lv_area_get_width(texture_area));
- float y_coef = 1.0f / (float)(2 * lv_area_get_height(texture_area));
- float tex_clip_x1 = lv_opengles_map_float(texture_clip_area->x1, texture_area->x1, texture_area->x2, x_coef,
- 1.0f - x_coef);
- float tex_clip_x2 = lv_opengles_map_float(texture_clip_area->x2, texture_area->x1, texture_area->x2, x_coef,
- 1.0f - x_coef);
- float tex_clip_y1 = lv_opengles_map_float(texture_clip_area->y1, texture_area->y1, texture_area->y2, y_coef,
- 1.0f - y_coef);
- float tex_clip_y2 = lv_opengles_map_float(texture_clip_area->y2, texture_area->y1, texture_area->y2, y_coef,
- 1.0f - y_coef);
-
- float positions[LV_OPENGLES_VERTEX_BUFFER_LEN] = {
- -1.0f, 1.0f, tex_clip_x1, tex_clip_y2,
- 1.0f, 1.0f, tex_clip_x2, tex_clip_y2,
- 1.0f, -1.0f, tex_clip_x2, tex_clip_y1,
- -1.0f, -1.0f, tex_clip_x1, tex_clip_y1
- };
- lv_opengles_vertex_buffer_init(positions, sizeof(positions));
- }
-
- lv_opengles_shader_bind();
- lv_opengles_shader_set_uniform1i("u_ColorDepth", LV_COLOR_DEPTH);
- lv_opengles_shader_set_uniform1i("u_Texture", 0);
- lv_opengles_shader_set_uniformmatrix3fv("u_VertexTransform", 1, true, matrix);
- lv_opengles_shader_set_uniform1f("u_Opa", (float)opa / (float)LV_OPA_100);
- lv_opengles_shader_set_uniform1i("u_IsFill", texture == 0);
- lv_opengles_shader_set_uniform3f("u_FillColor", (float)fill_color.red / 255.0f, (float)fill_color.green / 255.0f,
- (float)fill_color.blue / 255.0f);
- lv_opengles_render_draw();
-}
-
-static void lv_opengles_enable_blending(void)
-{
- glEnable(GL_BLEND);
- glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
-}
-
-static void lv_opengles_vertex_buffer_init(const void * data, unsigned int size)
-{
- if(vertex_buffer_id == 0) GL_CALL(glGenBuffers(1, &vertex_buffer_id));
- GL_CALL(glBindBuffer(GL_ARRAY_BUFFER, vertex_buffer_id));
- GL_CALL(glBufferData(GL_ARRAY_BUFFER, size, data, GL_DYNAMIC_DRAW));
-}
-
-static void lv_opengles_vertex_buffer_deinit(void)
-{
- if(vertex_buffer_id == 0) return;
- GL_CALL(glDeleteBuffers(1, &vertex_buffer_id));
- vertex_buffer_id = 0;
-}
-
-static void lv_opengles_vertex_buffer_bind(void)
-{
- GL_CALL(glBindBuffer(GL_ARRAY_BUFFER, vertex_buffer_id));
-}
-
-static void lv_opengles_vertex_buffer_unbind(void)
-{
- GL_CALL(glBindBuffer(GL_ARRAY_BUFFER, 0));
-}
-
-static void lv_opengles_vertex_array_init(void)
-{
- if(vertex_array_id == 0) GL_CALL(glGenVertexArrays(1, &vertex_array_id));
-}
-
-static void lv_opengles_vertex_array_deinit(void)
-{
- if(vertex_array_id == 0) return;
- GL_CALL(glDeleteVertexArrays(1, &vertex_array_id));
- vertex_array_id = 0;
-}
-
-static void lv_opengles_vertex_array_bind(void)
-{
- GL_CALL(glBindVertexArray(vertex_array_id));
-}
-
-static void lv_opengles_vertex_array_unbind(void)
-{
- GL_CALL(glBindVertexArray(0));
-}
-
-static void lv_opengles_vertex_array_add_buffer(void)
-{
- lv_opengles_vertex_buffer_bind();
- intptr_t offset = 0;
-
- for(unsigned int i = 0; i < 2; i++) {
- lv_opengles_vertex_array_bind();
- GL_CALL(glEnableVertexAttribArray(i));
- GL_CALL(glVertexAttribPointer(i, 2, GL_FLOAT, GL_FALSE, 16, (const void *)offset));
- offset += 2 * 4;
- }
-}
-
-static void lv_opengles_index_buffer_init(const unsigned int * data, unsigned int count)
-{
- index_buffer_count = count;
- if(index_buffer_id == 0) GL_CALL(glGenBuffers(1, &index_buffer_id));
-
- GL_CALL(glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, index_buffer_id));
-
- GL_CALL(glBufferData(GL_ELEMENT_ARRAY_BUFFER, count * sizeof(GLuint), data, GL_STATIC_DRAW));
-}
-
-static void lv_opengles_index_buffer_deinit(void)
-{
- if(index_buffer_id == 0) return;
- GL_CALL(glDeleteBuffers(1, &index_buffer_id));
- index_buffer_id = 0;
-}
-
-static unsigned int lv_opengles_index_buffer_get_count(void)
-{
- return index_buffer_count;
-}
-
-static void lv_opengles_index_buffer_bind(void)
-{
- GL_CALL(glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, index_buffer_id));
-}
-
-static void lv_opengles_index_buffer_unbind(void)
-{
- GL_CALL(glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0));
-}
-
-static unsigned int lv_opengles_shader_compile(unsigned int type, const char * source)
-{
- unsigned int id;
- GL_CALL(id = glCreateShader(type));
- const char * src = source;
- GL_CALL(glShaderSource(id, 1, &src, NULL));
- GL_CALL(glCompileShader(id));
-
- int result;
- GL_CALL(glGetShaderiv(id, GL_COMPILE_STATUS, &result));
- if(result == GL_FALSE) {
- int length;
- GL_CALL(glGetShaderiv(id, GL_INFO_LOG_LENGTH, &length));
- char * message = lv_malloc_zeroed(length * sizeof(char));
- GL_CALL(glGetShaderInfoLog(id, length, &length, message));
- LV_LOG_ERROR("Failed to compile %s shader!", type == GL_VERTEX_SHADER ? "vertex" : "fragment");
- LV_LOG_ERROR("%s", message);
- GL_CALL(glDeleteShader(id));
- return 0;
- }
-
- return id;
-}
-
-static unsigned int lv_opengles_shader_create(const char * vertexShader, const char * fragmentShader)
-{
- unsigned int program;
- GL_CALL(program = glCreateProgram());
- unsigned int vs = lv_opengles_shader_compile(GL_VERTEX_SHADER, vertexShader);
- unsigned int fs = lv_opengles_shader_compile(GL_FRAGMENT_SHADER, fragmentShader);
-
- GL_CALL(glAttachShader(program, vs));
- GL_CALL(glAttachShader(program, fs));
- GL_CALL(glLinkProgram(program));
- GL_CALL(glValidateProgram(program));
-
- GL_CALL(glDeleteShader(vs));
- GL_CALL(glDeleteShader(fs));
-
- return program;
-}
-
-static void lv_opengles_shader_init(void)
-{
- if(shader_id == 0) shader_id = lv_opengles_shader_create(vertex_shader, fragment_shader);
-}
-
-static void lv_opengles_shader_deinit(void)
-{
- if(shader_id == 0) return;
- GL_CALL(glDeleteProgram(shader_id));
- shader_id = 0;
-}
-
-static void lv_opengles_shader_bind(void)
-{
- GL_CALL(glUseProgram(shader_id));
-}
-
-static void lv_opengles_shader_unbind(void)
-{
- GL_CALL(glUseProgram(0));
-}
-
-static int lv_opengles_shader_get_uniform_location(const char * name)
-{
- int id = -1;
- for(size_t i = 0; i < sizeof(shader_location) / sizeof(int); i++) {
- if(lv_strcmp(shader_names[i], name) == 0) {
- id = i;
- }
- }
- if(id == -1) {
- return -1;
- }
-
- if(shader_location[id] != 0) {
- return shader_location[id];
- }
-
- int location;
- GL_CALL(location = glGetUniformLocation(shader_id, name));
- if(location == -1)
- LV_LOG_WARN("Warning: uniform '%s' doesn't exist!", name);
-
- shader_location[id] = location;
- return location;
-}
-
-static void lv_opengles_shader_set_uniform1i(const char * name, int value)
-{
- GL_CALL(glUniform1i(lv_opengles_shader_get_uniform_location(name), value));
-}
-
-static void lv_opengles_shader_set_uniformmatrix3fv(const char * name, int count, bool transpose, const float * values)
-{
- GL_CALL(glUniformMatrix3fv(lv_opengles_shader_get_uniform_location(name), count, transpose, values));
-}
-
-static void lv_opengles_shader_set_uniform1f(const char * name, float value)
-{
- GL_CALL(glUniform1f(lv_opengles_shader_get_uniform_location(name), value));
-}
-
-static void lv_opengles_shader_set_uniform3f(const char * name, float value_0, float value_1, float value_2)
-{
- GL_CALL(glUniform3f(lv_opengles_shader_get_uniform_location(name), value_0, value_1, value_2));
-}
-
-static void lv_opengles_render_draw(void)
-{
- lv_opengles_shader_bind();
- lv_opengles_vertex_array_bind();
- lv_opengles_index_buffer_bind();
- unsigned int count = lv_opengles_index_buffer_get_count();
- GL_CALL(glDrawElements(GL_TRIANGLES, count, GL_UNSIGNED_INT, NULL));
-}
-
-/**
- * Copied from `lv_map` in lv_math.h to operate on floats
- */
-static float lv_opengles_map_float(float x, float min_in, float max_in, float min_out, float max_out)
-{
- if(max_in >= min_in && x >= max_in) return max_out;
- if(max_in >= min_in && x <= min_in) return min_out;
-
- if(max_in <= min_in && x <= max_in) return max_out;
- if(max_in <= min_in && x >= min_in) return min_out;
-
- /**
- * The equation should be:
- * ((x - min_in) * delta_out) / delta in) + min_out
- * To avoid rounding error reorder the operations:
- * (x - min_in) * (delta_out / delta_min) + min_out
- */
-
- float delta_in = max_in - min_in;
- float delta_out = max_out - min_out;
-
- return ((x - min_in) * delta_out) / delta_in + min_out;
-}
-
-#endif /* LV_USE_OPENGLES */
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/glfw/lv_opengles_texture.c b/lib/libesp32_lvgl/lvgl/src/drivers/glfw/lv_opengles_texture.c
deleted file mode 100644
index a719a7846..000000000
--- a/lib/libesp32_lvgl/lvgl/src/drivers/glfw/lv_opengles_texture.c
+++ /dev/null
@@ -1,177 +0,0 @@
-/**
- * @file lv_opengles_texture.c
- *
- */
-
-/*********************
- * INCLUDES
- *********************/
-
-#include "lv_opengles_texture.h"
-#if LV_USE_OPENGLES
-
-#include "lv_opengles_debug.h"
-#include "../../display/lv_display_private.h"
-#include
-#include
-#include
-
-/*********************
- * DEFINES
- *********************/
-
-/**********************
- * TYPEDEFS
- **********************/
-
-typedef struct {
- unsigned int texture_id;
- uint8_t * fb1;
-} lv_opengles_texture_t;
-
-/**********************
- * STATIC PROTOTYPES
- **********************/
-
-static void flush_cb(lv_display_t * disp, const lv_area_t * area, uint8_t * px_map);
-static void release_disp_cb(lv_event_t * e);
-
-/**********************
- * STATIC VARIABLES
- **********************/
-
-/**********************
- * MACROS
- **********************/
-
-/**********************
- * GLOBAL FUNCTIONS
- **********************/
-
-lv_display_t * lv_opengles_texture_create(int32_t w, int32_t h)
-{
- lv_display_t * disp = lv_display_create(w, h);
- if(disp == NULL) {
- return NULL;
- }
- lv_opengles_texture_t * dsc = lv_malloc_zeroed(sizeof(lv_opengles_texture_t));
- LV_ASSERT_MALLOC(dsc);
- if(dsc == NULL) {
- lv_display_delete(disp);
- return NULL;
- }
- uint32_t stride = lv_draw_buf_width_to_stride(w, lv_display_get_color_format(disp));
- uint32_t buf_size = stride * h;
- dsc->fb1 = malloc(buf_size);
- if(dsc->fb1 == NULL) {
- lv_free(dsc);
- lv_display_delete(disp);
- return NULL;
- }
-
- GL_CALL(glGenTextures(1, &dsc->texture_id));
- GL_CALL(glBindTexture(GL_TEXTURE_2D, dsc->texture_id));
- GL_CALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST));
- GL_CALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST));
- GL_CALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE));
- GL_CALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE));
- GL_CALL(glPixelStorei(GL_UNPACK_ALIGNMENT, 1));
-
- /* set the dimensions and format to complete the texture */
- /* Color depth: 8 (L8), 16 (RGB565), 24 (RGB888), 32 (XRGB8888) */
-#if LV_COLOR_DEPTH == 8
- GL_CALL(glTexImage2D(GL_TEXTURE_2D, 0, GL_R8, disp->hor_res, disp->ver_res, 0, GL_RED, GL_UNSIGNED_BYTE, NULL));
-#elif LV_COLOR_DEPTH == 16
- GL_CALL(glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB565, disp->hor_res, disp->ver_res, 0, GL_RGB, GL_UNSIGNED_SHORT_5_6_5,
- NULL));
-#elif LV_COLOR_DEPTH == 24
- GL_CALL(glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, disp->hor_res, disp->ver_res, 0, GL_BGR, GL_UNSIGNED_BYTE, NULL));
-#elif LV_COLOR_DEPTH == 32
- GL_CALL(glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, disp->hor_res, disp->ver_res, 0, GL_BGRA, GL_UNSIGNED_BYTE, NULL));
-#else
-#error("Unsupported color format")
-#endif
-
- glGenerateMipmap(GL_TEXTURE_2D);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 20);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_NEAREST);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
-
- lv_display_set_buffers(disp, dsc->fb1, NULL, buf_size, LV_DISPLAY_RENDER_MODE_DIRECT);
- lv_display_set_flush_cb(disp, flush_cb);
- lv_display_set_driver_data(disp, dsc);
- lv_display_add_event_cb(disp, release_disp_cb, LV_EVENT_DELETE, disp);
-
- return disp;
-}
-
-unsigned int lv_opengles_texture_get_texture_id(lv_display_t * disp)
-{
- if(disp->flush_cb != flush_cb) {
- return 0;
- }
- lv_opengles_texture_t * dsc = lv_display_get_driver_data(disp);
- return dsc->texture_id;
-}
-
-lv_display_t * lv_opengles_texture_get_from_texture_id(unsigned int texture_id)
-{
- lv_display_t * disp = NULL;
- while(NULL != (disp = lv_display_get_next(disp))) {
- unsigned int disp_texture_id = lv_opengles_texture_get_texture_id(disp);
- if(disp_texture_id == texture_id) {
- return disp;
- }
- }
- return NULL;
-}
-
-/**********************
- * STATIC FUNCTIONS
- **********************/
-
-static void flush_cb(lv_display_t * disp, const lv_area_t * area, uint8_t * px_map)
-{
- LV_UNUSED(area);
- LV_UNUSED(px_map);
-
-#if !LV_USE_DRAW_OPENGLES
- if(lv_display_flush_is_last(disp)) {
-
- lv_opengles_texture_t * dsc = lv_display_get_driver_data(disp);
- lv_color_format_t cf = lv_display_get_color_format(disp);
- uint32_t stride = lv_draw_buf_width_to_stride(lv_display_get_horizontal_resolution(disp), cf);
-
- GL_CALL(glBindTexture(GL_TEXTURE_2D, dsc->texture_id));
-
- GL_CALL(glPixelStorei(GL_UNPACK_ALIGNMENT, 1));
- GL_CALL(glPixelStorei(GL_UNPACK_ROW_LENGTH, stride / lv_color_format_get_size(cf)));
- /*Color depth: 8 (L8), 16 (RGB565), 24 (RGB888), 32 (XRGB8888)*/
-#if LV_COLOR_DEPTH == 8
- GL_CALL(glTexImage2D(GL_TEXTURE_2D, 0, GL_R8, disp->hor_res, disp->ver_res, 0, GL_RED, GL_UNSIGNED_BYTE, dsc->fb1));
-#elif LV_COLOR_DEPTH == 16
- GL_CALL(glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB565, disp->hor_res, disp->ver_res, 0, GL_RGB, GL_UNSIGNED_SHORT_5_6_5,
- dsc->fb1));
-#elif LV_COLOR_DEPTH == 24
- GL_CALL(glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, disp->hor_res, disp->ver_res, 0, GL_BGR, GL_UNSIGNED_BYTE, dsc->fb1));
-#elif LV_COLOR_DEPTH == 32
- GL_CALL(glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, disp->hor_res, disp->ver_res, 0, GL_BGRA, GL_UNSIGNED_BYTE, dsc->fb1));
-#else
-#error("Unsupported color format")
-#endif
- }
-#endif /* !LV_USE_DRAW_OPENGLES */
-
- lv_display_flush_ready(disp);
-}
-
-static void release_disp_cb(lv_event_t * e)
-{
- lv_display_t * disp = lv_event_get_user_data(e);
- lv_opengles_texture_t * dsc = lv_display_get_driver_data(disp);
- free(dsc->fb1);
- GL_CALL(glDeleteTextures(1, &dsc->texture_id));
- lv_free(dsc);
-}
-
-#endif /*LV_USE_OPENGLES*/
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/libinput/lv_xkb.h b/lib/libesp32_lvgl/lvgl/src/drivers/libinput/lv_xkb.h
index 3f9fd86ea..5f45d9999 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/libinput/lv_xkb.h
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/libinput/lv_xkb.h
@@ -55,10 +55,10 @@ uint32_t lv_xkb_process_key(lv_xkb_t * dsc, uint32_t scancode, bool down);
* MACROS
**********************/
-#endif /* LV_LIBINPUT_XKB */
+#endif /* defined(LV_LIBINPUT_XKB) && LV_LIBINPUT_XKB */
#ifdef __cplusplus
} /* extern "C" */
#endif
-#endif /* defined(LV_LIBINPUT_XKB) && LV_LIBINPUT_XKB */
+#endif /* LV_XKB_H */
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/lv_drivers.h b/lib/libesp32_lvgl/lvgl/src/drivers/lv_drivers.h
index 085010813..8cc91ce21 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/lv_drivers.h
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/lv_drivers.h
@@ -24,17 +24,22 @@ extern "C" {
#include "display/fb/lv_linux_fbdev.h"
#include "display/tft_espi/lv_tft_espi.h"
+#include "display/lovyan_gfx/lv_lovyan_gfx.h"
#include "display/lcd/lv_lcd_generic_mipi.h"
#include "display/ili9341/lv_ili9341.h"
#include "display/st7735/lv_st7735.h"
#include "display/st7789/lv_st7789.h"
#include "display/st7796/lv_st7796.h"
+#include "display/nv3007/lv_nv3007.h"
#include "display/renesas_glcdc/lv_renesas_glcdc.h"
#include "display/st_ltdc/lv_st_ltdc.h"
#include "display/ft81x/lv_ft81x.h"
+#include "draw/eve/lv_draw_eve_display.h"
+#include "draw/eve/lv_draw_eve_display_defines.h"
+
#include "nuttx/lv_nuttx_entry.h"
#include "nuttx/lv_nuttx_fbdev.h"
#include "nuttx/lv_nuttx_touchscreen.h"
@@ -47,9 +52,11 @@ extern "C" {
#include "windows/lv_windows_input.h"
#include "windows/lv_windows_display.h"
-#include "glfw/lv_glfw_window.h"
-#include "glfw/lv_opengles_texture.h"
-#include "glfw/lv_opengles_driver.h"
+#include "opengles/lv_opengles_window.h"
+#include "opengles/lv_opengles_texture.h"
+#include "opengles/lv_opengles_driver.h"
+#include "opengles/lv_opengles_glfw.h"
+#include "opengles/lv_opengles_egl.h"
#include "qnx/lv_qnx.h"
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/nuttx/lv_nuttx_entry.c b/lib/libesp32_lvgl/lvgl/src/drivers/nuttx/lv_nuttx_entry.c
index 3f70308cd..47c3b18ae 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/nuttx/lv_nuttx_entry.c
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/nuttx/lv_nuttx_entry.c
@@ -1,5 +1,5 @@
/**
- * @file lv_nuttx_entry.h
+ * @file lv_nuttx_entry.c
*
*/
@@ -19,6 +19,7 @@
#include "lv_nuttx_image_cache.h"
#include "../../core/lv_global.h"
#include "lv_nuttx_profiler.h"
+#include "lv_nuttx_mouse.h"
#include "../../../lvgl.h"
@@ -106,6 +107,14 @@ void lv_nuttx_dsc_init(lv_nuttx_dsc_t * dsc)
#ifdef CONFIG_UINPUT_TOUCH
dsc->utouch_path = "/dev/utouch";
#endif
+
+#if LV_USE_NUTTX_MOUSE
+ dsc->mouse_path = "/dev/mouse0";
+#endif
+
+#if LV_USE_NUTTX_TRACE_FILE
+ dsc->trace_path = LV_NUTTX_TRACE_FILE_PATH;
+#endif
}
void lv_nuttx_init(const lv_nuttx_dsc_t * dsc, lv_nuttx_result_t * result)
@@ -126,6 +135,9 @@ void lv_nuttx_init(const lv_nuttx_dsc_t * dsc, lv_nuttx_result_t * result)
#if LV_USE_PROFILER && LV_USE_PROFILER_BUILTIN
lv_nuttx_profiler_init();
+#if LV_USE_NUTTX_TRACE_FILE
+ lv_nuttx_profiler_set_file(dsc->trace_path);
+#endif
#endif
if(result) {
@@ -167,6 +179,15 @@ void lv_nuttx_init(const lv_nuttx_dsc_t * dsc, lv_nuttx_result_t * result)
}
}
#endif
+
+#if LV_USE_NUTTX_MOUSE
+ if(dsc->mouse_path) {
+ lv_indev_t * indev = lv_nuttx_mouse_create(dsc->mouse_path);
+ if(result) {
+ result->mouse_indev = indev;
+ }
+ }
+#endif
}
#else
@@ -240,6 +261,9 @@ void lv_nuttx_deinit(lv_nuttx_result_t * result)
lv_nuttx_cache_deinit();
lv_nuttx_image_cache_deinit();
+#if LV_USE_PROFILER && LV_USE_PROFILER_BUILTIN
+ lv_nuttx_profiler_deinit();
+#endif
lv_free(nuttx_ctx_p);
nuttx_ctx_p = NULL;
}
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/nuttx/lv_nuttx_entry.h b/lib/libesp32_lvgl/lvgl/src/drivers/nuttx/lv_nuttx_entry.h
index 049e741e5..6100b96c2 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/nuttx/lv_nuttx_entry.h
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/nuttx/lv_nuttx_entry.h
@@ -35,16 +35,20 @@ typedef struct {
const char * fb_path;
const char * input_path;
const char * utouch_path;
+ const char * mouse_path;
+ const char * trace_path;
} lv_nuttx_dsc_t;
typedef struct {
lv_display_t * disp;
lv_indev_t * indev;
lv_indev_t * utouch_indev;
+ lv_indev_t * mouse_indev;
} lv_nuttx_result_t;
typedef struct _lv_nuttx_ctx_t {
void * image_cache;
+ int trace_fd;
} lv_nuttx_ctx_t;
/**********************
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/nuttx/lv_nuttx_image_cache.c b/lib/libesp32_lvgl/lvgl/src/drivers/nuttx/lv_nuttx_image_cache.c
index b295850d0..8171f78f3 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/nuttx/lv_nuttx_image_cache.c
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/nuttx/lv_nuttx_image_cache.c
@@ -42,12 +42,12 @@ typedef struct {
bool initialized;
bool independent_image_heap;
- lv_draw_buf_malloc_cb malloc_cb;
- lv_draw_buf_free_cb free_cb;
+ lv_draw_buf_malloc_cb_t malloc_cb;
+ lv_draw_buf_free_cb_t free_cb;
#if LV_NUTTX_DEFAULT_DRAW_BUF_USE_INDEPENDENT_IMAGE_HEAP
- lv_draw_buf_malloc_cb malloc_cb_default;
- lv_draw_buf_free_cb free_cb_default;
+ lv_draw_buf_malloc_cb_t malloc_cb_default;
+ lv_draw_buf_free_cb_t free_cb_default;
#endif
} lv_nuttx_ctx_image_cache_t;
/**********************
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/nuttx/lv_nuttx_mouse.c b/lib/libesp32_lvgl/lvgl/src/drivers/nuttx/lv_nuttx_mouse.c
new file mode 100644
index 000000000..211669408
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/nuttx/lv_nuttx_mouse.c
@@ -0,0 +1,200 @@
+/**
+ * @file lv_nuttx_mouse.c
+ *
+ */
+
+/*********************
+ * INCLUDES
+ *********************/
+
+#include "lv_nuttx_mouse.h"
+
+#if LV_USE_NUTTX
+
+#if LV_USE_NUTTX_MOUSE
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include "../../lvgl_private.h"
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+typedef struct {
+ int fd;
+ lv_indev_state_t last_state;
+} lv_nuttx_mouse_t;
+
+/**********************
+ * STATIC PROTOTYPES
+ **********************/
+static void mouse_read(lv_indev_t * drv, lv_indev_data_t * data);
+static void mouse_delete_cb(lv_event_t * e);
+static lv_indev_t * mouse_init(int fd);
+
+/**********************
+ * STATIC VARIABLES
+ **********************/
+
+/**********************
+ * MACROS
+ **********************/
+
+/**********************
+ * GLOBAL FUNCTIONS
+ **********************/
+
+lv_indev_t * lv_nuttx_mouse_create(const char * dev_path)
+{
+ lv_indev_t * indev;
+ int fd;
+
+ LV_ASSERT_NULL(dev_path);
+ LV_LOG_USER("mouse %s opening", dev_path);
+ fd = open(dev_path, O_RDONLY | O_NONBLOCK);
+ if(fd < 0) {
+ LV_LOG_ERROR("Error: cannot open mouse device");
+ return NULL;
+ }
+
+ LV_LOG_USER("mouse %s open success", dev_path);
+
+ indev = mouse_init(fd);
+
+ if(indev == NULL) {
+ close(fd);
+ }
+
+ return indev;
+}
+
+/**********************
+ * STATIC FUNCTIONS
+ **********************/
+
+static void mouse_read(lv_indev_t * drv, lv_indev_data_t * data)
+{
+ lv_nuttx_mouse_t * mouse = drv->driver_data;
+ struct mouse_report_s sample;
+
+ /* Read one sample */
+
+ int nbytes = read(mouse->fd, &sample, sizeof(struct mouse_report_s));
+
+ /* Handle unexpected return values */
+
+ if(nbytes == sizeof(struct mouse_report_s)) {
+ lv_display_t * disp = lv_indev_get_display(drv);
+ int32_t hor_max = lv_display_get_horizontal_resolution(disp) - 1;
+ int32_t ver_max = lv_display_get_vertical_resolution(disp) - 1;
+
+ data->point.x =
+ LV_CLAMP(0,
+ data->point.x + (sample.x * LV_USE_NUTTX_MOUSE_MOVE_STEP),
+ hor_max);
+ data->point.y =
+ LV_CLAMP(0,
+ data->point.y + (sample.y * LV_USE_NUTTX_MOUSE_MOVE_STEP),
+ ver_max);
+
+ uint8_t mouse_buttons = sample.buttons;
+
+ if(mouse_buttons & MOUSE_BUTTON_1 || mouse_buttons & MOUSE_BUTTON_2 ||
+ mouse_buttons & MOUSE_BUTTON_3) {
+ mouse->last_state = LV_INDEV_STATE_PRESSED;
+ }
+ else {
+ mouse->last_state = LV_INDEV_STATE_RELEASED;
+ }
+ }
+ else {
+ if(nbytes == -1) {
+ if(errno != EAGAIN) {
+ LV_LOG_WARN("Read error: %s", strerror(errno));
+ }
+ }
+ else if(nbytes != 0) {
+ LV_LOG_WARN("Unexpected read size: %d", nbytes);
+ }
+ }
+
+ data->state = mouse->last_state;
+}
+
+static void mouse_delete_cb(lv_event_t * e)
+{
+ lv_indev_t * indev = lv_event_get_user_data(e);
+ lv_nuttx_mouse_t * mouse = lv_indev_get_driver_data(indev);
+ if(mouse) {
+ lv_indev_set_driver_data(indev, NULL);
+ lv_indev_set_read_cb(indev, NULL);
+
+ if(mouse->fd >= 0) {
+ close(mouse->fd);
+ mouse->fd = -1;
+ }
+ lv_free(mouse);
+ LV_LOG_USER("done");
+ }
+}
+
+static void mouse_set_cursor(lv_indev_t * indev)
+{
+ lv_obj_t * cursor_obj = lv_obj_create(lv_layer_sys());
+ lv_obj_remove_style_all(cursor_obj);
+
+ int32_t size = 20;
+ lv_obj_set_size(cursor_obj, size, size);
+ lv_obj_set_style_translate_x(cursor_obj, -size / 2, 0);
+ lv_obj_set_style_translate_y(cursor_obj, -size / 2, 0);
+ lv_obj_set_style_radius(cursor_obj, LV_RADIUS_CIRCLE, 0);
+ lv_obj_set_style_bg_opa(cursor_obj, LV_OPA_50, 0);
+ lv_obj_set_style_bg_color(cursor_obj, lv_color_black(), 0);
+ lv_obj_set_style_border_width(cursor_obj, 2, 0);
+ lv_obj_set_style_border_color(cursor_obj,
+ lv_palette_main(LV_PALETTE_GREY), 0);
+ lv_indev_set_cursor(indev, cursor_obj);
+}
+
+static lv_indev_t * mouse_init(int fd)
+{
+ lv_nuttx_mouse_t * mouse;
+ lv_indev_t * indev = NULL;
+
+ mouse = lv_malloc_zeroed(sizeof(lv_nuttx_mouse_t));
+ LV_ASSERT_MALLOC(mouse);
+
+ mouse->fd = fd;
+ mouse->last_state = LV_INDEV_STATE_RELEASED;
+ indev = lv_indev_create();
+
+ if(indev == NULL) {
+ LV_LOG_ERROR("indev create failed");
+ lv_free(mouse);
+ return NULL;
+ }
+
+ lv_indev_set_type(indev, LV_INDEV_TYPE_POINTER);
+ lv_indev_set_read_cb(indev, mouse_read);
+ lv_indev_set_driver_data(indev, mouse);
+ lv_indev_add_event_cb(indev, mouse_delete_cb, LV_EVENT_DELETE, indev);
+
+ /* Set cursor icon */
+ mouse_set_cursor(indev);
+ return indev;
+}
+
+#endif /*LV_USE_NUTTX_MOUSE*/
+
+#endif /* LV_USE_NUTTX*/
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/nuttx/lv_nuttx_mouse.h b/lib/libesp32_lvgl/lvgl/src/drivers/nuttx/lv_nuttx_mouse.h
new file mode 100644
index 000000000..dfde8e807
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/nuttx/lv_nuttx_mouse.h
@@ -0,0 +1,57 @@
+/**
+ * @file lv_nuttx_mouse.h
+ *
+ */
+
+/*********************
+ * INCLUDES
+ *********************/
+
+#ifndef LV_NUTTX_MOUSE_H
+#define LV_NUTTX_MOUSE_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*********************
+ * INCLUDES
+ *********************/
+
+#include "../../indev/lv_indev.h"
+
+#if LV_USE_NUTTX
+
+#if LV_USE_NUTTX_MOUSE
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+/**********************
+ * GLOBAL PROTOTYPES
+ **********************/
+
+/**
+ * Initialize indev with specified input device.
+ * @param dev_path path of input device
+ */
+lv_indev_t * lv_nuttx_mouse_create(const char * dev_path);
+
+/**********************
+ * MACROS
+ **********************/
+
+#endif /* LV_USE_NUTTX_MOUSE */
+
+#endif /* LV_USE_NUTTX*/
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* LV_NUTTX_MOUSE_H */
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/nuttx/lv_nuttx_profiler.c b/lib/libesp32_lvgl/lvgl/src/drivers/nuttx/lv_nuttx_profiler.c
index 63c1a5374..e48fb1d0d 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/nuttx/lv_nuttx_profiler.c
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/nuttx/lv_nuttx_profiler.c
@@ -13,12 +13,15 @@
#if LV_USE_NUTTX && LV_USE_PROFILER && LV_USE_PROFILER_BUILTIN
#include
+#include
#include
/*********************
* DEFINES
*********************/
+#define trace_fd (LV_GLOBAL_DEFAULT()->nuttx_ctx->trace_fd)
+
#define TICK_TO_NSEC(tick) ((tick) * 1000 / cpu_freq)
/**********************
@@ -55,6 +58,10 @@ void lv_nuttx_profiler_init(void)
}
LV_LOG_USER("CPU frequency: %" LV_PRIu32 " MHz", cpu_freq);
+#if LV_USE_NUTTX_TRACE_FILE
+ trace_fd = -1;
+#endif
+
lv_profiler_builtin_config_t config;
lv_profiler_builtin_config_init(&config);
config.tick_per_sec = 1000000000; /* 1 sec = 1000000000 nsec */
@@ -63,6 +70,31 @@ void lv_nuttx_profiler_init(void)
lv_profiler_builtin_init(&config);
}
+void lv_nuttx_profiler_set_file(const char * file)
+{
+#if LV_USE_NUTTX_TRACE_FILE
+ if(trace_fd >= 0) {
+ close(trace_fd);
+ }
+
+ trace_fd = open(file, O_WRONLY | O_CREAT | O_TRUNC, 0644);
+ if(trace_fd < 0) {
+ LV_LOG_ERROR("Failed to open trace file %s, error: %d", file, errno);
+ }
+#endif
+}
+
+void lv_nuttx_profiler_deinit(void)
+{
+ lv_profiler_builtin_uninit();
+#if LV_USE_NUTTX_TRACE_FILE
+ if(trace_fd >= 0) {
+ close(trace_fd);
+ }
+ trace_fd = -1;
+#endif
+}
+
/**********************
* STATIC FUNCTIONS
**********************/
@@ -90,6 +122,12 @@ static uint64_t tick_get_cb(void)
static void flush_cb(const char * buf)
{
+#if LV_USE_NUTTX_TRACE_FILE
+ if(trace_fd >= 0) {
+ write(trace_fd, buf, strlen(buf));
+ return;
+ }
+#endif
printf("%s", buf);
}
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/nuttx/lv_nuttx_profiler.h b/lib/libesp32_lvgl/lvgl/src/drivers/nuttx/lv_nuttx_profiler.h
index 8b8cf6521..01f97589e 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/nuttx/lv_nuttx_profiler.h
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/nuttx/lv_nuttx_profiler.h
@@ -27,6 +27,8 @@ extern "C" {
**********************/
void lv_nuttx_profiler_init(void);
+void lv_nuttx_profiler_set_file(const char * file);
+void lv_nuttx_profiler_deinit(void);
/**********************
* MACROS
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/opengles/assets/lv_opengles_shader.c b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/assets/lv_opengles_shader.c
new file mode 100644
index 000000000..107f1dddf
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/assets/lv_opengles_shader.c
@@ -0,0 +1,275 @@
+#include "lv_opengles_shader.h"
+
+#if LV_USE_OPENGLES
+
+#include "../opengl_shader/lv_opengl_shader_internal.h"
+#include "../../../misc/lv_types.h"
+
+static const lv_opengl_shader_t src_includes_v100[] = {{
+ "hsv_adjust.glsl", R"(
+
+ uniform float u_Hue;
+ uniform float u_Saturation;
+ uniform float u_Value;
+
+ // Convert RGB to HSV
+ vec3 rgb2hsv(vec3 c) {
+ vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
+ vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));
+ vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));
+ float d = q.x - min(q.w, q.y);
+ float e = 1.0e-10;
+ return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
+ }
+
+ // Convert HSV to RGB
+ vec3 hsv2rgb(vec3 c) {
+ vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
+ vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
+ return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
+ }
+
+ vec3 adjustHSV(vec3 color){
+ vec3 hsv = rgb2hsv(color);
+ hsv.x = fract(hsv.x + u_Hue);
+ hsv.y = clamp(hsv.y * u_Saturation, 0.0, 1.0);
+ hsv.z = clamp(hsv.z * u_Value, 0.0, 1.0);
+ return hsv2rgb(hsv);
+ }
+ )"
+ }, {
+ "brightness_adjust.glsl", R"(
+ uniform float u_Brightness; // add/subtract in [ -1.0 .. +1.0 ], 0.0 = no change
+
+ vec3 adjustBrightness(vec3 color){
+ return clamp(color + vec3(u_Brightness), 0.0, 1.0);
+ }
+
+ )"
+ }, {
+ "contrast_adjust.glsl", R"(
+ uniform float u_Contrast; // 0.0 = mid-gray, 1.0 = no change, >1.0 increases contrast
+
+ vec3 adjustContrast(vec3 color){
+ // shift to [-0.5..0.5], scale, shift back
+ return clamp(((color - 0.5) * u_Contrast) + 0.5, 0.0, 1.0);
+ }
+ )"
+ },
+};
+
+static const char * src_vertex_shader_v100 = R"(
+ precision mediump float;
+
+ attribute vec4 position;
+ attribute vec2 texCoord;
+
+ varying vec2 v_TexCoord;
+
+ uniform mat3 u_VertexTransform;
+
+ void main()
+ {
+ gl_Position = vec4((u_VertexTransform * vec3(position.xy, 1.0)).xy, position.zw);
+ v_TexCoord = texCoord;
+ }
+)";
+
+static const char *src_fragment_shader_v100 = R"(
+ precision lowp float;
+
+ varying vec2 v_TexCoord;
+
+ uniform sampler2D u_Texture;
+ uniform float u_ColorDepth;
+ uniform float u_Opa;
+ uniform bool u_IsFill;
+ uniform vec3 u_FillColor;
+
+ #ifdef HSV_ADJUST
+#include
+ #endif
+
+ void main()
+ {
+ vec4 texColor;
+ if (u_IsFill) {
+ texColor = vec4(u_FillColor, 1.0);
+ } else {
+ texColor = texture2D(u_Texture, v_TexCoord);
+ }
+ if (abs(u_ColorDepth - 8.0) < 0.1) {
+ float gray = texColor.r;
+ gl_FragColor = vec4(gray, gray, gray, u_Opa);
+ } else {
+ float combinedAlpha = texColor.a * u_Opa;
+ gl_FragColor = vec4(texColor.rgb * combinedAlpha, combinedAlpha);
+ }
+ #ifdef HSV_ADJUST
+ gl_FragColor.rgb = adjustHSV(gl_FragColor.rgb);
+ #endif
+ }
+)";
+
+static const lv_opengl_shader_t src_includes_v300es[] = {{
+ "hsv_adjust.glsl", R"(
+ uniform float u_Hue;
+ uniform float u_Saturation;
+ uniform float u_Value;
+
+ // Convert RGB to HSV
+ vec3 rgb2hsv(vec3 c) {
+ vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
+ vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));
+ vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));
+ float d = q.x - min(q.w, q.y);
+ float e = 1.0e-10;
+ return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
+ }
+
+ // Convert HSV to RGB
+ vec3 hsv2rgb(vec3 c) {
+ vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
+ vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
+ return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
+ }
+
+ vec3 adjustHSV(vec3 color){
+ vec3 hsv = rgb2hsv(color);
+ hsv.x = fract(hsv.x + u_Hue);
+ hsv.y = clamp(hsv.y * u_Saturation, 0.0, 1.0);
+ hsv.z = clamp(hsv.z * u_Value, 0.0, 1.0);
+ return hsv2rgb(hsv);
+ }
+ )"
+ }, {
+ "brightness_adjust.glsl", R"(
+ uniform float u_Brightness; // add/subtract in [ -1.0 .. +1.0 ], 0.0 = no change
+
+ vec3 adjustBrightness(vec3 color){
+ return clamp(color + vec3(u_Brightness), 0.0, 1.0);
+ }
+
+ )"
+ }, {
+ "contrast_adjust.glsl", R"(
+ uniform float u_Contrast; // 0.0 = mid-gray, 1.0 = no change, >1.0 increases contrast
+
+ vec3 adjustContrast(vec3 color){
+ // shift to [-0.5..0.5], scale, shift back
+ return clamp(((color - 0.5) * u_Contrast) + 0.5, 0.0, 1.0);
+ }
+ )"
+ },
+};
+
+static const char * src_vertex_shader_v300es = R"(
+ precision mediump float;
+
+ in vec4 position;
+ in vec2 texCoord;
+
+ out vec2 v_TexCoord;
+
+ uniform mat3 u_VertexTransform;
+
+ void main()
+ {
+ gl_Position = vec4((u_VertexTransform * vec3(position.xy, 1)).xy, position.zw);
+ v_TexCoord = texCoord;
+ }
+)";
+
+static const char *src_fragment_shader_v300es = R"(
+ precision lowp float;
+
+ out vec4 color;
+
+ in vec2 v_TexCoord;
+
+ uniform sampler2D u_Texture;
+ uniform float u_ColorDepth;
+ uniform float u_Opa;
+ uniform bool u_IsFill;
+ uniform vec3 u_FillColor;
+
+ #ifdef HSV_ADJUST
+#include
+ #endif
+
+ void main()
+ {
+ vec4 texColor;
+ if (u_IsFill) {
+ texColor = vec4(u_FillColor, 1.0);
+ } else {
+ //texColor = texture(u_Texture, v_TexCoord);
+ texColor = textureLod(u_Texture, v_TexCoord, 0.0); // If the vertices have been transformed, and mipmaps have not been generated, some rotation angles (notably 90 and 270) require using textureLod() to mitigate derivative calculation errors from increments flipping direction
+ }
+ if (abs(u_ColorDepth - 8.0) < 0.1) {
+ float gray = texColor.r;
+ color = vec4(gray, gray, gray, u_Opa);
+ } else {
+ float combinedAlpha = texColor.a * u_Opa;
+ color = vec4(texColor.rgb * combinedAlpha, combinedAlpha);
+ }
+ #ifdef HSV_ADJUST
+ color.rgb = adjustHSV(color.rgb);
+ #endif
+ }
+)";
+
+static const size_t src_includes_v100_count = sizeof src_includes_v100 / sizeof src_includes_v100[0];
+static const size_t src_includes_v300es_count = sizeof src_includes_v300es / sizeof src_includes_v300es[0];
+
+/**********************
+ * GLOBAL FUNCTIONS
+ **********************/
+
+char * lv_opengles_shader_get_vertex(lv_opengl_glsl_version version) {
+ switch (version){
+ case LV_OPENGL_GLSL_VERSION_300ES:
+ return lv_opengl_shader_manager_process_includes(src_vertex_shader_v300es, src_includes_v300es, src_includes_v300es_count);
+ case LV_OPENGL_GLSL_VERSION_100:
+ return lv_opengl_shader_manager_process_includes(src_vertex_shader_v100, src_includes_v100, src_includes_v100_count);
+ case LV_OPENGL_GLSL_VERSION_LAST:
+ LV_LOG_ERROR("Invalid glsl version %d", version);
+ return NULL;
+ }
+ LV_UNREACHABLE();
+}
+
+char * lv_opengles_shader_get_fragment(lv_opengl_glsl_version version) {
+ switch (version){
+ case LV_OPENGL_GLSL_VERSION_300ES:
+ return lv_opengl_shader_manager_process_includes(src_fragment_shader_v300es, src_includes_v300es, src_includes_v300es_count);
+ case LV_OPENGL_GLSL_VERSION_100:
+ return lv_opengl_shader_manager_process_includes(src_fragment_shader_v100, src_includes_v100, src_includes_v100_count);
+ case LV_OPENGL_GLSL_VERSION_LAST:
+ LV_LOG_ERROR("Invalid glsl version %d", version);
+ return NULL;
+ }
+ LV_UNREACHABLE();
+}
+
+void lv_opengles_shader_get_source(lv_opengl_shader_portions_t *portions, lv_opengl_glsl_version version)
+{
+ switch (version){
+ case LV_OPENGL_GLSL_VERSION_300ES:
+ portions->all = src_includes_v300es;
+ portions->count = src_includes_v300es_count;
+ return;
+ case LV_OPENGL_GLSL_VERSION_100:
+ portions->all = src_includes_v100;
+ portions->count = src_includes_v100_count;
+ return;
+ case LV_OPENGL_GLSL_VERSION_LAST:
+ LV_LOG_ERROR("Invalid glsl version %d", version);
+ portions->count = 0;
+ return;
+ }
+
+ LV_UNREACHABLE();
+}
+
+#endif /*LV_USE_OPENGLES*/
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/opengles/assets/lv_opengles_shader.h b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/assets/lv_opengles_shader.h
new file mode 100644
index 000000000..8c310a1a4
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/assets/lv_opengles_shader.h
@@ -0,0 +1,39 @@
+/**
+ * @file lv_opengles_shader.h
+ *
+ */
+
+#ifndef LV_OPENGLES_SHADER_H
+#define LV_OPENGLES_SHADER_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*********************
+ * INCLUDES
+ *********************/
+#include "../opengl_shader/lv_opengl_shader_internal.h"
+
+#if LV_USE_OPENGLES
+
+/**********************
+ * GLOBAL PROTOTYPES
+ **********************/
+
+char * lv_opengles_shader_get_vertex(lv_opengl_glsl_version version);
+char * lv_opengles_shader_get_fragment(lv_opengl_glsl_version version);
+void lv_opengles_shader_get_source(lv_opengl_shader_portions_t * portions, lv_opengl_glsl_version version);
+
+
+/**********************
+ * MACROS
+ **********************/
+
+#endif /*LV_USE_OPENGLES*/
+
+#ifdef __cplusplus
+} /*extern "C"*/
+#endif
+
+#endif /*LV_OPENGLES_SHADER_H*/
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/opengles/glad/README.md b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/glad/README.md
new file mode 100644
index 000000000..a15015ceb
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/glad/README.md
@@ -0,0 +1,5 @@
+
+# glad
+
+GLAD source files are generated using GLAD's online generator.
+[Permalink](https://gen.glad.sh/#generator=c&api=egl%3D1.5%2Cgles2%3D2.0&profile=gl%3Dcompatibility%2Cgles1%3Dcommon&extensions=EGL_EXT_image_dma_buf_import%2CEGL_EXT_image_dma_buf_import_modifiers%2CEGL_EXT_platform_base%2CEGL_EXT_platform_wayland%2CEGL_KHR_fence_sync%2CEGL_KHR_image_base%2CEGL_KHR_platform_gbm%2CEGL_KHR_platform_wayland%2CGL_APPLE_texture_max_level%2CGL_ARM_rgba8%2CGL_EXT_color_buffer_float%2CGL_EXT_color_buffer_half_float%2CGL_EXT_texture_format_BGRA8888%2CGL_EXT_texture_storage%2CGL_EXT_unpack_subimage%2CGL_OES_depth24%2CGL_OES_mapbuffer%2CGL_OES_rgb8_rgba8%2CGL_OES_texture_float%2CGL_OES_texture_half_float%2CGL_OES_texture_storage_multisample_2d_array%2CGL_OES_vertex_array_object&options=ALIAS)
\ No newline at end of file
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/opengles/glad/include/EGL/eglplatform.h b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/glad/include/EGL/eglplatform.h
new file mode 100644
index 000000000..d556b74f5
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/glad/include/EGL/eglplatform.h
@@ -0,0 +1,181 @@
+#ifndef __eglplatform_h_
+#define __eglplatform_h_
+
+#include "../../../lv_opengles_egl.h"
+
+#if LV_USE_EGL
+
+/*
+** Copyright 2007-2020 The Khronos Group Inc.
+** SPDX-License-Identifier: Apache-2.0
+*/
+
+/* Platform-specific types and definitions for egl.h
+ *
+ * Adopters may modify khrplatform.h and this file to suit their platform.
+ * You are encouraged to submit all modifications to the Khronos group so that
+ * they can be included in future versions of this file. Please submit changes
+ * by filing an issue or pull request on the public Khronos EGL Registry, at
+ * https://www.github.com/KhronosGroup/EGL-Registry/
+ */
+
+#include
+
+/* Macros used in EGL function prototype declarations.
+ *
+ * EGL functions should be prototyped as:
+ *
+ * EGLAPI return-type EGLAPIENTRY eglFunction(arguments);
+ * typedef return-type (EXPAPIENTRYP PFNEGLFUNCTIONPROC) (arguments);
+ *
+ * KHRONOS_APICALL and KHRONOS_APIENTRY are defined in KHR/khrplatform.h
+ */
+
+#ifndef EGLAPI
+#define EGLAPI KHRONOS_APICALL
+#endif
+
+#ifndef EGLAPIENTRY
+#define EGLAPIENTRY KHRONOS_APIENTRY
+#endif
+#define EGLAPIENTRYP EGLAPIENTRY*
+
+/* The types NativeDisplayType, NativeWindowType, and NativePixmapType
+ * are aliases of window-system-dependent types, such as X Display * or
+ * Windows Device Context. They must be defined in platform-specific
+ * code below. The EGL-prefixed versions of Native*Type are the same
+ * types, renamed in EGL 1.3 so all types in the API start with "EGL".
+ *
+ * Khronos STRONGLY RECOMMENDS that you use the default definitions
+ * provided below, since these changes affect both binary and source
+ * portability of applications using EGL running on different EGL
+ * implementations.
+ */
+
+#if defined(EGL_NO_PLATFORM_SPECIFIC_TYPES)
+
+typedef void *EGLNativeDisplayType;
+typedef void *EGLNativePixmapType;
+typedef void *EGLNativeWindowType;
+
+#elif defined(_WIN32) || defined(__VC32__) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) /* Win32 and WinCE */
+#ifndef WIN32_LEAN_AND_MEAN
+#define WIN32_LEAN_AND_MEAN 1
+#endif
+#include
+
+typedef HDC EGLNativeDisplayType;
+typedef HBITMAP EGLNativePixmapType;
+typedef HWND EGLNativeWindowType;
+
+#elif defined(__QNX__)
+
+typedef khronos_uintptr_t EGLNativeDisplayType;
+typedef struct _screen_pixmap* EGLNativePixmapType; /* screen_pixmap_t */
+typedef struct _screen_window* EGLNativeWindowType; /* screen_window_t */
+
+#elif defined(__EMSCRIPTEN__)
+
+typedef int EGLNativeDisplayType;
+typedef int EGLNativePixmapType;
+typedef int EGLNativeWindowType;
+
+#elif defined(__WINSCW__) || defined(__SYMBIAN32__) /* Symbian */
+
+typedef int EGLNativeDisplayType;
+typedef void *EGLNativePixmapType;
+typedef void *EGLNativeWindowType;
+
+#elif defined(WL_EGL_PLATFORM)
+
+typedef struct wl_display *EGLNativeDisplayType;
+typedef struct wl_egl_pixmap *EGLNativePixmapType;
+typedef struct wl_egl_window *EGLNativeWindowType;
+
+#elif defined(__GBM__)
+
+typedef struct gbm_device *EGLNativeDisplayType;
+typedef struct gbm_bo *EGLNativePixmapType;
+typedef void *EGLNativeWindowType;
+
+#elif defined(__ANDROID__) || defined(ANDROID)
+
+struct ANativeWindow;
+struct egl_native_pixmap_t;
+
+typedef void* EGLNativeDisplayType;
+typedef struct egl_native_pixmap_t* EGLNativePixmapType;
+typedef struct ANativeWindow* EGLNativeWindowType;
+
+#elif defined(USE_OZONE)
+
+typedef intptr_t EGLNativeDisplayType;
+typedef intptr_t EGLNativePixmapType;
+typedef intptr_t EGLNativeWindowType;
+
+#elif defined(USE_X11)
+
+/* X11 (tentative) */
+#include
+#include
+
+typedef Display *EGLNativeDisplayType;
+typedef Pixmap EGLNativePixmapType;
+typedef Window EGLNativeWindowType;
+
+#elif defined(__unix__)
+
+typedef void *EGLNativeDisplayType;
+typedef khronos_uintptr_t EGLNativePixmapType;
+typedef khronos_uintptr_t EGLNativeWindowType;
+
+#elif defined(__APPLE__)
+
+typedef int EGLNativeDisplayType;
+typedef void *EGLNativePixmapType;
+typedef void *EGLNativeWindowType;
+
+#elif defined(__HAIKU__)
+
+#include
+
+typedef void *EGLNativeDisplayType;
+typedef khronos_uintptr_t EGLNativePixmapType;
+typedef khronos_uintptr_t EGLNativeWindowType;
+
+#elif defined(__Fuchsia__)
+
+typedef void *EGLNativeDisplayType;
+typedef khronos_uintptr_t EGLNativePixmapType;
+typedef khronos_uintptr_t EGLNativeWindowType;
+
+#else
+#error "Platform not recognized"
+#endif
+
+/* EGL 1.2 types, renamed for consistency in EGL 1.3 */
+typedef EGLNativeDisplayType NativeDisplayType;
+typedef EGLNativePixmapType NativePixmapType;
+typedef EGLNativeWindowType NativeWindowType;
+
+
+/* Define EGLint. This must be a signed integral type large enough to contain
+ * all legal attribute names and values passed into and out of EGL, whether
+ * their type is boolean, bitmask, enumerant (symbolic constant), integer,
+ * handle, or other. While in general a 32-bit integer will suffice, if
+ * handles are 64 bit types, then EGLint should be defined as a signed 64-bit
+ * integer type.
+ */
+typedef khronos_int32_t EGLint;
+
+
+/* C++ / C typecast macros for special EGL handle values */
+#if defined(__cplusplus)
+#define EGL_CAST(type, value) (static_cast(value))
+#else
+#define EGL_CAST(type, value) ((type) (value))
+#endif
+
+#endif /*LV_USE_EGL*/
+
+#endif /* __eglplatform_h */
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/opengles/glad/include/KHR/khrplatform.h b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/glad/include/KHR/khrplatform.h
new file mode 100644
index 000000000..af2ae885b
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/glad/include/KHR/khrplatform.h
@@ -0,0 +1,317 @@
+#ifndef __khrplatform_h_
+#define __khrplatform_h_
+
+#include "../../../lv_opengles_egl.h"
+
+#if LV_USE_EGL
+
+/*
+** Copyright (c) 2008-2018 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
+
+/* Khronos platform-specific types and definitions.
+ *
+ * The master copy of khrplatform.h is maintained in the Khronos EGL
+ * Registry repository at https://github.com/KhronosGroup/EGL-Registry
+ * The last semantic modification to khrplatform.h was at commit ID:
+ * 67a3e0864c2d75ea5287b9f3d2eb74a745936692
+ *
+ * Adopters may modify this file to suit their platform. Adopters are
+ * encouraged to submit platform specific modifications to the Khronos
+ * group so that they can be included in future versions of this file.
+ * Please submit changes by filing pull requests or issues on
+ * the EGL Registry repository linked above.
+ *
+ *
+ * See the Implementer's Guidelines for information about where this file
+ * should be located on your system and for more details of its use:
+ * http://www.khronos.org/registry/implementers_guide.pdf
+ *
+ * This file should be included as
+ * #include
+ * by Khronos client API header files that use its types and defines.
+ *
+ * The types in khrplatform.h should only be used to define API-specific types.
+ *
+ * Types defined in khrplatform.h:
+ * khronos_int8_t signed 8 bit
+ * khronos_uint8_t unsigned 8 bit
+ * khronos_int16_t signed 16 bit
+ * khronos_uint16_t unsigned 16 bit
+ * khronos_int32_t signed 32 bit
+ * khronos_uint32_t unsigned 32 bit
+ * khronos_int64_t signed 64 bit
+ * khronos_uint64_t unsigned 64 bit
+ * khronos_intptr_t signed same number of bits as a pointer
+ * khronos_uintptr_t unsigned same number of bits as a pointer
+ * khronos_ssize_t signed size
+ * khronos_usize_t unsigned size
+ * khronos_float_t signed 32 bit floating point
+ * khronos_time_ns_t unsigned 64 bit time in nanoseconds
+ * khronos_utime_nanoseconds_t unsigned time interval or absolute time in
+ * nanoseconds
+ * khronos_stime_nanoseconds_t signed time interval in nanoseconds
+ * khronos_boolean_enum_t enumerated boolean type. This should
+ * only be used as a base type when a client API's boolean type is
+ * an enum. Client APIs which use an integer or other type for
+ * booleans cannot use this as the base type for their boolean.
+ *
+ * Tokens defined in khrplatform.h:
+ *
+ * KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values.
+ *
+ * KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0.
+ * KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0.
+ *
+ * Calling convention macros defined in this file:
+ * KHRONOS_APICALL
+ * KHRONOS_APIENTRY
+ * KHRONOS_APIATTRIBUTES
+ *
+ * These may be used in function prototypes as:
+ *
+ * KHRONOS_APICALL void KHRONOS_APIENTRY funcname(
+ * int arg1,
+ * int arg2) KHRONOS_APIATTRIBUTES;
+ */
+
+#if defined(__SCITECH_SNAP__) && !defined(KHRONOS_STATIC)
+# define KHRONOS_STATIC 1
+#endif
+
+/*-------------------------------------------------------------------------
+ * Definition of KHRONOS_APICALL
+ *-------------------------------------------------------------------------
+ * This precedes the return type of the function in the function prototype.
+ */
+#if defined(KHRONOS_STATIC)
+ /* If the preprocessor constant KHRONOS_STATIC is defined, make the
+ * header compatible with static linking. */
+# define KHRONOS_APICALL
+#elif defined(_WIN32)
+# define KHRONOS_APICALL __declspec(dllimport)
+#elif defined (__SYMBIAN32__)
+# define KHRONOS_APICALL IMPORT_C
+#elif defined(__ANDROID__)
+# define KHRONOS_APICALL __attribute__((visibility("default")))
+#else
+# define KHRONOS_APICALL
+#endif
+
+/*-------------------------------------------------------------------------
+ * Definition of KHRONOS_APIENTRY
+ *-------------------------------------------------------------------------
+ * This follows the return type of the function and precedes the function
+ * name in the function prototype.
+ */
+#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__)
+ /* Win32 but not WinCE */
+# define KHRONOS_APIENTRY __stdcall
+#else
+# define KHRONOS_APIENTRY
+#endif
+
+/*-------------------------------------------------------------------------
+ * Definition of KHRONOS_APIATTRIBUTES
+ *-------------------------------------------------------------------------
+ * This follows the closing parenthesis of the function prototype arguments.
+ */
+#if defined (__ARMCC_2__)
+#define KHRONOS_APIATTRIBUTES __softfp
+#else
+#define KHRONOS_APIATTRIBUTES
+#endif
+
+/*-------------------------------------------------------------------------
+ * basic type definitions
+ *-----------------------------------------------------------------------*/
+#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__)
+
+
+/*
+ * Using
+ */
+#include
+typedef int32_t khronos_int32_t;
+typedef uint32_t khronos_uint32_t;
+typedef int64_t khronos_int64_t;
+typedef uint64_t khronos_uint64_t;
+#define KHRONOS_SUPPORT_INT64 1
+#define KHRONOS_SUPPORT_FLOAT 1
+/*
+ * To support platform where unsigned long cannot be used interchangeably with
+ * inptr_t (e.g. CHERI-extended ISAs), we can use the stdint.h intptr_t.
+ * Ideally, we could just use (u)intptr_t everywhere, but this could result in
+ * ABI breakage if khronos_uintptr_t is changed from unsigned long to
+ * unsigned long long or similar (this results in different C++ name mangling).
+ * To avoid changes for existing platforms, we restrict usage of intptr_t to
+ * platforms where the size of a pointer is larger than the size of long.
+ */
+#if defined(__SIZEOF_LONG__) && defined(__SIZEOF_POINTER__)
+#if __SIZEOF_POINTER__ > __SIZEOF_LONG__
+#define KHRONOS_USE_INTPTR_T
+#endif
+#endif
+
+#elif defined(__VMS ) || defined(__sgi)
+
+/*
+ * Using
+ */
+#include
+typedef int32_t khronos_int32_t;
+typedef uint32_t khronos_uint32_t;
+typedef int64_t khronos_int64_t;
+typedef uint64_t khronos_uint64_t;
+#define KHRONOS_SUPPORT_INT64 1
+#define KHRONOS_SUPPORT_FLOAT 1
+
+#elif defined(_WIN32) && !defined(__SCITECH_SNAP__)
+
+/*
+ * Win32
+ */
+typedef __int32 khronos_int32_t;
+typedef unsigned __int32 khronos_uint32_t;
+typedef __int64 khronos_int64_t;
+typedef unsigned __int64 khronos_uint64_t;
+#define KHRONOS_SUPPORT_INT64 1
+#define KHRONOS_SUPPORT_FLOAT 1
+
+#elif defined(__sun__) || defined(__digital__)
+
+/*
+ * Sun or Digital
+ */
+typedef int khronos_int32_t;
+typedef unsigned int khronos_uint32_t;
+#if defined(__arch64__) || defined(_LP64)
+typedef long int khronos_int64_t;
+typedef unsigned long int khronos_uint64_t;
+#else
+typedef long long int khronos_int64_t;
+typedef unsigned long long int khronos_uint64_t;
+#endif /* __arch64__ */
+#define KHRONOS_SUPPORT_INT64 1
+#define KHRONOS_SUPPORT_FLOAT 1
+
+#elif 0
+
+/*
+ * Hypothetical platform with no float or int64 support
+ */
+typedef int khronos_int32_t;
+typedef unsigned int khronos_uint32_t;
+#define KHRONOS_SUPPORT_INT64 0
+#define KHRONOS_SUPPORT_FLOAT 0
+
+#else
+
+/*
+ * Generic fallback
+ */
+#include
+typedef int32_t khronos_int32_t;
+typedef uint32_t khronos_uint32_t;
+typedef int64_t khronos_int64_t;
+typedef uint64_t khronos_uint64_t;
+#define KHRONOS_SUPPORT_INT64 1
+#define KHRONOS_SUPPORT_FLOAT 1
+
+#endif
+
+
+/*
+ * Types that are (so far) the same on all platforms
+ */
+typedef signed char khronos_int8_t;
+typedef unsigned char khronos_uint8_t;
+typedef signed short int khronos_int16_t;
+typedef unsigned short int khronos_uint16_t;
+
+/*
+ * Types that differ between LLP64 and LP64 architectures - in LLP64,
+ * pointers are 64 bits, but 'long' is still 32 bits. Win64 appears
+ * to be the only LLP64 architecture in current use.
+ */
+#ifdef KHRONOS_USE_INTPTR_T
+typedef intptr_t khronos_intptr_t;
+typedef uintptr_t khronos_uintptr_t;
+#elif defined(_WIN64)
+typedef signed long long int khronos_intptr_t;
+typedef unsigned long long int khronos_uintptr_t;
+#else
+typedef signed long int khronos_intptr_t;
+typedef unsigned long int khronos_uintptr_t;
+#endif
+
+#if defined(_WIN64)
+typedef signed long long int khronos_ssize_t;
+typedef unsigned long long int khronos_usize_t;
+#else
+typedef signed long int khronos_ssize_t;
+typedef unsigned long int khronos_usize_t;
+#endif
+
+#if KHRONOS_SUPPORT_FLOAT
+/*
+ * Float type
+ */
+typedef float khronos_float_t;
+#endif
+
+#if KHRONOS_SUPPORT_INT64
+/* Time types
+ *
+ * These types can be used to represent a time interval in nanoseconds or
+ * an absolute Unadjusted System Time. Unadjusted System Time is the number
+ * of nanoseconds since some arbitrary system event (e.g. since the last
+ * time the system booted). The Unadjusted System Time is an unsigned
+ * 64 bit value that wraps back to 0 every 584 years. Time intervals
+ * may be either signed or unsigned.
+ */
+typedef khronos_uint64_t khronos_utime_nanoseconds_t;
+typedef khronos_int64_t khronos_stime_nanoseconds_t;
+#endif
+
+/*
+ * Dummy value used to pad enum types to 32 bits.
+ */
+#ifndef KHRONOS_MAX_ENUM
+#define KHRONOS_MAX_ENUM 0x7FFFFFFF
+#endif
+
+/*
+ * Enumerated boolean type
+ *
+ * Values other than zero should be considered to be true. Therefore
+ * comparisons should not be made against KHRONOS_TRUE.
+ */
+typedef enum {
+ KHRONOS_FALSE = 0,
+ KHRONOS_TRUE = 1,
+ KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM
+} khronos_boolean_enum_t;
+
+#endif /* LV_USE_EGL */
+
+#endif /* __khrplatform_h_ */
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/opengles/glad/include/glad/egl.h b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/glad/include/glad/egl.h
new file mode 100644
index 000000000..755bf0382
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/glad/include/glad/egl.h
@@ -0,0 +1,665 @@
+/**
+ * Loader generated by glad 2.0.8 on Tue Sep 30 16:40:42 2025
+ *
+ * SPDX-License-Identifier: (WTFPL OR CC0-1.0) AND Apache-2.0
+ *
+ * Generator: C/C++
+ * Specification: egl
+ * Extensions: 11
+ *
+ * APIs:
+ * - egl=1.5
+ *
+ * Options:
+ * - ALIAS = True
+ * - DEBUG = False
+ * - HEADER_ONLY = False
+ * - LOADER = False
+ * - MX = False
+ * - ON_DEMAND = False
+ *
+ * Commandline:
+ * --api='egl=1.5' --extensions='EGL_EXT_image_dma_buf_import,EGL_EXT_image_dma_buf_import_modifiers,EGL_EXT_platform_base,EGL_EXT_platform_wayland,EGL_KHR_cl_event2,EGL_KHR_fence_sync,EGL_KHR_image,EGL_KHR_image_base,EGL_KHR_platform_gbm,EGL_KHR_platform_wayland,EGL_KHR_reusable_sync' c --alias
+ *
+ * Online:
+ * http://glad.sh/#api=egl%3D1.5&extensions=EGL_EXT_image_dma_buf_import%2CEGL_EXT_image_dma_buf_import_modifiers%2CEGL_EXT_platform_base%2CEGL_EXT_platform_wayland%2CEGL_KHR_cl_event2%2CEGL_KHR_fence_sync%2CEGL_KHR_image%2CEGL_KHR_image_base%2CEGL_KHR_platform_gbm%2CEGL_KHR_platform_wayland%2CEGL_KHR_reusable_sync&generator=c&options=ALIAS
+ *
+ */
+
+#ifndef GLAD_EGL_H_
+#define GLAD_EGL_H_
+
+#include "../../../lv_opengles_egl.h"
+
+#if LV_USE_EGL
+
+#define GLAD_EGL
+#define GLAD_OPTION_EGL_ALIAS
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef GLAD_PLATFORM_H_
+#define GLAD_PLATFORM_H_
+
+#ifndef GLAD_PLATFORM_WIN32
+ #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__MINGW32__)
+ #define GLAD_PLATFORM_WIN32 1
+ #else
+ #define GLAD_PLATFORM_WIN32 0
+ #endif
+#endif
+
+#ifndef GLAD_PLATFORM_APPLE
+ #ifdef __APPLE__
+ #define GLAD_PLATFORM_APPLE 1
+ #else
+ #define GLAD_PLATFORM_APPLE 0
+ #endif
+#endif
+
+#ifndef GLAD_PLATFORM_EMSCRIPTEN
+ #ifdef __EMSCRIPTEN__
+ #define GLAD_PLATFORM_EMSCRIPTEN 1
+ #else
+ #define GLAD_PLATFORM_EMSCRIPTEN 0
+ #endif
+#endif
+
+#ifndef GLAD_PLATFORM_UWP
+ #if defined(_MSC_VER) && !defined(GLAD_INTERNAL_HAVE_WINAPIFAMILY)
+ #ifdef __has_include
+ #if __has_include()
+ #define GLAD_INTERNAL_HAVE_WINAPIFAMILY 1
+ #endif
+ #elif _MSC_VER >= 1700 && !_USING_V110_SDK71_
+ #define GLAD_INTERNAL_HAVE_WINAPIFAMILY 1
+ #endif
+ #endif
+
+ #ifdef GLAD_INTERNAL_HAVE_WINAPIFAMILY
+ #include
+ #if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
+ #define GLAD_PLATFORM_UWP 1
+ #endif
+ #endif
+
+ #ifndef GLAD_PLATFORM_UWP
+ #define GLAD_PLATFORM_UWP 0
+ #endif
+#endif
+
+#ifdef __GNUC__
+ #define GLAD_GNUC_EXTENSION __extension__
+#else
+ #define GLAD_GNUC_EXTENSION
+#endif
+
+#define GLAD_UNUSED(x) (void)(x)
+
+#ifndef GLAD_API_CALL
+ #if defined(GLAD_API_CALL_EXPORT)
+ #if GLAD_PLATFORM_WIN32 || defined(__CYGWIN__)
+ #if defined(GLAD_API_CALL_EXPORT_BUILD)
+ #if defined(__GNUC__)
+ #define GLAD_API_CALL __attribute__ ((dllexport)) extern
+ #else
+ #define GLAD_API_CALL __declspec(dllexport) extern
+ #endif
+ #else
+ #if defined(__GNUC__)
+ #define GLAD_API_CALL __attribute__ ((dllimport)) extern
+ #else
+ #define GLAD_API_CALL __declspec(dllimport) extern
+ #endif
+ #endif
+ #elif defined(__GNUC__) && defined(GLAD_API_CALL_EXPORT_BUILD)
+ #define GLAD_API_CALL __attribute__ ((visibility ("default"))) extern
+ #else
+ #define GLAD_API_CALL extern
+ #endif
+ #else
+ #define GLAD_API_CALL extern
+ #endif
+#endif
+
+#ifdef APIENTRY
+ #define GLAD_API_PTR APIENTRY
+#elif GLAD_PLATFORM_WIN32
+ #define GLAD_API_PTR __stdcall
+#else
+ #define GLAD_API_PTR
+#endif
+
+#ifndef GLAPI
+#define GLAPI GLAD_API_CALL
+#endif
+
+#ifndef GLAPIENTRY
+#define GLAPIENTRY GLAD_API_PTR
+#endif
+
+#define GLAD_MAKE_VERSION(major, minor) (major * 10000 + minor)
+#define GLAD_VERSION_MAJOR(version) (version / 10000)
+#define GLAD_VERSION_MINOR(version) (version % 10000)
+
+#define GLAD_GENERATOR_VERSION "2.0.8"
+
+typedef void (*GLADapiproc)(void);
+
+typedef GLADapiproc (*GLADloadfunc)(const char *name);
+typedef GLADapiproc (*GLADuserptrloadfunc)(void *userptr, const char *name);
+
+typedef void (*GLADprecallback)(const char *name, GLADapiproc apiproc, int len_args, ...);
+typedef void (*GLADpostcallback)(void *ret, const char *name, GLADapiproc apiproc, int len_args, ...);
+
+#endif /* GLAD_PLATFORM_H_ */
+
+#define EGL_ALPHA_FORMAT 0x3088
+#define EGL_ALPHA_FORMAT_NONPRE 0x308B
+#define EGL_ALPHA_FORMAT_PRE 0x308C
+#define EGL_ALPHA_MASK_SIZE 0x303E
+#define EGL_ALPHA_SIZE 0x3021
+#define EGL_BACK_BUFFER 0x3084
+#define EGL_BAD_ACCESS 0x3002
+#define EGL_BAD_ALLOC 0x3003
+#define EGL_BAD_ATTRIBUTE 0x3004
+#define EGL_BAD_CONFIG 0x3005
+#define EGL_BAD_CONTEXT 0x3006
+#define EGL_BAD_CURRENT_SURFACE 0x3007
+#define EGL_BAD_DISPLAY 0x3008
+#define EGL_BAD_MATCH 0x3009
+#define EGL_BAD_NATIVE_PIXMAP 0x300A
+#define EGL_BAD_NATIVE_WINDOW 0x300B
+#define EGL_BAD_PARAMETER 0x300C
+#define EGL_BAD_SURFACE 0x300D
+#define EGL_BIND_TO_TEXTURE_RGB 0x3039
+#define EGL_BIND_TO_TEXTURE_RGBA 0x303A
+#define EGL_BLUE_SIZE 0x3022
+#define EGL_BUFFER_DESTROYED 0x3095
+#define EGL_BUFFER_PRESERVED 0x3094
+#define EGL_BUFFER_SIZE 0x3020
+#define EGL_CLIENT_APIS 0x308D
+#define EGL_CL_EVENT_HANDLE 0x309C
+#define EGL_CL_EVENT_HANDLE_KHR 0x309C
+#define EGL_COLORSPACE 0x3087
+#define EGL_COLORSPACE_LINEAR 0x308A
+#define EGL_COLORSPACE_sRGB 0x3089
+#define EGL_COLOR_BUFFER_TYPE 0x303F
+#define EGL_CONDITION_SATISFIED 0x30F6
+#define EGL_CONDITION_SATISFIED_KHR 0x30F6
+#define EGL_CONFIG_CAVEAT 0x3027
+#define EGL_CONFIG_ID 0x3028
+#define EGL_CONFORMANT 0x3042
+#define EGL_CONTEXT_CLIENT_TYPE 0x3097
+#define EGL_CONTEXT_CLIENT_VERSION 0x3098
+#define EGL_CONTEXT_LOST 0x300E
+#define EGL_CONTEXT_MAJOR_VERSION 0x3098
+#define EGL_CONTEXT_MINOR_VERSION 0x30FB
+#define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT 0x00000002
+#define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT 0x00000001
+#define EGL_CONTEXT_OPENGL_DEBUG 0x31B0
+#define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE 0x31B1
+#define EGL_CONTEXT_OPENGL_PROFILE_MASK 0x30FD
+#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY 0x31BD
+#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS 0x31B2
+#define EGL_CORE_NATIVE_ENGINE 0x305B
+#define EGL_DEFAULT_DISPLAY EGL_CAST(EGLNativeDisplayType,0)
+#define EGL_DEPTH_SIZE 0x3025
+#define EGL_DISPLAY_SCALING 10000
+#define EGL_DMA_BUF_PLANE0_FD_EXT 0x3272
+#define EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT 0x3444
+#define EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT 0x3443
+#define EGL_DMA_BUF_PLANE0_OFFSET_EXT 0x3273
+#define EGL_DMA_BUF_PLANE0_PITCH_EXT 0x3274
+#define EGL_DMA_BUF_PLANE1_FD_EXT 0x3275
+#define EGL_DMA_BUF_PLANE1_MODIFIER_HI_EXT 0x3446
+#define EGL_DMA_BUF_PLANE1_MODIFIER_LO_EXT 0x3445
+#define EGL_DMA_BUF_PLANE1_OFFSET_EXT 0x3276
+#define EGL_DMA_BUF_PLANE1_PITCH_EXT 0x3277
+#define EGL_DMA_BUF_PLANE2_FD_EXT 0x3278
+#define EGL_DMA_BUF_PLANE2_MODIFIER_HI_EXT 0x3448
+#define EGL_DMA_BUF_PLANE2_MODIFIER_LO_EXT 0x3447
+#define EGL_DMA_BUF_PLANE2_OFFSET_EXT 0x3279
+#define EGL_DMA_BUF_PLANE2_PITCH_EXT 0x327A
+#define EGL_DMA_BUF_PLANE3_FD_EXT 0x3440
+#define EGL_DMA_BUF_PLANE3_MODIFIER_HI_EXT 0x344A
+#define EGL_DMA_BUF_PLANE3_MODIFIER_LO_EXT 0x3449
+#define EGL_DMA_BUF_PLANE3_OFFSET_EXT 0x3441
+#define EGL_DMA_BUF_PLANE3_PITCH_EXT 0x3442
+#define EGL_DONT_CARE EGL_CAST(EGLint,-1)
+#define EGL_DRAW 0x3059
+#define EGL_EXTENSIONS 0x3055
+#define EGL_FALSE 0
+#define EGL_FOREVER 0xFFFFFFFFFFFFFFFF
+#define EGL_FOREVER_KHR 0xFFFFFFFFFFFFFFFF
+#define EGL_GL_COLORSPACE 0x309D
+#define EGL_GL_COLORSPACE_LINEAR 0x308A
+#define EGL_GL_COLORSPACE_SRGB 0x3089
+#define EGL_GL_RENDERBUFFER 0x30B9
+#define EGL_GL_TEXTURE_2D 0x30B1
+#define EGL_GL_TEXTURE_3D 0x30B2
+#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x30B4
+#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x30B6
+#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x30B8
+#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x30B3
+#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x30B5
+#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x30B7
+#define EGL_GL_TEXTURE_LEVEL 0x30BC
+#define EGL_GL_TEXTURE_ZOFFSET 0x30BD
+#define EGL_GREEN_SIZE 0x3023
+#define EGL_HEIGHT 0x3056
+#define EGL_HORIZONTAL_RESOLUTION 0x3090
+#define EGL_IMAGE_PRESERVED 0x30D2
+#define EGL_IMAGE_PRESERVED_KHR 0x30D2
+#define EGL_ITU_REC2020_EXT 0x3281
+#define EGL_ITU_REC601_EXT 0x327F
+#define EGL_ITU_REC709_EXT 0x3280
+#define EGL_LARGEST_PBUFFER 0x3058
+#define EGL_LEVEL 0x3029
+#define EGL_LINUX_DMA_BUF_EXT 0x3270
+#define EGL_LINUX_DRM_FOURCC_EXT 0x3271
+#define EGL_LOSE_CONTEXT_ON_RESET 0x31BF
+#define EGL_LUMINANCE_BUFFER 0x308F
+#define EGL_LUMINANCE_SIZE 0x303D
+#define EGL_MATCH_NATIVE_PIXMAP 0x3041
+#define EGL_MAX_PBUFFER_HEIGHT 0x302A
+#define EGL_MAX_PBUFFER_PIXELS 0x302B
+#define EGL_MAX_PBUFFER_WIDTH 0x302C
+#define EGL_MAX_SWAP_INTERVAL 0x303C
+#define EGL_MIN_SWAP_INTERVAL 0x303B
+#define EGL_MIPMAP_LEVEL 0x3083
+#define EGL_MIPMAP_TEXTURE 0x3082
+#define EGL_MULTISAMPLE_RESOLVE 0x3099
+#define EGL_MULTISAMPLE_RESOLVE_BOX 0x309B
+#define EGL_MULTISAMPLE_RESOLVE_BOX_BIT 0x0200
+#define EGL_MULTISAMPLE_RESOLVE_DEFAULT 0x309A
+#define EGL_NATIVE_PIXMAP_KHR 0x30B0
+#define EGL_NATIVE_RENDERABLE 0x302D
+#define EGL_NATIVE_VISUAL_ID 0x302E
+#define EGL_NATIVE_VISUAL_TYPE 0x302F
+#define EGL_NONE 0x3038
+#define EGL_NON_CONFORMANT_CONFIG 0x3051
+#define EGL_NOT_INITIALIZED 0x3001
+#define EGL_NO_CONTEXT EGL_CAST(EGLContext,0)
+#define EGL_NO_DISPLAY EGL_CAST(EGLDisplay,0)
+#define EGL_NO_IMAGE EGL_CAST(EGLImage,0)
+#define EGL_NO_IMAGE_KHR EGL_CAST(EGLImageKHR,0)
+#define EGL_NO_RESET_NOTIFICATION 0x31BE
+#define EGL_NO_SURFACE EGL_CAST(EGLSurface,0)
+#define EGL_NO_SYNC EGL_CAST(EGLSync,0)
+#define EGL_NO_SYNC_KHR EGL_CAST(EGLSync,0)
+#define EGL_NO_TEXTURE 0x305C
+#define EGL_OPENGL_API 0x30A2
+#define EGL_OPENGL_BIT 0x0008
+#define EGL_OPENGL_ES2_BIT 0x0004
+#define EGL_OPENGL_ES3_BIT 0x00000040
+#define EGL_OPENGL_ES_API 0x30A0
+#define EGL_OPENGL_ES_BIT 0x0001
+#define EGL_OPENVG_API 0x30A1
+#define EGL_OPENVG_BIT 0x0002
+#define EGL_OPENVG_IMAGE 0x3096
+#define EGL_PBUFFER_BIT 0x0001
+#define EGL_PIXEL_ASPECT_RATIO 0x3092
+#define EGL_PIXMAP_BIT 0x0002
+#define EGL_PLATFORM_GBM_KHR 0x31D7
+#define EGL_PLATFORM_WAYLAND_EXT 0x31D8
+#define EGL_PLATFORM_WAYLAND_KHR 0x31D8
+#define EGL_READ 0x305A
+#define EGL_RED_SIZE 0x3024
+#define EGL_RENDERABLE_TYPE 0x3040
+#define EGL_RENDER_BUFFER 0x3086
+#define EGL_RGB_BUFFER 0x308E
+#define EGL_SAMPLES 0x3031
+#define EGL_SAMPLE_BUFFERS 0x3032
+#define EGL_SAMPLE_RANGE_HINT_EXT 0x327C
+#define EGL_SIGNALED 0x30F2
+#define EGL_SIGNALED_KHR 0x30F2
+#define EGL_SINGLE_BUFFER 0x3085
+#define EGL_SLOW_CONFIG 0x3050
+#define EGL_STENCIL_SIZE 0x3026
+#define EGL_SUCCESS 0x3000
+#define EGL_SURFACE_TYPE 0x3033
+#define EGL_SWAP_BEHAVIOR 0x3093
+#define EGL_SWAP_BEHAVIOR_PRESERVED_BIT 0x0400
+#define EGL_SYNC_CL_EVENT 0x30FE
+#define EGL_SYNC_CL_EVENT_COMPLETE 0x30FF
+#define EGL_SYNC_CL_EVENT_COMPLETE_KHR 0x30FF
+#define EGL_SYNC_CL_EVENT_KHR 0x30FE
+#define EGL_SYNC_CONDITION 0x30F8
+#define EGL_SYNC_CONDITION_KHR 0x30F8
+#define EGL_SYNC_FENCE 0x30F9
+#define EGL_SYNC_FENCE_KHR 0x30F9
+#define EGL_SYNC_FLUSH_COMMANDS_BIT 0x0001
+#define EGL_SYNC_FLUSH_COMMANDS_BIT_KHR 0x0001
+#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE 0x30F0
+#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR 0x30F0
+#define EGL_SYNC_REUSABLE_KHR 0x30FA
+#define EGL_SYNC_STATUS 0x30F1
+#define EGL_SYNC_STATUS_KHR 0x30F1
+#define EGL_SYNC_TYPE 0x30F7
+#define EGL_SYNC_TYPE_KHR 0x30F7
+#define EGL_TEXTURE_2D 0x305F
+#define EGL_TEXTURE_FORMAT 0x3080
+#define EGL_TEXTURE_RGB 0x305D
+#define EGL_TEXTURE_RGBA 0x305E
+#define EGL_TEXTURE_TARGET 0x3081
+#define EGL_TIMEOUT_EXPIRED 0x30F5
+#define EGL_TIMEOUT_EXPIRED_KHR 0x30F5
+#define EGL_TRANSPARENT_BLUE_VALUE 0x3035
+#define EGL_TRANSPARENT_GREEN_VALUE 0x3036
+#define EGL_TRANSPARENT_RED_VALUE 0x3037
+#define EGL_TRANSPARENT_RGB 0x3052
+#define EGL_TRANSPARENT_TYPE 0x3034
+#define EGL_TRUE 1
+#define EGL_UNKNOWN EGL_CAST(EGLint,-1)
+#define EGL_UNSIGNALED 0x30F3
+#define EGL_UNSIGNALED_KHR 0x30F3
+#define EGL_VENDOR 0x3053
+#define EGL_VERSION 0x3054
+#define EGL_VERTICAL_RESOLUTION 0x3091
+#define EGL_VG_ALPHA_FORMAT 0x3088
+#define EGL_VG_ALPHA_FORMAT_NONPRE 0x308B
+#define EGL_VG_ALPHA_FORMAT_PRE 0x308C
+#define EGL_VG_ALPHA_FORMAT_PRE_BIT 0x0040
+#define EGL_VG_COLORSPACE 0x3087
+#define EGL_VG_COLORSPACE_LINEAR 0x308A
+#define EGL_VG_COLORSPACE_LINEAR_BIT 0x0020
+#define EGL_VG_COLORSPACE_sRGB 0x3089
+#define EGL_WIDTH 0x3057
+#define EGL_WINDOW_BIT 0x0004
+#define EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT 0x327D
+#define EGL_YUV_CHROMA_SITING_0_5_EXT 0x3285
+#define EGL_YUV_CHROMA_SITING_0_EXT 0x3284
+#define EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT 0x327E
+#define EGL_YUV_COLOR_SPACE_HINT_EXT 0x327B
+#define EGL_YUV_FULL_RANGE_EXT 0x3282
+#define EGL_YUV_NARROW_RANGE_EXT 0x3283
+
+
+#include
+#include
+
+
+
+
+
+
+
+
+
+
+
+struct AHardwareBuffer;
+struct wl_buffer;
+struct wl_display;
+struct wl_resource;
+
+typedef unsigned int EGLBoolean;
+typedef unsigned int EGLenum;
+typedef intptr_t EGLAttribKHR;
+typedef intptr_t EGLAttrib;
+typedef void *EGLClientBuffer;
+typedef void *EGLConfig;
+typedef void *EGLContext;
+typedef void *EGLDeviceEXT;
+typedef void *EGLDisplay;
+typedef void *EGLImage;
+typedef void *EGLImageKHR;
+typedef void *EGLLabelKHR;
+typedef void *EGLObjectKHR;
+typedef void *EGLOutputLayerEXT;
+typedef void *EGLOutputPortEXT;
+typedef void *EGLStreamKHR;
+typedef void *EGLSurface;
+typedef void *EGLSync;
+typedef void *EGLSyncKHR;
+typedef void *EGLSyncNV;
+typedef void (*__eglMustCastToProperFunctionPointerType)(void);
+typedef khronos_utime_nanoseconds_t EGLTimeKHR;
+typedef khronos_utime_nanoseconds_t EGLTime;
+typedef khronos_utime_nanoseconds_t EGLTimeNV;
+typedef khronos_utime_nanoseconds_t EGLuint64NV;
+typedef khronos_uint64_t EGLuint64KHR;
+typedef khronos_stime_nanoseconds_t EGLnsecsANDROID;
+typedef int EGLNativeFileDescriptorKHR;
+typedef khronos_ssize_t EGLsizeiANDROID;
+typedef void (*EGLSetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, const void *value, EGLsizeiANDROID valueSize);
+typedef EGLsizeiANDROID (*EGLGetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, void *value, EGLsizeiANDROID valueSize);
+struct EGLClientPixmapHI {
+ void *pData;
+ EGLint iWidth;
+ EGLint iHeight;
+ EGLint iStride;
+};
+typedef void (GLAD_API_PTR *EGLDEBUGPROCKHR)(EGLenum error,const char *command,EGLint messageType,EGLLabelKHR threadLabel,EGLLabelKHR objectLabel,const char* message);
+#define PFNEGLBINDWAYLANDDISPLAYWL PFNEGLBINDWAYLANDDISPLAYWLPROC
+#define PFNEGLUNBINDWAYLANDDISPLAYWL PFNEGLUNBINDWAYLANDDISPLAYWLPROC
+#define PFNEGLQUERYWAYLANDBUFFERWL PFNEGLQUERYWAYLANDBUFFERWLPROC
+#define PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWL PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWLPROC
+
+
+#define EGL_VERSION_1_0 1
+GLAD_API_CALL int GLAD_EGL_VERSION_1_0;
+#define EGL_VERSION_1_1 1
+GLAD_API_CALL int GLAD_EGL_VERSION_1_1;
+#define EGL_VERSION_1_2 1
+GLAD_API_CALL int GLAD_EGL_VERSION_1_2;
+#define EGL_VERSION_1_3 1
+GLAD_API_CALL int GLAD_EGL_VERSION_1_3;
+#define EGL_VERSION_1_4 1
+GLAD_API_CALL int GLAD_EGL_VERSION_1_4;
+#define EGL_VERSION_1_5 1
+GLAD_API_CALL int GLAD_EGL_VERSION_1_5;
+#define EGL_EXT_image_dma_buf_import 1
+GLAD_API_CALL int GLAD_EGL_EXT_image_dma_buf_import;
+#define EGL_EXT_image_dma_buf_import_modifiers 1
+GLAD_API_CALL int GLAD_EGL_EXT_image_dma_buf_import_modifiers;
+#define EGL_EXT_platform_base 1
+GLAD_API_CALL int GLAD_EGL_EXT_platform_base;
+#define EGL_EXT_platform_wayland 1
+GLAD_API_CALL int GLAD_EGL_EXT_platform_wayland;
+#define EGL_KHR_cl_event2 1
+GLAD_API_CALL int GLAD_EGL_KHR_cl_event2;
+#define EGL_KHR_fence_sync 1
+GLAD_API_CALL int GLAD_EGL_KHR_fence_sync;
+#define EGL_KHR_image 1
+GLAD_API_CALL int GLAD_EGL_KHR_image;
+#define EGL_KHR_image_base 1
+GLAD_API_CALL int GLAD_EGL_KHR_image_base;
+#define EGL_KHR_platform_gbm 1
+GLAD_API_CALL int GLAD_EGL_KHR_platform_gbm;
+#define EGL_KHR_platform_wayland 1
+GLAD_API_CALL int GLAD_EGL_KHR_platform_wayland;
+#define EGL_KHR_reusable_sync 1
+GLAD_API_CALL int GLAD_EGL_KHR_reusable_sync;
+
+
+typedef EGLBoolean (GLAD_API_PTR *PFNEGLBINDAPIPROC)(EGLenum api);
+typedef EGLBoolean (GLAD_API_PTR *PFNEGLBINDTEXIMAGEPROC)(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
+typedef EGLBoolean (GLAD_API_PTR *PFNEGLCHOOSECONFIGPROC)(EGLDisplay dpy, const EGLint * attrib_list, EGLConfig * configs, EGLint config_size, EGLint * num_config);
+typedef EGLint (GLAD_API_PTR *PFNEGLCLIENTWAITSYNCPROC)(EGLDisplay dpy, EGLSync sync, EGLint flags, EGLTime timeout);
+typedef EGLint (GLAD_API_PTR *PFNEGLCLIENTWAITSYNCKHRPROC)(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
+typedef EGLBoolean (GLAD_API_PTR *PFNEGLCOPYBUFFERSPROC)(EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target);
+typedef EGLContext (GLAD_API_PTR *PFNEGLCREATECONTEXTPROC)(EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint * attrib_list);
+typedef EGLImage (GLAD_API_PTR *PFNEGLCREATEIMAGEPROC)(EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLAttrib * attrib_list);
+typedef EGLImageKHR (GLAD_API_PTR *PFNEGLCREATEIMAGEKHRPROC)(EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint * attrib_list);
+typedef EGLSurface (GLAD_API_PTR *PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC)(EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint * attrib_list);
+typedef EGLSurface (GLAD_API_PTR *PFNEGLCREATEPBUFFERSURFACEPROC)(EGLDisplay dpy, EGLConfig config, const EGLint * attrib_list);
+typedef EGLSurface (GLAD_API_PTR *PFNEGLCREATEPIXMAPSURFACEPROC)(EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint * attrib_list);
+typedef EGLSurface (GLAD_API_PTR *PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC)(EGLDisplay dpy, EGLConfig config, void * native_pixmap, const EGLAttrib * attrib_list);
+typedef EGLSurface (GLAD_API_PTR *PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC)(EGLDisplay dpy, EGLConfig config, void * native_pixmap, const EGLint * attrib_list);
+typedef EGLSurface (GLAD_API_PTR *PFNEGLCREATEPLATFORMWINDOWSURFACEPROC)(EGLDisplay dpy, EGLConfig config, void * native_window, const EGLAttrib * attrib_list);
+typedef EGLSurface (GLAD_API_PTR *PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC)(EGLDisplay dpy, EGLConfig config, void * native_window, const EGLint * attrib_list);
+typedef EGLSync (GLAD_API_PTR *PFNEGLCREATESYNCPROC)(EGLDisplay dpy, EGLenum type, const EGLAttrib * attrib_list);
+typedef EGLSyncKHR (GLAD_API_PTR *PFNEGLCREATESYNC64KHRPROC)(EGLDisplay dpy, EGLenum type, const EGLAttribKHR * attrib_list);
+typedef EGLSyncKHR (GLAD_API_PTR *PFNEGLCREATESYNCKHRPROC)(EGLDisplay dpy, EGLenum type, const EGLint * attrib_list);
+typedef EGLSurface (GLAD_API_PTR *PFNEGLCREATEWINDOWSURFACEPROC)(EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint * attrib_list);
+typedef EGLBoolean (GLAD_API_PTR *PFNEGLDESTROYCONTEXTPROC)(EGLDisplay dpy, EGLContext ctx);
+typedef EGLBoolean (GLAD_API_PTR *PFNEGLDESTROYIMAGEPROC)(EGLDisplay dpy, EGLImage image);
+typedef EGLBoolean (GLAD_API_PTR *PFNEGLDESTROYIMAGEKHRPROC)(EGLDisplay dpy, EGLImageKHR image);
+typedef EGLBoolean (GLAD_API_PTR *PFNEGLDESTROYSURFACEPROC)(EGLDisplay dpy, EGLSurface surface);
+typedef EGLBoolean (GLAD_API_PTR *PFNEGLDESTROYSYNCPROC)(EGLDisplay dpy, EGLSync sync);
+typedef EGLBoolean (GLAD_API_PTR *PFNEGLDESTROYSYNCKHRPROC)(EGLDisplay dpy, EGLSyncKHR sync);
+typedef EGLBoolean (GLAD_API_PTR *PFNEGLGETCONFIGATTRIBPROC)(EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint * value);
+typedef EGLBoolean (GLAD_API_PTR *PFNEGLGETCONFIGSPROC)(EGLDisplay dpy, EGLConfig * configs, EGLint config_size, EGLint * num_config);
+typedef EGLContext (GLAD_API_PTR *PFNEGLGETCURRENTCONTEXTPROC)(void);
+typedef EGLDisplay (GLAD_API_PTR *PFNEGLGETCURRENTDISPLAYPROC)(void);
+typedef EGLSurface (GLAD_API_PTR *PFNEGLGETCURRENTSURFACEPROC)(EGLint readdraw);
+typedef EGLDisplay (GLAD_API_PTR *PFNEGLGETDISPLAYPROC)(EGLNativeDisplayType display_id);
+typedef EGLint (GLAD_API_PTR *PFNEGLGETERRORPROC)(void);
+typedef EGLDisplay (GLAD_API_PTR *PFNEGLGETPLATFORMDISPLAYPROC)(EGLenum platform, void * native_display, const EGLAttrib * attrib_list);
+typedef EGLDisplay (GLAD_API_PTR *PFNEGLGETPLATFORMDISPLAYEXTPROC)(EGLenum platform, void * native_display, const EGLint * attrib_list);
+typedef __eglMustCastToProperFunctionPointerType (GLAD_API_PTR *PFNEGLGETPROCADDRESSPROC)(const char * procname);
+typedef EGLBoolean (GLAD_API_PTR *PFNEGLGETSYNCATTRIBPROC)(EGLDisplay dpy, EGLSync sync, EGLint attribute, EGLAttrib * value);
+typedef EGLBoolean (GLAD_API_PTR *PFNEGLGETSYNCATTRIBKHRPROC)(EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint * value);
+typedef EGLBoolean (GLAD_API_PTR *PFNEGLINITIALIZEPROC)(EGLDisplay dpy, EGLint * major, EGLint * minor);
+typedef EGLBoolean (GLAD_API_PTR *PFNEGLMAKECURRENTPROC)(EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx);
+typedef EGLenum (GLAD_API_PTR *PFNEGLQUERYAPIPROC)(void);
+typedef EGLBoolean (GLAD_API_PTR *PFNEGLQUERYCONTEXTPROC)(EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint * value);
+typedef EGLBoolean (GLAD_API_PTR *PFNEGLQUERYDMABUFFORMATSEXTPROC)(EGLDisplay dpy, EGLint max_formats, EGLint * formats, EGLint * num_formats);
+typedef EGLBoolean (GLAD_API_PTR *PFNEGLQUERYDMABUFMODIFIERSEXTPROC)(EGLDisplay dpy, EGLint format, EGLint max_modifiers, EGLuint64KHR * modifiers, EGLBoolean * external_only, EGLint * num_modifiers);
+typedef const char * (GLAD_API_PTR *PFNEGLQUERYSTRINGPROC)(EGLDisplay dpy, EGLint name);
+typedef EGLBoolean (GLAD_API_PTR *PFNEGLQUERYSURFACEPROC)(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint * value);
+typedef EGLBoolean (GLAD_API_PTR *PFNEGLRELEASETEXIMAGEPROC)(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
+typedef EGLBoolean (GLAD_API_PTR *PFNEGLRELEASETHREADPROC)(void);
+typedef EGLBoolean (GLAD_API_PTR *PFNEGLSIGNALSYNCKHRPROC)(EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode);
+typedef EGLBoolean (GLAD_API_PTR *PFNEGLSURFACEATTRIBPROC)(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value);
+typedef EGLBoolean (GLAD_API_PTR *PFNEGLSWAPBUFFERSPROC)(EGLDisplay dpy, EGLSurface surface);
+typedef EGLBoolean (GLAD_API_PTR *PFNEGLSWAPINTERVALPROC)(EGLDisplay dpy, EGLint interval);
+typedef EGLBoolean (GLAD_API_PTR *PFNEGLTERMINATEPROC)(EGLDisplay dpy);
+typedef EGLBoolean (GLAD_API_PTR *PFNEGLWAITCLIENTPROC)(void);
+typedef EGLBoolean (GLAD_API_PTR *PFNEGLWAITGLPROC)(void);
+typedef EGLBoolean (GLAD_API_PTR *PFNEGLWAITNATIVEPROC)(EGLint engine);
+typedef EGLBoolean (GLAD_API_PTR *PFNEGLWAITSYNCPROC)(EGLDisplay dpy, EGLSync sync, EGLint flags);
+
+GLAD_API_CALL PFNEGLBINDAPIPROC glad_eglBindAPI;
+#define eglBindAPI glad_eglBindAPI
+GLAD_API_CALL PFNEGLBINDTEXIMAGEPROC glad_eglBindTexImage;
+#define eglBindTexImage glad_eglBindTexImage
+GLAD_API_CALL PFNEGLCHOOSECONFIGPROC glad_eglChooseConfig;
+#define eglChooseConfig glad_eglChooseConfig
+GLAD_API_CALL PFNEGLCLIENTWAITSYNCPROC glad_eglClientWaitSync;
+#define eglClientWaitSync glad_eglClientWaitSync
+GLAD_API_CALL PFNEGLCLIENTWAITSYNCKHRPROC glad_eglClientWaitSyncKHR;
+#define eglClientWaitSyncKHR glad_eglClientWaitSyncKHR
+GLAD_API_CALL PFNEGLCOPYBUFFERSPROC glad_eglCopyBuffers;
+#define eglCopyBuffers glad_eglCopyBuffers
+GLAD_API_CALL PFNEGLCREATECONTEXTPROC glad_eglCreateContext;
+#define eglCreateContext glad_eglCreateContext
+GLAD_API_CALL PFNEGLCREATEIMAGEPROC glad_eglCreateImage;
+#define eglCreateImage glad_eglCreateImage
+GLAD_API_CALL PFNEGLCREATEIMAGEKHRPROC glad_eglCreateImageKHR;
+#define eglCreateImageKHR glad_eglCreateImageKHR
+GLAD_API_CALL PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC glad_eglCreatePbufferFromClientBuffer;
+#define eglCreatePbufferFromClientBuffer glad_eglCreatePbufferFromClientBuffer
+GLAD_API_CALL PFNEGLCREATEPBUFFERSURFACEPROC glad_eglCreatePbufferSurface;
+#define eglCreatePbufferSurface glad_eglCreatePbufferSurface
+GLAD_API_CALL PFNEGLCREATEPIXMAPSURFACEPROC glad_eglCreatePixmapSurface;
+#define eglCreatePixmapSurface glad_eglCreatePixmapSurface
+GLAD_API_CALL PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC glad_eglCreatePlatformPixmapSurface;
+#define eglCreatePlatformPixmapSurface glad_eglCreatePlatformPixmapSurface
+GLAD_API_CALL PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC glad_eglCreatePlatformPixmapSurfaceEXT;
+#define eglCreatePlatformPixmapSurfaceEXT glad_eglCreatePlatformPixmapSurfaceEXT
+GLAD_API_CALL PFNEGLCREATEPLATFORMWINDOWSURFACEPROC glad_eglCreatePlatformWindowSurface;
+#define eglCreatePlatformWindowSurface glad_eglCreatePlatformWindowSurface
+GLAD_API_CALL PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC glad_eglCreatePlatformWindowSurfaceEXT;
+#define eglCreatePlatformWindowSurfaceEXT glad_eglCreatePlatformWindowSurfaceEXT
+GLAD_API_CALL PFNEGLCREATESYNCPROC glad_eglCreateSync;
+#define eglCreateSync glad_eglCreateSync
+GLAD_API_CALL PFNEGLCREATESYNC64KHRPROC glad_eglCreateSync64KHR;
+#define eglCreateSync64KHR glad_eglCreateSync64KHR
+GLAD_API_CALL PFNEGLCREATESYNCKHRPROC glad_eglCreateSyncKHR;
+#define eglCreateSyncKHR glad_eglCreateSyncKHR
+GLAD_API_CALL PFNEGLCREATEWINDOWSURFACEPROC glad_eglCreateWindowSurface;
+#define eglCreateWindowSurface glad_eglCreateWindowSurface
+GLAD_API_CALL PFNEGLDESTROYCONTEXTPROC glad_eglDestroyContext;
+#define eglDestroyContext glad_eglDestroyContext
+GLAD_API_CALL PFNEGLDESTROYIMAGEPROC glad_eglDestroyImage;
+#define eglDestroyImage glad_eglDestroyImage
+GLAD_API_CALL PFNEGLDESTROYIMAGEKHRPROC glad_eglDestroyImageKHR;
+#define eglDestroyImageKHR glad_eglDestroyImageKHR
+GLAD_API_CALL PFNEGLDESTROYSURFACEPROC glad_eglDestroySurface;
+#define eglDestroySurface glad_eglDestroySurface
+GLAD_API_CALL PFNEGLDESTROYSYNCPROC glad_eglDestroySync;
+#define eglDestroySync glad_eglDestroySync
+GLAD_API_CALL PFNEGLDESTROYSYNCKHRPROC glad_eglDestroySyncKHR;
+#define eglDestroySyncKHR glad_eglDestroySyncKHR
+GLAD_API_CALL PFNEGLGETCONFIGATTRIBPROC glad_eglGetConfigAttrib;
+#define eglGetConfigAttrib glad_eglGetConfigAttrib
+GLAD_API_CALL PFNEGLGETCONFIGSPROC glad_eglGetConfigs;
+#define eglGetConfigs glad_eglGetConfigs
+GLAD_API_CALL PFNEGLGETCURRENTCONTEXTPROC glad_eglGetCurrentContext;
+#define eglGetCurrentContext glad_eglGetCurrentContext
+GLAD_API_CALL PFNEGLGETCURRENTDISPLAYPROC glad_eglGetCurrentDisplay;
+#define eglGetCurrentDisplay glad_eglGetCurrentDisplay
+GLAD_API_CALL PFNEGLGETCURRENTSURFACEPROC glad_eglGetCurrentSurface;
+#define eglGetCurrentSurface glad_eglGetCurrentSurface
+GLAD_API_CALL PFNEGLGETDISPLAYPROC glad_eglGetDisplay;
+#define eglGetDisplay glad_eglGetDisplay
+GLAD_API_CALL PFNEGLGETERRORPROC glad_eglGetError;
+#define eglGetError glad_eglGetError
+GLAD_API_CALL PFNEGLGETPLATFORMDISPLAYPROC glad_eglGetPlatformDisplay;
+#define eglGetPlatformDisplay glad_eglGetPlatformDisplay
+GLAD_API_CALL PFNEGLGETPLATFORMDISPLAYEXTPROC glad_eglGetPlatformDisplayEXT;
+#define eglGetPlatformDisplayEXT glad_eglGetPlatformDisplayEXT
+GLAD_API_CALL PFNEGLGETPROCADDRESSPROC glad_eglGetProcAddress;
+#define eglGetProcAddress glad_eglGetProcAddress
+GLAD_API_CALL PFNEGLGETSYNCATTRIBPROC glad_eglGetSyncAttrib;
+#define eglGetSyncAttrib glad_eglGetSyncAttrib
+GLAD_API_CALL PFNEGLGETSYNCATTRIBKHRPROC glad_eglGetSyncAttribKHR;
+#define eglGetSyncAttribKHR glad_eglGetSyncAttribKHR
+GLAD_API_CALL PFNEGLINITIALIZEPROC glad_eglInitialize;
+#define eglInitialize glad_eglInitialize
+GLAD_API_CALL PFNEGLMAKECURRENTPROC glad_eglMakeCurrent;
+#define eglMakeCurrent glad_eglMakeCurrent
+GLAD_API_CALL PFNEGLQUERYAPIPROC glad_eglQueryAPI;
+#define eglQueryAPI glad_eglQueryAPI
+GLAD_API_CALL PFNEGLQUERYCONTEXTPROC glad_eglQueryContext;
+#define eglQueryContext glad_eglQueryContext
+GLAD_API_CALL PFNEGLQUERYDMABUFFORMATSEXTPROC glad_eglQueryDmaBufFormatsEXT;
+#define eglQueryDmaBufFormatsEXT glad_eglQueryDmaBufFormatsEXT
+GLAD_API_CALL PFNEGLQUERYDMABUFMODIFIERSEXTPROC glad_eglQueryDmaBufModifiersEXT;
+#define eglQueryDmaBufModifiersEXT glad_eglQueryDmaBufModifiersEXT
+GLAD_API_CALL PFNEGLQUERYSTRINGPROC glad_eglQueryString;
+#define eglQueryString glad_eglQueryString
+GLAD_API_CALL PFNEGLQUERYSURFACEPROC glad_eglQuerySurface;
+#define eglQuerySurface glad_eglQuerySurface
+GLAD_API_CALL PFNEGLRELEASETEXIMAGEPROC glad_eglReleaseTexImage;
+#define eglReleaseTexImage glad_eglReleaseTexImage
+GLAD_API_CALL PFNEGLRELEASETHREADPROC glad_eglReleaseThread;
+#define eglReleaseThread glad_eglReleaseThread
+GLAD_API_CALL PFNEGLSIGNALSYNCKHRPROC glad_eglSignalSyncKHR;
+#define eglSignalSyncKHR glad_eglSignalSyncKHR
+GLAD_API_CALL PFNEGLSURFACEATTRIBPROC glad_eglSurfaceAttrib;
+#define eglSurfaceAttrib glad_eglSurfaceAttrib
+GLAD_API_CALL PFNEGLSWAPBUFFERSPROC glad_eglSwapBuffers;
+#define eglSwapBuffers glad_eglSwapBuffers
+GLAD_API_CALL PFNEGLSWAPINTERVALPROC glad_eglSwapInterval;
+#define eglSwapInterval glad_eglSwapInterval
+GLAD_API_CALL PFNEGLTERMINATEPROC glad_eglTerminate;
+#define eglTerminate glad_eglTerminate
+GLAD_API_CALL PFNEGLWAITCLIENTPROC glad_eglWaitClient;
+#define eglWaitClient glad_eglWaitClient
+GLAD_API_CALL PFNEGLWAITGLPROC glad_eglWaitGL;
+#define eglWaitGL glad_eglWaitGL
+GLAD_API_CALL PFNEGLWAITNATIVEPROC glad_eglWaitNative;
+#define eglWaitNative glad_eglWaitNative
+GLAD_API_CALL PFNEGLWAITSYNCPROC glad_eglWaitSync;
+#define eglWaitSync glad_eglWaitSync
+
+
+
+
+
+GLAD_API_CALL int gladLoadEGLUserPtr(EGLDisplay display, GLADuserptrloadfunc load, void *userptr);
+GLAD_API_CALL int gladLoadEGL(EGLDisplay display, GLADloadfunc load);
+
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*LV_USE_EGL*/
+
+#endif
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/opengles/glad/include/glad/gles2.h b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/glad/include/glad/gles2.h
new file mode 100644
index 000000000..8738be8b4
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/glad/include/glad/gles2.h
@@ -0,0 +1,1111 @@
+/**
+ * Loader generated by glad 2.0.8 on Tue Sep 30 16:40:43 2025
+ *
+ * SPDX-License-Identifier: (WTFPL OR CC0-1.0) AND Apache-2.0
+ *
+ * Generator: C/C++
+ * Specification: gl
+ * Extensions: 14
+ *
+ * APIs:
+ * - gles2=2.0
+ *
+ * Options:
+ * - ALIAS = True
+ * - DEBUG = False
+ * - HEADER_ONLY = False
+ * - LOADER = False
+ * - MX = False
+ * - ON_DEMAND = False
+ *
+ * Commandline:
+ * --api='gles2=2.0' --extensions='GL_APPLE_texture_max_level,GL_ARM_rgba8,GL_EXT_color_buffer_float,GL_EXT_color_buffer_half_float,GL_EXT_texture_format_BGRA8888,GL_EXT_texture_storage,GL_EXT_unpack_subimage,GL_OES_depth24,GL_OES_mapbuffer,GL_OES_rgb8_rgba8,GL_OES_texture_float,GL_OES_texture_half_float,GL_OES_texture_storage_multisample_2d_array,GL_OES_vertex_array_object' c --alias
+ *
+ * Online:
+ * http://glad.sh/#api=gles2%3D2.0&extensions=GL_APPLE_texture_max_level%2CGL_ARM_rgba8%2CGL_EXT_color_buffer_float%2CGL_EXT_color_buffer_half_float%2CGL_EXT_texture_format_BGRA8888%2CGL_EXT_texture_storage%2CGL_EXT_unpack_subimage%2CGL_OES_depth24%2CGL_OES_mapbuffer%2CGL_OES_rgb8_rgba8%2CGL_OES_texture_float%2CGL_OES_texture_half_float%2CGL_OES_texture_storage_multisample_2d_array%2CGL_OES_vertex_array_object&generator=c&options=ALIAS
+ *
+ */
+
+#ifndef GLAD_GLES2_H_
+#define GLAD_GLES2_H_
+
+#include "../../../lv_opengles_egl.h"
+
+#if LV_USE_EGL
+
+#ifdef __clang__
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wreserved-id-macro"
+#endif
+#ifdef __gl2_h_
+ #error OpenGL ES 2 header already included (API: gles2), remove previous include!
+#endif
+#define __gl2_h_ 1
+#ifdef __gles2_gl2_h_
+ #error OpenGL ES 2 header already included (API: gles2), remove previous include!
+#endif
+#define __gles2_gl2_h_ 1
+#ifdef __gl3_h_
+ #error OpenGL ES 3 header already included (API: gles2), remove previous include!
+#endif
+#define __gl3_h_ 1
+#ifdef __gles2_gl3_h_
+ #error OpenGL ES 3 header already included (API: gles2), remove previous include!
+#endif
+#define __gles2_gl3_h_ 1
+#ifdef __clang__
+#pragma clang diagnostic pop
+#endif
+
+#define GLAD_GLES2
+#define GLAD_OPTION_GLES2_ALIAS
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef GLAD_PLATFORM_H_
+#define GLAD_PLATFORM_H_
+
+#ifndef GLAD_PLATFORM_WIN32
+ #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__MINGW32__)
+ #define GLAD_PLATFORM_WIN32 1
+ #else
+ #define GLAD_PLATFORM_WIN32 0
+ #endif
+#endif
+
+#ifndef GLAD_PLATFORM_APPLE
+ #ifdef __APPLE__
+ #define GLAD_PLATFORM_APPLE 1
+ #else
+ #define GLAD_PLATFORM_APPLE 0
+ #endif
+#endif
+
+#ifndef GLAD_PLATFORM_EMSCRIPTEN
+ #ifdef __EMSCRIPTEN__
+ #define GLAD_PLATFORM_EMSCRIPTEN 1
+ #else
+ #define GLAD_PLATFORM_EMSCRIPTEN 0
+ #endif
+#endif
+
+#ifndef GLAD_PLATFORM_UWP
+ #if defined(_MSC_VER) && !defined(GLAD_INTERNAL_HAVE_WINAPIFAMILY)
+ #ifdef __has_include
+ #if __has_include()
+ #define GLAD_INTERNAL_HAVE_WINAPIFAMILY 1
+ #endif
+ #elif _MSC_VER >= 1700 && !_USING_V110_SDK71_
+ #define GLAD_INTERNAL_HAVE_WINAPIFAMILY 1
+ #endif
+ #endif
+
+ #ifdef GLAD_INTERNAL_HAVE_WINAPIFAMILY
+ #include
+ #if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
+ #define GLAD_PLATFORM_UWP 1
+ #endif
+ #endif
+
+ #ifndef GLAD_PLATFORM_UWP
+ #define GLAD_PLATFORM_UWP 0
+ #endif
+#endif
+
+#ifdef __GNUC__
+ #define GLAD_GNUC_EXTENSION __extension__
+#else
+ #define GLAD_GNUC_EXTENSION
+#endif
+
+#define GLAD_UNUSED(x) (void)(x)
+
+#ifndef GLAD_API_CALL
+ #if defined(GLAD_API_CALL_EXPORT)
+ #if GLAD_PLATFORM_WIN32 || defined(__CYGWIN__)
+ #if defined(GLAD_API_CALL_EXPORT_BUILD)
+ #if defined(__GNUC__)
+ #define GLAD_API_CALL __attribute__ ((dllexport)) extern
+ #else
+ #define GLAD_API_CALL __declspec(dllexport) extern
+ #endif
+ #else
+ #if defined(__GNUC__)
+ #define GLAD_API_CALL __attribute__ ((dllimport)) extern
+ #else
+ #define GLAD_API_CALL __declspec(dllimport) extern
+ #endif
+ #endif
+ #elif defined(__GNUC__) && defined(GLAD_API_CALL_EXPORT_BUILD)
+ #define GLAD_API_CALL __attribute__ ((visibility ("default"))) extern
+ #else
+ #define GLAD_API_CALL extern
+ #endif
+ #else
+ #define GLAD_API_CALL extern
+ #endif
+#endif
+
+#ifdef APIENTRY
+ #define GLAD_API_PTR APIENTRY
+#elif GLAD_PLATFORM_WIN32
+ #define GLAD_API_PTR __stdcall
+#else
+ #define GLAD_API_PTR
+#endif
+
+#ifndef GLAPI
+#define GLAPI GLAD_API_CALL
+#endif
+
+#ifndef GLAPIENTRY
+#define GLAPIENTRY GLAD_API_PTR
+#endif
+
+#define GLAD_MAKE_VERSION(major, minor) (major * 10000 + minor)
+#define GLAD_VERSION_MAJOR(version) (version / 10000)
+#define GLAD_VERSION_MINOR(version) (version % 10000)
+
+#define GLAD_GENERATOR_VERSION "2.0.8"
+
+typedef void (*GLADapiproc)(void);
+
+typedef GLADapiproc (*GLADloadfunc)(const char *name);
+typedef GLADapiproc (*GLADuserptrloadfunc)(void *userptr, const char *name);
+
+typedef void (*GLADprecallback)(const char *name, GLADapiproc apiproc, int len_args, ...);
+typedef void (*GLADpostcallback)(void *ret, const char *name, GLADapiproc apiproc, int len_args, ...);
+
+#endif /* GLAD_PLATFORM_H_ */
+
+#define GL_ACTIVE_ATTRIBUTES 0x8B89
+#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A
+#define GL_ACTIVE_TEXTURE 0x84E0
+#define GL_ACTIVE_UNIFORMS 0x8B86
+#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87
+#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E
+#define GL_ALIASED_POINT_SIZE_RANGE 0x846D
+#define GL_ALPHA 0x1906
+#define GL_ALPHA16F_EXT 0x881C
+#define GL_ALPHA32F_EXT 0x8816
+#define GL_ALPHA8_EXT 0x803C
+#define GL_ALPHA_BITS 0x0D55
+#define GL_ALWAYS 0x0207
+#define GL_ARRAY_BUFFER 0x8892
+#define GL_ARRAY_BUFFER_BINDING 0x8894
+#define GL_ATTACHED_SHADERS 0x8B85
+#define GL_BACK 0x0405
+#define GL_BGRA8_EXT 0x93A1
+#define GL_BGRA_EXT 0x80E1
+#define GL_BLEND 0x0BE2
+#define GL_BLEND_COLOR 0x8005
+#define GL_BLEND_DST_ALPHA 0x80CA
+#define GL_BLEND_DST_RGB 0x80C8
+#define GL_BLEND_EQUATION 0x8009
+#define GL_BLEND_EQUATION_ALPHA 0x883D
+#define GL_BLEND_EQUATION_RGB 0x8009
+#define GL_BLEND_SRC_ALPHA 0x80CB
+#define GL_BLEND_SRC_RGB 0x80C9
+#define GL_BLUE_BITS 0x0D54
+#define GL_BOOL 0x8B56
+#define GL_BOOL_VEC2 0x8B57
+#define GL_BOOL_VEC3 0x8B58
+#define GL_BOOL_VEC4 0x8B59
+#define GL_BUFFER_ACCESS_OES 0x88BB
+#define GL_BUFFER_MAPPED_OES 0x88BC
+#define GL_BUFFER_MAP_POINTER_OES 0x88BD
+#define GL_BUFFER_SIZE 0x8764
+#define GL_BUFFER_USAGE 0x8765
+#define GL_BYTE 0x1400
+#define GL_CCW 0x0901
+#define GL_CLAMP_TO_EDGE 0x812F
+#define GL_COLOR_ATTACHMENT0 0x8CE0
+#define GL_COLOR_BUFFER_BIT 0x00004000
+#define GL_COLOR_CLEAR_VALUE 0x0C22
+#define GL_COLOR_WRITEMASK 0x0C23
+#define GL_COMPILE_STATUS 0x8B81
+#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3
+#define GL_CONSTANT_ALPHA 0x8003
+#define GL_CONSTANT_COLOR 0x8001
+#define GL_CULL_FACE 0x0B44
+#define GL_CULL_FACE_MODE 0x0B45
+#define GL_CURRENT_PROGRAM 0x8B8D
+#define GL_CURRENT_VERTEX_ATTRIB 0x8626
+#define GL_CW 0x0900
+#define GL_DECR 0x1E03
+#define GL_DECR_WRAP 0x8508
+#define GL_DELETE_STATUS 0x8B80
+#define GL_DEPTH_ATTACHMENT 0x8D00
+#define GL_DEPTH_BITS 0x0D56
+#define GL_DEPTH_BUFFER_BIT 0x00000100
+#define GL_DEPTH_CLEAR_VALUE 0x0B73
+#define GL_DEPTH_COMPONENT 0x1902
+#define GL_DEPTH_COMPONENT16 0x81A5
+#define GL_DEPTH_COMPONENT24_OES 0x81A6
+#define GL_DEPTH_FUNC 0x0B74
+#define GL_DEPTH_RANGE 0x0B70
+#define GL_DEPTH_TEST 0x0B71
+#define GL_DEPTH_WRITEMASK 0x0B72
+#define GL_DITHER 0x0BD0
+#define GL_DONT_CARE 0x1100
+#define GL_DST_ALPHA 0x0304
+#define GL_DST_COLOR 0x0306
+#define GL_DYNAMIC_DRAW 0x88E8
+#define GL_ELEMENT_ARRAY_BUFFER 0x8893
+#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895
+#define GL_EQUAL 0x0202
+#define GL_EXTENSIONS 0x1F03
+#define GL_FALSE 0
+#define GL_FASTEST 0x1101
+#define GL_FIXED 0x140C
+#define GL_FLOAT 0x1406
+#define GL_FLOAT_MAT2 0x8B5A
+#define GL_FLOAT_MAT3 0x8B5B
+#define GL_FLOAT_MAT4 0x8B5C
+#define GL_FLOAT_VEC2 0x8B50
+#define GL_FLOAT_VEC3 0x8B51
+#define GL_FLOAT_VEC4 0x8B52
+#define GL_FRAGMENT_SHADER 0x8B30
+#define GL_FRAMEBUFFER 0x8D40
+#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT 0x8211
+#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1
+#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2
+#define GL_FRAMEBUFFER_BINDING 0x8CA6
+#define GL_FRAMEBUFFER_COMPLETE 0x8CD5
+#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6
+#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS 0x8CD9
+#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7
+#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD
+#define GL_FRONT 0x0404
+#define GL_FRONT_AND_BACK 0x0408
+#define GL_FRONT_FACE 0x0B46
+#define GL_FUNC_ADD 0x8006
+#define GL_FUNC_REVERSE_SUBTRACT 0x800B
+#define GL_FUNC_SUBTRACT 0x800A
+#define GL_GENERATE_MIPMAP_HINT 0x8192
+#define GL_GEQUAL 0x0206
+#define GL_GREATER 0x0204
+#define GL_GREEN_BITS 0x0D53
+#define GL_HALF_FLOAT_OES 0x8D61
+#define GL_HIGH_FLOAT 0x8DF2
+#define GL_HIGH_INT 0x8DF5
+#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B
+#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A
+#define GL_INCR 0x1E02
+#define GL_INCR_WRAP 0x8507
+#define GL_INFO_LOG_LENGTH 0x8B84
+#define GL_INT 0x1404
+#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES 0x910C
+#define GL_INT_VEC2 0x8B53
+#define GL_INT_VEC3 0x8B54
+#define GL_INT_VEC4 0x8B55
+#define GL_INVALID_ENUM 0x0500
+#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506
+#define GL_INVALID_OPERATION 0x0502
+#define GL_INVALID_VALUE 0x0501
+#define GL_INVERT 0x150A
+#define GL_KEEP 0x1E00
+#define GL_LEQUAL 0x0203
+#define GL_LESS 0x0201
+#define GL_LINEAR 0x2601
+#define GL_LINEAR_MIPMAP_LINEAR 0x2703
+#define GL_LINEAR_MIPMAP_NEAREST 0x2701
+#define GL_LINES 0x0001
+#define GL_LINE_LOOP 0x0002
+#define GL_LINE_STRIP 0x0003
+#define GL_LINE_WIDTH 0x0B21
+#define GL_LINK_STATUS 0x8B82
+#define GL_LOW_FLOAT 0x8DF0
+#define GL_LOW_INT 0x8DF3
+#define GL_LUMINANCE 0x1909
+#define GL_LUMINANCE16F_EXT 0x881E
+#define GL_LUMINANCE32F_EXT 0x8818
+#define GL_LUMINANCE8_ALPHA8_EXT 0x8045
+#define GL_LUMINANCE8_EXT 0x8040
+#define GL_LUMINANCE_ALPHA 0x190A
+#define GL_LUMINANCE_ALPHA16F_EXT 0x881F
+#define GL_LUMINANCE_ALPHA32F_EXT 0x8819
+#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D
+#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C
+#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD
+#define GL_MAX_RENDERBUFFER_SIZE 0x84E8
+#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872
+#define GL_MAX_TEXTURE_SIZE 0x0D33
+#define GL_MAX_VARYING_VECTORS 0x8DFC
+#define GL_MAX_VERTEX_ATTRIBS 0x8869
+#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C
+#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB
+#define GL_MAX_VIEWPORT_DIMS 0x0D3A
+#define GL_MEDIUM_FLOAT 0x8DF1
+#define GL_MEDIUM_INT 0x8DF4
+#define GL_MIRRORED_REPEAT 0x8370
+#define GL_NEAREST 0x2600
+#define GL_NEAREST_MIPMAP_LINEAR 0x2702
+#define GL_NEAREST_MIPMAP_NEAREST 0x2700
+#define GL_NEVER 0x0200
+#define GL_NICEST 0x1102
+#define GL_NONE 0
+#define GL_NOTEQUAL 0x0205
+#define GL_NO_ERROR 0
+#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2
+#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9
+#define GL_ONE 1
+#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004
+#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002
+#define GL_ONE_MINUS_DST_ALPHA 0x0305
+#define GL_ONE_MINUS_DST_COLOR 0x0307
+#define GL_ONE_MINUS_SRC_ALPHA 0x0303
+#define GL_ONE_MINUS_SRC_COLOR 0x0301
+#define GL_OUT_OF_MEMORY 0x0505
+#define GL_PACK_ALIGNMENT 0x0D05
+#define GL_POINTS 0x0000
+#define GL_POLYGON_OFFSET_FACTOR 0x8038
+#define GL_POLYGON_OFFSET_FILL 0x8037
+#define GL_POLYGON_OFFSET_UNITS 0x2A00
+#define GL_R16F_EXT 0x822D
+#define GL_R32F_EXT 0x822E
+#define GL_R8_EXT 0x8229
+#define GL_RED_BITS 0x0D52
+#define GL_RENDERBUFFER 0x8D41
+#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53
+#define GL_RENDERBUFFER_BINDING 0x8CA7
+#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52
+#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54
+#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51
+#define GL_RENDERBUFFER_HEIGHT 0x8D43
+#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44
+#define GL_RENDERBUFFER_RED_SIZE 0x8D50
+#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55
+#define GL_RENDERBUFFER_WIDTH 0x8D42
+#define GL_RENDERER 0x1F01
+#define GL_REPEAT 0x2901
+#define GL_REPLACE 0x1E01
+#define GL_RG16F_EXT 0x822F
+#define GL_RG32F_EXT 0x8230
+#define GL_RG8_EXT 0x822B
+#define GL_RGB 0x1907
+#define GL_RGB10_A2_EXT 0x8059
+#define GL_RGB10_EXT 0x8052
+#define GL_RGB16F_EXT 0x881B
+#define GL_RGB32F_EXT 0x8815
+#define GL_RGB565 0x8D62
+#define GL_RGB5_A1 0x8057
+#define GL_RGB8_OES 0x8051
+#define GL_RGBA 0x1908
+#define GL_RGBA16F_EXT 0x881A
+#define GL_RGBA32F_EXT 0x8814
+#define GL_RGBA4 0x8056
+#define GL_RGBA8_OES 0x8058
+#define GL_SAMPLER_2D 0x8B5E
+#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY_OES 0x910B
+#define GL_SAMPLER_CUBE 0x8B60
+#define GL_SAMPLES 0x80A9
+#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E
+#define GL_SAMPLE_BUFFERS 0x80A8
+#define GL_SAMPLE_COVERAGE 0x80A0
+#define GL_SAMPLE_COVERAGE_INVERT 0x80AB
+#define GL_SAMPLE_COVERAGE_VALUE 0x80AA
+#define GL_SCISSOR_BOX 0x0C10
+#define GL_SCISSOR_TEST 0x0C11
+#define GL_SHADER_BINARY_FORMATS 0x8DF8
+#define GL_SHADER_COMPILER 0x8DFA
+#define GL_SHADER_SOURCE_LENGTH 0x8B88
+#define GL_SHADER_TYPE 0x8B4F
+#define GL_SHADING_LANGUAGE_VERSION 0x8B8C
+#define GL_SHORT 0x1402
+#define GL_SRC_ALPHA 0x0302
+#define GL_SRC_ALPHA_SATURATE 0x0308
+#define GL_SRC_COLOR 0x0300
+#define GL_STATIC_DRAW 0x88E4
+#define GL_STENCIL_ATTACHMENT 0x8D20
+#define GL_STENCIL_BACK_FAIL 0x8801
+#define GL_STENCIL_BACK_FUNC 0x8800
+#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802
+#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803
+#define GL_STENCIL_BACK_REF 0x8CA3
+#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4
+#define GL_STENCIL_BACK_WRITEMASK 0x8CA5
+#define GL_STENCIL_BITS 0x0D57
+#define GL_STENCIL_BUFFER_BIT 0x00000400
+#define GL_STENCIL_CLEAR_VALUE 0x0B91
+#define GL_STENCIL_FAIL 0x0B94
+#define GL_STENCIL_FUNC 0x0B92
+#define GL_STENCIL_INDEX8 0x8D48
+#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95
+#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96
+#define GL_STENCIL_REF 0x0B97
+#define GL_STENCIL_TEST 0x0B90
+#define GL_STENCIL_VALUE_MASK 0x0B93
+#define GL_STENCIL_WRITEMASK 0x0B98
+#define GL_STREAM_DRAW 0x88E0
+#define GL_SUBPIXEL_BITS 0x0D50
+#define GL_TEXTURE 0x1702
+#define GL_TEXTURE0 0x84C0
+#define GL_TEXTURE1 0x84C1
+#define GL_TEXTURE10 0x84CA
+#define GL_TEXTURE11 0x84CB
+#define GL_TEXTURE12 0x84CC
+#define GL_TEXTURE13 0x84CD
+#define GL_TEXTURE14 0x84CE
+#define GL_TEXTURE15 0x84CF
+#define GL_TEXTURE16 0x84D0
+#define GL_TEXTURE17 0x84D1
+#define GL_TEXTURE18 0x84D2
+#define GL_TEXTURE19 0x84D3
+#define GL_TEXTURE2 0x84C2
+#define GL_TEXTURE20 0x84D4
+#define GL_TEXTURE21 0x84D5
+#define GL_TEXTURE22 0x84D6
+#define GL_TEXTURE23 0x84D7
+#define GL_TEXTURE24 0x84D8
+#define GL_TEXTURE25 0x84D9
+#define GL_TEXTURE26 0x84DA
+#define GL_TEXTURE27 0x84DB
+#define GL_TEXTURE28 0x84DC
+#define GL_TEXTURE29 0x84DD
+#define GL_TEXTURE3 0x84C3
+#define GL_TEXTURE30 0x84DE
+#define GL_TEXTURE31 0x84DF
+#define GL_TEXTURE4 0x84C4
+#define GL_TEXTURE5 0x84C5
+#define GL_TEXTURE6 0x84C6
+#define GL_TEXTURE7 0x84C7
+#define GL_TEXTURE8 0x84C8
+#define GL_TEXTURE9 0x84C9
+#define GL_TEXTURE_2D 0x0DE1
+#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES 0x9102
+#define GL_TEXTURE_BINDING_2D 0x8069
+#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY_OES 0x9105
+#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514
+#define GL_TEXTURE_CUBE_MAP 0x8513
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519
+#define GL_TEXTURE_IMMUTABLE_FORMAT_EXT 0x912F
+#define GL_TEXTURE_MAG_FILTER 0x2800
+#define GL_TEXTURE_MAX_LEVEL_APPLE 0x813D
+#define GL_TEXTURE_MIN_FILTER 0x2801
+#define GL_TEXTURE_WRAP_S 0x2802
+#define GL_TEXTURE_WRAP_T 0x2803
+#define GL_TRIANGLES 0x0004
+#define GL_TRIANGLE_FAN 0x0006
+#define GL_TRIANGLE_STRIP 0x0005
+#define GL_TRUE 1
+#define GL_UNPACK_ALIGNMENT 0x0CF5
+#define GL_UNPACK_ROW_LENGTH_EXT 0x0CF2
+#define GL_UNPACK_SKIP_PIXELS_EXT 0x0CF4
+#define GL_UNPACK_SKIP_ROWS_EXT 0x0CF3
+#define GL_UNSIGNED_BYTE 0x1401
+#define GL_UNSIGNED_INT 0x1405
+#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES 0x910D
+#define GL_UNSIGNED_NORMALIZED_EXT 0x8C17
+#define GL_UNSIGNED_SHORT 0x1403
+#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033
+#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034
+#define GL_UNSIGNED_SHORT_5_6_5 0x8363
+#define GL_VALIDATE_STATUS 0x8B83
+#define GL_VENDOR 0x1F00
+#define GL_VERSION 0x1F02
+#define GL_VERTEX_ARRAY_BINDING_OES 0x85B5
+#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F
+#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622
+#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A
+#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645
+#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623
+#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624
+#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625
+#define GL_VERTEX_SHADER 0x8B31
+#define GL_VIEWPORT 0x0BA2
+#define GL_WRITE_ONLY_OES 0x88B9
+#define GL_ZERO 0
+
+
+#include
+typedef unsigned int GLenum;
+typedef unsigned char GLboolean;
+typedef unsigned int GLbitfield;
+typedef void GLvoid;
+typedef khronos_int8_t GLbyte;
+typedef khronos_uint8_t GLubyte;
+typedef khronos_int16_t GLshort;
+typedef khronos_uint16_t GLushort;
+typedef int GLint;
+typedef unsigned int GLuint;
+typedef khronos_int32_t GLclampx;
+typedef int GLsizei;
+typedef khronos_float_t GLfloat;
+typedef khronos_float_t GLclampf;
+typedef double GLdouble;
+typedef double GLclampd;
+typedef void *GLeglClientBufferEXT;
+typedef void *GLeglImageOES;
+typedef char GLchar;
+typedef char GLcharARB;
+#ifdef __APPLE__
+typedef void *GLhandleARB;
+#else
+typedef unsigned int GLhandleARB;
+#endif
+typedef khronos_uint16_t GLhalf;
+typedef khronos_uint16_t GLhalfARB;
+typedef khronos_int32_t GLfixed;
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060)
+typedef khronos_intptr_t GLintptr;
+#else
+typedef khronos_intptr_t GLintptr;
+#endif
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060)
+typedef khronos_intptr_t GLintptrARB;
+#else
+typedef khronos_intptr_t GLintptrARB;
+#endif
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060)
+typedef khronos_ssize_t GLsizeiptr;
+#else
+typedef khronos_ssize_t GLsizeiptr;
+#endif
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060)
+typedef khronos_ssize_t GLsizeiptrARB;
+#else
+typedef khronos_ssize_t GLsizeiptrARB;
+#endif
+typedef khronos_int64_t GLint64;
+typedef khronos_int64_t GLint64EXT;
+typedef khronos_uint64_t GLuint64;
+typedef khronos_uint64_t GLuint64EXT;
+typedef struct __GLsync *GLsync;
+struct _cl_context;
+struct _cl_event;
+typedef void (GLAD_API_PTR *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
+typedef void (GLAD_API_PTR *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
+typedef void (GLAD_API_PTR *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
+typedef void (GLAD_API_PTR *GLDEBUGPROCAMD)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,void *userParam);
+typedef unsigned short GLhalfNV;
+typedef GLintptr GLvdpauSurfaceNV;
+typedef void (GLAD_API_PTR *GLVULKANPROCNV)(void);
+
+
+#define GL_ES_VERSION_2_0 1
+GLAD_API_CALL int GLAD_GL_ES_VERSION_2_0;
+#define GL_APPLE_texture_max_level 1
+GLAD_API_CALL int GLAD_GL_APPLE_texture_max_level;
+#define GL_ARM_rgba8 1
+GLAD_API_CALL int GLAD_GL_ARM_rgba8;
+#define GL_EXT_color_buffer_float 1
+GLAD_API_CALL int GLAD_GL_EXT_color_buffer_float;
+#define GL_EXT_color_buffer_half_float 1
+GLAD_API_CALL int GLAD_GL_EXT_color_buffer_half_float;
+#define GL_EXT_texture_format_BGRA8888 1
+GLAD_API_CALL int GLAD_GL_EXT_texture_format_BGRA8888;
+#define GL_EXT_texture_storage 1
+GLAD_API_CALL int GLAD_GL_EXT_texture_storage;
+#define GL_EXT_unpack_subimage 1
+GLAD_API_CALL int GLAD_GL_EXT_unpack_subimage;
+#define GL_OES_depth24 1
+GLAD_API_CALL int GLAD_GL_OES_depth24;
+#define GL_OES_mapbuffer 1
+GLAD_API_CALL int GLAD_GL_OES_mapbuffer;
+#define GL_OES_rgb8_rgba8 1
+GLAD_API_CALL int GLAD_GL_OES_rgb8_rgba8;
+#define GL_OES_texture_float 1
+GLAD_API_CALL int GLAD_GL_OES_texture_float;
+#define GL_OES_texture_half_float 1
+GLAD_API_CALL int GLAD_GL_OES_texture_half_float;
+#define GL_OES_texture_storage_multisample_2d_array 1
+GLAD_API_CALL int GLAD_GL_OES_texture_storage_multisample_2d_array;
+#define GL_OES_vertex_array_object 1
+GLAD_API_CALL int GLAD_GL_OES_vertex_array_object;
+
+
+typedef void (GLAD_API_PTR *PFNGLACTIVETEXTUREPROC)(GLenum texture);
+typedef void (GLAD_API_PTR *PFNGLATTACHSHADERPROC)(GLuint program, GLuint shader);
+typedef void (GLAD_API_PTR *PFNGLBINDATTRIBLOCATIONPROC)(GLuint program, GLuint index, const GLchar * name);
+typedef void (GLAD_API_PTR *PFNGLBINDBUFFERPROC)(GLenum target, GLuint buffer);
+typedef void (GLAD_API_PTR *PFNGLBINDFRAMEBUFFERPROC)(GLenum target, GLuint framebuffer);
+typedef void (GLAD_API_PTR *PFNGLBINDRENDERBUFFERPROC)(GLenum target, GLuint renderbuffer);
+typedef void (GLAD_API_PTR *PFNGLBINDTEXTUREPROC)(GLenum target, GLuint texture);
+typedef void (GLAD_API_PTR *PFNGLBINDVERTEXARRAYOESPROC)(GLuint array);
+typedef void (GLAD_API_PTR *PFNGLBLENDCOLORPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+typedef void (GLAD_API_PTR *PFNGLBLENDEQUATIONPROC)(GLenum mode);
+typedef void (GLAD_API_PTR *PFNGLBLENDEQUATIONSEPARATEPROC)(GLenum modeRGB, GLenum modeAlpha);
+typedef void (GLAD_API_PTR *PFNGLBLENDFUNCPROC)(GLenum sfactor, GLenum dfactor);
+typedef void (GLAD_API_PTR *PFNGLBLENDFUNCSEPARATEPROC)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+typedef void (GLAD_API_PTR *PFNGLBUFFERDATAPROC)(GLenum target, GLsizeiptr size, const void * data, GLenum usage);
+typedef void (GLAD_API_PTR *PFNGLBUFFERSUBDATAPROC)(GLenum target, GLintptr offset, GLsizeiptr size, const void * data);
+typedef GLenum (GLAD_API_PTR *PFNGLCHECKFRAMEBUFFERSTATUSPROC)(GLenum target);
+typedef void (GLAD_API_PTR *PFNGLCLEARPROC)(GLbitfield mask);
+typedef void (GLAD_API_PTR *PFNGLCLEARCOLORPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+typedef void (GLAD_API_PTR *PFNGLCLEARDEPTHFPROC)(GLfloat d);
+typedef void (GLAD_API_PTR *PFNGLCLEARSTENCILPROC)(GLint s);
+typedef void (GLAD_API_PTR *PFNGLCOLORMASKPROC)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+typedef void (GLAD_API_PTR *PFNGLCOMPILESHADERPROC)(GLuint shader);
+typedef void (GLAD_API_PTR *PFNGLCOMPRESSEDTEXIMAGE2DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void * data);
+typedef void (GLAD_API_PTR *PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void * data);
+typedef void (GLAD_API_PTR *PFNGLCOPYTEXIMAGE2DPROC)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+typedef void (GLAD_API_PTR *PFNGLCOPYTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef GLuint (GLAD_API_PTR *PFNGLCREATEPROGRAMPROC)(void);
+typedef GLuint (GLAD_API_PTR *PFNGLCREATESHADERPROC)(GLenum type);
+typedef void (GLAD_API_PTR *PFNGLCULLFACEPROC)(GLenum mode);
+typedef void (GLAD_API_PTR *PFNGLDELETEBUFFERSPROC)(GLsizei n, const GLuint * buffers);
+typedef void (GLAD_API_PTR *PFNGLDELETEFRAMEBUFFERSPROC)(GLsizei n, const GLuint * framebuffers);
+typedef void (GLAD_API_PTR *PFNGLDELETEPROGRAMPROC)(GLuint program);
+typedef void (GLAD_API_PTR *PFNGLDELETERENDERBUFFERSPROC)(GLsizei n, const GLuint * renderbuffers);
+typedef void (GLAD_API_PTR *PFNGLDELETESHADERPROC)(GLuint shader);
+typedef void (GLAD_API_PTR *PFNGLDELETETEXTURESPROC)(GLsizei n, const GLuint * textures);
+typedef void (GLAD_API_PTR *PFNGLDELETEVERTEXARRAYSOESPROC)(GLsizei n, const GLuint * arrays);
+typedef void (GLAD_API_PTR *PFNGLDEPTHFUNCPROC)(GLenum func);
+typedef void (GLAD_API_PTR *PFNGLDEPTHMASKPROC)(GLboolean flag);
+typedef void (GLAD_API_PTR *PFNGLDEPTHRANGEFPROC)(GLfloat n, GLfloat f);
+typedef void (GLAD_API_PTR *PFNGLDETACHSHADERPROC)(GLuint program, GLuint shader);
+typedef void (GLAD_API_PTR *PFNGLDISABLEPROC)(GLenum cap);
+typedef void (GLAD_API_PTR *PFNGLDISABLEVERTEXATTRIBARRAYPROC)(GLuint index);
+typedef void (GLAD_API_PTR *PFNGLDRAWARRAYSPROC)(GLenum mode, GLint first, GLsizei count);
+typedef void (GLAD_API_PTR *PFNGLDRAWELEMENTSPROC)(GLenum mode, GLsizei count, GLenum type, const void * indices);
+typedef void (GLAD_API_PTR *PFNGLENABLEPROC)(GLenum cap);
+typedef void (GLAD_API_PTR *PFNGLENABLEVERTEXATTRIBARRAYPROC)(GLuint index);
+typedef void (GLAD_API_PTR *PFNGLFINISHPROC)(void);
+typedef void (GLAD_API_PTR *PFNGLFLUSHPROC)(void);
+typedef void (GLAD_API_PTR *PFNGLFRAMEBUFFERRENDERBUFFERPROC)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+typedef void (GLAD_API_PTR *PFNGLFRAMEBUFFERTEXTURE2DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+typedef void (GLAD_API_PTR *PFNGLFRONTFACEPROC)(GLenum mode);
+typedef void (GLAD_API_PTR *PFNGLGENBUFFERSPROC)(GLsizei n, GLuint * buffers);
+typedef void (GLAD_API_PTR *PFNGLGENFRAMEBUFFERSPROC)(GLsizei n, GLuint * framebuffers);
+typedef void (GLAD_API_PTR *PFNGLGENRENDERBUFFERSPROC)(GLsizei n, GLuint * renderbuffers);
+typedef void (GLAD_API_PTR *PFNGLGENTEXTURESPROC)(GLsizei n, GLuint * textures);
+typedef void (GLAD_API_PTR *PFNGLGENVERTEXARRAYSOESPROC)(GLsizei n, GLuint * arrays);
+typedef void (GLAD_API_PTR *PFNGLGENERATEMIPMAPPROC)(GLenum target);
+typedef void (GLAD_API_PTR *PFNGLGETACTIVEATTRIBPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name);
+typedef void (GLAD_API_PTR *PFNGLGETACTIVEUNIFORMPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name);
+typedef void (GLAD_API_PTR *PFNGLGETATTACHEDSHADERSPROC)(GLuint program, GLsizei maxCount, GLsizei * count, GLuint * shaders);
+typedef GLint (GLAD_API_PTR *PFNGLGETATTRIBLOCATIONPROC)(GLuint program, const GLchar * name);
+typedef void (GLAD_API_PTR *PFNGLGETBOOLEANVPROC)(GLenum pname, GLboolean * data);
+typedef void (GLAD_API_PTR *PFNGLGETBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint * params);
+typedef void (GLAD_API_PTR *PFNGLGETBUFFERPOINTERVOESPROC)(GLenum target, GLenum pname, void ** params);
+typedef GLenum (GLAD_API_PTR *PFNGLGETERRORPROC)(void);
+typedef void (GLAD_API_PTR *PFNGLGETFLOATVPROC)(GLenum pname, GLfloat * data);
+typedef void (GLAD_API_PTR *PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)(GLenum target, GLenum attachment, GLenum pname, GLint * params);
+typedef void (GLAD_API_PTR *PFNGLGETINTEGERVPROC)(GLenum pname, GLint * data);
+typedef void (GLAD_API_PTR *PFNGLGETPROGRAMINFOLOGPROC)(GLuint program, GLsizei bufSize, GLsizei * length, GLchar * infoLog);
+typedef void (GLAD_API_PTR *PFNGLGETPROGRAMIVPROC)(GLuint program, GLenum pname, GLint * params);
+typedef void (GLAD_API_PTR *PFNGLGETRENDERBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint * params);
+typedef void (GLAD_API_PTR *PFNGLGETSHADERINFOLOGPROC)(GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * infoLog);
+typedef void (GLAD_API_PTR *PFNGLGETSHADERPRECISIONFORMATPROC)(GLenum shadertype, GLenum precisiontype, GLint * range, GLint * precision);
+typedef void (GLAD_API_PTR *PFNGLGETSHADERSOURCEPROC)(GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * source);
+typedef void (GLAD_API_PTR *PFNGLGETSHADERIVPROC)(GLuint shader, GLenum pname, GLint * params);
+typedef const GLubyte * (GLAD_API_PTR *PFNGLGETSTRINGPROC)(GLenum name);
+typedef void (GLAD_API_PTR *PFNGLGETTEXPARAMETERFVPROC)(GLenum target, GLenum pname, GLfloat * params);
+typedef void (GLAD_API_PTR *PFNGLGETTEXPARAMETERIVPROC)(GLenum target, GLenum pname, GLint * params);
+typedef GLint (GLAD_API_PTR *PFNGLGETUNIFORMLOCATIONPROC)(GLuint program, const GLchar * name);
+typedef void (GLAD_API_PTR *PFNGLGETUNIFORMFVPROC)(GLuint program, GLint location, GLfloat * params);
+typedef void (GLAD_API_PTR *PFNGLGETUNIFORMIVPROC)(GLuint program, GLint location, GLint * params);
+typedef void (GLAD_API_PTR *PFNGLGETVERTEXATTRIBPOINTERVPROC)(GLuint index, GLenum pname, void ** pointer);
+typedef void (GLAD_API_PTR *PFNGLGETVERTEXATTRIBFVPROC)(GLuint index, GLenum pname, GLfloat * params);
+typedef void (GLAD_API_PTR *PFNGLGETVERTEXATTRIBIVPROC)(GLuint index, GLenum pname, GLint * params);
+typedef void (GLAD_API_PTR *PFNGLHINTPROC)(GLenum target, GLenum mode);
+typedef GLboolean (GLAD_API_PTR *PFNGLISBUFFERPROC)(GLuint buffer);
+typedef GLboolean (GLAD_API_PTR *PFNGLISENABLEDPROC)(GLenum cap);
+typedef GLboolean (GLAD_API_PTR *PFNGLISFRAMEBUFFERPROC)(GLuint framebuffer);
+typedef GLboolean (GLAD_API_PTR *PFNGLISPROGRAMPROC)(GLuint program);
+typedef GLboolean (GLAD_API_PTR *PFNGLISRENDERBUFFERPROC)(GLuint renderbuffer);
+typedef GLboolean (GLAD_API_PTR *PFNGLISSHADERPROC)(GLuint shader);
+typedef GLboolean (GLAD_API_PTR *PFNGLISTEXTUREPROC)(GLuint texture);
+typedef GLboolean (GLAD_API_PTR *PFNGLISVERTEXARRAYOESPROC)(GLuint array);
+typedef void (GLAD_API_PTR *PFNGLLINEWIDTHPROC)(GLfloat width);
+typedef void (GLAD_API_PTR *PFNGLLINKPROGRAMPROC)(GLuint program);
+typedef void * (GLAD_API_PTR *PFNGLMAPBUFFEROESPROC)(GLenum target, GLenum access);
+typedef void (GLAD_API_PTR *PFNGLPIXELSTOREIPROC)(GLenum pname, GLint param);
+typedef void (GLAD_API_PTR *PFNGLPOLYGONOFFSETPROC)(GLfloat factor, GLfloat units);
+typedef void (GLAD_API_PTR *PFNGLREADPIXELSPROC)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void * pixels);
+typedef void (GLAD_API_PTR *PFNGLRELEASESHADERCOMPILERPROC)(void);
+typedef void (GLAD_API_PTR *PFNGLRENDERBUFFERSTORAGEPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (GLAD_API_PTR *PFNGLSAMPLECOVERAGEPROC)(GLfloat value, GLboolean invert);
+typedef void (GLAD_API_PTR *PFNGLSCISSORPROC)(GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (GLAD_API_PTR *PFNGLSHADERBINARYPROC)(GLsizei count, const GLuint * shaders, GLenum binaryFormat, const void * binary, GLsizei length);
+typedef void (GLAD_API_PTR *PFNGLSHADERSOURCEPROC)(GLuint shader, GLsizei count, const GLchar *const* string, const GLint * length);
+typedef void (GLAD_API_PTR *PFNGLSTENCILFUNCPROC)(GLenum func, GLint ref, GLuint mask);
+typedef void (GLAD_API_PTR *PFNGLSTENCILFUNCSEPARATEPROC)(GLenum face, GLenum func, GLint ref, GLuint mask);
+typedef void (GLAD_API_PTR *PFNGLSTENCILMASKPROC)(GLuint mask);
+typedef void (GLAD_API_PTR *PFNGLSTENCILMASKSEPARATEPROC)(GLenum face, GLuint mask);
+typedef void (GLAD_API_PTR *PFNGLSTENCILOPPROC)(GLenum fail, GLenum zfail, GLenum zpass);
+typedef void (GLAD_API_PTR *PFNGLSTENCILOPSEPARATEPROC)(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
+typedef void (GLAD_API_PTR *PFNGLTEXIMAGE2DPROC)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void * pixels);
+typedef void (GLAD_API_PTR *PFNGLTEXPARAMETERFPROC)(GLenum target, GLenum pname, GLfloat param);
+typedef void (GLAD_API_PTR *PFNGLTEXPARAMETERFVPROC)(GLenum target, GLenum pname, const GLfloat * params);
+typedef void (GLAD_API_PTR *PFNGLTEXPARAMETERIPROC)(GLenum target, GLenum pname, GLint param);
+typedef void (GLAD_API_PTR *PFNGLTEXPARAMETERIVPROC)(GLenum target, GLenum pname, const GLint * params);
+typedef void (GLAD_API_PTR *PFNGLTEXSTORAGE1DEXTPROC)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
+typedef void (GLAD_API_PTR *PFNGLTEXSTORAGE2DEXTPROC)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (GLAD_API_PTR *PFNGLTEXSTORAGE3DEXTPROC)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
+typedef void (GLAD_API_PTR *PFNGLTEXSTORAGE3DMULTISAMPLEOESPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+typedef void (GLAD_API_PTR *PFNGLTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * pixels);
+typedef void (GLAD_API_PTR *PFNGLTEXTURESTORAGE1DEXTPROC)(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
+typedef void (GLAD_API_PTR *PFNGLTEXTURESTORAGE2DEXTPROC)(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (GLAD_API_PTR *PFNGLTEXTURESTORAGE3DEXTPROC)(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM1FPROC)(GLint location, GLfloat v0);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM1FVPROC)(GLint location, GLsizei count, const GLfloat * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM1IPROC)(GLint location, GLint v0);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM1IVPROC)(GLint location, GLsizei count, const GLint * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM2FPROC)(GLint location, GLfloat v0, GLfloat v1);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM2FVPROC)(GLint location, GLsizei count, const GLfloat * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM2IPROC)(GLint location, GLint v0, GLint v1);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM2IVPROC)(GLint location, GLsizei count, const GLint * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM3FPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM3FVPROC)(GLint location, GLsizei count, const GLfloat * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM3IPROC)(GLint location, GLint v0, GLint v1, GLint v2);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM3IVPROC)(GLint location, GLsizei count, const GLint * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM4FPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM4FVPROC)(GLint location, GLsizei count, const GLfloat * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM4IPROC)(GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+typedef void (GLAD_API_PTR *PFNGLUNIFORM4IVPROC)(GLint location, GLsizei count, const GLint * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX2FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX3FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAD_API_PTR *PFNGLUNIFORMMATRIX4FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef GLboolean (GLAD_API_PTR *PFNGLUNMAPBUFFEROESPROC)(GLenum target);
+typedef void (GLAD_API_PTR *PFNGLUSEPROGRAMPROC)(GLuint program);
+typedef void (GLAD_API_PTR *PFNGLVALIDATEPROGRAMPROC)(GLuint program);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB1FPROC)(GLuint index, GLfloat x);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB1FVPROC)(GLuint index, const GLfloat * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB2FPROC)(GLuint index, GLfloat x, GLfloat y);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB2FVPROC)(GLuint index, const GLfloat * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB3FPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB3FVPROC)(GLuint index, const GLfloat * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4FPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIB4FVPROC)(GLuint index, const GLfloat * v);
+typedef void (GLAD_API_PTR *PFNGLVERTEXATTRIBPOINTERPROC)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void * pointer);
+typedef void (GLAD_API_PTR *PFNGLVIEWPORTPROC)(GLint x, GLint y, GLsizei width, GLsizei height);
+
+GLAD_API_CALL PFNGLACTIVETEXTUREPROC glad_glActiveTexture;
+#define glActiveTexture glad_glActiveTexture
+GLAD_API_CALL PFNGLATTACHSHADERPROC glad_glAttachShader;
+#define glAttachShader glad_glAttachShader
+GLAD_API_CALL PFNGLBINDATTRIBLOCATIONPROC glad_glBindAttribLocation;
+#define glBindAttribLocation glad_glBindAttribLocation
+GLAD_API_CALL PFNGLBINDBUFFERPROC glad_glBindBuffer;
+#define glBindBuffer glad_glBindBuffer
+GLAD_API_CALL PFNGLBINDFRAMEBUFFERPROC glad_glBindFramebuffer;
+#define glBindFramebuffer glad_glBindFramebuffer
+GLAD_API_CALL PFNGLBINDRENDERBUFFERPROC glad_glBindRenderbuffer;
+#define glBindRenderbuffer glad_glBindRenderbuffer
+GLAD_API_CALL PFNGLBINDTEXTUREPROC glad_glBindTexture;
+#define glBindTexture glad_glBindTexture
+GLAD_API_CALL PFNGLBINDVERTEXARRAYOESPROC glad_glBindVertexArrayOES;
+#define glBindVertexArrayOES glad_glBindVertexArrayOES
+GLAD_API_CALL PFNGLBLENDCOLORPROC glad_glBlendColor;
+#define glBlendColor glad_glBlendColor
+GLAD_API_CALL PFNGLBLENDEQUATIONPROC glad_glBlendEquation;
+#define glBlendEquation glad_glBlendEquation
+GLAD_API_CALL PFNGLBLENDEQUATIONSEPARATEPROC glad_glBlendEquationSeparate;
+#define glBlendEquationSeparate glad_glBlendEquationSeparate
+GLAD_API_CALL PFNGLBLENDFUNCPROC glad_glBlendFunc;
+#define glBlendFunc glad_glBlendFunc
+GLAD_API_CALL PFNGLBLENDFUNCSEPARATEPROC glad_glBlendFuncSeparate;
+#define glBlendFuncSeparate glad_glBlendFuncSeparate
+GLAD_API_CALL PFNGLBUFFERDATAPROC glad_glBufferData;
+#define glBufferData glad_glBufferData
+GLAD_API_CALL PFNGLBUFFERSUBDATAPROC glad_glBufferSubData;
+#define glBufferSubData glad_glBufferSubData
+GLAD_API_CALL PFNGLCHECKFRAMEBUFFERSTATUSPROC glad_glCheckFramebufferStatus;
+#define glCheckFramebufferStatus glad_glCheckFramebufferStatus
+GLAD_API_CALL PFNGLCLEARPROC glad_glClear;
+#define glClear glad_glClear
+GLAD_API_CALL PFNGLCLEARCOLORPROC glad_glClearColor;
+#define glClearColor glad_glClearColor
+GLAD_API_CALL PFNGLCLEARDEPTHFPROC glad_glClearDepthf;
+#define glClearDepthf glad_glClearDepthf
+GLAD_API_CALL PFNGLCLEARSTENCILPROC glad_glClearStencil;
+#define glClearStencil glad_glClearStencil
+GLAD_API_CALL PFNGLCOLORMASKPROC glad_glColorMask;
+#define glColorMask glad_glColorMask
+GLAD_API_CALL PFNGLCOMPILESHADERPROC glad_glCompileShader;
+#define glCompileShader glad_glCompileShader
+GLAD_API_CALL PFNGLCOMPRESSEDTEXIMAGE2DPROC glad_glCompressedTexImage2D;
+#define glCompressedTexImage2D glad_glCompressedTexImage2D
+GLAD_API_CALL PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glad_glCompressedTexSubImage2D;
+#define glCompressedTexSubImage2D glad_glCompressedTexSubImage2D
+GLAD_API_CALL PFNGLCOPYTEXIMAGE2DPROC glad_glCopyTexImage2D;
+#define glCopyTexImage2D glad_glCopyTexImage2D
+GLAD_API_CALL PFNGLCOPYTEXSUBIMAGE2DPROC glad_glCopyTexSubImage2D;
+#define glCopyTexSubImage2D glad_glCopyTexSubImage2D
+GLAD_API_CALL PFNGLCREATEPROGRAMPROC glad_glCreateProgram;
+#define glCreateProgram glad_glCreateProgram
+GLAD_API_CALL PFNGLCREATESHADERPROC glad_glCreateShader;
+#define glCreateShader glad_glCreateShader
+GLAD_API_CALL PFNGLCULLFACEPROC glad_glCullFace;
+#define glCullFace glad_glCullFace
+GLAD_API_CALL PFNGLDELETEBUFFERSPROC glad_glDeleteBuffers;
+#define glDeleteBuffers glad_glDeleteBuffers
+GLAD_API_CALL PFNGLDELETEFRAMEBUFFERSPROC glad_glDeleteFramebuffers;
+#define glDeleteFramebuffers glad_glDeleteFramebuffers
+GLAD_API_CALL PFNGLDELETEPROGRAMPROC glad_glDeleteProgram;
+#define glDeleteProgram glad_glDeleteProgram
+GLAD_API_CALL PFNGLDELETERENDERBUFFERSPROC glad_glDeleteRenderbuffers;
+#define glDeleteRenderbuffers glad_glDeleteRenderbuffers
+GLAD_API_CALL PFNGLDELETESHADERPROC glad_glDeleteShader;
+#define glDeleteShader glad_glDeleteShader
+GLAD_API_CALL PFNGLDELETETEXTURESPROC glad_glDeleteTextures;
+#define glDeleteTextures glad_glDeleteTextures
+GLAD_API_CALL PFNGLDELETEVERTEXARRAYSOESPROC glad_glDeleteVertexArraysOES;
+#define glDeleteVertexArraysOES glad_glDeleteVertexArraysOES
+GLAD_API_CALL PFNGLDEPTHFUNCPROC glad_glDepthFunc;
+#define glDepthFunc glad_glDepthFunc
+GLAD_API_CALL PFNGLDEPTHMASKPROC glad_glDepthMask;
+#define glDepthMask glad_glDepthMask
+GLAD_API_CALL PFNGLDEPTHRANGEFPROC glad_glDepthRangef;
+#define glDepthRangef glad_glDepthRangef
+GLAD_API_CALL PFNGLDETACHSHADERPROC glad_glDetachShader;
+#define glDetachShader glad_glDetachShader
+GLAD_API_CALL PFNGLDISABLEPROC glad_glDisable;
+#define glDisable glad_glDisable
+GLAD_API_CALL PFNGLDISABLEVERTEXATTRIBARRAYPROC glad_glDisableVertexAttribArray;
+#define glDisableVertexAttribArray glad_glDisableVertexAttribArray
+GLAD_API_CALL PFNGLDRAWARRAYSPROC glad_glDrawArrays;
+#define glDrawArrays glad_glDrawArrays
+GLAD_API_CALL PFNGLDRAWELEMENTSPROC glad_glDrawElements;
+#define glDrawElements glad_glDrawElements
+GLAD_API_CALL PFNGLENABLEPROC glad_glEnable;
+#define glEnable glad_glEnable
+GLAD_API_CALL PFNGLENABLEVERTEXATTRIBARRAYPROC glad_glEnableVertexAttribArray;
+#define glEnableVertexAttribArray glad_glEnableVertexAttribArray
+GLAD_API_CALL PFNGLFINISHPROC glad_glFinish;
+#define glFinish glad_glFinish
+GLAD_API_CALL PFNGLFLUSHPROC glad_glFlush;
+#define glFlush glad_glFlush
+GLAD_API_CALL PFNGLFRAMEBUFFERRENDERBUFFERPROC glad_glFramebufferRenderbuffer;
+#define glFramebufferRenderbuffer glad_glFramebufferRenderbuffer
+GLAD_API_CALL PFNGLFRAMEBUFFERTEXTURE2DPROC glad_glFramebufferTexture2D;
+#define glFramebufferTexture2D glad_glFramebufferTexture2D
+GLAD_API_CALL PFNGLFRONTFACEPROC glad_glFrontFace;
+#define glFrontFace glad_glFrontFace
+GLAD_API_CALL PFNGLGENBUFFERSPROC glad_glGenBuffers;
+#define glGenBuffers glad_glGenBuffers
+GLAD_API_CALL PFNGLGENFRAMEBUFFERSPROC glad_glGenFramebuffers;
+#define glGenFramebuffers glad_glGenFramebuffers
+GLAD_API_CALL PFNGLGENRENDERBUFFERSPROC glad_glGenRenderbuffers;
+#define glGenRenderbuffers glad_glGenRenderbuffers
+GLAD_API_CALL PFNGLGENTEXTURESPROC glad_glGenTextures;
+#define glGenTextures glad_glGenTextures
+GLAD_API_CALL PFNGLGENVERTEXARRAYSOESPROC glad_glGenVertexArraysOES;
+#define glGenVertexArraysOES glad_glGenVertexArraysOES
+GLAD_API_CALL PFNGLGENERATEMIPMAPPROC glad_glGenerateMipmap;
+#define glGenerateMipmap glad_glGenerateMipmap
+GLAD_API_CALL PFNGLGETACTIVEATTRIBPROC glad_glGetActiveAttrib;
+#define glGetActiveAttrib glad_glGetActiveAttrib
+GLAD_API_CALL PFNGLGETACTIVEUNIFORMPROC glad_glGetActiveUniform;
+#define glGetActiveUniform glad_glGetActiveUniform
+GLAD_API_CALL PFNGLGETATTACHEDSHADERSPROC glad_glGetAttachedShaders;
+#define glGetAttachedShaders glad_glGetAttachedShaders
+GLAD_API_CALL PFNGLGETATTRIBLOCATIONPROC glad_glGetAttribLocation;
+#define glGetAttribLocation glad_glGetAttribLocation
+GLAD_API_CALL PFNGLGETBOOLEANVPROC glad_glGetBooleanv;
+#define glGetBooleanv glad_glGetBooleanv
+GLAD_API_CALL PFNGLGETBUFFERPARAMETERIVPROC glad_glGetBufferParameteriv;
+#define glGetBufferParameteriv glad_glGetBufferParameteriv
+GLAD_API_CALL PFNGLGETBUFFERPOINTERVOESPROC glad_glGetBufferPointervOES;
+#define glGetBufferPointervOES glad_glGetBufferPointervOES
+GLAD_API_CALL PFNGLGETERRORPROC glad_glGetError;
+#define glGetError glad_glGetError
+GLAD_API_CALL PFNGLGETFLOATVPROC glad_glGetFloatv;
+#define glGetFloatv glad_glGetFloatv
+GLAD_API_CALL PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetFramebufferAttachmentParameteriv;
+#define glGetFramebufferAttachmentParameteriv glad_glGetFramebufferAttachmentParameteriv
+GLAD_API_CALL PFNGLGETINTEGERVPROC glad_glGetIntegerv;
+#define glGetIntegerv glad_glGetIntegerv
+GLAD_API_CALL PFNGLGETPROGRAMINFOLOGPROC glad_glGetProgramInfoLog;
+#define glGetProgramInfoLog glad_glGetProgramInfoLog
+GLAD_API_CALL PFNGLGETPROGRAMIVPROC glad_glGetProgramiv;
+#define glGetProgramiv glad_glGetProgramiv
+GLAD_API_CALL PFNGLGETRENDERBUFFERPARAMETERIVPROC glad_glGetRenderbufferParameteriv;
+#define glGetRenderbufferParameteriv glad_glGetRenderbufferParameteriv
+GLAD_API_CALL PFNGLGETSHADERINFOLOGPROC glad_glGetShaderInfoLog;
+#define glGetShaderInfoLog glad_glGetShaderInfoLog
+GLAD_API_CALL PFNGLGETSHADERPRECISIONFORMATPROC glad_glGetShaderPrecisionFormat;
+#define glGetShaderPrecisionFormat glad_glGetShaderPrecisionFormat
+GLAD_API_CALL PFNGLGETSHADERSOURCEPROC glad_glGetShaderSource;
+#define glGetShaderSource glad_glGetShaderSource
+GLAD_API_CALL PFNGLGETSHADERIVPROC glad_glGetShaderiv;
+#define glGetShaderiv glad_glGetShaderiv
+GLAD_API_CALL PFNGLGETSTRINGPROC glad_glGetString;
+#define glGetString glad_glGetString
+GLAD_API_CALL PFNGLGETTEXPARAMETERFVPROC glad_glGetTexParameterfv;
+#define glGetTexParameterfv glad_glGetTexParameterfv
+GLAD_API_CALL PFNGLGETTEXPARAMETERIVPROC glad_glGetTexParameteriv;
+#define glGetTexParameteriv glad_glGetTexParameteriv
+GLAD_API_CALL PFNGLGETUNIFORMLOCATIONPROC glad_glGetUniformLocation;
+#define glGetUniformLocation glad_glGetUniformLocation
+GLAD_API_CALL PFNGLGETUNIFORMFVPROC glad_glGetUniformfv;
+#define glGetUniformfv glad_glGetUniformfv
+GLAD_API_CALL PFNGLGETUNIFORMIVPROC glad_glGetUniformiv;
+#define glGetUniformiv glad_glGetUniformiv
+GLAD_API_CALL PFNGLGETVERTEXATTRIBPOINTERVPROC glad_glGetVertexAttribPointerv;
+#define glGetVertexAttribPointerv glad_glGetVertexAttribPointerv
+GLAD_API_CALL PFNGLGETVERTEXATTRIBFVPROC glad_glGetVertexAttribfv;
+#define glGetVertexAttribfv glad_glGetVertexAttribfv
+GLAD_API_CALL PFNGLGETVERTEXATTRIBIVPROC glad_glGetVertexAttribiv;
+#define glGetVertexAttribiv glad_glGetVertexAttribiv
+GLAD_API_CALL PFNGLHINTPROC glad_glHint;
+#define glHint glad_glHint
+GLAD_API_CALL PFNGLISBUFFERPROC glad_glIsBuffer;
+#define glIsBuffer glad_glIsBuffer
+GLAD_API_CALL PFNGLISENABLEDPROC glad_glIsEnabled;
+#define glIsEnabled glad_glIsEnabled
+GLAD_API_CALL PFNGLISFRAMEBUFFERPROC glad_glIsFramebuffer;
+#define glIsFramebuffer glad_glIsFramebuffer
+GLAD_API_CALL PFNGLISPROGRAMPROC glad_glIsProgram;
+#define glIsProgram glad_glIsProgram
+GLAD_API_CALL PFNGLISRENDERBUFFERPROC glad_glIsRenderbuffer;
+#define glIsRenderbuffer glad_glIsRenderbuffer
+GLAD_API_CALL PFNGLISSHADERPROC glad_glIsShader;
+#define glIsShader glad_glIsShader
+GLAD_API_CALL PFNGLISTEXTUREPROC glad_glIsTexture;
+#define glIsTexture glad_glIsTexture
+GLAD_API_CALL PFNGLISVERTEXARRAYOESPROC glad_glIsVertexArrayOES;
+#define glIsVertexArrayOES glad_glIsVertexArrayOES
+GLAD_API_CALL PFNGLLINEWIDTHPROC glad_glLineWidth;
+#define glLineWidth glad_glLineWidth
+GLAD_API_CALL PFNGLLINKPROGRAMPROC glad_glLinkProgram;
+#define glLinkProgram glad_glLinkProgram
+GLAD_API_CALL PFNGLMAPBUFFEROESPROC glad_glMapBufferOES;
+#define glMapBufferOES glad_glMapBufferOES
+GLAD_API_CALL PFNGLPIXELSTOREIPROC glad_glPixelStorei;
+#define glPixelStorei glad_glPixelStorei
+GLAD_API_CALL PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset;
+#define glPolygonOffset glad_glPolygonOffset
+GLAD_API_CALL PFNGLREADPIXELSPROC glad_glReadPixels;
+#define glReadPixels glad_glReadPixels
+GLAD_API_CALL PFNGLRELEASESHADERCOMPILERPROC glad_glReleaseShaderCompiler;
+#define glReleaseShaderCompiler glad_glReleaseShaderCompiler
+GLAD_API_CALL PFNGLRENDERBUFFERSTORAGEPROC glad_glRenderbufferStorage;
+#define glRenderbufferStorage glad_glRenderbufferStorage
+GLAD_API_CALL PFNGLSAMPLECOVERAGEPROC glad_glSampleCoverage;
+#define glSampleCoverage glad_glSampleCoverage
+GLAD_API_CALL PFNGLSCISSORPROC glad_glScissor;
+#define glScissor glad_glScissor
+GLAD_API_CALL PFNGLSHADERBINARYPROC glad_glShaderBinary;
+#define glShaderBinary glad_glShaderBinary
+GLAD_API_CALL PFNGLSHADERSOURCEPROC glad_glShaderSource;
+#define glShaderSource glad_glShaderSource
+GLAD_API_CALL PFNGLSTENCILFUNCPROC glad_glStencilFunc;
+#define glStencilFunc glad_glStencilFunc
+GLAD_API_CALL PFNGLSTENCILFUNCSEPARATEPROC glad_glStencilFuncSeparate;
+#define glStencilFuncSeparate glad_glStencilFuncSeparate
+GLAD_API_CALL PFNGLSTENCILMASKPROC glad_glStencilMask;
+#define glStencilMask glad_glStencilMask
+GLAD_API_CALL PFNGLSTENCILMASKSEPARATEPROC glad_glStencilMaskSeparate;
+#define glStencilMaskSeparate glad_glStencilMaskSeparate
+GLAD_API_CALL PFNGLSTENCILOPPROC glad_glStencilOp;
+#define glStencilOp glad_glStencilOp
+GLAD_API_CALL PFNGLSTENCILOPSEPARATEPROC glad_glStencilOpSeparate;
+#define glStencilOpSeparate glad_glStencilOpSeparate
+GLAD_API_CALL PFNGLTEXIMAGE2DPROC glad_glTexImage2D;
+#define glTexImage2D glad_glTexImage2D
+GLAD_API_CALL PFNGLTEXPARAMETERFPROC glad_glTexParameterf;
+#define glTexParameterf glad_glTexParameterf
+GLAD_API_CALL PFNGLTEXPARAMETERFVPROC glad_glTexParameterfv;
+#define glTexParameterfv glad_glTexParameterfv
+GLAD_API_CALL PFNGLTEXPARAMETERIPROC glad_glTexParameteri;
+#define glTexParameteri glad_glTexParameteri
+GLAD_API_CALL PFNGLTEXPARAMETERIVPROC glad_glTexParameteriv;
+#define glTexParameteriv glad_glTexParameteriv
+GLAD_API_CALL PFNGLTEXSTORAGE1DEXTPROC glad_glTexStorage1DEXT;
+#define glTexStorage1DEXT glad_glTexStorage1DEXT
+GLAD_API_CALL PFNGLTEXSTORAGE2DEXTPROC glad_glTexStorage2DEXT;
+#define glTexStorage2DEXT glad_glTexStorage2DEXT
+GLAD_API_CALL PFNGLTEXSTORAGE3DEXTPROC glad_glTexStorage3DEXT;
+#define glTexStorage3DEXT glad_glTexStorage3DEXT
+GLAD_API_CALL PFNGLTEXSTORAGE3DMULTISAMPLEOESPROC glad_glTexStorage3DMultisampleOES;
+#define glTexStorage3DMultisampleOES glad_glTexStorage3DMultisampleOES
+GLAD_API_CALL PFNGLTEXSUBIMAGE2DPROC glad_glTexSubImage2D;
+#define glTexSubImage2D glad_glTexSubImage2D
+GLAD_API_CALL PFNGLTEXTURESTORAGE1DEXTPROC glad_glTextureStorage1DEXT;
+#define glTextureStorage1DEXT glad_glTextureStorage1DEXT
+GLAD_API_CALL PFNGLTEXTURESTORAGE2DEXTPROC glad_glTextureStorage2DEXT;
+#define glTextureStorage2DEXT glad_glTextureStorage2DEXT
+GLAD_API_CALL PFNGLTEXTURESTORAGE3DEXTPROC glad_glTextureStorage3DEXT;
+#define glTextureStorage3DEXT glad_glTextureStorage3DEXT
+GLAD_API_CALL PFNGLUNIFORM1FPROC glad_glUniform1f;
+#define glUniform1f glad_glUniform1f
+GLAD_API_CALL PFNGLUNIFORM1FVPROC glad_glUniform1fv;
+#define glUniform1fv glad_glUniform1fv
+GLAD_API_CALL PFNGLUNIFORM1IPROC glad_glUniform1i;
+#define glUniform1i glad_glUniform1i
+GLAD_API_CALL PFNGLUNIFORM1IVPROC glad_glUniform1iv;
+#define glUniform1iv glad_glUniform1iv
+GLAD_API_CALL PFNGLUNIFORM2FPROC glad_glUniform2f;
+#define glUniform2f glad_glUniform2f
+GLAD_API_CALL PFNGLUNIFORM2FVPROC glad_glUniform2fv;
+#define glUniform2fv glad_glUniform2fv
+GLAD_API_CALL PFNGLUNIFORM2IPROC glad_glUniform2i;
+#define glUniform2i glad_glUniform2i
+GLAD_API_CALL PFNGLUNIFORM2IVPROC glad_glUniform2iv;
+#define glUniform2iv glad_glUniform2iv
+GLAD_API_CALL PFNGLUNIFORM3FPROC glad_glUniform3f;
+#define glUniform3f glad_glUniform3f
+GLAD_API_CALL PFNGLUNIFORM3FVPROC glad_glUniform3fv;
+#define glUniform3fv glad_glUniform3fv
+GLAD_API_CALL PFNGLUNIFORM3IPROC glad_glUniform3i;
+#define glUniform3i glad_glUniform3i
+GLAD_API_CALL PFNGLUNIFORM3IVPROC glad_glUniform3iv;
+#define glUniform3iv glad_glUniform3iv
+GLAD_API_CALL PFNGLUNIFORM4FPROC glad_glUniform4f;
+#define glUniform4f glad_glUniform4f
+GLAD_API_CALL PFNGLUNIFORM4FVPROC glad_glUniform4fv;
+#define glUniform4fv glad_glUniform4fv
+GLAD_API_CALL PFNGLUNIFORM4IPROC glad_glUniform4i;
+#define glUniform4i glad_glUniform4i
+GLAD_API_CALL PFNGLUNIFORM4IVPROC glad_glUniform4iv;
+#define glUniform4iv glad_glUniform4iv
+GLAD_API_CALL PFNGLUNIFORMMATRIX2FVPROC glad_glUniformMatrix2fv;
+#define glUniformMatrix2fv glad_glUniformMatrix2fv
+GLAD_API_CALL PFNGLUNIFORMMATRIX3FVPROC glad_glUniformMatrix3fv;
+#define glUniformMatrix3fv glad_glUniformMatrix3fv
+GLAD_API_CALL PFNGLUNIFORMMATRIX4FVPROC glad_glUniformMatrix4fv;
+#define glUniformMatrix4fv glad_glUniformMatrix4fv
+GLAD_API_CALL PFNGLUNMAPBUFFEROESPROC glad_glUnmapBufferOES;
+#define glUnmapBufferOES glad_glUnmapBufferOES
+GLAD_API_CALL PFNGLUSEPROGRAMPROC glad_glUseProgram;
+#define glUseProgram glad_glUseProgram
+GLAD_API_CALL PFNGLVALIDATEPROGRAMPROC glad_glValidateProgram;
+#define glValidateProgram glad_glValidateProgram
+GLAD_API_CALL PFNGLVERTEXATTRIB1FPROC glad_glVertexAttrib1f;
+#define glVertexAttrib1f glad_glVertexAttrib1f
+GLAD_API_CALL PFNGLVERTEXATTRIB1FVPROC glad_glVertexAttrib1fv;
+#define glVertexAttrib1fv glad_glVertexAttrib1fv
+GLAD_API_CALL PFNGLVERTEXATTRIB2FPROC glad_glVertexAttrib2f;
+#define glVertexAttrib2f glad_glVertexAttrib2f
+GLAD_API_CALL PFNGLVERTEXATTRIB2FVPROC glad_glVertexAttrib2fv;
+#define glVertexAttrib2fv glad_glVertexAttrib2fv
+GLAD_API_CALL PFNGLVERTEXATTRIB3FPROC glad_glVertexAttrib3f;
+#define glVertexAttrib3f glad_glVertexAttrib3f
+GLAD_API_CALL PFNGLVERTEXATTRIB3FVPROC glad_glVertexAttrib3fv;
+#define glVertexAttrib3fv glad_glVertexAttrib3fv
+GLAD_API_CALL PFNGLVERTEXATTRIB4FPROC glad_glVertexAttrib4f;
+#define glVertexAttrib4f glad_glVertexAttrib4f
+GLAD_API_CALL PFNGLVERTEXATTRIB4FVPROC glad_glVertexAttrib4fv;
+#define glVertexAttrib4fv glad_glVertexAttrib4fv
+GLAD_API_CALL PFNGLVERTEXATTRIBPOINTERPROC glad_glVertexAttribPointer;
+#define glVertexAttribPointer glad_glVertexAttribPointer
+GLAD_API_CALL PFNGLVIEWPORTPROC glad_glViewport;
+#define glViewport glad_glViewport
+
+
+
+
+
+GLAD_API_CALL int gladLoadGLES2UserPtr( GLADuserptrloadfunc load, void *userptr);
+GLAD_API_CALL int gladLoadGLES2( GLADloadfunc load);
+
+
+
+#ifdef __cplusplus
+}
+#endif
+#endif /*LV_USE_EGL*/
+
+#endif
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/opengles/glad/src/egl.c b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/glad/src/egl.c
new file mode 100644
index 000000000..21bce5d2f
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/glad/src/egl.c
@@ -0,0 +1,353 @@
+/**
+ * SPDX-License-Identifier: (WTFPL OR CC0-1.0) AND Apache-2.0
+ */
+
+ #include "../../lv_opengles_egl.h"
+
+#if LV_USE_EGL
+
+#include
+#include
+#include
+#include "../include/glad/egl.h"
+
+#ifndef GLAD_IMPL_UTIL_C_
+#define GLAD_IMPL_UTIL_C_
+
+#ifdef _MSC_VER
+#define GLAD_IMPL_UTIL_SSCANF sscanf_s
+#else
+#define GLAD_IMPL_UTIL_SSCANF sscanf
+#endif
+
+#endif /* GLAD_IMPL_UTIL_C_ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+int GLAD_EGL_VERSION_1_0 = 0;
+int GLAD_EGL_VERSION_1_1 = 0;
+int GLAD_EGL_VERSION_1_2 = 0;
+int GLAD_EGL_VERSION_1_3 = 0;
+int GLAD_EGL_VERSION_1_4 = 0;
+int GLAD_EGL_VERSION_1_5 = 0;
+int GLAD_EGL_EXT_image_dma_buf_import = 0;
+int GLAD_EGL_EXT_image_dma_buf_import_modifiers = 0;
+int GLAD_EGL_EXT_platform_base = 0;
+int GLAD_EGL_EXT_platform_wayland = 0;
+int GLAD_EGL_KHR_cl_event2 = 0;
+int GLAD_EGL_KHR_fence_sync = 0;
+int GLAD_EGL_KHR_image = 0;
+int GLAD_EGL_KHR_image_base = 0;
+int GLAD_EGL_KHR_platform_gbm = 0;
+int GLAD_EGL_KHR_platform_wayland = 0;
+int GLAD_EGL_KHR_reusable_sync = 0;
+
+
+
+PFNEGLBINDAPIPROC glad_eglBindAPI = NULL;
+PFNEGLBINDTEXIMAGEPROC glad_eglBindTexImage = NULL;
+PFNEGLCHOOSECONFIGPROC glad_eglChooseConfig = NULL;
+PFNEGLCLIENTWAITSYNCPROC glad_eglClientWaitSync = NULL;
+PFNEGLCLIENTWAITSYNCKHRPROC glad_eglClientWaitSyncKHR = NULL;
+PFNEGLCOPYBUFFERSPROC glad_eglCopyBuffers = NULL;
+PFNEGLCREATECONTEXTPROC glad_eglCreateContext = NULL;
+PFNEGLCREATEIMAGEPROC glad_eglCreateImage = NULL;
+PFNEGLCREATEIMAGEKHRPROC glad_eglCreateImageKHR = NULL;
+PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC glad_eglCreatePbufferFromClientBuffer = NULL;
+PFNEGLCREATEPBUFFERSURFACEPROC glad_eglCreatePbufferSurface = NULL;
+PFNEGLCREATEPIXMAPSURFACEPROC glad_eglCreatePixmapSurface = NULL;
+PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC glad_eglCreatePlatformPixmapSurface = NULL;
+PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC glad_eglCreatePlatformPixmapSurfaceEXT = NULL;
+PFNEGLCREATEPLATFORMWINDOWSURFACEPROC glad_eglCreatePlatformWindowSurface = NULL;
+PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC glad_eglCreatePlatformWindowSurfaceEXT = NULL;
+PFNEGLCREATESYNCPROC glad_eglCreateSync = NULL;
+PFNEGLCREATESYNC64KHRPROC glad_eglCreateSync64KHR = NULL;
+PFNEGLCREATESYNCKHRPROC glad_eglCreateSyncKHR = NULL;
+PFNEGLCREATEWINDOWSURFACEPROC glad_eglCreateWindowSurface = NULL;
+PFNEGLDESTROYCONTEXTPROC glad_eglDestroyContext = NULL;
+PFNEGLDESTROYIMAGEPROC glad_eglDestroyImage = NULL;
+PFNEGLDESTROYIMAGEKHRPROC glad_eglDestroyImageKHR = NULL;
+PFNEGLDESTROYSURFACEPROC glad_eglDestroySurface = NULL;
+PFNEGLDESTROYSYNCPROC glad_eglDestroySync = NULL;
+PFNEGLDESTROYSYNCKHRPROC glad_eglDestroySyncKHR = NULL;
+PFNEGLGETCONFIGATTRIBPROC glad_eglGetConfigAttrib = NULL;
+PFNEGLGETCONFIGSPROC glad_eglGetConfigs = NULL;
+PFNEGLGETCURRENTCONTEXTPROC glad_eglGetCurrentContext = NULL;
+PFNEGLGETCURRENTDISPLAYPROC glad_eglGetCurrentDisplay = NULL;
+PFNEGLGETCURRENTSURFACEPROC glad_eglGetCurrentSurface = NULL;
+PFNEGLGETDISPLAYPROC glad_eglGetDisplay = NULL;
+PFNEGLGETERRORPROC glad_eglGetError = NULL;
+PFNEGLGETPLATFORMDISPLAYPROC glad_eglGetPlatformDisplay = NULL;
+PFNEGLGETPLATFORMDISPLAYEXTPROC glad_eglGetPlatformDisplayEXT = NULL;
+PFNEGLGETPROCADDRESSPROC glad_eglGetProcAddress = NULL;
+PFNEGLGETSYNCATTRIBPROC glad_eglGetSyncAttrib = NULL;
+PFNEGLGETSYNCATTRIBKHRPROC glad_eglGetSyncAttribKHR = NULL;
+PFNEGLINITIALIZEPROC glad_eglInitialize = NULL;
+PFNEGLMAKECURRENTPROC glad_eglMakeCurrent = NULL;
+PFNEGLQUERYAPIPROC glad_eglQueryAPI = NULL;
+PFNEGLQUERYCONTEXTPROC glad_eglQueryContext = NULL;
+PFNEGLQUERYDMABUFFORMATSEXTPROC glad_eglQueryDmaBufFormatsEXT = NULL;
+PFNEGLQUERYDMABUFMODIFIERSEXTPROC glad_eglQueryDmaBufModifiersEXT = NULL;
+PFNEGLQUERYSTRINGPROC glad_eglQueryString = NULL;
+PFNEGLQUERYSURFACEPROC glad_eglQuerySurface = NULL;
+PFNEGLRELEASETEXIMAGEPROC glad_eglReleaseTexImage = NULL;
+PFNEGLRELEASETHREADPROC glad_eglReleaseThread = NULL;
+PFNEGLSIGNALSYNCKHRPROC glad_eglSignalSyncKHR = NULL;
+PFNEGLSURFACEATTRIBPROC glad_eglSurfaceAttrib = NULL;
+PFNEGLSWAPBUFFERSPROC glad_eglSwapBuffers = NULL;
+PFNEGLSWAPINTERVALPROC glad_eglSwapInterval = NULL;
+PFNEGLTERMINATEPROC glad_eglTerminate = NULL;
+PFNEGLWAITCLIENTPROC glad_eglWaitClient = NULL;
+PFNEGLWAITGLPROC glad_eglWaitGL = NULL;
+PFNEGLWAITNATIVEPROC glad_eglWaitNative = NULL;
+PFNEGLWAITSYNCPROC glad_eglWaitSync = NULL;
+
+
+static void glad_egl_load_EGL_VERSION_1_0( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_EGL_VERSION_1_0) return;
+ glad_eglChooseConfig = (PFNEGLCHOOSECONFIGPROC) load(userptr, "eglChooseConfig");
+ glad_eglCopyBuffers = (PFNEGLCOPYBUFFERSPROC) load(userptr, "eglCopyBuffers");
+ glad_eglCreateContext = (PFNEGLCREATECONTEXTPROC) load(userptr, "eglCreateContext");
+ glad_eglCreatePbufferSurface = (PFNEGLCREATEPBUFFERSURFACEPROC) load(userptr, "eglCreatePbufferSurface");
+ glad_eglCreatePixmapSurface = (PFNEGLCREATEPIXMAPSURFACEPROC) load(userptr, "eglCreatePixmapSurface");
+ glad_eglCreateWindowSurface = (PFNEGLCREATEWINDOWSURFACEPROC) load(userptr, "eglCreateWindowSurface");
+ glad_eglDestroyContext = (PFNEGLDESTROYCONTEXTPROC) load(userptr, "eglDestroyContext");
+ glad_eglDestroySurface = (PFNEGLDESTROYSURFACEPROC) load(userptr, "eglDestroySurface");
+ glad_eglGetConfigAttrib = (PFNEGLGETCONFIGATTRIBPROC) load(userptr, "eglGetConfigAttrib");
+ glad_eglGetConfigs = (PFNEGLGETCONFIGSPROC) load(userptr, "eglGetConfigs");
+ glad_eglGetCurrentDisplay = (PFNEGLGETCURRENTDISPLAYPROC) load(userptr, "eglGetCurrentDisplay");
+ glad_eglGetCurrentSurface = (PFNEGLGETCURRENTSURFACEPROC) load(userptr, "eglGetCurrentSurface");
+ glad_eglGetDisplay = (PFNEGLGETDISPLAYPROC) load(userptr, "eglGetDisplay");
+ glad_eglGetError = (PFNEGLGETERRORPROC) load(userptr, "eglGetError");
+ glad_eglGetProcAddress = (PFNEGLGETPROCADDRESSPROC) load(userptr, "eglGetProcAddress");
+ glad_eglInitialize = (PFNEGLINITIALIZEPROC) load(userptr, "eglInitialize");
+ glad_eglMakeCurrent = (PFNEGLMAKECURRENTPROC) load(userptr, "eglMakeCurrent");
+ glad_eglQueryContext = (PFNEGLQUERYCONTEXTPROC) load(userptr, "eglQueryContext");
+ glad_eglQueryString = (PFNEGLQUERYSTRINGPROC) load(userptr, "eglQueryString");
+ glad_eglQuerySurface = (PFNEGLQUERYSURFACEPROC) load(userptr, "eglQuerySurface");
+ glad_eglSwapBuffers = (PFNEGLSWAPBUFFERSPROC) load(userptr, "eglSwapBuffers");
+ glad_eglTerminate = (PFNEGLTERMINATEPROC) load(userptr, "eglTerminate");
+ glad_eglWaitGL = (PFNEGLWAITGLPROC) load(userptr, "eglWaitGL");
+ glad_eglWaitNative = (PFNEGLWAITNATIVEPROC) load(userptr, "eglWaitNative");
+}
+static void glad_egl_load_EGL_VERSION_1_1( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_EGL_VERSION_1_1) return;
+ glad_eglBindTexImage = (PFNEGLBINDTEXIMAGEPROC) load(userptr, "eglBindTexImage");
+ glad_eglReleaseTexImage = (PFNEGLRELEASETEXIMAGEPROC) load(userptr, "eglReleaseTexImage");
+ glad_eglSurfaceAttrib = (PFNEGLSURFACEATTRIBPROC) load(userptr, "eglSurfaceAttrib");
+ glad_eglSwapInterval = (PFNEGLSWAPINTERVALPROC) load(userptr, "eglSwapInterval");
+}
+static void glad_egl_load_EGL_VERSION_1_2( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_EGL_VERSION_1_2) return;
+ glad_eglBindAPI = (PFNEGLBINDAPIPROC) load(userptr, "eglBindAPI");
+ glad_eglCreatePbufferFromClientBuffer = (PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC) load(userptr, "eglCreatePbufferFromClientBuffer");
+ glad_eglQueryAPI = (PFNEGLQUERYAPIPROC) load(userptr, "eglQueryAPI");
+ glad_eglReleaseThread = (PFNEGLRELEASETHREADPROC) load(userptr, "eglReleaseThread");
+ glad_eglWaitClient = (PFNEGLWAITCLIENTPROC) load(userptr, "eglWaitClient");
+}
+static void glad_egl_load_EGL_VERSION_1_4( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_EGL_VERSION_1_4) return;
+ glad_eglGetCurrentContext = (PFNEGLGETCURRENTCONTEXTPROC) load(userptr, "eglGetCurrentContext");
+}
+static void glad_egl_load_EGL_VERSION_1_5( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_EGL_VERSION_1_5) return;
+ glad_eglClientWaitSync = (PFNEGLCLIENTWAITSYNCPROC) load(userptr, "eglClientWaitSync");
+ glad_eglCreateImage = (PFNEGLCREATEIMAGEPROC) load(userptr, "eglCreateImage");
+ glad_eglCreatePlatformPixmapSurface = (PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC) load(userptr, "eglCreatePlatformPixmapSurface");
+ glad_eglCreatePlatformWindowSurface = (PFNEGLCREATEPLATFORMWINDOWSURFACEPROC) load(userptr, "eglCreatePlatformWindowSurface");
+ glad_eglCreateSync = (PFNEGLCREATESYNCPROC) load(userptr, "eglCreateSync");
+ glad_eglDestroyImage = (PFNEGLDESTROYIMAGEPROC) load(userptr, "eglDestroyImage");
+ glad_eglDestroySync = (PFNEGLDESTROYSYNCPROC) load(userptr, "eglDestroySync");
+ glad_eglGetPlatformDisplay = (PFNEGLGETPLATFORMDISPLAYPROC) load(userptr, "eglGetPlatformDisplay");
+ glad_eglGetSyncAttrib = (PFNEGLGETSYNCATTRIBPROC) load(userptr, "eglGetSyncAttrib");
+ glad_eglWaitSync = (PFNEGLWAITSYNCPROC) load(userptr, "eglWaitSync");
+}
+static void glad_egl_load_EGL_EXT_image_dma_buf_import_modifiers( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_EGL_EXT_image_dma_buf_import_modifiers) return;
+ glad_eglQueryDmaBufFormatsEXT = (PFNEGLQUERYDMABUFFORMATSEXTPROC) load(userptr, "eglQueryDmaBufFormatsEXT");
+ glad_eglQueryDmaBufModifiersEXT = (PFNEGLQUERYDMABUFMODIFIERSEXTPROC) load(userptr, "eglQueryDmaBufModifiersEXT");
+}
+static void glad_egl_load_EGL_EXT_platform_base( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_EGL_EXT_platform_base) return;
+ glad_eglCreatePlatformPixmapSurfaceEXT = (PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC) load(userptr, "eglCreatePlatformPixmapSurfaceEXT");
+ glad_eglCreatePlatformWindowSurfaceEXT = (PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC) load(userptr, "eglCreatePlatformWindowSurfaceEXT");
+ glad_eglGetPlatformDisplayEXT = (PFNEGLGETPLATFORMDISPLAYEXTPROC) load(userptr, "eglGetPlatformDisplayEXT");
+}
+static void glad_egl_load_EGL_KHR_cl_event2( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_EGL_KHR_cl_event2) return;
+ glad_eglCreateSync64KHR = (PFNEGLCREATESYNC64KHRPROC) load(userptr, "eglCreateSync64KHR");
+}
+static void glad_egl_load_EGL_KHR_fence_sync( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_EGL_KHR_fence_sync) return;
+ glad_eglClientWaitSyncKHR = (PFNEGLCLIENTWAITSYNCKHRPROC) load(userptr, "eglClientWaitSyncKHR");
+ glad_eglCreateSyncKHR = (PFNEGLCREATESYNCKHRPROC) load(userptr, "eglCreateSyncKHR");
+ glad_eglDestroySyncKHR = (PFNEGLDESTROYSYNCKHRPROC) load(userptr, "eglDestroySyncKHR");
+ glad_eglGetSyncAttribKHR = (PFNEGLGETSYNCATTRIBKHRPROC) load(userptr, "eglGetSyncAttribKHR");
+}
+static void glad_egl_load_EGL_KHR_image( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_EGL_KHR_image) return;
+ glad_eglCreateImageKHR = (PFNEGLCREATEIMAGEKHRPROC) load(userptr, "eglCreateImageKHR");
+ glad_eglDestroyImageKHR = (PFNEGLDESTROYIMAGEKHRPROC) load(userptr, "eglDestroyImageKHR");
+}
+static void glad_egl_load_EGL_KHR_image_base( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_EGL_KHR_image_base) return;
+ glad_eglCreateImageKHR = (PFNEGLCREATEIMAGEKHRPROC) load(userptr, "eglCreateImageKHR");
+ glad_eglDestroyImageKHR = (PFNEGLDESTROYIMAGEKHRPROC) load(userptr, "eglDestroyImageKHR");
+}
+static void glad_egl_load_EGL_KHR_reusable_sync( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_EGL_KHR_reusable_sync) return;
+ glad_eglClientWaitSyncKHR = (PFNEGLCLIENTWAITSYNCKHRPROC) load(userptr, "eglClientWaitSyncKHR");
+ glad_eglCreateSyncKHR = (PFNEGLCREATESYNCKHRPROC) load(userptr, "eglCreateSyncKHR");
+ glad_eglDestroySyncKHR = (PFNEGLDESTROYSYNCKHRPROC) load(userptr, "eglDestroySyncKHR");
+ glad_eglGetSyncAttribKHR = (PFNEGLGETSYNCATTRIBKHRPROC) load(userptr, "eglGetSyncAttribKHR");
+ glad_eglSignalSyncKHR = (PFNEGLSIGNALSYNCKHRPROC) load(userptr, "eglSignalSyncKHR");
+}
+
+
+static void glad_egl_resolve_aliases(void) {
+ if (glad_eglClientWaitSync == NULL && glad_eglClientWaitSyncKHR != NULL) glad_eglClientWaitSync = (PFNEGLCLIENTWAITSYNCPROC)glad_eglClientWaitSyncKHR;
+ if (glad_eglClientWaitSyncKHR == NULL && glad_eglClientWaitSync != NULL) glad_eglClientWaitSyncKHR = (PFNEGLCLIENTWAITSYNCKHRPROC)glad_eglClientWaitSync;
+ if (glad_eglCreateSync == NULL && glad_eglCreateSync64KHR != NULL) glad_eglCreateSync = (PFNEGLCREATESYNCPROC)glad_eglCreateSync64KHR;
+ if (glad_eglCreateSync64KHR == NULL && glad_eglCreateSync != NULL) glad_eglCreateSync64KHR = (PFNEGLCREATESYNC64KHRPROC)glad_eglCreateSync;
+ if (glad_eglDestroyImage == NULL && glad_eglDestroyImageKHR != NULL) glad_eglDestroyImage = (PFNEGLDESTROYIMAGEPROC)glad_eglDestroyImageKHR;
+ if (glad_eglDestroyImageKHR == NULL && glad_eglDestroyImage != NULL) glad_eglDestroyImageKHR = (PFNEGLDESTROYIMAGEKHRPROC)glad_eglDestroyImage;
+ if (glad_eglDestroySync == NULL && glad_eglDestroySyncKHR != NULL) glad_eglDestroySync = (PFNEGLDESTROYSYNCPROC)glad_eglDestroySyncKHR;
+ if (glad_eglDestroySyncKHR == NULL && glad_eglDestroySync != NULL) glad_eglDestroySyncKHR = (PFNEGLDESTROYSYNCKHRPROC)glad_eglDestroySync;
+}
+
+static int glad_egl_get_extensions(EGLDisplay display, const char **extensions) {
+ *extensions = eglQueryString(display, EGL_EXTENSIONS);
+
+ return extensions != NULL;
+}
+
+static int glad_egl_has_extension(const char *extensions, const char *ext) {
+ const char *loc;
+ const char *terminator;
+ if(extensions == NULL) {
+ return 0;
+ }
+ while(1) {
+ loc = strstr(extensions, ext);
+ if(loc == NULL) {
+ return 0;
+ }
+ terminator = loc + strlen(ext);
+ if((loc == extensions || *(loc - 1) == ' ') &&
+ (*terminator == ' ' || *terminator == '\0')) {
+ return 1;
+ }
+ extensions = terminator;
+ }
+}
+
+static GLADapiproc glad_egl_get_proc_from_userptr(void *userptr, const char *name) {
+ return (GLAD_GNUC_EXTENSION (GLADapiproc (*)(const char *name)) userptr)(name);
+}
+
+static int glad_egl_find_extensions_egl(EGLDisplay display) {
+ const char *extensions;
+ if (!glad_egl_get_extensions(display, &extensions)) return 0;
+
+ GLAD_EGL_EXT_image_dma_buf_import = glad_egl_has_extension(extensions, "EGL_EXT_image_dma_buf_import");
+ GLAD_EGL_EXT_image_dma_buf_import_modifiers = glad_egl_has_extension(extensions, "EGL_EXT_image_dma_buf_import_modifiers");
+ GLAD_EGL_EXT_platform_base = glad_egl_has_extension(extensions, "EGL_EXT_platform_base");
+ GLAD_EGL_EXT_platform_wayland = glad_egl_has_extension(extensions, "EGL_EXT_platform_wayland");
+ GLAD_EGL_KHR_cl_event2 = glad_egl_has_extension(extensions, "EGL_KHR_cl_event2");
+ GLAD_EGL_KHR_fence_sync = glad_egl_has_extension(extensions, "EGL_KHR_fence_sync");
+ GLAD_EGL_KHR_image = glad_egl_has_extension(extensions, "EGL_KHR_image");
+ GLAD_EGL_KHR_image_base = glad_egl_has_extension(extensions, "EGL_KHR_image_base");
+ GLAD_EGL_KHR_platform_gbm = glad_egl_has_extension(extensions, "EGL_KHR_platform_gbm");
+ GLAD_EGL_KHR_platform_wayland = glad_egl_has_extension(extensions, "EGL_KHR_platform_wayland");
+ GLAD_EGL_KHR_reusable_sync = glad_egl_has_extension(extensions, "EGL_KHR_reusable_sync");
+
+ return 1;
+}
+
+static int glad_egl_find_core_egl(EGLDisplay display) {
+ int major, minor;
+ const char *version;
+
+ if (display == NULL) {
+ display = EGL_NO_DISPLAY; /* this is usually NULL, better safe than sorry */
+ }
+ if (display == EGL_NO_DISPLAY) {
+ display = eglGetCurrentDisplay();
+ }
+#ifdef EGL_VERSION_1_4
+ if (display == EGL_NO_DISPLAY) {
+ display = eglGetDisplay(EGL_DEFAULT_DISPLAY);
+ }
+#endif
+#ifndef EGL_VERSION_1_5
+ if (display == EGL_NO_DISPLAY) {
+ return 0;
+ }
+#endif
+
+ version = eglQueryString(display, EGL_VERSION);
+ (void) eglGetError();
+
+ if (version == NULL) {
+ major = 1;
+ minor = 0;
+ } else {
+ GLAD_IMPL_UTIL_SSCANF(version, "%d.%d", &major, &minor);
+ }
+
+ GLAD_EGL_VERSION_1_0 = (major == 1 && minor >= 0) || major > 1;
+ GLAD_EGL_VERSION_1_1 = (major == 1 && minor >= 1) || major > 1;
+ GLAD_EGL_VERSION_1_2 = (major == 1 && minor >= 2) || major > 1;
+ GLAD_EGL_VERSION_1_3 = (major == 1 && minor >= 3) || major > 1;
+ GLAD_EGL_VERSION_1_4 = (major == 1 && minor >= 4) || major > 1;
+ GLAD_EGL_VERSION_1_5 = (major == 1 && minor >= 5) || major > 1;
+
+ return GLAD_MAKE_VERSION(major, minor);
+}
+
+int gladLoadEGLUserPtr(EGLDisplay display, GLADuserptrloadfunc load, void* userptr) {
+ int version;
+ eglGetDisplay = (PFNEGLGETDISPLAYPROC) load(userptr, "eglGetDisplay");
+ eglGetCurrentDisplay = (PFNEGLGETCURRENTDISPLAYPROC) load(userptr, "eglGetCurrentDisplay");
+ eglQueryString = (PFNEGLQUERYSTRINGPROC) load(userptr, "eglQueryString");
+ eglGetError = (PFNEGLGETERRORPROC) load(userptr, "eglGetError");
+ if (eglGetDisplay == NULL || eglGetCurrentDisplay == NULL || eglQueryString == NULL || eglGetError == NULL) return 0;
+
+ version = glad_egl_find_core_egl(display);
+ if (!version) return 0;
+ glad_egl_load_EGL_VERSION_1_0(load, userptr);
+ glad_egl_load_EGL_VERSION_1_1(load, userptr);
+ glad_egl_load_EGL_VERSION_1_2(load, userptr);
+ glad_egl_load_EGL_VERSION_1_4(load, userptr);
+ glad_egl_load_EGL_VERSION_1_5(load, userptr);
+
+ if (!glad_egl_find_extensions_egl(display)) return 0;
+ glad_egl_load_EGL_EXT_image_dma_buf_import_modifiers(load, userptr);
+ glad_egl_load_EGL_EXT_platform_base(load, userptr);
+ glad_egl_load_EGL_KHR_cl_event2(load, userptr);
+ glad_egl_load_EGL_KHR_fence_sync(load, userptr);
+ glad_egl_load_EGL_KHR_image(load, userptr);
+ glad_egl_load_EGL_KHR_image_base(load, userptr);
+ glad_egl_load_EGL_KHR_reusable_sync(load, userptr);
+
+ glad_egl_resolve_aliases();
+
+ return version;
+}
+
+int gladLoadEGL(EGLDisplay display, GLADloadfunc load) {
+ return gladLoadEGLUserPtr(display, glad_egl_get_proc_from_userptr, GLAD_GNUC_EXTENSION (void*) load);
+}
+
+
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*LV_USE_EGL*/
\ No newline at end of file
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/opengles/glad/src/gles2.c b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/glad/src/gles2.c
new file mode 100644
index 000000000..9bf6190e4
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/glad/src/gles2.c
@@ -0,0 +1,558 @@
+/**
+ * SPDX-License-Identifier: (WTFPL OR CC0-1.0) AND Apache-2.0
+ */
+#include "../../lv_opengles_egl.h"
+
+#if LV_USE_EGL
+
+#include
+#include
+#include
+#include "../include/glad/gles2.h"
+
+#ifndef GLAD_IMPL_UTIL_C_
+#define GLAD_IMPL_UTIL_C_
+
+#ifdef _MSC_VER
+#define GLAD_IMPL_UTIL_SSCANF sscanf_s
+#else
+#define GLAD_IMPL_UTIL_SSCANF sscanf
+#endif
+
+#endif /* GLAD_IMPL_UTIL_C_ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+int GLAD_GL_ES_VERSION_2_0 = 0;
+int GLAD_GL_APPLE_texture_max_level = 0;
+int GLAD_GL_ARM_rgba8 = 0;
+int GLAD_GL_EXT_color_buffer_float = 0;
+int GLAD_GL_EXT_color_buffer_half_float = 0;
+int GLAD_GL_EXT_texture_format_BGRA8888 = 0;
+int GLAD_GL_EXT_texture_storage = 0;
+int GLAD_GL_EXT_unpack_subimage = 0;
+int GLAD_GL_OES_depth24 = 0;
+int GLAD_GL_OES_mapbuffer = 0;
+int GLAD_GL_OES_rgb8_rgba8 = 0;
+int GLAD_GL_OES_texture_float = 0;
+int GLAD_GL_OES_texture_half_float = 0;
+int GLAD_GL_OES_texture_storage_multisample_2d_array = 0;
+int GLAD_GL_OES_vertex_array_object = 0;
+
+
+
+PFNGLACTIVETEXTUREPROC glad_glActiveTexture = NULL;
+PFNGLATTACHSHADERPROC glad_glAttachShader = NULL;
+PFNGLBINDATTRIBLOCATIONPROC glad_glBindAttribLocation = NULL;
+PFNGLBINDBUFFERPROC glad_glBindBuffer = NULL;
+PFNGLBINDFRAMEBUFFERPROC glad_glBindFramebuffer = NULL;
+PFNGLBINDRENDERBUFFERPROC glad_glBindRenderbuffer = NULL;
+PFNGLBINDTEXTUREPROC glad_glBindTexture = NULL;
+PFNGLBINDVERTEXARRAYOESPROC glad_glBindVertexArrayOES = NULL;
+PFNGLBLENDCOLORPROC glad_glBlendColor = NULL;
+PFNGLBLENDEQUATIONPROC glad_glBlendEquation = NULL;
+PFNGLBLENDEQUATIONSEPARATEPROC glad_glBlendEquationSeparate = NULL;
+PFNGLBLENDFUNCPROC glad_glBlendFunc = NULL;
+PFNGLBLENDFUNCSEPARATEPROC glad_glBlendFuncSeparate = NULL;
+PFNGLBUFFERDATAPROC glad_glBufferData = NULL;
+PFNGLBUFFERSUBDATAPROC glad_glBufferSubData = NULL;
+PFNGLCHECKFRAMEBUFFERSTATUSPROC glad_glCheckFramebufferStatus = NULL;
+PFNGLCLEARPROC glad_glClear = NULL;
+PFNGLCLEARCOLORPROC glad_glClearColor = NULL;
+PFNGLCLEARDEPTHFPROC glad_glClearDepthf = NULL;
+PFNGLCLEARSTENCILPROC glad_glClearStencil = NULL;
+PFNGLCOLORMASKPROC glad_glColorMask = NULL;
+PFNGLCOMPILESHADERPROC glad_glCompileShader = NULL;
+PFNGLCOMPRESSEDTEXIMAGE2DPROC glad_glCompressedTexImage2D = NULL;
+PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glad_glCompressedTexSubImage2D = NULL;
+PFNGLCOPYTEXIMAGE2DPROC glad_glCopyTexImage2D = NULL;
+PFNGLCOPYTEXSUBIMAGE2DPROC glad_glCopyTexSubImage2D = NULL;
+PFNGLCREATEPROGRAMPROC glad_glCreateProgram = NULL;
+PFNGLCREATESHADERPROC glad_glCreateShader = NULL;
+PFNGLCULLFACEPROC glad_glCullFace = NULL;
+PFNGLDELETEBUFFERSPROC glad_glDeleteBuffers = NULL;
+PFNGLDELETEFRAMEBUFFERSPROC glad_glDeleteFramebuffers = NULL;
+PFNGLDELETEPROGRAMPROC glad_glDeleteProgram = NULL;
+PFNGLDELETERENDERBUFFERSPROC glad_glDeleteRenderbuffers = NULL;
+PFNGLDELETESHADERPROC glad_glDeleteShader = NULL;
+PFNGLDELETETEXTURESPROC glad_glDeleteTextures = NULL;
+PFNGLDELETEVERTEXARRAYSOESPROC glad_glDeleteVertexArraysOES = NULL;
+PFNGLDEPTHFUNCPROC glad_glDepthFunc = NULL;
+PFNGLDEPTHMASKPROC glad_glDepthMask = NULL;
+PFNGLDEPTHRANGEFPROC glad_glDepthRangef = NULL;
+PFNGLDETACHSHADERPROC glad_glDetachShader = NULL;
+PFNGLDISABLEPROC glad_glDisable = NULL;
+PFNGLDISABLEVERTEXATTRIBARRAYPROC glad_glDisableVertexAttribArray = NULL;
+PFNGLDRAWARRAYSPROC glad_glDrawArrays = NULL;
+PFNGLDRAWELEMENTSPROC glad_glDrawElements = NULL;
+PFNGLENABLEPROC glad_glEnable = NULL;
+PFNGLENABLEVERTEXATTRIBARRAYPROC glad_glEnableVertexAttribArray = NULL;
+PFNGLFINISHPROC glad_glFinish = NULL;
+PFNGLFLUSHPROC glad_glFlush = NULL;
+PFNGLFRAMEBUFFERRENDERBUFFERPROC glad_glFramebufferRenderbuffer = NULL;
+PFNGLFRAMEBUFFERTEXTURE2DPROC glad_glFramebufferTexture2D = NULL;
+PFNGLFRONTFACEPROC glad_glFrontFace = NULL;
+PFNGLGENBUFFERSPROC glad_glGenBuffers = NULL;
+PFNGLGENFRAMEBUFFERSPROC glad_glGenFramebuffers = NULL;
+PFNGLGENRENDERBUFFERSPROC glad_glGenRenderbuffers = NULL;
+PFNGLGENTEXTURESPROC glad_glGenTextures = NULL;
+PFNGLGENVERTEXARRAYSOESPROC glad_glGenVertexArraysOES = NULL;
+PFNGLGENERATEMIPMAPPROC glad_glGenerateMipmap = NULL;
+PFNGLGETACTIVEATTRIBPROC glad_glGetActiveAttrib = NULL;
+PFNGLGETACTIVEUNIFORMPROC glad_glGetActiveUniform = NULL;
+PFNGLGETATTACHEDSHADERSPROC glad_glGetAttachedShaders = NULL;
+PFNGLGETATTRIBLOCATIONPROC glad_glGetAttribLocation = NULL;
+PFNGLGETBOOLEANVPROC glad_glGetBooleanv = NULL;
+PFNGLGETBUFFERPARAMETERIVPROC glad_glGetBufferParameteriv = NULL;
+PFNGLGETBUFFERPOINTERVOESPROC glad_glGetBufferPointervOES = NULL;
+PFNGLGETERRORPROC glad_glGetError = NULL;
+PFNGLGETFLOATVPROC glad_glGetFloatv = NULL;
+PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glad_glGetFramebufferAttachmentParameteriv = NULL;
+PFNGLGETINTEGERVPROC glad_glGetIntegerv = NULL;
+PFNGLGETPROGRAMINFOLOGPROC glad_glGetProgramInfoLog = NULL;
+PFNGLGETPROGRAMIVPROC glad_glGetProgramiv = NULL;
+PFNGLGETRENDERBUFFERPARAMETERIVPROC glad_glGetRenderbufferParameteriv = NULL;
+PFNGLGETSHADERINFOLOGPROC glad_glGetShaderInfoLog = NULL;
+PFNGLGETSHADERPRECISIONFORMATPROC glad_glGetShaderPrecisionFormat = NULL;
+PFNGLGETSHADERSOURCEPROC glad_glGetShaderSource = NULL;
+PFNGLGETSHADERIVPROC glad_glGetShaderiv = NULL;
+PFNGLGETSTRINGPROC glad_glGetString = NULL;
+PFNGLGETTEXPARAMETERFVPROC glad_glGetTexParameterfv = NULL;
+PFNGLGETTEXPARAMETERIVPROC glad_glGetTexParameteriv = NULL;
+PFNGLGETUNIFORMLOCATIONPROC glad_glGetUniformLocation = NULL;
+PFNGLGETUNIFORMFVPROC glad_glGetUniformfv = NULL;
+PFNGLGETUNIFORMIVPROC glad_glGetUniformiv = NULL;
+PFNGLGETVERTEXATTRIBPOINTERVPROC glad_glGetVertexAttribPointerv = NULL;
+PFNGLGETVERTEXATTRIBFVPROC glad_glGetVertexAttribfv = NULL;
+PFNGLGETVERTEXATTRIBIVPROC glad_glGetVertexAttribiv = NULL;
+PFNGLHINTPROC glad_glHint = NULL;
+PFNGLISBUFFERPROC glad_glIsBuffer = NULL;
+PFNGLISENABLEDPROC glad_glIsEnabled = NULL;
+PFNGLISFRAMEBUFFERPROC glad_glIsFramebuffer = NULL;
+PFNGLISPROGRAMPROC glad_glIsProgram = NULL;
+PFNGLISRENDERBUFFERPROC glad_glIsRenderbuffer = NULL;
+PFNGLISSHADERPROC glad_glIsShader = NULL;
+PFNGLISTEXTUREPROC glad_glIsTexture = NULL;
+PFNGLISVERTEXARRAYOESPROC glad_glIsVertexArrayOES = NULL;
+PFNGLLINEWIDTHPROC glad_glLineWidth = NULL;
+PFNGLLINKPROGRAMPROC glad_glLinkProgram = NULL;
+PFNGLMAPBUFFEROESPROC glad_glMapBufferOES = NULL;
+PFNGLPIXELSTOREIPROC glad_glPixelStorei = NULL;
+PFNGLPOLYGONOFFSETPROC glad_glPolygonOffset = NULL;
+PFNGLREADPIXELSPROC glad_glReadPixels = NULL;
+PFNGLRELEASESHADERCOMPILERPROC glad_glReleaseShaderCompiler = NULL;
+PFNGLRENDERBUFFERSTORAGEPROC glad_glRenderbufferStorage = NULL;
+PFNGLSAMPLECOVERAGEPROC glad_glSampleCoverage = NULL;
+PFNGLSCISSORPROC glad_glScissor = NULL;
+PFNGLSHADERBINARYPROC glad_glShaderBinary = NULL;
+PFNGLSHADERSOURCEPROC glad_glShaderSource = NULL;
+PFNGLSTENCILFUNCPROC glad_glStencilFunc = NULL;
+PFNGLSTENCILFUNCSEPARATEPROC glad_glStencilFuncSeparate = NULL;
+PFNGLSTENCILMASKPROC glad_glStencilMask = NULL;
+PFNGLSTENCILMASKSEPARATEPROC glad_glStencilMaskSeparate = NULL;
+PFNGLSTENCILOPPROC glad_glStencilOp = NULL;
+PFNGLSTENCILOPSEPARATEPROC glad_glStencilOpSeparate = NULL;
+PFNGLTEXIMAGE2DPROC glad_glTexImage2D = NULL;
+PFNGLTEXPARAMETERFPROC glad_glTexParameterf = NULL;
+PFNGLTEXPARAMETERFVPROC glad_glTexParameterfv = NULL;
+PFNGLTEXPARAMETERIPROC glad_glTexParameteri = NULL;
+PFNGLTEXPARAMETERIVPROC glad_glTexParameteriv = NULL;
+PFNGLTEXSTORAGE1DEXTPROC glad_glTexStorage1DEXT = NULL;
+PFNGLTEXSTORAGE2DEXTPROC glad_glTexStorage2DEXT = NULL;
+PFNGLTEXSTORAGE3DEXTPROC glad_glTexStorage3DEXT = NULL;
+PFNGLTEXSTORAGE3DMULTISAMPLEOESPROC glad_glTexStorage3DMultisampleOES = NULL;
+PFNGLTEXSUBIMAGE2DPROC glad_glTexSubImage2D = NULL;
+PFNGLTEXTURESTORAGE1DEXTPROC glad_glTextureStorage1DEXT = NULL;
+PFNGLTEXTURESTORAGE2DEXTPROC glad_glTextureStorage2DEXT = NULL;
+PFNGLTEXTURESTORAGE3DEXTPROC glad_glTextureStorage3DEXT = NULL;
+PFNGLUNIFORM1FPROC glad_glUniform1f = NULL;
+PFNGLUNIFORM1FVPROC glad_glUniform1fv = NULL;
+PFNGLUNIFORM1IPROC glad_glUniform1i = NULL;
+PFNGLUNIFORM1IVPROC glad_glUniform1iv = NULL;
+PFNGLUNIFORM2FPROC glad_glUniform2f = NULL;
+PFNGLUNIFORM2FVPROC glad_glUniform2fv = NULL;
+PFNGLUNIFORM2IPROC glad_glUniform2i = NULL;
+PFNGLUNIFORM2IVPROC glad_glUniform2iv = NULL;
+PFNGLUNIFORM3FPROC glad_glUniform3f = NULL;
+PFNGLUNIFORM3FVPROC glad_glUniform3fv = NULL;
+PFNGLUNIFORM3IPROC glad_glUniform3i = NULL;
+PFNGLUNIFORM3IVPROC glad_glUniform3iv = NULL;
+PFNGLUNIFORM4FPROC glad_glUniform4f = NULL;
+PFNGLUNIFORM4FVPROC glad_glUniform4fv = NULL;
+PFNGLUNIFORM4IPROC glad_glUniform4i = NULL;
+PFNGLUNIFORM4IVPROC glad_glUniform4iv = NULL;
+PFNGLUNIFORMMATRIX2FVPROC glad_glUniformMatrix2fv = NULL;
+PFNGLUNIFORMMATRIX3FVPROC glad_glUniformMatrix3fv = NULL;
+PFNGLUNIFORMMATRIX4FVPROC glad_glUniformMatrix4fv = NULL;
+PFNGLUNMAPBUFFEROESPROC glad_glUnmapBufferOES = NULL;
+PFNGLUSEPROGRAMPROC glad_glUseProgram = NULL;
+PFNGLVALIDATEPROGRAMPROC glad_glValidateProgram = NULL;
+PFNGLVERTEXATTRIB1FPROC glad_glVertexAttrib1f = NULL;
+PFNGLVERTEXATTRIB1FVPROC glad_glVertexAttrib1fv = NULL;
+PFNGLVERTEXATTRIB2FPROC glad_glVertexAttrib2f = NULL;
+PFNGLVERTEXATTRIB2FVPROC glad_glVertexAttrib2fv = NULL;
+PFNGLVERTEXATTRIB3FPROC glad_glVertexAttrib3f = NULL;
+PFNGLVERTEXATTRIB3FVPROC glad_glVertexAttrib3fv = NULL;
+PFNGLVERTEXATTRIB4FPROC glad_glVertexAttrib4f = NULL;
+PFNGLVERTEXATTRIB4FVPROC glad_glVertexAttrib4fv = NULL;
+PFNGLVERTEXATTRIBPOINTERPROC glad_glVertexAttribPointer = NULL;
+PFNGLVIEWPORTPROC glad_glViewport = NULL;
+
+
+static void glad_gl_load_GL_ES_VERSION_2_0( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_ES_VERSION_2_0) return;
+ glad_glActiveTexture = (PFNGLACTIVETEXTUREPROC) load(userptr, "glActiveTexture");
+ glad_glAttachShader = (PFNGLATTACHSHADERPROC) load(userptr, "glAttachShader");
+ glad_glBindAttribLocation = (PFNGLBINDATTRIBLOCATIONPROC) load(userptr, "glBindAttribLocation");
+ glad_glBindBuffer = (PFNGLBINDBUFFERPROC) load(userptr, "glBindBuffer");
+ glad_glBindFramebuffer = (PFNGLBINDFRAMEBUFFERPROC) load(userptr, "glBindFramebuffer");
+ glad_glBindRenderbuffer = (PFNGLBINDRENDERBUFFERPROC) load(userptr, "glBindRenderbuffer");
+ glad_glBindTexture = (PFNGLBINDTEXTUREPROC) load(userptr, "glBindTexture");
+ glad_glBlendColor = (PFNGLBLENDCOLORPROC) load(userptr, "glBlendColor");
+ glad_glBlendEquation = (PFNGLBLENDEQUATIONPROC) load(userptr, "glBlendEquation");
+ glad_glBlendEquationSeparate = (PFNGLBLENDEQUATIONSEPARATEPROC) load(userptr, "glBlendEquationSeparate");
+ glad_glBlendFunc = (PFNGLBLENDFUNCPROC) load(userptr, "glBlendFunc");
+ glad_glBlendFuncSeparate = (PFNGLBLENDFUNCSEPARATEPROC) load(userptr, "glBlendFuncSeparate");
+ glad_glBufferData = (PFNGLBUFFERDATAPROC) load(userptr, "glBufferData");
+ glad_glBufferSubData = (PFNGLBUFFERSUBDATAPROC) load(userptr, "glBufferSubData");
+ glad_glCheckFramebufferStatus = (PFNGLCHECKFRAMEBUFFERSTATUSPROC) load(userptr, "glCheckFramebufferStatus");
+ glad_glClear = (PFNGLCLEARPROC) load(userptr, "glClear");
+ glad_glClearColor = (PFNGLCLEARCOLORPROC) load(userptr, "glClearColor");
+ glad_glClearDepthf = (PFNGLCLEARDEPTHFPROC) load(userptr, "glClearDepthf");
+ glad_glClearStencil = (PFNGLCLEARSTENCILPROC) load(userptr, "glClearStencil");
+ glad_glColorMask = (PFNGLCOLORMASKPROC) load(userptr, "glColorMask");
+ glad_glCompileShader = (PFNGLCOMPILESHADERPROC) load(userptr, "glCompileShader");
+ glad_glCompressedTexImage2D = (PFNGLCOMPRESSEDTEXIMAGE2DPROC) load(userptr, "glCompressedTexImage2D");
+ glad_glCompressedTexSubImage2D = (PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) load(userptr, "glCompressedTexSubImage2D");
+ glad_glCopyTexImage2D = (PFNGLCOPYTEXIMAGE2DPROC) load(userptr, "glCopyTexImage2D");
+ glad_glCopyTexSubImage2D = (PFNGLCOPYTEXSUBIMAGE2DPROC) load(userptr, "glCopyTexSubImage2D");
+ glad_glCreateProgram = (PFNGLCREATEPROGRAMPROC) load(userptr, "glCreateProgram");
+ glad_glCreateShader = (PFNGLCREATESHADERPROC) load(userptr, "glCreateShader");
+ glad_glCullFace = (PFNGLCULLFACEPROC) load(userptr, "glCullFace");
+ glad_glDeleteBuffers = (PFNGLDELETEBUFFERSPROC) load(userptr, "glDeleteBuffers");
+ glad_glDeleteFramebuffers = (PFNGLDELETEFRAMEBUFFERSPROC) load(userptr, "glDeleteFramebuffers");
+ glad_glDeleteProgram = (PFNGLDELETEPROGRAMPROC) load(userptr, "glDeleteProgram");
+ glad_glDeleteRenderbuffers = (PFNGLDELETERENDERBUFFERSPROC) load(userptr, "glDeleteRenderbuffers");
+ glad_glDeleteShader = (PFNGLDELETESHADERPROC) load(userptr, "glDeleteShader");
+ glad_glDeleteTextures = (PFNGLDELETETEXTURESPROC) load(userptr, "glDeleteTextures");
+ glad_glDepthFunc = (PFNGLDEPTHFUNCPROC) load(userptr, "glDepthFunc");
+ glad_glDepthMask = (PFNGLDEPTHMASKPROC) load(userptr, "glDepthMask");
+ glad_glDepthRangef = (PFNGLDEPTHRANGEFPROC) load(userptr, "glDepthRangef");
+ glad_glDetachShader = (PFNGLDETACHSHADERPROC) load(userptr, "glDetachShader");
+ glad_glDisable = (PFNGLDISABLEPROC) load(userptr, "glDisable");
+ glad_glDisableVertexAttribArray = (PFNGLDISABLEVERTEXATTRIBARRAYPROC) load(userptr, "glDisableVertexAttribArray");
+ glad_glDrawArrays = (PFNGLDRAWARRAYSPROC) load(userptr, "glDrawArrays");
+ glad_glDrawElements = (PFNGLDRAWELEMENTSPROC) load(userptr, "glDrawElements");
+ glad_glEnable = (PFNGLENABLEPROC) load(userptr, "glEnable");
+ glad_glEnableVertexAttribArray = (PFNGLENABLEVERTEXATTRIBARRAYPROC) load(userptr, "glEnableVertexAttribArray");
+ glad_glFinish = (PFNGLFINISHPROC) load(userptr, "glFinish");
+ glad_glFlush = (PFNGLFLUSHPROC) load(userptr, "glFlush");
+ glad_glFramebufferRenderbuffer = (PFNGLFRAMEBUFFERRENDERBUFFERPROC) load(userptr, "glFramebufferRenderbuffer");
+ glad_glFramebufferTexture2D = (PFNGLFRAMEBUFFERTEXTURE2DPROC) load(userptr, "glFramebufferTexture2D");
+ glad_glFrontFace = (PFNGLFRONTFACEPROC) load(userptr, "glFrontFace");
+ glad_glGenBuffers = (PFNGLGENBUFFERSPROC) load(userptr, "glGenBuffers");
+ glad_glGenFramebuffers = (PFNGLGENFRAMEBUFFERSPROC) load(userptr, "glGenFramebuffers");
+ glad_glGenRenderbuffers = (PFNGLGENRENDERBUFFERSPROC) load(userptr, "glGenRenderbuffers");
+ glad_glGenTextures = (PFNGLGENTEXTURESPROC) load(userptr, "glGenTextures");
+ glad_glGenerateMipmap = (PFNGLGENERATEMIPMAPPROC) load(userptr, "glGenerateMipmap");
+ glad_glGetActiveAttrib = (PFNGLGETACTIVEATTRIBPROC) load(userptr, "glGetActiveAttrib");
+ glad_glGetActiveUniform = (PFNGLGETACTIVEUNIFORMPROC) load(userptr, "glGetActiveUniform");
+ glad_glGetAttachedShaders = (PFNGLGETATTACHEDSHADERSPROC) load(userptr, "glGetAttachedShaders");
+ glad_glGetAttribLocation = (PFNGLGETATTRIBLOCATIONPROC) load(userptr, "glGetAttribLocation");
+ glad_glGetBooleanv = (PFNGLGETBOOLEANVPROC) load(userptr, "glGetBooleanv");
+ glad_glGetBufferParameteriv = (PFNGLGETBUFFERPARAMETERIVPROC) load(userptr, "glGetBufferParameteriv");
+ glad_glGetError = (PFNGLGETERRORPROC) load(userptr, "glGetError");
+ glad_glGetFloatv = (PFNGLGETFLOATVPROC) load(userptr, "glGetFloatv");
+ glad_glGetFramebufferAttachmentParameteriv = (PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) load(userptr, "glGetFramebufferAttachmentParameteriv");
+ glad_glGetIntegerv = (PFNGLGETINTEGERVPROC) load(userptr, "glGetIntegerv");
+ glad_glGetProgramInfoLog = (PFNGLGETPROGRAMINFOLOGPROC) load(userptr, "glGetProgramInfoLog");
+ glad_glGetProgramiv = (PFNGLGETPROGRAMIVPROC) load(userptr, "glGetProgramiv");
+ glad_glGetRenderbufferParameteriv = (PFNGLGETRENDERBUFFERPARAMETERIVPROC) load(userptr, "glGetRenderbufferParameteriv");
+ glad_glGetShaderInfoLog = (PFNGLGETSHADERINFOLOGPROC) load(userptr, "glGetShaderInfoLog");
+ glad_glGetShaderPrecisionFormat = (PFNGLGETSHADERPRECISIONFORMATPROC) load(userptr, "glGetShaderPrecisionFormat");
+ glad_glGetShaderSource = (PFNGLGETSHADERSOURCEPROC) load(userptr, "glGetShaderSource");
+ glad_glGetShaderiv = (PFNGLGETSHADERIVPROC) load(userptr, "glGetShaderiv");
+ glad_glGetString = (PFNGLGETSTRINGPROC) load(userptr, "glGetString");
+ glad_glGetTexParameterfv = (PFNGLGETTEXPARAMETERFVPROC) load(userptr, "glGetTexParameterfv");
+ glad_glGetTexParameteriv = (PFNGLGETTEXPARAMETERIVPROC) load(userptr, "glGetTexParameteriv");
+ glad_glGetUniformLocation = (PFNGLGETUNIFORMLOCATIONPROC) load(userptr, "glGetUniformLocation");
+ glad_glGetUniformfv = (PFNGLGETUNIFORMFVPROC) load(userptr, "glGetUniformfv");
+ glad_glGetUniformiv = (PFNGLGETUNIFORMIVPROC) load(userptr, "glGetUniformiv");
+ glad_glGetVertexAttribPointerv = (PFNGLGETVERTEXATTRIBPOINTERVPROC) load(userptr, "glGetVertexAttribPointerv");
+ glad_glGetVertexAttribfv = (PFNGLGETVERTEXATTRIBFVPROC) load(userptr, "glGetVertexAttribfv");
+ glad_glGetVertexAttribiv = (PFNGLGETVERTEXATTRIBIVPROC) load(userptr, "glGetVertexAttribiv");
+ glad_glHint = (PFNGLHINTPROC) load(userptr, "glHint");
+ glad_glIsBuffer = (PFNGLISBUFFERPROC) load(userptr, "glIsBuffer");
+ glad_glIsEnabled = (PFNGLISENABLEDPROC) load(userptr, "glIsEnabled");
+ glad_glIsFramebuffer = (PFNGLISFRAMEBUFFERPROC) load(userptr, "glIsFramebuffer");
+ glad_glIsProgram = (PFNGLISPROGRAMPROC) load(userptr, "glIsProgram");
+ glad_glIsRenderbuffer = (PFNGLISRENDERBUFFERPROC) load(userptr, "glIsRenderbuffer");
+ glad_glIsShader = (PFNGLISSHADERPROC) load(userptr, "glIsShader");
+ glad_glIsTexture = (PFNGLISTEXTUREPROC) load(userptr, "glIsTexture");
+ glad_glLineWidth = (PFNGLLINEWIDTHPROC) load(userptr, "glLineWidth");
+ glad_glLinkProgram = (PFNGLLINKPROGRAMPROC) load(userptr, "glLinkProgram");
+ glad_glPixelStorei = (PFNGLPIXELSTOREIPROC) load(userptr, "glPixelStorei");
+ glad_glPolygonOffset = (PFNGLPOLYGONOFFSETPROC) load(userptr, "glPolygonOffset");
+ glad_glReadPixels = (PFNGLREADPIXELSPROC) load(userptr, "glReadPixels");
+ glad_glReleaseShaderCompiler = (PFNGLRELEASESHADERCOMPILERPROC) load(userptr, "glReleaseShaderCompiler");
+ glad_glRenderbufferStorage = (PFNGLRENDERBUFFERSTORAGEPROC) load(userptr, "glRenderbufferStorage");
+ glad_glSampleCoverage = (PFNGLSAMPLECOVERAGEPROC) load(userptr, "glSampleCoverage");
+ glad_glScissor = (PFNGLSCISSORPROC) load(userptr, "glScissor");
+ glad_glShaderBinary = (PFNGLSHADERBINARYPROC) load(userptr, "glShaderBinary");
+ glad_glShaderSource = (PFNGLSHADERSOURCEPROC) load(userptr, "glShaderSource");
+ glad_glStencilFunc = (PFNGLSTENCILFUNCPROC) load(userptr, "glStencilFunc");
+ glad_glStencilFuncSeparate = (PFNGLSTENCILFUNCSEPARATEPROC) load(userptr, "glStencilFuncSeparate");
+ glad_glStencilMask = (PFNGLSTENCILMASKPROC) load(userptr, "glStencilMask");
+ glad_glStencilMaskSeparate = (PFNGLSTENCILMASKSEPARATEPROC) load(userptr, "glStencilMaskSeparate");
+ glad_glStencilOp = (PFNGLSTENCILOPPROC) load(userptr, "glStencilOp");
+ glad_glStencilOpSeparate = (PFNGLSTENCILOPSEPARATEPROC) load(userptr, "glStencilOpSeparate");
+ glad_glTexImage2D = (PFNGLTEXIMAGE2DPROC) load(userptr, "glTexImage2D");
+ glad_glTexParameterf = (PFNGLTEXPARAMETERFPROC) load(userptr, "glTexParameterf");
+ glad_glTexParameterfv = (PFNGLTEXPARAMETERFVPROC) load(userptr, "glTexParameterfv");
+ glad_glTexParameteri = (PFNGLTEXPARAMETERIPROC) load(userptr, "glTexParameteri");
+ glad_glTexParameteriv = (PFNGLTEXPARAMETERIVPROC) load(userptr, "glTexParameteriv");
+ glad_glTexSubImage2D = (PFNGLTEXSUBIMAGE2DPROC) load(userptr, "glTexSubImage2D");
+ glad_glUniform1f = (PFNGLUNIFORM1FPROC) load(userptr, "glUniform1f");
+ glad_glUniform1fv = (PFNGLUNIFORM1FVPROC) load(userptr, "glUniform1fv");
+ glad_glUniform1i = (PFNGLUNIFORM1IPROC) load(userptr, "glUniform1i");
+ glad_glUniform1iv = (PFNGLUNIFORM1IVPROC) load(userptr, "glUniform1iv");
+ glad_glUniform2f = (PFNGLUNIFORM2FPROC) load(userptr, "glUniform2f");
+ glad_glUniform2fv = (PFNGLUNIFORM2FVPROC) load(userptr, "glUniform2fv");
+ glad_glUniform2i = (PFNGLUNIFORM2IPROC) load(userptr, "glUniform2i");
+ glad_glUniform2iv = (PFNGLUNIFORM2IVPROC) load(userptr, "glUniform2iv");
+ glad_glUniform3f = (PFNGLUNIFORM3FPROC) load(userptr, "glUniform3f");
+ glad_glUniform3fv = (PFNGLUNIFORM3FVPROC) load(userptr, "glUniform3fv");
+ glad_glUniform3i = (PFNGLUNIFORM3IPROC) load(userptr, "glUniform3i");
+ glad_glUniform3iv = (PFNGLUNIFORM3IVPROC) load(userptr, "glUniform3iv");
+ glad_glUniform4f = (PFNGLUNIFORM4FPROC) load(userptr, "glUniform4f");
+ glad_glUniform4fv = (PFNGLUNIFORM4FVPROC) load(userptr, "glUniform4fv");
+ glad_glUniform4i = (PFNGLUNIFORM4IPROC) load(userptr, "glUniform4i");
+ glad_glUniform4iv = (PFNGLUNIFORM4IVPROC) load(userptr, "glUniform4iv");
+ glad_glUniformMatrix2fv = (PFNGLUNIFORMMATRIX2FVPROC) load(userptr, "glUniformMatrix2fv");
+ glad_glUniformMatrix3fv = (PFNGLUNIFORMMATRIX3FVPROC) load(userptr, "glUniformMatrix3fv");
+ glad_glUniformMatrix4fv = (PFNGLUNIFORMMATRIX4FVPROC) load(userptr, "glUniformMatrix4fv");
+ glad_glUseProgram = (PFNGLUSEPROGRAMPROC) load(userptr, "glUseProgram");
+ glad_glValidateProgram = (PFNGLVALIDATEPROGRAMPROC) load(userptr, "glValidateProgram");
+ glad_glVertexAttrib1f = (PFNGLVERTEXATTRIB1FPROC) load(userptr, "glVertexAttrib1f");
+ glad_glVertexAttrib1fv = (PFNGLVERTEXATTRIB1FVPROC) load(userptr, "glVertexAttrib1fv");
+ glad_glVertexAttrib2f = (PFNGLVERTEXATTRIB2FPROC) load(userptr, "glVertexAttrib2f");
+ glad_glVertexAttrib2fv = (PFNGLVERTEXATTRIB2FVPROC) load(userptr, "glVertexAttrib2fv");
+ glad_glVertexAttrib3f = (PFNGLVERTEXATTRIB3FPROC) load(userptr, "glVertexAttrib3f");
+ glad_glVertexAttrib3fv = (PFNGLVERTEXATTRIB3FVPROC) load(userptr, "glVertexAttrib3fv");
+ glad_glVertexAttrib4f = (PFNGLVERTEXATTRIB4FPROC) load(userptr, "glVertexAttrib4f");
+ glad_glVertexAttrib4fv = (PFNGLVERTEXATTRIB4FVPROC) load(userptr, "glVertexAttrib4fv");
+ glad_glVertexAttribPointer = (PFNGLVERTEXATTRIBPOINTERPROC) load(userptr, "glVertexAttribPointer");
+ glad_glViewport = (PFNGLVIEWPORTPROC) load(userptr, "glViewport");
+}
+static void glad_gl_load_GL_EXT_texture_storage( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_EXT_texture_storage) return;
+ glad_glTexStorage1DEXT = (PFNGLTEXSTORAGE1DEXTPROC) load(userptr, "glTexStorage1DEXT");
+ glad_glTexStorage2DEXT = (PFNGLTEXSTORAGE2DEXTPROC) load(userptr, "glTexStorage2DEXT");
+ glad_glTexStorage3DEXT = (PFNGLTEXSTORAGE3DEXTPROC) load(userptr, "glTexStorage3DEXT");
+ glad_glTextureStorage1DEXT = (PFNGLTEXTURESTORAGE1DEXTPROC) load(userptr, "glTextureStorage1DEXT");
+ glad_glTextureStorage2DEXT = (PFNGLTEXTURESTORAGE2DEXTPROC) load(userptr, "glTextureStorage2DEXT");
+ glad_glTextureStorage3DEXT = (PFNGLTEXTURESTORAGE3DEXTPROC) load(userptr, "glTextureStorage3DEXT");
+}
+static void glad_gl_load_GL_OES_mapbuffer( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_OES_mapbuffer) return;
+ glad_glGetBufferPointervOES = (PFNGLGETBUFFERPOINTERVOESPROC) load(userptr, "glGetBufferPointervOES");
+ glad_glMapBufferOES = (PFNGLMAPBUFFEROESPROC) load(userptr, "glMapBufferOES");
+ glad_glUnmapBufferOES = (PFNGLUNMAPBUFFEROESPROC) load(userptr, "glUnmapBufferOES");
+}
+static void glad_gl_load_GL_OES_texture_storage_multisample_2d_array( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_OES_texture_storage_multisample_2d_array) return;
+ glad_glTexStorage3DMultisampleOES = (PFNGLTEXSTORAGE3DMULTISAMPLEOESPROC) load(userptr, "glTexStorage3DMultisampleOES");
+}
+static void glad_gl_load_GL_OES_vertex_array_object( GLADuserptrloadfunc load, void* userptr) {
+ if(!GLAD_GL_OES_vertex_array_object) return;
+ glad_glBindVertexArrayOES = (PFNGLBINDVERTEXARRAYOESPROC) load(userptr, "glBindVertexArrayOES");
+ glad_glDeleteVertexArraysOES = (PFNGLDELETEVERTEXARRAYSOESPROC) load(userptr, "glDeleteVertexArraysOES");
+ glad_glGenVertexArraysOES = (PFNGLGENVERTEXARRAYSOESPROC) load(userptr, "glGenVertexArraysOES");
+ glad_glIsVertexArrayOES = (PFNGLISVERTEXARRAYOESPROC) load(userptr, "glIsVertexArrayOES");
+}
+
+
+static void glad_gl_resolve_aliases(void) {
+}
+
+static void glad_gl_free_extensions(char **exts_i) {
+ if (exts_i != NULL) {
+ unsigned int index;
+ for(index = 0; exts_i[index]; index++) {
+ free((void *) (exts_i[index]));
+ }
+ free((void *)exts_i);
+ exts_i = NULL;
+ }
+}
+static int glad_gl_get_extensions( const char **out_exts, char ***out_exts_i) {
+#if defined(GL_ES_VERSION_3_0) || defined(GL_VERSION_3_0)
+ if (glad_glGetStringi != NULL && glad_glGetIntegerv != NULL) {
+ unsigned int index = 0;
+ unsigned int num_exts_i = 0;
+ char **exts_i = NULL;
+ glad_glGetIntegerv(GL_NUM_EXTENSIONS, (int*) &num_exts_i);
+ exts_i = (char **) malloc((num_exts_i + 1) * (sizeof *exts_i));
+ if (exts_i == NULL) {
+ return 0;
+ }
+ for(index = 0; index < num_exts_i; index++) {
+ const char *gl_str_tmp = (const char*) glad_glGetStringi(GL_EXTENSIONS, index);
+ size_t len = strlen(gl_str_tmp) + 1;
+
+ char *local_str = (char*) malloc(len * sizeof(char));
+ if(local_str == NULL) {
+ exts_i[index] = NULL;
+ glad_gl_free_extensions(exts_i);
+ return 0;
+ }
+
+ memcpy(local_str, gl_str_tmp, len * sizeof(char));
+ exts_i[index] = local_str;
+ }
+ exts_i[index] = NULL;
+
+ *out_exts_i = exts_i;
+
+ return 1;
+ }
+#else
+ GLAD_UNUSED(out_exts_i);
+#endif
+ if (glad_glGetString == NULL) {
+ return 0;
+ }
+ *out_exts = (const char *)glad_glGetString(GL_EXTENSIONS);
+ return 1;
+}
+static int glad_gl_has_extension(const char *exts, char **exts_i, const char *ext) {
+ if(exts_i) {
+ unsigned int index;
+ for(index = 0; exts_i[index]; index++) {
+ const char *e = exts_i[index];
+ if(strcmp(e, ext) == 0) {
+ return 1;
+ }
+ }
+ } else {
+ const char *extensions;
+ const char *loc;
+ const char *terminator;
+ extensions = exts;
+ if(extensions == NULL || ext == NULL) {
+ return 0;
+ }
+ while(1) {
+ loc = strstr(extensions, ext);
+ if(loc == NULL) {
+ return 0;
+ }
+ terminator = loc + strlen(ext);
+ if((loc == extensions || *(loc - 1) == ' ') &&
+ (*terminator == ' ' || *terminator == '\0')) {
+ return 1;
+ }
+ extensions = terminator;
+ }
+ }
+ return 0;
+}
+
+static GLADapiproc glad_gl_get_proc_from_userptr(void *userptr, const char* name) {
+ return (GLAD_GNUC_EXTENSION (GLADapiproc (*)(const char *name)) userptr)(name);
+}
+
+static int glad_gl_find_extensions_gles2(void) {
+ const char *exts = NULL;
+ char **exts_i = NULL;
+ if (!glad_gl_get_extensions(&exts, &exts_i)) return 0;
+
+ GLAD_GL_APPLE_texture_max_level = glad_gl_has_extension(exts, exts_i, "GL_APPLE_texture_max_level");
+ GLAD_GL_ARM_rgba8 = glad_gl_has_extension(exts, exts_i, "GL_ARM_rgba8");
+ GLAD_GL_EXT_color_buffer_float = glad_gl_has_extension(exts, exts_i, "GL_EXT_color_buffer_float");
+ GLAD_GL_EXT_color_buffer_half_float = glad_gl_has_extension(exts, exts_i, "GL_EXT_color_buffer_half_float");
+ GLAD_GL_EXT_texture_format_BGRA8888 = glad_gl_has_extension(exts, exts_i, "GL_EXT_texture_format_BGRA8888");
+ GLAD_GL_EXT_texture_storage = glad_gl_has_extension(exts, exts_i, "GL_EXT_texture_storage");
+ GLAD_GL_EXT_unpack_subimage = glad_gl_has_extension(exts, exts_i, "GL_EXT_unpack_subimage");
+ GLAD_GL_OES_depth24 = glad_gl_has_extension(exts, exts_i, "GL_OES_depth24");
+ GLAD_GL_OES_mapbuffer = glad_gl_has_extension(exts, exts_i, "GL_OES_mapbuffer");
+ GLAD_GL_OES_rgb8_rgba8 = glad_gl_has_extension(exts, exts_i, "GL_OES_rgb8_rgba8");
+ GLAD_GL_OES_texture_float = glad_gl_has_extension(exts, exts_i, "GL_OES_texture_float");
+ GLAD_GL_OES_texture_half_float = glad_gl_has_extension(exts, exts_i, "GL_OES_texture_half_float");
+ GLAD_GL_OES_texture_storage_multisample_2d_array = glad_gl_has_extension(exts, exts_i, "GL_OES_texture_storage_multisample_2d_array");
+ GLAD_GL_OES_vertex_array_object = glad_gl_has_extension(exts, exts_i, "GL_OES_vertex_array_object");
+
+ glad_gl_free_extensions(exts_i);
+
+ return 1;
+}
+
+static int glad_gl_find_core_gles2(void) {
+ int i;
+ const char* version;
+ const char* prefixes[] = {
+ "OpenGL ES-CM ",
+ "OpenGL ES-CL ",
+ "OpenGL ES ",
+ "OpenGL SC ",
+ NULL
+ };
+ int major = 0;
+ int minor = 0;
+ version = (const char*) glad_glGetString(GL_VERSION);
+ if (!version) return 0;
+ for (i = 0; prefixes[i]; i++) {
+ const size_t length = strlen(prefixes[i]);
+ if (strncmp(version, prefixes[i], length) == 0) {
+ version += length;
+ break;
+ }
+ }
+
+ GLAD_IMPL_UTIL_SSCANF(version, "%d.%d", &major, &minor);
+
+ GLAD_GL_ES_VERSION_2_0 = (major == 2 && minor >= 0) || major > 2;
+
+ return GLAD_MAKE_VERSION(major, minor);
+}
+
+int gladLoadGLES2UserPtr( GLADuserptrloadfunc load, void *userptr) {
+ int version;
+
+ glad_glGetString = (PFNGLGETSTRINGPROC) load(userptr, "glGetString");
+ if(glad_glGetString == NULL) return 0;
+ version = glad_gl_find_core_gles2();
+
+ glad_gl_load_GL_ES_VERSION_2_0(load, userptr);
+
+ if (!glad_gl_find_extensions_gles2()) return 0;
+ glad_gl_load_GL_EXT_texture_storage(load, userptr);
+ glad_gl_load_GL_OES_mapbuffer(load, userptr);
+ glad_gl_load_GL_OES_texture_storage_multisample_2d_array(load, userptr);
+ glad_gl_load_GL_OES_vertex_array_object(load, userptr);
+
+
+ glad_gl_resolve_aliases();
+
+ return version;
+}
+
+
+int gladLoadGLES2( GLADloadfunc load) {
+ return gladLoadGLES2UserPtr( glad_gl_get_proc_from_userptr, GLAD_GNUC_EXTENSION (void*) load);
+}
+
+
+
+
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*LV_USE_EGL*/
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/glfw/lv_opengles_debug.c b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/lv_opengles_debug.c
similarity index 93%
rename from lib/libesp32_lvgl/lvgl/src/drivers/glfw/lv_opengles_debug.c
rename to lib/libesp32_lvgl/lvgl/src/drivers/opengles/lv_opengles_debug.c
index 1b098be6b..c0d7ecf4c 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/glfw/lv_opengles_debug.c
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/lv_opengles_debug.c
@@ -10,6 +10,8 @@
#include "lv_opengles_debug.h"
#if LV_USE_OPENGLES
+#include "lv_opengles_private.h"
+
#include "../../misc/lv_log.h"
/*********************
@@ -36,6 +38,7 @@
* GLOBAL FUNCTIONS
**********************/
+#if LV_USE_OPENGLES_DEBUG
void GLClearError()
{
while(glGetError() != GL_NO_ERROR);
@@ -48,6 +51,7 @@ void GLLogCall(const char * function, const char * file, int line)
LV_LOG_ERROR("[OpenGL Error] (%d) %s %s:%d", error, function, file, line);
}
}
+#endif
/**********************
* STATIC FUNCTIONS
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/glfw/lv_opengles_debug.h b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/lv_opengles_debug.h
similarity index 61%
rename from lib/libesp32_lvgl/lvgl/src/drivers/glfw/lv_opengles_debug.h
rename to lib/libesp32_lvgl/lvgl/src/drivers/opengles/lv_opengles_debug.h
index aa8bbebe9..3e26302a9 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/glfw/lv_opengles_debug.h
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/lv_opengles_debug.h
@@ -10,17 +10,37 @@
extern "C" {
#endif
+/*********************
+ * INCLUDES
+ *********************/
+
#include "../../lv_conf_internal.h"
#if LV_USE_OPENGLES
-#include
-#include
-#include
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+/**********************
+ * GLOBAL PROTOTYPES
+ **********************/
+
+#if LV_USE_OPENGLES_DEBUG
void GLClearError(void);
void GLLogCall(const char * function, const char * file, int line);
+#endif
+
+/**********************
+ * MACROS
+ **********************/
+
#if LV_USE_OPENGLES_DEBUG
#define GL_CALL(x) do {\
GLClearError();\
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/opengles/lv_opengles_driver.c b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/lv_opengles_driver.c
new file mode 100644
index 000000000..90a4ee60c
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/lv_opengles_driver.c
@@ -0,0 +1,628 @@
+/**
+ * @file lv_opengles_driver.c
+ *
+ */
+
+/*********************
+ * INCLUDES
+ *********************/
+
+#include "lv_opengles_driver.h"
+#if LV_USE_OPENGLES
+
+#include "../../misc/lv_types.h"
+#include "../../misc/lv_profiler.h"
+#include "lv_opengles_debug.h"
+#include "lv_opengles_private.h"
+
+#include "../../display/lv_display.h"
+#include "../../misc/lv_area_private.h"
+#include "opengl_shader/lv_opengl_shader_internal.h"
+#include "assets/lv_opengles_shader.h"
+
+/*********************
+ * DEFINES
+ *********************/
+
+#define LV_OPENGLES_VERTEX_BUFFER_LEN 16
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+/**********************
+ * STATIC PROTOTYPES
+ **********************/
+static void lv_opengles_render_internal(unsigned int texture, const lv_area_t * texture_area, lv_opa_t opa,
+ int32_t disp_w, int32_t disp_h, const lv_area_t * texture_clip_area,
+ bool h_flip, bool v_flip, lv_color_t fill_color);
+static void lv_opengles_enable_blending(void);
+static void lv_opengles_vertex_buffer_init(const void * data, unsigned int size);
+static void lv_opengles_vertex_buffer_deinit(void);
+static void lv_opengles_vertex_buffer_bind(void);
+static void lv_opengles_vertex_buffer_unbind(void);
+static void lv_opengles_vertex_array_init(void);
+static void lv_opengles_vertex_array_deinit(void);
+static void lv_opengles_vertex_array_bind(void);
+static void lv_opengles_vertex_array_unbind(void);
+static void lv_opengles_vertex_array_add_buffer(void);
+static void lv_opengles_index_buffer_init(const unsigned int * data, unsigned int count);
+static void lv_opengles_index_buffer_deinit(void);
+static unsigned int lv_opengles_index_buffer_get_count(void);
+static void lv_opengles_index_buffer_bind(void);
+static void lv_opengles_index_buffer_unbind(void);
+static unsigned int lv_opengles_shader_manager_init(void);
+static lv_result_t lv_opengles_shader_init(void);
+static void lv_opengles_shader_deinit(void);
+static void lv_opengles_shader_bind(void);
+static void lv_opengles_shader_unbind(void);
+static int lv_opengles_shader_get_uniform_location(const char * name);
+static void lv_opengles_shader_set_uniform1i(const char * name, int value);
+static void lv_opengles_shader_set_uniformmatrix3fv(const char * name, int count, const float * values);
+static void lv_opengles_shader_set_uniform1f(const char * name, float value);
+static void lv_opengles_shader_set_uniform3f(const char * name, float value_0, float value_1, float value_2);
+static void lv_opengles_render_draw(void);
+static float lv_opengles_map_float(float x, float min_in, float max_in, float min_out, float max_out);
+static void populate_vertex_buffer(float vertex_buffer[LV_OPENGLES_VERTEX_BUFFER_LEN],
+ lv_display_rotation_t rotation, bool * h_flip, bool * v_flip,
+ float clip_x1, float clip_y1, float clip_x2, float clip_y2);
+
+/***********************
+ * GLOBAL PROTOTYPES
+ ***********************/
+
+/**********************
+ * STATIC VARIABLES
+ **********************/
+static bool is_init;
+
+static lv_opengl_shader_manager_t shader_manager;
+
+static unsigned int vertex_buffer_id = 0;
+
+static unsigned int vertex_array_id = 0;
+
+static unsigned int index_buffer_id = 0;
+static unsigned int index_buffer_count = 0;
+
+static unsigned int shader_id;
+
+static const char * shader_names[] = { "u_Texture", "u_ColorDepth", "u_VertexTransform", "u_Opa", "u_IsFill", "u_FillColor", "u_Hue", "u_Saturation", "u_Value" };
+static int shader_location[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0 };
+
+/**********************
+ * MACROS
+ **********************/
+
+/**********************
+ * GLOBAL FUNCTIONS
+ **********************/
+
+void lv_opengles_init(void)
+{
+ if(is_init) return;
+
+ lv_opengles_enable_blending();
+
+ unsigned int indices[] = {
+ 0, 1, 2,
+ 2, 3, 0
+ };
+
+ lv_opengles_vertex_buffer_init(NULL, sizeof(float) * LV_OPENGLES_VERTEX_BUFFER_LEN);
+
+ lv_opengles_vertex_array_init();
+ lv_opengles_vertex_array_add_buffer();
+
+ lv_opengles_index_buffer_init(indices, 6);
+
+ lv_result_t res = lv_opengles_shader_init();
+ LV_ASSERT_MSG(res == LV_RESULT_OK, "Failed to initialize shaders");
+
+ lv_opengles_shader_bind();
+
+ /* unbind everything */
+ lv_opengles_vertex_array_unbind();
+ lv_opengles_vertex_buffer_unbind();
+ lv_opengles_index_buffer_unbind();
+ lv_opengles_shader_unbind();
+
+ is_init = true;
+}
+
+void lv_opengles_deinit(void)
+{
+ if(!is_init) return;
+
+ lv_opengles_shader_deinit();
+ lv_opengles_index_buffer_deinit();
+ lv_opengles_vertex_buffer_deinit();
+ lv_opengles_vertex_array_deinit();
+
+ is_init = false;
+}
+
+void lv_opengles_render_texture(unsigned int texture, const lv_area_t * texture_area, lv_opa_t opa, int32_t disp_w,
+ int32_t disp_h, const lv_area_t * texture_clip_area, bool h_flip, bool v_flip)
+{
+ LV_PROFILER_DRAW_BEGIN;
+ lv_opengles_render_internal(texture, texture_area, opa, disp_w, disp_h, texture_clip_area, h_flip, v_flip,
+ lv_color_black());
+ LV_PROFILER_DRAW_END;
+}
+
+void lv_opengles_render_fill(lv_color_t color, const lv_area_t * area, lv_opa_t opa, int32_t disp_w, int32_t disp_h)
+{
+ LV_PROFILER_DRAW_BEGIN;
+ lv_opengles_render_internal(0, area, opa, disp_w, disp_h, area, false, false, color);
+ LV_PROFILER_DRAW_END;
+}
+
+void lv_opengles_render_display_texture(lv_display_t * display, bool h_flip, bool v_flip)
+{
+ LV_PROFILER_DRAW_BEGIN;
+ unsigned int texture = *(unsigned int *)lv_display_get_driver_data(display);
+ GL_CALL(glActiveTexture(GL_TEXTURE0));
+ GL_CALL(glBindTexture(GL_TEXTURE_2D, texture));
+
+ lv_display_rotation_t rotation = lv_display_get_rotation(display);
+
+ float vert_buffer[LV_OPENGLES_VERTEX_BUFFER_LEN];
+ populate_vertex_buffer(vert_buffer, rotation, &h_flip, &v_flip, 0.f, 0.f, 1.f, 1.f);
+ lv_opengles_vertex_buffer_init(vert_buffer, sizeof(vert_buffer));
+
+ float hor_scale = 1.0f;
+ float ver_scale = 1.0f;
+ float hor_translate = 0.0f;
+ float ver_translate = 0.0f;
+ hor_scale = h_flip ? -hor_scale : hor_scale;
+ ver_scale = v_flip ? ver_scale : -ver_scale;
+
+ const float transposed_matrix[9] = {
+ hor_scale, 0.0f, 0.0f,
+ 0.0f, ver_scale, 0.0f,
+ hor_translate, ver_translate, 1.0f
+ };
+
+ lv_opengles_shader_bind();
+ lv_opengles_shader_set_uniform1f("u_ColorDepth", LV_COLOR_DEPTH);
+ lv_opengles_shader_set_uniform1i("u_Texture", 0);
+ lv_opengles_shader_set_uniformmatrix3fv("u_VertexTransform", 1, transposed_matrix);
+ lv_opengles_shader_set_uniform1f("u_Opa", 1);
+ lv_opengles_shader_set_uniform1i("u_IsFill", 0);
+ lv_opengles_shader_set_uniform3f("u_FillColor", 1.0f, 1.0f, 1.0f);
+
+ lv_opengles_render_draw();
+ LV_PROFILER_DRAW_END;
+}
+
+void lv_opengles_render_clear(void)
+{
+ LV_PROFILER_DRAW_BEGIN;
+ GL_CALL(glClear(GL_COLOR_BUFFER_BIT));
+ LV_PROFILER_DRAW_END;
+}
+
+void lv_opengles_viewport(int32_t x, int32_t y, int32_t w, int32_t h)
+{
+ LV_PROFILER_DRAW_BEGIN;
+ GL_CALL(glViewport(x, y, w, h));
+ LV_PROFILER_DRAW_END;
+}
+
+/**********************
+ * STATIC FUNCTIONS
+ **********************/
+
+static void lv_opengles_render_internal(unsigned int texture, const lv_area_t * texture_area, lv_opa_t opa,
+ int32_t disp_w, int32_t disp_h, const lv_area_t * texture_clip_area, bool h_flip, bool v_flip, lv_color_t fill_color)
+{
+ LV_PROFILER_DRAW_BEGIN;
+ lv_area_t intersection;
+ if(!lv_area_intersect(&intersection, texture_area, texture_clip_area)) {
+ LV_PROFILER_DRAW_END;
+ return;
+ }
+
+ GL_CALL(glActiveTexture(GL_TEXTURE0));
+ GL_CALL(glBindTexture(GL_TEXTURE_2D, texture));
+
+ float tex_w = (float)lv_area_get_width(&intersection);
+ float tex_h = (float)lv_area_get_height(&intersection);
+
+ float hor_scale = tex_w / (float)disp_w;
+ float ver_scale = tex_h / (float)disp_h;
+ float hor_translate = (float)intersection.x1 / (float)disp_w * 2.0f - (1.0f - hor_scale);
+ float ver_translate = -((float)intersection.y1 / (float)disp_h * 2.0f - (1.0f - ver_scale));
+ hor_scale = h_flip ? -hor_scale : hor_scale;
+ ver_scale = v_flip ? ver_scale : -ver_scale;
+
+ if(texture != 0) {
+ float clip_x1 = h_flip ? lv_opengles_map_float(texture_clip_area->x2, texture_area->x2, texture_area->x1, 0.f, 1.f)
+ : lv_opengles_map_float(texture_clip_area->x1, texture_area->x1, texture_area->x2, 0.f, 1.f);
+ float clip_x2 = h_flip ? lv_opengles_map_float(texture_clip_area->x1, texture_area->x2, texture_area->x1, 0.f, 1.f)
+ : lv_opengles_map_float(texture_clip_area->x2, texture_area->x1, texture_area->x2, 0.f, 1.f);
+ float clip_y1 = v_flip ? lv_opengles_map_float(texture_clip_area->y2, texture_area->y2, texture_area->y1, 0.f, 1.f)
+ : lv_opengles_map_float(texture_clip_area->y1, texture_area->y1, texture_area->y2, 0.f, 1.f);
+ float clip_y2 = v_flip ? lv_opengles_map_float(texture_clip_area->y1, texture_area->y2, texture_area->y1, 0.f, 1.f)
+ : lv_opengles_map_float(texture_clip_area->y2, texture_area->y1, texture_area->y2, 0.f, 1.f);
+
+ float positions[LV_OPENGLES_VERTEX_BUFFER_LEN] = {
+ -1.f, 1.0f, clip_x1, clip_y2,
+ 1.0f, 1.0f, clip_x2, clip_y2,
+ 1.0f, -1.0f, clip_x2, clip_y1,
+ -1.f, -1.0f, clip_x1, clip_y1
+ };
+ lv_opengles_vertex_buffer_init(positions, sizeof(positions));
+ }
+
+ const float transposed_matrix[9] = {
+ hor_scale, 0.0f, 0.0f,
+ 0.0f, ver_scale, 0.0f,
+ hor_translate, ver_translate, 1.0f
+ };
+
+ lv_opengles_shader_bind();
+ lv_opengles_shader_set_uniform1f("u_ColorDepth", LV_COLOR_DEPTH);
+ lv_opengles_shader_set_uniform1i("u_Texture", 0);
+ lv_opengles_shader_set_uniformmatrix3fv("u_VertexTransform", 1, transposed_matrix);
+ lv_opengles_shader_set_uniform1f("u_Opa", (float)opa / (float)LV_OPA_100);
+ lv_opengles_shader_set_uniform1i("u_IsFill", texture == 0);
+ lv_opengles_shader_set_uniform3f("u_FillColor", (float)fill_color.red / 255.0f, (float)fill_color.green / 255.0f,
+ (float)fill_color.blue / 255.0f);
+ lv_opengles_render_draw();
+ LV_PROFILER_DRAW_END;
+}
+
+static void lv_opengles_enable_blending(void)
+{
+ GL_CALL(glEnable(GL_BLEND));
+ GL_CALL(glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA));
+}
+
+static void lv_opengles_vertex_buffer_init(const void * data, unsigned int size)
+{
+ if(vertex_buffer_id == 0) GL_CALL(glGenBuffers(1, &vertex_buffer_id));
+ GL_CALL(glBindBuffer(GL_ARRAY_BUFFER, vertex_buffer_id));
+ GL_CALL(glBufferData(GL_ARRAY_BUFFER, size, data, GL_DYNAMIC_DRAW));
+}
+
+static void lv_opengles_vertex_buffer_deinit(void)
+{
+ if(vertex_buffer_id == 0) return;
+ GL_CALL(glDeleteBuffers(1, &vertex_buffer_id));
+ vertex_buffer_id = 0;
+}
+
+static void lv_opengles_vertex_buffer_bind(void)
+{
+ GL_CALL(glBindBuffer(GL_ARRAY_BUFFER, vertex_buffer_id));
+}
+
+static void lv_opengles_vertex_buffer_unbind(void)
+{
+ GL_CALL(glBindBuffer(GL_ARRAY_BUFFER, 0));
+}
+
+static void lv_opengles_vertex_array_init(void)
+{
+ if(vertex_array_id == 0) GL_CALL(glGenVertexArrays(1, &vertex_array_id));
+}
+
+static void lv_opengles_vertex_array_deinit(void)
+{
+ if(vertex_array_id == 0) return;
+ GL_CALL(glDeleteVertexArrays(1, &vertex_array_id));
+ vertex_array_id = 0;
+}
+
+static void lv_opengles_vertex_array_bind(void)
+{
+ GL_CALL(glBindVertexArray(vertex_array_id));
+}
+
+static void lv_opengles_vertex_array_unbind(void)
+{
+ GL_CALL(glBindVertexArray(0));
+}
+
+static void lv_opengles_vertex_array_add_buffer(void)
+{
+ lv_opengles_vertex_buffer_bind();
+ intptr_t offset = 0;
+
+ for(unsigned int i = 0; i < 2; i++) {
+ lv_opengles_vertex_array_bind();
+ GL_CALL(glEnableVertexAttribArray(i));
+ GL_CALL(glVertexAttribPointer(i, 2, GL_FLOAT, GL_FALSE, 16, (const void *)offset));
+ offset += 2 * 4;
+ }
+}
+
+static void lv_opengles_index_buffer_init(const unsigned int * data, unsigned int count)
+{
+ index_buffer_count = count;
+ if(index_buffer_id == 0) GL_CALL(glGenBuffers(1, &index_buffer_id));
+
+ GL_CALL(glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, index_buffer_id));
+
+ GL_CALL(glBufferData(GL_ELEMENT_ARRAY_BUFFER, count * sizeof(GLuint), data, GL_STATIC_DRAW));
+}
+
+static void lv_opengles_index_buffer_deinit(void)
+{
+ if(index_buffer_id == 0) return;
+ GL_CALL(glDeleteBuffers(1, &index_buffer_id));
+ index_buffer_id = 0;
+}
+
+static unsigned int lv_opengles_index_buffer_get_count(void)
+{
+ return index_buffer_count;
+}
+
+static void lv_opengles_index_buffer_bind(void)
+{
+ GL_CALL(glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, index_buffer_id));
+}
+
+static void lv_opengles_index_buffer_unbind(void)
+{
+ GL_CALL(glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0));
+}
+
+static unsigned int lv_opengles_shader_manager_init(void)
+{
+ lv_opengl_shader_program_t * program = NULL;
+ for(lv_opengl_glsl_version version = LV_OPENGL_GLSL_VERSION_300ES; version < LV_OPENGL_GLSL_VERSION_LAST; ++version) {
+ LV_LOG_INFO("Trying GLSL version %s", lv_opengles_glsl_version_to_string(version));
+ lv_opengl_shader_portions_t portions;
+ lv_opengles_shader_get_source(&portions, version);
+ char * vertex_shader = lv_opengles_shader_get_vertex(version);
+ char * frag_shader = lv_opengles_shader_get_fragment(version);
+ lv_opengl_shader_manager_init(&shader_manager, portions.all, portions.count, vertex_shader, frag_shader);
+ lv_free(vertex_shader);
+ lv_free(frag_shader);
+
+ uint32_t frag_shader_hash;
+ uint32_t vert_shader_hash;
+
+ lv_result_t res = lv_opengl_shader_manager_select_shader(&shader_manager, "__MAIN__.frag", NULL, 0, version,
+ &frag_shader_hash);
+ if(res != LV_RESULT_OK) {
+ lv_opengl_shader_manager_deinit(&shader_manager);
+ continue;
+ }
+ res = lv_opengl_shader_manager_select_shader(&shader_manager, "__MAIN__.vert", NULL, 0, version, &vert_shader_hash);
+ if(res != LV_RESULT_OK) {
+ lv_opengl_shader_manager_deinit(&shader_manager);
+ continue;
+ }
+ program = lv_opengl_shader_manager_get_program(&shader_manager, frag_shader_hash, vert_shader_hash);
+ if(!program) {
+ lv_opengl_shader_manager_deinit(&shader_manager);
+ continue;
+ }
+ LV_LOG_INFO("Compiled shaders with version %s", lv_opengles_glsl_version_to_string(version));
+ break;
+ }
+
+ if(!program) {
+ LV_LOG_ERROR("Failed to initialize shaders");
+ return 0;
+ }
+ return lv_opengl_shader_program_get_id(program);
+}
+
+static lv_result_t lv_opengles_shader_init(void)
+{
+ if(shader_id != 0) {
+ return LV_RESULT_OK;
+ }
+ shader_id = lv_opengles_shader_manager_init();
+ return shader_id != 0 ? LV_RESULT_OK : LV_RESULT_INVALID;
+}
+
+static void lv_opengles_shader_deinit(void)
+{
+ if(shader_id == 0) return;
+ /* The program is part of the manager and as such will be destroyed inside */
+ lv_opengl_shader_manager_deinit(&shader_manager);
+ shader_id = 0;
+}
+
+static void lv_opengles_shader_bind(void)
+{
+ GL_CALL(glUseProgram(shader_id));
+}
+
+static void lv_opengles_shader_unbind(void)
+{
+ GL_CALL(glUseProgram(0));
+}
+
+static int lv_opengles_shader_get_uniform_location(const char * name)
+{
+ int id = -1;
+ for(size_t i = 0; i < sizeof(shader_location) / sizeof(int); i++) {
+ if(lv_strcmp(shader_names[i], name) == 0) {
+ id = i;
+ }
+ }
+
+ LV_ASSERT_FORMAT_MSG(id > -1, "Uniform location doesn't exist for '%s'. Check `shader_location` array", name);
+
+ if(shader_location[id] != 0) {
+ return shader_location[id];
+ }
+
+ int location;
+ GL_CALL(location = glGetUniformLocation(shader_id, name));
+ if(location == -1)
+ LV_LOG_WARN("Warning: uniform '%s' doesn't exist!", name);
+
+ shader_location[id] = location;
+ return location;
+}
+
+static void lv_opengles_shader_set_uniform1i(const char * name, int value)
+{
+ LV_PROFILER_DRAW_BEGIN;
+ GL_CALL(glUniform1i(lv_opengles_shader_get_uniform_location(name), value));
+ LV_PROFILER_DRAW_END;
+}
+
+static void lv_opengles_shader_set_uniformmatrix3fv(const char * name, int count, const float * values)
+{
+ LV_PROFILER_DRAW_BEGIN;
+ /*
+ * GLES2.0 doesn't support transposing the matrix via glUniformMatrix3fv so this is the transposed matrix
+ * https://registry.khronos.org/OpenGL/specs/es/2.0/es_full_spec_2.0.pdf page 47
+ */
+ GL_CALL(glUniformMatrix3fv(lv_opengles_shader_get_uniform_location(name), count, GL_FALSE, values));
+ LV_PROFILER_DRAW_END;
+}
+
+static void lv_opengles_shader_set_uniform1f(const char * name, float value)
+{
+ LV_PROFILER_DRAW_BEGIN;
+ GL_CALL(glUniform1f(lv_opengles_shader_get_uniform_location(name), value));
+ LV_PROFILER_DRAW_END;
+}
+
+static void lv_opengles_shader_set_uniform3f(const char * name, float value_0, float value_1, float value_2)
+{
+ LV_PROFILER_DRAW_BEGIN;
+ GL_CALL(glUniform3f(lv_opengles_shader_get_uniform_location(name), value_0, value_1, value_2));
+ LV_PROFILER_DRAW_END;
+}
+
+static void lv_opengles_render_draw(void)
+{
+ LV_PROFILER_DRAW_BEGIN;
+ lv_opengles_shader_bind();
+ lv_opengles_vertex_array_bind();
+ lv_opengles_index_buffer_bind();
+ unsigned int count = lv_opengles_index_buffer_get_count();
+ GL_CALL(glDrawElements(GL_TRIANGLES, count, GL_UNSIGNED_INT, NULL));
+ LV_PROFILER_DRAW_END;
+}
+
+/**
+ * Copied from `lv_map` in lv_math.h to operate on floats
+ */
+static float lv_opengles_map_float(float x, float min_in, float max_in, float min_out, float max_out)
+{
+ if(max_in >= min_in && x >= max_in) return max_out;
+ if(max_in >= min_in && x <= min_in) return min_out;
+
+ if(max_in <= min_in && x <= max_in) return max_out;
+ if(max_in <= min_in && x >= min_in) return min_out;
+
+ /**
+ * The equation should be:
+ * ((x - min_in) * delta_out) / delta in) + min_out
+ * To avoid rounding error reorder the operations:
+ * (x - min_in) * (delta_out / delta_min) + min_out
+ */
+
+ float delta_in = max_in - min_in;
+ float delta_out = max_out - min_out;
+
+ return ((x - min_in) * delta_out) / delta_in + min_out;
+}
+
+static void populate_vertex_buffer(float vertex_buffer[LV_OPENGLES_VERTEX_BUFFER_LEN],
+ lv_display_rotation_t rotation, bool * h_flip, bool * v_flip, float clip_x1, float clip_y1, float clip_x2,
+ float clip_y2)
+{
+#if !LV_USE_DRAW_OPENGLES
+ LV_UNUSED(h_flip);
+ LV_UNUSED(v_flip);
+#endif
+ switch(rotation) {
+ case LV_DISPLAY_ROTATION_0:
+ vertex_buffer[0] = -1.f;
+ vertex_buffer[1] = 1.0f;
+ vertex_buffer[2] = clip_x1;
+ vertex_buffer[3] = clip_y2;
+ vertex_buffer[4] = 1.0f;
+ vertex_buffer[5] = 1.0f;
+ vertex_buffer[6] = clip_x2;
+ vertex_buffer[7] = clip_y2;
+ vertex_buffer[8] = 1.0f;
+ vertex_buffer[9] = -1.0f;
+ vertex_buffer[10] = clip_x2;
+ vertex_buffer[11] = clip_y1;
+ vertex_buffer[12] = -1.f;
+ vertex_buffer[13] = -1.0f;
+ vertex_buffer[14] = clip_x1;
+ vertex_buffer[15] = clip_y1;
+ break;
+
+ case LV_DISPLAY_ROTATION_270:
+#if LV_USE_DRAW_OPENGLES
+ *h_flip = !*h_flip;
+ *v_flip = !*v_flip;
+#endif
+ vertex_buffer[0] = 1.0f;
+ vertex_buffer[1] = 1.0f;
+ vertex_buffer[2] = clip_x1;
+ vertex_buffer[3] = clip_y2;
+ vertex_buffer[4] = 1.0f;
+ vertex_buffer[5] = -1.0f;
+ vertex_buffer[6] = clip_x2;
+ vertex_buffer[7] = clip_y2;
+ vertex_buffer[8] = -1.f;
+ vertex_buffer[9] = -1.0f;
+ vertex_buffer[10] = clip_x2;
+ vertex_buffer[11] = clip_y1;
+ vertex_buffer[12] = -1.f;
+ vertex_buffer[13] = 1.0f;
+ vertex_buffer[14] = clip_x1;
+ vertex_buffer[15] = clip_y1;
+ break;
+
+ case LV_DISPLAY_ROTATION_180:
+ vertex_buffer[0] = 1.0f;
+ vertex_buffer[1] = -1.0f;
+ vertex_buffer[2] = clip_x1;
+ vertex_buffer[3] = clip_y2;
+ vertex_buffer[4] = -1.f;
+ vertex_buffer[5] = -1.0f;
+ vertex_buffer[6] = clip_x2;
+ vertex_buffer[7] = clip_y2;
+ vertex_buffer[8] = -1.f;
+ vertex_buffer[9] = 1.0f;
+ vertex_buffer[10] = clip_x2;
+ vertex_buffer[11] = clip_y1;
+ vertex_buffer[12] = 1.0f;
+ vertex_buffer[13] = 1.0f;
+ vertex_buffer[14] = clip_x1;
+ vertex_buffer[15] = clip_y1;
+ break;
+ case LV_DISPLAY_ROTATION_90:
+#if LV_USE_DRAW_OPENGLES
+ *h_flip = !*h_flip;
+ *v_flip = !*v_flip;
+#endif
+ vertex_buffer[0] = -1.f;
+ vertex_buffer[1] = -1.0f;
+ vertex_buffer[2] = clip_x1;
+ vertex_buffer[3] = clip_y2;
+ vertex_buffer[4] = -1.f;
+ vertex_buffer[5] = 1.0f;
+ vertex_buffer[6] = clip_x2;
+ vertex_buffer[7] = clip_y2;
+ vertex_buffer[8] = 1.0f;
+ vertex_buffer[9] = 1.0f;
+ vertex_buffer[10] = clip_x2;
+ vertex_buffer[11] = clip_y1;
+ vertex_buffer[12] = 1.0f;
+ vertex_buffer[13] = -1.0f;
+ vertex_buffer[14] = clip_x1;
+ vertex_buffer[15] = clip_y1;
+ break;
+ }
+}
+#endif /* LV_USE_OPENGLES */
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/glfw/lv_opengles_driver.h b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/lv_opengles_driver.h
similarity index 77%
rename from lib/libesp32_lvgl/lvgl/src/drivers/glfw/lv_opengles_driver.h
rename to lib/libesp32_lvgl/lvgl/src/drivers/opengles/lv_opengles_driver.h
index 34bda861d..67dcf5d27 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/glfw/lv_opengles_driver.h
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/lv_opengles_driver.h
@@ -34,13 +34,13 @@ extern "C" {
/**
* Initialize OpenGL
- * @note it is not necessary to call this if you use `lv_glfw_window_create`
+ * @note it is not necessary to call this if you use `lv_opengles_glfw_window_create`
*/
void lv_opengles_init(void);
/**
* Deinitialize OpenGL
- * @note it is not necessary to call this if you use `lv_glfw_window_create`
+ * @note it is not necessary to call this if you use `lv_opengles_glfw_window_create`
*/
void lv_opengles_deinit(void);
@@ -51,9 +51,19 @@ void lv_opengles_deinit(void);
* @param opa opacity to blend the texture with existing contents
* @param disp_w width of the window/framebuffer being rendered to
* @param disp_h height of the window/framebuffer being rendered to
+ * @param h_flip horizontal flip
+ * @param v_flip vertical flip
*/
void lv_opengles_render_texture(unsigned int texture, const lv_area_t * texture_area, lv_opa_t opa, int32_t disp_w,
- int32_t disp_h, const lv_area_t * texture_clip_area, bool flip);
+ int32_t disp_h, const lv_area_t * texture_clip_area, bool h_flip, bool v_flip);
+
+/**
+ * Render a display texture - Supports rotation
+ * @param display LVGL Texture display. Created with the `lv_opengles_texture` module
+ * @param h_flip horizontal flip
+ * @param v_flip vertical flip
+ */
+void lv_opengles_render_display_texture(lv_display_t * display, bool h_flip, bool v_flip);
/**
* Render a fill
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/opengles/lv_opengles_egl.c b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/lv_opengles_egl.c
new file mode 100644
index 000000000..05cd3d265
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/lv_opengles_egl.c
@@ -0,0 +1,558 @@
+/**
+ * @file lv_opengles_egl.c
+ *
+ */
+
+/*********************
+ * INCLUDES
+ *********************/
+#include "lv_opengles_egl.h"
+#include
+
+#if LV_USE_EGL
+
+#include
+
+#include
+#include "lv_opengles_debug.h"
+
+#include "glad/include/glad/egl.h"
+#include "../../misc/lv_assert.h"
+#include "../../misc/lv_log.h"
+#include "../../misc/lv_types.h"
+#include "../../misc/lv_types.h"
+#include "../../stdlib/lv_mem.h"
+#include "lv_opengles_private.h"
+#include "lv_opengles_egl_private.h"
+#include "lv_opengles_driver.h"
+
+/*********************
+* DEFINES
+*********************/
+
+/**********************
+* TYPEDEFS
+**********************/
+
+/**********************
+* STATIC PROTOTYPES
+**********************/
+
+static lv_result_t load_egl(lv_opengles_egl_t * ctx);
+static EGLDisplay create_egl_display(lv_opengles_egl_t * ctx);
+static EGLSurface create_egl_surface(lv_opengles_egl_t * ctx);
+static EGLContext create_egl_context(lv_opengles_egl_t * ctx);
+static EGLConfig create_egl_config(lv_opengles_egl_t * ctx);
+static lv_result_t lv_egl_config_from_egl_config(lv_opengles_egl_t * ctx, lv_egl_config_t * lv_egl_config,
+ EGLConfig egl_config);
+static void * create_native_window(lv_opengles_egl_t * ctx);
+static lv_result_t get_native_config(lv_opengles_egl_t * ctx, EGLint * native_id, uint64_t ** mods, size_t * count);
+static GLADapiproc glad_egl_load_cb(void * userdata, const char * name);
+
+/**********************
+* STATIC VARIABLES
+**********************/
+
+/**********************
+* MACROS
+**********************/
+
+/**********************
+* GLOBAL FUNCTIONS
+**********************/
+
+lv_opengles_egl_t * lv_opengles_egl_context_create(const lv_egl_interface_t * interface)
+{
+ lv_opengles_egl_t * ctx = lv_zalloc(sizeof(*ctx));
+ LV_ASSERT_MALLOC(ctx);
+ if(!ctx) {
+ LV_LOG_ERROR("Failed to create egl context");
+ return NULL;
+ }
+ ctx->interface = *interface;
+ ctx->vsync = false;
+
+ lv_result_t res = load_egl(ctx);
+ if(res != LV_RESULT_OK) {
+ LV_LOG_ERROR("Failed to load egl ");
+ lv_free(ctx);
+ return NULL;
+ }
+ lv_opengles_init();
+ return ctx;
+}
+
+void lv_opengles_egl_context_destroy(lv_opengles_egl_t * ctx)
+{
+ if(ctx->egl_display) {
+ eglMakeCurrent(ctx->egl_display, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
+ if(ctx->egl_context) {
+ eglDestroyContext(ctx->egl_display, ctx->egl_context);
+ }
+ ctx->egl_context = EGL_NO_CONTEXT;
+ }
+ if(ctx->egl_surface && ctx->egl_display) {
+ eglDestroySurface(ctx->egl_display, ctx->egl_surface);
+ ctx->egl_surface = EGL_NO_SURFACE;
+ }
+
+ if(ctx->egl_lib_handle) {
+ dlclose(ctx->egl_lib_handle);
+ }
+ if(ctx->opengl_lib_handle) {
+ dlclose(ctx->opengl_lib_handle);
+ }
+
+ if(ctx->native_window && ctx->interface.destroy_window_cb) {
+ ctx->interface.destroy_window_cb(ctx->interface.driver_data, (void *)ctx->native_window);
+ ctx->native_window = 0;
+ }
+ if(ctx->egl_display) {
+ eglTerminate(ctx->egl_display);
+ ctx->egl_display = EGL_NO_DISPLAY;
+ }
+ ctx->egl_config = NULL;
+ lv_free(ctx);
+}
+
+void lv_opengles_egl_clear(lv_opengles_egl_t * ctx)
+{
+ LV_UNUSED(ctx);
+ GL_CALL(glClearColor(0.f, 0.f, 0.f, 1.0f));
+ GL_CALL(glDepthRangef(-1.0, 1.0));
+ GL_CALL(glDepthFunc(GL_ALWAYS));
+ GL_CALL(glClearDepthf(1.0f));
+ GL_CALL(glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT));
+}
+
+void lv_opengles_egl_update(lv_opengles_egl_t * ctx)
+{
+ eglSwapBuffers(ctx->egl_display, ctx->egl_surface);
+ ctx->interface.flip_cb(ctx->interface.driver_data, ctx->vsync);
+}
+
+
+/**********************
+* STATIC FUNCTIONS
+**********************/
+
+static void * load_lib(const char ** libs, size_t count)
+{
+ const int mode = RTLD_NOW | RTLD_NODELETE;
+ for(size_t i = 0; i < count; ++i) {
+
+ void * handle = dlopen(libs[i], mode);
+ if(handle) {
+ return handle;
+ }
+ }
+ return NULL;
+}
+static void * load_egl_lib(void)
+{
+ const char * egl_libs[] = {"libEGL.so", "libEGL.so.1"};
+ return load_lib(egl_libs, sizeof(egl_libs) / sizeof(egl_libs[0]));
+}
+static void * load_gl_lib(void)
+{
+ const char * gl_libs[] = {"libGLESv2.so", "libGLESv2.so.2"};
+ return load_lib(gl_libs, sizeof(gl_libs) / sizeof(gl_libs[0]));
+}
+
+static lv_result_t load_egl(lv_opengles_egl_t * ctx)
+{
+ ctx->egl_lib_handle = load_egl_lib();
+ if(!ctx->egl_lib_handle) {
+ LV_LOG_ERROR("Failed to load egl shared lib: %s", dlerror());
+ goto err;
+ }
+
+ ctx->egl_display = create_egl_display(ctx);
+ if(!ctx->egl_display) {
+ LV_LOG_ERROR("Failed to create egl display");
+ goto egl_display_err;
+ }
+
+ if(!gladLoadEGLUserPtr(ctx->egl_display, glad_egl_load_cb, ctx->egl_lib_handle)) {
+ LV_LOG_ERROR("Failed to load EGL entry points");
+ goto load_egl_functions_err;
+ }
+
+ if(eglBindAPI && !eglBindAPI(EGL_OPENGL_ES_API)) {
+ LV_LOG_ERROR("Failed to bind api");
+ goto err;
+ }
+
+ ctx->opengl_lib_handle = load_gl_lib();
+ if(!ctx->opengl_lib_handle) {
+ LV_LOG_ERROR("Failed to load OpenGL library. %s", dlerror());
+ goto opengl_lib_err;
+ }
+
+ ctx->egl_config = create_egl_config(ctx);
+ if(!ctx->egl_config) {
+ LV_LOG_ERROR("Failed to create EGL config. Error code: %#x", eglGetError());
+ goto egl_config_err;
+ }
+
+ ctx->native_window = (EGLNativeWindowType)create_native_window(ctx);
+ if(!ctx->native_window) {
+ LV_LOG_ERROR("Failed to create native window");
+ goto create_window_err;
+
+ }
+ ctx->egl_surface = create_egl_surface(ctx);
+ if(!ctx->egl_surface) {
+ LV_LOG_ERROR("Failed to create EGL surface. Error code: %#x", eglGetError());
+ goto egl_surface_err;
+ }
+
+ ctx->egl_context = create_egl_context(ctx);
+ if(!ctx->egl_context) {
+ LV_LOG_ERROR("Failed to create EGL context. Error code: %#x", eglGetError());
+ goto egl_context_err;
+ }
+
+ if(!eglMakeCurrent(ctx->egl_display, ctx->egl_surface, ctx->egl_surface, ctx->egl_context)) {
+ LV_LOG_ERROR("Failed to set current egl context. Error code: %#x", eglGetError());
+ goto egl_make_current_context_err;
+ }
+
+ if(!eglSwapInterval(ctx->egl_display, 0)) {
+ LV_LOG_WARN("Can't set egl swap interval");
+ }
+
+ if(!gladLoadGLES2UserPtr(glad_egl_load_cb, ctx->opengl_lib_handle)) {
+ LV_LOG_ERROR("Failed to load load OpenGL entry points");
+ goto load_opengl_functions_err;
+ }
+
+ return LV_RESULT_OK;
+
+load_opengl_functions_err:
+ eglMakeCurrent(ctx->egl_display, NULL, NULL, NULL);
+ eglDestroyContext(ctx->egl_display, ctx->egl_context);
+egl_make_current_context_err:
+ ctx->egl_context = NULL;
+egl_context_err:
+ ctx->egl_surface = NULL;
+egl_surface_err:
+ ctx->interface.destroy_window_cb(ctx->interface.driver_data, (void *)ctx->native_window);
+ ctx->native_window = 0;
+create_window_err:
+ ctx->egl_config = NULL;
+egl_config_err:
+ dlclose(ctx->opengl_lib_handle);
+ ctx->opengl_lib_handle = NULL;
+opengl_lib_err:
+ ctx->egl_display = NULL;
+load_egl_functions_err:
+egl_display_err:
+ dlclose(ctx->egl_lib_handle);
+ ctx->egl_lib_handle = NULL;
+err:
+ return LV_RESULT_INVALID;
+}
+
+static EGLDisplay create_egl_display(lv_opengles_egl_t * ctx)
+{
+ union {
+ PFNEGLQUERYSTRINGPROC fn;
+ void * ptr;
+ } egl_query_string;
+
+ union {
+ PFNEGLGETPROCADDRESSPROC fn;
+ void * ptr;
+ } egl_get_proc_address;
+
+ union {
+ PFNEGLGETERRORPROC fn;
+ void * ptr;
+ } egl_get_error;
+
+ union {
+ PFNEGLGETDISPLAYPROC fn;
+ void * ptr;
+ } egl_get_display;
+
+ union {
+ PFNEGLINITIALIZEPROC fn;
+ void * ptr;
+ } egl_initialize;
+
+ EGLDisplay display = NULL;
+
+ egl_get_proc_address.ptr = dlsym(ctx->egl_lib_handle, "eglGetProcAddress");
+ if(!egl_get_proc_address.ptr) {
+ LV_LOG_ERROR("Failed to load eglGetProcAddress");
+ return NULL;
+ }
+
+ egl_query_string.ptr = dlsym(ctx->egl_lib_handle, "eglQueryString");
+ if(!egl_query_string.ptr) {
+ LV_LOG_ERROR("Failed to load eglQueryString");
+ return NULL;
+ }
+
+ egl_get_display.ptr = dlsym(ctx->egl_lib_handle, "eglGetDisplay");
+ if(!egl_get_display.ptr) {
+ LV_LOG_ERROR("Failed to load eglGetDisplay");
+ return NULL;
+ }
+
+ egl_get_error.ptr = dlsym(ctx->egl_lib_handle, "eglGetError");
+ if(!egl_get_error.ptr) {
+ LV_LOG_ERROR("Failed to load eglGetError");
+ return NULL;
+ }
+
+ egl_initialize.ptr = dlsym(ctx->egl_lib_handle, "eglInitialize");
+ if(!egl_initialize.ptr) {
+ LV_LOG_ERROR("Failed to load eglInitialize");
+ return NULL;
+ }
+
+ char const * supported_extensions = egl_query_string.fn(EGL_NO_DISPLAY, EGL_EXTENSIONS);
+
+ bool has_platform_display_ext_support = ctx->interface.egl_platform != 0 && supported_extensions &&
+ strstr(supported_extensions, "EGL_EXT_platform_base");
+ if(has_platform_display_ext_support) {
+ PFNEGLGETPLATFORMDISPLAYEXTPROC egl_get_platform_display = (PFNEGLGETPLATFORMDISPLAYEXTPROC)
+ egl_get_proc_address.fn("eglGetPlatformDisplayEXT");
+ if(egl_get_platform_display) {
+ display = egl_get_platform_display(ctx->interface.egl_platform, (void *)ctx->interface.native_display, NULL);
+ }
+ if(!display) {
+ LV_LOG_WARN("Failed to get egl display from eglGetPlatformDisplay. Error code: %#x", egl_get_error.fn());
+ }
+ }
+
+ if(!display) {
+ LV_LOG_INFO("Falling back to eglGetDisplay()");
+ display = egl_get_display.fn(ctx->interface.native_display);
+ }
+
+ if(!display) {
+ LV_LOG_ERROR("Failed to get egl display from eglGetDisplay. Error code: %#x", egl_get_error.fn());
+ return NULL;
+ }
+
+ EGLint egl_major;
+ EGLint egl_minor;
+ if(!egl_initialize.fn(display, &egl_major, &egl_minor)) {
+ LV_LOG_ERROR("Failed to initialize egl. Error code: %#x", egl_get_error.fn());
+ return NULL;
+ }
+ LV_LOG_INFO("Egl version %d.%d", egl_major, egl_minor);
+
+ return display;
+}
+
+static GLADapiproc glad_egl_load_cb(void * userdata, const char * name)
+{
+ union {
+ GLADapiproc fn;
+ void * ptr;
+ } result;
+
+ if(eglGetProcAddress) {
+ GLADapiproc sym = (GLADapiproc)eglGetProcAddress(name);
+ if(sym) {
+ return sym;
+ }
+ }
+ result.ptr = dlsym(userdata, name);
+ return result.fn;
+}
+
+static EGLConfig create_egl_config(lv_opengles_egl_t * ctx)
+{
+ const EGLint config_attribs[] = {
+ EGL_RENDERABLE_TYPE,
+ EGL_OPENGL_ES2_BIT,
+ EGL_NONE
+ };
+
+ EGLint num_configs = 0;
+ if(!eglChooseConfig(ctx->egl_display, config_attribs, 0, 0, &num_configs)) {
+ LV_LOG_ERROR("Failed to get number of configs: %d", eglGetError());
+ return NULL;
+ }
+
+ if(num_configs == 0) {
+ LV_LOG_ERROR("No valid configs");
+ return NULL;
+ }
+
+ EGLConfig * egl_configs = lv_malloc(num_configs * sizeof(*egl_configs));
+ LV_ASSERT_MALLOC(egl_configs);
+ if(!egl_configs) {
+ LV_LOG_ERROR("Failed to allocate memory for possible configs");
+ return NULL;
+ }
+
+ if(!eglChooseConfig(ctx->egl_display, config_attribs, egl_configs, num_configs, &num_configs)) {
+ LV_LOG_ERROR("Failed to get configs: %d", eglGetError());
+ return NULL;
+ }
+
+ lv_egl_config_t * configs = lv_malloc(num_configs * sizeof(*configs));
+ LV_ASSERT_MALLOC(configs);
+ if(!configs) {
+ LV_LOG_ERROR("Failed to allocate memory for configs");
+ lv_free(egl_configs);
+ return NULL;
+ }
+
+ size_t valid_config_count = 0;
+ for(size_t i = 0; i < (size_t)num_configs; ++i) {
+ lv_result_t err = lv_egl_config_from_egl_config(ctx, configs + i, egl_configs[i]);
+ if(err == LV_RESULT_OK) {
+ valid_config_count ++;
+ }
+ }
+
+ if(valid_config_count == 0) {
+ LV_LOG_ERROR("Failed to parse available EGL configs");
+ lv_free(egl_configs);
+ lv_free(configs);
+ return NULL;
+ }
+
+ size_t config_id = ctx->interface.select_config(ctx->interface.driver_data, configs, valid_config_count);
+
+ if(config_id >= (size_t)num_configs) {
+ LV_LOG_ERROR("Failed to find suitable EGL config");
+ lv_free(egl_configs);
+ lv_free(configs);
+ return NULL;
+ }
+ EGLConfig config = egl_configs[config_id];
+ lv_free(configs);
+ lv_free(egl_configs);
+ return config;
+}
+
+static EGLSurface create_egl_surface(lv_opengles_egl_t * ctx)
+{
+ LV_ASSERT_NULL(ctx->egl_display);
+ LV_ASSERT_NULL(ctx->egl_config);
+ LV_ASSERT(ctx->native_window != 0);
+ return eglCreateWindowSurface(ctx->egl_display, ctx->egl_config, ctx->native_window, NULL);
+}
+
+static EGLContext create_egl_context(lv_opengles_egl_t * ctx)
+{
+ static const EGLint context_attribs[] = {
+ EGL_CONTEXT_CLIENT_VERSION, 2,
+ EGL_NONE
+ };
+ return eglCreateContext(ctx->egl_display, ctx->egl_config,
+ EGL_NO_CONTEXT, context_attribs);
+}
+
+lv_color_format_t lv_opengles_egl_color_format_from_egl_config(const lv_egl_config_t * config)
+{
+ if(config->r_bits == 5 && config->g_bits == 6 && config->b_bits == 5) {
+ if(config->a_bits == 8) {
+ return LV_COLOR_FORMAT_RGB565A8;
+ }
+ else {
+ return LV_COLOR_FORMAT_RGB565;
+ }
+ }
+ if(config->r_bits == 8 && config->g_bits == 8 && config->b_bits == 8) {
+ if(config->a_bits == 8) {
+ return LV_COLOR_FORMAT_ARGB8888;
+ }
+ else {
+
+ return LV_COLOR_FORMAT_RGB888;
+ }
+ }
+ LV_LOG_INFO("Unhandled color format (RGBA) (%d %d %d %d)", config->r_bits, config->g_bits, config->b_bits,
+ config->a_bits);
+ return LV_COLOR_FORMAT_UNKNOWN;
+}
+
+static lv_result_t lv_egl_config_from_egl_config(lv_opengles_egl_t * ctx, lv_egl_config_t * lv_egl_config,
+ EGLConfig egl_config)
+{
+ int res = 1;
+ res &= eglGetConfigAttrib(ctx->egl_display, egl_config, EGL_CONFIG_ID, &lv_egl_config->id);
+ res &= eglGetConfigAttrib(ctx->egl_display, egl_config, EGL_RED_SIZE, &lv_egl_config->r_bits);
+ res &= eglGetConfigAttrib(ctx->egl_display, egl_config, EGL_GREEN_SIZE, &lv_egl_config->g_bits);
+ res &= eglGetConfigAttrib(ctx->egl_display, egl_config, EGL_BLUE_SIZE, &lv_egl_config->b_bits);
+ res &= eglGetConfigAttrib(ctx->egl_display, egl_config, EGL_ALPHA_SIZE, &lv_egl_config->a_bits);
+ res &= eglGetConfigAttrib(ctx->egl_display, egl_config, EGL_MAX_PBUFFER_WIDTH, &lv_egl_config->max_width);
+ res &= eglGetConfigAttrib(ctx->egl_display, egl_config, EGL_MAX_PBUFFER_HEIGHT, &lv_egl_config->max_height);
+ res &= eglGetConfigAttrib(ctx->egl_display, egl_config, EGL_BUFFER_SIZE, &lv_egl_config->buffer_size);
+ res &= eglGetConfigAttrib(ctx->egl_display, egl_config, EGL_DEPTH_SIZE, &lv_egl_config->depth);
+ res &= eglGetConfigAttrib(ctx->egl_display, egl_config, EGL_STENCIL_SIZE, &lv_egl_config->stencil);
+ res &= eglGetConfigAttrib(ctx->egl_display, egl_config, EGL_SAMPLES, &lv_egl_config->samples);
+ res &= eglGetConfigAttrib(ctx->egl_display, egl_config, EGL_SURFACE_TYPE, &lv_egl_config->surface_type);
+
+ if(!res) {
+ LV_LOG_WARN("Failed to fetch egl config properties");
+ return LV_RESULT_INVALID;
+ }
+ return LV_RESULT_OK;
+}
+
+static void * create_native_window(lv_opengles_egl_t * ctx)
+{
+ EGLint native_config_id;
+ uint64_t * mods = NULL;
+ size_t mod_count = 0;
+ lv_result_t res = get_native_config(ctx, &native_config_id, &mods, &mod_count);
+
+ if(res == LV_RESULT_INVALID) {
+ LV_LOG_ERROR("Failed to get native config");
+ return NULL;
+ }
+
+ lv_egl_native_window_properties_t properties = { .visual_id = native_config_id };
+
+ void * native_window = ctx->interface.create_window_cb(ctx->interface.driver_data, &properties);
+ if(!native_window) {
+ LV_LOG_ERROR("Faield to create window");
+ lv_free(mods);
+ return NULL;
+ }
+ lv_free(mods);
+ return native_window;
+}
+
+static lv_result_t get_native_config(lv_opengles_egl_t * ctx, EGLint * native_id, uint64_t ** mods, size_t * count)
+{
+ EGLint num_mods;
+
+ if(!eglGetConfigAttrib(ctx->egl_display, ctx->egl_config, EGL_NATIVE_VISUAL_ID, native_id)) {
+ LV_LOG_ERROR("Failed to get native visual id for egl config");
+ return LV_RESULT_INVALID;
+ }
+ return LV_RESULT_OK;
+
+ if(!eglQueryDmaBufModifiersEXT || !eglQueryDmaBufModifiersEXT(ctx->egl_display, *native_id, 0, NULL, NULL, &num_mods)) {
+ LV_LOG_WARN("Failed to get native modifiers");
+ return LV_RESULT_OK;
+ }
+
+ if(num_mods <= 0) {
+ LV_LOG_INFO("No native modifiers");
+ return LV_RESULT_OK;
+ }
+
+ *mods = lv_malloc(num_mods * sizeof(*mods));
+ LV_ASSERT_MALLOC(mods);
+ eglQueryDmaBufModifiersEXT(ctx->egl_display, *native_id, num_mods, *mods, NULL, &num_mods);
+ if(*mods[0] == 0) {
+ lv_free(mods);
+ return LV_RESULT_OK;
+ }
+ *count = (size_t) num_mods;
+ return LV_RESULT_OK;
+}
+
+#endif /*LV_USE_EGL*/
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/opengles/lv_opengles_egl.h b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/lv_opengles_egl.h
new file mode 100644
index 000000000..b32ade915
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/lv_opengles_egl.h
@@ -0,0 +1,56 @@
+/**
+ * @file lv_opengles_egl.h
+ *
+ */
+
+#ifndef LV_OPENGLES_EGL_H
+#define LV_OPENGLES_EGL_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*********************
+ * INCLUDES
+ *********************/
+#include "../../lv_conf_internal.h"
+
+#if LV_USE_EGL
+
+#include "../../misc/lv_types.h"
+#include "../../misc/lv_color.h"
+
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+typedef struct _lv_opengles_egl lv_opengles_egl_t;
+typedef struct _lv_egl_interface lv_egl_interface_t;
+typedef struct _lv_egl_config lv_egl_config_t;
+
+/**********************
+ * GLOBAL PROTOTYPES
+ **********************/
+
+lv_opengles_egl_t * lv_opengles_egl_context_create(const lv_egl_interface_t * interface);
+lv_color_format_t lv_opengles_egl_color_format_from_egl_config(const lv_egl_config_t * config);
+
+void lv_opengles_egl_update(lv_opengles_egl_t * ctx);
+void lv_opengles_egl_clear(lv_opengles_egl_t * ctx);
+void lv_opengles_egl_context_destroy(lv_opengles_egl_t * ctx);
+
+/**********************
+ * MACROS
+ **********************/
+
+#endif /*LV_USE_EGL*/
+#ifdef __cplusplus
+} /*extern "C"*/
+#endif
+
+#endif /*LV_OPENGLES_EGL_H*/
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/opengles/lv_opengles_egl_private.h b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/lv_opengles_egl_private.h
new file mode 100644
index 000000000..78969e399
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/lv_opengles_egl_private.h
@@ -0,0 +1,102 @@
+/**
+ * @file lv_opengles_egl_private.h
+ *
+ */
+
+#ifndef LV_OPENGLES_EGL_PRIVATE_H
+#define LV_OPENGLES_EGL_PRIVATE_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*********************
+ * INCLUDES
+ *********************/
+#include "../../lv_conf_internal.h"
+
+#if LV_USE_EGL
+
+#include "../../misc/lv_types.h"
+#include "../../misc/lv_color.h"
+#include "lv_opengles_private.h"
+#include "lv_opengles_egl.h"
+
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+struct _lv_egl_config {
+ EGLint id;
+ EGLint max_width;
+ EGLint max_height;
+ EGLint buffer_size;
+ EGLint depth;
+ EGLint stencil;
+ EGLint samples;
+ EGLint surface_type;
+ EGLint r_bits;
+ EGLint g_bits;
+ EGLint b_bits;
+ EGLint a_bits;
+};
+
+typedef struct {
+ EGLint visual_id;
+} lv_egl_native_window_properties_t;
+
+typedef void * (*lv_egl_init_display_t)(void * driver_data, int32_t width, int32_t height);
+typedef void * (*lv_egl_get_display_t)(void * driver_data);
+typedef void * (*lv_create_window_t)(void * driver_data, const lv_egl_native_window_properties_t * props);
+typedef void (*lv_destroy_window_t)(void * driver_data, void * native_window);
+
+typedef void (*lv_egl_set_visible_t)(void * driver_data, bool v);
+typedef void (*lv_egl_flip_t)(void * driver_data, bool vsync);
+typedef void (*lv_egl_native_state_deinit_t)(void ** driver_data);
+typedef size_t (*lv_egl_select_config_t)(void * driver_data, const lv_egl_config_t * configs,
+ size_t config_count);
+
+struct _lv_egl_interface {
+ lv_egl_select_config_t select_config;
+ void * driver_data;
+ void * native_display;
+ uint16_t egl_platform;
+ lv_create_window_t create_window_cb;
+ lv_destroy_window_t destroy_window_cb;
+ lv_egl_flip_t flip_cb;
+};
+
+
+struct _lv_opengles_egl {
+ EGLNativeWindowType native_window;
+ EGLDisplay egl_display;
+ EGLConfig egl_config;
+ EGLContext egl_context;
+ EGLSurface egl_surface;
+ void * egl_lib_handle;
+ void * opengl_lib_handle;
+ lv_egl_interface_t interface;
+ int32_t width;
+ int32_t height;
+ bool vsync;
+};
+
+/**********************
+ * GLOBAL PROTOTYPES
+ **********************/
+
+/**********************
+ * MACROS
+ **********************/
+
+#endif /*LV_USE_EGL*/
+#ifdef __cplusplus
+} /*extern "C"*/
+#endif
+
+#endif /*LV_OPENGLES_EGL_PRIVATE_H*/
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/opengles/lv_opengles_glfw.c b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/lv_opengles_glfw.c
new file mode 100644
index 000000000..4323cfbc5
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/lv_opengles_glfw.c
@@ -0,0 +1,696 @@
+/**
+ * @file lv_opengles_glfw.c
+ *
+ */
+
+/*********************
+ * INCLUDES
+ *********************/
+
+#include "lv_opengles_glfw.h"
+#if LV_USE_GLFW
+
+#include "lv_opengles_window.h"
+#include "lv_opengles_driver.h"
+#include "lv_opengles_texture.h"
+#include "lv_opengles_private.h"
+#include "lv_opengles_debug.h"
+
+#include "../../core/lv_refr.h"
+#include "../../stdlib/lv_sprintf.h"
+#include "../../stdlib/lv_string.h"
+#include "../../core/lv_global.h"
+#include "../../display/lv_display_private.h"
+#include "../../indev/lv_indev.h"
+#include "../../lv_init.h"
+#include "../../misc/lv_area_private.h"
+
+#include
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+struct _lv_opengles_window_t {
+ GLFWwindow * window;
+ int32_t hor_res;
+ int32_t ver_res;
+ bool h_flip;
+ bool v_flip;
+ lv_ll_t textures;
+ lv_point_t mouse_last_point;
+ lv_indev_state_t mouse_last_state;
+ uint8_t use_indev : 1;
+ uint8_t closing : 1;
+#if LV_USE_DRAW_OPENGLES
+ uint8_t direct_render_invalidated: 1;
+#endif
+};
+
+struct _lv_opengles_window_texture_t {
+ lv_opengles_window_t * window;
+ unsigned int texture_id; /* 0 if it's a window display */
+ lv_display_t * disp; /* non-NULL if it's a display texture or a window display */
+ uint8_t * fb; /* non-NULL if it's a window display and !DRAW_OPENGLES */
+ lv_area_t area;
+ lv_opa_t opa;
+ lv_indev_t * indev;
+ lv_point_t indev_last_point;
+ lv_indev_state_t indev_last_state;
+};
+
+/**********************
+ * STATIC PROTOTYPES
+ **********************/
+static void window_update_handler(lv_timer_t * t);
+static uint32_t lv_glfw_tick_count_callback(void);
+static lv_opengles_window_t * lv_glfw_get_lv_window_from_window(GLFWwindow * window);
+static void glfw_error_cb(int error, const char * description);
+static int lv_glfw_init(void);
+static int lv_glew_init(void);
+static void lv_glfw_timer_init(void);
+static void lv_glfw_window_config(GLFWwindow * window, bool use_mouse_indev);
+static void lv_glfw_window_quit(void);
+static void window_close_callback(GLFWwindow * window);
+static void key_callback(GLFWwindow * window, int key, int scancode, int action, int mods);
+static void mouse_button_callback(GLFWwindow * window, int button, int action, int mods);
+static void mouse_move_callback(GLFWwindow * window, double xpos, double ypos);
+static void proc_mouse(lv_opengles_window_t * window);
+static void indev_read_cb(lv_indev_t * indev, lv_indev_data_t * data);
+static void framebuffer_size_callback(GLFWwindow * window, int width, int height);
+static void window_display_delete_cb(lv_event_t * e);
+static void window_display_flush_cb(lv_display_t * disp, const lv_area_t * area, uint8_t * px_map);
+#if !LV_USE_DRAW_OPENGLES
+ static void ensure_init_window_display_texture(void);
+#endif
+
+/**********************
+ * STATIC VARIABLES
+ **********************/
+static bool glfw_inited;
+static bool glew_inited;
+static lv_timer_t * update_handler_timer;
+static lv_ll_t glfw_window_ll;
+#if !LV_USE_DRAW_OPENGLES
+ static unsigned int window_display_texture;
+#endif
+
+/**********************
+ * MACROS
+ **********************/
+
+/**********************
+ * GLOBAL FUNCTIONS
+ **********************/
+
+lv_opengles_window_t * lv_opengles_glfw_window_create_ex(int32_t hor_res, int32_t ver_res, bool use_mouse_indev,
+ bool h_flip, bool v_flip, const char * title)
+{
+ LV_ASSERT_NULL(title);
+ if(lv_glfw_init() != 0) {
+ LV_LOG_ERROR("Failed to init glfw");
+ return NULL;
+ }
+
+ lv_opengles_window_t * window = lv_ll_ins_tail(&glfw_window_ll);
+ LV_ASSERT_MALLOC(window);
+ if(window == NULL) return NULL;
+ if(window == NULL) {
+ LV_LOG_ERROR("Failed to create glfw window");
+ return NULL;
+ }
+ lv_memzero(window, sizeof(*window));
+
+ /* Create window with graphics context */
+ lv_opengles_window_t * existing_window = lv_ll_get_head(&glfw_window_ll);
+ window->window = glfwCreateWindow(hor_res, ver_res, title, NULL,
+ existing_window ? existing_window->window : NULL);
+ if(window->window == NULL) {
+ LV_LOG_ERROR("glfwCreateWindow fail");
+ lv_ll_remove(&glfw_window_ll, window);
+ lv_free(window);
+ return NULL;
+ }
+
+ glfwSetWindowTitle(window->window, title);
+
+ window->h_flip = h_flip;
+ window->v_flip = v_flip;
+ window->hor_res = hor_res;
+ window->ver_res = ver_res;
+
+ lv_ll_init(&window->textures, sizeof(lv_opengles_window_texture_t));
+ window->use_indev = use_mouse_indev;
+#if LV_USE_DRAW_OPENGLES
+ window->direct_render_invalidated = 1;
+#endif
+
+ glfwSetWindowUserPointer(window->window, window);
+ lv_glfw_timer_init();
+ lv_glfw_window_config(window->window, use_mouse_indev);
+ lv_glew_init();
+ glfwMakeContextCurrent(window->window);
+ lv_opengles_init();
+
+ return window;
+}
+
+lv_opengles_window_t * lv_opengles_glfw_window_create(int32_t hor_res, int32_t ver_res, bool use_mouse_indev)
+{
+ return lv_opengles_glfw_window_create_ex(hor_res, ver_res, use_mouse_indev, false, false, "LVGL Simulator");
+}
+
+void lv_opengles_glfw_window_set_title(lv_opengles_window_t * window, const char * new_title)
+{
+ glfwSetWindowTitle(window->window, new_title);
+}
+
+void lv_opengles_window_delete(lv_opengles_window_t * window)
+{
+ glfwDestroyWindow(window->window);
+
+ lv_opengles_window_texture_t * texture;
+ while((texture = lv_ll_get_head(&window->textures))) {
+ if(texture->texture_id) {
+ lv_opengles_window_texture_remove(texture);
+ }
+ else {
+ lv_display_delete(texture->disp);
+ }
+ }
+
+ lv_ll_remove(&glfw_window_ll, window);
+ lv_free(window);
+
+ if(lv_ll_is_empty(&glfw_window_ll)) {
+ lv_glfw_window_quit();
+#if !LV_USE_DRAW_OPENGLES
+ if(window_display_texture) {
+ GL_CALL(glDeleteTextures(1, &window_display_texture));
+ window_display_texture = 0;
+ }
+#endif
+ }
+}
+
+void * lv_opengles_glfw_window_get_glfw_window(lv_opengles_window_t * window)
+{
+ return (void *)(window->window);
+}
+
+void lv_opengles_glfw_window_set_flip(lv_opengles_window_t * window, bool h_flip, bool v_flip)
+{
+ window->h_flip = h_flip;
+ window->v_flip = v_flip;
+}
+
+lv_opengles_window_texture_t * lv_opengles_window_add_texture(lv_opengles_window_t * window, unsigned int texture_id,
+ int32_t w, int32_t h)
+{
+ lv_opengles_window_texture_t * texture = lv_ll_ins_tail(&window->textures);
+ LV_ASSERT_MALLOC(texture);
+ if(texture == NULL) return NULL;
+ lv_memzero(texture, sizeof(*texture));
+ texture->window = window;
+ texture->texture_id = texture_id;
+ texture->disp = lv_opengles_texture_get_from_texture_id(texture_id);
+ lv_area_set(&texture->area, 0, 0, w - 1, h - 1);
+ texture->opa = LV_OPA_COVER;
+
+ if(window->use_indev && texture->disp) {
+ lv_indev_t * indev = lv_indev_create();
+ if(indev == NULL) {
+ lv_ll_remove(&window->textures, texture);
+ lv_free(texture);
+ return NULL;
+ }
+ texture->indev = indev;
+ lv_indev_set_type(indev, LV_INDEV_TYPE_POINTER);
+ lv_indev_set_read_cb(indev, indev_read_cb);
+ lv_indev_set_driver_data(indev, texture);
+ lv_indev_set_mode(indev, LV_INDEV_MODE_EVENT);
+ lv_indev_set_display(indev, texture->disp);
+ }
+
+#if LV_USE_DRAW_OPENGLES
+ window->direct_render_invalidated = 1;
+#endif
+
+ return texture;
+}
+
+void lv_opengles_window_texture_remove(lv_opengles_window_texture_t * texture)
+{
+ if(texture->texture_id == 0) {
+ LV_LOG_WARN("window displays should be deleted with `lv_display_delete`");
+ return;
+ }
+ if(texture->indev != NULL) {
+ lv_indev_delete(texture->indev);
+ }
+
+#if LV_USE_DRAW_OPENGLES
+ texture->window->direct_render_invalidated = 1;
+#endif
+
+ lv_ll_remove(&texture->window->textures, texture);
+ lv_free(texture);
+}
+
+lv_display_t * lv_opengles_window_display_create(lv_opengles_window_t * window, int32_t w, int32_t h)
+{
+ lv_display_t * disp = lv_display_create(w, h);
+ if(disp == NULL) {
+ return NULL;
+ }
+
+ lv_opengles_window_texture_t * dsc = lv_ll_ins_tail(&window->textures);
+ LV_ASSERT_MALLOC(dsc);
+ if(dsc == NULL) {
+ lv_display_delete(disp);
+ return NULL;
+ }
+ lv_memzero(dsc, sizeof(*dsc));
+ dsc->window = window;
+ dsc->disp = disp;
+ lv_area_set(&dsc->area, 0, 0, w - 1, h - 1);
+ dsc->opa = LV_OPA_COVER;
+
+#if LV_USE_DRAW_OPENGLES
+ static size_t LV_ATTRIBUTE_MEM_ALIGN dummy_buf;
+ lv_display_set_buffers(disp, &dummy_buf, NULL, h * lv_draw_buf_width_to_stride(w, LV_COLOR_FORMAT_ARGB8888),
+ LV_DISPLAY_RENDER_MODE_FULL);
+#else
+ uint32_t stride = lv_draw_buf_width_to_stride(w, lv_display_get_color_format(disp));
+ uint32_t buf_size = stride * h;
+ dsc->fb = malloc(buf_size);
+ LV_ASSERT_MALLOC(dsc->fb);
+ if(dsc->fb == NULL) {
+ lv_display_delete(disp);
+ lv_ll_remove(&window->textures, dsc);
+ lv_free(dsc);
+ return NULL;
+ }
+ lv_display_set_buffers(disp, dsc->fb, NULL, buf_size, LV_DISPLAY_RENDER_MODE_DIRECT);
+#endif
+
+ if(window->use_indev) {
+ lv_indev_t * indev = lv_indev_create();
+ if(indev == NULL) {
+ lv_display_delete(disp);
+ lv_ll_remove(&window->textures, dsc);
+ lv_free(dsc);
+ return NULL;
+ }
+ dsc->indev = indev;
+ lv_indev_set_type(indev, LV_INDEV_TYPE_POINTER);
+ lv_indev_set_read_cb(indev, indev_read_cb);
+ lv_indev_set_driver_data(indev, dsc);
+ lv_indev_set_mode(indev, LV_INDEV_MODE_EVENT);
+ lv_indev_set_display(indev, disp);
+ }
+
+ lv_display_set_driver_data(disp, dsc);
+ lv_display_delete_refr_timer(disp);
+ lv_display_set_flush_cb(disp, window_display_flush_cb);
+ lv_display_add_event_cb(disp, window_display_delete_cb, LV_EVENT_DELETE, disp);
+
+#if LV_USE_DRAW_OPENGLES
+ window->direct_render_invalidated = 1;
+#endif
+
+ return disp;
+}
+
+lv_opengles_window_texture_t * lv_opengles_window_display_get_window_texture(lv_display_t * window_display)
+{
+ return lv_display_get_driver_data(window_display);
+}
+
+void lv_opengles_window_texture_set_x(lv_opengles_window_texture_t * texture, int32_t x)
+{
+ lv_area_set_pos(&texture->area, x, texture->area.y1);
+
+#if LV_USE_DRAW_OPENGLES
+ texture->window->direct_render_invalidated = 1;
+#endif
+}
+
+void lv_opengles_window_texture_set_y(lv_opengles_window_texture_t * texture, int32_t y)
+{
+ lv_area_set_pos(&texture->area, texture->area.x1, y);
+
+#if LV_USE_DRAW_OPENGLES
+ texture->window->direct_render_invalidated = 1;
+#endif
+}
+
+void lv_opengles_window_texture_set_opa(lv_opengles_window_texture_t * texture, lv_opa_t opa)
+{
+ texture->opa = opa;
+
+#if LV_USE_DRAW_OPENGLES
+ texture->window->direct_render_invalidated = 1;
+#endif
+}
+
+lv_indev_t * lv_opengles_window_texture_get_mouse_indev(lv_opengles_window_texture_t * texture)
+{
+ return texture->indev;
+}
+
+/**********************
+ * STATIC FUNCTIONS
+ **********************/
+
+static int lv_glfw_init(void)
+{
+ if(glfw_inited) {
+ return 0;
+ }
+
+ glfwSetErrorCallback(glfw_error_cb);
+
+ int ret = glfwInit();
+ if(ret == 0) {
+ LV_LOG_ERROR("glfwInit fail.");
+ return 1;
+ }
+
+ lv_ll_init(&glfw_window_ll, sizeof(lv_opengles_window_t));
+
+ glfw_inited = true;
+ return 0;
+}
+
+static int lv_glew_init(void)
+{
+ if(glew_inited) {
+ return 0;
+ }
+
+ GLenum ret = glewInit();
+ if(ret != GLEW_OK) {
+ LV_LOG_ERROR("glewInit fail: %d.", ret);
+ return ret;
+ }
+
+ LV_LOG_INFO("GL version: %s", glGetString(GL_VERSION));
+ LV_LOG_INFO("GLSL version: %s", glGetString(GL_SHADING_LANGUAGE_VERSION));
+
+ glew_inited = true;
+
+ return 0;
+}
+
+static void lv_glfw_timer_init(void)
+{
+ if(update_handler_timer == NULL) {
+ update_handler_timer = lv_timer_create(window_update_handler, LV_DEF_REFR_PERIOD, NULL);
+ lv_tick_set_cb(lv_glfw_tick_count_callback);
+ }
+}
+
+static void lv_glfw_window_config(GLFWwindow * window, bool use_mouse_indev)
+{
+ glfwMakeContextCurrent(window);
+
+ glfwSwapInterval(1);
+
+ glfwSetFramebufferSizeCallback(window, framebuffer_size_callback);
+
+ if(use_mouse_indev) {
+ glfwSetMouseButtonCallback(window, mouse_button_callback);
+ glfwSetCursorPosCallback(window, mouse_move_callback);
+ }
+
+ glfwSetKeyCallback(window, key_callback);
+
+ glfwSetWindowCloseCallback(window, window_close_callback);
+}
+
+static void lv_glfw_window_quit(void)
+{
+ lv_timer_delete(update_handler_timer);
+ update_handler_timer = NULL;
+
+ glfwTerminate();
+ glfw_inited = false;
+
+ lv_deinit();
+
+ exit(0);
+}
+
+static void window_update_handler(lv_timer_t * t)
+{
+ LV_UNUSED(t);
+
+ lv_opengles_window_t * window;
+
+ glfwPollEvents();
+
+ /* delete windows that are ready to close */
+ window = lv_ll_get_head(&glfw_window_ll);
+ while(window) {
+ lv_opengles_window_t * window_to_delete = window->closing ? window : NULL;
+ window = lv_ll_get_next(&glfw_window_ll, window);
+ if(window_to_delete) {
+ glfwSetWindowShouldClose(window_to_delete->window, GLFW_TRUE);
+ lv_opengles_window_delete(window_to_delete);
+ }
+ }
+
+ /* render each window */
+ LV_LL_READ(&glfw_window_ll, window) {
+ glfwMakeContextCurrent(window->window);
+ lv_opengles_viewport(0, 0, window->hor_res, window->ver_res);
+
+#if LV_USE_DRAW_OPENGLES
+ lv_opengles_window_texture_t * textures_head;
+ bool window_display_direct_render =
+ !window->direct_render_invalidated
+ && (textures_head = lv_ll_get_head(&window->textures))
+ && textures_head->texture_id == 0 /* it's a window display */
+ && lv_ll_get_next(&window->textures, textures_head) == NULL /* it's the only one */
+ && textures_head->opa == LV_OPA_COVER
+ && textures_head->area.x1 == 0
+ && textures_head->area.y1 == 0
+ && textures_head->area.x2 == window->hor_res - 1
+ && textures_head->area.y2 == window->ver_res - 1
+ ;
+ window->direct_render_invalidated = 0;
+ if(!window_display_direct_render) {
+ lv_opengles_render_clear();
+ }
+#else
+ lv_opengles_render_clear();
+#endif
+
+ /* render each texture in the window */
+ lv_opengles_window_texture_t * texture;
+ LV_LL_READ(&window->textures, texture) {
+ if(texture->texture_id == 0) { /* it's a window display */
+#if LV_USE_DRAW_OPENGLES
+ lv_display_set_render_mode(texture->disp,
+ window_display_direct_render ? LV_DISPLAY_RENDER_MODE_DIRECT : LV_DISPLAY_RENDER_MODE_FULL);
+#endif
+
+ lv_display_t * default_save = lv_display_get_default();
+ lv_display_set_default(texture->disp);
+ lv_display_refr_timer(NULL);
+ lv_display_set_default(default_save);
+
+#if !LV_USE_DRAW_OPENGLES
+ ensure_init_window_display_texture();
+
+ GL_CALL(glBindTexture(GL_TEXTURE_2D, window_display_texture));
+
+ /* set the dimensions and format to complete the texture */
+ /* Color depth: 8 (L8), 16 (RGB565), 24 (RGB888), 32 (XRGB8888) */
+#if LV_COLOR_DEPTH == 8
+ GL_CALL(glTexImage2D(GL_TEXTURE_2D, 0, GL_R8, lv_area_get_width(&texture->area), lv_area_get_height(&texture->area), 0,
+ GL_RED, GL_UNSIGNED_BYTE, texture->fb));
+#elif LV_COLOR_DEPTH == 16
+ GL_CALL(glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB565, lv_area_get_width(&texture->area), lv_area_get_height(&texture->area),
+ 0, GL_RGB, GL_UNSIGNED_SHORT_5_6_5,
+ texture->fb));
+#elif LV_COLOR_DEPTH == 24
+ GL_CALL(glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, lv_area_get_width(&texture->area), lv_area_get_height(&texture->area), 0,
+ GL_BGR, GL_UNSIGNED_BYTE, texture->fb));
+#elif LV_COLOR_DEPTH == 32
+ GL_CALL(glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, lv_area_get_width(&texture->area), lv_area_get_height(&texture->area),
+ 0, GL_BGRA, GL_UNSIGNED_BYTE, texture->fb));
+#else
+#error("Unsupported color format")
+#endif
+
+ GL_CALL(glGenerateMipmap(GL_TEXTURE_2D));
+
+ GL_CALL(glBindTexture(GL_TEXTURE_2D, 0));
+
+ lv_opengles_render_texture(window_display_texture, &texture->area, texture->opa, window->hor_res, window->ver_res,
+ &texture->area, window->h_flip, window->v_flip);
+#endif
+ }
+ else {
+ /* if the added texture is an LVGL opengles texture display, refresh it before rendering it */
+ if(texture->disp != NULL) {
+#if LV_USE_DRAW_OPENGLES
+ lv_display_t * default_save = lv_display_get_default();
+ lv_display_set_default(texture->disp);
+ lv_display_refr_timer(NULL);
+ lv_display_set_default(default_save);
+#else
+ lv_refr_now(texture->disp);
+#endif
+ }
+
+#if LV_USE_DRAW_OPENGLES
+ lv_opengles_render_texture(texture->texture_id, &texture->area, texture->opa, window->hor_res, window->ver_res,
+ &texture->area, window->h_flip, texture->disp == NULL ? window->v_flip : !window->v_flip);
+#else
+ lv_opengles_render_texture(texture->texture_id, &texture->area, texture->opa, window->hor_res, window->ver_res,
+ &texture->area, window->h_flip, window->v_flip);
+#endif
+ }
+ }
+
+ /* Swap front and back buffers */
+ glfwSwapBuffers(window->window);
+ }
+}
+
+static void glfw_error_cb(int error, const char * description)
+{
+ LV_LOG_ERROR("GLFW Error %d: %s", error, description);
+}
+
+static lv_opengles_window_t * lv_glfw_get_lv_window_from_window(GLFWwindow * window)
+{
+ return glfwGetWindowUserPointer(window);
+}
+
+static void window_close_callback(GLFWwindow * window)
+{
+ lv_opengles_window_t * lv_window = lv_glfw_get_lv_window_from_window(window);
+ lv_window->closing = 1;
+}
+
+static void key_callback(GLFWwindow * window, int key, int scancode, int action, int mods)
+{
+ LV_UNUSED(scancode);
+ LV_UNUSED(mods);
+ if(key == GLFW_KEY_ESCAPE && action == GLFW_PRESS) {
+ lv_opengles_window_t * lv_window = lv_glfw_get_lv_window_from_window(window);
+ lv_window->closing = 1;
+ }
+}
+
+static void mouse_button_callback(GLFWwindow * window, int button, int action, int mods)
+{
+ LV_UNUSED(mods);
+ if(button == GLFW_MOUSE_BUTTON_LEFT) {
+ lv_opengles_window_t * lv_window = lv_glfw_get_lv_window_from_window(window);
+ lv_window->mouse_last_state = action == GLFW_PRESS ? LV_INDEV_STATE_PRESSED : LV_INDEV_STATE_RELEASED;
+ proc_mouse(lv_window);
+ }
+}
+
+static void mouse_move_callback(GLFWwindow * window, double xpos, double ypos)
+{
+ lv_opengles_window_t * lv_window = lv_glfw_get_lv_window_from_window(window);
+ lv_window->mouse_last_point.x = (int32_t)xpos;
+ lv_window->mouse_last_point.y = (int32_t)ypos;
+ proc_mouse(lv_window);
+}
+
+static void proc_mouse(lv_opengles_window_t * window)
+{
+ /* mouse activity will affect the topmost LVGL display texture */
+ lv_opengles_window_texture_t * texture;
+ LV_LL_READ_BACK(&window->textures, texture) {
+ if(lv_area_is_point_on(&texture->area, &window->mouse_last_point, 0)) {
+ /* adjust the mouse pointer coordinates so that they are relative to the texture */
+ if(window->h_flip) {
+ texture->indev_last_point.x = texture->area.x2 - window->mouse_last_point.x;
+ }
+ else {
+ texture->indev_last_point.x = window->mouse_last_point.x - texture->area.x1;
+ }
+ if(window->v_flip) {
+ texture->indev_last_point.y = (texture->area.y2 - window->mouse_last_point.y);
+ }
+ else {
+ texture->indev_last_point.y = (window->mouse_last_point.y - texture->area.y1);
+ }
+ texture->indev_last_state = window->mouse_last_state;
+ lv_indev_read(texture->indev);
+ break;
+ }
+ }
+}
+
+static void indev_read_cb(lv_indev_t * indev, lv_indev_data_t * data)
+{
+ lv_opengles_window_texture_t * texture = lv_indev_get_driver_data(indev);
+ data->point = texture->indev_last_point;
+ data->state = texture->indev_last_state;
+}
+
+static void framebuffer_size_callback(GLFWwindow * window, int width, int height)
+{
+ lv_opengles_window_t * lv_window = lv_glfw_get_lv_window_from_window(window);
+ lv_window->hor_res = width;
+ lv_window->ver_res = height;
+}
+
+static uint32_t lv_glfw_tick_count_callback(void)
+{
+ double tick = glfwGetTime() * 1000.0;
+ return (uint32_t)tick;
+}
+
+static void window_display_delete_cb(lv_event_t * e)
+{
+ lv_display_t * disp = lv_event_get_target(e);
+ lv_opengles_window_texture_t * dsc = lv_display_get_driver_data(disp);
+ free(dsc->fb);
+ lv_opengles_window_texture_remove(dsc);
+}
+
+static void window_display_flush_cb(lv_display_t * disp, const lv_area_t * area, uint8_t * px_map)
+{
+ LV_UNUSED(area);
+ LV_UNUSED(px_map);
+ lv_display_flush_ready(disp);
+}
+
+#if !LV_USE_DRAW_OPENGLES
+static void ensure_init_window_display_texture(void)
+{
+ if(window_display_texture) {
+ return;
+ }
+
+ GL_CALL(glGenTextures(1, &window_display_texture));
+ GL_CALL(glBindTexture(GL_TEXTURE_2D, window_display_texture));
+ GL_CALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST));
+ GL_CALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST));
+ GL_CALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE));
+ GL_CALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE));
+ GL_CALL(glPixelStorei(GL_UNPACK_ALIGNMENT, 1));
+
+ GL_CALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 20));
+ GL_CALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_NEAREST));
+ GL_CALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST));
+
+ GL_CALL(glBindTexture(GL_TEXTURE_2D, 0));
+}
+#endif
+
+#endif /*LV_USE_GLFW*/
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/opengles/lv_opengles_glfw.h b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/lv_opengles_glfw.h
new file mode 100644
index 000000000..39d2d51e1
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/lv_opengles_glfw.h
@@ -0,0 +1,88 @@
+/**
+ * @file lv_opengles_glfw.h
+ *
+ */
+
+#ifndef LV_OPENGLES_GLFW_H
+#define LV_OPENGLES_GLFW_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "../../lv_conf_internal.h"
+#if LV_USE_GLFW
+
+#include "../../misc/lv_types.h"
+
+/*********************
+ * INCLUDES
+ *********************/
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+/**********************
+ * GLOBAL PROTOTYPES
+ **********************/
+
+/**
+ * Create a GLFW OpenGL window with no textures and initialize OpenGL
+ * @param hor_res width in pixels of the window
+ * @param ver_res height in pixels of the window
+ * @param use_mouse_indev send pointer indev input to LVGL display textures
+ * @return the new GLFW OpenGL window handle
+ */
+lv_opengles_window_t * lv_opengles_glfw_window_create(int32_t hor_res, int32_t ver_res, bool use_mouse_indev);
+
+/**
+ * Create a GLFW window with no textures and initialize OpenGL
+ * @param hor_res width in pixels of the window
+ * @param ver_res height in pixels of the window
+ * @param use_mouse_indev send pointer indev input to LVGL display textures
+ * @param h_flip Should the window contents be horizontally mirrored?
+ * @param v_flip Should the window contents be vertically mirrored?
+ * @param title The window title
+ * @return the new GLFW window handle
+ */
+lv_opengles_window_t * lv_opengles_glfw_window_create_ex(int32_t hor_res, int32_t ver_res, bool use_mouse_indev,
+ bool h_flip, bool v_flip, const char * title);
+
+/**
+ * Set the window's title text
+ * @param window GLFW window to configure
+ * @param new_title The new title text
+ */
+void lv_opengles_glfw_window_set_title(lv_opengles_window_t * window, const char * new_title);
+
+/**
+ * Set the horizontal / vertical flipping of a GLFW window
+ * @param window GLFW window to configure
+ * @param h_flip Should the window contents be horizontally mirrored?
+ * @param v_flip Should the window contents be vertically mirrored?
+ */
+void lv_opengles_glfw_window_set_flip(lv_opengles_window_t * window, bool h_flip, bool v_flip);
+
+/**
+ * Get the GLFW window handle for a GLFW lv_opengles_window_t
+ * @param window GLFW window to return the handle of
+ * @return the GLFW window handle
+ */
+void * lv_opengles_glfw_window_get_glfw_window(lv_opengles_window_t * window);
+
+/**********************
+ * MACROS
+ **********************/
+
+#endif /*LV_USE_GLFW*/
+
+#ifdef __cplusplus
+} /*extern "C"*/
+#endif
+
+#endif /*LV_OPENGLES_GLFW_H*/
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/opengles/lv_opengles_private.h b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/lv_opengles_private.h
new file mode 100644
index 000000000..6e98997db
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/lv_opengles_private.h
@@ -0,0 +1,113 @@
+/**
+ * @file lv_opengles_private.h
+ *
+ */
+
+#ifndef LV_OPENGLES_PRIVATE_H
+#define LV_OPENGLES_PRIVATE_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*********************
+ * INCLUDES
+ *********************/
+
+#include "../../lv_conf_internal.h"
+#if LV_USE_OPENGLES
+
+#if LV_USE_EGL
+#include "glad/include/glad/gles2.h"
+#include "glad/include/glad/egl.h"
+#else
+/* For now, by default we add glew and glfw.
+ In the future we need to consider adding a config for setting these includes*/
+#include
+#include
+#endif /*LV_USE_EGL*/
+
+/*********************
+ * DEFINES
+ *********************/
+
+/* In desktop GL () these symbols are defined but for EGL
+ * they are defined as extensions with the _EXT suffix */
+#ifndef GL_BGRA
+#define GL_BGRA GL_BGRA_EXT
+#endif /*GL_BGRA*/
+
+#ifndef GL_TEXTURE_MAX_LEVEL
+#define GL_TEXTURE_MAX_LEVEL GL_TEXTURE_MAX_LEVEL_APPLE
+#endif /*GL_TEXTURE_MAX_LEVEL*/
+
+#ifndef GL_UNPACK_ROW_LENGTH
+#define GL_UNPACK_ROW_LENGTH GL_UNPACK_ROW_LENGTH_EXT
+#endif /*GL_UNPACK_ROW_LENGTH*/
+
+#ifndef glGenVertexArrays
+#define glGenVertexArrays glGenVertexArraysOES
+#endif
+
+#ifndef glBindVertexArray
+#define glBindVertexArray glBindVertexArrayOES
+#endif
+
+#ifndef glDeleteVertexArrays
+#define glDeleteVertexArrays glDeleteVertexArraysOES
+#endif
+
+#ifndef glTexStorage2D
+#define glTexStorage2D glTexStorage2DEXT
+#endif
+
+#ifndef GL_RGBA32F
+#define GL_RGBA32F 0x8814
+#endif
+#ifndef GL_NUM_EXTENSIONS
+#define GL_NUM_EXTENSIONS 0x821D
+#endif
+
+#ifndef GL_RGB8
+#define GL_RGB8 0x8051
+#endif
+
+#ifndef GL_RGBA8
+#define GL_RGBA8 0x8058
+#endif
+
+#ifndef LV_GL_PREFERRED_DEPTH
+#ifdef GL_DEPTH_COMPONENT24
+#define LV_GL_PREFERRED_DEPTH GL_DEPTH_COMPONENT24
+#else
+/*
+ * This will not run correctly yet, it compiles fine but fails to render on RPi3B. Work in progress.
+ *
+#ifdef GL_DEPTH_COMPONENT24_OES
+#define LV_GL_PREFERRED_DEPTH GL_DEPTH_COMPONENT24_OES
+#else
+#define LV_GL_PREFERRED_DEPTH GL_DEPTH_COMPONENT16
+#endif
+*/
+#define LV_GL_PREFERRED_DEPTH GL_DEPTH_COMPONENT16
+#endif
+#endif
+/**********************
+ * TYPEDEFS
+ **********************/
+
+/**********************
+ * GLOBAL PROTOTYPES
+ **********************/
+
+/**********************
+ * MACROS
+ **********************/
+
+#endif /*LV_USE_OPENGLES*/
+
+#ifdef __cplusplus
+} /*extern "C"*/
+#endif
+
+#endif /*LV_OPENGLES_PRIVATE_H*/
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/opengles/lv_opengles_texture.c b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/lv_opengles_texture.c
new file mode 100644
index 000000000..c5b460db5
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/lv_opengles_texture.c
@@ -0,0 +1,269 @@
+/**
+ * @file lv_opengles_texture.c
+ *
+ */
+
+/*********************
+ * INCLUDES
+ *********************/
+
+#include "lv_opengles_texture.h"
+#if LV_USE_OPENGLES
+
+#include "lv_opengles_debug.h"
+#include "lv_opengles_driver.h"
+
+#include "../../misc/lv_types.h"
+#include "../../stdlib/lv_mem.h"
+#include "lv_opengles_private.h"
+#include "lv_opengles_texture_private.h"
+#include "../../display/lv_display_private.h"
+
+#include
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+/**********************
+ * STATIC PROTOTYPES
+ **********************/
+
+static lv_display_t * lv_opengles_texture_create_common(int32_t w, int32_t h);
+static unsigned int create_texture(int32_t w, int32_t h);
+static void flush_cb(lv_display_t * disp, const lv_area_t * area, uint8_t * px_map);
+static void release_disp_cb(lv_event_t * e);
+
+/**********************
+ * STATIC VARIABLES
+ **********************/
+
+/**********************
+ * MACROS
+ **********************/
+
+/**********************
+ * GLOBAL FUNCTIONS
+ **********************/
+
+lv_display_t * lv_opengles_texture_create(int32_t w, int32_t h)
+{
+ lv_display_t * disp = lv_opengles_texture_create_common(w, h);
+ if(!disp) {
+ LV_LOG_ERROR("Failed to create display");
+ return NULL;
+ }
+ lv_opengles_texture_t * dsc = lv_display_get_driver_data(disp);
+ unsigned int texture_id = create_texture(w, h);
+ dsc->texture_id = texture_id;
+ dsc->is_texture_owner = true;
+ return disp;
+}
+
+lv_display_t * lv_opengles_texture_create_from_texture_id(int32_t w, int32_t h, unsigned int texture_id)
+{
+ lv_display_t * disp = lv_opengles_texture_create_common(w, h);
+ if(!disp) {
+ LV_LOG_ERROR("Failed to create display");
+ return NULL;
+ }
+ lv_opengles_texture_t * dsc = lv_display_get_driver_data(disp);
+ dsc->texture_id = texture_id;
+ dsc->is_texture_owner = false;
+ return disp;
+}
+
+void lv_opengles_texture_reshape(lv_display_t * disp, int32_t width, int32_t height)
+{
+ lv_opengles_texture_t * dsc = lv_display_get_driver_data(disp);
+ unsigned int new_texture = create_texture(width, height);
+ if(new_texture == GL_NONE) {
+ LV_LOG_ERROR("Failed to reshape texture. Couldn't acquire new texture from GPU");
+ return;
+ }
+#if !LV_USE_DRAW_OPENGLES
+ uint32_t stride = lv_draw_buf_width_to_stride(width, lv_display_get_color_format(disp));
+ uint32_t buf_size = stride * height;
+ uint8_t * buffer = lv_realloc(dsc->fb1, buf_size);
+ LV_ASSERT_MALLOC(buffer);
+ if(!buffer) {
+ GL_CALL(glDeleteTextures(1, &new_texture));
+ LV_LOG_ERROR("Failed to reshape texture. Couldn't resize buffer");
+ return;
+ }
+ dsc->fb1 = buffer;
+#endif /*!LV_USE_DRAW_OPENGLES*/
+
+ if(dsc->is_texture_owner && dsc->texture_id != 0) {
+ GL_CALL(glDeleteTextures(1, &dsc->texture_id));
+ }
+ dsc->texture_id = new_texture;
+}
+
+lv_result_t lv_opengles_texture_create_draw_buffers(lv_opengles_texture_t * texture, lv_display_t * display)
+{
+ int32_t w = lv_display_get_horizontal_resolution(display);
+ int32_t h = lv_display_get_vertical_resolution(display);
+
+#if LV_USE_DRAW_OPENGLES
+ LV_UNUSED(texture);
+ static size_t LV_ATTRIBUTE_MEM_ALIGN dummy_buf;
+ lv_display_set_buffers(display, &dummy_buf, NULL, w * h * 4, LV_DISPLAY_RENDER_MODE_DIRECT);
+#else
+ uint32_t stride = lv_draw_buf_width_to_stride(w, lv_display_get_color_format(display));
+ uint32_t buf_size = stride * h;
+ texture->fb1 = lv_malloc(buf_size);
+ LV_ASSERT_MALLOC(texture->fb1);
+ if(!texture->fb1) {
+ return LV_RESULT_INVALID;
+ }
+ lv_display_set_buffers(display, texture->fb1, NULL, buf_size, LV_DISPLAY_RENDER_MODE_DIRECT);
+#endif
+ return LV_RESULT_OK;
+}
+
+void lv_opengles_texture_deinit(lv_opengles_texture_t * texture)
+{
+#if !LV_USE_DRAW_OPENGLES
+ lv_free(texture->fb1);
+#endif /*!LV_USE_DRAW_OPENGLES*/
+
+ if(texture->is_texture_owner && texture->texture_id != 0) {
+ GL_CALL(glDeleteTextures(1, &texture->texture_id));
+ }
+}
+
+unsigned int lv_opengles_texture_get_texture_id(lv_display_t * disp)
+{
+ lv_opengles_texture_t * dsc = lv_display_get_driver_data(disp);
+ return dsc->texture_id;
+}
+
+lv_display_t * lv_opengles_texture_get_from_texture_id(unsigned int texture_id)
+{
+ lv_display_t * disp = NULL;
+ while(NULL != (disp = lv_display_get_next(disp))) {
+ unsigned int disp_texture_id = lv_opengles_texture_get_texture_id(disp);
+ if(disp_texture_id == texture_id) {
+ return disp;
+ }
+ }
+ return NULL;
+}
+
+/**********************
+ * STATIC FUNCTIONS
+ **********************/
+
+static lv_display_t * lv_opengles_texture_create_common(int32_t w, int32_t h)
+{
+ lv_display_t * disp = lv_display_create(w, h);
+ if(!disp) {
+ LV_LOG_ERROR("Failed to create display");
+ return NULL;
+ }
+ lv_opengles_texture_t * texture = lv_malloc_zeroed(sizeof(lv_opengles_texture_t));
+ LV_ASSERT_MALLOC(texture);
+ if(!texture) {
+ LV_LOG_ERROR("Failed to create texture");
+ lv_display_delete(disp);
+ return NULL;
+ }
+ lv_result_t res = lv_opengles_texture_create_draw_buffers(texture, disp);
+ if(res != LV_RESULT_OK) {
+ LV_LOG_ERROR("Failed to create draw buffers");
+ lv_free(texture);
+ lv_display_delete(disp);
+ return NULL;
+ }
+ lv_display_set_resolution(disp, w, h);
+ lv_display_set_flush_cb(disp, flush_cb);
+ lv_display_set_driver_data(disp, texture);
+ lv_display_add_event_cb(disp, release_disp_cb, LV_EVENT_DELETE, disp);
+
+ lv_opengles_init();
+ return disp;
+}
+
+static unsigned int create_texture(int32_t w, int32_t h)
+{
+ unsigned int texture;
+ GL_CALL(glGenTextures(1, &texture));
+ GL_CALL(glBindTexture(GL_TEXTURE_2D, texture));
+ GL_CALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST));
+ GL_CALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST));
+ GL_CALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE));
+ GL_CALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE));
+ GL_CALL(glPixelStorei(GL_UNPACK_ALIGNMENT, 1));
+
+ /* set the dimensions and format to complete the texture */
+ /* Color depth: 16 (RGB565), 32 (XRGB8888) */
+#if LV_COLOR_DEPTH == 16
+ GL_CALL(glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB565, w, h, 0, GL_RGB, GL_UNSIGNED_SHORT_5_6_5,
+ NULL));
+#elif LV_COLOR_DEPTH == 32
+ GL_CALL(glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, w, h, 0, GL_BGRA, GL_UNSIGNED_BYTE, NULL));
+#else
+#error("Unsupported color format")
+#endif
+
+#if 0
+ GL_CALL(glGenerateMipmap(GL_TEXTURE_2D));
+ GL_CALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 20));
+ GL_CALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_NEAREST));
+#endif
+
+ GL_CALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST));
+ GL_CALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST));
+ GL_CALL(glBindTexture(GL_TEXTURE_2D, GL_NONE));
+ return texture;
+}
+
+/**********************
+ * STATIC FUNCTIONS
+ **********************/
+
+static void flush_cb(lv_display_t * disp, const lv_area_t * area, uint8_t * px_map)
+{
+ LV_UNUSED(area);
+ LV_UNUSED(px_map);
+
+#if !LV_USE_DRAW_OPENGLES
+ if(lv_display_flush_is_last(disp)) {
+
+ lv_opengles_texture_t * dsc = lv_display_get_driver_data(disp);
+ lv_color_format_t cf = lv_display_get_color_format(disp);
+ uint32_t stride = lv_draw_buf_width_to_stride(lv_display_get_horizontal_resolution(disp), cf);
+
+ GL_CALL(glBindTexture(GL_TEXTURE_2D, dsc->texture_id));
+
+ GL_CALL(glPixelStorei(GL_UNPACK_ALIGNMENT, 1));
+ GL_CALL(glPixelStorei(GL_UNPACK_ROW_LENGTH, stride / lv_color_format_get_size(cf)));
+ /*Color depth: 16 (RGB565), 32 (XRGB8888)*/
+#if LV_COLOR_DEPTH == 16
+ GL_CALL(glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB565, disp->hor_res, disp->ver_res, 0, GL_RGB, GL_UNSIGNED_SHORT_5_6_5,
+ dsc->fb1));
+#elif LV_COLOR_DEPTH == 32
+ GL_CALL(glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, disp->hor_res, disp->ver_res, 0, GL_BGRA, GL_UNSIGNED_BYTE, dsc->fb1));
+#else
+#error("Unsupported color format")
+#endif
+ }
+#endif /* !LV_USE_DRAW_OPENGLES */
+
+ lv_display_flush_ready(disp);
+}
+
+static void release_disp_cb(lv_event_t * e)
+{
+ lv_display_t * disp = lv_event_get_user_data(e);
+ lv_opengles_texture_t * texture = lv_display_get_driver_data(disp);
+ lv_opengles_texture_deinit(texture);
+ lv_free(texture);
+}
+
+#endif /*LV_USE_OPENGLES*/
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/glfw/lv_opengles_texture.h b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/lv_opengles_texture.h
similarity index 67%
rename from lib/libesp32_lvgl/lvgl/src/drivers/glfw/lv_opengles_texture.h
rename to lib/libesp32_lvgl/lvgl/src/drivers/opengles/lv_opengles_texture.h
index 0d53b2b16..2a6933a95 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/glfw/lv_opengles_texture.h
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/lv_opengles_texture.h
@@ -33,12 +33,25 @@ extern "C" {
/**
* Create a display that flushes to an OpenGL texture
+ * If you already have a texture and want to bind it to the display,
+ * see `lv_opengles_texture_create_from_texture_id`
* @param w width in pixels of the texture
* @param h height in pixels of the texture
- * @return the new display
+ * @return the new display or NULL on failure
*/
lv_display_t * lv_opengles_texture_create(int32_t w, int32_t h);
+/**
+ * Create a display that flushes to the provided OpenGL texture
+ * If you don't have a texture to bind it to the display,
+ * see `lv_opengles_texture_create`
+ * @param w width in pixels of the texture
+ * @param h height in pixels of the texture
+ * @param texture_id the texture LVGL will render to
+ * @return the new display or NULL on failure
+ */
+lv_display_t * lv_opengles_texture_create_from_texture_id(int32_t w, int32_t h, unsigned int texture_id);
+
/**
* Get the OpenGL texture ID of the display
* @param disp display
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/opengles/lv_opengles_texture_private.h b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/lv_opengles_texture_private.h
new file mode 100644
index 000000000..47c7a74b5
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/lv_opengles_texture_private.h
@@ -0,0 +1,57 @@
+/**
+ * @file lv_opengles_texture_private.h
+ *
+ */
+
+
+#ifndef LV_OPENGLES_TEXTURE_PRIVATE_H
+#define LV_OPENGLES_TEXTURE_PRIVATE_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*********************
+ * INCLUDES
+ *********************/
+#include "../../lv_conf_internal.h"
+
+#if LV_USE_OPENGLES
+
+#include "lv_opengles_texture.h"
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+typedef struct {
+ unsigned int texture_id;
+#if !LV_USE_DRAW_OPENGLES
+ uint8_t * fb1;
+#endif /*!LV_USE_DRAW_OPENGLES*/
+ bool is_texture_owner;
+} lv_opengles_texture_t;
+
+/**********************
+ * GLOBAL PROTOTYPES
+ **********************/
+
+lv_result_t lv_opengles_texture_create_draw_buffers(lv_opengles_texture_t * texture, lv_display_t * display);
+void lv_opengles_texture_reshape(lv_display_t * disp, int32_t width, int32_t height);
+void lv_opengles_texture_deinit(lv_opengles_texture_t * texture);
+
+/**********************
+ * MACROS
+ **********************/
+
+#endif /*LV_USE_OPENGLES*/
+
+#ifdef __cplusplus
+} /*extern "C"*/
+#endif
+
+#endif /* LV_OPENGLES_TEXTURE_PRIVATE_H */
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/opengles/lv_opengles_window.h b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/lv_opengles_window.h
new file mode 100644
index 000000000..9f22af2c5
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/lv_opengles_window.h
@@ -0,0 +1,102 @@
+/**
+ * @file lv_opengles_window.h
+ *
+ */
+
+#ifndef LV_OPENGLES_WINDOW_H
+#define LV_OPENGLES_WINDOW_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*********************
+ * INCLUDES
+ *********************/
+
+#include "../../lv_conf_internal.h"
+#if LV_USE_OPENGLES
+
+#include "../../misc/lv_types.h"
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+/**********************
+ * GLOBAL PROTOTYPES
+ **********************/
+
+/**
+ * Delete an OpenGL window. If it is the last one, the process will exit
+ * @param window OpenGL window to delete
+ */
+void lv_opengles_window_delete(lv_opengles_window_t * window);
+
+/**
+ * Add a texture to the OpenGL window. It can be an LVGL display texture, or any OpenGL texture
+ * @param window OpenGL window
+ * @param texture_id OpenGL texture ID
+ * @param w width in pixels of the texture
+ * @param h height in pixels of the texture
+ * @return the new texture handle
+ */
+lv_opengles_window_texture_t * lv_opengles_window_add_texture(lv_opengles_window_t * window, unsigned int texture_id,
+ int32_t w, int32_t h);
+
+lv_display_t * lv_opengles_window_display_create(lv_opengles_window_t * window, int32_t w, int32_t h);
+
+lv_opengles_window_texture_t * lv_opengles_window_display_get_window_texture(lv_display_t * window_display);
+
+/**
+ * Remove a texture from its OpenGL window and delete it
+ * @param texture handle of an OpenGL window texture
+ */
+void lv_opengles_window_texture_remove(lv_opengles_window_texture_t * texture);
+
+/**
+ * Set the x position of a texture within its OpenGL window
+ * @param texture handle of an OpenGL window texture
+ * @param x new x position of the texture
+ */
+void lv_opengles_window_texture_set_x(lv_opengles_window_texture_t * texture, int32_t x);
+
+/**
+ * Set the y position of a texture within its OpenGL window
+ * @param texture handle of an OpenGL window texture
+ * @param y new y position of the texture
+ */
+void lv_opengles_window_texture_set_y(lv_opengles_window_texture_t * texture, int32_t y);
+
+/**
+ * Set the opacity of a texture in an OpenGL window
+ * @param texture handle of an OpenGL window texture
+ * @param opa new opacity of the texture
+ */
+void lv_opengles_window_texture_set_opa(lv_opengles_window_texture_t * texture, lv_opa_t opa);
+
+/**
+ * Get the mouse indev associated with a texture in an OpenGL window, if it exists
+ * @param texture handle of an OpenGL window texture
+ * @return the indev or `NULL`
+ * @note there will only be an indev if the texture is based on an
+ * LVGL display texture and the window was created with
+ * `use_mouse_indev` as `true`
+ */
+lv_indev_t * lv_opengles_window_texture_get_mouse_indev(lv_opengles_window_texture_t * texture);
+
+/**********************
+ * MACROS
+ **********************/
+
+#endif /* LV_USE_OPENGLES */
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /* LV_OPENGLES_WINDOW_H */
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/opengles/opengl_shader/lv_opengl_shader_internal.h b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/opengl_shader/lv_opengl_shader_internal.h
new file mode 100644
index 000000000..90f865de5
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/opengl_shader/lv_opengl_shader_internal.h
@@ -0,0 +1,124 @@
+/**
+ @file lv_opengl_shader_internal.h
+ *
+ */
+
+#ifndef LV_OPENGL_SHADER_INTERNAL_H
+#define LV_OPENGL_SHADER_INTERNAL_H
+
+#include "../../../lv_conf_internal.h"
+
+#if LV_USE_OPENGLES
+#include "../lv_opengles_private.h"
+#include "../lv_opengles_debug.h"
+#include "../../../misc/lv_types.h"
+#include "../../../misc/lv_rb_private.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*********************
+ * INCLUDES
+ *********************/
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+typedef struct {
+ const char * name;
+ const char * source;
+} lv_opengl_shader_t;
+
+typedef struct {
+ const lv_opengl_shader_t * all;
+ uint32_t count;
+} lv_opengl_shader_portions_t;
+
+typedef struct {
+ const char * name;
+ const char * value;
+ bool value_allocated;
+} lv_opengl_shader_define_t;
+
+typedef struct {
+ lv_opengl_shader_t data;
+ bool src_allocated;
+} lv_opengl_shader_source_t;
+
+typedef struct {
+ uint32_t hash;
+ GLuint id;
+} lv_opengl_compiled_shader_t;
+
+typedef struct lv_opengl_shader_cache_struct {
+ lv_rb_t sources_map;
+ lv_rb_t textures_map;
+ lv_rb_t compiled_shaders_map;
+ lv_rb_t programs_map;
+ GLuint bg_index_buf;
+ GLuint bg_vertex_buf;
+ GLuint bg_program;
+ GLuint bg_vao;
+} lv_opengl_shader_manager_t;
+
+struct _lv_shader_program;
+
+typedef void (*lv_opengl_shader_program_update_uniformi_t)(struct _lv_shader_program *, const char *, int);
+
+typedef void (*lv_opengl_shader_program_update_uniformf_t)(struct _lv_shader_program *, const char *, float);
+
+typedef struct _lv_shader_program {
+ lv_opengl_shader_program_update_uniformi_t update_uniform_1i;
+ lv_opengl_shader_program_update_uniformf_t update_uniform_1f;
+ uint32_t id;
+} lv_opengl_shader_program_t;
+
+typedef enum {
+ LV_OPENGL_GLSL_VERSION_300ES,
+ LV_OPENGL_GLSL_VERSION_100,
+ LV_OPENGL_GLSL_VERSION_LAST,
+} lv_opengl_glsl_version;
+
+/**********************
+ * GLOBAL PROTOTYPES
+ **********************/
+
+char * lv_opengl_shader_manager_process_includes(const char * c_src, const lv_opengl_shader_t * src_includes,
+ size_t num_items);
+
+lv_opengl_shader_program_t * lv_opengl_shader_program_create(uint32_t id);
+void lv_opengl_shader_program_destroy(lv_opengl_shader_program_t * program);
+GLuint lv_opengl_shader_program_get_id(lv_opengl_shader_program_t * program);
+
+void lv_opengl_shader_manager_init(lv_opengl_shader_manager_t * manager, const lv_opengl_shader_t * sources,
+ size_t len, const char * vert_src,
+ const char * frag_src);
+void lv_opengl_shader_manager_deinit(lv_opengl_shader_manager_t * manager);
+uint32_t lv_opengl_shader_hash(const char * value);
+GLuint lv_opengl_shader_manager_get_texture(lv_opengl_shader_manager_t * manager, uint32_t hash);
+void lv_opengl_shader_manager_store_texture(lv_opengl_shader_manager_t * manager, uint32_t hash, GLuint id);
+lv_result_t lv_opengl_shader_manager_select_shader(lv_opengl_shader_manager_t * shader, const char * shader_identifier,
+ const lv_opengl_shader_define_t * permutations, size_t permutations_len,
+ lv_opengl_glsl_version glsl_version, uint32_t * out_hash);
+lv_opengl_shader_program_t * lv_opengl_shader_manager_get_program(lv_opengl_shader_manager_t * manager,
+ uint32_t fragment_shader_hash,
+ uint32_t vertex_shader_hash);
+
+const char * lv_opengles_glsl_version_to_string(lv_opengl_glsl_version version);
+
+/**********************
+ * MACROS
+ **********************/
+
+#ifdef __cplusplus
+} /*extern "C"*/
+#endif
+
+#endif /*LV_USE_OPENGLES*/
+#endif /*LV_OPENGL_SHADER_INTERNAL_H*/
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/opengles/opengl_shader/lv_opengl_shader_manager.c b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/opengl_shader/lv_opengl_shader_manager.c
new file mode 100644
index 000000000..aa9b62fe7
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/opengl_shader/lv_opengl_shader_manager.c
@@ -0,0 +1,648 @@
+/**
+ * @file lv_opengl_shader_manager.c
+ *
+ */
+
+
+/*********************
+ * INCLUDES
+ *********************/
+
+#include "../../../lv_conf_internal.h"
+#if LV_USE_OPENGLES
+#include "lv_opengl_shader_internal.h"
+#include "../../../misc/lv_assert.h"
+#include "../../../misc/lv_log.h"
+#include "../../../misc/lv_rb.h"
+#include "../../../misc/lv_types.h"
+#include "../../../stdlib/lv_mem.h"
+#include "../../../stdlib/lv_sprintf.h"
+#include "../lv_opengles_private.h"
+#include "../lv_opengles_debug.h"
+#include "../../../stdlib/lv_string.h"
+
+#include
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+typedef lv_opengl_compiled_shader_t lv_opengl_shader_texture_t;
+
+typedef struct {
+ lv_opengl_shader_program_t * program;
+ uint32_t vertex_shader_hash;
+ uint32_t fragment_shader_hash;
+} lv_opengl_program_map_key_t;
+
+/**********************
+ * STATIC PROTOTYPES
+ **********************/
+
+static char * replace_word(const char * s, const char * f, const char * r);
+
+static lv_rb_compare_res_t
+shader_source_compare_cb(const lv_opengl_shader_source_t * lhs,
+ const lv_opengl_shader_source_t * rhs);
+
+static lv_rb_compare_res_t
+compiled_shader_compare_cb(const lv_opengl_compiled_shader_t * lhs,
+ const lv_opengl_compiled_shader_t * rhs);
+
+static lv_rb_compare_res_t
+shader_program_compare_cb(const lv_opengl_program_map_key_t * lhs,
+ const lv_opengl_program_map_key_t * rhs);
+
+static lv_rb_t create_shader_map(const lv_opengl_shader_t * shaders, size_t len);
+static bool string_ends_with(const char * value, const char * suffix);
+
+static char * construct_shader(const char * source,
+ const lv_opengl_shader_define_t * permutations,
+ size_t permutations_len, lv_opengl_glsl_version glsl_version);
+
+static GLuint compile_shader(const char * shader_source, bool is_vertex_shader);
+static GLuint link_program(GLuint vertex_shader_id, GLuint fragment_shader_id);
+static bool is_shader_compiled(GLint shader_id);
+static bool is_program_linked(GLint program_id);
+/**********************
+ * STATIC VARIABLES
+ **********************/
+
+/**********************
+ * MACROS
+ **********************/
+
+/**********************
+ * GLOBAL FUNCTIONS
+ **********************/
+
+void lv_opengl_shader_manager_init(lv_opengl_shader_manager_t * manager, const lv_opengl_shader_t * sources,
+ size_t len, const char * vert_src,
+ const char * frag_src)
+{
+
+ manager->sources_map = create_shader_map(sources, len);
+ if(vert_src != NULL) {
+ lv_opengl_shader_t entry = { "__MAIN__.vert", lv_strdup(vert_src) };
+ lv_rb_node_t * node = lv_rb_insert(&manager->sources_map, &entry);
+ LV_ASSERT_MSG(node,
+ "Failed to insert shader source to source map");
+ lv_memcpy(node->data, &entry, sizeof(entry));
+ }
+ if(frag_src != NULL) {
+ lv_opengl_shader_t entry = { "__MAIN__.frag", lv_strdup(frag_src) };
+ lv_rb_node_t * node = lv_rb_insert(&manager->sources_map, &entry);
+ LV_ASSERT_MSG(node, "Failed to insert shader to shader map");
+ lv_memcpy(node->data, &entry, sizeof(entry));
+ }
+
+ lv_rb_init(&manager->compiled_shaders_map,
+ (lv_rb_compare_t)compiled_shader_compare_cb,
+ sizeof(lv_opengl_compiled_shader_t));
+
+ /* Textures and compiled shaders share the same compare function */
+ lv_rb_init(&manager->textures_map,
+ (lv_rb_compare_t)compiled_shader_compare_cb,
+ sizeof(lv_opengl_shader_texture_t));
+
+ lv_rb_init(&manager->programs_map,
+ (lv_rb_compare_t)shader_program_compare_cb,
+ sizeof(lv_opengl_program_map_key_t));
+
+ manager->bg_index_buf = 0;
+ manager->bg_vertex_buf = 0;
+ manager->bg_program = 0;
+}
+
+uint32_t lv_opengl_shader_hash(const char * value)
+{
+ uint32_t hash = 0;
+ const size_t len = lv_strlen(value);
+ if(len == 0) {
+ return hash;
+ }
+ for(size_t i = 0; i < len; i++) {
+ hash = ((hash << 5) - hash) + value[i];
+ }
+ return hash;
+}
+
+void lv_opengl_shader_manager_store_texture(lv_opengl_shader_manager_t * manager,
+ uint32_t texture_hash,
+ GLuint texture_id)
+{
+ lv_opengl_shader_texture_t key = { .id = texture_id, .hash = texture_hash };
+ lv_rb_node_t * node = lv_rb_insert(&manager->textures_map, &key);
+ if(!node) {
+ LV_LOG_WARN("Failed to cache texture hash: %d id: %d",
+ texture_hash, texture_id);
+ return;
+ }
+
+ lv_memcpy(node->data, &key, sizeof(key));
+}
+
+GLuint lv_opengl_shader_manager_get_texture(lv_opengl_shader_manager_t * manager,
+ uint32_t texture_hash)
+{
+ lv_opengl_shader_texture_t key = { .hash = texture_hash };
+ lv_rb_node_t * node = lv_rb_find(&manager->textures_map, &key);
+ if(!node) {
+ LV_LOG_INFO("Couldn't find texture with hash %d in cache",
+ texture_hash);
+ return GL_NONE;
+ }
+ return ((lv_opengl_shader_texture_t *)node->data)->id;
+}
+
+lv_result_t lv_opengl_shader_manager_select_shader(lv_opengl_shader_manager_t * shader, const char * shader_identifier,
+ const lv_opengl_shader_define_t * permutations, size_t permutations_len,
+ lv_opengl_glsl_version glsl_version, uint32_t * out_hash)
+{
+ /* First check that the shader identifier exists */
+ lv_opengl_shader_t key = { shader_identifier, NULL };
+ lv_rb_node_t * source_node = lv_rb_find(&shader->sources_map, &key);
+ LV_LOG_TRACE("Select shader '%s'", shader_identifier);
+
+ if(!source_node) {
+ LV_LOG_WARN("Couldn't find shader %s", shader_identifier);
+ return LV_RESULT_INVALID;
+ }
+
+ /* Then hash the name with the permutations and see if we already compiled it */
+ char define[512];
+ uint32_t hash = lv_opengl_shader_hash(shader_identifier);
+ for(size_t i = 0; i < permutations_len; ++i) {
+ LV_ASSERT_NULL(permutations[i].name);
+ if(permutations[i].value) {
+ lv_snprintf(define, sizeof(define), "%s%s", permutations[i].name, permutations[i].value);
+ }
+ else {
+ lv_snprintf(define, sizeof(define), "%s", permutations[i].name);
+ }
+ hash ^= lv_opengl_shader_hash(define);
+ }
+ lv_opengl_compiled_shader_t shader_map_key = { hash, 0 };
+ lv_rb_node_t * shader_map_node =
+ lv_rb_find(&shader->compiled_shaders_map, &shader_map_key);
+
+ /* Fast path. Shader already compiled */
+ if(shader_map_node != NULL) {
+ LV_LOG_INFO("Shader '%s' with hash %u found. Id: %d", shader_identifier, hash,
+ ((lv_opengl_compiled_shader_t *)shader_map_node->data)->id);
+ *out_hash = hash;
+ return LV_RESULT_OK;
+ }
+
+ /* New shader requested, construct and compile it */
+ bool is_vertex = string_ends_with(shader_identifier, ".vert");
+ const char * original_shader_source = ((lv_opengl_shader_source_t *)source_node->data)->data.source;
+
+ char * shader_source = construct_shader(original_shader_source,
+ permutations, permutations_len, glsl_version);
+
+ shader_map_key.id = compile_shader(shader_source, is_vertex);
+ lv_free(shader_source);
+
+ if(!is_shader_compiled(shader_map_key.id)) {
+ GLchar info_log[512];
+ GL_CALL(glGetShaderInfoLog(shader_map_key.id, sizeof(info_log), NULL, info_log));
+ LV_LOG_WARN("Failed to compile shader for glsl version '%s': %s", lv_opengles_glsl_version_to_string(glsl_version),
+ info_log);
+ return LV_RESULT_INVALID;
+ }
+
+ LV_LOG_TRACE("Compiled %s shader %s to %d Hash %u", is_vertex ? "V" : "F", shader_identifier, shader_map_key.id, hash);
+ lv_rb_node_t * node = lv_rb_insert(&shader->compiled_shaders_map, &shader_map_key);
+ LV_ASSERT_MSG(node, "Failed to insert shader to shader map");
+ lv_memcpy(node->data, &shader_map_key, sizeof(shader_map_key));
+
+ *out_hash = hash;
+
+ return LV_RESULT_OK;
+}
+
+lv_opengl_shader_program_t *
+lv_opengl_shader_manager_get_program(lv_opengl_shader_manager_t * manager,
+ uint32_t fragment_shader_hash,
+ uint32_t vertex_shader_hash)
+{
+ lv_opengl_program_map_key_t key = {
+ .vertex_shader_hash = vertex_shader_hash,
+ .fragment_shader_hash = fragment_shader_hash
+ };
+
+ lv_rb_node_t * node = lv_rb_find(&manager->programs_map, &key);
+ if(node) {
+ return ((lv_opengl_program_map_key_t *)node->data)->program;
+ }
+
+ lv_opengl_compiled_shader_t shader_key = { .hash = vertex_shader_hash };
+ lv_rb_node_t * vertex_node =
+ lv_rb_find(&manager->compiled_shaders_map, &shader_key);
+ shader_key.hash = fragment_shader_hash;
+ lv_rb_node_t * fragment_node =
+ lv_rb_find(&manager->compiled_shaders_map, &shader_key);
+
+ LV_ASSERT_FORMAT_MSG(
+ vertex_node,
+ "Unable to find to find vertex shader with hash %d",
+ vertex_shader_hash);
+ LV_ASSERT_FORMAT_MSG(
+ fragment_node,
+ "Unable to find to find fragment shader with hash %d",
+ fragment_shader_hash);
+
+ const GLuint vertex_shader_id =
+ ((lv_opengl_compiled_shader_t *)vertex_node->data)->id;
+ const GLuint fragment_shader_id =
+ ((lv_opengl_compiled_shader_t *)fragment_node->data)->id;
+
+ GLuint program_id = link_program(vertex_shader_id, fragment_shader_id);
+ bool is_linked = is_program_linked(program_id);
+ if(!is_linked) {
+ GLchar info_log[512];
+ GL_CALL(glGetProgramInfoLog(program_id, sizeof(info_log), NULL,
+ info_log));
+ LV_LOG_WARN("Failed to link program: %s", info_log);
+ return NULL;
+ }
+ LV_LOG_TRACE("Linking program with shaders V: %d F:%d P: %d", vertex_shader_id, fragment_shader_id, program_id);
+
+ lv_opengl_shader_program_t * program =
+ lv_opengl_shader_program_create(program_id);
+
+ LV_ASSERT_MSG(program, "Failed to create program");
+
+ lv_opengl_program_map_key_t prog_key = {
+ .program = program,
+ .fragment_shader_hash = fragment_shader_hash,
+ .vertex_shader_hash = vertex_shader_hash
+ };
+ node = lv_rb_insert(&manager->programs_map, &prog_key);
+ LV_ASSERT_MSG(node, "Failed to store program in cache");
+ lv_memcpy(node->data, &prog_key, sizeof(prog_key));
+ return program;
+}
+
+void lv_opengl_shader_manager_deinit(lv_opengl_shader_manager_t * manager)
+{
+ LV_LOG_INFO("Destroying shader cache");
+
+ lv_rb_destroy(&manager->textures_map);
+
+ lv_rb_node_t * node;
+
+ while((node = manager->sources_map.root)) {
+ lv_opengl_shader_source_t * shader = node->data;
+ if(shader->src_allocated) {
+ lv_free((void *)shader->data.source);
+ }
+ lv_rb_remove_node(&manager->sources_map, node);
+ }
+ lv_rb_destroy(&manager->sources_map);
+
+ while((node = manager->compiled_shaders_map.root)) {
+ lv_opengl_compiled_shader_t * shader = node->data;
+ GL_CALL(glDeleteShader(shader->id));
+ lv_rb_remove_node(&manager->compiled_shaders_map, node);
+ }
+
+ lv_rb_destroy(&manager->compiled_shaders_map);
+ while((node = manager->programs_map.root)) {
+ lv_opengl_program_map_key_t * program_key = node->data;
+ lv_opengl_shader_program_destroy(program_key->program);
+ lv_rb_remove_node(&manager->programs_map, node);
+ }
+ lv_rb_destroy(&manager->programs_map);
+
+}
+
+const char * lv_opengles_glsl_version_to_string(lv_opengl_glsl_version version)
+{
+
+ switch(version) {
+ case LV_OPENGL_GLSL_VERSION_100:
+ return "#version 100\n";
+ case LV_OPENGL_GLSL_VERSION_300ES:
+ return "#version 300 es\n";
+ case LV_OPENGL_GLSL_VERSION_LAST:
+ LV_LOG_ERROR("LV_OPENGL_GLSL_VERSION_LAST is not a valid version");
+ return NULL;
+ }
+ LV_UNREACHABLE();
+}
+
+char * lv_opengl_shader_manager_process_includes(const char * c_src, const lv_opengl_shader_t * src_includes,
+ size_t num_items)
+{
+ if(!c_src || !src_includes) {
+ return NULL;
+ }
+
+ char * rep = lv_strdup(c_src);
+ if(!rep) {
+ return NULL;
+ }
+ char search_str[255];
+
+ for(size_t i = 0; i < num_items; i++) {
+ lv_snprintf(search_str, sizeof(search_str), "\n#include <%s>", src_includes[i].name);
+
+ char * new_rep = replace_word(rep, search_str, src_includes[i].source);
+ lv_free(rep);
+ if(!new_rep) {
+ return NULL;
+ }
+ rep = new_rep;
+ }
+
+ return rep;
+}
+
+/**********************
+ * STATIC FUNCTIONS
+ **********************/
+
+static char * replace_word(const char * source, const char * f, const char * r)
+{
+ if(!source || !f || !r || strlen(f) == 0 || strcmp(f, r) == 0 || !strstr(source, f)) {
+ return lv_strdup(source);
+ }
+
+ size_t s_len = strlen(source);
+ size_t f_len = strlen(f);
+ size_t r_len = strlen(r);
+
+ size_t count = 0;
+ const char * temp = source;
+ while((temp = strstr(temp, f)) != NULL) {
+ count++;
+ temp += f_len;
+ }
+
+ size_t new_size = s_len + count * (r_len - f_len) + 1;
+ char * result = lv_malloc(new_size);
+ LV_ASSERT_MALLOC(result);
+
+ char * dest = result;
+ const char * src = source;
+ const char * pos;
+
+ while((pos = strstr(src, f)) != NULL) {
+ size_t prefix_len = pos - src;
+ memcpy(dest, src, prefix_len);
+ dest += prefix_len;
+
+ memcpy(dest, r, r_len);
+ dest += r_len;
+
+ src = pos + f_len;
+ }
+
+ strcpy(dest, src);
+
+ return result;
+}
+
+static lv_rb_compare_res_t
+shader_program_compare_cb(const lv_opengl_program_map_key_t * lhs,
+ const lv_opengl_program_map_key_t * rhs)
+{
+ const lv_rb_compare_res_t cmp = lhs->vertex_shader_hash - rhs->vertex_shader_hash;
+ if(cmp == 0) {
+ return lhs->fragment_shader_hash - rhs->fragment_shader_hash;
+ }
+ return cmp;
+}
+
+static lv_rb_compare_res_t
+shader_source_compare_cb(const lv_opengl_shader_source_t * lhs,
+ const lv_opengl_shader_source_t * rhs)
+{
+ return lv_strcmp(lhs->data.name, rhs->data.name);
+}
+
+static lv_rb_compare_res_t
+compiled_shader_compare_cb(const lv_opengl_compiled_shader_t * lhs,
+ const lv_opengl_compiled_shader_t * rhs)
+{
+ return lhs->hash - rhs->hash;
+}
+static bool is_shader_compiled(GLint shader_id)
+{
+ int shader_compiled;
+ GL_CALL(glGetShaderiv(shader_id, GL_COMPILE_STATUS, &shader_compiled));
+ return shader_compiled;
+}
+
+static bool is_program_linked(GLint program_id)
+{
+ int link_status;
+ GL_CALL(glGetProgramiv(program_id, GL_LINK_STATUS, &link_status));
+ return link_status;
+}
+static GLuint compile_shader(const char * shader_source, bool is_vertex_shader)
+{
+ GLuint shader_id;
+ if(is_vertex_shader) {
+ GL_CALL(shader_id = glCreateShader(GL_VERTEX_SHADER));
+ }
+ else {
+ GL_CALL(shader_id = glCreateShader(GL_FRAGMENT_SHADER));
+ }
+
+ GL_CALL(glShaderSource(shader_id, 1, (const char **)&shader_source,
+ NULL));
+ GL_CALL(glCompileShader(shader_id));
+
+ return shader_id;
+}
+
+static GLuint link_program(GLuint vertex_shader_id, GLuint fragment_shader_id)
+{
+ GLuint program_id;
+ GL_CALL(program_id = glCreateProgram());
+ GL_CALL(glAttachShader(program_id, fragment_shader_id));
+ GL_CALL(glAttachShader(program_id, vertex_shader_id));
+ GL_CALL(glLinkProgram(program_id));
+
+ return program_id;
+}
+
+static char * append_to_shader(char * dst, const char * src, size_t * curr_index)
+{
+ lv_strcpy(dst + *curr_index, src);
+ *curr_index += lv_strlen(src);
+ return dst;
+}
+
+static char * construct_shader(const char * source,
+ const lv_opengl_shader_define_t * permutations,
+ size_t permutations_len, lv_opengl_glsl_version glsl_version)
+{
+ const char * defines = lv_opengles_glsl_version_to_string(glsl_version);
+ const char * prefix = "#define ";
+
+ const size_t prefix_len = lv_strlen(prefix);
+ size_t shader_source_size = lv_strlen(defines) + lv_strlen(source);
+
+ /* First calculate the necessary size */
+ for(size_t i = 0; i < permutations_len; ++i) {
+ shader_source_size += prefix_len;
+ if(!permutations[i].name) {
+ LV_LOG_WARN("Name is NULL for permutation # %zu", i);
+ continue;
+ }
+ shader_source_size +=
+ lv_strlen(permutations[i].name) + 1; /* ' ' */
+ if(permutations[i].value) {
+ shader_source_size +=
+ lv_strlen(permutations[i].value) + 1; /* '\n' */
+ }
+ }
+
+ /* Allocate enough for memory with calculated size*/
+ char * result = (char *)lv_malloc(shader_source_size + 1);
+ if(!result) {
+ LV_LOG_ERROR(
+ "Failed to allocate enough space for shader changes");
+ return 0;
+ }
+
+ /* Construct shader */
+ size_t curr_index = 0;
+ append_to_shader(result, defines, &curr_index);
+ for(size_t i = 0; i < permutations_len; ++i) {
+ if(!permutations[i].name) {
+ continue;
+ }
+ append_to_shader(result, prefix, &curr_index);
+ append_to_shader(result, permutations[i].name, &curr_index);
+ if(permutations[i].value) {
+ result[curr_index++] = ' ';
+ append_to_shader(result, permutations[i].value,
+ &curr_index);
+ }
+ result[curr_index++] = '\n';
+ }
+ append_to_shader(result, source, &curr_index);
+ LV_ASSERT(curr_index == shader_source_size);
+ result[shader_source_size] = '\0';
+ return result;
+}
+
+static char * replace_include(const char * source, const char * pattern,
+ const char * replacement)
+{
+ const char * pos = strstr(source, pattern);
+ LV_ASSERT(pos);
+
+ const size_t source_len = lv_strlen(source);
+ const size_t pattern_len = lv_strlen(pattern);
+ const size_t replacement_len = lv_strlen(replacement);
+
+ const size_t new_len = source_len - pattern_len + replacement_len;
+
+ char * result = (char *)lv_malloc(new_len + 1);
+ if(!result) {
+ return NULL;
+ }
+
+ const size_t before_len = pos - source;
+ lv_memcpy(result, source, before_len);
+ lv_memcpy(result + before_len, replacement, replacement_len);
+ lv_strcpy(result + before_len + replacement_len, pos + pattern_len);
+
+ /* Replace other patterns with whitespaces */
+ while((pos = strstr(result, pattern))) {
+ lv_memset((void *)pos, ' ', pattern_len);
+ }
+ result[new_len] = '\0';
+
+ return result;
+}
+static lv_rb_t create_shader_map(const lv_opengl_shader_t * shaders, size_t len)
+{
+ lv_rb_t map;
+ lv_rb_init(&map, (lv_rb_compare_t)shader_source_compare_cb,
+ sizeof(lv_opengl_shader_source_t));
+
+ char pattern[256];
+ for(size_t i = 0; i < len; i++) {
+ if(strlen(shaders[i].source) == 0) {
+ LV_LOG_WARN("Shader %s at index %zu is empty\n",
+ shaders[i].name, i);
+ continue;
+ }
+ lv_opengl_shader_source_t value = {
+ .data = {
+ .name = shaders[i].name,
+ .source = shaders[i].source
+ },
+ .src_allocated = false
+ };
+
+ for(size_t j = 0; j < len; j++) {
+ const char * source = value.data.source;
+ const char * include_name = shaders[j].name;
+ const char * include_source = shaders[j].source;
+ const size_t include_name_len = strlen(include_name);
+ const size_t include_source_len =
+ strlen(include_source);
+ if(include_name_len == 0 || include_source_len == 0) {
+ continue;
+ }
+ lv_snprintf(pattern, sizeof(pattern), "#include <%s>",
+ include_name);
+ const char * include_pattern = strstr(source, pattern);
+ if(include_pattern == NULL) {
+ continue;
+ }
+ LV_LOG_TRACE("Replacing %s", pattern);
+ char * new_source = replace_include(source, pattern,
+ include_source);
+ LV_ASSERT_MSG(
+ new_source,
+ "Failed to allocate memory to replace shader include with source code");
+
+ if(value.src_allocated) {
+ lv_free((void *)value.data.source);
+ }
+ value.data.source = new_source;
+ value.src_allocated = true;
+ }
+ if(strstr(value.data.source, "#include")) {
+ LV_LOG_ERROR(
+ "Couldn't replace every include in shader %s. Last result:\n%s",
+ value.data.name, value.data.source);
+ LV_ASSERT_MSG(
+ 0,
+ "Refusing to continue execution with incorrect shaders");
+ }
+
+ lv_rb_node_t * node = lv_rb_insert(&map, &value);
+ LV_ASSERT_MSG(node,
+ "Failed to allocate memory for shader map entry");
+ lv_memcpy(node->data, &value, sizeof(value));
+ }
+ return map;
+}
+
+static bool string_ends_with(const char * value, const char * suffix)
+{
+ const size_t value_len = strlen(value);
+ const size_t suffix_len = strlen(suffix);
+
+ if(value_len < suffix_len) {
+ return false;
+ }
+
+ return lv_streq(value + value_len - suffix_len, suffix);
+}
+
+#endif /*LV_USE_OPENGLES*/
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/opengles/opengl_shader/lv_opengl_shader_program.c b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/opengl_shader/lv_opengl_shader_program.c
new file mode 100644
index 000000000..5d94bd79f
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/opengles/opengl_shader/lv_opengl_shader_program.c
@@ -0,0 +1,124 @@
+/**
+ * @file lv_opengl_shader_program.c
+ *
+ */
+
+/*********************
+ * INCLUDES
+ *********************/
+
+#include "lv_opengl_shader_internal.h"
+
+#if LV_USE_OPENGLES
+
+#include "../lv_opengles_private.h"
+#include "../lv_opengles_debug.h"
+#include "../../../misc/lv_assert.h"
+#include "../../../stdlib/lv_mem.h"
+/*********************
+ * DEFINES
+ *********************/
+
+#define INVALID_LOCATION 0xFFFFFFFFu
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+/**********************
+ * STATIC PROTOTYPES
+ **********************/
+
+static void update_uniform_1i(lv_opengl_shader_program_t * program, const char * prop,
+ int value);
+
+static void update_uniform_1f(lv_opengl_shader_program_t * program, const char * prop,
+ float value);
+
+/**********************
+ * STATIC VARIABLES
+ **********************/
+
+/**********************
+ * MACROS
+ **********************/
+
+/**********************
+ * GLOBAL FUNCTIONS
+ **********************/
+
+lv_opengl_shader_program_t * lv_opengl_shader_program_create(unsigned int _program)
+{
+ lv_opengl_shader_program_t * program = lv_malloc(sizeof(*program));
+ LV_ASSERT_MALLOC(program);
+ if(!program) {
+ return NULL;
+ }
+ program->update_uniform_1i = &update_uniform_1i;
+ program->update_uniform_1f = &update_uniform_1f;
+ program->id = _program;
+
+ return program;
+}
+
+void lv_opengl_shader_program_destroy(lv_opengl_shader_program_t * program)
+{
+#ifndef __EMSCRIPTEN__
+ GLuint shader_names[10];
+ GLsizei shader_count;
+ GL_CALL(glGetAttachedShaders(program->id, 10, &shader_count,
+ shader_names));
+
+ // Detach and delete each shader
+ for(GLsizei i = 0; i < shader_count; ++i) {
+ if(shader_names[i] != 0)
+ GL_CALL(glDetachShader(program->id, shader_names[i]));
+ }
+#endif
+
+ GL_CALL(glDeleteProgram(program->id));
+}
+
+GLuint lv_opengl_shader_program_get_id(lv_opengl_shader_program_t * program)
+{
+ LV_ASSERT_NULL(program);
+ return program->id;
+}
+
+/**********************
+ * STATIC FUNCTIONS
+ **********************/
+
+
+static void update_uniform_1i(lv_opengl_shader_program_t * program, const char * prop,
+ int value)
+{
+ GLuint location = glGetUniformLocation(program->id, prop);
+ LV_ASSERT_FORMAT_MSG(location != INVALID_LOCATION,
+ "Uniform '%s' not found in program %d",
+ prop, program->id);
+ if(location == INVALID_LOCATION) {
+ LV_LOG_ERROR("Uniform '%s' not found in program %d", prop,
+ program->id);
+ return;
+ }
+ GL_CALL(glUniform1i(location, value));
+}
+
+static void update_uniform_1f(lv_opengl_shader_program_t * program, const char * prop,
+ float value)
+{
+ GLuint location = glGetUniformLocation(program->id, prop);
+
+ LV_ASSERT_FORMAT_MSG(location != INVALID_LOCATION,
+ "Uniform '%s' not found in program %d",
+ prop, program->id);
+ if(location == INVALID_LOCATION) {
+ LV_LOG_ERROR("Uniform '%s' not found in program %d", prop,
+ program->id);
+ return;
+ }
+ GL_CALL(glUniform1f(location, value));
+}
+
+#endif /*LV_USE_OPENGLES*/
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/sdl/lv_sdl_keyboard.c b/lib/libesp32_lvgl/lvgl/src/drivers/sdl/lv_sdl_keyboard.c
index ac12b7f7c..c9b1ee9a8 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/sdl/lv_sdl_keyboard.c
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/sdl/lv_sdl_keyboard.c
@@ -11,6 +11,7 @@
#include "../../core/lv_group.h"
#include "../../stdlib/lv_string.h"
+#include "../../misc/lv_text_private.h"
#include "lv_sdl_private.h"
/*********************
@@ -81,8 +82,14 @@ static void sdl_keyboard_read(lv_indev_t * indev, lv_indev_data_t * data)
else if(len > 0) {
dev->dummy_read = true;
data->state = LV_INDEV_STATE_PRESSED;
- data->key = dev->buf[0];
- lv_memmove(dev->buf, dev->buf + 1, len);
+ data->key = 0;
+ /*Copy the first UTF8 character from the buffer*/
+ uint32_t utf8_len = lv_text_encoded_size(dev->buf);
+ if(utf8_len == 0) utf8_len = 1; /*Make sure that at least 1 character is read*/
+ lv_memcpy(&data->key, dev->buf, utf8_len);
+
+ /*Drop the first character*/
+ lv_memmove(dev->buf, dev->buf + utf8_len, len - utf8_len + 1);
}
}
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/sdl/lv_sdl_mousewheel.h b/lib/libesp32_lvgl/lvgl/src/drivers/sdl/lv_sdl_mousewheel.h
index 7ca34bdbb..dab3dea4b 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/sdl/lv_sdl_mousewheel.h
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/sdl/lv_sdl_mousewheel.h
@@ -40,4 +40,4 @@ lv_indev_t * lv_sdl_mousewheel_create(void);
} /* extern "C" */
#endif
-#endif /* LV_DEV_SDL_MOUSEWHEEL_H */
+#endif /* LV_SDL_MOUSEWHEEL_H */
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/sdl/lv_sdl_window.c b/lib/libesp32_lvgl/lvgl/src/drivers/sdl/lv_sdl_window.c
index 4429c943e..fe19304d3 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/sdl/lv_sdl_window.c
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/sdl/lv_sdl_window.c
@@ -1,5 +1,5 @@
/**
- * @file lv_sdl_window.h
+ * @file lv_sdl_window.c
*
*/
@@ -158,6 +158,12 @@ void lv_sdl_window_set_resizeable(lv_display_t * disp, bool value)
SDL_SetWindowResizable(dsc->window, value);
}
+void lv_sdl_window_set_size(lv_display_t * disp, int32_t hor_res, int32_t ver_res)
+{
+ lv_sdl_window_t * dsc = lv_display_get_driver_data(disp);
+ SDL_SetWindowSize(dsc->window, hor_res, ver_res);
+}
+
void lv_sdl_window_set_zoom(lv_display_t * disp, float zoom)
{
lv_sdl_window_t * dsc = lv_display_get_driver_data(disp);
@@ -208,6 +214,20 @@ void * lv_sdl_window_get_renderer(lv_display_t * disp)
return dsc->renderer;
}
+struct SDL_Window * lv_sdl_window_get_window(lv_display_t * disp)
+{
+ if(!disp) {
+ LV_LOG_ERROR("invalid display pointer");
+ return NULL;
+ }
+ lv_sdl_window_t * dsc = lv_display_get_driver_data(disp);
+ if(!dsc) {
+ LV_LOG_ERROR("invalid driver data");
+ return NULL;
+ }
+ return dsc->window;
+}
+
void lv_sdl_quit(void)
{
if(inited) {
@@ -368,7 +388,7 @@ static void window_create(lv_display_t * disp)
lv_sdl_window_t * dsc = lv_display_get_driver_data(disp);
dsc->zoom = 1.0;
- int flag = SDL_WINDOW_RESIZABLE;
+ int flag = 0;
#if LV_SDL_FULLSCREEN
flag |= SDL_WINDOW_FULLSCREEN;
#endif
@@ -430,6 +450,7 @@ static void texture_resize(lv_display_t * disp)
lv_sdl_window_t * dsc = lv_display_get_driver_data(disp);
dsc->fb1 = sdl_draw_buf_realloc_aligned(dsc->fb1, stride * disp->ver_res);
+ LV_ASSERT_MALLOC(dsc->fb1);
lv_memzero(dsc->fb1, stride * disp->ver_res);
if(sdl_render_mode() == LV_DISPLAY_RENDER_MODE_PARTIAL) {
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/sdl/lv_sdl_window.h b/lib/libesp32_lvgl/lvgl/src/drivers/sdl/lv_sdl_window.h
index eb78d9b30..e30b45828 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/sdl/lv_sdl_window.h
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/sdl/lv_sdl_window.h
@@ -35,6 +35,8 @@ extern "C" {
* TYPEDEFS
**********************/
+struct SDL_Window;
+
/**********************
* GLOBAL PROTOTYPES
**********************/
@@ -43,6 +45,8 @@ lv_display_t * lv_sdl_window_create(int32_t hor_res, int32_t ver_res);
void lv_sdl_window_set_resizeable(lv_display_t * disp, bool value);
+void lv_sdl_window_set_size(lv_display_t * disp, int32_t hor_res, int32_t ver_res);
+
void lv_sdl_window_set_zoom(lv_display_t * disp, float zoom);
float lv_sdl_window_get_zoom(lv_display_t * disp);
@@ -55,6 +59,8 @@ void * lv_sdl_window_get_renderer(lv_display_t * disp);
void lv_sdl_quit(void);
+struct SDL_Window * lv_sdl_window_get_window(lv_display_t * disp);
+
/**********************
* MACROS
**********************/
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/uefi/lv_uefi_context.c b/lib/libesp32_lvgl/lvgl/src/drivers/uefi/lv_uefi_context.c
index 03d89cef1..56ba2efd4 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/uefi/lv_uefi_context.c
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/uefi/lv_uefi_context.c
@@ -27,7 +27,7 @@
**********************/
/**********************
- * GOLBAL VARIABLES
+ * GLOBAL VARIABLES
**********************/
/**********************
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/uefi/lv_uefi_context.h b/lib/libesp32_lvgl/lvgl/src/drivers/uefi/lv_uefi_context.h
index 392d339b2..ed111b276 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/uefi/lv_uefi_context.h
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/uefi/lv_uefi_context.h
@@ -14,7 +14,7 @@ extern "C" {
* INCLUDES
*********************/
-#include "../../lvgl.h"
+#include "../../lv_conf_internal.h"
#if LV_USE_UEFI
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/uefi/lv_uefi_display.c b/lib/libesp32_lvgl/lvgl/src/drivers/uefi/lv_uefi_display.c
index 8fa807ee8..38b0cdacc 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/uefi/lv_uefi_display.c
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/uefi/lv_uefi_display.c
@@ -43,7 +43,7 @@ static void _display_ctx_free(lv_uefi_display_context_t * display_ctx);
static bool _display_interface_is_valid(const EFI_GRAPHICS_OUTPUT_PROTOCOL * interface);
/**********************
- * GOLBAL VARIABLES
+ * GLOBAL VARIABLES
**********************/
/**********************
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/uefi/lv_uefi_indev_keyboard.c b/lib/libesp32_lvgl/lvgl/src/drivers/uefi/lv_uefi_indev_keyboard.c
index 83e99b58f..4c8ad0b03 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/uefi/lv_uefi_indev_keyboard.c
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/uefi/lv_uefi_indev_keyboard.c
@@ -1,5 +1,5 @@
/**
- * @file lv_uefi_indev.c
+ * @file lv_uefi_indev_keyboard.c
*
*/
@@ -10,7 +10,7 @@
#include "../../lvgl.h"
#include "../../stdlib/lv_mem.h"
#include "../../misc/lv_types.h"
-#include "../../misc/lv_text.h"
+#include "../../misc/lv_text_private.h"
#if LV_USE_UEFI
@@ -343,4 +343,4 @@ static uint32_t _key_from_uefi_key(const EFI_KEY_DATA * key)
}
}
-#endif
\ No newline at end of file
+#endif
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/uefi/lv_uefi_indev_pointer.c b/lib/libesp32_lvgl/lvgl/src/drivers/uefi/lv_uefi_indev_pointer.c
index a00b3a03e..4714a61ee 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/uefi/lv_uefi_indev_pointer.c
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/uefi/lv_uefi_indev_pointer.c
@@ -1,5 +1,5 @@
/**
- * @file lv_uefi_indev.c
+ * @file lv_uefi_indev_pointer.c
*
*/
@@ -10,7 +10,7 @@
#include "../../lvgl.h"
#include "../../stdlib/lv_mem.h"
#include "../../misc/lv_types.h"
-#include "../../misc/lv_text.h"
+#include "../../misc/lv_text_private.h"
#if LV_USE_UEFI
@@ -282,4 +282,4 @@ static void _simple_pointer_read(lv_uefi_simple_pointer_context_t * indev_ctx,
*was_pressed = state.LeftButton;
}
-#endif
\ No newline at end of file
+#endif
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/uefi/lv_uefi_indev_touch.c b/lib/libesp32_lvgl/lvgl/src/drivers/uefi/lv_uefi_indev_touch.c
index 3fad4f087..3ac227e50 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/uefi/lv_uefi_indev_touch.c
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/uefi/lv_uefi_indev_touch.c
@@ -1,5 +1,5 @@
/**
- * @file lv_uefi_indev.c
+ * @file lv_uefi_indev_touch.c
*
*/
@@ -10,7 +10,7 @@
#include "../../lvgl.h"
#include "../../stdlib/lv_mem.h"
#include "../../misc/lv_types.h"
-#include "../../misc/lv_text.h"
+#include "../../misc/lv_text_private.h"
#if LV_USE_UEFI
@@ -287,4 +287,4 @@ static void _absolute_pointer_read(lv_uefi_absolute_pointer_context_t * indev_ct
*was_pressed = (state.ActiveButtons & EFI_ABSP_TouchActive) != 0;
}
-#endif
\ No newline at end of file
+#endif
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/uefi/lv_uefi_private.c b/lib/libesp32_lvgl/lvgl/src/drivers/uefi/lv_uefi_private.c
index 2d06a90fb..e8c69769e 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/uefi/lv_uefi_private.c
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/uefi/lv_uefi_private.c
@@ -26,7 +26,7 @@
**********************/
/**********************
- * GOLBAL VARIABLES
+ * GLOBAL VARIABLES
**********************/
EFI_HANDLE gLvEfiImageHandle = NULL;
EFI_SYSTEM_TABLE * gLvEfiST = NULL;
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wayland.c b/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wayland.c
index 3f6bdfe2f..10cee82b9 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wayland.c
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wayland.c
@@ -10,20 +10,34 @@
#if LV_USE_WAYLAND
-#if LV_WAYLAND_BUF_COUNT < 1 || LV_WAYLAND_BUF_COUNT > 2
- #error "Invalid LV_WAYLAND_BUF_COUNT. Expected either 1 or 2"
+#if LV_USE_G2D
+ #if LV_USE_ROTATE_G2D
+ #if !LV_WAYLAND_USE_DMABUF
+ #error "LV_USE_ROTATE_G2D is supported only with DMABUF"
+ #endif
+ #if LV_WAYLAND_BUF_COUNT != 3
+ #error "LV_WAYLAND_BUF_COUNT must be 3 when LV_USE_ROTATE_G2D is enabled"
+ #endif
+ #define LV_WAYLAND_CHECK_BUF_COUNT 0
+ #endif
#endif
-#if !LV_WAYLAND_USE_DMABUF && LV_WAYLAND_BUF_COUNT != 1
- #error "Wayland doesn't support more than 1 LV_WAYLAND_BUF_COUNT without DMABUF"
+#ifndef LV_WAYLAND_CHECK_BUF_COUNT
+ #if LV_WAYLAND_BUF_COUNT < 1 || LV_WAYLAND_BUF_COUNT > 2
+ #error "Invalid LV_WAYLAND_BUF_COUNT. Expected either 1 or 2"
+ #endif
+
+ #if !LV_WAYLAND_USE_DMABUF && LV_WAYLAND_BUF_COUNT != 1
+ #error "Wayland doesn't support more than 1 LV_WAYLAND_BUF_COUNT without DMABUF"
+ #endif
+
+ #if LV_WAYLAND_USE_DMABUF && LV_WAYLAND_BUF_COUNT != 2
+ #error "Wayland with DMABUF only supports 2 LV_WAYLAND_BUF_COUNT"
+ #endif
#endif
-#if LV_WAYLAND_USE_DMABUF && !LV_USE_DRAW_G2D
- #error "LV_WAYLAND_USE_DMABUF requires LV_USE_DRAW_G2D"
-#endif
-
-#if LV_WAYLAND_USE_DMABUF && LV_WAYLAND_WINDOW_DECORATIONS
- #error "LV_WAYLAND_USE_DMABUF doesn't support LV_WAYLAND_WINDOW_DECORATIONS"
+#if LV_WAYLAND_USE_DMABUF && !LV_USE_G2D
+ #error "LV_WAYLAND_USE_DMABUF requires LV_USE_G2D"
#endif
#ifndef LV_DISPLAY_RENDER_MODE_PARTIAL
@@ -92,13 +106,29 @@ static void handle_output(void);
static uint32_t tick_get_cb(void);
+static void output_scale(void * data, struct wl_output * output, int32_t factor);
+static void output_mode(void * data, struct wl_output * output, uint32_t flags, int32_t width, int32_t height,
+ int32_t refresh);
+static void output_done(void * data, struct wl_output * output);
+static void output_geometry(void * data, struct wl_output * output, int32_t x, int32_t y, int32_t physical_width,
+ int32_t physical_height, int32_t subpixel, const char * make, const char * model, int32_t transform);
+
/**********************
* STATIC VARIABLES
**********************/
static bool is_wayland_initialized = false;
-static const struct wl_registry_listener registry_listener = {.global = handle_global,
- .global_remove = handle_global_remove
+
+static const struct wl_registry_listener registry_listener = {
+ .global = handle_global,
+ .global_remove = handle_global_remove
+};
+
+static const struct wl_output_listener output_listener = {
+ .geometry = output_geometry,
+ .mode = output_mode,
+ .done = output_done,
+ .scale = output_scale
};
/**********************
@@ -126,15 +156,31 @@ uint32_t lv_wayland_timer_handler(void)
LV_LOG_TRACE("handle timer frame: %d", window->frame_counter);
if(window != NULL && window->resize_pending) {
+#if LV_WAYLAND_USE_DMABUF
+ /* Check surface configuration state before resizing */
+ if(!window->surface_configured) {
+ LV_LOG_TRACE("Deferring resize - surface not configured yet");
+ continue;
+ }
+#endif
+ LV_LOG_TRACE("Processing resize: %dx%d -> %dx%d",
+ window->width, window->height,
+ window->resize_width, window->resize_height);
+
if(lv_wayland_window_resize(window, window->resize_width, window->resize_height) == LV_RESULT_OK) {
window->resize_width = window->width;
window->resize_height = window->height;
window->resize_pending = false;
-
+#if LV_WAYLAND_USE_DMABUF
+ /* Reset synchronization flags after successful resize */
+ window->surface_configured = false;
+ window->dmabuf_resize_pending = false;
+#endif
+ LV_LOG_TRACE("Window resize completed successfully: %dx%d",
+ window->width, window->height);
}
else {
-
- LV_LOG_TRACE("Failed to resize window frame: %d", window->frame_counter);
+ LV_LOG_ERROR("Failed to resize window frame: %d", window->frame_counter);
}
}
else if(window->shall_close == true) {
@@ -266,11 +312,7 @@ void lv_wayland_deinit(void)
lv_wayland_dmabuf_deinit(&lv_wl_ctx.dmabuf_ctx);
#endif
-#if LV_WAYLAND_WL_SHELL
- lv_wayland_wl_shell_deinit();
-#elif LV_WAYLAND_XDG_SHELL
lv_wayland_xdg_shell_deinit();
-#endif
if(lv_wl_ctx.wl_seat) {
wl_seat_destroy(lv_wl_ctx.wl_seat);
@@ -293,7 +335,7 @@ void lv_wayland_deinit(void)
void lv_wayland_wait_flush_cb(lv_display_t * disp)
{
- struct window * window = lv_display_get_user_data(disp);
+ struct window * window = lv_display_get_driver_data(disp);
/* TODO: Figure out why we need this */
if(window->frame_counter == 0) {
return;
@@ -305,9 +347,86 @@ void lv_wayland_wait_flush_cb(lv_display_t * disp)
}
}
+void lv_wayland_event_cb(lv_event_t * e)
+{
+ lv_event_code_t code = lv_event_get_code(e);
+ struct window * window = lv_event_get_user_data(e);
+ lv_display_t * display = (lv_display_t *) lv_event_get_target(e);
+
+ switch(code) {
+ case LV_EVENT_RESOLUTION_CHANGED: {
+ uint32_t rotation = lv_display_get_rotation(window->lv_disp);
+ int width, height;
+ if(rotation == LV_DISPLAY_ROTATION_90 || rotation == LV_DISPLAY_ROTATION_270) {
+ width = lv_display_get_vertical_resolution(display);
+ height = lv_display_get_horizontal_resolution(display);
+ }
+ else {
+ width = lv_display_get_horizontal_resolution(display);
+ height = lv_display_get_vertical_resolution(display);
+ }
+#if LV_WAYLAND_USE_DMABUF
+ dmabuf_ctx_t * context = &window->wl_ctx->dmabuf_ctx;
+ lv_wayland_dmabuf_resize_window(context, window, width, height);
+#else
+ lv_wayland_shm_resize_window(&window->wl_ctx->shm_ctx, window, width, height);
+#endif
+ break;
+ }
+ default:
+ return;
+ }
+}
+
/**********************
* STATIC FUNCTIONS
**********************/
+// --- wl_output listener callbacks ---
+static void output_geometry(void * data, struct wl_output * output, int32_t x, int32_t y, int32_t physical_width,
+ int32_t physical_height,
+ int32_t subpixel, const char * make, const char * model, int32_t transform)
+{
+ LV_UNUSED(output);
+ LV_UNUSED(x);
+ LV_UNUSED(y);
+ LV_UNUSED(physical_width);
+ LV_UNUSED(physical_height);
+ LV_UNUSED(subpixel);
+ LV_UNUSED(make);
+ LV_UNUSED(transform);
+
+ struct output_info * info = data;
+ snprintf(info->name, sizeof(info->name), "%s", model);
+}
+
+static void output_mode(void * data, struct wl_output * wl_output, uint32_t flags, int32_t width, int32_t height,
+ int32_t refresh)
+{
+ LV_UNUSED(wl_output);
+
+ struct output_info * info = data;
+
+ if(flags & WL_OUTPUT_MODE_CURRENT) {
+ info->height = height;
+ info->width = width;
+ info->refresh = refresh;
+ info->flags = flags;
+ }
+}
+
+static void output_done(void * data, struct wl_output * output)
+{
+ /* Called when all geometry/mode info for this output has been sent */
+ LV_UNUSED(data);
+ LV_UNUSED(output);
+}
+
+static void output_scale(void * data, struct wl_output * output, int32_t factor)
+{
+ LV_UNUSED(output);
+ struct output_info * info = data;
+ info->scale = factor;
+}
static uint32_t tick_get_cb(void)
{
@@ -339,18 +458,20 @@ static void handle_global(void * data, struct wl_registry * registry, uint32_t n
app->wl_seat = wl_registry_bind(app->registry, name, &wl_seat_interface, 1);
wl_seat_add_listener(app->wl_seat, lv_wayland_seat_get_listener(), app);
}
-#if LV_WAYLAND_WL_SHELL
- else if(strcmp(interface, wl_shell_interface.name) == 0) {
- app->wl_shell = wl_registry_bind(registry, name, &wl_shell_interface, 1);
- }
-#endif
-#if LV_WAYLAND_XDG_SHELL
else if(strcmp(interface, xdg_wm_base_interface.name) == 0) {
/* supporting version 2 of the XDG protocol - ensures greater compatibility */
app->xdg_wm = wl_registry_bind(app->registry, name, &xdg_wm_base_interface, 2);
xdg_wm_base_add_listener(app->xdg_wm, lv_wayland_xdg_shell_get_wm_base_listener(), app);
}
-#endif
+ else if(strcmp(interface, wl_output_interface.name) == 0) {
+ if(app->wl_output_count < LV_WAYLAND_MAX_OUTPUTS) {
+ memset(&app->outputs[app->wl_output_count], 0, sizeof(struct output_info));
+ struct wl_output * out = wl_registry_bind(registry, name, &wl_output_interface, 1);
+ app->outputs[app->wl_output_count].wl_output = out;
+ wl_output_add_listener(out, &output_listener, &app->outputs[app->wl_output_count].wl_output);
+ app->wl_output_count++;
+ }
+ }
#if LV_WAYLAND_USE_DMABUF
else if(strcmp(interface, zwp_linux_dmabuf_v1_interface.name) == 0) {
lv_wayland_dmabuf_set_interface(&app->dmabuf_ctx, app->registry, name, interface, version);
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wayland.h b/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wayland.h
index 9d6ebf240..178e0ab6b 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wayland.h
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wayland.h
@@ -58,4 +58,4 @@ int lv_wayland_get_fd(void);
} /* extern "C" */
#endif
-#endif /* WAYLAND_H */
+#endif /* LV_WAYLAND_H */
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wayland_private.h b/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wayland_private.h
index 374eb0bab..92b3a0870 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wayland_private.h
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wayland_private.h
@@ -21,11 +21,11 @@ extern "C" {
#include "lv_wayland_smm.h"
#include
#include
-#if !LV_WAYLAND_WL_SHELL
-#include "wayland_xdg_shell.h"
-#define LV_WAYLAND_XDG_SHELL 1
-#else
-#define LV_WAYLAND_XDG_SHELL 0
+#include
+
+#if LV_WAYLAND_USE_DMABUF
+#include
+#include
#endif
/*********************
@@ -33,6 +33,7 @@ extern "C" {
*********************/
#define LV_WAYLAND_DEFAULT_CURSOR_NAME "left_ptr"
+#define LV_WAYLAND_MAX_OUTPUTS 8
#define LVGL_DRAW_BUFFER_DIV (8)
#define DMG_CACHE_CAPACITY (32)
@@ -62,10 +63,8 @@ extern "C" {
enum object_type {
OBJECT_TITLEBAR = 0,
OBJECT_BUTTON_CLOSE,
-#if LV_WAYLAND_XDG_SHELL
OBJECT_BUTTON_MAXIMIZE,
OBJECT_BUTTON_MINIMIZE,
-#endif
OBJECT_BORDER_TOP,
OBJECT_BORDER_BOTTOM,
OBJECT_BORDER_LEFT,
@@ -77,6 +76,10 @@ enum object_type {
#define LAST_DECORATION (OBJECT_BORDER_RIGHT)
#define NUM_DECORATIONS (LAST_DECORATION - FIRST_DECORATION + 1)
+#if LV_WAYLAND_USE_DMABUF
+#define MAX_BUFFER_PLANES 4
+#endif
+
struct window;
struct input {
struct {
@@ -97,6 +100,11 @@ struct input {
lv_indev_touch_data_t touches[10];
uint8_t touch_event_cnt;
uint8_t primary_id;
+#else
+ struct {
+ lv_point_t point;
+ lv_indev_state_t state;
+ } touch;
#endif
};
@@ -127,14 +135,24 @@ typedef struct {
struct buffer * buffers;
struct zwp_linux_dmabuf_v1 * handler;
uint32_t format;
+ uint8_t last_used;
} dmabuf_ctx_t;
typedef struct {
- lv_draw_buf_t * lv_draw_buf;
struct wl_shm * handler;
uint32_t format;
} shm_ctx_t;
+struct output_info {
+ struct wl_output * wl_output;
+ char name[64];
+ int width;
+ int height;
+ int refresh;
+ int scale;
+ int flags;
+};
+
struct lv_wayland_context {
struct wl_display * display;
struct wl_registry * registry;
@@ -144,18 +162,14 @@ struct lv_wayland_context {
struct wl_cursor_theme * cursor_theme;
struct wl_surface * cursor_surface;
shm_ctx_t shm_ctx;
+ struct output_info outputs[LV_WAYLAND_MAX_OUTPUTS];
+ uint8_t wl_output_count;
#if LV_WAYLAND_USE_DMABUF
dmabuf_ctx_t dmabuf_ctx;
#endif
-#if LV_WAYLAND_WL_SHELL
- struct wl_shell * wl_shell;
-#endif
-
-#if LV_WAYLAND_XDG_SHELL
struct xdg_wm_base * xdg_wm;
-#endif
#ifdef LV_WAYLAND_WINDOW_DECORATIONS
bool opt_disable_decorations;
@@ -183,19 +197,16 @@ struct window {
lv_indev_t * lv_indev_touch;
lv_indev_t * lv_indev_keyboard;
- lv_wayland_display_close_f_t close_cb;
+ lv_draw_buf_t * lv_draw_buf;
+ lv_wayland_display_close_f_t close_cb;
struct lv_wayland_context * wl_ctx;
-#if LV_WAYLAND_WL_SHELL
- struct wl_shell_surface * wl_shell_surface;
-#endif
-
-#if LV_WAYLAND_XDG_SHELL
+ /* The current physical assigned output */
+ struct wl_output * assigned_output;
struct xdg_surface * xdg_surface;
struct xdg_toplevel * xdg_toplevel;
uint32_t wm_capabilities;
-#endif
struct graphic_object * body;
struct {
@@ -222,8 +233,36 @@ struct window {
bool maximized;
bool fullscreen;
uint32_t frame_counter;
+ bool is_window_configured;
+
+#if LV_WAYLAND_USE_DMABUF
+ /* XDG/DMABUF synchronization fields */
+ bool dmabuf_resize_pending;
+ bool surface_configured;
+ bool configure_acknowledged;
+ uint32_t configure_serial;
+#if LV_WAYLAND_WINDOW_DECORATIONS
+ struct buffer * decorators_buf[8];
+#endif
+#endif
};
+#if LV_WAYLAND_USE_DMABUF
+struct buffer {
+ int busy;
+ struct window * window;
+ int plane_count;
+ int dmabuf_fds[MAX_BUFFER_PLANES];
+ uint32_t strides[MAX_BUFFER_PLANES];
+ uint32_t offsets[MAX_BUFFER_PLANES];
+ struct wl_buffer * buffer;
+ uint32_t width;
+ uint32_t height;
+ void * buf_base[MAX_BUFFER_PLANES];
+ lv_draw_buf_t * lv_draw_buf;
+};
+#endif
+
/**********************
* GLOBAL PROTOTYPES
**********************/
@@ -241,6 +280,8 @@ extern struct lv_wayland_context lv_wl_ctx;
void lv_wayland_init(void);
void lv_wayland_deinit(void);
void lv_wayland_wait_flush_cb(lv_display_t * disp);
+void lv_wayland_event_cb(lv_event_t * e);
+
/**********************
* Window
**********************/
@@ -256,7 +297,7 @@ void lv_wayland_window_decoration_detach_all(struct window * window);
bool lv_wayland_window_decoration_create(struct window * window, struct graphic_object * decoration, int window_width,
int window_height);
bool lv_wayland_window_decoration_attach(struct window * window, struct graphic_object * decoration,
- smm_buffer_t * decoration_buffer, struct graphic_object * parent);
+ void * decoration_buffer, struct graphic_object * parent);
void lv_wayland_window_decoration_detach(struct window * window, struct graphic_object * decoration);
#endif
@@ -264,27 +305,18 @@ void lv_wayland_window_decoration_detach(struct window * window, struct graphic_
* Window Management
**********************/
-#if LV_WAYLAND_WL_SHELL
-lv_result_t lv_wayland_wl_shell_create_window(struct lv_wayland_context * app, struct window * window,
- const char * title);
-const struct wl_shell_surface_listener * lv_wayland_wl_shell_get_listener(void);
-void lv_wayland_wl_shell_handle_pointer_event(struct lv_wayland_context * app, uint32_t serial, uint32_t button,
- uint32_t state);
-lv_result_t lv_wayland_wl_shell_set_maximized(struct window * window, bool maximized);
-lv_result_t lv_wayland_wl_shell_set_minimized(struct window * window);
-lv_result_t lv_wayland_wl_shell_set_fullscreen(struct window * window, bool fullscreen);
-lv_result_t lv_wayland_wl_shell_destroy_window(struct window * window);
-void lv_wayland_wl_shell_deinit(void);
-#elif LV_WAYLAND_XDG_SHELL
-
const struct xdg_surface_listener * lv_wayland_xdg_shell_get_surface_listener(void);
const struct xdg_toplevel_listener * lv_wayland_xdg_shell_get_toplevel_listener(void);
const struct xdg_wm_base_listener * lv_wayland_xdg_shell_get_wm_base_listener(void);
lv_result_t lv_wayland_xdg_shell_set_maximized(struct window * window, bool maximized);
lv_result_t lv_wayland_xdg_shell_set_minimized(struct window * window);
-lv_result_t lv_wayland_xdg_shell_set_fullscreen(struct window * window, bool fullscreen);
+lv_result_t lv_wayland_xdg_shell_set_fullscreen(struct window * window, bool fullscreen, struct wl_output * output);
+#if LV_WAYLAND_USE_DMABUF
+void lv_wayland_xdg_shell_ack_configure(struct window * window, uint32_t serial);
+#endif
lv_result_t lv_wayland_xdg_shell_create_window(struct lv_wayland_context * app, struct window * window,
const char * title);
+void lv_wayland_xdg_shell_configure_surface(struct window * window);
lv_result_t lv_wayland_xdg_shell_destroy_window_toplevel(struct window * window);
lv_result_t lv_wayland_xdg_shell_destroy_window_surface(struct window * window);
void lv_wayland_xdg_shell_handle_pointer_event(struct lv_wayland_context * app, uint32_t serial, uint32_t button,
@@ -292,7 +324,6 @@ void lv_wayland_xdg_shell_handle_pointer_event(struct lv_wayland_context * app,
const char * lv_wayland_xdg_shell_get_cursor_name(const struct lv_wayland_context * app);
void lv_wayland_xdg_shell_deinit(void);
-#endif
/**********************
* SHM
@@ -303,7 +334,7 @@ void lv_wayland_shm_set_interface(shm_ctx_t * context, struct wl_registry * regi
struct graphic_object * lv_wayland_shm_on_graphical_object_creation(shm_ctx_t * context, struct graphic_object * obj);
void lv_wayland_shm_on_graphical_object_destruction(shm_ctx_t * context, struct graphic_object * obj);
-lv_result_t lv_wayland_shm_set_draw_buffers(shm_ctx_t * context, lv_display_t * display);
+lv_result_t lv_wayland_shm_set_draw_buffers(shm_ctx_t * context, lv_display_t * display, struct window * window);
lv_result_t lv_wayland_shm_create_draw_buffers(shm_ctx_t * context, struct window * window);
lv_result_t lv_wayland_shm_resize_window(shm_ctx_t * context, struct window * window, int32_t width, int32_t height);
lv_result_t lv_wayland_shm_is_ready(shm_ctx_t * context);
@@ -328,14 +359,17 @@ struct graphic_object * lv_wayland_dmabuf_on_graphical_object_creation(dmabuf_ct
void lv_wayland_dmabuf_on_graphical_object_destruction(dmabuf_ctx_t * context, struct graphic_object * obj);
lv_result_t lv_wayland_dmabuf_set_draw_buffers(dmabuf_ctx_t * context, lv_display_t * display);
lv_result_t lv_wayland_dmabuf_create_draw_buffers(dmabuf_ctx_t * context, struct window * window);
-lv_result_t lv_wayland_dmabuf_resize_window(dmabuf_ctx_t * context, struct window * window);
+lv_result_t lv_wayland_dmabuf_resize_window(dmabuf_ctx_t * context, struct window * window, int width, int height);
lv_result_t lv_wayland_dmabuf_is_ready(dmabuf_ctx_t * context);
-
+void destroy_decorators_buf(struct window * window, struct graphic_object * decoration);
void lv_wayland_dmabuf_destroy_draw_buffers(dmabuf_ctx_t * context, struct window * window);
void lv_wayland_dmabuf_initalize_context(dmabuf_ctx_t * context);
void lv_wayland_dmabuf_deinit(dmabuf_ctx_t * context);
void lv_wayland_dmabuf_flush_full_mode(lv_display_t * disp, const lv_area_t * area, unsigned char * color_p);
+#if LV_WAYLAND_WINDOW_DECORATIONS
+struct buffer * dmabuf_acquire_pool_buffer(struct window * window, struct graphic_object * decoration);
+#endif
/**********************
* SME
**********************/
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_dmabuf.c b/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_dmabuf.c
index ce6cb9bb8..0d8ff0b44 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_dmabuf.c
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_dmabuf.c
@@ -11,9 +11,14 @@
#include
#include
#include
+#include
#include
#include
#include "../../draw/nxp/g2d/lv_g2d_utils.h"
+#include
+#include
+#include
+#include
/*********************
* INCLUDES
@@ -27,40 +32,48 @@
* TYPEDEFS
**********************/
-#define MAX_BUFFER_PLANES 4
-
-struct buffer {
- int busy;
-
-#if LV_WAYLAND_USE_DMABUF
- struct window * window;
- int plane_count;
-
- int dmabuf_fds[MAX_BUFFER_PLANES];
- uint32_t strides[MAX_BUFFER_PLANES];
- uint32_t offsets[MAX_BUFFER_PLANES];
- struct wl_buffer * buffer;
-#endif
-
- void * buf_base[MAX_BUFFER_PLANES];
- lv_draw_buf_t * lv_draw_buf;
-};
-
/**********************
* STATIC PROTOTYPES
**********************/
+static void dmabuf_done(void * data, struct zwp_linux_dmabuf_feedback_v1 * zwp_linux_dmabuf_feedback);
+static void dmabuf_format_table(void * data, struct zwp_linux_dmabuf_feedback_v1 * zwp_linux_dmabuf_feedback,
+ int32_t fd, uint32_t size);
+static void dmabuf_main_device(void * data, struct zwp_linux_dmabuf_feedback_v1 * zwp_linux_dmabuf_feedback,
+ struct wl_array * device);
+static void dmabuf_tranche_done(void * data, struct zwp_linux_dmabuf_feedback_v1 * zwp_linux_dmabuf_feedback);
+static void dmabuf_tranche_target_device(void * data, struct zwp_linux_dmabuf_feedback_v1 * zwp_linux_dmabuf_feedback,
+ struct wl_array * device);
+static void dmabuf_tranche_formats(void * data, struct zwp_linux_dmabuf_feedback_v1 * zwp_linux_dmabuf_feedback,
+ struct wl_array * indices);
+static void dmabuf_tranche_flags(void * data, struct zwp_linux_dmabuf_feedback_v1 * zwp_linux_dmabuf_feedback,
+ uint32_t flags);
static void dmabuf_modifiers(void * data, struct zwp_linux_dmabuf_v1 * zwp_linux_dmabuf, uint32_t format,
uint32_t modifier_hi, uint32_t modifier_lo);
static void dmabuf_format(void * data, struct zwp_linux_dmabuf_v1 * zwp_linux_dmabuf, uint32_t format);
-static struct buffer * dmabuf_acquire_buffer(dmabuf_ctx_t * context, unsigned char * color_p);
-static struct buffer * lv_wayland_dmabuf_create_draw_buffers_internal(struct window * window);
+static struct buffer * lv_wayland_dmabuf_create_draw_buffers_internal(struct window * window, int width, int height);
static void buffer_free(struct buffer * buf);
+static void dmabuf_wait_swap_buf(lv_display_t * disp);
+#if !LV_USE_ROTATE_G2D
+ static struct buffer * dmabuf_acquire_buffer(dmabuf_ctx_t * context, unsigned char * color_p);
+#else
+ static struct buffer * get_next_buffer(dmabuf_ctx_t * context);
+#endif
/**********************
* STATIC VARIABLES
**********************/
+static const struct zwp_linux_dmabuf_feedback_v1_listener dmabuf_listener_v5 = {
+ .done = dmabuf_done,
+ .format_table = dmabuf_format_table,
+ .main_device = dmabuf_main_device,
+ .tranche_done = dmabuf_tranche_done,
+ .tranche_target_device = dmabuf_tranche_target_device,
+ .tranche_formats = dmabuf_tranche_formats,
+ .tranche_flags = dmabuf_tranche_flags,
+};
+
static const struct zwp_linux_dmabuf_v1_listener dmabuf_listener_v3 = {.format = dmabuf_format,
.modifier = dmabuf_modifiers
};
@@ -82,9 +95,14 @@ void lv_wayland_dmabuf_initalize_context(dmabuf_ctx_t * context)
{
memset(context, 0, sizeof(*context));
context->format = DRM_FORMAT_INVALID;
+ context->last_used = 0;
}
lv_result_t lv_wayland_dmabuf_set_draw_buffers(dmabuf_ctx_t * context, lv_display_t * display)
{
+ if(LV_USE_ROTATE_G2D == 1) {
+ lv_display_set_draw_buffers(display, context->buffers[2].lv_draw_buf, NULL);
+ return LV_RESULT_OK;
+ }
if(LV_WAYLAND_BUF_COUNT == 2) {
lv_display_set_draw_buffers(display, context->buffers[0].lv_draw_buf, context->buffers[1].lv_draw_buf);
return LV_RESULT_OK;
@@ -100,13 +118,14 @@ void lv_wayland_dmabuf_set_interface(dmabuf_ctx_t * context, struct wl_registry
const char * interface, uint32_t version)
{
LV_UNUSED(interface);
- if(version > 3) {
- LV_LOG_WARN("Unsupported DMABUF version %d. Using version 3 instead", version);
- version = 3;
- }
context->handler = wl_registry_bind(registry, name, &zwp_linux_dmabuf_v1_interface, version);
- if(version < 3) {
+
+ if(version >= 4) {
+ struct zwp_linux_dmabuf_feedback_v1 * feedback = zwp_linux_dmabuf_v1_get_default_feedback(context->handler);
+ zwp_linux_dmabuf_feedback_v1_add_listener(feedback, &dmabuf_listener_v5, context);
+ }
+ else if(version < 3) {
zwp_linux_dmabuf_v1_add_listener(context->handler, &dmabuf_listener, context);
}
else if(version == 3) {
@@ -144,24 +163,69 @@ void lv_wayland_dmabuf_on_graphical_object_destruction(dmabuf_ctx_t * context, s
LV_UNUSED(obj);
}
+static void dmabuf_wait_swap_buf(lv_display_t * disp)
+{
+ struct window * window = lv_display_get_driver_data(disp);
+
+ if(window->frame_counter == 0) {
+ return;
+ }
+
+#if LV_USE_ROTATE_G2D
+ int buf_nr = (window->wl_ctx->dmabuf_ctx.last_used + 1) % (LV_WAYLAND_BUF_COUNT - 1);
+#else
+ int buf_nr = (window->wl_ctx->dmabuf_ctx.last_used + 1) % LV_WAYLAND_BUF_COUNT;
+#endif
+
+ while(window->wl_ctx->dmabuf_ctx.buffers[buf_nr].busy) {
+ wl_display_roundtrip(lv_wl_ctx.display);
+ usleep(500); /* Sleep for 0.5ms to avoid busy waiting */
+ }
+}
+
void lv_wayland_dmabuf_flush_full_mode(lv_display_t * disp, const lv_area_t * area, unsigned char * color_p)
{
- struct window * window = lv_display_get_user_data(disp);
- struct buffer * buf = dmabuf_acquire_buffer(&window->wl_ctx->dmabuf_ctx, color_p);
+ struct window * window = lv_display_get_driver_data(disp);
+ struct buffer * buf;
+ int32_t src_width = lv_area_get_width(area);
+ int32_t src_height = lv_area_get_height(area);
+ uint32_t rotation = lv_display_get_rotation(window->lv_disp);
+#if LV_USE_ROTATE_G2D
+ LV_UNUSED(color_p);
+ buf = get_next_buffer(&window->wl_ctx->dmabuf_ctx);
+ if(rotation == LV_DISPLAY_ROTATION_90 || rotation == LV_DISPLAY_ROTATION_270) {
+ src_width = lv_area_get_height(area);
+ src_height = lv_area_get_width(area);
+ }
+#else
+ buf = dmabuf_acquire_buffer(&window->wl_ctx->dmabuf_ctx, color_p);
+#endif
if(!buf) {
LV_LOG_ERROR("Failed to acquire a wayland window body buffer");
return;
}
- int32_t src_width = lv_area_get_width(area);
- int32_t src_height = lv_area_get_height(area);
-
lv_draw_buf_invalidate_cache(buf->lv_draw_buf, NULL);
+#if LV_USE_ROTATE_G2D
+ lv_draw_buf_invalidate_cache(window->wl_ctx->dmabuf_ctx.buffers[2].lv_draw_buf, NULL);
+#endif
+ const bool force_full_flush = LV_WAYLAND_RENDER_MODE == LV_DISPLAY_RENDER_MODE_DIRECT &&
+ rotation != LV_DISPLAY_ROTATION_0;
/* Mark surface damage */
- wl_surface_damage(window->body->surface, area->x1, area->y1, src_width, src_height);
+ if(!force_full_flush) {
+ wl_surface_damage(window->body->surface, area->x1, area->y1, src_width, src_height);
+ }
if(lv_display_flush_is_last(disp)) {
+ if(force_full_flush) {
+ wl_surface_damage(window->body->surface, 0, 0, lv_display_get_original_horizontal_resolution(disp),
+ lv_display_get_original_vertical_resolution(disp));
+ }
+#if LV_USE_ROTATE_G2D
+ g2d_rotate(window->wl_ctx->dmabuf_ctx.buffers[2].lv_draw_buf, buf->lv_draw_buf, window->width, window->height,
+ lv_display_get_rotation(window->lv_disp), lv_display_get_color_format(window->lv_disp));
+#endif
/* Finally, attach buffer and commit to surface */
wl_surface_attach(window->body->surface, buf->buffer, 0, 0);
wl_surface_commit(window->body->surface);
@@ -169,8 +233,14 @@ void lv_wayland_dmabuf_flush_full_mode(lv_display_t * disp, const lv_area_t * ar
struct wl_callback * cb = wl_surface_frame(window->body->surface);
wl_callback_add_listener(cb, lv_wayland_window_get_wl_surface_frame_listener(), window->body);
- buf->busy = 1;
window->flush_pending = true;
+ dmabuf_wait_swap_buf(disp);
+ }
+ else {
+ /* Not the last frame yet, so tell lvgl to keep going
+ * For the last frame, we wait for the compositor instead */
+ buf->busy = 0;
+ lv_display_flush_ready(disp);
}
return;
@@ -213,22 +283,45 @@ static const struct zwp_linux_buffer_params_v1_listener params_listener = {.crea
.failed = create_failed
};
-lv_result_t lv_wayland_dmabuf_resize_window(dmabuf_ctx_t * context, struct window * window)
+lv_result_t lv_wayland_dmabuf_resize_window(dmabuf_ctx_t * context, struct window * window, int width, int height)
{
- struct buffer * buffers = lv_wayland_dmabuf_create_draw_buffers_internal(window);
- if(!buffers) {
+ /* Don't attempt to create buffers with invalid dimensions */
+ if(width <= 0 || height <= 0) {
+ LV_LOG_ERROR("DMABUF resize failed: invalid dimensions %dx%d", width, height);
return LV_RESULT_INVALID;
}
+
lv_wayland_dmabuf_destroy_draw_buffers(context, window);
+ struct buffer * buffers = lv_wayland_dmabuf_create_draw_buffers_internal(window, width, height);
+ if(!buffers) {
+ LV_LOG_ERROR("Failed to create DMABUF buffers for %dx%d", width, height);
+ return LV_RESULT_INVALID;
+ }
+
context->buffers = buffers;
lv_wayland_dmabuf_set_draw_buffers(context, window->lv_disp);
+
+ /* Clear DMABUF resize pending flag and acknowledge XDG configure if needed */
+ window->dmabuf_resize_pending = false;
+
+ if(window->surface_configured && window->configure_serial > 0 && !window->configure_acknowledged) {
+ lv_wayland_xdg_shell_ack_configure(window, window->configure_serial);
+ window->configure_acknowledged = true;
+ window->configure_serial = 0; /* Reset after acknowledgment */
+ }
+ else if(window->configure_acknowledged) {
+ LV_LOG_TRACE("XDG configure already acknowledged, skipping duplicate acknowledgment");
+ window->configure_serial = 0; /* Reset the serial */
+ }
+
+ LV_LOG_TRACE("DMABUF resize completed successfully: %dx%d", width, height);
return LV_RESULT_OK;
}
lv_result_t lv_wayland_dmabuf_create_draw_buffers(dmabuf_ctx_t * context, struct window * window)
{
- struct buffer * buffers = lv_wayland_dmabuf_create_draw_buffers_internal(window);
+ struct buffer * buffers = lv_wayland_dmabuf_create_draw_buffers_internal(window, window->width, window->height);
if(!buffers) {
return LV_RESULT_INVALID;
}
@@ -245,54 +338,77 @@ void lv_wayland_dmabuf_destroy_draw_buffers(dmabuf_ctx_t * context, struct windo
}
for(int i = 0; i < LV_WAYLAND_BUF_COUNT; i++) {
buffer_free(&context->buffers[i]);
- return;
}
free(context->buffers);
context->buffers = NULL;
}
-static struct buffer * lv_wayland_dmabuf_create_draw_buffers_internal(struct window * window)
+uint32_t lv_wayland_dmabuf_get_format(struct window * window)
+{
+ uint32_t drmcf = 0;
+ lv_color_format_t format = lv_display_get_color_format(window->lv_disp);
+ if(format == LV_COLOR_FORMAT_UNKNOWN) {
+ return DRM_FORMAT_ARGB8888; /* Default to ARGB8888 */
+ }
+
+ switch(format) {
+ case LV_COLOR_FORMAT_XRGB8888:
+ drmcf = DRM_FORMAT_XRGB8888;
+ break;
+ case LV_COLOR_FORMAT_ARGB8888:
+ drmcf = DRM_FORMAT_ARGB8888;
+ break;
+ case LV_COLOR_FORMAT_RGB565:
+ drmcf = DRM_FORMAT_RGB565;
+ break;
+ default:
+ drmcf = DRM_FORMAT_ARGB8888;
+ }
+
+ return drmcf;
+}
+
+static struct buffer * lv_wayland_dmabuf_create_draw_buffers_internal(struct window * window, int width, int height)
{
const uint32_t flags = 0;
struct zwp_linux_buffer_params_v1 * params;
- const int stride = lv_draw_buf_width_to_stride(window->width, lv_display_get_color_format(window->lv_disp));
+ uint32_t drmcf = lv_wayland_dmabuf_get_format(window);
+ int stride = lv_draw_buf_width_to_stride(window->width, lv_display_get_color_format(window->lv_disp));
struct buffer * buffers = (struct buffer *)calloc(LV_WAYLAND_BUF_COUNT, sizeof(struct buffer));
LV_ASSERT_MALLOC(buffers);
for(int i = 0; i < LV_WAYLAND_BUF_COUNT; i++) {
- uint32_t drmcf = 0;
+ uint32_t w = width;
+ uint32_t h = height;
+#if LV_USE_ROTATE_G2D
+ uint32_t rotation = lv_display_get_rotation(window->lv_disp);
+ if(i == 2 && (rotation == LV_DISPLAY_ROTATION_90 || rotation == LV_DISPLAY_ROTATION_270)) {
+ w = height;
+ h = width;
+ }
+#endif
+ stride = lv_draw_buf_width_to_stride(w, lv_display_get_color_format(window->lv_disp));
buffers[i].window = window;
buffers[i].lv_draw_buf =
- lv_draw_buf_create(window->width, window->height, lv_display_get_color_format(window->lv_disp), stride);
+ lv_draw_buf_create(w, h, lv_display_get_color_format(window->lv_disp), stride);
buffers[i].strides[0] = stride;
buffers[i].dmabuf_fds[0] = g2d_get_buf_fd(buffers[i].lv_draw_buf);
buffers[i].buf_base[0] = buffers[i].lv_draw_buf->data;
params = zwp_linux_dmabuf_v1_create_params(window->wl_ctx->dmabuf_ctx.handler);
- switch(lv_display_get_color_format(window->lv_disp)) {
- case LV_COLOR_FORMAT_XRGB8888:
- drmcf = DRM_FORMAT_XRGB8888;
- break;
- case LV_COLOR_FORMAT_ARGB8888:
- drmcf = DRM_FORMAT_ARGB8888;
- break;
- case LV_COLOR_FORMAT_RGB565:
- drmcf = DRM_FORMAT_RGB565;
- break;
- default:
- drmcf = DRM_FORMAT_ARGB8888;
- }
-
zwp_linux_buffer_params_v1_add(params, buffers[i].dmabuf_fds[0], 0, buffers[i].offsets[0], buffers[i].strides[0], 0,
0);
zwp_linux_buffer_params_v1_add_listener(params, ¶ms_listener, &buffers[i]);
- zwp_linux_buffer_params_v1_create(params, window->width, window->height, drmcf, flags);
+ zwp_linux_buffer_params_v1_create(params, w, h, drmcf, flags);
}
wl_display_roundtrip(lv_wl_ctx.display);
+ window->body->width = width;
+ window->body->height = height;
+
return buffers;
}
@@ -303,6 +419,144 @@ static void buffer_free(struct buffer * buf)
if(buf->lv_draw_buf) lv_draw_buf_destroy(buf->lv_draw_buf);
}
+static void dmabuf_format_table(void * data, struct zwp_linux_dmabuf_feedback_v1 * zwp_linux_dmabuf_feedback,
+ int32_t fd, uint32_t size)
+{
+ dmabuf_ctx_t * ctx = data;
+
+ LV_UNUSED(zwp_linux_dmabuf_feedback);
+
+ if(fd < 0 || size == 0) {
+ LV_LOG_ERROR("Invalid format table fd=%d size=%u", fd, size);
+ return;
+ }
+
+ /* Map the format table file descriptor */
+ void * table = mmap(NULL, size, PROT_READ, MAP_PRIVATE, fd, 0);
+ if(table == MAP_FAILED) {
+ LV_LOG_ERROR("Failed to mmap format table: %s", strerror(errno));
+ close(fd);
+ return;
+ }
+
+ LV_LOG_TRACE("Received format table with fd %d and size %u", fd, size);
+
+ /* Parse the format table - each entry is 16 bytes: 4 bytes format + 4 bytes padding + 8 bytes modifier */
+ size_t num_formats = size / 16;
+ uint32_t * formats = (uint32_t *)table;
+
+ for(size_t i = 0; i < num_formats; i++) {
+ uint32_t format = formats[i * 4]; /* Each entry is 4 uint32_t words */
+
+ if(LV_COLOR_DEPTH == 32) {
+ if(format == DRM_FORMAT_ARGB8888) {
+ ctx->format = format;
+ break;
+ }
+ else if(format == DRM_FORMAT_XRGB8888 && ctx->format == DRM_FORMAT_INVALID) {
+ ctx->format = format;
+ break;
+ }
+ }
+ else if(LV_COLOR_DEPTH == 16 && format == DRM_FORMAT_RGB565) {
+ ctx->format = format;
+ break;
+ }
+ }
+
+ LV_ASSERT(ctx->format != DRM_FORMAT_INVALID);
+
+ /* Clean up */
+ munmap(table, size);
+ close(fd);
+}
+
+static void dmabuf_done(void * data, struct zwp_linux_dmabuf_feedback_v1 * zwp_linux_dmabuf_feedback)
+{
+ dmabuf_ctx_t * ctx = data;
+
+ LV_UNUSED(zwp_linux_dmabuf_feedback);
+ LV_UNUSED(ctx);
+
+ LV_LOG_TRACE("DMABUF feedback done - format is %u", ctx->format);
+
+ /* This event marks the end of a feedback round. The client has received
+ * all the format and modifier pairs from all tranches. This allows
+ * the client to proceed with buffer allocation. */
+}
+
+static void dmabuf_main_device(void * data, struct zwp_linux_dmabuf_feedback_v1 * zwp_linux_dmabuf_feedback,
+ struct wl_array * device)
+{
+ LV_UNUSED(data);
+ LV_UNUSED(zwp_linux_dmabuf_feedback);
+ LV_UNUSED(device);
+
+ LV_LOG_TRACE("DMABUF main device received (size: %zu)", device->size);
+
+ /* This event advertises the main device that the server-side allocator
+ * will use for scanout. It should be used by clients as a hint for
+ * buffer allocation. */
+}
+
+static void dmabuf_tranche_done(void * data, struct zwp_linux_dmabuf_feedback_v1 * zwp_linux_dmabuf_feedback)
+{
+ LV_UNUSED(data);
+ LV_UNUSED(zwp_linux_dmabuf_feedback);
+
+ LV_LOG_TRACE("DMABUF tranche done");
+
+ /* This event marks the end of a tranche. This allows the client to
+ * process the formats and modifiers it has received for this tranche. */
+}
+
+static void dmabuf_tranche_target_device(void * data, struct zwp_linux_dmabuf_feedback_v1 * zwp_linux_dmabuf_feedback,
+ struct wl_array * device)
+{
+ LV_UNUSED(data);
+ LV_UNUSED(zwp_linux_dmabuf_feedback);
+ LV_UNUSED(device);
+
+ LV_LOG_TRACE("DMABUF tranche target device (size: %zu)", device->size);
+
+ /* This event advertises the target device that the following tranche
+ * will apply to. */
+}
+
+static void dmabuf_tranche_formats(void * data, struct zwp_linux_dmabuf_feedback_v1 * zwp_linux_dmabuf_feedback,
+ struct wl_array * indices)
+{
+ dmabuf_ctx_t * ctx = data;
+
+ LV_UNUSED(zwp_linux_dmabuf_feedback);
+
+ LV_LOG_TRACE("DMABUF tranche formats (count: %zu)", indices->size / sizeof(uint16_t));
+
+ /* This event advertises the format + modifier pairs that the compositor
+ * supports for the current tranche. The indices are offsets into the
+ * format table sent earlier. */
+
+ if(ctx->format == DRM_FORMAT_INVALID && indices->size > 0) {
+ /* If we don't have a format yet, we could parse the indices here
+ * to find a suitable format from the format table, but for now
+ * we rely on the format_table callback to set a format directly */
+ LV_LOG_TRACE("Format indices received but format already set or no format table");
+ }
+}
+
+static void dmabuf_tranche_flags(void * data, struct zwp_linux_dmabuf_feedback_v1 * zwp_linux_dmabuf_feedback,
+ uint32_t flags)
+{
+ LV_UNUSED(data);
+ LV_UNUSED(zwp_linux_dmabuf_feedback);
+ LV_UNUSED(flags);
+
+ LV_LOG_TRACE("DMABUF tranche flags: 0x%x", flags);
+
+ /* This event advertises the flags for the current tranche.
+ * Flags can indicate special properties like scanout support. */
+}
+
static void dmabuf_modifiers(void * data, struct zwp_linux_dmabuf_v1 * zwp_linux_dmabuf, uint32_t format,
uint32_t modifier_hi, uint32_t modifier_lo)
{
@@ -333,12 +587,15 @@ static void dmabuf_format(void * data, struct zwp_linux_dmabuf_v1 * zwp_linux_dm
}
}
+#if !LV_USE_ROTATE_G2D
static struct buffer * dmabuf_acquire_buffer(dmabuf_ctx_t * context, unsigned char * color_p)
{
for(int i = 0; i < LV_WAYLAND_BUF_COUNT; i++) {
struct buffer * buffer = &context->buffers[i];
if(buffer->buf_base[0] == color_p && buffer->busy == 0) {
+ context->last_used = i;
+ buffer->busy = 1;
return buffer;
}
}
@@ -349,6 +606,8 @@ static struct buffer * dmabuf_acquire_buffer(dmabuf_ctx_t * context, unsigned ch
for(int i = 0; i < LV_WAYLAND_BUF_COUNT; i++) {
struct buffer * buffer = &context->buffers[i];
if(buffer->buf_base[0] == color_p && buffer->busy == 0) {
+ context->last_used = i;
+ buffer->busy = 1;
return buffer;
}
}
@@ -356,5 +615,75 @@ static struct buffer * dmabuf_acquire_buffer(dmabuf_ctx_t * context, unsigned ch
return NULL;
}
+#else
+static struct buffer * get_next_buffer(dmabuf_ctx_t * context)
+{
+ int next_buf = (context->last_used + 1) % (LV_WAYLAND_BUF_COUNT - 1);
+ context->buffers[next_buf].busy = 1;
+ context->last_used = next_buf;
+ return &context->buffers[next_buf];
+}
+#endif
+
+#if LV_WAYLAND_WINDOW_DECORATIONS
+static void create_decorators_buf(struct window * window, struct graphic_object * decoration)
+{
+ struct zwp_linux_buffer_params_v1 * params;
+ const uint32_t flags = 0;
+ uint8_t id = decoration->type;
+
+ window->decorators_buf[id] = (struct buffer *)calloc(1, sizeof(struct buffer));
+ LV_ASSERT_MALLOC(window->decorators_buf[id]);
+
+ const int stride = lv_draw_buf_width_to_stride(decoration->width, lv_display_get_color_format(window->lv_disp));
+ window->decorators_buf[id]->window = window;
+ window->decorators_buf[id]->lv_draw_buf =
+ lv_draw_buf_create(decoration->width, decoration->height, lv_display_get_color_format(window->lv_disp), stride);
+
+ window->decorators_buf[id]->strides[0] = stride;
+ window->decorators_buf[id]->width = decoration->width;
+ window->decorators_buf[id]->height = decoration->height;
+ window->decorators_buf[id]->dmabuf_fds[0] = g2d_get_buf_fd(window->decorators_buf[id]->lv_draw_buf);
+ window->decorators_buf[id]->buf_base[0] = window->decorators_buf[id]->lv_draw_buf->data;
+ params = zwp_linux_dmabuf_v1_create_params(window->wl_ctx->dmabuf_ctx.handler);
+
+ zwp_linux_buffer_params_v1_add(params, window->decorators_buf[id]->dmabuf_fds[0], 0,
+ window->decorators_buf[id]->offsets[0],
+ window->decorators_buf[id]->strides[0], 0,
+ 0);
+
+ zwp_linux_buffer_params_v1_add_listener(params, ¶ms_listener, window->decorators_buf[id]);
+ zwp_linux_buffer_params_v1_create(params, decoration->width, decoration->height, lv_wayland_dmabuf_get_format(window),
+ flags);
+
+ wl_display_roundtrip(lv_wl_ctx.display);
+}
+
+void destroy_decorators_buf(struct window * window, struct graphic_object * decoration)
+{
+ uint8_t id = decoration->type;
+
+ if(window->decorators_buf[id] != NULL) {
+ buffer_free(window->decorators_buf[id]);
+ free(window->decorators_buf[id]);
+ window->decorators_buf[id] = NULL;
+ }
+}
+
+struct buffer * dmabuf_acquire_pool_buffer(struct window * window, struct graphic_object * decoration)
+{
+ uint8_t id = decoration->type;
+
+ if(window->decorators_buf[id] == NULL) {
+ create_decorators_buf(window, decoration);
+ }
+ else if(window->decorators_buf[id]->width != (uint32_t)decoration->width ||
+ window->decorators_buf[id]->height != (uint32_t)decoration->height) {
+ destroy_decorators_buf(window, decoration);
+ create_decorators_buf(window, decoration);
+ }
+ return window->decorators_buf[id];
+}
+#endif
#endif /* LV_WAYLAND_DMABUF */
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_keyboard.c b/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_keyboard.c
index 27b589271..bcdb3885b 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_keyboard.c
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_keyboard.c
@@ -79,7 +79,7 @@ lv_indev_t * lv_wayland_keyboard_create(void)
lv_indev_t * lv_wayland_get_keyboard(lv_display_t * display)
{
- struct window * window = lv_display_get_user_data(display);
+ struct window * window = lv_display_get_driver_data(display);
if(!window) {
return NULL;
}
@@ -101,7 +101,7 @@ const struct wl_keyboard_listener * lv_wayland_keyboard_get_listener(void)
static void keyboard_read(lv_indev_t * drv, lv_indev_data_t * data)
{
- struct window * window = lv_display_get_user_data(lv_indev_get_display(drv));
+ struct window * window = lv_display_get_driver_data(lv_indev_get_display(drv));
if(!window || window->closed) {
return;
}
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_pointer.c b/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_pointer.c
index e406d47e2..bffa3bae9 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_pointer.c
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_pointer.c
@@ -78,7 +78,7 @@ lv_indev_t * lv_wayland_pointer_create(void)
lv_indev_t * lv_wayland_get_pointer(lv_display_t * disp)
{
- struct window * window = lv_display_get_user_data(disp);
+ struct window * window = lv_display_get_driver_data(disp);
if(!window) {
return NULL;
}
@@ -100,7 +100,7 @@ const struct wl_pointer_listener * lv_wayland_pointer_get_listener(void)
static void _lv_wayland_pointer_read(lv_indev_t * drv, lv_indev_data_t * data)
{
- struct window * window = lv_display_get_user_data(lv_indev_get_display(drv));
+ struct window * window = lv_display_get_driver_data(lv_indev_get_display(drv));
if(!window || window->closed) {
return;
@@ -129,9 +129,7 @@ static void pointer_handle_enter(void * data, struct wl_pointer * pointer, uint3
app->pointer_obj->input.pointer.x = pos_x;
app->pointer_obj->input.pointer.y = pos_y;
-#if LV_WAYLAND_XDG_SHELL
cursor = lv_wayland_xdg_shell_get_cursor_name(app);
-#endif
if(app->cursor_surface) {
struct wl_cursor_image * cursor_image = wl_cursor_theme_get_cursor(app->cursor_theme, cursor)->images[0];
@@ -187,11 +185,7 @@ static void pointer_handle_button(void * data, struct wl_pointer * wl_pointer, u
}
struct window * window = app->pointer_obj->window;
-#if LV_WAYLAND_WL_SHELL
- lv_wayland_wl_shell_handle_pointer_event(app, serial, button, state);
-#elif LV_WAYLAND_XDG_SHELL
lv_wayland_xdg_shell_handle_pointer_event(app, serial, button, state);
-#endif
switch(app->pointer_obj->type) {
case OBJECT_WINDOW:
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_pointer_axis.c b/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_pointer_axis.c
index f61bbe794..9b6ddac4d 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_pointer_axis.c
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_pointer_axis.c
@@ -51,7 +51,7 @@ lv_indev_t * lv_wayland_pointer_axis_create(void)
lv_indev_t * lv_wayland_get_pointeraxis(lv_display_t * display)
{
- struct window * window = lv_display_get_user_data(display);
+ struct window * window = lv_display_get_driver_data(display);
if(!window) {
return NULL;
}
@@ -64,7 +64,7 @@ lv_indev_t * lv_wayland_get_pointeraxis(lv_display_t * display)
static void pointeraxis_read(lv_indev_t * drv, lv_indev_data_t * data)
{
- struct window * window = lv_display_get_user_data(lv_indev_get_display(drv));
+ struct window * window = lv_display_get_driver_data(lv_indev_get_display(drv));
if(!window || window->closed) {
return;
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_seat.c b/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_seat.c
index e4176553c..64b4342a0 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_seat.c
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_seat.c
@@ -85,12 +85,10 @@ static void seat_handle_capabilities(void * data, struct wl_seat * wl_seat, enum
seat->wl_keyboard = NULL;
}
-#if LV_USE_GESTURE_RECOGNITION
if((caps & WL_SEAT_CAPABILITY_TOUCH) && !seat->wl_touch) {
seat->wl_touch = wl_seat_get_touch(wl_seat);
wl_touch_add_listener(seat->wl_touch, lv_wayland_touch_get_listener(), app);
}
-#endif
else if(!(caps & WL_SEAT_CAPABILITY_TOUCH) && seat->wl_touch) {
wl_touch_destroy(seat->wl_touch);
seat->wl_touch = NULL;
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_shell.c b/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_shell.c
deleted file mode 100644
index 5f3b24941..000000000
--- a/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_shell.c
+++ /dev/null
@@ -1,184 +0,0 @@
-/**
- * @file lv_wl_shell.c
- *
- */
-
-/*********************
- * INCLUDES
- *********************/
-
-#include "lv_wayland.h"
-
-#if LV_WAYLAND_WL_SHELL
-
-/* WL_SHELL has been deprecated for 3 years now */
-#warning LV_WAYLAND_WL_SHELL is deprecated and will be removed in a future release
-
-#include "lv_wayland_private.h"
-#include
-
-/*********************
- * DEFINES
- *********************/
-
-/**********************
- * TYPEDEFS
- **********************/
-
-/**********************
- * STATIC PROTOTYPES
- **********************/
-
-static void wl_shell_handle_ping(void * data, struct wl_shell_surface * shell_surface, uint32_t serial);
-static void wl_shell_handle_configure(void * data, struct wl_shell_surface * shell_surface, uint32_t edges,
- int32_t width, int32_t height);
-
-/**********************
- * STATIC VARIABLES
- **********************/
-
-static const struct wl_shell_surface_listener shell_surface_listener = {
- .ping = wl_shell_handle_ping,
- .configure = wl_shell_handle_configure,
-};
-
-/**********************
- * MACROS
- **********************/
-
-/**********************
- * GLOBAL FUNCTIONS
- **********************/
-
-/**********************
- * PRIVATE FUNCTIONS
- **********************/
-
-void lv_wayland_wl_shell_deinit(void)
-{
- if(lv_wl_ctx.wl_shell) {
- wl_shell_destroy(lv_wl_ctx.wl_shell);
- }
-}
-
-const struct wl_shell_surface_listener * lv_wayland_wl_shell_get_listener(void)
-{
- return &shell_surface_listener;
-}
-
-lv_result_t lv_wayland_wl_shell_create_window(struct lv_wayland_context * ctx, struct window * window,
- const char * title)
-{
- if(!ctx->wl_shell) {
- return LV_RESULT_INVALID;
- }
-
- window->wl_shell_surface = wl_shell_get_shell_surface(ctx->wl_shell, window->body->surface);
- if(!window->wl_shell_surface) {
- LV_LOG_ERROR("cannot create WL shell surface");
- return LV_RESULT_INVALID;
- }
-
- wl_shell_surface_add_listener(window->wl_shell_surface, lv_wayland_wl_shell_get_listener(), window);
- wl_shell_surface_set_toplevel(window->wl_shell_surface);
- wl_shell_surface_set_title(window->wl_shell_surface, title);
-
- /* For wl_shell, just draw the window, weston doesn't send it */
- lv_wayland_window_draw(window, window->width, window->height);
- return LV_RESULT_OK;
-}
-
-lv_result_t lv_wayland_wl_shell_set_maximized(struct window * window, bool maximized)
-{
-
- if(!window->wl_shell_surface) {
- return LV_RESULT_INVALID;
- }
- if(maximized) {
- LV_LOG_ERROR("WL_SHELL - Unsupported operation - Maximization");
- return LV_RESULT_INVALID;
- }
- else {
- wl_shell_surface_set_toplevel(window->wl_shell_surface);
- }
- return LV_RESULT_OK;
-}
-
-lv_result_t lv_wayland_wl_shell_set_minimized(struct window * window)
-{
- LV_LOG_ERROR("WL_SHELL - Unsupported operation - Minization");
- return LV_RESULT_INVALID;
-}
-lv_result_t lv_wayland_wl_shell_set_fullscreen(struct window * window, bool fullscreen)
-{
- if(!window->wl_shell_surface) {
- return LV_RESULT_INVALID;
- }
- if(fullscreen) {
- wl_shell_surface_set_fullscreen(window->wl_shell_surface, WL_SHELL_SURFACE_FULLSCREEN_METHOD_SCALE, 0, NULL);
- }
- else {
- wl_shell_surface_set_toplevel(window->wl_shell_surface);
- }
- return LV_RESULT_OK;
-}
-
-lv_result_t lv_wayland_wl_shell_destroy_window(struct window * window)
-{
- if(!window->wl_shell_surface) {
- return LV_RESULT_INVALID;
- }
- wl_shell_surface_destroy(window->wl_shell_surface);
- return LV_RESULT_OK;
-}
-
-void lv_wayland_wl_shell_handle_pointer_event(struct lv_wayland_context * ctx, uint32_t serial, uint32_t button,
- uint32_t state)
-{
- struct window * window = ctx->pointer_obj->window;
- switch(ctx->pointer_obj->type) {
- case OBJECT_TITLEBAR:
- if((button == BTN_LEFT) && (state == WL_POINTER_BUTTON_STATE_PRESSED)) {
- if(window->wl_shell_surface) {
- wl_shell_surface_move(window->wl_shell_surface, ctx->wl_seat, serial);
- window->flush_pending = true;
- }
- }
- break;
- case OBJECT_BUTTON_CLOSE:
- case OBJECT_BORDER_TOP:
- case OBJECT_BORDER_BOTTOM:
- case OBJECT_BORDER_LEFT:
- case OBJECT_BORDER_RIGHT:
- case OBJECT_WINDOW:
- break;
- }
-}
-
-/**********************
- * STATIC FUNCTIONS
- **********************/
-
-static void wl_shell_handle_ping(void * data, struct wl_shell_surface * shell_surface, uint32_t serial)
-{
- return wl_shell_surface_pong(shell_surface, serial);
-}
-
-static void wl_shell_handle_configure(void * data, struct wl_shell_surface * shell_surface, uint32_t edges,
- int32_t width, int32_t height)
-{
- struct window * window = (struct window *)data;
-
- LV_UNUSED(edges);
-
- if((width <= 0) || (height <= 0)) {
- return;
- }
- else if((width != window->width) || (height != window->height)) {
- window->resize_width = width;
- window->resize_height = height;
- window->resize_pending = true;
- }
-}
-
-#endif /* LV_WAYLAND_WL_SHELL */
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_shm.c b/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_shm.c
index 87eb547c6..5d479b085 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_shm.c
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_shm.c
@@ -125,6 +125,7 @@ void lv_wayland_shm_on_graphical_object_destruction(shm_ctx_t * context, struct
lv_result_t lv_wayland_shm_resize_window(shm_ctx_t * context, struct window * window, int32_t width, int32_t height)
{
+ LV_UNUSED(context);
const uint8_t bpp = lv_color_format_get_size(LV_COLOR_FORMAT_NATIVE);
/* Update size for newly allocated buffers */
@@ -143,7 +144,7 @@ lv_result_t lv_wayland_shm_resize_window(shm_ctx_t * context, struct window * wi
return LV_RESULT_INVALID;
}
- /* Moves the buffers to the the unused list of the group */
+ /* Moves the buffers to the unused list of the group */
smm_release(body_buf1);
smm_release(body_buf2);
@@ -156,41 +157,42 @@ lv_result_t lv_wayland_shm_resize_window(shm_ctx_t * context, struct window * wi
if(window->lv_disp != NULL) {
/* Resize draw buffer */
const uint32_t stride = lv_draw_buf_width_to_stride(width, lv_display_get_color_format(window->lv_disp));
- context->lv_draw_buf = lv_draw_buf_reshape(context->lv_draw_buf, lv_display_get_color_format(window->lv_disp),
- width, height / LVGL_DRAW_BUFFER_DIV, stride);
+ window->lv_draw_buf = lv_draw_buf_reshape(window->lv_draw_buf, lv_display_get_color_format(window->lv_disp),
+ width, height / LVGL_DRAW_BUFFER_DIV, stride);
}
return LV_RESULT_OK;
}
lv_result_t lv_wayland_shm_create_draw_buffers(shm_ctx_t * context, struct window * window)
{
-
+ LV_UNUSED(context);
const uint32_t stride = lv_draw_buf_width_to_stride(window->width, lv_display_get_color_format(window->lv_disp));
- context->lv_draw_buf = lv_draw_buf_create(window->width, window->height / LVGL_DRAW_BUFFER_DIV,
- lv_display_get_color_format(window->lv_disp), stride);
- return LV_RESULT_OK;
+ window->lv_draw_buf = lv_draw_buf_create(window->width, window->height / LVGL_DRAW_BUFFER_DIV,
+ lv_display_get_color_format(window->lv_disp), stride);
+ return window->lv_draw_buf ? LV_RESULT_OK : LV_RESULT_INVALID;
}
-lv_result_t lv_wayland_shm_set_draw_buffers(shm_ctx_t * context, lv_display_t * display)
+lv_result_t lv_wayland_shm_set_draw_buffers(shm_ctx_t * context, lv_display_t * display, struct window * window)
{
+ LV_UNUSED(context);
if(LV_WAYLAND_BUF_COUNT != 1) {
LV_LOG_ERROR("Wayland without dmabuf only supports 1 drawbuffer for now.");
return LV_RESULT_INVALID;
}
- lv_display_set_draw_buffers(display, context->lv_draw_buf, NULL);
+ lv_display_set_draw_buffers(display, window->lv_draw_buf, NULL);
return LV_RESULT_OK;
}
void lv_wayland_shm_delete_draw_buffers(shm_ctx_t * context, struct window * window)
{
- LV_UNUSED(window);
- lv_draw_buf_destroy(context->lv_draw_buf);
+ LV_UNUSED(context);
+ if(window->lv_draw_buf) lv_draw_buf_destroy(window->lv_draw_buf);
}
void lv_wayland_shm_flush_partial_mode(lv_display_t * disp, const lv_area_t * area, unsigned char * color_p)
{
- struct window * window = lv_display_get_user_data(disp);
- uint32_t format = window->wl_ctx->shm_ctx.format;
+ struct window * window = lv_display_get_driver_data(disp);
+ const uint32_t buf_format = window->wl_ctx->shm_ctx.format;
smm_buffer_t * buf = window->body->pending_buffer;
int32_t src_width = lv_area_get_width(area);
int32_t src_height = lv_area_get_height(area);
@@ -198,6 +200,8 @@ void lv_wayland_shm_flush_partial_mode(lv_display_t * disp, const lv_area_t * ar
lv_display_rotation_t rot = lv_display_get_rotation(disp);
int32_t w = lv_display_get_horizontal_resolution(disp);
int32_t h = lv_display_get_vertical_resolution(disp);
+ const uint8_t cf = lv_display_get_color_format(disp);
+ const int32_t stride = lv_draw_buf_width_to_stride(src_width, cf);
/* TODO actually test what happens if the rotation is 90 or 270 or 180 ? */
int32_t hres = (rot == LV_DISPLAY_ROTATION_0) ? w : h;
@@ -232,13 +236,14 @@ void lv_wayland_shm_flush_partial_mode(lv_display_t * disp, const lv_area_t * ar
/* Modify specified area in buffer */
for(int32_t y = 0; y < src_height; ++y) {
- if(format == WL_SHM_FORMAT_ARGB8888) {
+ if(buf_format == WL_SHM_FORMAT_ARGB8888 &&
+ cf != LV_COLOR_FORMAT_ARGB8888_PREMULTIPLIED) {
for(int32_t x = 0; x < src_width; ++x) {
lv_color_premultiply((lv_color32_t *)color_p + x);
}
}
memcpy(((char *)buf_base) + ((((area->y1 + y) * hres) + area->x1) * bpp), color_p, src_width * bpp);
- color_p += src_width * bpp;
+ color_p += stride;
}
/* Mark surface damage */
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_touch.c b/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_touch.c
index ee18ec3dd..ea375b061 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_touch.c
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_touch.c
@@ -5,7 +5,7 @@
#include "lv_wl_touch.h"
-#if LV_USE_WAYLAND && LV_USE_GESTURE_RECOGNITION
+#if LV_USE_WAYLAND
#include "lv_wayland_private.h"
@@ -74,7 +74,7 @@ lv_indev_t * lv_wayland_touch_create(void)
lv_indev_t * lv_wayland_get_touchscreen(lv_display_t * display)
{
- struct window * window = lv_display_get_user_data(display);
+ struct window * window = lv_display_get_driver_data(display);
if(!window) {
return NULL;
}
@@ -97,12 +97,13 @@ const struct wl_touch_listener * lv_wayland_touch_get_listener(void)
static void _lv_wayland_touch_read(lv_indev_t * drv, lv_indev_data_t * data)
{
- struct window * window = lv_display_get_user_data(lv_indev_get_display(drv));
+ struct window * window = lv_display_get_driver_data(lv_indev_get_display(drv));
if(!window || window->closed) {
return;
}
+#if LV_USE_GESTURE_RECOGNITION
/* Collect touches if there are any - send them to the gesture recognizer */
lv_indev_gesture_recognizers_update(drv, &window->body->input.touches[0], window->body->input.touch_event_cnt);
@@ -112,13 +113,29 @@ static void _lv_wayland_touch_read(lv_indev_t * drv, lv_indev_data_t * data)
/* Set the gesture information, before returning to LVGL */
lv_indev_gesture_recognizers_set_data(drv, data);
+
+ if(window->body->input.touch_event_cnt > 0) {
+ data->point.x = window->body->input.touches[0].point.x;
+ data->point.y = window->body->input.touches[0].point.y;
+ }
+ else {
+ data->point.x = 0;
+ data->point.y = 0;
+ }
+#else
+ data->point.x = window->body->input.touch.point.x;
+ data->point.y = window->body->input.touch.point.y;
+ data->state = window->body->input.touch.state;
+#endif
}
static void touch_handle_down(void * data, struct wl_touch * wl_touch, uint32_t serial, uint32_t time,
struct wl_surface * surface, int32_t id, wl_fixed_t x_w, wl_fixed_t y_w)
{
struct lv_wayland_context * app = data;
+#if LV_USE_GESTURE_RECOGNITION
uint8_t i;
+#endif
LV_UNUSED(id);
LV_UNUSED(time);
@@ -132,6 +149,8 @@ static void touch_handle_down(void * data, struct wl_touch * wl_touch, uint32_t
/* Create the touch down event */
app->touch_obj = wl_surface_get_user_data(surface);
+
+#if LV_USE_GESTURE_RECOGNITION
i = app->touch_obj->input.touch_event_cnt;
app->touch_obj->input.touches[i].point.x = wl_fixed_to_int(x_w);
@@ -140,23 +159,20 @@ static void touch_handle_down(void * data, struct wl_touch * wl_touch, uint32_t
app->touch_obj->input.touches[i].timestamp = time;
app->touch_obj->input.touches[i].state = LV_INDEV_STATE_PRESSED;
app->touch_obj->input.touch_event_cnt++;
+#else
+ app->touch_obj->input.touch.point.x = wl_fixed_to_int(x_w);
+ app->touch_obj->input.touch.point.y = wl_fixed_to_int(y_w);
+ app->touch_obj->input.touch.state = LV_INDEV_STATE_PRESSED;
+#endif
#if LV_WAYLAND_WINDOW_DECORATIONS
struct window * window = app->touch_obj->window;
switch(app->touch_obj->type) {
case OBJECT_TITLEBAR:
-#if LV_WAYLAND_XDG_SHELL
if(window->xdg_toplevel) {
xdg_toplevel_move(window->xdg_toplevel, app->wl_seat, serial);
window->flush_pending = true;
}
-#endif
-#if LV_WAYLAND_WL_SHELL
- if(window->wl_shell_surface) {
- wl_shell_surface_move(window->wl_shell_surface, app->wl_seat, serial);
- window->flush_pending = true;
- }
-#endif
break;
default:
break;
@@ -167,15 +183,17 @@ static void touch_handle_down(void * data, struct wl_touch * wl_touch, uint32_t
static void touch_handle_up(void * data, struct wl_touch * wl_touch, uint32_t serial, uint32_t time, int32_t id)
{
struct lv_wayland_context * app = data;
+#if LV_USE_GESTURE_RECOGNITION
uint8_t i;
+#endif
LV_UNUSED(serial);
LV_UNUSED(time);
LV_UNUSED(id);
LV_UNUSED(wl_touch);
-#if LV_USE_GESTURE_RECOGNITION
/* Create a released event */
+#if LV_USE_GESTURE_RECOGNITION
i = app->touch_obj->input.touch_event_cnt;
app->touch_obj->input.touches[i].point.x = 0;
@@ -185,6 +203,8 @@ static void touch_handle_up(void * data, struct wl_touch * wl_touch, uint32_t se
app->touch_obj->input.touches[i].state = LV_INDEV_STATE_RELEASED;
app->touch_obj->input.touch_event_cnt++;
+#else
+ app->touch_obj->input.touch.state = LV_INDEV_STATE_RELEASED;
#endif
#if LV_WAYLAND_WINDOW_DECORATIONS
@@ -193,7 +213,6 @@ static void touch_handle_up(void * data, struct wl_touch * wl_touch, uint32_t se
case OBJECT_BUTTON_CLOSE:
window->shall_close = true;
break;
-#if LV_WAYLAND_XDG_SHELL
case OBJECT_BUTTON_MAXIMIZE:
if(window->xdg_toplevel) {
if(window->maximized) {
@@ -210,7 +229,6 @@ static void touch_handle_up(void * data, struct wl_touch * wl_touch, uint32_t se
xdg_toplevel_set_minimized(window->xdg_toplevel);
window->flush_pending = true;
}
-#endif /* LV_WAYLAND_XDG_SHELL */
default:
break;
}
@@ -221,14 +239,17 @@ static void touch_handle_motion(void * data, struct wl_touch * wl_touch, uint32_
wl_fixed_t y_w)
{
struct lv_wayland_context * app = data;
+#if LV_USE_GESTURE_RECOGNITION
lv_indev_touch_data_t * touch;
lv_indev_touch_data_t * cur;
uint8_t i;
+#endif
LV_UNUSED(time);
LV_UNUSED(id);
LV_UNUSED(wl_touch);
+#if LV_USE_GESTURE_RECOGNITION
/* Update the contact point of the corresponding id with the latest coordinate */
touch = &app->touch_obj->input.touches[0];
cur = NULL;
@@ -258,6 +279,10 @@ static void touch_handle_motion(void * data, struct wl_touch * wl_touch, uint32_
cur->id = id;
cur->timestamp = time;
}
+#else
+ app->touch_obj->input.touch.point.x = wl_fixed_to_int(x_w);
+ app->touch_obj->input.touch.point.y = wl_fixed_to_int(y_w);
+#endif
}
static void touch_handle_frame(void * data, struct wl_touch * wl_touch)
@@ -272,4 +297,4 @@ static void touch_handle_cancel(void * data, struct wl_touch * wl_touch)
LV_UNUSED(data);
}
-#endif /* LV_USE_WAYLAND && LV_USE_GESTURE_RECOGNITION */
+#endif /* LV_USE_WAYLAND */
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_touch.h b/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_touch.h
index eab444346..2c4a742ee 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_touch.h
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_touch.h
@@ -18,7 +18,7 @@ extern "C" {
#include "../../indev/lv_indev.h"
#include "../../indev/lv_indev_gesture.h"
-#if LV_USE_WAYLAND && LV_USE_GESTURE_RECOGNITION
+#if LV_USE_WAYLAND
/*********************
* DEFINES
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_window.c b/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_window.c
index 1e9df6406..4bf4ee20d 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_window.c
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_window.c
@@ -83,6 +83,9 @@ lv_display_t * lv_wayland_window_create(uint32_t hor_res, uint32_t ver_res, char
int32_t window_width;
int32_t window_height;
+ uint32_t width = hor_res;
+ uint32_t height = ver_res;
+
lv_wayland_init();
window_width = hor_res;
@@ -104,7 +107,7 @@ lv_display_t * lv_wayland_window_create(uint32_t hor_res, uint32_t ver_res, char
window->close_cb = close_cb;
/* Initialize display driver */
- window->lv_disp = lv_display_create(hor_res, ver_res);
+ window->lv_disp = lv_display_create(width, height);
if(window->lv_disp == NULL) {
LV_LOG_ERROR("failed to create lvgl display");
return NULL;
@@ -122,7 +125,9 @@ lv_display_t * lv_wayland_window_create(uint32_t hor_res, uint32_t ver_res, char
}
#endif
- lv_display_set_user_data(window->lv_disp, window);
+ lv_wayland_xdg_shell_configure_surface(window);
+
+ lv_display_set_driver_data(window->lv_disp, window);
lv_display_set_render_mode(window->lv_disp, LV_WAYLAND_RENDER_MODE);
lv_display_set_flush_wait_cb(window->lv_disp, lv_wayland_wait_flush_cb);
@@ -131,10 +136,12 @@ lv_display_t * lv_wayland_window_create(uint32_t hor_res, uint32_t ver_res, char
lv_wayland_dmabuf_set_draw_buffers(&lv_wl_ctx.dmabuf_ctx, window->lv_disp);
lv_display_set_flush_cb(window->lv_disp, lv_wayland_dmabuf_flush_full_mode);
#else
- lv_wayland_shm_set_draw_buffers(&lv_wl_ctx.shm_ctx, window->lv_disp);
+ lv_wayland_shm_set_draw_buffers(&lv_wl_ctx.shm_ctx, window->lv_disp, window);
lv_display_set_flush_cb(window->lv_disp, lv_wayland_shm_flush_partial_mode);
#endif
+ lv_display_add_event_cb(window->lv_disp, lv_wayland_event_cb, LV_EVENT_RESOLUTION_CHANGED, window);
+
/* Register input */
window->lv_indev_pointer = lv_wayland_pointer_create();
@@ -151,8 +158,6 @@ lv_display_t * lv_wayland_window_create(uint32_t hor_res, uint32_t ver_res, char
LV_LOG_ERROR("failed to register pointeraxis indev");
}
-#if LV_USE_GESTURE_RECOGNITION
-
window->lv_indev_touch = lv_wayland_touch_create();
lv_indev_set_display(window->lv_indev_touch, window->lv_disp);
@@ -160,8 +165,6 @@ lv_display_t * lv_wayland_window_create(uint32_t hor_res, uint32_t ver_res, char
LV_LOG_ERROR("failed to register touch indev");
}
-#endif /* END LV_USE_GESTURE_RECOGNITION */
-
window->lv_indev_keyboard = lv_wayland_keyboard_create();
lv_indev_set_display(window->lv_indev_keyboard, window->lv_disp);
@@ -173,7 +176,7 @@ lv_display_t * lv_wayland_window_create(uint32_t hor_res, uint32_t ver_res, char
void lv_wayland_window_close(lv_display_t * disp)
{
- struct window * window = lv_display_get_user_data(disp);
+ struct window * window = lv_display_get_driver_data(disp);
if(!window || window->closed) {
return;
}
@@ -196,7 +199,7 @@ bool lv_wayland_window_is_open(lv_display_t * disp)
}
}
else {
- window = lv_display_get_user_data(disp);
+ window = lv_display_get_driver_data(disp);
open = (!window->closed);
}
@@ -205,18 +208,14 @@ bool lv_wayland_window_is_open(lv_display_t * disp)
void lv_wayland_window_set_maximized(lv_display_t * disp, bool maximized)
{
- struct window * window = lv_display_get_user_data(disp);
+ struct window * window = lv_display_get_driver_data(disp);
lv_result_t err = LV_RESULT_INVALID;
if(!window || window->closed) {
return;
}
if(window->maximized != maximized) {
-#if LV_WAYLAND_WL_SHELL
- err = lv_wayland_wl_shell_set_maximized(window, maximized);
-#elif LV_WAYLAND_XDG_SHELL
err = lv_wayland_xdg_shell_set_maximized(window, maximized);
-#endif
}
if(err == LV_RESULT_INVALID) {
@@ -228,9 +227,47 @@ void lv_wayland_window_set_maximized(lv_display_t * disp, bool maximized)
window->flush_pending = true;
}
+void lv_wayland_assign_physical_display(lv_display_t * disp, uint8_t display_number)
+{
+ if(!disp) {
+ LV_LOG_ERROR("Invalid display");
+ return;
+ }
+
+ struct window * window = lv_display_get_driver_data(disp);
+
+ if(!window || window->closed) {
+ LV_LOG_ERROR("Invalid window");
+ return;
+ }
+
+ if(display_number >= window->wl_ctx->wl_output_count) {
+ LV_LOG_WARN("Invalid display number '%d'. Expected '0'..'%d'", display_number, window->wl_ctx->wl_output_count - 1);
+ return;
+ }
+ window->assigned_output = lv_wl_ctx.outputs[display_number].wl_output;
+}
+
+void lv_wayland_unassign_physical_display(lv_display_t * disp)
+{
+
+ if(!disp) {
+ LV_LOG_ERROR("Invalid display");
+ return;
+ }
+
+ struct window * window = lv_display_get_user_data(disp);
+
+ if(!window || window->closed) {
+ LV_LOG_ERROR("Invalid window");
+ return;
+ }
+ window->assigned_output = NULL;
+}
+
void lv_wayland_window_set_fullscreen(lv_display_t * disp, bool fullscreen)
{
- struct window * window = lv_display_get_user_data(disp);
+ struct window * window = lv_display_get_driver_data(disp);
lv_result_t err = LV_RESULT_INVALID;
if(!window || window->closed) {
return;
@@ -239,18 +276,14 @@ void lv_wayland_window_set_fullscreen(lv_display_t * disp, bool fullscreen)
if(window->fullscreen == fullscreen) {
return;
}
-#if LV_WAYLAND_WL_SHELL
- err = lv_wayland_wl_shell_set_fullscreen(window, fullscreen);
-#elif LV_WAYLAND_XDG_SHELL
- err = lv_wayland_xdg_shell_set_fullscreen(window, fullscreen);
-#endif
+ err = lv_wayland_xdg_shell_set_fullscreen(window, fullscreen, window->assigned_output);
if(err == LV_RESULT_INVALID) {
LV_LOG_WARN("Failed to set wayland window to fullscreen");
return;
}
- window->fullscreen = fullscreen;
+ window->fullscreen = fullscreen;
window->flush_pending = true;
}
@@ -276,9 +309,7 @@ void lv_wayland_window_draw(struct window * window, uint32_t width, uint32_t hei
/* First resize */
if(lv_wayland_window_resize(window, width, height) != LV_RESULT_OK) {
LV_LOG_ERROR("Failed to resize window");
-#if LV_WAYLAND_XDG_SHELL
lv_wayland_xdg_shell_destroy_window_toplevel(window);
-#endif
}
lv_refr_now(window->lv_disp);
@@ -287,29 +318,32 @@ void lv_wayland_window_draw(struct window * window, uint32_t width, uint32_t hei
lv_result_t lv_wayland_window_resize(struct window * window, int width, int height)
{
-
#if LV_WAYLAND_WINDOW_DECORATIONS
if(!window->wl_ctx->opt_disable_decorations && !window->fullscreen) {
width -= (2 * BORDER_SIZE);
height -= (TITLE_BAR_HEIGHT + (2 * BORDER_SIZE));
}
#endif
+ if(window->lv_disp) {
+ lv_display_set_resolution(window->lv_disp, width, height);
+ window->body->input.pointer.x = LV_MIN((int32_t)window->body->input.pointer.x, (width - 1));
+ window->body->input.pointer.y = LV_MIN((int32_t)window->body->input.pointer.y, (height - 1));
+ }
+ /* On the first resize call, the resolution of the display is already set, so there won't be a trigger on the resolution changed event.*/
+ if(!window->is_window_configured) {
#if LV_WAYLAND_USE_DMABUF
- {
- lv_result_t err = lv_wayland_dmabuf_resize_window(&window->wl_ctx->dmabuf_ctx, window);
+ lv_result_t err = lv_wayland_dmabuf_resize_window(&window->wl_ctx->dmabuf_ctx, window, width, height);
if(err != LV_RESULT_OK) {
return err;
}
- }
#else
- {
lv_result_t err = lv_wayland_shm_resize_window(&window->wl_ctx->shm_ctx, window, width, height);
if(err != LV_RESULT_OK) {
return err;
}
- }
#endif
+ }
#if LV_WAYLAND_WINDOW_DECORATIONS
if(!window->wl_ctx->opt_disable_decorations && !window->fullscreen) {
@@ -322,11 +356,6 @@ lv_result_t lv_wayland_window_resize(struct window * window, int width, int heig
}
#endif
- if(window->lv_disp) {
- lv_display_set_resolution(window->lv_disp, width, height);
- window->body->input.pointer.x = LV_MIN((int32_t)window->body->input.pointer.x, (width - 1));
- window->body->input.pointer.y = LV_MIN((int32_t)window->body->input.pointer.y, (height - 1));
- }
window->width = width;
window->height = height;
return LV_RESULT_OK;
@@ -338,12 +367,8 @@ void lv_wayland_window_destroy(struct window * window)
return;
}
-#if LV_WAYLAND_WL_SHELL
- lv_wayland_wl_shell_destroy_window(window);
-#elif LV_WAYLAND_XDG_SHELL
lv_wayland_xdg_shell_destroy_window_toplevel(window);
lv_wayland_xdg_shell_destroy_window_surface(window);
-#endif
#if LV_WAYLAND_WINDOW_DECORATIONS
for(size_t i = 0; i < NUM_DECORATIONS; i++) {
@@ -390,16 +415,9 @@ static struct window * create_window(struct lv_wayland_context * app, int width,
goto err_free_window;
}
-#if LV_WAYLAND_WL_SHELL
- if(lv_wayland_wl_shell_create_window(app, window, title) != LV_RESULT_OK) {
- LV_LOG_ERROR("Failed to create wl shell window");
- goto err_destroy_surface;
- }
-#elif LV_WAYLAND_XDG_SHELL
if(lv_wayland_xdg_shell_create_window(app, window, title) != LV_RESULT_OK) {
goto err_destroy_surface;
}
-#endif
return window;
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_window.h b/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_window.h
index 733398565..84fd91631 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_window.h
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_window.h
@@ -1,6 +1,6 @@
/**
- * @file lv_wl_display.h
+ * @file lv_wl_window.h
*
*/
@@ -57,11 +57,25 @@ void lv_wayland_window_close(lv_display_t * disp);
*/
bool lv_wayland_window_is_open(lv_display_t * disp);
+/**
+ * Assigns the window to a specific physical display
+ * @param disp Reference to the LVGL display associated to the window
+ * @param display Physical display number
+ */
+void lv_wayland_assign_physical_display(lv_display_t * disp, uint8_t display);
+
+/**
+ * Unassigns the current physical display attached to the window
+ * @param disp Reference to the LVGL display associated to the window
+ */
+void lv_wayland_unassign_physical_display(lv_display_t * disp);
+
/**
* Sets the fullscreen state of the window
* @param disp Reference to the LVGL display associated to the window
* @param fullscreen If true the window enters fullscreen
*/
+
void lv_wayland_window_set_fullscreen(lv_display_t * disp, bool fullscreen);
/**
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_window_decorations.c b/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_window_decorations.c
index 314043643..a1cbd033f 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_window_decorations.c
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_window_decorations.c
@@ -12,6 +12,8 @@
#if LV_WAYLAND_WINDOW_DECORATIONS
#include "lv_wayland_private.h"
+#include
+#include
/*********************
* DEFINES
@@ -58,9 +60,14 @@ static void color_fill_RGB565(void * pixels, lv_color_t color, uint32_t width, u
**********************/
bool lv_wayland_window_decoration_attach(struct window * window, struct graphic_object * decoration,
- smm_buffer_t * decoration_buffer, struct graphic_object * parent)
+ void * decoration_buffer, struct graphic_object * parent)
{
- struct wl_buffer * wl_buf = SMM_BUFFER_PROPERTIES(decoration_buffer)->tag[TAG_LOCAL];
+#if LV_WAYLAND_USE_DMABUF
+ struct wl_buffer * wl_buf = ((struct buffer *)decoration_buffer)->buffer;
+#else
+ struct wl_buffer * wl_buf = SMM_BUFFER_PROPERTIES((smm_buffer_t *)decoration_buffer)->tag[TAG_LOCAL];
+#endif
+
int pos_x, pos_y;
@@ -73,7 +80,6 @@ bool lv_wayland_window_decoration_attach(struct window * window, struct graphic_
pos_x = parent->width - 1 * (BUTTON_MARGIN + BUTTON_SIZE);
pos_y = -1 * (BUTTON_MARGIN + BUTTON_SIZE + (BORDER_SIZE / 2));
break;
-#if LV_WAYLAND_XDG_SHELL
case OBJECT_BUTTON_MAXIMIZE:
pos_x = parent->width - 2 * (BUTTON_MARGIN + BUTTON_SIZE);
pos_y = -1 * (BUTTON_MARGIN + BUTTON_SIZE + (BORDER_SIZE / 2));
@@ -82,7 +88,6 @@ bool lv_wayland_window_decoration_attach(struct window * window, struct graphic_
pos_x = parent->width - 3 * (BUTTON_MARGIN + BUTTON_SIZE);
pos_y = -1 * (BUTTON_MARGIN + BUTTON_SIZE + (BORDER_SIZE / 2));
break;
-#endif
case OBJECT_BORDER_TOP:
pos_x = -BORDER_SIZE;
pos_y = -(BORDER_SIZE + TITLE_BAR_HEIGHT);
@@ -165,7 +170,11 @@ void lv_wayland_window_decoration_detach_all(struct window * window)
bool lv_wayland_window_decoration_create(struct window * window, struct graphic_object * decoration, int window_width,
int window_height)
{
+#if LV_WAYLAND_USE_DMABUF
+ struct buffer * buf;
+#else
smm_buffer_t * buf;
+#endif
void * buf_base;
int x, y;
lv_color_t * pixel;
@@ -180,7 +189,6 @@ bool lv_wayland_window_decoration_create(struct window * window, struct graphic_
decoration->width = BUTTON_SIZE;
decoration->height = BUTTON_SIZE;
break;
-#if LV_WAYLAND_XDG_SHELL
case OBJECT_BUTTON_MAXIMIZE:
decoration->width = BUTTON_SIZE;
decoration->height = BUTTON_SIZE;
@@ -189,7 +197,6 @@ bool lv_wayland_window_decoration_create(struct window * window, struct graphic_
decoration->width = BUTTON_SIZE;
decoration->height = BUTTON_SIZE;
break;
-#endif
case OBJECT_BORDER_TOP:
decoration->width = window_width + 2 * (BORDER_SIZE);
decoration->height = BORDER_SIZE;
@@ -210,7 +217,17 @@ bool lv_wayland_window_decoration_create(struct window * window, struct graphic_
LV_ASSERT_MSG(0, "Invalid object type");
return false;
}
-
+#if LV_WAYLAND_USE_DMABUF
+ bpp = lv_color_format_get_size(LV_COLOR_FORMAT_NATIVE);
+ buf = dmabuf_acquire_pool_buffer(window, decoration);
+ buf_base = mmap(0, (decoration->width * bpp) * decoration->height, PROT_READ | PROT_WRITE, MAP_SHARED,
+ buf->dmabuf_fds[0], 0);
+ if(buf_base == MAP_FAILED) {
+ destroy_decorators_buf(window, decoration);
+ LV_LOG_ERROR("cannot map in allocated decoration buffer %d (%s)", errno, strerror(errno));
+ return false;
+ }
+#else
bpp = lv_color_format_get_size(LV_COLOR_FORMAT_NATIVE);
LV_LOG_TRACE("decoration window %dx%d", decoration->width, decoration->height);
@@ -230,7 +247,7 @@ bool lv_wayland_window_decoration_create(struct window * window, struct graphic_
smm_release(buf);
return false;
}
-
+#endif
switch(decoration->type) {
case OBJECT_TITLEBAR:
color_fill(buf_base, lv_color_make(0x66, 0x66, 0x66), decoration->width, decoration->height);
@@ -251,7 +268,6 @@ bool lv_wayland_window_decoration_create(struct window * window, struct graphic_
}
}
break;
-#if LV_WAYLAND_XDG_SHELL
case OBJECT_BUTTON_MAXIMIZE:
color_fill(buf_base, lv_color_make(0xCC, 0xCC, 0xCC), decoration->width, decoration->height);
for(y = 0; y < decoration->height; y++) {
@@ -282,7 +298,6 @@ bool lv_wayland_window_decoration_create(struct window * window, struct graphic_
}
}
break;
-#endif
case OBJECT_BORDER_TOP:
/* fallthrough */
case OBJECT_BORDER_BOTTOM:
@@ -297,7 +312,13 @@ bool lv_wayland_window_decoration_create(struct window * window, struct graphic_
return false;
}
- return lv_wayland_window_decoration_attach(window, decoration, buf, window->body);
+ bool ret = lv_wayland_window_decoration_attach(window, decoration, buf, window->body);
+
+#if LV_WAYLAND_USE_DMABUF
+ munmap(buf_base, (decoration->width * bpp) * decoration->height);
+#endif
+
+ return ret;
}
void lv_wayland_window_decoration_detach(struct window * window, struct graphic_object * decoration)
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_xdg_shell.c b/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_xdg_shell.c
index 43848544e..c2010118a 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_xdg_shell.c
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/wayland/lv_wl_xdg_shell.c
@@ -9,14 +9,8 @@
#include "lv_wayland.h"
#if LV_USE_WAYLAND
-/*
- * LV_WAYLAND_XDG_SHELL is automatically defined if LV_WAYLAND_WL_SHELL is not set
- * inside lv_wayland_private.h so we need include this header file before checking
- * for LV_WAYLAND_XDG_SHELL
- */
#include "lv_wayland_private.h"
-#if LV_WAYLAND_XDG_SHELL
#include
#include "wayland_xdg_shell.h"
@@ -53,7 +47,6 @@ static const struct xdg_toplevel_listener xdg_toplevel_listener = {
};
static const struct xdg_wm_base_listener xdg_wm_base_listener = {.ping = xdg_wm_base_ping};
-static bool is_window_configured = false;
/**********************
* MACROS
@@ -102,14 +95,14 @@ const struct xdg_toplevel_listener * lv_wayland_xdg_shell_get_toplevel_listener(
* Shell Window
**********************/
-lv_result_t lv_wayland_xdg_shell_set_fullscreen(struct window * window, bool fullscreen)
+lv_result_t lv_wayland_xdg_shell_set_fullscreen(struct window * window, bool fullscreen, struct wl_output * output)
{
if(!window->xdg_toplevel) {
return LV_RESULT_INVALID;
}
if(fullscreen) {
- xdg_toplevel_set_fullscreen(window->xdg_toplevel, NULL);
+ xdg_toplevel_set_fullscreen(window->xdg_toplevel, output);
}
else {
xdg_toplevel_unset_fullscreen(window->xdg_toplevel);
@@ -143,6 +136,16 @@ lv_result_t lv_wayland_xdg_shell_set_minimized(struct window * window)
return LV_RESULT_OK;
}
+#if LV_WAYLAND_USE_DMABUF
+void lv_wayland_xdg_shell_ack_configure(struct window * window, uint32_t serial)
+{
+ if(window->xdg_surface && serial > 0) {
+ xdg_surface_ack_configure(window->xdg_surface, serial);
+ LV_LOG_TRACE("XDG surface configure acknowledged (serial=%u)", serial);
+ }
+}
+#endif
+
lv_result_t lv_wayland_xdg_shell_create_window(struct lv_wayland_context * app, struct window * window,
const char * title)
{
@@ -169,14 +172,18 @@ lv_result_t lv_wayland_xdg_shell_create_window(struct lv_wayland_context * app,
xdg_toplevel_set_title(window->xdg_toplevel, title);
xdg_toplevel_set_app_id(window->xdg_toplevel, title);
+ return LV_RESULT_OK;
+}
+
+void lv_wayland_xdg_shell_configure_surface(struct window * window)
+{
// XDG surfaces need to be configured before a buffer can be attached.
// An (XDG) surface commit (without an attached buffer) triggers this
// configure event
- is_window_configured = false;
+ window->is_window_configured = false;
wl_surface_commit(window->body->surface);
wl_display_roundtrip(lv_wl_ctx.display);
- LV_ASSERT_MSG(is_window_configured, "Failed to receive the xdg_surface configuration event");
- return LV_RESULT_OK;
+ LV_ASSERT_MSG(window->is_window_configured, "Failed to receive the xdg_surface configuration event");
}
lv_result_t lv_wayland_xdg_shell_destroy_window_surface(struct window * window)
@@ -396,9 +403,28 @@ static void xdg_surface_handle_configure(void * data, struct xdg_surface * xdg_s
{
struct window * window = (struct window *)data;
- xdg_surface_ack_configure(xdg_surface, serial);
+#if LV_WAYLAND_USE_DMABUF
+ LV_LOG_TRACE("XDG surface configure: serial=%u, dmabuf_resize_pending=%d",
+ serial, window->dmabuf_resize_pending);
- if(!is_window_configured) {
+ /* Store the configure serial for synchronization */
+ window->configure_serial = serial;
+ window->surface_configured = true;
+ window->configure_acknowledged = false;
+
+ /* Only acknowledge immediately if no DMABUF resize is pending */
+ if(!window->dmabuf_resize_pending) {
+ xdg_surface_ack_configure(xdg_surface, serial);
+ window->configure_acknowledged = true;
+ LV_LOG_TRACE("XDG surface configure acknowledged immediately");
+ }
+ else {
+ LV_LOG_TRACE("XDG surface configure deferred - DMABUF resize pending");
+ }
+#else
+ xdg_surface_ack_configure(xdg_surface, serial);
+#endif
+ if(!window->is_window_configured) {
/* This branch is executed at launch */
if(!window->resize_pending) {
/* Use the size passed to the create_window function */
@@ -415,7 +441,7 @@ static void xdg_surface_handle_configure(void * data, struct xdg_surface * xdg_s
window->resize_pending = false;
}
}
- is_window_configured = true;
+ window->is_window_configured = true;
}
static void xdg_toplevel_handle_configure(void * data, struct xdg_toplevel * xdg_toplevel, int32_t width,
@@ -426,9 +452,9 @@ static void xdg_toplevel_handle_configure(void * data, struct xdg_toplevel * xdg
LV_UNUSED(xdg_toplevel);
LV_UNUSED(states);
- LV_LOG_TRACE("w:%d h:%d", width, height);
+ LV_LOG_TRACE("XDG toplevel configure: w=%d h=%d (current: %dx%d)",
+ width, height, window->width, window->height);
LV_LOG_TRACE("current body w:%d h:%d", window->body->width, window->body->height);
- LV_LOG_TRACE("window w:%d h:%d", window->width, window->height);
if((width <= 0) || (height <= 0)) {
LV_LOG_TRACE("will not resize to w:%d h:%d", width, height);
@@ -439,7 +465,9 @@ static void xdg_toplevel_handle_configure(void * data, struct xdg_toplevel * xdg
window->resize_width = width;
window->resize_height = height;
window->resize_pending = true;
- LV_LOG_TRACE("resize_pending is set, will resize to w:%d h:%d", width, height);
+#if LV_WAYLAND_USE_DMABUF
+ window->dmabuf_resize_pending = true;
+#endif
}
else {
LV_LOG_TRACE("resize_pending not set w:%d h:%d", width, height);
@@ -463,5 +491,4 @@ static void xdg_wm_base_ping(void * data, struct xdg_wm_base * xdg_wm_base, uint
return;
}
-#endif /* LV_WAYLAND_XDG_SHELL */
#endif /* LV_USE_WAYLAND */
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/windows/lv_windows_context.c b/lib/libesp32_lvgl/lvgl/src/drivers/windows/lv_windows_context.c
index a79b7852f..dd2d6a599 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/windows/lv_windows_context.c
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/windows/lv_windows_context.c
@@ -16,7 +16,7 @@
#include "lv_windows_display.h"
#include "lv_windows_input_private.h"
-#include "../../osal/lv_os.h"
+#include "../../osal/lv_os_private.h"
/*********************
* DEFINES
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/windows/lv_windows_display.c b/lib/libesp32_lvgl/lvgl/src/drivers/windows/lv_windows_display.c
index 958338ec6..496aada59 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/windows/lv_windows_display.c
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/windows/lv_windows_display.c
@@ -122,23 +122,33 @@ static unsigned int __stdcall lv_windows_display_thread_entrypoint(
LV_ASSERT_NULL(data);
DWORD window_style = WS_OVERLAPPEDWINDOW;
+ DWORD ext_window_style = WS_EX_CLIENTEDGE;
+ RECT rect = { 0, 0, data->hor_res, data->ver_res };
+
if(data->simulator_mode) {
window_style &= ~(WS_SIZEBOX | WS_MAXIMIZEBOX | WS_THICKFRAME);
}
+ else {
+ /* Have Windows compute window size so, regardless of window style,
+ * the CLIENT AREA has dimensions [data->hor_res, data->ver_res].
+ * This is the area needed for LVGL to render to. */
+ AdjustWindowRectEx(&rect, window_style, false, ext_window_style);
+ }
HWND window_handle = CreateWindowExW(
- WS_EX_CLIENTEDGE,
+ ext_window_style,
L"LVGL.Window",
data->title,
window_style,
CW_USEDEFAULT,
0,
- data->hor_res,
- data->ver_res,
+ rect.right - rect.left,
+ rect.bottom - rect.top,
NULL,
NULL,
NULL,
data);
+
if(!window_handle) {
return 0;
}
diff --git a/lib/libesp32_lvgl/lvgl/src/drivers/windows/lv_windows_display.h b/lib/libesp32_lvgl/lvgl/src/drivers/windows/lv_windows_display.h
index b9c6f8e94..2ac465343 100644
--- a/lib/libesp32_lvgl/lvgl/src/drivers/windows/lv_windows_display.h
+++ b/lib/libesp32_lvgl/lvgl/src/drivers/windows/lv_windows_display.h
@@ -47,8 +47,8 @@ extern "C" {
* @param zoom_level The zoom level value. Base value is 100 a.k.a 100%.
* @param allow_dpi_override Allow DPI override if true, or follow the
* Windows DPI scaling setting dynamically.
- * @param simulator_mode Create simulator mode display if true, or create
- * application mode display.
+ * @param simulator_mode Create simulator mode display if true (not resizable),
+ * or create application mode display (resizable).
* @return The created LVGL display object.
*/
lv_display_t * lv_windows_create_display(
diff --git a/lib/libesp32_lvgl/lvgl/src/font/lv_binfont_loader.c b/lib/libesp32_lvgl/lvgl/src/font/lv_binfont_loader.c
index a39e2bc64..d53452c9f 100644
--- a/lib/libesp32_lvgl/lvgl/src/font/lv_binfont_loader.c
+++ b/lib/libesp32_lvgl/lvgl/src/font/lv_binfont_loader.c
@@ -125,7 +125,7 @@ lv_font_t * lv_binfont_create_from_buffer(void * buffer, uint32_t size)
{
lv_fs_path_ex_t mempath;
- lv_fs_make_path_from_buffer(&mempath, LV_FS_MEMFS_LETTER, buffer, size);
+ lv_fs_make_path_from_buffer(&mempath, LV_FS_MEMFS_LETTER, buffer, size, "bin");
return lv_binfont_create((const char *)&mempath);
}
#endif
@@ -253,7 +253,7 @@ static bool load_cmaps_tables(lv_fs_file_t * fp, lv_font_fmt_txt_dsc_t * font_ds
switch(cmap_table[i].format_type) {
case LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL: {
- uint8_t ids_size = (uint8_t)(sizeof(uint8_t) * cmap_table[i].data_entries_count);
+ uint32_t ids_size = (uint32_t)(sizeof(uint8_t) * cmap_table[i].data_entries_count);
uint8_t * glyph_id_ofs_list = lv_malloc(ids_size);
cmap->glyph_id_ofs_list = glyph_id_ofs_list;
@@ -407,6 +407,7 @@ static int32_t load_glyph(lv_fs_file_t * fp, lv_font_fmt_txt_dsc_t * font_dsc,
}
uint8_t * glyph_bmp = (uint8_t *)lv_malloc(sizeof(uint8_t) * cur_bmp_size);
+ LV_ASSERT_MALLOC(glyph_bmp);
font_dsc->glyph_bitmap = glyph_bmp;
diff --git a/lib/libesp32_lvgl/lvgl/src/font/lv_font.c b/lib/libesp32_lvgl/lvgl/src/font/lv_font.c
index 26199fc73..651998ec9 100644
--- a/lib/libesp32_lvgl/lvgl/src/font/lv_font.c
+++ b/lib/libesp32_lvgl/lvgl/src/font/lv_font.c
@@ -95,19 +95,20 @@ bool lv_font_get_glyph_dsc(const lv_font_t * font_p, lv_font_glyph_dsc_t * dsc_o
uint32_t letter_next)
{
- LV_ASSERT_NULL(font_p);
LV_ASSERT_NULL(dsc_out);
+ LV_ASSERT_NULL(font_p);
#if LV_USE_FONT_PLACEHOLDER
const lv_font_t * placeholder_font = NULL;
#endif
-
const lv_font_t * f = font_p;
+ const bool has_kerning = f->kerning != LV_FONT_KERNING_NONE;
lv_memzero(dsc_out, sizeof(lv_font_glyph_dsc_t));
while(f) {
- bool found = f->get_glyph_dsc(f, dsc_out, letter, f->kerning == LV_FONT_KERNING_NONE ? 0 : letter_next);
+ bool found = f->get_glyph_dsc(f, dsc_out, letter,
+ has_kerning ? letter_next : 0);
if(found) {
if(!dsc_out->is_placeholder) {
dsc_out->resolved_font = f;
@@ -125,7 +126,7 @@ bool lv_font_get_glyph_dsc(const lv_font_t * font_p, lv_font_glyph_dsc_t * dsc_o
#if LV_USE_FONT_PLACEHOLDER
if(placeholder_font != NULL) {
placeholder_font->get_glyph_dsc(placeholder_font, dsc_out, letter,
- placeholder_font->kerning == LV_FONT_KERNING_NONE ? 0 : letter_next);
+ has_kerning ? letter_next : 0);
dsc_out->resolved_font = placeholder_font;
return true;
}
@@ -147,19 +148,18 @@ bool lv_font_get_glyph_dsc(const lv_font_t * font_p, lv_font_glyph_dsc_t * dsc_o
dsc_out->format = LV_FONT_GLYPH_FORMAT_A1;
dsc_out->is_placeholder = true;
-
return false;
}
uint16_t lv_font_get_glyph_width(const lv_font_t * font, uint32_t letter, uint32_t letter_next)
{
- LV_ASSERT_NULL(font);
lv_font_glyph_dsc_t g;
/*Return zero if letter is marker*/
if(lv_text_is_marker(letter)) return 0;
lv_font_get_glyph_dsc(font, &g, letter, letter_next);
+
return g.adv_w;
}
diff --git a/lib/libesp32_lvgl/lvgl/src/font/lv_font.h b/lib/libesp32_lvgl/lvgl/src/font/lv_font.h
index 180891832..1a3a59a06 100644
--- a/lib/libesp32_lvgl/lvgl/src/font/lv_font.h
+++ b/lib/libesp32_lvgl/lvgl/src/font/lv_font.h
@@ -36,7 +36,7 @@ extern "C" {
typedef enum {
LV_FONT_GLYPH_FORMAT_NONE = 0, /**< Maybe not visible*/
- /**< Legacy simple formats with no byte padding at end of the lines*/
+ /**< Legacy simple formats*/
LV_FONT_GLYPH_FORMAT_A1 = 0x01, /**< 1 bit per pixel*/
LV_FONT_GLYPH_FORMAT_A2 = 0x02, /**< 2 bit per pixel*/
LV_FONT_GLYPH_FORMAT_A3 = 0x03, /**< 3 bit per pixel*/
@@ -68,10 +68,10 @@ typedef struct {
* 1: return the bitmap as it is (Maybe A1/2/4 or any proprietary formats). */
uint8_t req_raw_bitmap: 1;
- int32_t outline_stroke_width; /**< used with freetype vector fonts - width of the letter outline */
+ int32_t outline_stroke_width; /**< used with freetype vector fonts - width of the letter border */
union {
- uint32_t index; /**< Unicode code point*/
+ uint32_t index; /**< Glyph descriptor index*/
const void * src; /**< Pointer to the source data used by image fonts*/
} gid; /**< The index of the glyph in the font file. Used by the font cache*/
lv_cache_entry_t * entry; /**< The cache entry of the glyph draw data. Used by the font cache*/
@@ -113,7 +113,7 @@ struct _lv_font_t {
int8_t underline_thickness; /**< Thickness of the underline*/
const void * dsc; /**< Store implementation specific or run_time data or caching here*/
- const lv_font_t * fallback; /**< Fallback font for missing glyph. Resolved recursively */
+ const lv_font_t * fallback; /**< Fallback font for missing glyph. Resolved recursively */
void * user_data; /**< Custom user data for font.*/
};
@@ -172,7 +172,6 @@ const void * lv_font_get_glyph_static_bitmap(lv_font_glyph_dsc_t * g_dsc);
*/
bool lv_font_get_glyph_dsc(const lv_font_t * font, lv_font_glyph_dsc_t * dsc_out, uint32_t letter,
uint32_t letter_next);
-
/**
* Release the bitmap of a font.
* @note You must call lv_font_get_glyph_dsc() to get `g_dsc` (lv_font_glyph_dsc_t) before you can call this function.
@@ -322,14 +321,6 @@ LV_FONT_DECLARE(lv_font_montserrat_28_compressed)
LV_FONT_DECLARE(lv_font_dejavu_16_persian_hebrew)
#endif
-#if LV_FONT_SIMSUN_14_CJK
-LV_FONT_DECLARE(lv_font_simsun_14_cjk)
-#endif
-
-#if LV_FONT_SIMSUN_16_CJK
-LV_FONT_DECLARE(lv_font_simsun_16_cjk)
-#endif
-
#if LV_FONT_SOURCE_HAN_SANS_SC_14_CJK
LV_FONT_DECLARE(lv_font_source_han_sans_sc_14_cjk)
#endif
@@ -355,4 +346,4 @@ LV_FONT_CUSTOM_DECLARE
} /*extern "C"*/
#endif
-#endif /*USE_FONT*/
+#endif /*LV_FONT_H*/
diff --git a/lib/libesp32_lvgl/lvgl/src/font/lv_font_fmt_txt.c b/lib/libesp32_lvgl/lvgl/src/font/lv_font_fmt_txt.c
index 7dbdfb578..6df2f9a27 100644
--- a/lib/libesp32_lvgl/lvgl/src/font/lv_font_fmt_txt.c
+++ b/lib/libesp32_lvgl/lvgl/src/font/lv_font_fmt_txt.c
@@ -103,7 +103,8 @@ const void * lv_font_get_bitmap_fmt_txt(lv_font_glyph_dsc_t * g_dsc, lv_draw_buf
int32_t gsize = (int32_t) gdsc->box_w * gdsc->box_h;
if(gsize == 0) return NULL;
- uint16_t stride_in = g_dsc->stride;
+ uint32_t stride_in = g_dsc->stride;
+
if(fdsc->bitmap_format == LV_FONT_FMT_TXT_PLAIN) {
const uint8_t * bitmap_in = &fdsc->glyph_bitmap[gdsc->bitmap_index];
@@ -139,7 +140,7 @@ const void * lv_font_get_bitmap_fmt_txt(lv_font_glyph_dsc_t * g_dsc, lv_draw_buf
}
else if(fdsc->bpp == 2) {
for(y = 0; y < gdsc->box_h; y ++) {
- uint16_t line_rem = stride_in != 0 ? stride_in : gdsc->box_w;
+ uint32_t line_rem = stride_in != 0 ? stride_in : gdsc->box_w;
for(x = 0; x < gdsc->box_w; x++, i++) {
i = i & 0x3;
if(i == 0) bitmap_out_tmp[x] = opa2_table[(*bitmap_in) >> 6];
@@ -257,9 +258,13 @@ bool lv_font_get_glyph_dsc_fmt_txt(const lv_font_t * font, lv_font_glyph_dsc_t *
if(fdsc->stride == 0) dsc_out->stride = 0;
else {
- /*e.g. font_dsc stride == 4 means align to 4 byte boundary.
+ /*E.g. w = 5, bpp = 2, means 2 bytes/line*/
+ uint32_t bit_count = dsc_out->box_w * fdsc->bpp;
+ uint32_t width_in_bytes = (bit_count + 7) >> 3; /*No division round up*/
+
+ /*E.g. font_dsc stride == 4 means align to 4 byte boundary.
*In glyph_dsc store the actual line length in bytes*/
- dsc_out->stride = LV_ROUND_UP(dsc_out->box_w, fdsc->stride);
+ dsc_out->stride = LV_ROUND_UP(width_in_bytes, fdsc->stride);
}
dsc_out->format = (uint8_t)fdsc->bpp;
diff --git a/lib/libesp32_lvgl/lvgl/src/font/lv_font_montserrat_14_aligned.c b/lib/libesp32_lvgl/lvgl/src/font/lv_font_montserrat_14_aligned.c
index c364e0181..6ea0971cd 100644
--- a/lib/libesp32_lvgl/lvgl/src/font/lv_font_montserrat_14_aligned.c
+++ b/lib/libesp32_lvgl/lvgl/src/font/lv_font_montserrat_14_aligned.c
@@ -15,7 +15,7 @@
#ifdef LV_LVGL_H_INCLUDE_SIMPLE
#include "lvgl.h"
#else
- #include "lvgl/lvgl.h"
+ #include "../../lvgl.h"
#endif
#if !LV_VERSION_CHECK(9, 3, 0)
diff --git a/lib/libesp32_lvgl/lvgl/src/font/lv_font_simsun_14_cjk.c b/lib/libesp32_lvgl/lvgl/src/font/lv_font_simsun_14_cjk.c
deleted file mode 100644
index 81f1fa7f6..000000000
--- a/lib/libesp32_lvgl/lvgl/src/font/lv_font_simsun_14_cjk.c
+++ /dev/null
@@ -1,20789 +0,0 @@
-/*******************************************************************************
- * Size: 14 px
- * Bpp: 4
- * Opts: --no-compress --no-prefilter --bpp 4 --size 14 --font SimSun.woff -r 0x20-0x7f --symbols (),盗提陽帯鼻画輕ッ冊ェル写父ぁフ結想正四O夫源庭場天續鳥れ講猿苦階給了製守8祝己妳薄泣塩帰ぺ吃変輪那着仍嗯爭熱創味保字宿捨準查達肯ァ薬得査障該降察ね網加昼料等図邪秋コ態品屬久原殊候路願楽確針上被怕悲風份重歡っ附ぷ既4黨價娘朝凍僅際洋止右航よ专角應酸師個比則響健昇豐筆歷適修據細忙跟管長令家ザ期般花越ミ域泳通些油乏ラ。營ス返調農叫樹刊愛間包知把ヤ貧橋拡普聞前ジ建当繰ネ送習渇用補ィ覺體法遊宙ョ酔余利壊語くつ払皆時辺追奇そ們只胸械勝住全沈力光ん深溝二類北面社值試9和五勵ゃ貿幾逐打課ゲて領3鼓辦発評1渉詳暇込计駄供嘛郵頃腦反構絵お容規借身妻国慮剛急乗静必議置克土オ乎荷更肉還混古渡授合主離條値決季晴東大尚央州が嗎験流先医亦林田星晩拿60旅婦量為痛テ孫う環友況玩務其ぼち揺坐一肩腰犯タょ希即果ぶ物練待み高九找やヶ都グ去」サ、气仮雑酒許終企笑録形リ銀切ギ快問滿役単黄集森毎實研喜蘇司鉛洲川条媽ノ才兩話言雖媒出客づ卻現異故り誌逮同訊已視本題ぞを横開音第席費持眾怎選元退限ー賽処喝就残無いガ多ケ沒義遠歌隣錢某雪析嬉採自透き側員予ゼ白婚电へ顯呀始均畫似懸格車騒度わ親店週維億締慣免帳電甚來園浴ゅ愈京と杯各海怒ぜ排敗挙老買7極模実紀ヒ携隻告シ並屋這孩讓質ワブ富賃争康由辞マ火於短樣削弟材注節另室ダ招擁ぃ若套底波行勤關著泊背疲狭作念推ぐ民貸祖介說ビ代温契你我レ入描變再札ソ派頭智遅私聽舉灣山伸放直安ト誕煙付符幅ふ絡她届耳飲忘参革團仕様載ど歩獲嫌息の汚交興魚指資雙與館初学年幸史位柱族走括び考青也共腕Lで販擔理病イ今逃當寺猫邊菓係ム秘示解池影ド文例斷曾事茶寫明科桃藝売便え導禁財飛替而亡到し具空寝辛業ウ府セ國何基菜厳市努張缺雲根外だ断万砂ゴ超使台实ぽ礼最慧算軟界段律像夕丈窓助刻月夏政呼ぴざ擇趣除動従涼方勉名線対存請子氏將5少否諸論美感或西者定食御表は參歳緑命進易性錯房も捕皿判中觀戦ニ緩町ピ番ず金千ろ?不た象治関ャ每看徒卒統じ手範訪押座步号ベ旁以母すほ密減成往歲件緒読歯效院种七謂凝濃嵌震喉繼クュ拭死円2積水欲如ポにさ寒道區精啦姐ア聯能足及停思壓2春且メ裏株官答概黒過氷柿戻厚ぱ党祭織引計け委暗複誘港バ失下村較続神ぇ尤強秀膝兒来績十書済化服破新廠1紹您情半式產系好教暑早め樂地休協良な哪常要揮周かエ麗境働避護ンツ香夜太見設非改広聲他検求危清彼經未在起葉控靴所差內造寄南望尺換向展備眠點完約ぎ裡分説申童優伝島机須塊日立拉,鉄軽單気信很転識支布数紙此迎受心輸坊モ處「訳三曇兄野顔戰增ナ伊列又髪両有取左毛至困吧昔赤狀相夠整別士経頼然簡ホ会發隨営需脱ヨば接永居冬迫圍甘醫誰部充消連弱宇會咲覚姉麼的増首统帶糖朋術商担移景功育庫曲總劃牛程駅犬報ロ學責因パ嚴八世後平負公げ曜陸專午之閉ぬ談ご災昨冷職悪謝對它近射敢意運船臉局難什産頗!球真記ま但蔵究制機案湖臺ひ害券男留内木驗雨施種特復句末濟キ色訴依せ百型る石牠討呢时任執飯歐宅組傳配小活ゆべ暖ズ漸站素らボ束価チ浅回女片独妹英目從認生違策僕楚ペ米こ掛む爸六状落漢プ投カ校做啊洗声探あ割体項履触々訓技ハ低工映是標速善点人デ口次可廿节宵植树端阳旦腊妇费愚劳动儿军师庆圣诞闰 --font FontAwesome5-Solid+Brands+Regular.woff -r 61441,61448,61451,61452,61452,61453,61457,61459,61461,61465,61468,61473,61478,61479,61480,61502,61507,61512,61515,61516,61517,61521,61522,61523,61524,61543,61544,61550,61552,61553,61556,61559,61560,61561,61563,61587,61589,61636,61637,61639,61641,61664,61671,61674,61683,61724,61732,61787,61931,62016,62017,62018,62019,62020,62087,62099,62212,62189,62810,63426,63650 --format lvgl -o lv_font_simsun_14_cjk.c --force-fast-kern-format
- ******************************************************************************/
-
-#ifdef LV_LVGL_H_INCLUDE_SIMPLE
- #include "lvgl.h"
-#else
- #include "../../lvgl.h"
-#endif
-
-#ifndef LV_FONT_SIMSUN_14_CJK
- #define LV_FONT_SIMSUN_14_CJK 1
-#endif
-
-#if LV_FONT_SIMSUN_14_CJK
-
-/*-----------------
- * BITMAPS
- *----------------*/
-
-/*Store the image of the glyphs*/
-static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
- /* U+0020 " " */
-
- /* U+0021 "!" */
- 0x1d, 0x2, 0xf0, 0xe, 0x0, 0xc0, 0xa, 0x0,
- 0x80, 0x5, 0x0, 0x0, 0x18, 0x2, 0xe1,
-
- /* U+0022 "\"" */
- 0x0, 0x89, 0x5b, 0x1, 0xe3, 0xd5, 0x8, 0x45,
- 0x60, 0x4, 0x4, 0x0,
-
- /* U+0023 "#" */
- 0x0, 0x70, 0x7, 0x0, 0x7, 0x0, 0x70, 0x7f,
- 0xff, 0xff, 0x71, 0x46, 0x24, 0x61, 0x4, 0x30,
- 0x43, 0x0, 0x52, 0x5, 0x20, 0x7f, 0xff, 0xff,
- 0x71, 0x92, 0x28, 0x21, 0x7, 0x0, 0x70, 0x0,
- 0x70, 0x7, 0x0,
-
- /* U+0024 "$" */
- 0x0, 0x4, 0x0, 0x0, 0x8, 0x0, 0x1, 0x8b,
- 0x82, 0x9, 0x28, 0x4a, 0xc, 0x28, 0x46, 0x6,
- 0xc9, 0x0, 0x0, 0x8f, 0x30, 0x0, 0xa, 0xe2,
- 0x0, 0x8, 0x6a, 0xd, 0x28, 0xc, 0xe, 0x8,
- 0x19, 0x4, 0x7b, 0x71, 0x0, 0x8, 0x0, 0x0,
- 0x4, 0x0,
-
- /* U+0025 "%" */
- 0x0, 0x0, 0x2, 0x4, 0x76, 0x3, 0x40, 0xa0,
- 0x90, 0x70, 0xb, 0x9, 0x16, 0x0, 0x90, 0xa5,
- 0x10, 0x1, 0x64, 0x64, 0x60, 0x0, 0x15, 0x93,
- 0x60, 0x6, 0x37, 0x9, 0x0, 0x64, 0x70, 0xa0,
- 0x32, 0x18, 0x28, 0x5, 0x0, 0x78, 0x10,
-
- /* U+0026 "&" */
- 0x3, 0x79, 0x0, 0x0, 0xa0, 0x83, 0x0, 0xb,
- 0x9, 0x20, 0x0, 0xa5, 0x80, 0x0, 0x8, 0xa0,
- 0x78, 0x14, 0x6d, 0x4, 0x40, 0xb0, 0x95, 0x51,
- 0xc, 0x2, 0xd7, 0x0, 0x95, 0x8, 0xb0, 0x31,
- 0xb9, 0x68, 0xc5,
-
- /* U+0027 "'" */
- 0xd, 0x60, 0x8a, 0x5, 0x50, 0x60,
-
- /* U+0028 "(" */
- 0x0, 0x0, 0x0, 0x71, 0x5, 0x40, 0xa, 0x0,
- 0x65, 0x0, 0xb1, 0x0, 0xc0, 0x0, 0xc0, 0x0,
- 0xc0, 0x0, 0xb0, 0x0, 0x65, 0x0, 0x1a, 0x0,
- 0x6, 0x40, 0x0, 0x81, 0x0, 0x1,
-
- /* U+0029 ")" */
- 0x0, 0x0, 0x26, 0x0, 0x5, 0x40, 0x0, 0xa0,
- 0x0, 0x65, 0x0, 0x2a, 0x0, 0xc, 0x0, 0xc,
- 0x0, 0xc, 0x0, 0x1b, 0x0, 0x66, 0x0, 0xa0,
- 0x4, 0x50, 0x17, 0x0, 0x10, 0x0,
-
- /* U+002A "*" */
- 0x0, 0x5, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x6b,
- 0xb, 0x1c, 0x50, 0x7a, 0x7a, 0x70, 0x0, 0x6a,
- 0x60, 0x4, 0xe5, 0x86, 0xe3, 0x24, 0xd, 0x4,
- 0x20, 0x0, 0xd0, 0x0,
-
- /* U+002B "+" */
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x70, 0x0, 0x0,
- 0x7, 0x0, 0x0, 0x0, 0x70, 0x0, 0x38, 0x8c,
- 0x88, 0x40, 0x0, 0x70, 0x0, 0x0, 0x7, 0x0,
- 0x0, 0x0, 0x70, 0x0, 0x0, 0x2, 0x0, 0x0,
-
- /* U+002C "," */
- 0xd, 0x60, 0x8a, 0x5, 0x50, 0x60,
-
- /* U+002D "-" */
- 0x48, 0x88, 0x88, 0x40,
-
- /* U+002E "." */
- 0x9, 0x40, 0xd6,
-
- /* U+002F "/" */
- 0x0, 0x0, 0x1, 0x30, 0x0, 0x0, 0x60, 0x0,
- 0x0, 0x7, 0x0, 0x0, 0x5, 0x10, 0x0, 0x0,
- 0x70, 0x0, 0x0, 0x43, 0x0, 0x0, 0x7, 0x0,
- 0x0, 0x2, 0x50, 0x0, 0x0, 0x70, 0x0, 0x0,
- 0x6, 0x0, 0x0, 0x6, 0x10, 0x0, 0x0, 0x70,
- 0x0, 0x0, 0x42, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+0030 "0" */
- 0x0, 0x97, 0x90, 0x0, 0x95, 0x4, 0x90, 0xe,
- 0x0, 0xe, 0x3, 0xc0, 0x0, 0xd3, 0x4b, 0x0,
- 0xc, 0x45, 0xb0, 0x0, 0xc3, 0x3c, 0x0, 0xd,
- 0x20, 0xe0, 0x0, 0xe0, 0x9, 0x50, 0x48, 0x0,
- 0x9, 0x79, 0x0,
-
- /* U+0031 "1" */
- 0x26, 0xe0, 0x0, 0xe, 0x0, 0x0, 0xe0, 0x0,
- 0xe, 0x0, 0x0, 0xe0, 0x0, 0xe, 0x0, 0x0,
- 0xe0, 0x0, 0xe, 0x0, 0x0, 0xe0, 0x2, 0x7f,
- 0x83,
-
- /* U+0032 "2" */
- 0x3, 0x76, 0x93, 0x0, 0xb0, 0x1, 0xd0, 0x1f,
- 0x0, 0xe, 0x0, 0x40, 0x1, 0xc0, 0x0, 0x0,
- 0x84, 0x0, 0x0, 0x46, 0x0, 0x0, 0x36, 0x0,
- 0x0, 0x17, 0x0, 0x20, 0x8, 0x0, 0x8, 0x4,
- 0xee, 0xee, 0xd0,
-
- /* U+0033 "3" */
- 0x4, 0x67, 0x91, 0x0, 0xd0, 0x5, 0x90, 0x8,
- 0x0, 0x3b, 0x0, 0x0, 0x8, 0x40, 0x0, 0x2a,
- 0x80, 0x0, 0x0, 0x5, 0x80, 0x0, 0x0, 0xe,
- 0x0, 0xb0, 0x0, 0xe0, 0x1e, 0x0, 0x2b, 0x0,
- 0x57, 0x68, 0x10,
-
- /* U+0034 "4" */
- 0x0, 0x0, 0xc0, 0x0, 0x0, 0x6e, 0x0, 0x0,
- 0x15, 0xd0, 0x0, 0x7, 0xd, 0x0, 0x4, 0x20,
- 0xd0, 0x0, 0x60, 0xd, 0x0, 0x45, 0x55, 0xe5,
- 0x20, 0x0, 0xd, 0x0, 0x0, 0x0, 0xd0, 0x0,
- 0x1, 0x6f, 0x81,
-
- /* U+0035 "5" */
- 0x8, 0xee, 0xec, 0x0, 0x60, 0x0, 0x0, 0x6,
- 0x0, 0x0, 0x0, 0x68, 0x9b, 0x20, 0x9, 0x10,
- 0x3b, 0x0, 0x0, 0x0, 0xe0, 0x1, 0x0, 0xd,
- 0x11, 0xf0, 0x0, 0xd0, 0xc, 0x0, 0x2a, 0x0,
- 0x37, 0x69, 0x10,
-
- /* U+0036 "6" */
- 0x0, 0x66, 0x96, 0x0, 0x73, 0x2, 0x60, 0xc,
- 0x0, 0x0, 0x2, 0xb6, 0x9c, 0x40, 0x4e, 0x40,
- 0x1d, 0x5, 0xc0, 0x0, 0xb3, 0x4c, 0x0, 0xa,
- 0x41, 0xe0, 0x0, 0xb2, 0xb, 0x40, 0xb, 0x0,
- 0x1a, 0x68, 0x20,
-
- /* U+0037 "7" */
- 0xd, 0xee, 0xef, 0x10, 0x90, 0x0, 0x70, 0x2,
- 0x0, 0x61, 0x0, 0x0, 0x8, 0x0, 0x0, 0x5,
- 0x40, 0x0, 0x0, 0xb0, 0x0, 0x0, 0x1c, 0x0,
- 0x0, 0x5, 0xb0, 0x0, 0x0, 0x7b, 0x0, 0x0,
- 0x6, 0xa0, 0x0,
-
- /* U+0038 "8" */
- 0x3, 0x86, 0x82, 0x0, 0xb0, 0x0, 0xb0, 0x2b,
- 0x0, 0xb, 0x0, 0xd6, 0x1, 0xa0, 0x1, 0xec,
- 0x90, 0x0, 0x83, 0x5e, 0x50, 0x39, 0x0, 0x2e,
- 0x5, 0x60, 0x0, 0xb2, 0x29, 0x0, 0xb, 0x0,
- 0x47, 0x67, 0x30,
-
- /* U+0039 "9" */
- 0x4, 0x87, 0x81, 0x1, 0xc0, 0x2, 0xa0, 0x59,
- 0x0, 0xd, 0x5, 0x90, 0x0, 0xe2, 0x1d, 0x10,
- 0x6e, 0x30, 0x49, 0x83, 0xe2, 0x0, 0x0, 0xf,
- 0x0, 0x10, 0x3, 0xa0, 0xd, 0x30, 0x94, 0x0,
- 0x79, 0x76, 0x0,
-
- /* U+003A ":" */
- 0x3e, 0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x1,
- 0x80, 0x3e, 0x0,
-
- /* U+003B ";" */
- 0x3f, 0x1, 0x50, 0x0, 0x0, 0x0, 0x0, 0x1,
- 0x50, 0x3f, 0x0, 0xa0, 0x3, 0x0,
-
- /* U+003C "<" */
- 0x0, 0x0, 0x5, 0x0, 0x0, 0x5, 0x40, 0x0,
- 0x5, 0x50, 0x0, 0x4, 0x60, 0x0, 0x3, 0x70,
- 0x0, 0x0, 0xa0, 0x0, 0x0, 0x4, 0x60, 0x0,
- 0x0, 0x5, 0x50, 0x0, 0x0, 0x6, 0x40, 0x0,
- 0x0, 0x6, 0x30, 0x0, 0x0, 0x6, 0x0,
-
- /* U+003D "=" */
- 0x48, 0x88, 0x88, 0x40, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x4, 0x88, 0x88, 0x84,
-
- /* U+003E ">" */
- 0x5, 0x0, 0x0, 0x0, 0x46, 0x0, 0x0, 0x0,
- 0x55, 0x0, 0x0, 0x0, 0x64, 0x0, 0x0, 0x0,
- 0x73, 0x0, 0x0, 0x0, 0xa0, 0x0, 0x0, 0x64,
- 0x0, 0x0, 0x55, 0x0, 0x0, 0x46, 0x0, 0x0,
- 0x37, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0,
-
- /* U+003F "?" */
- 0x2, 0x88, 0xa4, 0x0, 0x80, 0x0, 0xd1, 0x3a,
- 0x0, 0xb, 0x31, 0x90, 0x0, 0xe1, 0x0, 0x1,
- 0xa5, 0x0, 0x0, 0x81, 0x0, 0x0, 0x7, 0x0,
- 0x0, 0x0, 0x20, 0x0, 0x0, 0x18, 0x0, 0x0,
- 0x3, 0xe0, 0x0,
-
- /* U+0040 "@" */
- 0x0, 0x77, 0x74, 0x0, 0x72, 0x46, 0xa2, 0x9,
- 0x17, 0x65, 0x74, 0x67, 0x27, 0x37, 0x65, 0xb0,
- 0x91, 0x76, 0x5b, 0xa, 0x7, 0x46, 0xa1, 0xc4,
- 0x31, 0x95, 0x66, 0x61, 0x8, 0x10, 0x4, 0x30,
- 0x8, 0x77, 0x50,
-
- /* U+0041 "A" */
- 0x0, 0xb, 0x0, 0x0, 0x4, 0xe2, 0x0, 0x0,
- 0x77, 0x60, 0x0, 0x8, 0x49, 0x0, 0x0, 0x70,
- 0xd0, 0x0, 0x44, 0xc, 0x10, 0x7, 0x65, 0xb5,
- 0x0, 0x80, 0x5, 0x80, 0x7, 0x0, 0x1c, 0x8,
- 0xb0, 0x4, 0xf5,
-
- /* U+0042 "B" */
- 0x4e, 0x66, 0x95, 0x0, 0xd0, 0x0, 0xe0, 0xd,
- 0x0, 0xe, 0x0, 0xd0, 0x3, 0xb0, 0xd, 0x56,
- 0xb1, 0x0, 0xd0, 0x1, 0xc0, 0xd, 0x0, 0x9,
- 0x60, 0xd0, 0x0, 0x97, 0xd, 0x0, 0xc, 0x34,
- 0xe6, 0x68, 0x60,
-
- /* U+0043 "C" */
- 0x0, 0x87, 0x8f, 0x10, 0x94, 0x0, 0x54, 0x1d,
- 0x0, 0x0, 0x36, 0x90, 0x0, 0x0, 0x88, 0x0,
- 0x0, 0x8, 0x80, 0x0, 0x0, 0x79, 0x0, 0x0,
- 0x4, 0xc0, 0x0, 0x4, 0xd, 0x30, 0x6, 0x10,
- 0x1a, 0x88, 0x30,
-
- /* U+0044 "D" */
- 0x4e, 0x76, 0x80, 0x0, 0xd0, 0x3, 0xb0, 0xd,
- 0x0, 0xc, 0x30, 0xd0, 0x0, 0x96, 0xd, 0x0,
- 0x8, 0x70, 0xd0, 0x0, 0x87, 0xd, 0x0, 0xa,
- 0x60, 0xd0, 0x0, 0xd2, 0xd, 0x0, 0x4a, 0x4,
- 0xe7, 0x78, 0x0,
-
- /* U+0045 "E" */
- 0x3e, 0x75, 0x7d, 0x0, 0xc1, 0x0, 0x43, 0xc,
- 0x10, 0x0, 0x0, 0xc1, 0x5, 0x0, 0xc, 0x65,
- 0xd0, 0x0, 0xc1, 0x6, 0x0, 0xc, 0x10, 0x20,
- 0x0, 0xc1, 0x0, 0x1, 0xc, 0x10, 0x2, 0x53,
- 0xe7, 0x57, 0xe1,
-
- /* U+0046 "F" */
- 0x3e, 0x75, 0x6d, 0x30, 0xc1, 0x0, 0x17, 0xc,
- 0x10, 0x0, 0x0, 0xc1, 0x2, 0x40, 0xc, 0x65,
- 0xb4, 0x0, 0xc1, 0x2, 0x40, 0xc, 0x10, 0x1,
- 0x0, 0xc1, 0x0, 0x0, 0xc, 0x10, 0x0, 0x4,
- 0xe7, 0x0, 0x0,
-
- /* U+0047 "G" */
- 0x1, 0x97, 0xc8, 0x0, 0xa2, 0x0, 0x90, 0x1a,
- 0x0, 0x3, 0x6, 0x70, 0x0, 0x0, 0x86, 0x0,
- 0x0, 0x9, 0x60, 0x7, 0xa4, 0x77, 0x0, 0xe,
- 0x3, 0xb0, 0x0, 0xd0, 0xc, 0x10, 0xd, 0x0,
- 0x29, 0x67, 0x40,
-
- /* U+0048 "H" */
- 0x5f, 0x30, 0x3f, 0x40, 0xd0, 0x0, 0xe0, 0xd,
- 0x0, 0xe, 0x0, 0xd0, 0x0, 0xe0, 0xe, 0x55,
- 0x5e, 0x0, 0xd0, 0x0, 0xe0, 0xd, 0x0, 0xe,
- 0x0, 0xd0, 0x0, 0xe0, 0xd, 0x0, 0xe, 0x5,
- 0xf3, 0x4, 0xf4,
-
- /* U+0049 "I" */
- 0x36, 0xf6, 0x30, 0xe, 0x0, 0x0, 0xe0, 0x0,
- 0xe, 0x0, 0x0, 0xe0, 0x0, 0xe, 0x0, 0x0,
- 0xe0, 0x0, 0xe, 0x0, 0x0, 0xe0, 0x3, 0x6f,
- 0x63,
-
- /* U+004A "J" */
- 0x0, 0x46, 0xf5, 0x30, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0xe0, 0x0, 0x0, 0xe, 0x0, 0x0, 0x0,
- 0xe0, 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0xe0,
- 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0xd, 0x0, 0x57, 0x3, 0x90, 0x3, 0xb6,
- 0x70, 0x0,
-
- /* U+004B "K" */
- 0x4e, 0x50, 0x8c, 0x20, 0xd0, 0x7, 0x0, 0xd,
- 0x4, 0x30, 0x0, 0xd1, 0x70, 0x0, 0xd, 0x8c,
- 0x0, 0x0, 0xd4, 0xa4, 0x0, 0xd, 0x3, 0xb0,
- 0x0, 0xd0, 0xc, 0x20, 0xd, 0x0, 0x59, 0x4,
- 0xe6, 0x4, 0xf5,
-
- /* U+004C "L" */
- 0x2d, 0x80, 0x0, 0x0, 0xb3, 0x0, 0x0, 0xb,
- 0x30, 0x0, 0x0, 0xb3, 0x0, 0x0, 0xb, 0x30,
- 0x0, 0x0, 0xb3, 0x0, 0x0, 0xb, 0x30, 0x0,
- 0x0, 0xb3, 0x0, 0x1, 0xb, 0x30, 0x1, 0x53,
- 0xd8, 0x56, 0xd2,
-
- /* U+004D "M" */
- 0x7c, 0x0, 0xf, 0x62, 0xe0, 0x3, 0xe2, 0x2b,
- 0x30, 0x6c, 0x22, 0x86, 0x6, 0xc2, 0x25, 0x90,
- 0x6c, 0x22, 0x2c, 0x14, 0xc2, 0x22, 0xb5, 0xc,
- 0x22, 0x28, 0x90, 0xc2, 0x22, 0x59, 0xc, 0x27,
- 0x72, 0x63, 0xe7,
-
- /* U+004E "N" */
- 0x4f, 0x10, 0x1a, 0x50, 0xc8, 0x0, 0x50, 0x5,
- 0xd1, 0x5, 0x0, 0x57, 0x80, 0x50, 0x5, 0xd,
- 0x5, 0x0, 0x50, 0x87, 0x50, 0x5, 0x1, 0xe5,
- 0x0, 0x50, 0x8, 0xc0, 0x5, 0x0, 0x1f, 0x5,
- 0xa1, 0x0, 0x90,
-
- /* U+004F "O" */
- 0x1, 0x96, 0x81, 0x0, 0xa2, 0x0, 0xb0, 0x1c,
- 0x0, 0xb, 0x35, 0x90, 0x0, 0x87, 0x78, 0x0,
- 0x7, 0x97, 0x80, 0x0, 0x79, 0x59, 0x0, 0x7,
- 0x71, 0xb0, 0x0, 0xa3, 0xa, 0x20, 0xb, 0x0,
- 0x18, 0x57, 0x20,
-
- /* U+0050 "P" */
- 0x3e, 0x75, 0x75, 0x0, 0xc1, 0x0, 0xb2, 0xc,
- 0x10, 0x8, 0x60, 0xc1, 0x0, 0x95, 0xc, 0x10,
- 0x1c, 0x0, 0xc6, 0x57, 0x10, 0xc, 0x10, 0x0,
- 0x0, 0xc1, 0x0, 0x0, 0xc, 0x10, 0x0, 0x4,
- 0xe7, 0x0, 0x0,
-
- /* U+0051 "Q" */
- 0x2, 0x96, 0x81, 0x0, 0xc1, 0x1, 0xb0, 0x3b,
- 0x0, 0xb, 0x36, 0x90, 0x0, 0x87, 0x87, 0x0,
- 0x7, 0x88, 0x70, 0x0, 0x78, 0x78, 0x0, 0x8,
- 0x74, 0xa8, 0xa1, 0xa3, 0xd, 0x44, 0x9b, 0x0,
- 0x28, 0x7f, 0x30, 0x0, 0x0, 0x7d, 0x20,
-
- /* U+0052 "R" */
- 0x3d, 0x76, 0x95, 0x0, 0xb2, 0x0, 0xe1, 0xb,
- 0x20, 0xc, 0x20, 0xb2, 0x2, 0xc0, 0xb, 0x68,
- 0x91, 0x0, 0xb2, 0x58, 0x0, 0xb, 0x20, 0xd0,
- 0x0, 0xb2, 0xa, 0x40, 0xb, 0x20, 0x49, 0x3,
- 0xd7, 0x0, 0xe4,
-
- /* U+0053 "S" */
- 0x4, 0x67, 0xcb, 0x1, 0x80, 0x0, 0x90, 0x37,
- 0x0, 0x1, 0x1, 0xd3, 0x0, 0x0, 0x3, 0xcb,
- 0x20, 0x0, 0x0, 0x5d, 0x50, 0x0, 0x0, 0x1d,
- 0x3, 0x10, 0x0, 0x92, 0x38, 0x0, 0xa, 0x0,
- 0xfa, 0x67, 0x30,
-
- /* U+0054 "T" */
- 0x3b, 0x6f, 0x6b, 0x26, 0x0, 0xe0, 0x15, 0x10,
- 0xe, 0x0, 0x10, 0x0, 0xe0, 0x0, 0x0, 0xe,
- 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0xe, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x6, 0xf5, 0x0,
-
- /* U+0055 "U" */
- 0x5f, 0x30, 0x1a, 0x40, 0xd0, 0x0, 0x50, 0xd,
- 0x0, 0x5, 0x0, 0xd0, 0x0, 0x50, 0xd, 0x0,
- 0x5, 0x0, 0xd0, 0x0, 0x50, 0xd, 0x0, 0x5,
- 0x0, 0xd0, 0x0, 0x50, 0xc, 0x0, 0x6, 0x0,
- 0x39, 0x77, 0x10,
-
- /* U+0056 "V" */
- 0x5f, 0x30, 0x2c, 0x40, 0xd1, 0x0, 0x70, 0x9,
- 0x40, 0x15, 0x0, 0x58, 0x5, 0x10, 0x2, 0xc0,
- 0x60, 0x0, 0xd, 0x6, 0x0, 0x0, 0xa4, 0x50,
- 0x0, 0x7, 0xb1, 0x0, 0x0, 0x3d, 0x0, 0x0,
- 0x0, 0x80, 0x0,
-
- /* U+0057 "W" */
- 0x9a, 0x2e, 0x36, 0x83, 0x80, 0xb0, 0x32, 0x1a,
- 0xb, 0x25, 0x0, 0xb0, 0xd4, 0x50, 0xb, 0x1a,
- 0x65, 0x0, 0xa5, 0x58, 0x50, 0x8, 0x91, 0xb5,
- 0x0, 0x6b, 0xe, 0x20, 0x3, 0x90, 0xc0, 0x0,
- 0x16, 0x7, 0x0,
-
- /* U+0058 "X" */
- 0x2d, 0x70, 0x4c, 0x20, 0x57, 0x3, 0x30, 0x0,
- 0xc0, 0x70, 0x0, 0x8, 0x75, 0x0, 0x0, 0x1e,
- 0x0, 0x0, 0x0, 0xe3, 0x0, 0x0, 0x65, 0xa0,
- 0x0, 0x7, 0xc, 0x10, 0x5, 0x20, 0x68, 0x3,
- 0xd2, 0x5, 0xf4,
-
- /* U+0059 "Y" */
- 0x4f, 0x40, 0x3d, 0x40, 0xa3, 0x0, 0x60, 0x4,
- 0x90, 0x41, 0x0, 0xd, 0x6, 0x0, 0x0, 0x95,
- 0x50, 0x0, 0x3, 0xd0, 0x0, 0x0, 0xe, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x6, 0xf5, 0x0,
-
- /* U+005A "Z" */
- 0xb, 0x95, 0x5e, 0x21, 0x70, 0x4, 0xa0, 0x0,
- 0x0, 0xc2, 0x0, 0x0, 0x4a, 0x0, 0x0, 0xc,
- 0x20, 0x0, 0x4, 0xa0, 0x0, 0x0, 0xb2, 0x0,
- 0x0, 0x4a, 0x0, 0x1, 0xb, 0x20, 0x6, 0x24,
- 0xd5, 0x57, 0xd0,
-
- /* U+005B "[" */
- 0x39, 0x88, 0x4, 0x40, 0x0, 0x44, 0x0, 0x4,
- 0x40, 0x0, 0x44, 0x0, 0x4, 0x40, 0x0, 0x44,
- 0x0, 0x4, 0x40, 0x0, 0x44, 0x0, 0x4, 0x40,
- 0x0, 0x44, 0x0, 0x4, 0x40, 0x0, 0x44, 0x0,
- 0x3, 0x98, 0x80,
-
- /* U+005C "\\" */
- 0xa0, 0x0, 0x0, 0x64, 0x0, 0x0, 0x9, 0x0,
- 0x0, 0x9, 0x0, 0x0, 0x4, 0x50, 0x0, 0x0,
- 0xa0, 0x0, 0x0, 0x81, 0x0, 0x0, 0x27, 0x0,
- 0x0, 0xa, 0x0, 0x0, 0x6, 0x30, 0x0, 0x1,
- 0x90, 0x0, 0x0, 0x90, 0x0, 0x0, 0x32,
-
- /* U+005D "]" */
- 0x8, 0x89, 0x20, 0x0, 0x53, 0x0, 0x5, 0x30,
- 0x0, 0x53, 0x0, 0x5, 0x30, 0x0, 0x53, 0x0,
- 0x5, 0x30, 0x0, 0x53, 0x0, 0x5, 0x30, 0x0,
- 0x53, 0x0, 0x5, 0x30, 0x0, 0x53, 0x0, 0x5,
- 0x30, 0x88, 0x92,
-
- /* U+005E "^" */
- 0x8, 0xb8, 0x1, 0x30, 0x31,
-
- /* U+005F "_" */
- 0x55, 0x55, 0x55, 0x50,
-
- /* U+0060 "`" */
- 0x5c, 0x30, 0x4,
-
- /* U+0061 "a" */
- 0x5, 0x65, 0x81, 0x0, 0xd0, 0x4, 0x80, 0x0,
- 0x4, 0x79, 0x0, 0x78, 0x23, 0x90, 0x3b, 0x0,
- 0x39, 0x5, 0x90, 0x3, 0x92, 0xa, 0x76, 0x6b,
- 0x50,
-
- /* U+0062 "b" */
- 0x3, 0x0, 0x0, 0x4, 0xd0, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0x0, 0xc0, 0x0, 0x0, 0xc, 0x47,
- 0x94, 0x0, 0xd4, 0x0, 0xc0, 0xc, 0x0, 0xb,
- 0x20, 0xc0, 0x0, 0xa3, 0xc, 0x0, 0xb, 0x10,
- 0xd1, 0x0, 0xb0, 0x8, 0x66, 0x82, 0x0,
-
- /* U+0063 "c" */
- 0x0, 0x85, 0x83, 0x0, 0xa2, 0x3, 0xa0, 0xd,
- 0x0, 0x2, 0x2, 0xb0, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0x0, 0xb2, 0x0, 0x60, 0x1, 0x97, 0x73,
- 0x0,
-
- /* U+0064 "d" */
- 0x0, 0x0, 0x3, 0x0, 0x0, 0x5, 0xc0, 0x0,
- 0x0, 0xc, 0x0, 0x0, 0x0, 0xc0, 0x1, 0x97,
- 0x6c, 0x0, 0xa2, 0x0, 0xc0, 0xc, 0x0, 0xc,
- 0x2, 0xb0, 0x0, 0xc0, 0xc, 0x0, 0xc, 0x0,
- 0xb1, 0x3, 0xc0, 0x2, 0x97, 0x5c, 0x30,
-
- /* U+0065 "e" */
- 0x0, 0x86, 0x82, 0x0, 0x92, 0x1, 0xc0, 0xc,
- 0x0, 0xc, 0x11, 0xd5, 0x55, 0x91, 0xd, 0x0,
- 0x0, 0x0, 0xa2, 0x0, 0x50, 0x1, 0x97, 0x73,
- 0x0,
-
- /* U+0066 "f" */
- 0x0, 0x7, 0x58, 0x50, 0x6, 0x40, 0x24, 0x0,
- 0x83, 0x0, 0x1, 0x5b, 0x75, 0x20, 0x0, 0x83,
- 0x0, 0x0, 0x8, 0x30, 0x0, 0x0, 0x83, 0x0,
- 0x0, 0x8, 0x30, 0x0, 0x0, 0x83, 0x0, 0x0,
- 0x5c, 0x95, 0x0,
-
- /* U+0067 "g" */
- 0x1, 0x86, 0x99, 0x70, 0xa1, 0x6, 0x60, 0xb,
- 0x0, 0x47, 0x0, 0x83, 0x7, 0x30, 0x5, 0x75,
- 0x40, 0x0, 0x99, 0x64, 0x0, 0x7, 0x2, 0x5b,
- 0x2, 0x90, 0x0, 0x91, 0x7, 0x65, 0x66, 0x0,
-
- /* U+0068 "h" */
- 0x6, 0x0, 0x0, 0x3, 0xe0, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0x0, 0xc0, 0x0, 0x0, 0xc, 0x58,
- 0xa4, 0x0, 0xc4, 0x0, 0xb0, 0xc, 0x0, 0xc,
- 0x0, 0xc0, 0x0, 0xc0, 0xc, 0x0, 0xc, 0x0,
- 0xc0, 0x0, 0xc0, 0x3e, 0x50, 0x4e, 0x30,
-
- /* U+0069 "i" */
- 0x0, 0xe2, 0x0, 0x5, 0x0, 0x0, 0x20, 0x2,
- 0x5d, 0x0, 0x0, 0xc0, 0x0, 0xc, 0x0, 0x0,
- 0xc0, 0x0, 0xc, 0x0, 0x0, 0xc0, 0x2, 0x6e,
- 0x63,
-
- /* U+006A "j" */
- 0x0, 0x8, 0x80, 0x0, 0x33, 0x0, 0x1, 0x10,
- 0x5, 0xa6, 0x0, 0x5, 0x60, 0x0, 0x56, 0x0,
- 0x5, 0x60, 0x0, 0x56, 0x0, 0x5, 0x60, 0x0,
- 0x55, 0x60, 0x8, 0x29, 0x97, 0x50,
-
- /* U+006B "k" */
- 0x6, 0x0, 0x0, 0x3, 0xd0, 0x0, 0x0, 0xb,
- 0x0, 0x0, 0x0, 0xb0, 0x0, 0x0, 0xb, 0x0,
- 0xc7, 0x0, 0xb0, 0x26, 0x0, 0xb, 0x1b, 0x0,
- 0x0, 0xb8, 0xa3, 0x0, 0xb, 0x12, 0xc0, 0x0,
- 0xb0, 0x9, 0x50, 0x2d, 0x50, 0x5e, 0x30,
-
- /* U+006C "l" */
- 0x2, 0x90, 0x3, 0x5d, 0x0, 0x0, 0xc0, 0x0,
- 0xc, 0x0, 0x0, 0xc0, 0x0, 0xc, 0x0, 0x0,
- 0xc0, 0x0, 0xc, 0x0, 0x0, 0xc0, 0x0, 0xc,
- 0x0, 0x36, 0xe6, 0x30,
-
- /* U+006D "m" */
- 0x8a, 0x7a, 0x7a, 0x24, 0x90, 0xc0, 0x55, 0x47,
- 0xc, 0x5, 0x64, 0x70, 0xc0, 0x56, 0x47, 0xc,
- 0x5, 0x64, 0x70, 0xc0, 0x56, 0x8b, 0x2e, 0x39,
- 0xa0,
-
- /* U+006E "n" */
- 0x3e, 0x47, 0x94, 0x0, 0xc4, 0x0, 0xb0, 0xc,
- 0x0, 0xc, 0x0, 0xc0, 0x0, 0xc0, 0xc, 0x0,
- 0xc, 0x0, 0xc0, 0x0, 0xc0, 0x3e, 0x50, 0x4e,
- 0x30,
-
- /* U+006F "o" */
- 0x1, 0x86, 0x82, 0x0, 0xb0, 0x0, 0xb0, 0x2a,
- 0x0, 0xa, 0x24, 0x80, 0x0, 0x84, 0x3a, 0x0,
- 0xa, 0x30, 0xb0, 0x0, 0xb0, 0x2, 0x85, 0x71,
- 0x0,
-
- /* U+0070 "p" */
- 0x4e, 0x57, 0x94, 0x0, 0xc3, 0x0, 0xc0, 0xc,
- 0x0, 0x9, 0x30, 0xc0, 0x0, 0x84, 0xc, 0x0,
- 0xa, 0x30, 0xc1, 0x0, 0xc0, 0xc, 0x66, 0x92,
- 0x0, 0xc0, 0x0, 0x0, 0x3e, 0x50, 0x0, 0x0,
-
- /* U+0071 "q" */
- 0x2, 0x86, 0x68, 0x0, 0xb0, 0x2, 0xc0, 0x2a,
- 0x0, 0xc, 0x4, 0x90, 0x0, 0xc0, 0x2a, 0x0,
- 0xc, 0x0, 0xb0, 0x2, 0xc0, 0x3, 0x97, 0x5c,
- 0x0, 0x0, 0x0, 0xc0, 0x0, 0x0, 0x6e, 0x30,
-
- /* U+0072 "r" */
- 0x38, 0xc2, 0x7c, 0x30, 0xc, 0x60, 0x42, 0x0,
- 0xe0, 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0xc0,
- 0x0, 0x0, 0xc, 0x0, 0x0, 0x36, 0xe5, 0x20,
- 0x0,
-
- /* U+0073 "s" */
- 0x17, 0x6b, 0xa8, 0x10, 0x8, 0x69, 0x10, 0x0,
- 0x5c, 0xa1, 0x10, 0x4, 0xc8, 0x0, 0xa, 0xba,
- 0x66, 0x40,
-
- /* U+0074 "t" */
- 0x0, 0x24, 0x0, 0x0, 0x94, 0x0, 0x5, 0xa8,
- 0x52, 0x0, 0x74, 0x0, 0x0, 0x74, 0x0, 0x0,
- 0x74, 0x0, 0x0, 0x74, 0x0, 0x0, 0x65, 0x5,
- 0x0, 0x1a, 0x83,
-
- /* U+0075 "u" */
- 0x4d, 0x0, 0x5c, 0x0, 0xc0, 0x0, 0xc0, 0xc,
- 0x0, 0xc, 0x0, 0xc0, 0x0, 0xc0, 0xc, 0x0,
- 0xc, 0x0, 0xb0, 0x4, 0xc0, 0x4, 0xb8, 0x5c,
- 0x30,
-
- /* U+0076 "v" */
- 0x2d, 0x70, 0x3d, 0x20, 0x75, 0x1, 0x50, 0x2,
- 0xa0, 0x50, 0x0, 0xc, 0x6, 0x0, 0x0, 0x84,
- 0x50, 0x0, 0x3, 0xd1, 0x0, 0x0, 0xa, 0x0,
- 0x0,
-
- /* U+0077 "w" */
- 0x9b, 0x3e, 0x28, 0x82, 0x90, 0xb0, 0x50, 0xb,
- 0xd, 0x35, 0x0, 0xa2, 0x76, 0x50, 0x7, 0x81,
- 0xa4, 0x0, 0x4b, 0xd, 0x10, 0x0, 0x80, 0x80,
- 0x0,
-
- /* U+0078 "x" */
- 0x9, 0xd0, 0x89, 0x10, 0xc, 0x18, 0x0, 0x0,
- 0x5d, 0x30, 0x0, 0x0, 0xe1, 0x0, 0x0, 0x65,
- 0x90, 0x0, 0x16, 0xa, 0x20, 0x2c, 0x50, 0x9c,
- 0x20,
-
- /* U+0079 "y" */
- 0x2c, 0x80, 0x5c, 0x20, 0x57, 0x3, 0x40, 0x0,
- 0xb0, 0x70, 0x0, 0x9, 0x17, 0x0, 0x0, 0x48,
- 0x50, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x7, 0x0,
- 0x0, 0x1, 0x50, 0x0, 0xd, 0x90, 0x0, 0x0,
-
- /* U+007A "z" */
- 0xc, 0x65, 0xa7, 0x0, 0x70, 0x1c, 0x0, 0x0,
- 0x9, 0x40, 0x0, 0x2, 0xb0, 0x0, 0x0, 0xb2,
- 0x2, 0x0, 0x58, 0x0, 0x70, 0xe, 0x65, 0x8b,
- 0x0,
-
- /* U+007B "{" */
- 0x0, 0x26, 0x0, 0x80, 0x0, 0x70, 0x0, 0x80,
- 0x0, 0x80, 0x0, 0x80, 0x5, 0x40, 0x5, 0x40,
- 0x0, 0x80, 0x0, 0x80, 0x0, 0x80, 0x0, 0x70,
- 0x0, 0x80, 0x0, 0x27,
-
- /* U+007C "|" */
- 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x50,
-
- /* U+007D "}" */
- 0x62, 0x0, 0x7, 0x0, 0x7, 0x0, 0x7, 0x0,
- 0x7, 0x0, 0x7, 0x0, 0x4, 0x50, 0x4, 0x50,
- 0x7, 0x0, 0x7, 0x0, 0x7, 0x0, 0x7, 0x0,
- 0x7, 0x0, 0x62, 0x0,
-
- /* U+007E "~" */
- 0x5, 0x92, 0x0, 0x3, 0x11, 0xb2, 0x4, 0x0,
- 0x1, 0x97, 0x0,
-
- /* U+007F "" */
-
- /* U+3001 "、" */
- 0x0, 0x0, 0x29, 0x50, 0x0, 0xd7, 0x0, 0x4d,
- 0x0, 0x1,
-
- /* U+3002 "。" */
- 0x0, 0x0, 0x67, 0x70, 0x70, 0x70, 0x77, 0x70,
- 0x0, 0x0,
-
- /* U+3005 "々" */
- 0x0, 0x11, 0x0, 0x0, 0x0, 0x49, 0x0, 0x0,
- 0x0, 0x82, 0x0, 0x11, 0x1, 0xc7, 0x55, 0xc8,
- 0x7, 0x21, 0x0, 0xb0, 0x11, 0x0, 0x5, 0x50,
- 0x0, 0x0, 0x8, 0x0, 0x0, 0x6, 0x52, 0x0,
- 0x0, 0x2, 0xd3, 0x0, 0x0, 0x0, 0x4d, 0x0,
- 0x0, 0x0, 0x3, 0x0,
-
- /* U+300C "「" */
- 0x88, 0x86, 0x80, 0x0, 0x80, 0x0, 0x80, 0x0,
- 0x80, 0x0, 0x80, 0x0, 0x80, 0x0, 0x80, 0x0,
- 0x80, 0x0, 0x80, 0x0, 0x80, 0x0, 0x80, 0x0,
-
- /* U+300D "」" */
- 0x0, 0x8, 0x0, 0x8, 0x0, 0x8, 0x0, 0x8,
- 0x0, 0x8, 0x0, 0x8, 0x0, 0x8, 0x0, 0x8,
- 0x0, 0x8, 0x0, 0x8, 0x0, 0x8, 0x78, 0x88,
-
- /* U+3041 "ぁ" */
- 0x0, 0x33, 0x0, 0x0, 0x0, 0x55, 0x54, 0x0,
- 0x5, 0xa8, 0x30, 0x0, 0x0, 0x63, 0x95, 0x10,
- 0x0, 0xb4, 0x71, 0x91, 0x8, 0x67, 0x10, 0x46,
- 0x70, 0x58, 0x0, 0x63, 0x78, 0x78, 0x3, 0x80,
- 0x1, 0x0, 0x54, 0x0,
-
- /* U+3042 "あ" */
- 0x0, 0x4, 0x10, 0x0, 0x0, 0x0, 0x9, 0x30,
- 0x10, 0x0, 0x0, 0xa, 0x7a, 0x91, 0x0, 0x6,
- 0x7c, 0x21, 0x0, 0x0, 0x0, 0x9, 0x2c, 0x75,
- 0x0, 0x0, 0x2d, 0x6c, 0x3, 0xb1, 0x3, 0xa9,
- 0x37, 0x0, 0x48, 0x1a, 0x9, 0xa0, 0x0, 0x29,
- 0x82, 0xa, 0x50, 0x0, 0x65, 0x93, 0x89, 0x90,
- 0x2, 0xa0, 0x17, 0x20, 0x20, 0x67, 0x0, 0x0,
- 0x0, 0x14, 0x10, 0x0,
-
- /* U+3043 "ぃ" */
- 0x0, 0x0, 0x0, 0x0, 0x55, 0x0, 0x1, 0x0,
- 0x62, 0x0, 0x3, 0x50, 0x81, 0x0, 0x0, 0x82,
- 0x71, 0x10, 0x1, 0x57, 0x37, 0x60, 0x0, 0x83,
- 0x8, 0x30, 0x0, 0x0,
-
- /* U+3044 "い" */
- 0x34, 0x0, 0x0, 0x0, 0x0, 0x4a, 0x0, 0x0,
- 0x5, 0x0, 0x65, 0x0, 0x0, 0x2, 0x90, 0x82,
- 0x0, 0x0, 0x0, 0x56, 0x91, 0x1, 0x0, 0x0,
- 0x1a, 0x74, 0x14, 0x0, 0x4, 0x7b, 0x1c, 0xb1,
- 0x0, 0x0, 0x75, 0x4, 0xd0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+3046 "う" */
- 0x0, 0x32, 0x0, 0x0, 0x0, 0x4, 0xdb, 0x0,
- 0x0, 0x2, 0x42, 0x0, 0x0, 0x2, 0x78, 0x20,
- 0x3, 0x97, 0x1, 0xb0, 0x58, 0x10, 0x0, 0x92,
- 0x0, 0x0, 0x0, 0x92, 0x0, 0x0, 0x0, 0xc0,
- 0x0, 0x0, 0x3, 0x90, 0x0, 0x0, 0x1b, 0x0,
- 0x0, 0x3, 0x91, 0x0, 0x0, 0x43, 0x0, 0x0,
-
- /* U+3047 "ぇ" */
- 0x0, 0x3, 0x70, 0x0, 0x0, 0x1, 0x60, 0x0,
- 0x0, 0x16, 0xb5, 0x0, 0x5, 0x71, 0xa0, 0x0,
- 0x0, 0x8, 0x10, 0x0, 0x0, 0x78, 0x40, 0x0,
- 0x9, 0x30, 0x80, 0x0, 0x45, 0x0, 0x88, 0x91,
- 0x0, 0x0, 0x0, 0x0,
-
- /* U+3048 "え" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x78,
- 0x10, 0x0, 0x0, 0x0, 0x5a, 0x40, 0x0, 0x0,
- 0x0, 0x6, 0x30, 0x0, 0x1, 0x47, 0x78, 0x90,
- 0x0, 0x6, 0x70, 0x1a, 0x0, 0x0, 0x0, 0x0,
- 0x91, 0x0, 0x0, 0x0, 0x7, 0x40, 0x0, 0x0,
- 0x0, 0x58, 0x86, 0x0, 0x0, 0x4, 0x80, 0xa,
- 0x0, 0x0, 0x4c, 0x0, 0xb, 0x34, 0x81, 0x31,
- 0x0, 0x2, 0x66, 0x30,
-
- /* U+304A "お" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc2,
- 0x0, 0x0, 0x0, 0x0, 0xb, 0x10, 0x1, 0x68,
- 0x10, 0x0, 0xa6, 0xb2, 0x0, 0xb8, 0x5, 0x9e,
- 0x40, 0x0, 0x0, 0x0, 0x0, 0xa1, 0x89, 0x96,
- 0x0, 0x0, 0xc, 0x81, 0x0, 0x66, 0x0, 0x1a,
- 0xc0, 0x0, 0x0, 0xc0, 0x6, 0x3a, 0x2, 0x0,
- 0x39, 0x0, 0x8, 0xc1, 0x74, 0x4b, 0x20, 0x0,
- 0x1d, 0x0, 0x55, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+304B "か" */
- 0x0, 0x0, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc4, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0, 0x0,
- 0x0, 0x0, 0x3, 0x5a, 0xc9, 0xc1, 0x6, 0x0,
- 0x9, 0x5b, 0x10, 0x76, 0x1, 0xb0, 0x0, 0x29,
- 0x0, 0x74, 0x0, 0x78, 0x0, 0x92, 0x0, 0xa1,
- 0x6, 0xc9, 0x3, 0x80, 0x0, 0xb0, 0x0, 0x62,
- 0xc, 0x4, 0x49, 0x60, 0x0, 0x0, 0x14, 0x0,
- 0xea, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+304C "が" */
- 0x0, 0x0, 0x0, 0x0, 0x4, 0xa0, 0x0, 0x0,
- 0x82, 0x0, 0x76, 0x50, 0x0, 0x0, 0xb3, 0x0,
- 0x6, 0x0, 0x0, 0x1, 0xb1, 0x10, 0x20, 0x0,
- 0x17, 0x8c, 0xa6, 0xc2, 0x19, 0x10, 0x4, 0x2b,
- 0x0, 0x83, 0x2, 0xc0, 0x0, 0x47, 0x0, 0xa1,
- 0x0, 0x95, 0x0, 0xb0, 0x0, 0xb0, 0x18, 0xd6,
- 0x6, 0x60, 0x4, 0x70, 0x0, 0x81, 0x2c, 0x6,
- 0x6d, 0x20, 0x0, 0x0, 0x12, 0x0, 0xb5, 0x0,
- 0x0, 0x0,
-
- /* U+304D "き" */
- 0x0, 0x10, 0x0, 0x0, 0x1, 0xe1, 0x0, 0x0,
- 0x0, 0x48, 0x6a, 0x20, 0x17, 0x8d, 0x40, 0x11,
- 0x0, 0x2, 0xa6, 0xa1, 0x4, 0x79, 0xb7, 0x0,
- 0x0, 0x0, 0xb, 0x10, 0x5, 0x99, 0x87, 0xb0,
- 0x97, 0x0, 0x17, 0xf4, 0xc0, 0x0, 0x0, 0x10,
- 0x69, 0x0, 0x1, 0x0, 0x5, 0xcc, 0xca, 0x0,
-
- /* U+304E "ぎ" */
- 0x0, 0x0, 0x0, 0x0, 0x12, 0x0, 0x1c, 0x0,
- 0x0, 0x37, 0xb4, 0x0, 0x75, 0x2a, 0x40, 0xa1,
- 0x1, 0x36, 0xe7, 0x10, 0x0, 0x0, 0x3, 0x25,
- 0x54, 0xb2, 0x0, 0x0, 0x12, 0x6e, 0x80, 0x0,
- 0x0, 0x2, 0x42, 0x1a, 0x0, 0x0, 0x0, 0x26,
- 0x75, 0x69, 0x0, 0x0, 0x69, 0x32, 0x48, 0xe4,
- 0x0, 0xb, 0x0, 0x0, 0x1, 0x0, 0x0, 0x5a,
- 0x20, 0x26, 0x10, 0x0, 0x0, 0x4a, 0xca, 0x60,
- 0x0, 0x0,
-
- /* U+304F "く" */
- 0x0, 0x1, 0x50, 0x0, 0x6, 0xe0, 0x0, 0x1c,
- 0x20, 0x1, 0xa1, 0x0, 0x9, 0x10, 0x0, 0x71,
- 0x0, 0x0, 0x46, 0x0, 0x0, 0x3, 0x91, 0x0,
- 0x0, 0x2d, 0x20, 0x0, 0x7, 0xd0, 0x0, 0x0,
- 0xe3, 0x0, 0x0, 0x30,
-
- /* U+3050 "ぐ" */
- 0x0, 0x2, 0x20, 0x0, 0x0, 0x0, 0x8b, 0x0,
- 0x0, 0x0, 0x3c, 0x10, 0x8, 0x70, 0x1b, 0x10,
- 0xa, 0x34, 0x9, 0x0, 0x0, 0x23, 0x6, 0x0,
- 0x0, 0x0, 0x0, 0x55, 0x0, 0x0, 0x0, 0x0,
- 0x49, 0x0, 0x0, 0x0, 0x0, 0x5b, 0x0, 0x0,
- 0x0, 0x0, 0xaa, 0x0, 0x0, 0x0, 0x2, 0xf0,
- 0x0, 0x0, 0x0, 0x4, 0x0, 0x0,
-
- /* U+3051 "け" */
- 0x0, 0x0, 0x0, 0x1, 0x20, 0x0, 0x2, 0xc0,
- 0x0, 0x1, 0xe0, 0x0, 0x2, 0xa0, 0x0, 0x0,
- 0xc0, 0x10, 0x6, 0x50, 0x4, 0x88, 0xea, 0x80,
- 0xa, 0x10, 0x0, 0x0, 0xb0, 0x0, 0xb, 0x0,
- 0x0, 0x0, 0xb0, 0x0, 0xb, 0x3, 0x0, 0x0,
- 0xb0, 0x0, 0xc, 0x43, 0x0, 0x2, 0x90, 0x0,
- 0xa, 0xd0, 0x0, 0x8, 0x40, 0x0, 0x2, 0xc0,
- 0x0, 0x39, 0x0, 0x0, 0x0, 0x0, 0x4, 0x70,
- 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
-
- /* U+3052 "げ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x15, 0x70, 0x18, 0x0, 0x0,
- 0x1b, 0x6, 0x77, 0x1, 0xe0, 0x0, 0x0, 0xd0,
- 0x4, 0x0, 0x48, 0x0, 0x0, 0x2d, 0x9a, 0x0,
- 0x8, 0x30, 0x5, 0x87, 0xd1, 0x0, 0x0, 0xa0,
- 0x0, 0x0, 0xb, 0x0, 0x0, 0xb, 0x0, 0x0,
- 0x0, 0xb0, 0x0, 0x0, 0xb0, 0x30, 0x0, 0xb,
- 0x0, 0x0, 0x8, 0x93, 0x0, 0x4, 0x70, 0x0,
- 0x0, 0x3f, 0x10, 0x0, 0xb1, 0x0, 0x0, 0x0,
- 0x40, 0x0, 0x92, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x50, 0x0, 0x0, 0x0, 0x0,
-
- /* U+3053 "こ" */
- 0x0, 0x11, 0x1, 0x30, 0x0, 0x0, 0x68, 0xed,
- 0x20, 0x0, 0x0, 0x64, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10,
- 0x0, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0x0,
- 0x90, 0x0, 0x0, 0x0, 0x7, 0x95, 0x45, 0x7b,
- 0x60, 0x2, 0x67, 0x76, 0x20,
-
- /* U+3054 "ご" */
- 0x0, 0x0, 0x0, 0x0, 0x36, 0x0, 0x10, 0x0,
- 0x10, 0x56, 0x72, 0x1, 0x69, 0xcf, 0x60, 0x90,
- 0x0, 0x0, 0x37, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x70, 0x0, 0x0, 0x0,
- 0x0, 0x2, 0xa4, 0x22, 0x48, 0x90, 0x0, 0x1,
- 0x69, 0xa9, 0x61, 0x0, 0x0,
-
- /* U+3055 "さ" */
- 0x1, 0x50, 0x0, 0x0, 0x0, 0xb2, 0x0, 0x0,
- 0x0, 0x1b, 0x25, 0xb0, 0x7, 0x7b, 0xf6, 0x0,
- 0x1, 0x20, 0x49, 0x0, 0x0, 0x0, 0x9, 0x50,
- 0x19, 0x9a, 0xa9, 0xe0, 0xb1, 0x0, 0x3, 0xd2,
- 0xc0, 0x0, 0x0, 0x0, 0x4b, 0x42, 0x33, 0x0,
- 0x2, 0x7a, 0xa5, 0x0,
-
- /* U+3056 "ざ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x14, 0x90, 0x0, 0xd3, 0x0, 0x3, 0xb5,
- 0x0, 0x1, 0xb1, 0x5, 0x53, 0x0, 0x0, 0x4,
- 0xca, 0x70, 0x0, 0x0, 0x36, 0x66, 0x90, 0x0,
- 0x0, 0x0, 0x0, 0x8, 0x60, 0x0, 0x0, 0x16,
- 0x75, 0x2d, 0x10, 0x0, 0x4a, 0x33, 0x59, 0xe7,
- 0x0, 0x9, 0x20, 0x0, 0x2, 0x30, 0x0, 0x4a,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x5b, 0xbc, 0xc1,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+3057 "し" */
- 0x0, 0x0, 0x0, 0x0, 0xb6, 0x0, 0x0, 0x0,
- 0x94, 0x0, 0x0, 0x0, 0x92, 0x0, 0x0, 0x0,
- 0xa1, 0x0, 0x0, 0x0, 0xa0, 0x0, 0x0, 0x0,
- 0xa0, 0x0, 0x0, 0x0, 0xa0, 0x0, 0x0, 0x0,
- 0xa1, 0x0, 0x0, 0x33, 0x75, 0x0, 0x7, 0x60,
- 0xc, 0x99, 0xc5, 0x0, 0x0, 0x22, 0x0, 0x0,
-
- /* U+3058 "じ" */
- 0x20, 0x0, 0x0, 0x0, 0x98, 0x0, 0x6, 0x0,
- 0x85, 0x1, 0x74, 0x90, 0x83, 0x0, 0x56, 0x0,
- 0x92, 0x0, 0x0, 0x0, 0xa2, 0x0, 0x0, 0x0,
- 0xa1, 0x0, 0x0, 0x0, 0xa2, 0x0, 0x0, 0x0,
- 0x83, 0x0, 0x0, 0x34, 0x58, 0x0, 0x7, 0x70,
- 0xa, 0xba, 0xa3, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+3059 "す" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb0,
- 0x0, 0x0, 0x1, 0x13, 0x57, 0xd9, 0x9a, 0xa2,
- 0x8, 0x96, 0x30, 0xa0, 0x0, 0x0, 0x0, 0x0,
- 0x69, 0xd0, 0x0, 0x0, 0x0, 0x0, 0xa0, 0xb2,
- 0x0, 0x0, 0x0, 0x0, 0xa0, 0xc2, 0x0, 0x0,
- 0x0, 0x0, 0x8a, 0xe0, 0x0, 0x0, 0x0, 0x0,
- 0x2, 0x90, 0x0, 0x0, 0x0, 0x0, 0x1a, 0x10,
- 0x0, 0x0, 0x0, 0x2, 0x60, 0x0, 0x0, 0x0,
-
- /* U+305A "ず" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x50, 0x0,
- 0x0, 0x0, 0xe1, 0x0, 0x85, 0x80, 0x0, 0x0,
- 0x0, 0xb0, 0x0, 0x6, 0x0, 0x0, 0x2, 0x47,
- 0xd9, 0x9a, 0xa1, 0x0, 0x8, 0xa7, 0x41, 0xa0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x68, 0xd0, 0x0,
- 0x0, 0x0, 0x0, 0x1, 0x90, 0x93, 0x0, 0x0,
- 0x0, 0x0, 0x1, 0x90, 0xa4, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x9a, 0xf1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2, 0xa0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1b, 0x10, 0x0, 0x0, 0x0, 0x0, 0x2, 0x70,
- 0x0, 0x0, 0x0, 0x0,
-
- /* U+305B "せ" */
- 0x0, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0x91,
- 0x0, 0xd1, 0x0, 0x0, 0x9, 0x20, 0xb, 0x0,
- 0x0, 0x0, 0x93, 0x57, 0xda, 0xb6, 0x4a, 0x9c,
- 0x73, 0xa, 0x0, 0x0, 0x0, 0x91, 0x0, 0xb0,
- 0x0, 0x0, 0x8, 0x21, 0xb9, 0x0, 0x0, 0x0,
- 0x73, 0x2, 0x0, 0x0, 0x0, 0x3, 0xa0, 0x0,
- 0x0, 0x0, 0x0, 0x5, 0xab, 0xbb, 0x30,
-
- /* U+305C "ぜ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0,
- 0x0, 0x0, 0x16, 0x7, 0x4a, 0x0, 0x3, 0x90,
- 0x0, 0xe0, 0x37, 0x0, 0x0, 0xb, 0x0, 0xb,
- 0x0, 0x0, 0x0, 0x0, 0xb4, 0x69, 0xda, 0xa2,
- 0x0, 0x9a, 0x9c, 0x52, 0xa, 0x0, 0x0, 0x0,
- 0x0, 0xa0, 0x2, 0x90, 0x0, 0x0, 0x0, 0xa,
- 0x2, 0xe4, 0x0, 0x0, 0x0, 0x0, 0xb0, 0x1,
- 0x0, 0x0, 0x0, 0x0, 0xa, 0x50, 0x0, 0x20,
- 0x0, 0x0, 0x0, 0x8, 0xbc, 0xca, 0x0, 0x0,
-
- /* U+305D "そ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x47,
- 0xc4, 0x0, 0x0, 0x8a, 0x42, 0xc4, 0x0, 0x0,
- 0x0, 0x39, 0x10, 0x0, 0x0, 0x6, 0x60, 0x2,
- 0x30, 0x3, 0x85, 0x79, 0xc9, 0x70, 0x7e, 0x84,
- 0x48, 0x0, 0x0, 0x0, 0x1, 0x90, 0x0, 0x0,
- 0x0, 0x6, 0x30, 0x0, 0x0, 0x0, 0x5, 0x50,
- 0x0, 0x0, 0x0, 0x0, 0xc7, 0x41, 0x0, 0x0,
- 0x0, 0x7, 0xa4, 0x0,
-
- /* U+305E "ぞ" */
- 0x0, 0x0, 0x0, 0x30, 0x2, 0x40, 0x0, 0x23,
- 0x67, 0xe6, 0x36, 0x66, 0x0, 0x86, 0x18, 0x70,
- 0x8, 0x30, 0x0, 0x1, 0x93, 0x0, 0x0, 0x0,
- 0x0, 0x28, 0x0, 0x25, 0x71, 0x0, 0x6, 0x97,
- 0x7c, 0xa5, 0x41, 0x0, 0x6a, 0x40, 0x75, 0x0,
- 0x0, 0x0, 0x0, 0x4, 0x70, 0x0, 0x0, 0x0,
- 0x0, 0x8, 0x20, 0x0, 0x0, 0x0, 0x0, 0x5,
- 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9c, 0x93,
- 0x0, 0x0, 0x0, 0x0, 0x2, 0x61, 0x0, 0x0,
-
- /* U+305F "た" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3b, 0x0,
- 0x0, 0x0, 0x0, 0x48, 0x14, 0x0, 0x0, 0x24,
- 0x9c, 0xa3, 0x0, 0x10, 0x14, 0xb1, 0x2, 0x77,
- 0xf5, 0x0, 0xb0, 0x0, 0x17, 0x30, 0x2, 0x90,
- 0x0, 0x0, 0x0, 0x7, 0x30, 0x0, 0x0, 0x0,
- 0xb, 0x0, 0x60, 0x0, 0x0, 0x67, 0x0, 0x80,
- 0x0, 0x0, 0x90, 0x0, 0x39, 0xab, 0xc5, 0x0,
- 0x0, 0x0, 0x0, 0x0,
-
- /* U+3060 "だ" */
- 0x0, 0x0, 0x0, 0x0, 0x2, 0x10, 0x0, 0x6,
- 0x70, 0x0, 0x43, 0xb2, 0x0, 0x7, 0x53, 0x20,
- 0xb, 0x20, 0x3, 0x3b, 0xb7, 0x0, 0x1, 0x0,
- 0x2, 0x5c, 0x0, 0x47, 0x8e, 0x10, 0x0, 0xa,
- 0x0, 0x2, 0x73, 0x0, 0x0, 0x56, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x91, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb0, 0x5, 0x0, 0x0, 0x0, 0x7, 0x50,
- 0x19, 0x0, 0x0, 0x0, 0xa, 0x0, 0x4, 0xaa,
- 0xbc, 0x10,
-
- /* U+3061 "ち" */
- 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0xc, 0x30,
- 0x0, 0x0, 0x0, 0xb, 0x3, 0x71, 0x0, 0x28,
- 0xad, 0x86, 0x30, 0x0, 0x0, 0x54, 0x0, 0x0,
- 0x0, 0x0, 0xa0, 0x48, 0x99, 0x20, 0x1, 0xc9,
- 0x40, 0x2, 0xd0, 0x2, 0xd1, 0x0, 0x0, 0xb2,
- 0x0, 0x0, 0x0, 0x1, 0xd0, 0x0, 0x0, 0x0,
- 0x3b, 0x30, 0x0, 0x0, 0x46, 0x40, 0x0,
-
- /* U+3063 "っ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x78, 0x78,
- 0x80, 0xb, 0x71, 0x0, 0x7, 0x40, 0x0, 0x0,
- 0x0, 0x47, 0x0, 0x0, 0x0, 0x8, 0x30, 0x0,
- 0x0, 0x7, 0x70, 0x0, 0x4, 0x67, 0x20, 0x0,
-
- /* U+3064 "つ" */
- 0x0, 0x0, 0x17, 0x99, 0x81, 0x0, 0x36, 0xa8,
- 0x20, 0x1, 0xb3, 0xb, 0x70, 0x0, 0x0, 0x3,
- 0xb0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x0, 0x3, 0xa0, 0x0, 0x0, 0x0, 0x0,
- 0xb3, 0x0, 0x0, 0x0, 0x2, 0xb5, 0x0, 0x0,
- 0x3, 0x68, 0x81, 0x0, 0x0, 0x0, 0x20, 0x0,
- 0x0, 0x0,
-
- /* U+3065 "づ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x72, 0x0, 0x0,
- 0x0, 0x0, 0x8, 0x39, 0x0, 0x0, 0x37, 0x89,
- 0x61, 0x60, 0x14, 0x8a, 0x50, 0x0, 0x4a, 0x0,
- 0x2a, 0x30, 0x0, 0x0, 0xb, 0x20, 0x0, 0x0,
- 0x0, 0x0, 0x9, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x68, 0x0,
- 0x0, 0x0, 0x0, 0x18, 0x80, 0x0, 0x0, 0x3,
- 0x68, 0x72, 0x0, 0x0,
-
- /* U+3066 "て" */
- 0x0, 0x0, 0x0, 0x36, 0x82, 0x35, 0x78, 0x87,
- 0xbc, 0x83, 0x46, 0x30, 0x9, 0x30, 0x0, 0x0,
- 0x0, 0x92, 0x0, 0x0, 0x0, 0x4, 0x60, 0x0,
- 0x0, 0x0, 0x9, 0x10, 0x0, 0x0, 0x0, 0xa,
- 0x0, 0x0, 0x0, 0x0, 0x7, 0x40, 0x0, 0x0,
- 0x0, 0x1, 0xc3, 0x0, 0x0, 0x0, 0x0, 0x1a,
- 0xd7, 0x0,
-
- /* U+3067 "で" */
- 0x0, 0x0, 0x0, 0x26, 0x89, 0x10, 0x3, 0x47,
- 0x98, 0x7c, 0x85, 0x10, 0x8, 0x73, 0x2, 0xb2,
- 0x2, 0x0, 0x0, 0x0, 0x1b, 0x10, 0x33, 0xa0,
- 0x0, 0x0, 0x93, 0x0, 0x49, 0x40, 0x0, 0x0,
- 0xc0, 0x0, 0x3, 0x0, 0x0, 0x1, 0xb0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x6a, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x5, 0xde, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+3068 "と" */
- 0x0, 0x20, 0x0, 0x0, 0x0, 0xf0, 0x0, 0x0,
- 0x0, 0xc0, 0x0, 0x0, 0x0, 0xb0, 0x0, 0x40,
- 0x0, 0x92, 0x3b, 0xb0, 0x0, 0x5d, 0x71, 0x0,
- 0x9, 0x80, 0x0, 0x0, 0x66, 0x0, 0x0, 0x0,
- 0xa0, 0x0, 0x0, 0x0, 0x77, 0x0, 0x0, 0x20,
- 0x7, 0xbc, 0xcd, 0xc3, 0x0, 0x0, 0x0, 0x0,
-
- /* U+3069 "ど" */
- 0x0, 0x10, 0x0, 0x0, 0x20, 0x0, 0x8, 0x70,
- 0x0, 0x43, 0xb0, 0x0, 0x65, 0x0, 0x3, 0x94,
- 0x0, 0x5, 0x50, 0x3, 0x11, 0x0, 0x0, 0x28,
- 0x19, 0xd4, 0x0, 0x0, 0x1, 0xda, 0x30, 0x0,
- 0x0, 0x3, 0xb3, 0x0, 0x0, 0x0, 0x0, 0xb0,
- 0x0, 0x0, 0x0, 0x0, 0x38, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0xc1, 0x0, 0x0, 0x10, 0x0, 0x3,
- 0xab, 0xbc, 0xd9, 0x0, 0x0,
-
- /* U+306A "な" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5,
- 0x80, 0x0, 0x0, 0x0, 0x0, 0x82, 0x41, 0x0,
- 0x0, 0x6, 0x8c, 0x96, 0x5, 0x30, 0x0, 0x8,
- 0x10, 0x0, 0x2b, 0x60, 0x2, 0x80, 0x0, 0x96,
- 0x56, 0x1, 0xb0, 0x0, 0x9, 0x0, 0x0, 0xb4,
- 0x0, 0x1, 0x90, 0x0, 0x3, 0x0, 0x67, 0x59,
- 0x0, 0x0, 0x0, 0x92, 0x4, 0xe6, 0x0, 0x0,
- 0x9, 0x42, 0x94, 0xa5, 0x0, 0x0, 0x5, 0x73,
- 0x0, 0x20,
-
- /* U+306B "に" */
- 0x26, 0x0, 0x24, 0x6a, 0x50, 0x2c, 0x0, 0x23,
- 0x78, 0x20, 0x65, 0x0, 0x1, 0x30, 0x0, 0xa0,
- 0x0, 0x0, 0x0, 0x0, 0xa0, 0x0, 0x0, 0x0,
- 0x0, 0xb0, 0x13, 0x0, 0x0, 0x0, 0xb6, 0x7,
- 0x0, 0x0, 0x0, 0x7d, 0x6, 0x50, 0x0, 0x30,
- 0x8, 0x0, 0x6a, 0xbc, 0x90,
-
- /* U+306C "ぬ" */
- 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xd, 0x0, 0x0, 0x0, 0xa, 0x20, 0x3d, 0x88,
- 0x70, 0x0, 0x6, 0x48, 0x87, 0x0, 0x39, 0x0,
- 0x3, 0xc2, 0x72, 0x0, 0xa, 0x10, 0x8, 0xa0,
- 0x90, 0x0, 0x8, 0x30, 0x18, 0x69, 0x40, 0x0,
- 0xa, 0x0, 0x53, 0xe, 0x32, 0xa9, 0xac, 0x0,
- 0x46, 0x92, 0x56, 0x41, 0xa8, 0xb0, 0x6, 0x10,
- 0x0, 0x78, 0x20, 0x40,
-
- /* U+306D "ね" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3a,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x9, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1b, 0x5, 0x98, 0xa5, 0x0,
- 0x29, 0x99, 0x84, 0x0, 0xa, 0x10, 0x1, 0x8d,
- 0x10, 0x0, 0x7, 0x40, 0x0, 0xc8, 0x0, 0x0,
- 0x6, 0x50, 0x7, 0x48, 0x0, 0x1, 0x9, 0x20,
- 0x2b, 0x8, 0x3, 0xb8, 0xae, 0x30, 0x84, 0x99,
- 0x7, 0x40, 0x88, 0xa7, 0x0, 0x76, 0x1, 0x9a,
- 0x40, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+306E "の" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x28,
- 0xa9, 0x99, 0x10, 0x0, 0x69, 0x16, 0x0, 0x2c,
- 0x10, 0x48, 0x0, 0x80, 0x0, 0x58, 0xb, 0x0,
- 0x9, 0x0, 0x1, 0xc1, 0x90, 0x0, 0x90, 0x0,
- 0xc, 0x36, 0x0, 0x19, 0x0, 0x0, 0xb2, 0x70,
- 0x8, 0x30, 0x0, 0x57, 0xb, 0x15, 0x80, 0x0,
- 0x2b, 0x0, 0x3a, 0x70, 0x0, 0x69, 0x10, 0x0,
- 0x0, 0x2, 0x52, 0x0, 0x0,
-
- /* U+306F "は" */
- 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x24, 0x0,
- 0x1, 0xe0, 0x0, 0x4, 0xa0, 0x0, 0xb, 0x0,
- 0x0, 0x64, 0x0, 0x1, 0xc8, 0x90, 0xa, 0x0,
- 0x16, 0x7c, 0x10, 0x0, 0xa0, 0x0, 0x0, 0xa0,
- 0x0, 0x18, 0x0, 0x0, 0xa, 0x0, 0x3, 0x73,
- 0x0, 0x0, 0xa0, 0x0, 0x3b, 0x51, 0xa8, 0x9d,
- 0x30, 0x0, 0xe3, 0x55, 0x2, 0xaa, 0x70, 0x3,
- 0x1, 0xb9, 0xa1, 0x4, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+3070 "ば" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x60, 0x5, 0x0,
- 0x0, 0x92, 0x7, 0x49, 0xd, 0x0, 0x0, 0xa1,
- 0x2, 0x70, 0x19, 0x0, 0x0, 0x94, 0x92, 0x0,
- 0x45, 0x0, 0x68, 0xd5, 0x10, 0x0, 0x72, 0x0,
- 0x0, 0x90, 0x0, 0x0, 0x90, 0x0, 0x0, 0x90,
- 0x0, 0x0, 0x93, 0x0, 0x0, 0x90, 0x0, 0x0,
- 0xa7, 0x5, 0x88, 0xd2, 0x0, 0x0, 0x97, 0xb,
- 0x0, 0xaa, 0x70, 0x0, 0x33, 0x9, 0x9a, 0x50,
- 0x80, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
-
- /* U+3071 "ぱ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x45, 0x0, 0x5,
- 0x0, 0x0, 0xa1, 0x6, 0x42, 0x0, 0xd0, 0x0,
- 0xa, 0x0, 0x66, 0x0, 0x28, 0x0, 0x0, 0xa5,
- 0x92, 0x0, 0x5, 0x40, 0x6, 0x8c, 0x40, 0x0,
- 0x0, 0x80, 0x0, 0x0, 0x90, 0x0, 0x0, 0x9,
- 0x0, 0x0, 0x9, 0x0, 0x0, 0x0, 0x93, 0x0,
- 0x0, 0x90, 0x0, 0x0, 0xa, 0x70, 0x78, 0x8d,
- 0x30, 0x0, 0x0, 0x96, 0xa, 0x0, 0xb9, 0x80,
- 0x0, 0x2, 0x20, 0x89, 0xa4, 0x5, 0x0, 0x0,
-
- /* U+3072 "ひ" */
- 0x0, 0x4, 0x60, 0x1, 0x20, 0x0, 0x1b, 0x99,
- 0xb0, 0x6, 0xd0, 0x0, 0x0, 0x2a, 0x0, 0x3,
- 0xd3, 0x0, 0x0, 0xa1, 0x0, 0x2, 0x89, 0x0,
- 0x3, 0x70, 0x0, 0x3, 0x7a, 0x50, 0x8, 0x20,
- 0x0, 0x6, 0x51, 0xa0, 0xa, 0x0, 0x0, 0xa,
- 0x10, 0x0, 0x8, 0x30, 0x0, 0x2a, 0x0, 0x0,
- 0x2, 0xa0, 0x1, 0xc2, 0x0, 0x0, 0x0, 0x5b,
- 0xaa, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+3073 "び" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x60, 0x0, 0x17,
- 0x30, 0x2, 0x8, 0x55, 0x5b, 0x7d, 0x60, 0xc,
- 0x61, 0x60, 0x0, 0x76, 0x0, 0xa, 0x90, 0x0,
- 0x2, 0xa0, 0x0, 0xa, 0x83, 0x0, 0x9, 0x20,
- 0x0, 0xa, 0x1c, 0x0, 0xb, 0x0, 0x0, 0xb,
- 0x5, 0x70, 0xa, 0x0, 0x0, 0x1a, 0x0, 0x0,
- 0xb, 0x0, 0x0, 0x84, 0x0, 0x0, 0x9, 0x30,
- 0x5, 0xa0, 0x0, 0x0, 0x1, 0xbb, 0xb8, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+3074 "ぴ" */
- 0x0, 0x0, 0x0, 0x0, 0x1, 0x50, 0x0, 0x16,
- 0x30, 0x2, 0x5, 0x5, 0x4b, 0x8c, 0x70, 0xa,
- 0x72, 0x51, 0x0, 0x67, 0x0, 0x8, 0xa0, 0x0,
- 0x1, 0xa0, 0x0, 0x7, 0x94, 0x0, 0x8, 0x30,
- 0x0, 0x8, 0x2c, 0x10, 0xb, 0x0, 0x0, 0xb,
- 0x4, 0x70, 0xb, 0x0, 0x0, 0xb, 0x0, 0x0,
- 0xb, 0x0, 0x0, 0x67, 0x0, 0x0, 0x9, 0x40,
- 0x3, 0xc0, 0x0, 0x0, 0x1, 0xba, 0xba, 0x10,
- 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
-
- /* U+3075 "ふ" */
- 0x0, 0x2, 0x20, 0x0, 0x0, 0x0, 0x0, 0x94,
- 0x0, 0x0, 0x0, 0x0, 0x2f, 0x30, 0x0, 0x0,
- 0x1, 0xa2, 0x0, 0x0, 0x0, 0x4, 0x40, 0x0,
- 0x0, 0x0, 0x0, 0x90, 0x0, 0x0, 0x0, 0x0,
- 0x46, 0x3, 0x70, 0x21, 0x60, 0xb, 0x0, 0x78,
- 0xba, 0x12, 0xb, 0x0, 0xa, 0x30, 0x5, 0x95,
- 0x0, 0x0,
-
- /* U+3076 "ぶ" */
- 0x0, 0x0, 0x20, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x9, 0x30, 0x22, 0xa1, 0x0, 0x0, 0x5, 0xf0,
- 0xb, 0x30, 0x0, 0x0, 0x57, 0x0, 0x1, 0x0,
- 0x0, 0x0, 0x81, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0x50,
- 0x53, 0x0, 0x10, 0x34, 0x0, 0xb0, 0xb, 0x40,
- 0x3c, 0x70, 0x20, 0xb0, 0x2, 0x90, 0x4, 0x0,
- 0x38, 0x30, 0x0, 0x0,
-
- /* U+3077 "ぷ" */
- 0x0, 0x0, 0x30, 0x0, 0x4, 0x10, 0x0, 0x0,
- 0xa3, 0x2, 0x26, 0x0, 0x0, 0x7, 0xf0, 0x5,
- 0x40, 0x0, 0x7, 0x60, 0x0, 0x0, 0x0, 0x0,
- 0x80, 0x0, 0x0, 0x0, 0x0, 0x2, 0x80, 0x0,
- 0x0, 0x0, 0x0, 0x7, 0x40, 0x64, 0x1, 0x3,
- 0x50, 0xa, 0x0, 0xb4, 0x4c, 0x62, 0x0, 0xb0,
- 0x3, 0x71, 0x40, 0x8, 0x93, 0x0, 0x0,
-
- /* U+3078 "へ" */
- 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x8,
- 0x69, 0x0, 0x0, 0x0, 0x0, 0x85, 0x2, 0x80,
- 0x0, 0x0, 0x1a, 0x80, 0x0, 0x57, 0x0, 0x0,
- 0x13, 0x0, 0x0, 0x8, 0x50, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa8, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x8, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+3079 "べ" */
- 0x0, 0x0, 0x0, 0x0, 0x6, 0x10, 0x0, 0x0,
- 0x20, 0x1, 0x94, 0x80, 0x0, 0x8, 0x69, 0x0,
- 0x25, 0x0, 0x0, 0x83, 0x2, 0x80, 0x0, 0x0,
- 0x19, 0x60, 0x0, 0x56, 0x0, 0x0, 0x15, 0x0,
- 0x0, 0x8, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xa9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0xd0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+307A "ぺ" */
- 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0,
- 0x20, 0x0, 0x52, 0x40, 0x0, 0x7, 0x69, 0x0,
- 0x35, 0x10, 0x0, 0x75, 0x2, 0x90, 0x0, 0x0,
- 0x19, 0x70, 0x0, 0x56, 0x0, 0x0, 0x14, 0x0,
- 0x0, 0x8, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xa6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0xc0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+307B "ほ" */
- 0x3, 0x0, 0x0, 0x1, 0x10, 0xe, 0x0, 0x58,
- 0xc8, 0x40, 0xa, 0x0, 0x0, 0xc0, 0x0, 0x46,
- 0x0, 0x0, 0xa0, 0x30, 0x72, 0x0, 0x68, 0xda,
- 0x70, 0x90, 0x0, 0x0, 0x90, 0x0, 0x91, 0x0,
- 0x0, 0x90, 0x0, 0xa6, 0x0, 0x20, 0x90, 0x0,
- 0x98, 0x1a, 0x68, 0xe4, 0x0, 0x34, 0x45, 0x3,
- 0x98, 0x80, 0x0, 0xa, 0xbb, 0x10, 0x30,
-
- /* U+307C "ぼ" */
- 0x1, 0x0, 0x0, 0x1, 0x20, 0x0, 0x0, 0xc0,
- 0x5, 0x8c, 0x84, 0x4, 0x0, 0xa, 0x0, 0x0,
- 0xc0, 0x6, 0x3a, 0x3, 0x60, 0x0, 0xa, 0x0,
- 0x28, 0x0, 0x63, 0x0, 0x11, 0xb7, 0x92, 0x0,
- 0x7, 0x10, 0x3, 0x6c, 0x30, 0x0, 0x0, 0x91,
- 0x0, 0x0, 0xa0, 0x0, 0x0, 0x9, 0x60, 0x0,
- 0xa, 0x0, 0x0, 0x0, 0x7a, 0x7, 0x77, 0xd2,
- 0x0, 0x0, 0x2, 0x72, 0x60, 0xb, 0x98, 0x0,
- 0x0, 0x0, 0x9, 0x89, 0x40, 0x50, 0x0, 0x0,
-
- /* U+307D "ぽ" */
- 0x1, 0x0, 0x0, 0x1, 0x20, 0x0, 0xc, 0x0,
- 0x58, 0xc8, 0x42, 0x83, 0xa, 0x0, 0x0, 0xc0,
- 0x4, 0x6, 0x36, 0x0, 0x0, 0xa0, 0x0, 0x40,
- 0x63, 0x0, 0x11, 0xb7, 0x92, 0x0, 0x71, 0x0,
- 0x36, 0xc3, 0x0, 0x0, 0x90, 0x0, 0x0, 0xa0,
- 0x0, 0x0, 0x96, 0x0, 0x0, 0xa0, 0x0, 0x0,
- 0x7a, 0x7, 0x77, 0xd2, 0x0, 0x0, 0x28, 0x26,
- 0x0, 0xba, 0x70, 0x0, 0x0, 0x9, 0x89, 0x40,
- 0x60, 0x0,
-
- /* U+307E "ま" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xb0, 0x0,
- 0x0, 0x0, 0xb0, 0x21, 0x2, 0x67, 0xda, 0x81,
- 0x0, 0x1, 0xa0, 0x0, 0x0, 0x0, 0xb5, 0x80,
- 0x2, 0x79, 0xd4, 0x0, 0x0, 0x0, 0xa0, 0x0,
- 0x7, 0x88, 0xb0, 0x0, 0x82, 0x3, 0xcb, 0x20,
- 0x67, 0x3b, 0x22, 0xd3, 0x4, 0x62, 0x0, 0x12,
-
- /* U+307F "み" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x46,
- 0x8d, 0x50, 0x0, 0x0, 0x3, 0x20, 0xc1, 0x0,
- 0x0, 0x0, 0x0, 0x56, 0x0, 0x0, 0x0, 0x0,
- 0xb, 0x0, 0x43, 0x0, 0x2, 0x6a, 0x92, 0x7,
- 0x60, 0x7, 0x63, 0xa2, 0x7a, 0xc0, 0x3, 0x70,
- 0xa1, 0x0, 0x4c, 0xb0, 0x53, 0x84, 0x0, 0x1a,
- 0x5, 0x61, 0x84, 0x0, 0x19, 0x10, 0x0, 0x0,
- 0x0, 0x15, 0x0, 0x0, 0x0,
-
- /* U+3080 "む" */
- 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd0,
- 0x0, 0x0, 0x0, 0x0, 0x1b, 0x78, 0x0, 0x71,
- 0x0, 0x37, 0xc2, 0x0, 0x1, 0xc0, 0x0, 0x3a,
- 0x0, 0x0, 0x6, 0x10, 0x80, 0xc0, 0x0, 0x0,
- 0x0, 0x26, 0x1d, 0x0, 0x0, 0x0, 0x1, 0xcd,
- 0x80, 0x0, 0x5, 0x0, 0x0, 0x82, 0x0, 0x0,
- 0x57, 0x0, 0x9, 0x40, 0x2, 0x6c, 0x50, 0x0,
- 0x6, 0x99, 0x84, 0x0, 0x0,
-
- /* U+3081 "め" */
- 0x0, 0x0, 0x0, 0x71, 0x0, 0x0, 0x1d, 0x0,
- 0xb, 0x10, 0x0, 0x0, 0xa1, 0x28, 0xd7, 0x30,
- 0x0, 0x5, 0xb6, 0x38, 0x18, 0x80, 0x0, 0x99,
- 0x7, 0x20, 0x9, 0x30, 0x73, 0x82, 0x90, 0x0,
- 0x56, 0xa, 0x1, 0xd2, 0x0, 0x7, 0x40, 0x90,
- 0x5a, 0x60, 0x0, 0xb0, 0xa, 0xa6, 0x0, 0x1,
- 0x92, 0x0, 0x0, 0x0, 0x15, 0x60, 0x0, 0x0,
- 0x0, 0x1, 0x0, 0x0, 0x0,
-
- /* U+3082 "も" */
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x1e, 0x0, 0x0,
- 0x0, 0x1a, 0x0, 0x0, 0x3, 0x46, 0x0, 0x0,
- 0x3, 0xca, 0x80, 0x0, 0x0, 0xa0, 0x0, 0x0,
- 0x20, 0xa0, 0x0, 0x20, 0x29, 0xd9, 0x80, 0x24,
- 0x1, 0x90, 0x0, 0x25, 0x0, 0xa0, 0x0, 0x63,
- 0x0, 0xa4, 0x3, 0xa0, 0x0, 0x7, 0x97, 0x0,
-
- /* U+3083 "ゃ" */
- 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x30, 0x38,
- 0x0, 0x0, 0x0, 0xa0, 0x1a, 0x87, 0x10, 0x0,
- 0x87, 0x94, 0x2, 0xc0, 0x17, 0xa9, 0x3, 0x0,
- 0xc0, 0x13, 0x9, 0x12, 0x89, 0x30, 0x0, 0x2,
- 0x90, 0x0, 0x0, 0x0, 0x0, 0xb0, 0x0, 0x0,
- 0x0, 0x0, 0x40, 0x0, 0x0,
-
- /* U+3084 "や" */
- 0x0, 0x0, 0x2, 0x60, 0x0, 0x0, 0x0, 0xa3,
- 0x3, 0xc3, 0x0, 0x0, 0x0, 0x74, 0x3, 0xb9,
- 0x99, 0xa0, 0x0, 0xc, 0xa6, 0x0, 0x0, 0x74,
- 0x3, 0xab, 0x40, 0x10, 0x0, 0x93, 0x49, 0x10,
- 0xb0, 0x37, 0x57, 0xa0, 0x0, 0x0, 0x84, 0x0,
- 0x32, 0x0, 0x0, 0x0, 0x2b, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x7, 0x50, 0x0, 0x0, 0x0, 0x0, 0x1, 0x10,
- 0x0, 0x0,
-
- /* U+3085 "ゅ" */
- 0x0, 0x3, 0x60, 0x0, 0x65, 0x3, 0xd8, 0x40,
- 0x91, 0x85, 0x72, 0x84, 0x95, 0x50, 0x72, 0x29,
- 0xaa, 0x30, 0x90, 0x19, 0x97, 0x17, 0x90, 0x84,
- 0x22, 0x7, 0xb9, 0x50, 0x0, 0x45, 0x0, 0x0,
-
- /* U+3086 "ゆ" */
- 0x0, 0x0, 0x49, 0x10, 0x0, 0x2, 0x30, 0x0,
- 0x49, 0x10, 0x0, 0x39, 0x2, 0xa8, 0xc8, 0x90,
- 0x6, 0x52, 0xa1, 0xa, 0x3, 0x90, 0x91, 0xa0,
- 0x0, 0xa0, 0xc, 0xa, 0x55, 0x30, 0xa, 0x0,
- 0xc0, 0xba, 0x6, 0x3, 0x70, 0xb, 0x9, 0xa0,
- 0x18, 0x83, 0x9, 0x50, 0x26, 0x0, 0x4e, 0x9a,
- 0x40, 0x0, 0x0, 0x2a, 0x20, 0x0, 0x0, 0x0,
- 0x14, 0x0, 0x0, 0x0, 0x0,
-
- /* U+3087 "ょ" */
- 0x0, 0xa, 0x20, 0x0, 0x0, 0xb3, 0x31, 0x0,
- 0xa, 0x66, 0x10, 0x0, 0xb0, 0x0, 0x0, 0xb,
- 0x0, 0x0, 0x67, 0xe9, 0x30, 0x37, 0x1c, 0x1a,
- 0x0, 0xce, 0x40, 0x0,
-
- /* U+3088 "よ" */
- 0x0, 0xa, 0x20, 0x0, 0x0, 0xa, 0x20, 0x0,
- 0x0, 0xa, 0x8a, 0x80, 0x0, 0xa, 0x0, 0x0,
- 0x0, 0xa, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0,
- 0x39, 0x9d, 0x81, 0x0, 0xa0, 0xa, 0x3c, 0x10,
- 0x7a, 0xa3, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+3089 "ら" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x10, 0x0,
- 0x0, 0x3, 0xc6, 0x0, 0x2, 0x93, 0x58, 0x0,
- 0x9, 0x0, 0x0, 0x0, 0x18, 0x0, 0x21, 0x0,
- 0x57, 0x98, 0x68, 0xb1, 0xac, 0x10, 0x0, 0x39,
- 0x40, 0x0, 0x0, 0x2a, 0x0, 0x0, 0x0, 0x94,
- 0x0, 0x13, 0x79, 0x50, 0x1, 0x33, 0x10, 0x0,
-
- /* U+308A "り" */
- 0x0, 0x0, 0x0, 0x7, 0x60, 0x68, 0x10, 0x83,
- 0x93, 0x39, 0xa, 0x66, 0x0, 0xc0, 0xab, 0x0,
- 0xb, 0xc, 0x70, 0x0, 0xb0, 0xd2, 0x0, 0xb,
- 0x5, 0x0, 0x3, 0x70, 0x0, 0x0, 0x91, 0x0,
- 0x0, 0x47, 0x0, 0x0, 0x27, 0x0, 0x0, 0x14,
- 0x0, 0x0,
-
- /* U+308B "る" */
- 0x0, 0x0, 0x5a, 0x20, 0x0, 0x7a, 0x83, 0xb5,
- 0x0, 0x0, 0x0, 0x85, 0x0, 0x0, 0x0, 0x75,
- 0x0, 0x0, 0x0, 0x66, 0x23, 0x10, 0x0, 0x6e,
- 0x85, 0x5a, 0x70, 0x9b, 0x10, 0x0, 0xc, 0x7,
- 0x3, 0x40, 0x0, 0xb1, 0x2, 0xa4, 0x80, 0x2b,
- 0x0, 0xb, 0x46, 0x9b, 0x10, 0x0, 0x15, 0x63,
- 0x0, 0x0,
-
- /* U+308C "れ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2b,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x46,
- 0x0, 0x0, 0x0, 0xc, 0x29, 0x66, 0x50, 0x0,
- 0x18, 0x8d, 0x91, 0x4, 0x60, 0x0, 0x0, 0x6c,
- 0x0, 0x6, 0x40, 0x0, 0x0, 0xc9, 0x0, 0x8,
- 0x10, 0x0, 0x5, 0x79, 0x0, 0xa, 0x0, 0x0,
- 0xc, 0x9, 0x0, 0x9, 0x0, 0x12, 0x66, 0x9a,
- 0x0, 0x9, 0x35, 0x70, 0x10, 0x68, 0x0, 0x1,
- 0x63, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+308D "ろ" */
- 0x0, 0x0, 0x36, 0x90, 0x0, 0x0, 0x89, 0x43,
- 0xd1, 0x0, 0x0, 0x0, 0x1a, 0x0, 0x0, 0x0,
- 0x1, 0x90, 0x0, 0x0, 0x0, 0x1a, 0x57, 0x74,
- 0x0, 0x2, 0xda, 0x40, 0x15, 0xa0, 0x2d, 0x40,
- 0x0, 0x0, 0x92, 0x11, 0x0, 0x0, 0x0, 0xa1,
- 0x0, 0x0, 0x0, 0x3, 0xa0, 0x0, 0x2, 0x56,
- 0x88, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+308F "わ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc,
- 0x10, 0x0, 0x0, 0x0, 0x0, 0xb, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa, 0x30, 0x34, 0x30, 0x0,
- 0x4, 0x8d, 0x79, 0x54, 0x6a, 0x10, 0x4, 0x1e,
- 0x70, 0x0, 0x2, 0xa0, 0x0, 0x8e, 0x0, 0x0,
- 0x0, 0xb0, 0x2, 0xba, 0x0, 0x0, 0x0, 0xa0,
- 0xb, 0x2a, 0x0, 0x0, 0x2, 0x80, 0x2b, 0x7b,
- 0x0, 0x0, 0x29, 0x0, 0x1, 0x2d, 0x0, 0x4,
- 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+3092 "を" */
- 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0xb2,
- 0x0, 0x0, 0x1, 0x1, 0xa1, 0x64, 0x0, 0x2,
- 0x8d, 0xa8, 0x40, 0x0, 0x0, 0x47, 0x0, 0x0,
- 0x0, 0x1, 0xd8, 0x93, 0x0, 0x87, 0xd, 0x60,
- 0xb, 0x7a, 0x51, 0x14, 0x0, 0x8d, 0x30, 0x0,
- 0x0, 0x2a, 0x3a, 0x0, 0x0, 0x0, 0xa1, 0x16,
- 0x0, 0x0, 0x0, 0xa2, 0x0, 0x0, 0x0, 0x0,
- 0x2a, 0xaa, 0xba, 0x0,
-
- /* U+3093 "ん" */
- 0x0, 0x0, 0x7, 0x0, 0x0, 0x0, 0x0, 0x4,
- 0xb0, 0x0, 0x0, 0x0, 0x0, 0xa2, 0x0, 0x0,
- 0x0, 0x0, 0x29, 0x0, 0x0, 0x0, 0x0, 0x9,
- 0x10, 0x0, 0x0, 0x0, 0x2, 0x98, 0xa5, 0x0,
- 0x0, 0x0, 0x9c, 0x20, 0xa0, 0x0, 0x20, 0x2f,
- 0x20, 0xa, 0x0, 0x6, 0xa, 0x70, 0x0, 0xb0,
- 0x7, 0x11, 0xd0, 0x0, 0xb, 0x58, 0x50, 0x1,
- 0x0, 0x0, 0x15, 0x10, 0x0,
-
- /* U+30A1 "ァ" */
- 0x0, 0x0, 0x0, 0x0, 0x3, 0x46, 0x77, 0xc5,
- 0x7, 0x62, 0x4, 0xa2, 0x0, 0x4, 0x74, 0x0,
- 0x0, 0x6, 0x60, 0x0, 0x0, 0xa, 0x20, 0x0,
- 0x0, 0x1a, 0x0, 0x0, 0x0, 0x91, 0x0, 0x0,
- 0x4, 0x10, 0x0, 0x0,
-
- /* U+30A2 "ア" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x14,
- 0x78, 0xe6, 0x1c, 0xb8, 0x62, 0x4, 0xd3, 0x1,
- 0x0, 0x0, 0x3a, 0x0, 0x0, 0x0, 0x5a, 0x50,
- 0x0, 0x0, 0x0, 0x76, 0x0, 0x0, 0x0, 0x0,
- 0xb1, 0x0, 0x0, 0x0, 0x2, 0xa0, 0x0, 0x0,
- 0x0, 0xa, 0x30, 0x0, 0x0, 0x0, 0x48, 0x0,
- 0x0, 0x0, 0x1, 0x90, 0x0, 0x0, 0x0, 0x3,
- 0x0, 0x0, 0x0, 0x0,
-
- /* U+30A3 "ィ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb3,
- 0x0, 0x0, 0x6, 0xa0, 0x0, 0x0, 0x69, 0x0,
- 0x0, 0x8, 0x8a, 0x0, 0x2, 0x72, 0xa, 0x0,
- 0x1, 0x0, 0x9, 0x0, 0x0, 0x0, 0x1a, 0x0,
- 0x0, 0x0, 0x19, 0x0, 0x0, 0x0, 0x1, 0x0,
-
- /* U+30A4 "イ" */
- 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x2,
- 0xe0, 0x0, 0x0, 0x0, 0xb5, 0x0, 0x0, 0x0,
- 0x95, 0x0, 0x0, 0x0, 0x99, 0x0, 0x0, 0x1,
- 0xa5, 0xd0, 0x0, 0x5, 0x71, 0xb, 0x0, 0x3,
- 0x10, 0x0, 0xa0, 0x0, 0x0, 0x0, 0xa, 0x0,
- 0x0, 0x0, 0x0, 0xb0, 0x0, 0x0, 0x0, 0x1b,
- 0x0, 0x0, 0x0, 0x0, 0x60, 0x0,
-
- /* U+30A6 "ウ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd2,
- 0x0, 0x0, 0x0, 0x0, 0xa2, 0x25, 0x80, 0x29,
- 0x89, 0xa8, 0x63, 0xe3, 0xb, 0x0, 0x0, 0x4,
- 0x90, 0xc, 0x0, 0x0, 0xb, 0x10, 0xd, 0x0,
- 0x0, 0x66, 0x0, 0x2, 0x0, 0x2, 0xa0, 0x0,
- 0x0, 0x0, 0xb, 0x10, 0x0, 0x0, 0x0, 0x92,
- 0x0, 0x0, 0x0, 0x17, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0,
-
- /* U+30A7 "ェ" */
- 0x0, 0x12, 0x36, 0x91, 0x0, 0x7, 0x7c, 0x40,
- 0x0, 0x0, 0x0, 0x92, 0x0, 0x0, 0x0, 0x9,
- 0x10, 0x0, 0x2, 0x45, 0xc9, 0xab, 0x50, 0x56,
- 0x42, 0x0, 0x0,
-
- /* U+30A8 "エ" */
- 0x0, 0x0, 0x0, 0x1, 0x10, 0x0, 0x7, 0x89,
- 0xa9, 0x97, 0x0, 0x0, 0x22, 0xd, 0x10, 0x0,
- 0x0, 0x0, 0x0, 0xb0, 0x0, 0x0, 0x0, 0x0,
- 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0, 0x0,
- 0x0, 0x7, 0x78, 0x9c, 0x99, 0xaa, 0x70, 0x44,
- 0x10, 0x0, 0x0, 0x0,
-
- /* U+30AA "オ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0x30, 0x0, 0x0, 0x0, 0x0, 0x92, 0x0,
- 0x0, 0x0, 0x0, 0x2a, 0x68, 0xa3, 0x4, 0xb9,
- 0x89, 0xf2, 0x10, 0x0, 0x0, 0x1, 0xb9, 0x10,
- 0x0, 0x0, 0x0, 0xb2, 0x91, 0x0, 0x0, 0x0,
- 0xa3, 0x9, 0x10, 0x0, 0x0, 0x92, 0x0, 0x91,
- 0x0, 0x2, 0x60, 0x1, 0x19, 0x20, 0x0, 0x0,
- 0x0, 0x9, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x4,
- 0x0, 0x0,
-
- /* U+30AB "カ" */
- 0x0, 0x0, 0xb, 0x0, 0x0, 0x0, 0x0, 0xd,
- 0x0, 0x0, 0x0, 0x0, 0x1a, 0x37, 0x90, 0x7,
- 0x99, 0xba, 0x52, 0xe1, 0x2, 0x20, 0xb0, 0x2,
- 0xa0, 0x0, 0x2, 0x90, 0x6, 0x60, 0x0, 0xa,
- 0x10, 0xb, 0x10, 0x0, 0x65, 0x0, 0x1c, 0x0,
- 0x4, 0x70, 0x9, 0xa7, 0x0, 0x14, 0x0, 0x3,
- 0xb0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+30AC "ガ" */
- 0x0, 0x0, 0x0, 0x0, 0x2, 0x50, 0x0, 0x0,
- 0x9, 0x30, 0x54, 0x92, 0x0, 0x0, 0xb, 0x30,
- 0xb, 0x0, 0x0, 0x0, 0xc, 0x4, 0x81, 0x0,
- 0x3, 0x68, 0x9d, 0x85, 0xb6, 0x0, 0x0, 0x41,
- 0x56, 0x0, 0xb1, 0x0, 0x0, 0x0, 0xb1, 0x0,
- 0xb0, 0x0, 0x0, 0x3, 0x80, 0x4, 0x70, 0x0,
- 0x0, 0xa, 0x0, 0x9, 0x20, 0x0, 0x0, 0x82,
- 0x6, 0x6c, 0x0, 0x0, 0x4, 0x10, 0x1, 0xe5,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+30AD "キ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xa0,
- 0x0, 0x0, 0x0, 0x0, 0xb0, 0x0, 0x0, 0x0,
- 0x1, 0xb6, 0x89, 0x30, 0x7, 0x97, 0xa3, 0x0,
- 0x0, 0x0, 0x0, 0x54, 0x3, 0x40, 0x23, 0x57,
- 0xac, 0x87, 0x51, 0x47, 0x31, 0x9, 0x0, 0x0,
- 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0xb,
- 0x0, 0x0, 0x0, 0x0, 0x9, 0x10, 0x0, 0x0,
- 0x0, 0x1, 0x0, 0x0,
-
- /* U+30AE "ギ" */
- 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x2b,
- 0x0, 0x32, 0xc0, 0x0, 0x0, 0xb0, 0x1, 0xc0,
- 0x0, 0x0, 0x1b, 0x79, 0x80, 0x0, 0x6, 0x96,
- 0x93, 0x0, 0x0, 0x0, 0x0, 0x4, 0x51, 0x35,
- 0x0, 0x24, 0x68, 0x9c, 0x86, 0x51, 0x3, 0x63,
- 0x0, 0xa0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xb0, 0x0, 0x0, 0x0,
- 0x0, 0x8, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+30AF "ク" */
- 0x0, 0x0, 0x21, 0x0, 0x0, 0x0, 0x9, 0x80,
- 0x0, 0x0, 0x1, 0xd2, 0x25, 0x10, 0x0, 0x97,
- 0x75, 0x9b, 0x0, 0x66, 0x0, 0xd, 0x20, 0x23,
- 0x0, 0x8, 0x50, 0x0, 0x0, 0x3, 0xa0, 0x0,
- 0x0, 0x1, 0xb0, 0x0, 0x0, 0x0, 0xb2, 0x0,
- 0x0, 0x1, 0xa3, 0x0, 0x0, 0x3, 0x71, 0x0,
- 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
-
- /* U+30B0 "グ" */
- 0x0, 0x0, 0x31, 0x0, 0x31, 0x0, 0x0, 0xa,
- 0x60, 0x36, 0xb0, 0x0, 0x2, 0xd3, 0x36, 0x82,
- 0x0, 0x0, 0xa6, 0x64, 0xa9, 0x0, 0x0, 0x74,
- 0x0, 0x1d, 0x10, 0x0, 0x32, 0x0, 0xa, 0x30,
- 0x0, 0x0, 0x0, 0x5, 0x80, 0x0, 0x0, 0x0,
- 0x2, 0xb0, 0x0, 0x0, 0x0, 0x1, 0xb1, 0x0,
- 0x0, 0x0, 0x2, 0xa1, 0x0, 0x0, 0x0, 0x4,
- 0x70, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+30B1 "ケ" */
- 0x0, 0x6, 0x10, 0x0, 0x0, 0x0, 0xe, 0x30,
- 0x0, 0x0, 0x0, 0x67, 0x3, 0x69, 0xa4, 0x1,
- 0xba, 0x89, 0x91, 0x0, 0x9, 0x10, 0x7, 0x70,
- 0x0, 0x30, 0x0, 0xb, 0x10, 0x0, 0x0, 0x0,
- 0x38, 0x0, 0x0, 0x0, 0x0, 0xa1, 0x0, 0x0,
- 0x0, 0x6, 0x40, 0x0, 0x0, 0x0, 0x34, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+30B2 "ゲ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50,
- 0x0, 0x0, 0x83, 0x0, 0xd, 0x20, 0x0, 0x75,
- 0x70, 0x6, 0x70, 0x3, 0x66, 0x60, 0x1, 0xb9,
- 0x8a, 0xa3, 0x20, 0x0, 0x91, 0x0, 0x69, 0x0,
- 0x0, 0x30, 0x0, 0xb, 0x10, 0x0, 0x0, 0x0,
- 0x4, 0x70, 0x0, 0x0, 0x0, 0x0, 0xa0, 0x0,
- 0x0, 0x0, 0x0, 0x82, 0x0, 0x0, 0x0, 0x0,
- 0x42, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+30B3 "コ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x36, 0x78, 0x99,
- 0xd6, 0x1, 0x53, 0x0, 0x8, 0x50, 0x0, 0x0,
- 0x0, 0xa0, 0x0, 0x0, 0x0, 0xb, 0x0, 0x0,
- 0x0, 0x0, 0xa0, 0x0, 0x0, 0x13, 0x79, 0x0,
- 0x8b, 0xa8, 0x65, 0x40,
-
- /* U+30B4 "ゴ" */
- 0x0, 0x0, 0x0, 0x0, 0x4, 0x20, 0x0, 0x0,
- 0x0, 0x0, 0x72, 0xb0, 0x0, 0x0, 0x0, 0x1,
- 0x19, 0x0, 0x2, 0x46, 0x78, 0x8c, 0x80, 0x0,
- 0x1, 0x74, 0x0, 0x7, 0x60, 0x0, 0x0, 0x0,
- 0x0, 0xa, 0x10, 0x0, 0x0, 0x0, 0x0, 0xb,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0x0, 0x0,
- 0x0, 0x0, 0x13, 0x6a, 0x0, 0x0, 0x8, 0xb9,
- 0x76, 0x54, 0x0, 0x0,
-
- /* U+30B5 "サ" */
- 0x0, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0, 0xd,
- 0x10, 0xd, 0x0, 0x0, 0x0, 0xa, 0x0, 0xb,
- 0x0, 0x0, 0x1, 0x2c, 0x67, 0x8d, 0x9a, 0xa1,
- 0x59, 0x6c, 0x20, 0xb, 0x0, 0x0, 0x0, 0xb,
- 0x0, 0x1a, 0x0, 0x0, 0x0, 0xb, 0x0, 0x47,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x82, 0x0, 0x0,
- 0x0, 0x0, 0x1, 0xa0, 0x0, 0x0, 0x0, 0x0,
- 0x1a, 0x10, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0,
- 0x0, 0x0,
-
- /* U+30B6 "ザ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x0, 0x0,
- 0x0, 0x0, 0x40, 0x43, 0x85, 0x0, 0x3, 0xa0,
- 0xb, 0x20, 0xa1, 0x10, 0x0, 0xa, 0x0, 0xa0,
- 0x0, 0x0, 0x0, 0x2, 0xc7, 0x7d, 0x89, 0xa2,
- 0x0, 0x99, 0x5b, 0x0, 0xa0, 0x0, 0x0, 0x0,
- 0x1, 0xa0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x19,
- 0x0, 0xa0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x45,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x7, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x3, 0x0, 0x0, 0x0, 0x0,
-
- /* U+30B7 "シ" */
- 0x2, 0x72, 0x0, 0x0, 0x0, 0x0, 0x2, 0xd1,
- 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x6,
- 0x4, 0x93, 0x0, 0x0, 0x8, 0x10, 0x2, 0xc0,
- 0x0, 0x9, 0x30, 0x0, 0x0, 0x0, 0x1a, 0x20,
- 0x0, 0x0, 0x0, 0x5b, 0x10, 0x0, 0x0, 0x26,
- 0xc8, 0x0, 0x0, 0x0, 0xa, 0xb2, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+30B8 "ジ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0x48, 0x0, 0x2, 0x72, 0x0, 0x49, 0x50,
- 0x0, 0x2, 0xd2, 0x0, 0x40, 0x0, 0x10, 0x1,
- 0x0, 0x0, 0x6, 0x1, 0x96, 0x0, 0x0, 0x9,
- 0x10, 0x0, 0xb3, 0x0, 0xa, 0x30, 0x0, 0x0,
- 0x0, 0x1b, 0x30, 0x0, 0x0, 0x0, 0x5b, 0x10,
- 0x0, 0x0, 0x15, 0xa7, 0x0, 0x0, 0x0, 0x6,
- 0xb1, 0x0, 0x0, 0x0, 0x0,
-
- /* U+30B9 "ス" */
- 0x0, 0x0, 0x0, 0x2, 0x20, 0x0, 0x1, 0x34,
- 0x89, 0xad, 0x0, 0x0, 0x39, 0x61, 0xa, 0x50,
- 0x0, 0x0, 0x0, 0x2, 0xb0, 0x0, 0x0, 0x0,
- 0x0, 0xb2, 0x0, 0x0, 0x0, 0x0, 0x89, 0x60,
- 0x0, 0x0, 0x0, 0x59, 0x4, 0x80, 0x0, 0x0,
- 0x69, 0x0, 0x8, 0x80, 0x0, 0x85, 0x0, 0x0,
- 0x1e, 0x20, 0x30, 0x0, 0x0, 0x0, 0x51,
-
- /* U+30BA "ズ" */
- 0x0, 0x0, 0x0, 0x0, 0x1, 0x71, 0x0, 0x0,
- 0x0, 0x11, 0x57, 0x26, 0x1, 0x24, 0x79, 0xbc,
- 0x8, 0x0, 0x3, 0xa5, 0x10, 0xa4, 0x0, 0x0,
- 0x0, 0x0, 0x3, 0xb0, 0x0, 0x0, 0x0, 0x0,
- 0xb, 0x20, 0x0, 0x0, 0x0, 0x0, 0x6a, 0x40,
- 0x0, 0x0, 0x0, 0x4, 0x90, 0x58, 0x0, 0x0,
- 0x0, 0x48, 0x0, 0x8, 0x80, 0x0, 0x6, 0x50,
- 0x0, 0x0, 0xe2, 0x0, 0x20, 0x0, 0x0, 0x0,
- 0x30, 0x0,
-
- /* U+30BB "セ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe,
- 0x10, 0x0, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x39,
- 0x0, 0x0, 0xb, 0x6, 0x96, 0xe4, 0x0, 0x5,
- 0xd8, 0x20, 0x84, 0x0, 0x6b, 0x5b, 0x0, 0x35,
- 0x0, 0x0, 0x0, 0xb0, 0x1, 0x0, 0x0, 0x0,
- 0xb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x95, 0x0,
- 0x14, 0x10, 0x0, 0x1, 0x9b, 0xba, 0x70,
-
- /* U+30BC "ゼ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x33, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x35, 0xb1, 0x0, 0x0, 0xd2,
- 0x0, 0x0, 0x92, 0x0, 0x0, 0xb, 0x0, 0x2,
- 0x81, 0x0, 0x0, 0x0, 0xb1, 0x69, 0x8e, 0x50,
- 0x0, 0x0, 0x5e, 0x72, 0x8, 0x30, 0x0, 0x6,
- 0xb4, 0xb0, 0x4, 0x40, 0x0, 0x0, 0x0, 0xb,
- 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0xa0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x8, 0x50, 0x12, 0x52,
- 0x0, 0x0, 0x0, 0x18, 0xab, 0xa8, 0x10, 0x0,
-
- /* U+30BD "ソ" */
- 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x6a,
- 0x59, 0x0, 0x0, 0x88, 0xd, 0x20, 0x0, 0xd1,
- 0x5, 0x10, 0x5, 0x80, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0x0, 0x94, 0x0, 0x0, 0x6, 0x70, 0x0,
- 0x0, 0x67, 0x0, 0x0, 0x6, 0x40, 0x0, 0x0,
- 0x10, 0x0, 0x0, 0x0,
-
- /* U+30BF "タ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x66,
- 0x0, 0x0, 0x0, 0x0, 0xd9, 0x8b, 0xe0, 0x0,
- 0x8, 0x64, 0x18, 0x80, 0x0, 0x7b, 0x10, 0x1d,
- 0x0, 0x7, 0x60, 0xb5, 0x95, 0x0, 0x21, 0x0,
- 0x1d, 0xa0, 0x0, 0x0, 0x0, 0x1b, 0x0, 0x0,
- 0x0, 0x1, 0xb1, 0x0, 0x0, 0x0, 0x4a, 0x10,
- 0x0, 0x0, 0x7, 0x60, 0x0, 0x0, 0x0, 0x20,
- 0x0, 0x0, 0x0, 0x0,
-
- /* U+30C0 "ダ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1, 0x92, 0x0, 0x0, 0x9,
- 0x20, 0x1, 0x95, 0x50, 0x0, 0x2, 0xe7, 0x8c,
- 0xa1, 0x40, 0x0, 0x0, 0xb5, 0x40, 0xb3, 0x0,
- 0x0, 0x0, 0x98, 0x0, 0x49, 0x0, 0x0, 0x0,
- 0x83, 0x2c, 0x2c, 0x10, 0x0, 0x0, 0x20, 0x0,
- 0x4d, 0x50, 0x0, 0x0, 0x0, 0x0, 0x5, 0x80,
- 0x0, 0x0, 0x0, 0x0, 0x4, 0x90, 0x0, 0x0,
- 0x0, 0x0, 0x6, 0x80, 0x0, 0x0, 0x0, 0x0,
- 0x17, 0x40, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+30C1 "チ" */
- 0x0, 0x0, 0x0, 0x8, 0x70, 0x0, 0x0, 0x0,
- 0x48, 0xb6, 0x20, 0x0, 0x0, 0x14, 0x21, 0xe0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xd4, 0x57, 0x50,
- 0x7, 0xba, 0x99, 0xc5, 0x44, 0x40, 0x0, 0x0,
- 0x4, 0x70, 0x0, 0x0, 0x0, 0x0, 0x9, 0x30,
- 0x0, 0x0, 0x0, 0x0, 0x2a, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa1, 0x0, 0x0, 0x0, 0x0, 0x8,
- 0x10, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+30C3 "ッ" */
- 0x0, 0x20, 0x0, 0x0, 0x41, 0x47, 0x3, 0xd0,
- 0x1c, 0x8, 0x6, 0x80, 0x4, 0x0, 0xc, 0x10,
- 0x0, 0x0, 0x65, 0x0, 0x0, 0x3, 0x80, 0x0,
- 0x0, 0x38, 0x0, 0x0, 0x1, 0x30, 0x0, 0x0,
-
- /* U+30C4 "ツ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0x20,
- 0x0, 0x70, 0x16, 0x1, 0xd0, 0x1, 0xe1, 0xa,
- 0x40, 0x90, 0x7, 0x60, 0x5, 0x50, 0x0, 0x1b,
- 0x0, 0x0, 0x0, 0x0, 0x93, 0x0, 0x0, 0x0,
- 0x4, 0x80, 0x0, 0x0, 0x0, 0x1a, 0x0, 0x0,
- 0x0, 0x1, 0x90, 0x0, 0x0, 0x0, 0x26, 0x0,
- 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
-
- /* U+30C6 "テ" */
- 0x0, 0x0, 0x2, 0x61, 0x0, 0x0, 0x59, 0x86,
- 0x52, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x34,
- 0x56, 0x87, 0x8a, 0xb1, 0x36, 0x31, 0x79, 0x0,
- 0x0, 0x0, 0x0, 0x94, 0x0, 0x0, 0x0, 0x0,
- 0xb0, 0x0, 0x0, 0x0, 0x8, 0x40, 0x0, 0x0,
- 0x0, 0x38, 0x0, 0x0, 0x0, 0x2, 0x80, 0x0,
- 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0,
-
- /* U+30C7 "デ" */
- 0x0, 0x0, 0x0, 0x0, 0x2, 0x40, 0x0, 0x0,
- 0x1, 0x41, 0x25, 0x93, 0x0, 0x49, 0x87, 0x63,
- 0x8, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x12, 0x46, 0x78, 0x9a, 0xb2, 0x0, 0x26, 0x42,
- 0x2c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x66, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xb0, 0x0, 0x0, 0x0,
- 0x0, 0x5, 0x50, 0x0, 0x0, 0x0, 0x0, 0x19,
- 0x0, 0x0, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0,
- 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+30C8 "ト" */
- 0x18, 0x0, 0x0, 0xc, 0x0, 0x0, 0xb, 0x0,
- 0x0, 0xb, 0x10, 0x0, 0xa, 0x59, 0x20, 0xa,
- 0x1, 0xd5, 0xa, 0x0, 0x14, 0xa, 0x0, 0x0,
- 0xb, 0x0, 0x0, 0xb, 0x0, 0x0, 0x3, 0x0,
- 0x0,
-
- /* U+30C9 "ド" */
- 0x81, 0x0, 0x3, 0x0, 0xb2, 0x1, 0x53, 0xb0,
- 0xa0, 0x0, 0x67, 0x30, 0xa3, 0x0, 0x0, 0x0,
- 0xa2, 0x94, 0x0, 0x0, 0xa0, 0xb, 0x70, 0x0,
- 0xa0, 0x0, 0x50, 0x0, 0xa0, 0x0, 0x0, 0x0,
- 0xc0, 0x0, 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0,
- 0x20, 0x0, 0x0, 0x0,
-
- /* U+30CA "ナ" */
- 0x0, 0x0, 0x36, 0x0, 0x0, 0x0, 0x0, 0x2c,
- 0x0, 0x0, 0x0, 0x0, 0x1a, 0x0, 0x0, 0x0,
- 0x23, 0x6d, 0x99, 0xb5, 0x7a, 0x75, 0x58, 0x0,
- 0x0, 0x0, 0x0, 0x55, 0x0, 0x0, 0x0, 0x0,
- 0x91, 0x0, 0x0, 0x0, 0x1, 0xa0, 0x0, 0x0,
- 0x0, 0x8, 0x20, 0x0, 0x0, 0x0, 0x44, 0x0,
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0,
-
- /* U+30CB "ニ" */
- 0x0, 0x0, 0x0, 0x2, 0x10, 0x0, 0x0, 0x8,
- 0xa8, 0x87, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x28, 0x88,
- 0x88, 0x88, 0x9a, 0x90, 0x2, 0x10, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+30CD "ネ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x96,
- 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0,
- 0x0, 0x37, 0xc7, 0x0, 0x1, 0xa9, 0x52, 0xc1,
- 0x0, 0x0, 0x0, 0x1b, 0x10, 0x0, 0x0, 0x2,
- 0xc6, 0x23, 0x0, 0x0, 0x49, 0x2a, 0x6, 0xa0,
- 0x6, 0x50, 0x9, 0x0, 0x84, 0x20, 0x0, 0xa,
- 0x0, 0x0, 0x0, 0x0, 0x2a, 0x0, 0x0, 0x0,
- 0x0, 0x5, 0x0, 0x0,
-
- /* U+30CE "ノ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0xe0, 0x0, 0x0, 0x0, 0x7, 0x90, 0x0,
- 0x0, 0x0, 0x2c, 0x0, 0x0, 0x0, 0x0, 0xc2,
- 0x0, 0x0, 0x0, 0x9, 0x40, 0x0, 0x0, 0x0,
- 0x85, 0x0, 0x0, 0x0, 0x9, 0x40, 0x0, 0x0,
- 0x1, 0x92, 0x0, 0x0, 0x0, 0x25, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+30CF "ハ" */
- 0x0, 0x0, 0x60, 0x1, 0x0, 0x0, 0x0, 0x1,
- 0xf2, 0x1, 0x70, 0x0, 0x0, 0x9, 0x60, 0x0,
- 0x49, 0x0, 0x0, 0x3a, 0x0, 0x0, 0xa, 0x60,
- 0x1, 0xa0, 0x0, 0x0, 0x1, 0xe0, 0x7, 0x0,
- 0x0, 0x0, 0x0, 0x81, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+30D0 "バ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x22, 0x90, 0x0, 0x0, 0x0, 0x0,
- 0x48, 0x51, 0x0, 0x0, 0x50, 0x1, 0x3, 0x0,
- 0x0, 0x1, 0xe1, 0x0, 0x70, 0x0, 0x0, 0x8,
- 0x50, 0x0, 0x29, 0x0, 0x0, 0x29, 0x0, 0x0,
- 0x9, 0x60, 0x0, 0x90, 0x0, 0x0, 0x1, 0xe0,
- 0x6, 0x0, 0x0, 0x0, 0x0, 0x91, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0,
-
- /* U+30D1 "パ" */
- 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x41, 0x60, 0x0, 0x0, 0x0, 0x0,
- 0x16, 0x40, 0x0, 0x0, 0x40, 0x1, 0x20, 0x0,
- 0x0, 0x0, 0xd3, 0x0, 0x71, 0x0, 0x0, 0x5,
- 0x80, 0x0, 0xb, 0x0, 0x0, 0x1a, 0x0, 0x0,
- 0x6, 0x90, 0x0, 0x91, 0x0, 0x0, 0x0, 0xe2,
- 0x6, 0x10, 0x0, 0x0, 0x0, 0x73, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0,
-
- /* U+30D2 "ヒ" */
- 0x0, 0x0, 0x0, 0x0, 0xd2, 0x0, 0x0, 0x0,
- 0xb0, 0x0, 0x1, 0x0, 0xb0, 0x15, 0xae, 0x40,
- 0xb5, 0x53, 0x0, 0x0, 0xb0, 0x0, 0x0, 0x0,
- 0xb0, 0x0, 0x0, 0x0, 0xb0, 0x0, 0x0, 0x0,
- 0x96, 0x10, 0x13, 0x50, 0x6, 0x99, 0x98, 0x60,
-
- /* U+30D3 "ビ" */
- 0x0, 0x0, 0x0, 0x10, 0x2, 0xc0, 0x0, 0x2,
- 0xa4, 0xb, 0x0, 0x0, 0x79, 0x30, 0xb0, 0x0,
- 0x28, 0x20, 0xb, 0x3, 0x9a, 0x61, 0x0, 0xc6,
- 0x40, 0x0, 0x0, 0xb, 0x0, 0x0, 0x0, 0x0,
- 0xb0, 0x0, 0x0, 0x0, 0xc, 0x30, 0x1, 0x44,
- 0x0, 0x28, 0x99, 0x98, 0x40,
-
- /* U+30D4 "ピ" */
- 0x0, 0x0, 0x0, 0x6, 0x90, 0xa, 0x0, 0x0,
- 0x5, 0x32, 0xc, 0x0, 0x0, 0x1, 0x20, 0xb,
- 0x0, 0x1, 0xa1, 0x0, 0xb, 0x3, 0x8a, 0x61,
- 0x0, 0xb, 0x54, 0x0, 0x0, 0x0, 0xb, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x0, 0x0, 0x0, 0x0,
- 0x9, 0x52, 0x12, 0x46, 0x0, 0x0, 0x68, 0x98,
- 0x75, 0x0,
-
- /* U+30D5 "フ" */
- 0x0, 0x0, 0x0, 0x0, 0x10, 0x14, 0x46, 0x89,
- 0x99, 0xf4, 0x7, 0x63, 0x10, 0x3, 0xc0, 0x0,
- 0x0, 0x0, 0xb, 0x20, 0x0, 0x0, 0x0, 0x67,
- 0x0, 0x0, 0x0, 0x3, 0xb0, 0x0, 0x0, 0x0,
- 0x2b, 0x0, 0x0, 0x0, 0x3, 0xa0, 0x0, 0x0,
- 0x0, 0x57, 0x0, 0x0, 0x0, 0x4, 0x10, 0x0,
- 0x0, 0x0,
-
- /* U+30D6 "ブ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0x20, 0x0,
- 0x0, 0x0, 0x0, 0x8, 0x2b, 0x0, 0x0, 0x2,
- 0x57, 0xa7, 0x25, 0x0, 0x7b, 0xa8, 0x63, 0x17,
- 0xa0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xd0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xa4, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x58, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x3a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3a, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x58, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0x63, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+30D7 "プ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x35, 0x30, 0x0,
- 0x0, 0x0, 0x0, 0x5, 0x15, 0x0, 0x0, 0x1,
- 0x36, 0x95, 0x4, 0x0, 0x8b, 0x99, 0x75, 0x28,
- 0xa0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xd0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x94, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x59, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x3b, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3a, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x49, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x64, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+30D9 "ベ" */
- 0x0, 0x0, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0,
- 0x10, 0x4, 0x48, 0x50, 0x0, 0x9, 0xb5, 0x0,
- 0x90, 0x0, 0x0, 0xa4, 0x9, 0x50, 0x0, 0x0,
- 0x2b, 0x50, 0x0, 0xb4, 0x0, 0x0, 0x35, 0x0,
- 0x0, 0xb, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc7, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0xb1,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x41,
-
- /* U+30DA "ペ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x26, 0x40, 0x0, 0x0, 0x0, 0x30, 0x34,
- 0x60, 0x0, 0x0, 0xb, 0x98, 0x1, 0x0, 0x0,
- 0x0, 0xb2, 0x7, 0x70, 0x0, 0x0, 0x3c, 0x30,
- 0x0, 0x96, 0x0, 0x0, 0x13, 0x0, 0x0, 0xa,
- 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa9, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x8, 0xd2, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x10,
-
- /* U+30DB "ホ" */
- 0x0, 0x0, 0xa1, 0x0, 0x0, 0x0, 0x0, 0xc1,
- 0x0, 0x0, 0x0, 0x0, 0xb0, 0x23, 0x30, 0x5b,
- 0x99, 0xd8, 0x77, 0x70, 0x0, 0x0, 0xb0, 0x0,
- 0x0, 0x0, 0x20, 0xb0, 0x4, 0x0, 0x5, 0x20,
- 0xb0, 0x3, 0x80, 0x2c, 0x0, 0xb0, 0x0, 0xc2,
- 0x52, 0x6, 0xd0, 0x0, 0x31, 0x0, 0x2, 0xc0,
- 0x0, 0x0,
-
- /* U+30DC "ボ" */
- 0x0, 0x0, 0x0, 0x0, 0x51, 0x0, 0x0, 0x9,
- 0x10, 0x72, 0xb0, 0x0, 0x0, 0xb1, 0x2, 0x60,
- 0x0, 0x0, 0xa, 0x1, 0x32, 0x0, 0x4a, 0x98,
- 0xd8, 0x87, 0x70, 0x0, 0x0, 0xa, 0x0, 0x0,
- 0x0, 0x0, 0x20, 0xa0, 0x4, 0x0, 0x0, 0x52,
- 0xa, 0x0, 0x47, 0x0, 0x1c, 0x0, 0xa0, 0x0,
- 0xc2, 0x6, 0x30, 0x6c, 0x10, 0x4, 0x10, 0x0,
- 0x3, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+30DD "ポ" */
- 0x0, 0x0, 0x0, 0x5, 0x10, 0x0, 0x0, 0x91,
- 0x50, 0x50, 0x0, 0x0, 0xb1, 0x16, 0x20, 0x0,
- 0x0, 0xa0, 0x23, 0x30, 0x5b, 0x98, 0xd8, 0x76,
- 0x60, 0x0, 0x0, 0xa0, 0x0, 0x0, 0x0, 0x20,
- 0xa0, 0x4, 0x0, 0x5, 0x20, 0xa0, 0x3, 0x80,
- 0x2c, 0x0, 0xa0, 0x0, 0xc2, 0x52, 0x6, 0xc1,
- 0x0, 0x31, 0x0, 0x2, 0xc0, 0x0, 0x0,
-
- /* U+30DE "マ" */
- 0x0, 0x0, 0x0, 0x24, 0x61, 0x7b, 0x98, 0x88,
- 0x64, 0xb9, 0x0, 0x0, 0x0, 0x7, 0x90, 0x0,
- 0x4, 0x0, 0x65, 0x0, 0x0, 0x2, 0x95, 0x20,
- 0x0, 0x0, 0x0, 0x78, 0x0, 0x0, 0x0, 0x0,
- 0xd, 0x20, 0x0, 0x0, 0x0, 0x4, 0x10, 0x0,
-
- /* U+30DF "ミ" */
- 0x4, 0x20, 0x0, 0x0, 0x6b, 0x70, 0x0, 0x0,
- 0xa5, 0x1, 0x0, 0x0, 0x4, 0x96, 0x0, 0x0,
- 0x7, 0xc0, 0x0, 0x0, 0x20, 0x35, 0x10, 0x0,
- 0x1, 0x8b, 0x40, 0x0, 0x2, 0xc6, 0x0, 0x0,
- 0x2,
-
- /* U+30E0 "ム" */
- 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x88,
- 0x0, 0x0, 0x0, 0x0, 0xc2, 0x0, 0x0, 0x0,
- 0x3, 0x90, 0x0, 0x0, 0x0, 0x9, 0x10, 0x0,
- 0x0, 0x0, 0x28, 0x0, 0x40, 0x0, 0x0, 0x91,
- 0x0, 0x2a, 0x0, 0x3, 0x70, 0x15, 0x79, 0x90,
- 0x1d, 0xaa, 0x83, 0x0, 0xe1, 0x18, 0x20, 0x0,
- 0x0, 0x40,
-
- /* U+30E1 "メ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x5, 0xc0, 0x0, 0x0, 0x0, 0xa, 0x50, 0x0,
- 0x2, 0x20, 0x2b, 0x0, 0x0, 0x0, 0x39, 0xc2,
- 0x0, 0x0, 0x0, 0x7, 0xd8, 0x0, 0x0, 0x0,
- 0x39, 0xa, 0x70, 0x0, 0x2, 0xb0, 0x0, 0x40,
- 0x0, 0x39, 0x0, 0x0, 0x0, 0x5, 0x60, 0x0,
- 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
-
- /* U+30E2 "モ" */
- 0x0, 0x0, 0x1, 0x47, 0x81, 0x0, 0x7, 0x98,
- 0xc4, 0x21, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb2, 0x46, 0x71, 0x6, 0xa9,
- 0x8c, 0x65, 0x43, 0x10, 0x0, 0x0, 0xa0, 0x0,
- 0x0, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb2, 0x1, 0x20, 0x0, 0x0, 0x2, 0x9a,
- 0xa6, 0x0,
-
- /* U+30E3 "ャ" */
- 0x0, 0x9, 0x50, 0x0, 0x0, 0x0, 0x3, 0x90,
- 0x5, 0x70, 0x0, 0x4, 0xd8, 0x74, 0xc1, 0x6,
- 0x94, 0x82, 0x6, 0x10, 0x0, 0x0, 0x37, 0x2,
- 0x0, 0x0, 0x0, 0xb, 0x0, 0x0, 0x0, 0x0,
- 0xa, 0x20, 0x0, 0x0, 0x0, 0x3, 0x40, 0x0,
-
- /* U+30E4 "ヤ" */
- 0x0, 0x4, 0x70, 0x0, 0x0, 0x0, 0x0, 0x1c,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xb0, 0x0, 0x5b,
- 0x70, 0x0, 0x9, 0x98, 0x84, 0x97, 0x1a, 0xa8,
- 0x68, 0x0, 0x19, 0x0, 0x0, 0x0, 0xa0, 0x7,
- 0x0, 0x0, 0x0, 0x9, 0x10, 0x20, 0x0, 0x0,
- 0x0, 0x55, 0x0, 0x0, 0x0, 0x0, 0x1, 0xa0,
- 0x0, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x20, 0x0, 0x0,
-
- /* U+30E5 "ュ" */
- 0x0, 0x12, 0x35, 0x30, 0x0, 0x0, 0x67, 0x46,
- 0xb0, 0x0, 0x0, 0x0, 0x7, 0x40, 0x0, 0x0,
- 0x0, 0xb, 0x0, 0x0, 0x7, 0x88, 0x9d, 0xab,
- 0x90, 0x0, 0x20, 0x0, 0x0, 0x0,
-
- /* U+30E7 "ョ" */
- 0x0, 0x0, 0x1, 0x10, 0x3, 0xba, 0x9a, 0xd0,
- 0x0, 0x0, 0x2, 0xa0, 0x1, 0xa9, 0x8a, 0x70,
- 0x0, 0x0, 0x6, 0x40, 0x0, 0x0, 0x8, 0x20,
- 0x8, 0xa9, 0x9a, 0x30,
-
- /* U+30E8 "ヨ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x29, 0x89, 0xaa,
- 0xd5, 0x0, 0x21, 0x0, 0x7, 0x70, 0x0, 0x0,
- 0x0, 0x93, 0x0, 0x0, 0x0, 0xb, 0x0, 0x2b,
- 0xb9, 0x98, 0xc0, 0x0, 0x0, 0x0, 0xa, 0x0,
- 0x0, 0x0, 0x2, 0x80, 0xb, 0xba, 0x99, 0xb8,
- 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+30E9 "ラ" */
- 0x0, 0x0, 0x1, 0x35, 0x0, 0x0, 0x7a, 0x98,
- 0x65, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
- 0x35, 0x69, 0x9a, 0xe0, 0x6, 0x74, 0x20, 0x3,
- 0xb0, 0x0, 0x0, 0x0, 0xb, 0x10, 0x0, 0x0,
- 0x0, 0x85, 0x0, 0x0, 0x0, 0x7, 0x70, 0x0,
- 0x0, 0x0, 0x86, 0x0, 0x0, 0x0, 0x18, 0x30,
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0,
-
- /* U+30EA "リ" */
- 0x5, 0x0, 0xa, 0x0, 0xc1, 0x0, 0xe0, 0xb,
- 0x0, 0xc, 0x0, 0xb0, 0x0, 0xc0, 0xb, 0x0,
- 0xc, 0x0, 0xc0, 0x0, 0xb0, 0x3, 0x0, 0x29,
- 0x0, 0x0, 0x9, 0x30, 0x0, 0x3, 0x90, 0x0,
- 0x3, 0x80, 0x0, 0x1, 0x30, 0x0, 0x0,
-
- /* U+30EB "ル" */
- 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x20,
- 0xe, 0x10, 0x0, 0x0, 0x0, 0xd2, 0xc, 0x0,
- 0x0, 0x0, 0x0, 0xc0, 0xb, 0x0, 0x0, 0x50,
- 0x0, 0xc0, 0xb, 0x0, 0x6, 0x30, 0x0, 0xc0,
- 0xb, 0x0, 0x76, 0x0, 0x2, 0x80, 0xb, 0x1a,
- 0x60, 0x0, 0x9, 0x10, 0xd, 0xd3, 0x0, 0x0,
- 0x32, 0x0, 0x3, 0x10, 0x0, 0x0,
-
- /* U+30EC "レ" */
- 0x24, 0x0, 0x0, 0x0, 0x2f, 0x0, 0x0, 0x0,
- 0xd, 0x0, 0x0, 0x0, 0xb, 0x0, 0x0, 0x0,
- 0xb, 0x0, 0x0, 0x62, 0xb, 0x0, 0x59, 0x10,
- 0xb, 0x3b, 0x60, 0x0, 0x1f, 0xb1, 0x0, 0x0,
- 0x2, 0x0, 0x0, 0x0,
-
- /* U+30ED "ロ" */
- 0x0, 0x0, 0x24, 0x69, 0x20, 0xf9, 0x97, 0x53,
- 0xa9, 0xc, 0x0, 0x0, 0xb, 0x20, 0xb0, 0x0,
- 0x0, 0xb0, 0xa, 0x10, 0x0, 0x19, 0x0, 0x91,
- 0x0, 0x6, 0x60, 0xa, 0xaa, 0x99, 0x96, 0x0,
- 0x40, 0x0, 0x0, 0x0,
-
- /* U+30EF "ワ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x17, 0x56, 0x79,
- 0xab, 0xe2, 0xd, 0x43, 0x20, 0x0, 0xd2, 0xc,
- 0x0, 0x0, 0x5, 0x80, 0xd, 0x0, 0x0, 0xc,
- 0x10, 0x9, 0x0, 0x0, 0x76, 0x0, 0x0, 0x0,
- 0x2, 0xa0, 0x0, 0x0, 0x0, 0x1a, 0x0, 0x0,
- 0x0, 0x1, 0x90, 0x0, 0x0, 0x0, 0x27, 0x0,
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0,
-
- /* U+30F3 "ン" */
- 0x15, 0x0, 0x0, 0x0, 0x0, 0x2, 0xc4, 0x0,
- 0x0, 0x2, 0x0, 0x3a, 0x0, 0x0, 0x53, 0x0,
- 0x0, 0x0, 0x6, 0x60, 0x0, 0x0, 0x0, 0x66,
- 0x0, 0x0, 0x0, 0x9, 0x50, 0x0, 0x0, 0x3,
- 0xb3, 0x0, 0x0, 0x6, 0xa9, 0x10, 0x0, 0x0,
- 0x6, 0x30, 0x0, 0x0, 0x0,
-
- /* U+30F6 "ヶ" */
- 0x0, 0x82, 0x0, 0x0, 0x0, 0xc1, 0x2, 0x50,
- 0x8, 0xa9, 0xd7, 0x51, 0x35, 0x0, 0xc2, 0x0,
- 0x0, 0x2, 0x90, 0x0, 0x0, 0x9, 0x10, 0x0,
- 0x0, 0x45, 0x0, 0x0, 0x0, 0x30, 0x0, 0x0,
-
- /* U+30FC "ー" */
- 0x2, 0x10, 0x0, 0x1, 0x24, 0x69, 0x40, 0x8,
- 0xff, 0xcb, 0xa9, 0x87, 0x77, 0x80, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+4E00 "一" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x30, 0x6,
- 0x55, 0x55, 0x55, 0x55, 0x58, 0x70,
-
- /* U+4E03 "七" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd1, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd0,
- 0x0, 0x7, 0x90, 0x0, 0x0, 0x0, 0xd3, 0x55,
- 0x51, 0x0, 0x0, 0x3, 0x55, 0xd1, 0x0, 0x0,
- 0x0, 0x7, 0x51, 0x0, 0xd0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0x50, 0x0, 0x0,
- 0x0, 0xd0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x0,
- 0xd1, 0x0, 0x0, 0xd2, 0x0, 0x0, 0x0, 0x5b,
- 0xbb, 0xbb, 0xa2,
-
- /* U+4E07 "万" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x10, 0x75,
- 0x55, 0xa7, 0x55, 0x55, 0x85, 0x0, 0x0, 0xc,
- 0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd2, 0x0,
- 0x1, 0x0, 0x0, 0x0, 0xf, 0x55, 0x55, 0xb8,
- 0x0, 0x0, 0x2, 0xc0, 0x0, 0x9, 0x40, 0x0,
- 0x0, 0x68, 0x0, 0x0, 0xa3, 0x0, 0x0, 0xb,
- 0x30, 0x0, 0xb, 0x20, 0x0, 0x2, 0xa0, 0x0,
- 0x0, 0xd1, 0x0, 0x0, 0xa2, 0x0, 0x0, 0xe,
- 0x0, 0x0, 0x73, 0x0, 0x5, 0x78, 0xc0, 0x0,
- 0x43, 0x0, 0x0, 0x6, 0xb2, 0x0, 0x10, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+4E08 "丈" */
- 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa, 0x50, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x9, 0x30, 0x1, 0x0, 0x5, 0x65, 0x55,
- 0x5b, 0x75, 0x5a, 0xa0, 0x0, 0x1, 0x0, 0xa,
- 0x20, 0x0, 0x0, 0x0, 0x5, 0x0, 0xb, 0x10,
- 0x0, 0x0, 0x0, 0x0, 0x60, 0xd, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x73, 0xd, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb, 0x59, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x3, 0xf6, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x6, 0xbe, 0x70, 0x0, 0x0, 0x0, 0x0, 0x88,
- 0x1, 0xbe, 0x95, 0x30, 0x0, 0x58, 0x30, 0x0,
- 0x3, 0xaf, 0x50, 0x3, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+4E09 "三" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
- 0x65, 0x55, 0x55, 0x55, 0x6d, 0x30, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
- 0x90, 0x0, 0x0, 0x26, 0x55, 0x55, 0x55, 0x52,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x16, 0x55,
- 0x55, 0x55, 0x55, 0x58, 0xd1, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0,
-
- /* U+4E0A "上" */
- 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xe2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd0,
- 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0xd5, 0x55,
- 0xa8, 0x0, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xd0, 0x0, 0x3, 0x80, 0x7, 0x55, 0x55, 0x55,
- 0x55, 0x55, 0x51,
-
- /* U+4E0B "下" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x30, 0x65,
- 0x55, 0x5d, 0x55, 0x55, 0x54, 0x0, 0x0, 0x0,
- 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xd6, 0x50, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x5, 0xd7, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x2, 0xe2, 0x0, 0x0, 0x0,
- 0xd, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0xd0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x20, 0x0, 0x0, 0x0,
-
- /* U+4E0D "不" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6,
- 0x55, 0x55, 0x56, 0x55, 0x5b, 0x80, 0x0, 0x0,
- 0x0, 0x88, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
- 0xe1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0xe4,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c, 0xa2, 0x25,
- 0x0, 0x0, 0x0, 0x1, 0xc2, 0xa2, 0x2, 0xa1,
- 0x0, 0x0, 0xb, 0x20, 0xa2, 0x0, 0x3d, 0x30,
- 0x0, 0x92, 0x0, 0xa2, 0x0, 0x6, 0xc0, 0x16,
- 0x0, 0x0, 0xa2, 0x0, 0x0, 0x40, 0x0, 0x0,
- 0x0, 0xa2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xa2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa2,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+4E13 "专" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x3, 0x90, 0x0, 0x70, 0x0, 0x0, 0x55, 0x59,
- 0x95, 0x55, 0x52, 0x0, 0x0, 0x0, 0x8, 0x30,
- 0x0, 0x0, 0x0, 0x15, 0x55, 0x5d, 0x65, 0x55,
- 0x58, 0xb0, 0x1, 0x0, 0xc, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x49, 0x0, 0x0, 0x30, 0x0,
- 0x0, 0x0, 0x57, 0x55, 0x57, 0xf2, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa, 0x20, 0x0, 0x0, 0x0,
- 0x16, 0x30, 0x71, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x6c, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
- 0xc5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
- 0x0, 0x0,
-
- /* U+4E14 "且" */
- 0x0, 0x0, 0x95, 0x55, 0x55, 0xb0, 0x0, 0x0,
- 0x0, 0xd0, 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0,
- 0xd0, 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0, 0xd0,
- 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0, 0xd5, 0x55,
- 0x55, 0xc0, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0xc0, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0, 0xc0,
- 0x0, 0x0, 0x0, 0xd5, 0x55, 0x55, 0xc0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0xc0, 0x0, 0x0,
- 0x0, 0xd0, 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0,
- 0xd0, 0x0, 0x0, 0xc0, 0x80, 0x6, 0x55, 0x75,
- 0x55, 0x55, 0x76, 0x74,
-
- /* U+4E16 "世" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc1, 0x0, 0xd1, 0x0, 0x0, 0x2c,
- 0x0, 0xc0, 0x0, 0xc0, 0x0, 0x0, 0x1a, 0x0,
- 0xc0, 0x0, 0xc0, 0x0, 0x0, 0x1a, 0x0, 0xc0,
- 0x0, 0xc0, 0x91, 0x6, 0x6c, 0x55, 0xd5, 0x55,
- 0xd5, 0x52, 0x0, 0x1a, 0x0, 0xc0, 0x0, 0xc0,
- 0x0, 0x0, 0x1a, 0x0, 0xc0, 0x0, 0xc0, 0x0,
- 0x0, 0x1a, 0x0, 0xc0, 0x0, 0xc0, 0x0, 0x0,
- 0x1a, 0x0, 0xc5, 0x55, 0xc0, 0x0, 0x0, 0x1a,
- 0x0, 0x90, 0x0, 0x70, 0x0, 0x0, 0x1a, 0x0,
- 0x0, 0x0, 0x0, 0x50, 0x0, 0x3b, 0x55, 0x55,
- 0x55, 0x56, 0x93, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+4E21 "両" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x6,
- 0x55, 0x55, 0x57, 0x55, 0x59, 0x90, 0x0, 0x0,
- 0x0, 0x29, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x29, 0x0, 0x1, 0x0, 0x0, 0xc5, 0x55, 0x6b,
- 0x55, 0x5c, 0x30, 0x0, 0xb0, 0x0, 0x29, 0x1,
- 0xa, 0x10, 0x0, 0xb0, 0xb1, 0x29, 0xd, 0xa,
- 0x10, 0x0, 0xb0, 0xb0, 0x29, 0xc, 0xa, 0x10,
- 0x0, 0xb0, 0xb0, 0x29, 0xc, 0xa, 0x10, 0x0,
- 0xb0, 0xc5, 0x6a, 0x5d, 0xa, 0x10, 0x0, 0xb0,
- 0x20, 0x0, 0x5, 0xa, 0x10, 0x0, 0xb0, 0x0,
- 0x0, 0x3, 0x2c, 0x0, 0x0, 0xa0, 0x0, 0x0,
- 0x2, 0xab, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+4E26 "並" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x1, 0x81, 0x0, 0x5, 0xc0, 0x0, 0x0, 0x0,
- 0x3d, 0x0, 0xa, 0x10, 0x0, 0x0, 0x0, 0xc,
- 0x10, 0x42, 0x7, 0x0, 0x2, 0x65, 0x5d, 0x55,
- 0xd5, 0x55, 0x20, 0x0, 0x20, 0xc, 0x0, 0xc0,
- 0x4, 0x10, 0x0, 0x70, 0xc, 0x0, 0xc0, 0xd,
- 0x50, 0x0, 0x56, 0xc, 0x0, 0xc0, 0x67, 0x0,
- 0x0, 0x1d, 0xc, 0x0, 0xc0, 0xa0, 0x0, 0x0,
- 0xd, 0xc, 0x0, 0xc6, 0x10, 0x0, 0x0, 0x3,
- 0xc, 0x0, 0xc2, 0x0, 0x0, 0x0, 0x0, 0xc,
- 0x0, 0xc0, 0x3, 0x40, 0x6, 0x55, 0x57, 0x55,
- 0x75, 0x57, 0x80,
-
- /* U+4E2D "中" */
- 0x0, 0x0, 0x41, 0x0, 0x0, 0x0, 0x0, 0xa,
- 0x50, 0x0, 0x0, 0x0, 0x0, 0xa3, 0x0, 0x0,
- 0x8, 0x55, 0x5b, 0x75, 0x55, 0xa2, 0xc0, 0x0,
- 0xa3, 0x0, 0xc, 0xc, 0x0, 0xa, 0x30, 0x0,
- 0xc0, 0xc0, 0x0, 0xa3, 0x0, 0xc, 0xd, 0x55,
- 0x5b, 0x75, 0x55, 0xd0, 0xb0, 0x0, 0xa3, 0x0,
- 0xa, 0x0, 0x0, 0xa, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0xa3, 0x0, 0x0, 0x0, 0x0, 0xa, 0x30,
- 0x0, 0x0, 0x0, 0x0, 0xa3, 0x0, 0x0, 0x0,
- 0x0, 0x2, 0x0, 0x0, 0x0,
-
- /* U+4E3B "主" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x4, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x99, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x15, 0x0, 0x18, 0x0, 0x3, 0x65, 0x55, 0xc7,
- 0x55, 0x55, 0x10, 0x0, 0x0, 0x0, 0xa2, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xa2, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xa3, 0x11, 0x90, 0x0,
- 0x0, 0x46, 0x55, 0xc6, 0x44, 0x41, 0x0, 0x0,
- 0x0, 0x0, 0xa2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xa2, 0x0, 0x5, 0x10, 0x26, 0x55, 0x55, 0x75,
- 0x55, 0x58, 0x60,
-
- /* U+4E45 "久" */
- 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x89,
- 0x55, 0xb1, 0x0, 0x0, 0x0, 0x0, 0xb0, 0x4,
- 0xb0, 0x0, 0x0, 0x0, 0x7, 0x20, 0xa, 0x50,
- 0x0, 0x0, 0x0, 0x36, 0x0, 0x1d, 0x50, 0x0,
- 0x0, 0x1, 0x50, 0x0, 0x94, 0x70, 0x0, 0x0,
- 0x0, 0x0, 0x3, 0xb0, 0x45, 0x0, 0x0, 0x0,
- 0x0, 0x1b, 0x10, 0xb, 0x10, 0x0, 0x0, 0x0,
- 0xb2, 0x0, 0x4, 0xc1, 0x0, 0x0, 0x28, 0x10,
- 0x0, 0x0, 0x8d, 0x50, 0x5, 0x60, 0x0, 0x0,
- 0x0, 0x8, 0x71, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+4E4B "之" */
- 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x5, 0x90, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb3, 0x0, 0x0, 0x0, 0x3, 0x55, 0x55,
- 0x65, 0x59, 0x50, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x3d, 0x40, 0x0, 0x0, 0x0, 0x0, 0x2, 0xc1,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1c, 0x20, 0x0,
- 0x0, 0x0, 0x0, 0x1, 0xb1, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x1a, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x2, 0xa1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6c,
- 0x20, 0x0, 0x0, 0x0, 0x0, 0x1d, 0x70, 0x87,
- 0x31, 0x0, 0x2, 0x31, 0x4, 0x0, 0x4, 0xad,
- 0xef, 0xff, 0x70,
-
- /* U+4E4E "乎" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x12, 0x0, 0x0,
- 0x0, 0x0, 0x14, 0x7b, 0xd8, 0x0, 0x0, 0x45,
- 0x67, 0x8b, 0x20, 0x0, 0x0, 0x0, 0x4, 0x0,
- 0x2a, 0x0, 0xa5, 0x0, 0x0, 0x4, 0x90, 0x2a,
- 0x1, 0xa0, 0x0, 0x0, 0x0, 0xc2, 0x2a, 0x7,
- 0x10, 0x0, 0x0, 0x0, 0x20, 0x2a, 0x2, 0x1,
- 0x80, 0x6, 0x55, 0x55, 0x6c, 0x55, 0x55, 0x52,
- 0x0, 0x0, 0x0, 0x2a, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2a, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22,
- 0x4a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0xf6,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0,
- 0x0, 0x0,
-
- /* U+4E4F "乏" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x48, 0xd5, 0x0, 0x15, 0x56, 0x78,
- 0x86, 0x53, 0x20, 0x0, 0x0, 0x3, 0x91, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x7, 0x80, 0x0, 0x0,
- 0x0, 0x45, 0x55, 0x56, 0x55, 0xb0, 0x0, 0x1,
- 0x0, 0x0, 0x2, 0xb5, 0x0, 0x0, 0x0, 0x0,
- 0x4, 0xa1, 0x0, 0x0, 0x0, 0x0, 0x8, 0x60,
- 0x0, 0x0, 0x0, 0x0, 0x58, 0x10, 0x0, 0x0,
- 0x0, 0x2, 0xa6, 0x0, 0x0, 0x0, 0x0, 0x6,
- 0xb0, 0x68, 0x41, 0x0, 0x1, 0x21, 0x21, 0x0,
- 0x17, 0xbd, 0xef, 0xf8, 0x0,
-
- /* U+4E57 "乗" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x12, 0x46, 0x8b, 0xe8, 0x0, 0x0, 0x44,
- 0x33, 0xa4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x92, 0x0, 0x43, 0x0, 0x0, 0x65, 0x85, 0xb7,
- 0x59, 0x54, 0x0, 0x0, 0x0, 0xc0, 0x92, 0xc,
- 0x4, 0x0, 0x6, 0x55, 0xd5, 0xb7, 0x5d, 0x56,
- 0x30, 0x0, 0x0, 0xc0, 0x92, 0xc, 0x12, 0x0,
- 0x0, 0x65, 0x79, 0xe9, 0x57, 0x66, 0x0, 0x0,
- 0x0, 0x1b, 0x94, 0x70, 0x0, 0x0, 0x0, 0x1,
- 0xa1, 0x92, 0x58, 0x0, 0x0, 0x0, 0x38, 0x10,
- 0x92, 0x6, 0xc5, 0x0, 0x5, 0x40, 0x0, 0x93,
- 0x0, 0x4d, 0x80, 0x0, 0x0, 0x0, 0x10, 0x0,
- 0x0, 0x0,
-
- /* U+4E5D "九" */
- 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc,
- 0x0, 0x10, 0x0, 0x0, 0x1, 0x65, 0x5d, 0x55,
- 0xb5, 0x0, 0x0, 0x0, 0x0, 0x1a, 0x0, 0xa1,
- 0x0, 0x0, 0x0, 0x0, 0x38, 0x0, 0xa1, 0x0,
- 0x0, 0x0, 0x0, 0x64, 0x0, 0xa1, 0x0, 0x0,
- 0x0, 0x0, 0xa0, 0x0, 0xa1, 0x0, 0x0, 0x0,
- 0x2, 0x90, 0x0, 0xa1, 0x0, 0x10, 0x0, 0x9,
- 0x10, 0x0, 0xa2, 0x0, 0x60, 0x0, 0x63, 0x0,
- 0x0, 0x92, 0x0, 0x90, 0x4, 0x30, 0x0, 0x0,
- 0x6c, 0xaa, 0xd1, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+4E5F "也" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x94, 0x0, 0x0, 0x0, 0x0, 0x2,
- 0x0, 0x92, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0,
- 0x92, 0x0, 0x3a, 0x0, 0x0, 0xc, 0x0, 0x95,
- 0x66, 0x69, 0x0, 0x0, 0xc, 0x16, 0xc5, 0x0,
- 0x39, 0x0, 0x2, 0x5d, 0x40, 0x92, 0x0, 0x47,
- 0x0, 0x4, 0xc, 0x0, 0x92, 0x0, 0x66, 0x0,
- 0x0, 0xc, 0x0, 0x93, 0x57, 0xd2, 0x0, 0x0,
- 0xc, 0x0, 0x93, 0x7, 0x60, 0x20, 0x0, 0xc,
- 0x0, 0x71, 0x0, 0x0, 0x60, 0x0, 0xc, 0x0,
- 0x0, 0x0, 0x0, 0xa0, 0x0, 0xa, 0xba, 0xaa,
- 0xaa, 0xac, 0xd1,
-
- /* U+4E86 "了" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x55, 0x55,
- 0x55, 0x57, 0xc0, 0x0, 0x0, 0x0, 0x3, 0xb5,
- 0x0, 0x0, 0x0, 0x4, 0x60, 0x0, 0x0, 0x0,
- 0x29, 0x30, 0x0, 0x0, 0x0, 0x2, 0xb0, 0x0,
- 0x0, 0x0, 0x0, 0x2a, 0x0, 0x0, 0x0, 0x0,
- 0x2, 0xa0, 0x0, 0x0, 0x0, 0x0, 0x2a, 0x0,
- 0x0, 0x0, 0x0, 0x2, 0xa0, 0x0, 0x0, 0x0,
- 0x0, 0x2a, 0x0, 0x0, 0x0, 0x2, 0x15, 0xa0,
- 0x0, 0x0, 0x0, 0x17, 0xf6, 0x0, 0x0, 0x0,
- 0x0, 0x2, 0x0, 0x0, 0x0,
-
- /* U+4E88 "予" */
- 0x0, 0x55, 0x55, 0x55, 0x5b, 0x10, 0x0, 0x1,
- 0x0, 0x0, 0x1a, 0x82, 0x0, 0x0, 0x0, 0x54,
- 0x27, 0x10, 0x0, 0x0, 0x0, 0x0, 0x7d, 0x10,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xb4, 0x0, 0x15,
- 0x4, 0x65, 0x55, 0x5e, 0x55, 0x5b, 0xc0, 0x0,
- 0x0, 0x0, 0xd0, 0x3, 0x70, 0x0, 0x0, 0x0,
- 0xd, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0xd0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0, 0x0,
- 0x0, 0x17, 0xea, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x2, 0x0, 0x0, 0x0, 0x0,
-
- /* U+4E89 "争" */
- 0x0, 0x0, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x99, 0x0, 0x50, 0x0, 0x0, 0x0, 0x5,
- 0xa5, 0x57, 0xd2, 0x0, 0x0, 0x0, 0x28, 0x0,
- 0x8, 0x0, 0x0, 0x0, 0x2, 0x66, 0x55, 0x96,
- 0x55, 0xd1, 0x0, 0x2, 0x0, 0x0, 0xa1, 0x0,
- 0xb0, 0x0, 0x15, 0x55, 0x55, 0xc6, 0x55, 0xc8,
- 0xa0, 0x1, 0x0, 0x0, 0xa1, 0x0, 0xb0, 0x0,
- 0x0, 0x0, 0x0, 0xa1, 0x0, 0xb0, 0x0, 0x0,
- 0x55, 0x55, 0xc6, 0x55, 0xa0, 0x0, 0x0, 0x0,
- 0x0, 0xa1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5b, 0xe0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x20, 0x0,
- 0x0, 0x0,
-
- /* U+4E8B "事" */
- 0x0, 0x0, 0x0, 0x12, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2b, 0x0, 0x4, 0x20, 0x5, 0x55,
- 0x55, 0x6b, 0x55, 0x57, 0x60, 0x0, 0x7, 0x55,
- 0x6b, 0x55, 0x92, 0x0, 0x0, 0xb, 0x0, 0x29,
- 0x0, 0xc0, 0x0, 0x0, 0xc, 0x55, 0x6b, 0x55,
- 0xd0, 0x0, 0x0, 0x3, 0x0, 0x29, 0x0, 0x50,
- 0x0, 0x0, 0x36, 0x55, 0x6b, 0x55, 0xd2, 0x0,
- 0x16, 0x55, 0x55, 0x6b, 0x55, 0xd7, 0xb0, 0x0,
- 0x0, 0x0, 0x29, 0x0, 0xc0, 0x0, 0x0, 0x36,
- 0x55, 0x6b, 0x55, 0xd0, 0x0, 0x0, 0x0, 0x0,
- 0x39, 0x0, 0x20, 0x0, 0x0, 0x0, 0x17, 0xf7,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0,
- 0x0, 0x0,
-
- /* U+4E8C "二" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x46, 0x55, 0x55, 0x55, 0x98, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x50, 0x6,
- 0x55, 0x55, 0x55, 0x55, 0x56, 0x60,
-
- /* U+4E94 "五" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x10, 0x0,
- 0x65, 0x55, 0xc6, 0x55, 0x55, 0x30, 0x0, 0x0,
- 0x0, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xa0,
- 0x0, 0x30, 0x0, 0x0, 0x36, 0x58, 0xa5, 0x55,
- 0xd0, 0x0, 0x0, 0x0, 0x6, 0x50, 0x1, 0xa0,
- 0x0, 0x0, 0x0, 0x9, 0x30, 0x2, 0xa0, 0x0,
- 0x0, 0x0, 0xb, 0x0, 0x2, 0x90, 0x0, 0x0,
- 0x0, 0xc, 0x0, 0x3, 0x90, 0x0, 0x0, 0x0,
- 0xb, 0x0, 0x3, 0x80, 0x70, 0x5, 0x55, 0x56,
- 0x55, 0x55, 0x66, 0x72,
-
- /* U+4E9B "些" */
- 0x0, 0x0, 0x92, 0x0, 0xa0, 0x0, 0x0, 0x0,
- 0x0, 0xb0, 0x0, 0xb0, 0x2, 0x0, 0x0, 0xc0,
- 0xb0, 0x50, 0xb0, 0x3c, 0x40, 0x0, 0xb0, 0xb5,
- 0x52, 0xb5, 0x50, 0x0, 0x0, 0xb0, 0xb0, 0x0,
- 0xb0, 0x0, 0x50, 0x0, 0xb0, 0xb0, 0x1, 0xb0,
- 0x0, 0x90, 0x5, 0xd9, 0xa6, 0x41, 0x9a, 0x99,
- 0xc2, 0x8, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x15, 0x55, 0x55, 0x56, 0xd3, 0x0, 0x0,
- 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x6, 0x60, 0x6, 0x55, 0x55,
- 0x55, 0x55, 0x56, 0x60,
-
- /* U+4EA1 "亡" */
- 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa4, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x5, 0x0, 0x4, 0x80, 0x16, 0x5d, 0x55, 0x55,
- 0x55, 0x55, 0x51, 0x0, 0xd, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd,
- 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0xe, 0x55,
- 0x55, 0x55, 0x7d, 0x20, 0x0, 0x2, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+4EA4 "交" */
- 0x0, 0x0, 0x1, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb5, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x37, 0x0, 0x6, 0x50, 0x6, 0x55, 0x65,
- 0x55, 0x65, 0x55, 0x50, 0x0, 0x0, 0xc4, 0x0,
- 0x18, 0x30, 0x0, 0x0, 0xa, 0x40, 0x0, 0x10,
- 0xb9, 0x0, 0x1, 0x81, 0x31, 0x0, 0x88, 0xc,
- 0x0, 0x3, 0x0, 0x6, 0x0, 0xd1, 0x0, 0x0,
- 0x0, 0x0, 0x6, 0x26, 0x70, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xab, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x2, 0xba, 0x0, 0x0, 0x0, 0x0, 0x0, 0x69,
- 0x13, 0xc7, 0x20, 0x0, 0x1, 0x57, 0x20, 0x0,
- 0x6, 0xcf, 0xc1, 0x3, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x10,
-
- /* U+4EA6 "亦" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x58, 0x0, 0x8, 0x20, 0x65, 0x55, 0xd5, 0x5d,
- 0x55, 0x54, 0x0, 0x0, 0xc, 0x0, 0xc0, 0x0,
- 0x0, 0x3, 0xa0, 0xc0, 0xc, 0x12, 0x0, 0x0,
- 0x76, 0xc, 0x0, 0xc0, 0x82, 0x0, 0xb, 0x0,
- 0xb0, 0xc, 0x1, 0xd1, 0x3, 0x50, 0x39, 0x0,
- 0xc0, 0x8, 0x90, 0x60, 0x9, 0x20, 0xc, 0x0,
- 0x27, 0x0, 0x2, 0x90, 0x0, 0xc0, 0x0, 0x0,
- 0x1, 0x90, 0x4, 0x4e, 0x0, 0x0, 0x3, 0x50,
- 0x0, 0x1a, 0x90, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+4EAC "京" */
- 0x0, 0x0, 0x2, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc2, 0x0, 0x0, 0x0, 0x5, 0x55,
- 0x55, 0x96, 0x55, 0x5a, 0xc0, 0x1, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x55, 0x55,
- 0x55, 0xa0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x2,
- 0xb0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x2, 0xa0,
- 0x0, 0x0, 0xd, 0x55, 0x55, 0x56, 0xb0, 0x0,
- 0x0, 0x8, 0x0, 0xd0, 0x1, 0x30, 0x0, 0x0,
- 0x3, 0xa0, 0xd0, 0x6, 0x0, 0x0, 0x0, 0x1b,
- 0x20, 0xd0, 0x1, 0xb2, 0x0, 0x1, 0x91, 0x0,
- 0xd0, 0x0, 0x3e, 0x0, 0x15, 0x0, 0x4c, 0xd0,
- 0x0, 0x7, 0x0, 0x0, 0x0, 0x1, 0x10, 0x0,
- 0x0, 0x0,
-
- /* U+4EBA "人" */
- 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xf5, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xf6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xd6,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0xb8, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x7, 0x76, 0x30, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x31, 0x90, 0x0, 0x0,
- 0x0, 0x0, 0x2c, 0x0, 0xa2, 0x0, 0x0, 0x0,
- 0x0, 0xa4, 0x0, 0x2c, 0x0, 0x0, 0x0, 0x5,
- 0x80, 0x0, 0x8, 0xb0, 0x0, 0x0, 0x57, 0x0,
- 0x0, 0x0, 0xbd, 0x61, 0x5, 0x40, 0x0, 0x0,
- 0x0, 0x9, 0x71, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+4EC0 "什" */
- 0x0, 0x0, 0x20, 0x0, 0x30, 0x0, 0x0, 0x0,
- 0x4, 0xd0, 0x0, 0xc2, 0x0, 0x0, 0x0, 0x9,
- 0x50, 0x0, 0xc0, 0x0, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0xc0, 0x0, 0x0, 0x0, 0x6c, 0x0, 0x0,
- 0xc0, 0x0, 0x10, 0x0, 0xac, 0x36, 0x55, 0xd5,
- 0x58, 0x90, 0x5, 0x3c, 0x0, 0x0, 0xc0, 0x0,
- 0x0, 0x15, 0xc, 0x0, 0x0, 0xc0, 0x0, 0x0,
- 0x10, 0xc, 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0,
- 0xc, 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0xc0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0xc0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x20,
- 0x0, 0x0,
-
- /* U+4ECA "今" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xe5, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x8, 0x76, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c,
- 0x0, 0x90, 0x0, 0x0, 0x0, 0x1, 0xc2, 0x0,
- 0x3b, 0x10, 0x0, 0x0, 0x1a, 0x11, 0x92, 0x3,
- 0xd7, 0x10, 0x2, 0x81, 0x0, 0x3b, 0x0, 0x1b,
- 0xd2, 0x14, 0x0, 0x0, 0x1, 0x0, 0x20, 0x0,
- 0x0, 0x16, 0x55, 0x55, 0x58, 0xd0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x86, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x3, 0xa0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc,
- 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x0,
- 0x0, 0x0,
-
- /* U+4ECB "介" */
- 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xe6, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x6, 0x86, 0x10, 0x0, 0x0, 0x0, 0x0, 0x1c,
- 0x0, 0x90, 0x0, 0x0, 0x0, 0x0, 0xa3, 0x0,
- 0x2b, 0x10, 0x0, 0x0, 0x8, 0x42, 0x0, 0x44,
- 0xd8, 0x20, 0x1, 0x71, 0x2c, 0x0, 0xa4, 0x1a,
- 0x80, 0x3, 0x0, 0x29, 0x0, 0xa2, 0x0, 0x0,
- 0x0, 0x0, 0x39, 0x0, 0xa2, 0x0, 0x0, 0x0,
- 0x0, 0x56, 0x0, 0xa2, 0x0, 0x0, 0x0, 0x0,
- 0xb1, 0x0, 0xa2, 0x0, 0x0, 0x0, 0x6, 0x60,
- 0x0, 0xa2, 0x0, 0x0, 0x0, 0x65, 0x0, 0x0,
- 0xa2, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x30,
- 0x0, 0x0,
-
- /* U+4ECD "仍" */
- 0x0, 0x1, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x5, 0xb0, 0x0, 0x0, 0x13, 0x0, 0x0, 0xa,
- 0x25, 0x6d, 0x55, 0x99, 0x0, 0x0, 0x1a, 0x0,
- 0xc, 0x0, 0x84, 0x0, 0x0, 0x7c, 0x0, 0xb,
- 0x0, 0xb0, 0x0, 0x0, 0x8c, 0x0, 0x1a, 0x0,
- 0xc0, 0x40, 0x6, 0x1c, 0x0, 0x29, 0x2, 0x85,
- 0xd1, 0x12, 0xc, 0x0, 0x47, 0x0, 0x0, 0xc0,
- 0x0, 0xc, 0x0, 0x74, 0x0, 0x1, 0xb0, 0x0,
- 0xc, 0x0, 0xb0, 0x0, 0x3, 0x90, 0x0, 0xc,
- 0x3, 0x80, 0x0, 0x6, 0x70, 0x0, 0xc, 0x9,
- 0x0, 0x4, 0x3c, 0x30, 0x0, 0xd, 0x62, 0x0,
- 0x1, 0xc9, 0x0, 0x0, 0x3, 0x10, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+4ED5 "仕" */
- 0x0, 0x0, 0x20, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x3, 0xe1, 0x0, 0xd3, 0x0, 0x0, 0x0, 0x8,
- 0x70, 0x0, 0xd0, 0x0, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0xd0, 0x0, 0x0, 0x0, 0x4c, 0x0, 0x0,
- 0xd0, 0x0, 0x20, 0x0, 0xbe, 0x26, 0x55, 0xd5,
- 0x57, 0x90, 0x4, 0x4d, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0x6, 0xd, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0x10, 0xd, 0x0, 0x0, 0xd0, 0x0, 0x0, 0x0,
- 0xd, 0x0, 0x0, 0xd0, 0x0, 0x0, 0x0, 0xd,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0xd0, 0x7, 0x10, 0x0, 0xe, 0x6, 0x55,
- 0x55, 0x55, 0x30, 0x0, 0x3, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+4ED6 "他" */
- 0x0, 0x1, 0x30, 0x0, 0x20, 0x0, 0x0, 0x0,
- 0x6, 0xd0, 0x0, 0xb2, 0x0, 0x0, 0x0, 0xa,
- 0x40, 0x0, 0xb0, 0x0, 0x0, 0x0, 0x1c, 0x0,
- 0x90, 0xb0, 0x2, 0x0, 0x0, 0x7a, 0x0, 0xc0,
- 0xb5, 0x5d, 0x10, 0x0, 0xac, 0x14, 0xd5, 0xc0,
- 0xb, 0x0, 0x5, 0x3c, 0x21, 0xb0, 0xb0, 0xc,
- 0x0, 0x6, 0xc, 0x0, 0xb0, 0xb0, 0xc, 0x0,
- 0x0, 0xc, 0x0, 0xb0, 0xb1, 0x7d, 0x0, 0x0,
- 0xc, 0x0, 0xb0, 0xb0, 0x23, 0x0, 0x0, 0xc,
- 0x0, 0xb0, 0x70, 0x0, 0x50, 0x0, 0xc, 0x0,
- 0xb0, 0x0, 0x0, 0x90, 0x0, 0xc, 0x0, 0xa9,
- 0x99, 0x99, 0xd3, 0x0, 0x3, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+4ED8 "付" */
- 0x0, 0x0, 0x30, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x1, 0xe1, 0x0, 0x0, 0xd2, 0x0, 0x0, 0x6,
- 0x70, 0x0, 0x0, 0xd0, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0x0, 0xd0, 0x10, 0x0, 0x3c, 0x5, 0x55,
- 0x55, 0xe5, 0xa1, 0x0, 0xad, 0x0, 0x0, 0x0,
- 0xd0, 0x0, 0x4, 0x5c, 0x0, 0x40, 0x0, 0xd0,
- 0x0, 0x6, 0xc, 0x0, 0x67, 0x0, 0xd0, 0x0,
- 0x10, 0xc, 0x0, 0xe, 0x0, 0xd0, 0x0, 0x0,
- 0xc, 0x0, 0x2, 0x0, 0xd0, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x5c, 0xd0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x1,
- 0x10, 0x0,
-
- /* U+4EE3 "代" */
- 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0xf2, 0x4, 0x90, 0x40, 0x0, 0x0, 0x6,
- 0x80, 0x3, 0x90, 0x3d, 0x20, 0x0, 0xc, 0x10,
- 0x2, 0xa0, 0x5, 0x40, 0x0, 0x4d, 0x10, 0x1,
- 0xb0, 0x3, 0x70, 0x0, 0xad, 0x15, 0x55, 0xd5,
- 0x54, 0x30, 0x6, 0x3c, 0x0, 0x0, 0xc0, 0x0,
- 0x0, 0x15, 0xc, 0x0, 0x0, 0xa2, 0x0, 0x0,
- 0x10, 0xc, 0x0, 0x0, 0x76, 0x0, 0x0, 0x0,
- 0xc, 0x0, 0x0, 0x2c, 0x0, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0xa, 0x60, 0x32, 0x0, 0xc, 0x0,
- 0x0, 0x1, 0xd6, 0x81, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x1b, 0xf2, 0x0, 0x3, 0x0, 0x0, 0x0,
- 0x0, 0x31,
-
- /* U+4EE4 "令" */
- 0x0, 0x0, 0x0, 0x31, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd8, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x5, 0xb4, 0x20, 0x0, 0x0, 0x0, 0x0, 0x1d,
- 0x10, 0x90, 0x0, 0x0, 0x0, 0x0, 0xb5, 0x20,
- 0x2a, 0x0, 0x0, 0x0, 0x9, 0x50, 0x87, 0x4,
- 0xd3, 0x0, 0x0, 0x72, 0x0, 0xd, 0x0, 0x3d,
- 0xc1, 0x14, 0x5, 0x55, 0x56, 0x57, 0xb0, 0x10,
- 0x0, 0x1, 0x0, 0x0, 0xc, 0x60, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x73, 0x0, 0x0, 0x0, 0x0,
- 0x47, 0x23, 0x40, 0x0, 0x0, 0x0, 0x0, 0x1,
- 0xac, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8,
- 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x30,
- 0x0, 0x0,
-
- /* U+4EE5 "以" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0x10,
- 0x0, 0x0, 0x3c, 0x0, 0xd, 0x10, 0x70, 0x0,
- 0x3b, 0x0, 0xd, 0x0, 0x3d, 0x0, 0x3a, 0x0,
- 0xd, 0x0, 0xc, 0x40, 0x3a, 0x0, 0xd, 0x0,
- 0x2, 0x0, 0x49, 0x0, 0xd, 0x0, 0x0, 0x0,
- 0x58, 0x0, 0xd, 0x0, 0x4, 0x0, 0x85, 0x0,
- 0xd, 0x3, 0x80, 0x0, 0xd1, 0x0, 0xd, 0x99,
- 0x0, 0x5, 0xa8, 0x0, 0xe, 0x80, 0x0, 0x3c,
- 0x3, 0xd1, 0x1, 0x0, 0x7, 0x80, 0x0, 0x97,
- 0x0, 0x35, 0x61, 0x0, 0x0, 0x12, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0,
-
- /* U+4EEE "仮" */
- 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x2, 0xd0, 0x10, 0x4, 0x8d, 0x70, 0x0, 0x8,
- 0x50, 0xc4, 0x42, 0x0, 0x0, 0x0, 0xb, 0x0,
- 0xb0, 0x0, 0x0, 0x0, 0x0, 0x6c, 0x0, 0xc5,
- 0x55, 0x59, 0x30, 0x0, 0x9b, 0x0, 0xb4, 0x0,
- 0xc, 0x10, 0x6, 0x1b, 0x0, 0xc4, 0x10, 0x1a,
- 0x0, 0x2, 0xb, 0x0, 0xb0, 0x60, 0x74, 0x0,
- 0x0, 0xb, 0x3, 0x80, 0x80, 0xb0, 0x0, 0x0,
- 0xb, 0x6, 0x40, 0x3b, 0x70, 0x0, 0x0, 0xb,
- 0x9, 0x0, 0x2e, 0x50, 0x0, 0x0, 0xb, 0x16,
- 0x4, 0x91, 0xb7, 0x0, 0x0, 0xb, 0x62, 0x64,
- 0x0, 0x8, 0xd2, 0x0, 0x0, 0x2, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+4EF6 "件" */
- 0x0, 0x0, 0x30, 0x0, 0x4, 0x0, 0x0, 0x0,
- 0x2, 0xf1, 0x0, 0xe, 0x0, 0x0, 0x0, 0x8,
- 0x70, 0xa5, 0xc, 0x0, 0x0, 0x0, 0xc, 0x0,
- 0xd0, 0xc, 0x0, 0x20, 0x0, 0x6e, 0x1, 0xb5,
- 0x5d, 0x56, 0x70, 0x0, 0x9c, 0x6, 0x20, 0xc,
- 0x0, 0x0, 0x6, 0x1c, 0x5, 0x0, 0xc, 0x0,
- 0x0, 0x13, 0xc, 0x5, 0x55, 0x5d, 0x55, 0xa4,
- 0x0, 0xc, 0x1, 0x0, 0xc, 0x0, 0x0, 0x0,
- 0xc, 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0xd, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x2,
- 0x0, 0x0,
-
- /* U+4EFB "任" */
- 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0xe0, 0x0, 0x0, 0x14, 0x0, 0x0, 0x6,
- 0x70, 0x35, 0x89, 0xa9, 0x10, 0x0, 0xc, 0x2,
- 0x10, 0xb1, 0x0, 0x0, 0x0, 0x4b, 0x0, 0x0,
- 0xb1, 0x0, 0x0, 0x0, 0xad, 0x0, 0x0, 0xb1,
- 0x0, 0x0, 0x5, 0x3c, 0x0, 0x0, 0xb1, 0x3,
- 0x40, 0x15, 0xc, 0x26, 0x55, 0xc5, 0x55, 0x40,
- 0x0, 0xc, 0x0, 0x0, 0xb1, 0x0, 0x0, 0x0,
- 0xc, 0x0, 0x0, 0xb1, 0x0, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0xb1, 0x0, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0xb1, 0x0, 0x30, 0x0, 0xd, 0x36, 0x55,
- 0x75, 0x56, 0x70, 0x0, 0x2, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+4EFD "份" */
- 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0,
- 0x0, 0xd1, 0x6, 0x7, 0x0, 0x0, 0x0, 0x4,
- 0x90, 0x2c, 0x6, 0x10, 0x0, 0x0, 0xb, 0x10,
- 0x84, 0x1, 0x70, 0x0, 0x0, 0x3a, 0x0, 0xa0,
- 0x0, 0x93, 0x0, 0x0, 0x9d, 0x7, 0x20, 0x0,
- 0x1d, 0x60, 0x5, 0x2c, 0x34, 0x55, 0x55, 0x84,
- 0xa3, 0x13, 0xc, 0x20, 0xd, 0x0, 0xa1, 0x0,
- 0x0, 0xc, 0x0, 0x1b, 0x0, 0xb0, 0x0, 0x0,
- 0xc, 0x0, 0x38, 0x0, 0xb0, 0x0, 0x0, 0xc,
- 0x0, 0x92, 0x0, 0xb0, 0x0, 0x0, 0xc, 0x2,
- 0x80, 0x22, 0xc0, 0x0, 0x0, 0xc, 0x36, 0x0,
- 0x3d, 0x60, 0x0, 0x0, 0x2, 0x10, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+4F01 "企" */
- 0x0, 0x0, 0x0, 0x12, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x9c, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x2, 0xd4, 0x30, 0x0, 0x0, 0x0, 0x0, 0xc,
- 0x30, 0x73, 0x0, 0x0, 0x0, 0x0, 0x95, 0x2,
- 0xa, 0x50, 0x0, 0x0, 0x8, 0x40, 0xe, 0x10,
- 0xab, 0x41, 0x1, 0x72, 0x0, 0xc, 0x0, 0x6,
- 0x91, 0x3, 0x0, 0xe1, 0xc, 0x0, 0x60, 0x0,
- 0x0, 0x0, 0xc0, 0xd, 0x55, 0x61, 0x0, 0x0,
- 0x0, 0xc0, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc0, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0,
- 0xc, 0x0, 0x2, 0x40, 0x5, 0x55, 0x75, 0x57,
- 0x55, 0x56, 0x70,
-
- /* U+4F0A "伊" */
- 0x0, 0x2, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x7, 0x90, 0x0, 0x0, 0x4, 0x0, 0x0, 0xc,
- 0x16, 0x5c, 0x55, 0x5d, 0x0, 0x0, 0x39, 0x0,
- 0xc, 0x0, 0xc, 0x0, 0x0, 0x9b, 0x0, 0xc,
- 0x0, 0xc, 0x20, 0x2, 0x6c, 0x46, 0x5d, 0x55,
- 0x5d, 0x74, 0x6, 0xc, 0x0, 0xc, 0x0, 0xc,
- 0x0, 0x0, 0xc, 0x0, 0xc, 0x0, 0xc, 0x0,
- 0x0, 0xc, 0x7, 0x5d, 0x55, 0x5c, 0x0, 0x0,
- 0xc, 0x0, 0x2a, 0x0, 0x5, 0x0, 0x0, 0xc,
- 0x0, 0x83, 0x0, 0x0, 0x0, 0x0, 0xc, 0x3,
- 0x80, 0x0, 0x0, 0x0, 0x0, 0xc, 0x35, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x1, 0x10, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+4F11 "休" */
- 0x0, 0x0, 0x20, 0x0, 0x30, 0x0, 0x0, 0x0,
- 0x2, 0xd1, 0x0, 0xc2, 0x0, 0x0, 0x0, 0x8,
- 0x50, 0x0, 0xc0, 0x0, 0x0, 0x0, 0xb, 0x0,
- 0x0, 0xc0, 0x3, 0x40, 0x0, 0x6b, 0x36, 0x5a,
- 0xf7, 0x55, 0x50, 0x0, 0xac, 0x0, 0xc, 0xd5,
- 0x0, 0x0, 0x6, 0x2c, 0x0, 0x2a, 0xc3, 0x40,
- 0x0, 0x13, 0xc, 0x0, 0xa2, 0xc0, 0xa0, 0x0,
- 0x0, 0xc, 0x3, 0x80, 0xc0, 0x67, 0x0, 0x0,
- 0xc, 0x8, 0x0, 0xc0, 0xc, 0x70, 0x0, 0xc,
- 0x51, 0x0, 0xc0, 0x2, 0x92, 0x0, 0xc, 0x0,
- 0x0, 0xc0, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0,
- 0xc0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x20,
- 0x0, 0x0,
-
- /* U+4F1A "会" */
- 0x0, 0x0, 0x0, 0x60, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2, 0xe5, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xa, 0x47, 0x10, 0x0, 0x0, 0x0, 0x0, 0x68,
- 0x0, 0xa2, 0x0, 0x0, 0x0, 0x3, 0x90, 0x0,
- 0x1c, 0x70, 0x0, 0x0, 0x3a, 0x55, 0x55, 0x79,
- 0x9f, 0xa2, 0x4, 0x40, 0x10, 0x0, 0x0, 0x2,
- 0x20, 0x10, 0x0, 0x0, 0x0, 0x0, 0x6, 0x0,
- 0x2, 0x65, 0x58, 0x95, 0x55, 0x58, 0x30, 0x0,
- 0x0, 0xd, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x85, 0x0, 0x64, 0x0, 0x0, 0x0, 0x6, 0x50,
- 0x0, 0x8, 0x90, 0x0, 0x0, 0x5e, 0xca, 0x87,
- 0x65, 0xc5, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0,
- 0x21, 0x0,
-
- /* U+4F1D "伝" */
- 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xe3, 0x0, 0x0, 0x1, 0x0, 0x0, 0x5,
- 0xa0, 0x55, 0x55, 0x68, 0x0, 0x0, 0xc, 0x20,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x4b, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xad, 0x15, 0x55, 0x55,
- 0x56, 0xc1, 0x7, 0x1c, 0x1, 0x0, 0xd2, 0x0,
- 0x0, 0x11, 0xc, 0x0, 0x3, 0xa0, 0x0, 0x0,
- 0x0, 0xc, 0x0, 0x9, 0x20, 0x0, 0x0, 0x0,
- 0xc, 0x0, 0x29, 0x0, 0x52, 0x0, 0x0, 0xc,
- 0x0, 0x90, 0x0, 0xc, 0x10, 0x0, 0xc, 0x8,
- 0xa7, 0x86, 0x5a, 0x80, 0x0, 0xd, 0x4, 0x62,
- 0x0, 0x3, 0x50, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+4F38 "伸" */
- 0x0, 0x1, 0x0, 0x0, 0x12, 0x0, 0x0, 0x0,
- 0x8, 0x70, 0x0, 0x2b, 0x0, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0x2a, 0x0, 0x20, 0x0, 0x39, 0xb,
- 0x55, 0x6b, 0x55, 0xe0, 0x0, 0xab, 0xc, 0x0,
- 0x2a, 0x0, 0xc0, 0x2, 0x9a, 0xc, 0x0, 0x2a,
- 0x0, 0xc0, 0x8, 0x1a, 0xc, 0x55, 0x6b, 0x55,
- 0xc0, 0x11, 0x1a, 0xc, 0x0, 0x2a, 0x0, 0xc0,
- 0x0, 0x1a, 0xc, 0x55, 0x6b, 0x55, 0xc0, 0x0,
- 0x1a, 0x8, 0x0, 0x2a, 0x0, 0x80, 0x0, 0x1a,
- 0x0, 0x0, 0x2a, 0x0, 0x0, 0x0, 0x1a, 0x0,
- 0x0, 0x2a, 0x0, 0x0, 0x0, 0x2b, 0x0, 0x0,
- 0x2a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
- 0x0, 0x0,
-
- /* U+4F3C "似" */
- 0x0, 0x1, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x8, 0x70, 0x0, 0x0, 0x8, 0x20, 0x0, 0xc,
- 0x3, 0x1, 0x0, 0xc, 0x10, 0x0, 0x48, 0xb,
- 0x14, 0x60, 0xc, 0x0, 0x0, 0xab, 0xb, 0x0,
- 0xe1, 0xd, 0x0, 0x2, 0x7b, 0xb, 0x0, 0x60,
- 0xd, 0x0, 0x7, 0xb, 0xb, 0x0, 0x0, 0xd,
- 0x0, 0x10, 0xb, 0xb, 0x0, 0x0, 0x3b, 0x0,
- 0x0, 0xb, 0xb, 0x0, 0x50, 0x77, 0x0, 0x0,
- 0xb, 0xb, 0x59, 0x10, 0xd6, 0x0, 0x0, 0xb,
- 0xc, 0x90, 0xa, 0x63, 0xa0, 0x0, 0xb, 0x2,
- 0x0, 0x96, 0x0, 0x97, 0x0, 0x1b, 0x0, 0x56,
- 0x10, 0x0, 0x23, 0x0, 0x1, 0x3, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+4F46 "但" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb, 0x31, 0x0, 0x0, 0x2, 0x0, 0x0, 0x2c,
- 0xc, 0x55, 0x55, 0x5e, 0x0, 0x0, 0x84, 0xc,
- 0x0, 0x0, 0xc, 0x0, 0x1, 0xe1, 0xc, 0x0,
- 0x0, 0xc, 0x0, 0x7, 0xd0, 0xc, 0x55, 0x55,
- 0x5c, 0x0, 0x25, 0xc0, 0xc, 0x0, 0x0, 0xc,
- 0x0, 0x30, 0xc0, 0xc, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0xc0, 0xc, 0x0, 0x0, 0xc, 0x0, 0x0,
- 0xc0, 0xc, 0x55, 0x55, 0x5c, 0x0, 0x0, 0xc0,
- 0x7, 0x0, 0x0, 0x3, 0x0, 0x0, 0xc0, 0x0,
- 0x0, 0x0, 0x0, 0x40, 0x0, 0xc2, 0x65, 0x55,
- 0x55, 0x55, 0x71, 0x0, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+4F4D "位" */
- 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x4, 0xc0, 0x3, 0x80, 0x0, 0x0, 0x0, 0x9,
- 0x50, 0x0, 0xd2, 0x0, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0x20, 0x4, 0x50, 0x0, 0x5a, 0x16, 0x55,
- 0x55, 0x55, 0x40, 0x0, 0xac, 0x0, 0x20, 0x0,
- 0x87, 0x0, 0x4, 0x4b, 0x0, 0x80, 0x0, 0xa3,
- 0x0, 0x5, 0xb, 0x0, 0x74, 0x0, 0xb0, 0x0,
- 0x0, 0xb, 0x0, 0x3b, 0x1, 0x80, 0x0, 0x0,
- 0xb, 0x0, 0x1d, 0x6, 0x30, 0x0, 0x0, 0xb,
- 0x0, 0x4, 0x8, 0x0, 0x0, 0x0, 0xb, 0x0,
- 0x0, 0x6, 0x0, 0x70, 0x0, 0xb, 0x36, 0x55,
- 0x55, 0x55, 0x62, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+4F4E "低" */
- 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xd3, 0x0, 0x0, 0x3b, 0x30, 0x0, 0x49, 0x4,
- 0x46, 0xc7, 0x41, 0x0, 0xa, 0x10, 0xc0, 0xb,
- 0x0, 0x0, 0x2, 0xf2, 0xb, 0x0, 0xb0, 0x0,
- 0x0, 0x9b, 0x10, 0xb0, 0xb, 0x0, 0x20, 0x43,
- 0xa1, 0xc, 0x55, 0xb6, 0x57, 0x41, 0xa, 0x10,
- 0xb0, 0x6, 0x40, 0x0, 0x0, 0xa1, 0xb, 0x0,
- 0x38, 0x0, 0x0, 0xa, 0x10, 0xb0, 0x0, 0xc0,
- 0x1, 0x0, 0xa1, 0xb, 0x36, 0x6, 0x90, 0x70,
- 0xa, 0x10, 0xf7, 0x53, 0xa, 0x99, 0x0, 0xa1,
- 0x3, 0x0, 0xc0, 0x7, 0xa0, 0x1, 0x0, 0x0,
- 0x1, 0x0, 0x0,
-
- /* U+4F4F "住" */
- 0x0, 0x0, 0x20, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xe3, 0x7, 0x70, 0x0, 0x0, 0x0, 0x5,
- 0x90, 0x0, 0xd2, 0x0, 0x0, 0x0, 0xb, 0x15,
- 0x55, 0x75, 0x59, 0x90, 0x0, 0x4c, 0x1, 0x0,
- 0xc0, 0x0, 0x0, 0x0, 0x9c, 0x0, 0x0, 0xc0,
- 0x0, 0x0, 0x6, 0x1c, 0x0, 0x0, 0xc0, 0x0,
- 0x0, 0x12, 0xc, 0x3, 0x55, 0xd5, 0x6c, 0x10,
- 0x0, 0xc, 0x1, 0x0, 0xc0, 0x0, 0x0, 0x0,
- 0xc, 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0xc0, 0x0, 0x30, 0x0, 0xd, 0x36, 0x55,
- 0x85, 0x57, 0x80, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+4F53 "体" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x3, 0xb0, 0x0, 0xc2, 0x0, 0x0, 0x0, 0x9,
- 0x40, 0x0, 0xc0, 0x0, 0x0, 0x0, 0xb, 0x0,
- 0x0, 0xc0, 0x2, 0x50, 0x0, 0x69, 0x16, 0x5b,
- 0xf8, 0x55, 0x50, 0x0, 0xac, 0x0, 0xc, 0xc5,
- 0x0, 0x0, 0x6, 0x1b, 0x0, 0x57, 0xc1, 0x60,
- 0x0, 0x13, 0xb, 0x0, 0xa0, 0xc0, 0x91, 0x0,
- 0x0, 0xb, 0x7, 0x30, 0xc0, 0x2c, 0x0, 0x0,
- 0xb, 0x25, 0x0, 0xc0, 0x59, 0xc2, 0x0, 0xb,
- 0x30, 0x75, 0xd5, 0x53, 0x30, 0x0, 0xb, 0x0,
- 0x0, 0xc0, 0x0, 0x0, 0x0, 0xb, 0x0, 0x0,
- 0xc0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x20,
- 0x0, 0x0,
-
- /* U+4F55 "何" */
- 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x3, 0xb0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x8,
- 0x46, 0x55, 0x55, 0x59, 0x93, 0x0, 0xc, 0x0,
- 0x0, 0x0, 0xb, 0x0, 0x0, 0x5c, 0x2, 0x0,
- 0x30, 0xb, 0x0, 0x0, 0xab, 0xb, 0x55, 0xb4,
- 0xb, 0x0, 0x6, 0x2b, 0xb, 0x0, 0xa2, 0xb,
- 0x0, 0x2, 0xb, 0xb, 0x0, 0xa2, 0xb, 0x0,
- 0x0, 0xb, 0xb, 0x55, 0xb2, 0xb, 0x0, 0x0,
- 0xb, 0xa, 0x0, 0x40, 0xb, 0x0, 0x0, 0xb,
- 0x0, 0x0, 0x0, 0xb, 0x0, 0x0, 0xb, 0x0,
- 0x0, 0x0, 0xb, 0x0, 0x0, 0xc, 0x0, 0x0,
- 0x17, 0xd9, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x20, 0x0,
-
- /* U+4F59 "余" */
- 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2, 0xe4, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb, 0x46, 0x10, 0x0, 0x0, 0x0, 0x0, 0x87,
- 0x0, 0x92, 0x0, 0x0, 0x0, 0x7, 0x70, 0x0,
- 0xb, 0x60, 0x0, 0x0, 0x68, 0x65, 0x65, 0x7a,
- 0xae, 0x80, 0x16, 0x10, 0x0, 0xb1, 0x0, 0x4,
- 0x30, 0x0, 0x55, 0x55, 0xc5, 0x55, 0xc3, 0x0,
- 0x0, 0x10, 0x0, 0xb1, 0x0, 0x0, 0x0, 0x0,
- 0x4, 0xb0, 0xb1, 0x45, 0x0, 0x0, 0x0, 0x2c,
- 0x10, 0xb1, 0x5, 0xc2, 0x0, 0x2, 0x90, 0x0,
- 0xb0, 0x0, 0x5e, 0x0, 0x15, 0x0, 0x3b, 0xe0,
- 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0,
- 0x0, 0x0,
-
- /* U+4F5C "作" */
- 0x0, 0x0, 0x30, 0x3, 0x10, 0x0, 0x0, 0x0,
- 0x2, 0xd1, 0xa, 0x50, 0x0, 0x0, 0x0, 0x7,
- 0x50, 0x1b, 0x0, 0x0, 0x20, 0x0, 0xb, 0x0,
- 0x87, 0x95, 0x55, 0x91, 0x0, 0x5b, 0x1, 0x90,
- 0xc0, 0x0, 0x0, 0x0, 0xac, 0x7, 0x0, 0xc0,
- 0x0, 0x0, 0x6, 0x2c, 0x21, 0x0, 0xd5, 0x5a,
- 0x70, 0x3, 0xc, 0x0, 0x0, 0xc0, 0x0, 0x0,
- 0x0, 0xc, 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0,
- 0xc, 0x0, 0x0, 0xd5, 0x56, 0xb0, 0x0, 0xc,
- 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0xc0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0xd0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x20,
- 0x0, 0x0,
-
- /* U+4F60 "你" */
- 0x0, 0x0, 0x40, 0x2, 0x0, 0x0, 0x0, 0x0,
- 0x2, 0xe1, 0xe, 0x20, 0x0, 0x0, 0x0, 0x8,
- 0x60, 0x58, 0x0, 0x0, 0x0, 0x0, 0xc, 0x0,
- 0xb6, 0x55, 0x58, 0x90, 0x0, 0x7c, 0x2, 0x70,
- 0x30, 0x9, 0x30, 0x1, 0x9c, 0x7, 0x0, 0x94,
- 0x2, 0x0, 0x7, 0x1c, 0x11, 0x51, 0x93, 0x10,
- 0x0, 0x12, 0xc, 0x0, 0xd1, 0x93, 0x53, 0x0,
- 0x0, 0xc, 0x3, 0x70, 0x93, 0xb, 0x20, 0x0,
- 0xc, 0x8, 0x0, 0x93, 0x4, 0xc0, 0x0, 0xc,
- 0x24, 0x0, 0x93, 0x0, 0xc0, 0x0, 0xc, 0x20,
- 0x0, 0xa2, 0x0, 0x0, 0x0, 0xc, 0x0, 0x19,
- 0xe1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x10,
- 0x0, 0x0,
-
- /* U+4F7F "使" */
- 0x0, 0x0, 0x20, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x3, 0xe1, 0x0, 0xa2, 0x0, 0x0, 0x0, 0x8,
- 0x60, 0x0, 0xa1, 0x1, 0x60, 0x0, 0xc, 0x5,
- 0x55, 0xc5, 0x55, 0x50, 0x0, 0x6b, 0x1, 0x65,
- 0xc5, 0x58, 0x10, 0x0, 0x8b, 0x2, 0x90, 0xa0,
- 0xb, 0x0, 0x5, 0x1b, 0x1, 0x90, 0xa0, 0xb,
- 0x0, 0x12, 0xb, 0x2, 0xb5, 0xc5, 0x5c, 0x0,
- 0x0, 0xb, 0x0, 0x30, 0xb0, 0x2, 0x0, 0x0,
- 0xb, 0x0, 0x5, 0xa0, 0x0, 0x0, 0x0, 0xb,
- 0x0, 0x7, 0x80, 0x0, 0x0, 0x0, 0xb, 0x0,
- 0x2a, 0x7a, 0x30, 0x0, 0x0, 0xb, 0x5, 0x60,
- 0x2, 0xae, 0xa1, 0x0, 0x2, 0x30, 0x0, 0x0,
- 0x0, 0x10,
-
- /* U+4F86 "來" */
- 0x0, 0x0, 0x0, 0x11, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2c, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2a, 0x0, 0x3, 0x0, 0x1, 0x65, 0x55,
- 0x6c, 0x55, 0x59, 0x50, 0x0, 0x3, 0xb0, 0x2a,
- 0x1, 0xd0, 0x0, 0x0, 0x8, 0x60, 0x2a, 0x4,
- 0x80, 0x0, 0x0, 0x1a, 0x76, 0x3b, 0x9, 0x5a,
- 0x10, 0x0, 0x81, 0x9, 0xbd, 0x64, 0x4, 0x50,
- 0x1, 0x0, 0x6, 0xaa, 0x81, 0x0, 0x0, 0x0,
- 0x0, 0x49, 0x2a, 0xb, 0x20, 0x0, 0x0, 0x5,
- 0x80, 0x2a, 0x1, 0xd6, 0x0, 0x0, 0x64, 0x0,
- 0x2a, 0x0, 0x1b, 0xe3, 0x4, 0x0, 0x0, 0x3b,
- 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x12, 0x0,
- 0x0, 0x0,
-
- /* U+4F8B "例" */
- 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2,
- 0xd0, 0x0, 0x0, 0x0, 0xb2, 0x0, 0x76, 0x57,
- 0x76, 0x80, 0xb, 0x0, 0xb, 0x0, 0x83, 0x0,
- 0x82, 0xb0, 0x2, 0xe1, 0xb, 0x3, 0x1b, 0xb,
- 0x0, 0x8d, 0x1, 0xa5, 0xb5, 0xb0, 0xb0, 0x25,
- 0xb0, 0x73, 0xc, 0xb, 0xb, 0x2, 0xb, 0x7,
- 0x93, 0xa0, 0xb0, 0xb0, 0x0, 0xb2, 0x4, 0x94,
- 0xb, 0xb, 0x0, 0xb, 0x0, 0x1b, 0x0, 0xb0,
- 0xb0, 0x0, 0xb0, 0x8, 0x30, 0x1, 0xb, 0x0,
- 0xb, 0x4, 0x50, 0x0, 0x0, 0xb0, 0x0, 0xb4,
- 0x30, 0x0, 0x3, 0x9e, 0x0, 0x2, 0x0, 0x0,
- 0x0, 0x0, 0x20,
-
- /* U+4F9B "供" */
- 0x0, 0x0, 0x20, 0x2, 0x0, 0x10, 0x0, 0x0,
- 0x1, 0xe1, 0xd, 0x0, 0xd0, 0x0, 0x0, 0x7,
- 0x70, 0xb, 0x0, 0xb0, 0x0, 0x0, 0xc, 0x0,
- 0xb, 0x0, 0xb0, 0x40, 0x0, 0x6b, 0x6, 0x5c,
- 0x55, 0xc5, 0x60, 0x0, 0xaa, 0x0, 0xb, 0x0,
- 0xb0, 0x0, 0x6, 0x1a, 0x0, 0xb, 0x0, 0xb0,
- 0x0, 0x2, 0xa, 0x0, 0xb, 0x0, 0xb0, 0x30,
- 0x0, 0xa, 0x56, 0x57, 0x55, 0x75, 0x84, 0x0,
- 0xa, 0x0, 0x8, 0x1, 0x10, 0x0, 0x0, 0xa,
- 0x0, 0x79, 0x0, 0x85, 0x0, 0x0, 0xa, 0x3,
- 0x90, 0x0, 0xa, 0x80, 0x0, 0x1b, 0x27, 0x0,
- 0x0, 0x0, 0xb0, 0x0, 0x3, 0x20, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+4F9D "依" */
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x8, 0x80, 0x3, 0x80, 0x0, 0x0, 0x0, 0xc,
- 0x10, 0x0, 0xc1, 0x2, 0x30, 0x0, 0x29, 0x26,
- 0x56, 0xe5, 0x55, 0x50, 0x0, 0x9c, 0x0, 0x7,
- 0x90, 0x0, 0x0, 0x1, 0x7b, 0x0, 0x1a, 0x50,
- 0x6, 0x0, 0x6, 0xb, 0x0, 0xa1, 0x51, 0x5b,
- 0x20, 0x2, 0xb, 0x6, 0xe1, 0x19, 0x50, 0x0,
- 0x0, 0xb, 0x44, 0xb0, 0xa, 0x0, 0x0, 0x0,
- 0xb, 0x20, 0xb0, 0x6, 0x70, 0x0, 0x0, 0xb,
- 0x0, 0xb0, 0x41, 0xc4, 0x0, 0x0, 0xb, 0x0,
- 0xb9, 0x20, 0x2e, 0x70, 0x0, 0xc, 0x0, 0xa2,
- 0x0, 0x3, 0x60, 0x0, 0x3, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+4FA1 "価" */
- 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x3, 0xc0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x8,
- 0x56, 0x58, 0x58, 0x55, 0xa2, 0x0, 0xb, 0x0,
- 0xa, 0x9, 0x10, 0x0, 0x0, 0x6c, 0x0, 0xa,
- 0x9, 0x10, 0x0, 0x0, 0x9a, 0xa, 0x5c, 0x5b,
- 0x55, 0xd0, 0x5, 0x1a, 0xb, 0xa, 0x9, 0x10,
- 0xb0, 0x2, 0xa, 0xb, 0xa, 0x9, 0x10, 0xb0,
- 0x0, 0xa, 0xb, 0xa, 0x9, 0x10, 0xb0, 0x0,
- 0xa, 0xb, 0xa, 0x9, 0x10, 0xb0, 0x0, 0xa,
- 0xb, 0xa, 0x9, 0x10, 0xb0, 0x0, 0xa, 0xb,
- 0x58, 0x57, 0x55, 0xb0, 0x0, 0xb, 0xb, 0x0,
- 0x0, 0x0, 0xa0, 0x0, 0x1, 0x1, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+4FBF "便" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb, 0x40, 0x0, 0x0, 0x3, 0x40, 0x0, 0x1c,
- 0x36, 0x55, 0xc5, 0x55, 0x40, 0x0, 0x74, 0x6,
- 0x55, 0xc5, 0x58, 0x10, 0x0, 0xd2, 0xb, 0x0,
- 0xb0, 0xb, 0x0, 0x5, 0xc2, 0xc, 0x55, 0xc5,
- 0x5b, 0x0, 0x6, 0x92, 0xb, 0x0, 0xb0, 0xb,
- 0x0, 0x30, 0x92, 0xb, 0x0, 0xb0, 0xb, 0x0,
- 0x0, 0x92, 0xb, 0x55, 0xc5, 0x59, 0x0, 0x0,
- 0x92, 0x1, 0x20, 0xa0, 0x0, 0x0, 0x0, 0x92,
- 0x0, 0x67, 0x60, 0x0, 0x0, 0x0, 0x92, 0x0,
- 0x1e, 0x80, 0x0, 0x0, 0x0, 0x92, 0x5, 0x91,
- 0x5c, 0xb8, 0x70, 0x0, 0x32, 0x51, 0x0, 0x0,
- 0x25, 0x30,
-
- /* U+4FC2 "係" */
- 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x2, 0xe2, 0x0, 0x2, 0x5a, 0x80, 0x0, 0x7,
- 0x73, 0x56, 0xb8, 0x53, 0x30, 0x0, 0xd, 0x0,
- 0x3, 0xb4, 0x14, 0x0, 0x0, 0x5b, 0x0, 0x66,
- 0x0, 0xc8, 0x0, 0x0, 0xbb, 0x5, 0xa8, 0x7c,
- 0x31, 0x0, 0x6, 0x3b, 0x0, 0x4, 0x70, 0x6,
- 0x20, 0x3, 0xb, 0x2, 0xca, 0x77, 0x55, 0xd0,
- 0x0, 0xb, 0x0, 0x41, 0xb, 0x0, 0x90, 0x0,
- 0xb, 0x0, 0x2a, 0xb, 0x51, 0x0, 0x0, 0xb,
- 0x0, 0xb3, 0xb, 0xa, 0x40, 0x0, 0xb, 0x7,
- 0x30, 0xb, 0x1, 0xe0, 0x0, 0xc, 0x22, 0x6,
- 0xc9, 0x0, 0x20, 0x0, 0x1, 0x0, 0x0, 0x30,
- 0x0, 0x0,
-
- /* U+4FDD "保" */
- 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x3, 0xd0, 0x85, 0x55, 0x5b, 0x10, 0x0, 0x8,
- 0x50, 0xc0, 0x0, 0xb, 0x0, 0x0, 0xb, 0x0,
- 0xc0, 0x0, 0xb, 0x0, 0x0, 0x6b, 0x0, 0xc0,
- 0x0, 0xb, 0x0, 0x0, 0xaa, 0x0, 0xd5, 0xb5,
- 0x5a, 0x0, 0x6, 0x1a, 0x0, 0x0, 0xb0, 0x0,
- 0x0, 0x1, 0xa, 0x45, 0x56, 0xd6, 0x55, 0xa2,
- 0x0, 0xa, 0x0, 0x9, 0xd4, 0x20, 0x0, 0x0,
- 0xa, 0x0, 0x38, 0xb0, 0x80, 0x0, 0x0, 0xa,
- 0x0, 0x90, 0xb0, 0x39, 0x0, 0x0, 0xa, 0x7,
- 0x10, 0xb0, 0x6, 0xd2, 0x0, 0x1b, 0x40, 0x0,
- 0xb0, 0x0, 0x10, 0x0, 0x1, 0x0, 0x0, 0x20,
- 0x0, 0x0,
-
- /* U+4FE1 "信" */
- 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x2, 0xd0, 0x0, 0xa1, 0x0, 0x0, 0x0, 0x8,
- 0x50, 0x0, 0x75, 0x1, 0x50, 0x0, 0xb, 0x17,
- 0x55, 0x55, 0x55, 0x50, 0x0, 0x6a, 0x0, 0x0,
- 0x0, 0x6, 0x0, 0x0, 0xba, 0x1, 0x65, 0x55,
- 0x55, 0x10, 0x6, 0x49, 0x0, 0x0, 0x0, 0x6,
- 0x0, 0x13, 0x19, 0x1, 0x65, 0x55, 0x55, 0x20,
- 0x0, 0x19, 0x0, 0x75, 0x55, 0x58, 0x20, 0x0,
- 0x19, 0x0, 0xb0, 0x0, 0xb, 0x0, 0x0, 0x19,
- 0x0, 0xb0, 0x0, 0xb, 0x0, 0x0, 0x19, 0x0,
- 0xc5, 0x55, 0x5c, 0x0, 0x0, 0x19, 0x0, 0xa0,
- 0x0, 0xa, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+4FEE "修" */
- 0x0, 0x3, 0x0, 0x2, 0x20, 0x0, 0x0, 0x0,
- 0xd, 0x10, 0x9, 0x60, 0x0, 0x0, 0x0, 0x57,
- 0x0, 0xd, 0x55, 0x59, 0x10, 0x0, 0xa1, 0x40,
- 0x65, 0x30, 0x69, 0x0, 0x2, 0xf2, 0xb2, 0x40,
- 0x78, 0x80, 0x0, 0x8, 0xa1, 0xa0, 0x0, 0x8b,
- 0x60, 0x0, 0x34, 0x91, 0xa0, 0x47, 0x14, 0x6c,
- 0x90, 0x10, 0x91, 0xa3, 0x10, 0x69, 0x20, 0x0,
- 0x0, 0x91, 0xa0, 0x17, 0x30, 0xa6, 0x0, 0x0,
- 0x91, 0xa1, 0x20, 0x2a, 0x60, 0x20, 0x0, 0x91,
- 0xa0, 0x17, 0x70, 0x2c, 0x90, 0x0, 0x91, 0x1,
- 0x30, 0x28, 0xa2, 0x0, 0x0, 0x91, 0x1, 0x57,
- 0x71, 0x0, 0x0, 0x0, 0x20, 0x13, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+500B "個" */
- 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc7, 0x30, 0x0, 0x0, 0x30, 0x0, 0x2c, 0xc,
- 0x55, 0x65, 0x5c, 0x20, 0x8, 0x40, 0xb0, 0xa,
- 0x0, 0xb0, 0x0, 0xe2, 0xb, 0x35, 0xa6, 0x6b,
- 0x0, 0x6e, 0x0, 0xb0, 0x8, 0x0, 0xb0, 0x16,
- 0xb0, 0xb, 0x1, 0x82, 0xb, 0x2, 0xb, 0x0,
- 0xb0, 0xc5, 0xc1, 0xb0, 0x0, 0xb0, 0xb, 0xa,
- 0xa, 0xb, 0x0, 0xb, 0x0, 0xb0, 0xc5, 0xc0,
- 0xb0, 0x0, 0xb0, 0xb, 0x8, 0x6, 0xb, 0x0,
- 0xb, 0x0, 0xc5, 0x55, 0x55, 0xc0, 0x0, 0xb0,
- 0xb, 0x0, 0x0, 0xa, 0x0, 0x2, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+5011 "們" */
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xf, 0x41, 0x4, 0x3, 0x0, 0x40, 0x0, 0x4a,
- 0x2b, 0x5c, 0x1d, 0x56, 0xb0, 0x0, 0x93, 0x2a,
- 0xb, 0xb, 0x2, 0x90, 0x0, 0xe1, 0x2b, 0x5c,
- 0xc, 0x56, 0x90, 0x5, 0xf0, 0x2a, 0xb, 0xb,
- 0x2, 0x90, 0x8, 0xb0, 0x2b, 0x5a, 0xa, 0x56,
- 0x90, 0x31, 0xb0, 0x2a, 0x0, 0x0, 0x2, 0x90,
- 0x0, 0xb0, 0x2a, 0x0, 0x0, 0x2, 0x90, 0x0,
- 0xb0, 0x2a, 0x0, 0x0, 0x2, 0x90, 0x0, 0xb0,
- 0x2a, 0x0, 0x0, 0x2, 0x90, 0x0, 0xb0, 0x2a,
- 0x0, 0x0, 0x2, 0x90, 0x0, 0xb0, 0x2a, 0x0,
- 0x0, 0x6c, 0x80, 0x0, 0x30, 0x11, 0x0, 0x0,
- 0x3, 0x0,
-
- /* U+5019 "候" */
- 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1e, 0x10, 0x45, 0x55, 0xa0, 0x0, 0x0, 0x58,
- 0x0, 0x0, 0x3, 0x90, 0x0, 0x0, 0xa2, 0x82,
- 0x0, 0x5, 0x61, 0x30, 0x0, 0xe1, 0xa2, 0x7a,
- 0x55, 0x55, 0x40, 0x6, 0xe0, 0xa0, 0x57, 0x0,
- 0x11, 0x0, 0x16, 0xb0, 0xa0, 0x85, 0xa6, 0x65,
- 0x0, 0x20, 0xb0, 0xa0, 0x30, 0xa2, 0x0, 0x0,
- 0x0, 0xb0, 0xa2, 0x65, 0xc7, 0x58, 0x60, 0x0,
- 0xb0, 0xa0, 0x0, 0xb6, 0x0, 0x0, 0x0, 0xb0,
- 0xa0, 0x6, 0x52, 0x60, 0x0, 0x0, 0xb0, 0x0,
- 0x29, 0x0, 0x87, 0x0, 0x0, 0xb0, 0x4, 0x60,
- 0x0, 0xa, 0xb1, 0x0, 0x20, 0x11, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+501F "借" */
- 0x0, 0x0, 0x10, 0x3, 0x0, 0x30, 0x0, 0x0,
- 0x1, 0xe1, 0xb, 0x10, 0xd0, 0x0, 0x0, 0x6,
- 0x70, 0xa, 0x0, 0xb0, 0x30, 0x0, 0xc, 0x14,
- 0x5c, 0x55, 0xc5, 0x60, 0x0, 0x57, 0x0, 0xa,
- 0x0, 0xb0, 0x0, 0x0, 0xba, 0x0, 0xa, 0x0,
- 0xb0, 0x51, 0x7, 0x39, 0x36, 0x55, 0x55, 0x55,
- 0x53, 0x1, 0x19, 0x0, 0x75, 0x55, 0x59, 0x0,
- 0x0, 0x19, 0x0, 0xc0, 0x0, 0xb, 0x0, 0x0,
- 0x19, 0x0, 0xc0, 0x0, 0xb, 0x0, 0x0, 0x19,
- 0x0, 0xd5, 0x55, 0x5b, 0x0, 0x0, 0x19, 0x0,
- 0xc0, 0x0, 0xb, 0x0, 0x0, 0x2a, 0x0, 0xd5,
- 0x55, 0x5b, 0x0, 0x0, 0x12, 0x0, 0x20, 0x0,
- 0x1, 0x0,
-
- /* U+5024 "値" */
- 0x0, 0x3, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0,
- 0xc, 0x30, 0x0, 0xc2, 0x0, 0x0, 0x0, 0x2a,
- 0x35, 0x55, 0xd5, 0x56, 0xa0, 0x0, 0x84, 0x10,
- 0x0, 0xc0, 0x0, 0x0, 0x0, 0xe2, 0x0, 0x86,
- 0xc5, 0x5a, 0x0, 0x7, 0xd1, 0x51, 0xb0, 0x0,
- 0x1a, 0x0, 0x16, 0xa1, 0xc0, 0xc5, 0x55, 0x5a,
- 0x0, 0x20, 0xa1, 0xb0, 0xb0, 0x0, 0x1a, 0x0,
- 0x0, 0xa1, 0xb0, 0xc5, 0x55, 0x5a, 0x0, 0x0,
- 0xa1, 0xb0, 0xb0, 0x0, 0x1a, 0x0, 0x0, 0xa1,
- 0xb0, 0xc5, 0x55, 0x5a, 0x0, 0x0, 0xa1, 0xb0,
- 0x90, 0x0, 0x7, 0x10, 0x0, 0xa1, 0xd5, 0x55,
- 0x55, 0x56, 0xe1, 0x0, 0x50, 0x30, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+503C "值" */
- 0x0, 0x2, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0,
- 0xd, 0x20, 0xa, 0x40, 0x0, 0x0, 0x0, 0x2a,
- 0x45, 0x5c, 0x65, 0x5c, 0x20, 0x0, 0x84, 0x10,
- 0xb, 0x10, 0x0, 0x0, 0x0, 0xe2, 0x7, 0x5c,
- 0x55, 0xa2, 0x0, 0x6, 0xd2, 0xb, 0x0, 0x0,
- 0xb0, 0x0, 0x8, 0x92, 0xb, 0x55, 0x55, 0xc0,
- 0x0, 0x40, 0x92, 0xb, 0x0, 0x0, 0xb0, 0x0,
- 0x0, 0x92, 0xb, 0x55, 0x55, 0xc0, 0x0, 0x0,
- 0x92, 0xb, 0x0, 0x0, 0xb0, 0x0, 0x0, 0x92,
- 0xb, 0x55, 0x55, 0xc0, 0x0, 0x0, 0x92, 0xb,
- 0x0, 0x0, 0xb0, 0x0, 0x0, 0x94, 0x5c, 0x55,
- 0x55, 0xc7, 0xb0, 0x0, 0x41, 0x10, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+505A "做" */
- 0x0, 0x2, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0xd, 0x14, 0x80, 0x7, 0x60, 0x0, 0x0, 0x39,
- 0x3, 0x70, 0xa, 0x0, 0x0, 0x0, 0x83, 0x3,
- 0x72, 0x8, 0x0, 0x30, 0x0, 0xd2, 0x67, 0x96,
- 0x59, 0x5b, 0x60, 0x4, 0xe0, 0x3, 0x70, 0x44,
- 0xa, 0x0, 0x7, 0xb0, 0x3, 0x70, 0x44, 0xa,
- 0x0, 0x21, 0xb0, 0xa6, 0x6c, 0x16, 0xa, 0x0,
- 0x0, 0xb0, 0xa0, 0xa, 0x6, 0x56, 0x0, 0x0,
- 0xb0, 0xa0, 0xa, 0x1, 0xe1, 0x0, 0x0, 0xb0,
- 0xb5, 0x5b, 0x5, 0xc2, 0x0, 0x0, 0xb0, 0xa0,
- 0x7, 0x57, 0x1b, 0x20, 0x0, 0xc0, 0x30, 0x16,
- 0x30, 0x2, 0xa1, 0x0, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+505C "停" */
- 0x0, 0x3, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0,
- 0x1e, 0x10, 0x2, 0xa0, 0x1, 0x0, 0x0, 0x57,
- 0x36, 0x55, 0x85, 0x58, 0x50, 0x0, 0xa1, 0x0,
- 0x75, 0x55, 0x90, 0x0, 0x1, 0xf2, 0x0, 0xb0,
- 0x0, 0xb0, 0x0, 0x7, 0xd0, 0x0, 0xc5, 0x55,
- 0xc0, 0x0, 0x16, 0xb0, 0x20, 0x20, 0x0, 0x10,
- 0x30, 0x20, 0xb0, 0xb5, 0x55, 0x55, 0x58, 0x80,
- 0x0, 0xb1, 0x54, 0x55, 0x55, 0x97, 0x0, 0x0,
- 0xb0, 0x1, 0x0, 0xb0, 0x0, 0x0, 0x0, 0xb0,
- 0x0, 0x0, 0xb0, 0x0, 0x0, 0x0, 0xb0, 0x0,
- 0x0, 0xb0, 0x0, 0x0, 0x0, 0xb0, 0x0, 0x39,
- 0xc0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x1, 0x10,
- 0x0, 0x0,
-
- /* U+5065 "健" */
- 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0x20, 0x0, 0xb, 0x0, 0x0, 0x0, 0x1b,
- 0x47, 0x62, 0x5c, 0x5a, 0x0, 0x0, 0x74, 0x9,
- 0x20, 0xa, 0xa, 0x10, 0x0, 0xc0, 0xb, 0x5,
- 0x5c, 0x5c, 0x70, 0x5, 0xe1, 0x56, 0x20, 0x2b,
- 0x2b, 0x0, 0x15, 0xb0, 0x85, 0xc1, 0x3b, 0x35,
- 0x0, 0x20, 0xb0, 0x0, 0x93, 0x5c, 0x59, 0x10,
- 0x0, 0xb0, 0x53, 0x70, 0xa, 0x0, 0x0, 0x0,
- 0xb0, 0x67, 0x45, 0x5c, 0x56, 0x60, 0x0, 0xb0,
- 0x1e, 0x0, 0xb, 0x0, 0x0, 0x0, 0xb0, 0x48,
- 0xa4, 0x5, 0x0, 0x0, 0x0, 0xb3, 0x40, 0x18,
- 0xbb, 0xbc, 0x90, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5074 "側" */
- 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0,
- 0xd, 0x37, 0x55, 0x80, 0x0, 0xc0, 0x0, 0x2b,
- 0xa, 0x0, 0xa0, 0x70, 0xa0, 0x0, 0x74, 0xa,
- 0x0, 0xa0, 0xb0, 0xa0, 0x0, 0xc2, 0xc, 0x55,
- 0xa0, 0xa0, 0xa0, 0x3, 0xe0, 0xa, 0x0, 0xa0,
- 0xa0, 0xa0, 0x7, 0xa0, 0xa, 0x0, 0xa0, 0xa0,
- 0xa0, 0x21, 0xa0, 0xc, 0x55, 0xa0, 0xa0, 0xa0,
- 0x0, 0xa0, 0xa, 0x0, 0xa0, 0xa0, 0xa0, 0x0,
- 0xa0, 0xc, 0x55, 0xa0, 0xa0, 0xa0, 0x0, 0xa0,
- 0x6, 0x33, 0x10, 0x0, 0xa0, 0x0, 0xa0, 0x1b,
- 0x21, 0xa0, 0x0, 0xa0, 0x0, 0xb0, 0x70, 0x0,
- 0x93, 0x5b, 0x80, 0x0, 0x11, 0x0, 0x0, 0x10,
- 0x2, 0x0,
-
- /* U+5099 "備" */
- 0x0, 0x1, 0x0, 0x40, 0x3, 0x0, 0x0, 0x0,
- 0xd, 0x30, 0xd1, 0xa, 0x40, 0x0, 0x0, 0x3b,
- 0x36, 0xd5, 0x5c, 0x6b, 0x30, 0x0, 0x84, 0x0,
- 0xc0, 0xa, 0x20, 0x10, 0x0, 0xe2, 0x65, 0xd5,
- 0x5a, 0x67, 0xb1, 0x6, 0xe0, 0x2, 0xc1, 0x0,
- 0x1, 0x0, 0x16, 0xb0, 0xd, 0x65, 0xa5, 0x5d,
- 0x0, 0x20, 0xb0, 0x7c, 0x0, 0xb0, 0xb, 0x0,
- 0x0, 0xb3, 0xb, 0x55, 0xc5, 0x5b, 0x0, 0x0,
- 0xb0, 0xb, 0x0, 0xb0, 0xb, 0x0, 0x0, 0xb0,
- 0xb, 0x55, 0xc5, 0x5b, 0x0, 0x0, 0xb0, 0xb,
- 0x0, 0xb0, 0xb, 0x0, 0x0, 0xb0, 0xb, 0x0,
- 0xb3, 0xa9, 0x0, 0x0, 0x30, 0x3, 0x0, 0x0,
- 0x31, 0x0,
-
- /* U+50B3 "傳" */
- 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0,
- 0x5, 0x90, 0x0, 0xc0, 0x2, 0x30, 0x0, 0xa,
- 0x37, 0x55, 0xc5, 0x56, 0x50, 0x0, 0x1a, 0xa,
- 0x55, 0xc5, 0x5c, 0x0, 0x0, 0x8b, 0xb, 0x55,
- 0xc5, 0x5b, 0x0, 0x1, 0xa9, 0xb, 0x0, 0xb0,
- 0xb, 0x0, 0x6, 0x29, 0x8, 0x55, 0xc5, 0x77,
- 0x0, 0x1, 0x19, 0x13, 0x44, 0xc5, 0x5b, 0x40,
- 0x0, 0x19, 0x28, 0x53, 0x10, 0x81, 0x40, 0x0,
- 0x19, 0x55, 0x55, 0x55, 0xc5, 0xb1, 0x0, 0x19,
- 0x4, 0x80, 0x0, 0xb0, 0x0, 0x0, 0x19, 0x0,
- 0x71, 0x0, 0xb0, 0x0, 0x0, 0x2a, 0x0, 0x2,
- 0x6c, 0x90, 0x0, 0x0, 0x1, 0x0, 0x0, 0x3,
- 0x0, 0x0,
-
- /* U+50C5 "僅" */
- 0x0, 0x2, 0x0, 0x30, 0x0, 0x20, 0x0, 0x0,
- 0xe, 0x20, 0xc1, 0x1, 0xc0, 0x0, 0x0, 0x59,
- 0x55, 0xd5, 0x55, 0xc6, 0xb0, 0x0, 0xb2, 0x10,
- 0xb0, 0x0, 0xa0, 0x0, 0x1, 0xe2, 0x0, 0xb5,
- 0xa5, 0x80, 0x0, 0x7, 0xd0, 0x7, 0x55, 0xc5,
- 0x58, 0x0, 0x16, 0xb0, 0xb, 0x0, 0xb0, 0xb,
- 0x0, 0x30, 0xb0, 0xc, 0x55, 0xc5, 0x5b, 0x0,
- 0x0, 0xb0, 0x5, 0x0, 0xb0, 0x5, 0x0, 0x0,
- 0xb0, 0x6, 0x55, 0xc5, 0x67, 0x0, 0x0, 0xb0,
- 0x5, 0x55, 0xc5, 0x69, 0x0, 0x0, 0xb0, 0x1,
- 0x0, 0xb0, 0x0, 0x0, 0x0, 0xb1, 0x55, 0x55,
- 0xc5, 0x56, 0xd1, 0x0, 0x30, 0x10, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+50CD "働" */
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x2d, 0x13, 0x6a, 0x60, 0xd1, 0x0, 0x0, 0x66,
- 0x22, 0xa0, 0x0, 0xb0, 0x0, 0x0, 0xa2, 0x75,
- 0xc5, 0x90, 0xb0, 0x0, 0x1, 0xd1, 0x20, 0xa0,
- 0x36, 0xc5, 0xd0, 0x7, 0xc0, 0xb5, 0xc5, 0xb0,
- 0xb0, 0xb0, 0x8, 0xa0, 0xa5, 0xc5, 0x90, 0xb0,
- 0xb0, 0x30, 0xa0, 0xa0, 0xa1, 0x90, 0xa0, 0xb0,
- 0x0, 0xa0, 0xb5, 0xc5, 0x92, 0x80, 0xa0, 0x0,
- 0xa0, 0x0, 0xa1, 0x46, 0x30, 0x90, 0x0, 0xa0,
- 0x65, 0xc5, 0x49, 0x1, 0x80, 0x0, 0xa0, 0x24,
- 0xc5, 0x55, 0x3, 0x70, 0x0, 0xb1, 0xb5, 0x11,
- 0x60, 0x7d, 0x30, 0x0, 0x20, 0x0, 0x2, 0x0,
- 0x2, 0x0,
-
- /* U+50CF "像" */
- 0x0, 0x1, 0x50, 0x6, 0x0, 0x0, 0x0, 0x0,
- 0x5, 0xb0, 0x4d, 0x55, 0x80, 0x0, 0x0, 0xb,
- 0x30, 0xb1, 0x8, 0x40, 0x0, 0x0, 0x1b, 0x8,
- 0xb5, 0x78, 0x5b, 0x20, 0x0, 0x9c, 0x33, 0xb0,
- 0xb0, 0xb, 0x0, 0x1, 0x9a, 0x0, 0xd5, 0xc5,
- 0x5d, 0x10, 0x6, 0x1a, 0x0, 0x26, 0x50, 0x5,
- 0x0, 0x11, 0x1a, 0x0, 0x56, 0x93, 0xa6, 0x0,
- 0x0, 0x1a, 0x5, 0x28, 0x98, 0x50, 0x0, 0x0,
- 0x1a, 0x1, 0x83, 0x9b, 0x81, 0x0, 0x0, 0x1a,
- 0x14, 0x9, 0x5d, 0x2c, 0x0, 0x0, 0x1a, 0x3,
- 0x92, 0xd, 0x9, 0xd3, 0x0, 0x1a, 0x43, 0x6,
- 0xd8, 0x0, 0x40, 0x0, 0x1, 0x0, 0x0, 0x30,
- 0x0, 0x0,
-
- /* U+50D5 "僕" */
- 0x0, 0x3, 0x0, 0x3, 0x3, 0x0, 0x0, 0x0,
- 0xd, 0x30, 0xd, 0xd, 0x0, 0x0, 0x0, 0x3a,
- 0x8, 0x1b, 0xb, 0x2c, 0x0, 0x0, 0x84, 0x5,
- 0x4b, 0xb, 0x81, 0x0, 0x0, 0xd3, 0x56, 0x5a,
- 0x5b, 0x67, 0x80, 0x5, 0xd2, 0x0, 0x82, 0x4,
- 0x60, 0x0, 0x7, 0x92, 0x15, 0x78, 0x59, 0x6a,
- 0x0, 0x20, 0x92, 0x1, 0x0, 0xb0, 0x10, 0x0,
- 0x0, 0x92, 0x3, 0x65, 0xc5, 0x73, 0x0, 0x0,
- 0x92, 0x45, 0x57, 0xa5, 0x59, 0x60, 0x0, 0x92,
- 0x10, 0xa, 0x15, 0x0, 0x0, 0x0, 0x92, 0x1,
- 0x92, 0x3, 0x80, 0x0, 0x0, 0x92, 0x46, 0x0,
- 0x0, 0x3c, 0x80, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+50F9 "價" */
- 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x4d, 0x46, 0x57, 0x57, 0x56, 0x90, 0x0, 0x85,
- 0x2, 0xa, 0xa, 0x2, 0x10, 0x0, 0xc2, 0xc,
- 0x5c, 0x5c, 0x5a, 0x40, 0x2, 0xf3, 0xc, 0x5c,
- 0x5c, 0x5a, 0x30, 0x7, 0xa2, 0x4, 0x0, 0x0,
- 0x3, 0x0, 0x6, 0x82, 0x6, 0x65, 0x55, 0x5b,
- 0x0, 0x30, 0x82, 0x6, 0x75, 0x55, 0x59, 0x0,
- 0x0, 0x82, 0x6, 0x30, 0x0, 0x19, 0x0, 0x0,
- 0x82, 0x6, 0x75, 0x55, 0x59, 0x0, 0x0, 0x82,
- 0x6, 0x75, 0x55, 0x59, 0x0, 0x0, 0x82, 0x1,
- 0xb3, 0x3, 0x86, 0x0, 0x0, 0x82, 0x48, 0x10,
- 0x0, 0x6, 0xb0, 0x0, 0x10, 0x10, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5104 "億" */
- 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x9, 0x70, 0x0, 0xb0, 0x0, 0x0, 0x0, 0xd,
- 0x4, 0x65, 0x95, 0x58, 0x50, 0x0, 0x49, 0x0,
- 0x55, 0x5, 0xa0, 0x0, 0x0, 0xab, 0x24, 0x48,
- 0x49, 0x44, 0xa1, 0x1, 0x99, 0x12, 0x31, 0x11,
- 0x24, 0x10, 0x6, 0x29, 0x0, 0xc5, 0x55, 0x6b,
- 0x0, 0x2, 0x19, 0x0, 0xc5, 0x55, 0x69, 0x0,
- 0x0, 0x19, 0x0, 0xd5, 0x55, 0x6a, 0x0, 0x0,
- 0x19, 0x0, 0x42, 0x70, 0x22, 0x0, 0x0, 0x19,
- 0x5, 0x1a, 0x63, 0x2a, 0x20, 0x0, 0x19, 0x38,
- 0x19, 0x0, 0x83, 0x80, 0x0, 0x2a, 0x41, 0xc,
- 0xab, 0xd2, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+512A "優" */
- 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xe, 0x26, 0x55, 0x85, 0x5a, 0x20, 0x0, 0x48,
- 0x0, 0xb5, 0x75, 0xb1, 0x0, 0x0, 0x92, 0x0,
- 0xc5, 0x55, 0xc0, 0x0, 0x0, 0xd2, 0x0, 0xc5,
- 0x55, 0xc0, 0x0, 0x5, 0xe0, 0x75, 0xa5, 0x55,
- 0xa5, 0xb0, 0x7, 0xb1, 0xa2, 0x73, 0xa2, 0x25,
- 0x40, 0x21, 0xb0, 0x38, 0x83, 0x12, 0x7a, 0x10,
- 0x0, 0xb0, 0x31, 0x5a, 0x88, 0x33, 0x0, 0x0,
- 0xb0, 0x0, 0xd7, 0x55, 0x92, 0x0, 0x0, 0xb0,
- 0x9, 0x47, 0x7, 0x70, 0x0, 0x0, 0xb0, 0x30,
- 0x5, 0xf9, 0x0, 0x0, 0x0, 0xb0, 0x4, 0x75,
- 0x6, 0xcb, 0x50, 0x0, 0x20, 0x30, 0x0, 0x0,
- 0x2, 0x0,
-
- /* U+513F "儿" */
- 0x0, 0x0, 0x20, 0x3, 0x0, 0x0, 0x0, 0x0,
- 0x1d, 0x0, 0xa3, 0x0, 0x0, 0x0, 0x1, 0xb0,
- 0xa, 0x20, 0x0, 0x0, 0x0, 0x1b, 0x0, 0xa2,
- 0x0, 0x0, 0x0, 0x1, 0xa0, 0xa, 0x20, 0x0,
- 0x0, 0x0, 0x29, 0x0, 0xa2, 0x0, 0x0, 0x0,
- 0x4, 0x80, 0xa, 0x20, 0x0, 0x0, 0x0, 0x75,
- 0x0, 0xa2, 0x0, 0x0, 0x0, 0xb, 0x10, 0xa,
- 0x20, 0x4, 0x0, 0x3, 0x90, 0x0, 0xa2, 0x0,
- 0x60, 0x0, 0xb1, 0x0, 0x9, 0x20, 0xa, 0x21,
- 0x81, 0x0, 0x0, 0x5d, 0xbb, 0xe4, 0x30, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5143 "元" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x71, 0x0, 0x0,
- 0x6, 0x55, 0x55, 0x55, 0x53, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2, 0x0, 0x4, 0x65, 0x59, 0x55,
- 0x95, 0x5a, 0x60, 0x0, 0x0, 0xe, 0x0, 0xd0,
- 0x0, 0x0, 0x0, 0x0, 0xc, 0x0, 0xd0, 0x0,
- 0x0, 0x0, 0x0, 0x49, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0x0, 0x95, 0x0, 0xd0, 0x0, 0x30, 0x0,
- 0x1, 0xc0, 0x0, 0xd0, 0x0, 0x60, 0x0, 0xb,
- 0x30, 0x0, 0xd0, 0x0, 0xc0, 0x1, 0x92, 0x0,
- 0x0, 0xac, 0xbc, 0xc2, 0x4, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+5144 "兄" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb,
- 0x55, 0x55, 0x55, 0xc2, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0,
- 0xd0, 0x0, 0x0, 0xd0, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0xe5, 0xb8, 0x5d, 0x5c, 0x0, 0x0, 0x3, 0xa,
- 0x30, 0xd0, 0x0, 0x0, 0x0, 0x0, 0xc0, 0xd,
- 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0xd0, 0x0,
- 0x40, 0x0, 0x6, 0x70, 0xd, 0x0, 0x6, 0x0,
- 0x2, 0xb0, 0x0, 0xd0, 0x0, 0xc0, 0x4, 0x80,
- 0x0, 0xb, 0xcb, 0xcd, 0x23, 0x20, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+5145 "充" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x77, 0x0, 0x0, 0x0, 0x4, 0x55,
- 0x55, 0x7b, 0x55, 0x59, 0x90, 0x1, 0x0, 0x3,
- 0xc1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1c, 0x30,
- 0x23, 0x0, 0x0, 0x0, 0x2, 0x91, 0x0, 0x6,
- 0x90, 0x0, 0x0, 0x4f, 0xaa, 0x87, 0x95, 0x9c,
- 0x0, 0x0, 0x2, 0xd, 0x1, 0xb0, 0x8, 0x0,
- 0x0, 0x0, 0x1c, 0x1, 0xb0, 0x0, 0x0, 0x0,
- 0x0, 0x57, 0x1, 0xb0, 0x0, 0x30, 0x0, 0x0,
- 0xb1, 0x1, 0xb0, 0x0, 0x60, 0x0, 0x7, 0x60,
- 0x0, 0xb0, 0x0, 0xb0, 0x1, 0x73, 0x0, 0x0,
- 0xbb, 0xbc, 0xd2, 0x2, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5148 "先" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x3, 0x0, 0x94, 0x0, 0x0, 0x0, 0x0, 0xe,
- 0x30, 0x92, 0x0, 0x0, 0x0, 0x0, 0x3c, 0x55,
- 0xb6, 0x55, 0xd2, 0x0, 0x0, 0x92, 0x0, 0x92,
- 0x0, 0x0, 0x0, 0x2, 0x50, 0x0, 0x92, 0x0,
- 0x0, 0x0, 0x1, 0x0, 0x0, 0x92, 0x0, 0x6,
- 0x30, 0x17, 0x55, 0x7b, 0x59, 0x95, 0x55, 0x40,
- 0x0, 0x0, 0x66, 0x6, 0x60, 0x0, 0x0, 0x0,
- 0x0, 0x93, 0x6, 0x60, 0x0, 0x10, 0x0, 0x0,
- 0xb0, 0x6, 0x60, 0x0, 0x50, 0x0, 0xa, 0x30,
- 0x5, 0x60, 0x1, 0x80, 0x2, 0x82, 0x0, 0x2,
- 0xda, 0xab, 0xb0, 0x13, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5149 "光" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x4a, 0x0, 0x0, 0x0, 0x0, 0x7,
- 0x0, 0x48, 0x0, 0x91, 0x0, 0x0, 0x2, 0xc0,
- 0x48, 0x4, 0xb0, 0x0, 0x0, 0x0, 0xa4, 0x48,
- 0xa, 0x10, 0x0, 0x0, 0x0, 0x20, 0x48, 0x33,
- 0x2, 0x40, 0x6, 0x55, 0x5c, 0x56, 0xc5, 0x56,
- 0x60, 0x0, 0x0, 0x1c, 0x0, 0xb0, 0x0, 0x0,
- 0x0, 0x0, 0x29, 0x0, 0xb0, 0x0, 0x0, 0x0,
- 0x0, 0x76, 0x0, 0xb0, 0x0, 0x30, 0x0, 0x0,
- 0xb0, 0x0, 0xb0, 0x0, 0x60, 0x0, 0x8, 0x50,
- 0x0, 0xc0, 0x0, 0xa0, 0x1, 0x73, 0x0, 0x0,
- 0xab, 0xaa, 0xd2, 0x3, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+514B "克" */
- 0x0, 0x0, 0x0, 0x42, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x95, 0x0, 0x0, 0x0, 0x5, 0x55,
- 0x55, 0xb6, 0x55, 0x59, 0x70, 0x1, 0x0, 0x0,
- 0xb0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x55, 0xc5,
- 0x55, 0xa0, 0x0, 0x0, 0xb, 0x0, 0x0, 0x0,
- 0xb0, 0x0, 0x0, 0xb, 0x0, 0x0, 0x0, 0xa0,
- 0x0, 0x0, 0xb, 0x0, 0x0, 0x0, 0xa0, 0x0,
- 0x0, 0xb, 0x5c, 0x5a, 0x95, 0x80, 0x0, 0x0,
- 0x0, 0xb, 0x7, 0x60, 0x0, 0x0, 0x0, 0x0,
- 0x47, 0x7, 0x60, 0x0, 0x50, 0x0, 0x1, 0xb0,
- 0x7, 0x60, 0x0, 0x80, 0x0, 0x57, 0x10, 0x5,
- 0xd9, 0x9b, 0xb0, 0x3, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+514D "免" */
- 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x6b, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xd7, 0x55, 0xb5, 0x0, 0x0, 0x0, 0x8, 0x50,
- 0x0, 0xc1, 0x0, 0x0, 0x0, 0x4a, 0x0, 0x5,
- 0x20, 0x4, 0x0, 0x3, 0x7c, 0x55, 0x6c, 0x55,
- 0x5d, 0x0, 0x3, 0xc, 0x0, 0x39, 0x0, 0x1b,
- 0x0, 0x0, 0xd, 0x55, 0x8a, 0x55, 0x5b, 0x0,
- 0x0, 0x8, 0x0, 0x86, 0xb0, 0x5, 0x0, 0x0,
- 0x0, 0x0, 0xd2, 0xb0, 0x0, 0x20, 0x0, 0x0,
- 0x7, 0x81, 0xb0, 0x0, 0x60, 0x0, 0x0, 0x5b,
- 0x0, 0xb0, 0x0, 0x91, 0x0, 0x38, 0x50, 0x0,
- 0xda, 0xaa, 0xe4, 0x3, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5152 "兒" */
- 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x3,
- 0x59, 0x73, 0x55, 0x93, 0x0, 0x0, 0xd0, 0x0,
- 0x1, 0xa, 0x20, 0x0, 0xc, 0x2, 0x0, 0x0,
- 0xa1, 0x0, 0x0, 0xd5, 0x74, 0x6, 0x5c, 0x10,
- 0x0, 0xc, 0x0, 0x0, 0x0, 0xa1, 0x0, 0x0,
- 0xd5, 0x55, 0x55, 0x5c, 0x20, 0x0, 0x7, 0xc,
- 0x0, 0xc0, 0x50, 0x0, 0x0, 0x0, 0xc0, 0xc,
- 0x0, 0x0, 0x0, 0x0, 0x38, 0x0, 0xc0, 0x0,
- 0x40, 0x0, 0xa, 0x20, 0xc, 0x0, 0x7, 0x0,
- 0x7, 0x60, 0x0, 0xd1, 0x1, 0xd4, 0x6, 0x40,
- 0x0, 0x6, 0x99, 0x97, 0x12, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+515A "党" */
- 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x4, 0x0, 0x2b, 0x5, 0x30, 0x0, 0x0, 0x1,
- 0xc2, 0x19, 0xc, 0x30, 0x0, 0x0, 0x30, 0x42,
- 0x19, 0x52, 0x0, 0x30, 0x1, 0xa5, 0x55, 0x55,
- 0x55, 0x5a, 0xa0, 0x9, 0x40, 0x30, 0x0, 0x4,
- 0x5, 0x0, 0x0, 0x0, 0xd5, 0x55, 0x5c, 0x20,
- 0x0, 0x0, 0x0, 0xb0, 0x0, 0xb, 0x0, 0x0,
- 0x0, 0x0, 0xd6, 0x86, 0x7c, 0x0, 0x0, 0x0,
- 0x0, 0x36, 0x72, 0x60, 0x0, 0x10, 0x0, 0x0,
- 0xb, 0x22, 0x60, 0x0, 0x50, 0x0, 0x0, 0x78,
- 0x2, 0x70, 0x0, 0xa0, 0x1, 0x57, 0x40, 0x1,
- 0xca, 0xab, 0xc1, 0x13, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5165 "入" */
- 0x0, 0x0, 0x88, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x3, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x95, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xda, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xb9,
- 0x10, 0x0, 0x0, 0x0, 0x0, 0x8, 0x54, 0x70,
- 0x0, 0x0, 0x0, 0x0, 0x1c, 0x0, 0xc1, 0x0,
- 0x0, 0x0, 0x0, 0x94, 0x0, 0x6a, 0x0, 0x0,
- 0x0, 0x5, 0x90, 0x0, 0xc, 0x60, 0x0, 0x0,
- 0x29, 0x0, 0x0, 0x2, 0xe8, 0x0, 0x3, 0x70,
- 0x0, 0x0, 0x0, 0x2e, 0xc2, 0x24, 0x0, 0x0,
- 0x0, 0x0, 0x1, 0x10,
-
- /* U+5167 "內" */
- 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0, 0xa,
- 0x20, 0x0, 0x0, 0x0, 0x0, 0x53, 0x0, 0x0,
- 0xa, 0x55, 0x57, 0x95, 0x55, 0xc1, 0xc0, 0x0,
- 0x3c, 0x0, 0xc, 0xc, 0x0, 0x6, 0xc1, 0x0,
- 0xc0, 0xc0, 0x0, 0xb3, 0x70, 0xc, 0xc, 0x0,
- 0x46, 0xb, 0x10, 0xc0, 0xc0, 0x9, 0x0, 0x4c,
- 0xc, 0xc, 0x7, 0x10, 0x0, 0xa9, 0xc0, 0xc1,
- 0x0, 0x0, 0x0, 0xc, 0xc, 0x0, 0x0, 0x0,
- 0x10, 0xd0, 0xb0, 0x0, 0x0, 0x4, 0xca, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5168 "全" */
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x4, 0xe1, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0x36, 0x0, 0x0, 0x0, 0x0, 0x0, 0x87,
- 0x3, 0x70, 0x0, 0x0, 0x0, 0x4, 0xa0, 0x0,
- 0x59, 0x10, 0x0, 0x0, 0x49, 0x0, 0x0, 0x9,
- 0xe9, 0x40, 0x6, 0x66, 0x55, 0xc6, 0x55, 0x39,
- 0x70, 0x20, 0x0, 0x0, 0xa1, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa1, 0x2, 0x40, 0x0, 0x0,
- 0x16, 0x55, 0xc6, 0x55, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0xa1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xa1, 0x0, 0x0, 0x0, 0x4, 0x55, 0x55, 0xc6,
- 0x55, 0x5d, 0x50, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5169 "兩" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x55,
- 0x55, 0x55, 0x55, 0x57, 0xe2, 0x0, 0x0, 0x0,
- 0xb0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0x0,
- 0x0, 0x10, 0xc, 0x55, 0x55, 0xc5, 0x55, 0x5c,
- 0x0, 0xb1, 0x10, 0xb, 0x10, 0x0, 0xa0, 0xb,
- 0x7, 0x10, 0xb0, 0x70, 0xa, 0x0, 0xb0, 0x3b,
- 0xb, 0x5, 0x90, 0xa0, 0xb, 0x9, 0xa4, 0xb0,
- 0x9b, 0x4a, 0x0, 0xb3, 0x52, 0x9b, 0x44, 0x59,
- 0xa0, 0xc, 0x50, 0x2, 0xb4, 0x1, 0x3a, 0x0,
- 0xb0, 0x0, 0xb, 0x0, 0x1, 0xa0, 0xb, 0x0,
- 0x0, 0xa0, 0x6, 0xe6, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0x0,
-
- /* U+516B "八" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0x2, 0x70, 0x0, 0x0, 0x0, 0x0,
- 0x1e, 0x10, 0x70, 0x0, 0x0, 0x0, 0x0, 0x1c,
- 0x0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x39, 0x0,
- 0x90, 0x0, 0x0, 0x0, 0x0, 0x57, 0x0, 0x81,
- 0x0, 0x0, 0x0, 0x0, 0x84, 0x0, 0x55, 0x0,
- 0x0, 0x0, 0x0, 0xc0, 0x0, 0x1a, 0x0, 0x0,
- 0x0, 0x1, 0xa0, 0x0, 0xa, 0x10, 0x0, 0x0,
- 0x8, 0x30, 0x0, 0x4, 0xa0, 0x0, 0x0, 0x19,
- 0x0, 0x0, 0x0, 0xb7, 0x0, 0x0, 0x80, 0x0,
- 0x0, 0x0, 0x1e, 0x80, 0x5, 0x10, 0x0, 0x0,
- 0x0, 0x3, 0x81, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+516C "公" */
- 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0xa, 0x10, 0x80, 0x0, 0x0, 0x0, 0x0,
- 0x4b, 0x0, 0x90, 0x0, 0x0, 0x0, 0x0, 0xb2,
- 0x0, 0x55, 0x0, 0x0, 0x0, 0x4, 0x80, 0x0,
- 0xc, 0x10, 0x0, 0x0, 0x1a, 0x0, 0x20, 0x3,
- 0xc1, 0x0, 0x0, 0x81, 0x0, 0xa8, 0x0, 0x6e,
- 0x60, 0x5, 0x0, 0x3, 0xc0, 0x0, 0x5, 0x40,
- 0x0, 0x0, 0xb, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x74, 0x0, 0x53, 0x0, 0x0, 0x0, 0x3,
- 0x70, 0x0, 0xa, 0x30, 0x0, 0x0, 0x4c, 0x66,
- 0x76, 0x67, 0xe1, 0x0, 0x0, 0x28, 0x42, 0x10,
- 0x0, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+516D "六" */
- 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0xb1, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x8b, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x18, 0x0, 0x0, 0x10, 0x6, 0x55, 0x55, 0x55,
- 0x55, 0x58, 0xc1, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x3c, 0x10, 0x50, 0x0,
- 0x0, 0x0, 0x0, 0x98, 0x0, 0x28, 0x0, 0x0,
- 0x0, 0x1, 0xd0, 0x0, 0x6, 0x80, 0x0, 0x0,
- 0x9, 0x40, 0x0, 0x0, 0xb7, 0x0, 0x0, 0x57,
- 0x0, 0x0, 0x0, 0x3f, 0x20, 0x2, 0x80, 0x0,
- 0x0, 0x0, 0xb, 0x40, 0x15, 0x0, 0x0, 0x0,
- 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5171 "共" */
- 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0xc1, 0x0, 0xc1, 0x0, 0x0, 0x0, 0x0,
- 0xc0, 0x0, 0xc0, 0x0, 0x0, 0x4, 0x55, 0xd5,
- 0x55, 0xd5, 0x5c, 0x20, 0x0, 0x0, 0xc0, 0x0,
- 0xc0, 0x0, 0x0, 0x0, 0x0, 0xc0, 0x0, 0xc0,
- 0x0, 0x0, 0x0, 0x0, 0xc0, 0x0, 0xc0, 0x0,
- 0x0, 0x0, 0x0, 0xc0, 0x0, 0xc0, 0x6, 0x20,
- 0x36, 0x55, 0x75, 0x55, 0x65, 0x56, 0x50, 0x0,
- 0x0, 0xa8, 0x0, 0x52, 0x0, 0x0, 0x0, 0x7,
- 0xa0, 0x0, 0x7, 0xa1, 0x0, 0x0, 0x67, 0x0,
- 0x0, 0x0, 0x5e, 0x20, 0x6, 0x30, 0x0, 0x0,
- 0x0, 0x6, 0x50, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5176 "其" */
- 0x0, 0x0, 0x30, 0x0, 0x3, 0x0, 0x0, 0x0,
- 0x0, 0xc1, 0x0, 0x1d, 0x0, 0x0, 0x3, 0x55,
- 0xd5, 0x55, 0x6c, 0x5b, 0x60, 0x0, 0x0, 0xc0,
- 0x0, 0x1b, 0x0, 0x0, 0x0, 0x0, 0xc5, 0x55,
- 0x5b, 0x0, 0x0, 0x0, 0x0, 0xc0, 0x0, 0x1b,
- 0x0, 0x0, 0x0, 0x0, 0xc0, 0x0, 0x1b, 0x0,
- 0x0, 0x0, 0x0, 0xc5, 0x55, 0x5b, 0x0, 0x0,
- 0x0, 0x0, 0xc0, 0x0, 0x1b, 0x1, 0x60, 0x16,
- 0x55, 0x76, 0x55, 0x57, 0x56, 0x72, 0x0, 0x0,
- 0xab, 0x0, 0x48, 0x10, 0x0, 0x0, 0xa, 0x70,
- 0x0, 0x2, 0xd7, 0x0, 0x3, 0x82, 0x0, 0x0,
- 0x0, 0x2e, 0x10, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0x0,
-
- /* U+5177 "具" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc5, 0x55, 0x55, 0xc0, 0x0, 0x0, 0x0,
- 0xb0, 0x0, 0x1, 0x90, 0x0, 0x0, 0x0, 0xc5,
- 0x55, 0x56, 0x90, 0x0, 0x0, 0x0, 0xb0, 0x0,
- 0x1, 0x90, 0x0, 0x0, 0x0, 0xc5, 0x55, 0x56,
- 0x90, 0x0, 0x0, 0x0, 0xb0, 0x0, 0x1, 0x90,
- 0x0, 0x0, 0x0, 0xc5, 0x55, 0x56, 0x90, 0x0,
- 0x0, 0x0, 0xb0, 0x0, 0x1, 0x90, 0x40, 0x6,
- 0x55, 0x85, 0x55, 0x55, 0x87, 0xa2, 0x0, 0x0,
- 0x89, 0x0, 0x25, 0x10, 0x0, 0x0, 0x9, 0x70,
- 0x0, 0x1, 0xa7, 0x0, 0x3, 0x72, 0x0, 0x0,
- 0x0, 0xb, 0x40, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5185 "内" */
- 0x0, 0x0, 0x41, 0x0, 0x0, 0x0, 0x0, 0xc,
- 0x50, 0x0, 0x0, 0x0, 0x0, 0xc1, 0x0, 0x0,
- 0x7, 0x55, 0x5d, 0x55, 0x55, 0xa0, 0xc0, 0x0,
- 0xd0, 0x0, 0xc, 0xc, 0x0, 0xc, 0x0, 0x0,
- 0xc0, 0xc0, 0x5, 0xa7, 0x0, 0xc, 0xc, 0x0,
- 0xa1, 0x3c, 0x20, 0xc0, 0xc0, 0x73, 0x0, 0x6b,
- 0xc, 0xc, 0x52, 0x0, 0x0, 0x60, 0xc0, 0xc0,
- 0x0, 0x0, 0x0, 0xc, 0xc, 0x0, 0x0, 0x1,
- 0x23, 0xb0, 0xc0, 0x0, 0x0, 0x4, 0xe7, 0x1,
- 0x0, 0x0, 0x0, 0x1, 0x0,
-
- /* U+5186 "円" */
- 0x85, 0x55, 0x55, 0x55, 0x5a, 0x1c, 0x0, 0x2,
- 0x90, 0x0, 0xc0, 0xc0, 0x0, 0x29, 0x0, 0xc,
- 0xc, 0x0, 0x2, 0x90, 0x0, 0xc0, 0xc0, 0x0,
- 0x29, 0x0, 0xc, 0xd, 0x55, 0x56, 0xa5, 0x55,
- 0xd0, 0xc0, 0x0, 0x0, 0x0, 0xc, 0xc, 0x0,
- 0x0, 0x0, 0x0, 0xc0, 0xc0, 0x0, 0x0, 0x0,
- 0xc, 0xc, 0x0, 0x0, 0x0, 0x0, 0xc0, 0xc0,
- 0x0, 0x0, 0x0, 0xc, 0xc, 0x0, 0x0, 0x0,
- 0x6c, 0xc0, 0x10, 0x0, 0x0, 0x0, 0x21, 0x0,
-
- /* U+518A "冊" */
- 0x0, 0x17, 0x55, 0x55, 0x55, 0x59, 0x0, 0x0,
- 0x1a, 0xb, 0x0, 0xb0, 0xc, 0x0, 0x0, 0xa,
- 0xb, 0x0, 0xb0, 0xb, 0x0, 0x0, 0xa, 0xb,
- 0x0, 0xb0, 0xb, 0x0, 0x0, 0xa, 0xb, 0x0,
- 0xb0, 0xb, 0x0, 0x4, 0x5c, 0x5c, 0x55, 0xc5,
- 0x5d, 0xd3, 0x1, 0x1a, 0xb, 0x0, 0xb0, 0xb,
- 0x0, 0x0, 0xa, 0xb, 0x0, 0xb0, 0xb, 0x0,
- 0x0, 0xa, 0xb, 0x0, 0xb0, 0xb, 0x0, 0x0,
- 0xa, 0xb, 0x0, 0xb0, 0xb, 0x0, 0x0, 0xa,
- 0xa, 0x0, 0xa0, 0xb, 0x0, 0x0, 0x19, 0x0,
- 0x0, 0x4, 0xc8, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+518D "再" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
- 0x65, 0x55, 0x55, 0x55, 0x5d, 0x30, 0x0, 0x0,
- 0x0, 0x29, 0x0, 0x0, 0x0, 0x0, 0x7, 0x55,
- 0x6b, 0x55, 0x92, 0x0, 0x0, 0xc, 0x0, 0x29,
- 0x0, 0xc0, 0x0, 0x0, 0xc, 0x0, 0x29, 0x0,
- 0xc0, 0x0, 0x0, 0xd, 0x55, 0x6b, 0x55, 0xd0,
- 0x0, 0x0, 0xc, 0x0, 0x29, 0x0, 0xc0, 0x0,
- 0x0, 0xc, 0x0, 0x29, 0x0, 0xc1, 0x70, 0x6,
- 0x5d, 0x55, 0x55, 0x55, 0xd5, 0x61, 0x0, 0xc,
- 0x0, 0x0, 0x0, 0xc0, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0x0, 0xc0, 0x0, 0x0, 0xc, 0x0, 0x0,
- 0x5b, 0xd0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x1,
- 0x10, 0x0,
-
- /* U+5199 "写" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8,
- 0x55, 0x55, 0x55, 0x55, 0x97, 0x1, 0xc0, 0x10,
- 0x0, 0x0, 0xa, 0x20, 0x46, 0xd, 0x10, 0x0,
- 0x1, 0x10, 0x0, 0x0, 0xd5, 0x55, 0x55, 0xa5,
- 0x0, 0x0, 0x39, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x6, 0x60, 0x0, 0x0, 0x3, 0x0, 0x0, 0x77,
- 0x55, 0x55, 0x55, 0xe1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x0, 0x45, 0x55, 0x55, 0x5a, 0x81,
- 0xa0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x48, 0x0,
- 0x0, 0x0, 0x0, 0x13, 0x1a, 0x40, 0x0, 0x0,
- 0x0, 0x0, 0x3d, 0xc0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x10, 0x0,
-
- /* U+519B "军" */
- 0x0, 0x85, 0x55, 0x55, 0x55, 0x59, 0x70, 0x5,
- 0x80, 0x2, 0x90, 0x0, 0x7, 0x10, 0x2, 0x10,
- 0x8, 0x50, 0x0, 0x20, 0x0, 0x0, 0x35, 0x6c,
- 0x55, 0x55, 0x72, 0x0, 0x0, 0x0, 0x93, 0x9,
- 0x0, 0x0, 0x0, 0x0, 0x3, 0x80, 0xb, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x55, 0x5c, 0x55, 0xb1,
- 0x0, 0x0, 0x0, 0x0, 0xb, 0x0, 0x0, 0x0,
- 0x4, 0x55, 0x55, 0x5c, 0x55, 0x56, 0xa0, 0x1,
- 0x0, 0x0, 0xb, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
- 0x0, 0x0, 0x0,
-
- /* U+51AC "冬" */
- 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x99, 0x55, 0x5a, 0x70, 0x0, 0x0, 0x3, 0xa3,
- 0x0, 0x3c, 0x10, 0x0, 0x0, 0x9, 0x6, 0x31,
- 0xc2, 0x0, 0x0, 0x0, 0x60, 0x0, 0xac, 0x20,
- 0x0, 0x0, 0x1, 0x0, 0x5, 0xaa, 0x91, 0x0,
- 0x0, 0x0, 0x2, 0x96, 0x0, 0x4d, 0x94, 0x0,
- 0x4, 0x65, 0x0, 0x6a, 0x20, 0x6d, 0xa1, 0x0,
- 0x0, 0x0, 0x4, 0x90, 0x0, 0x0, 0x0, 0x0,
- 0x57, 0x51, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x5d, 0x90, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xa6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+51B7 "冷" */
- 0x0, 0x0, 0x0, 0x2, 0x20, 0x0, 0x0, 0x1,
- 0x0, 0x0, 0x8, 0xb0, 0x0, 0x0, 0x8, 0x60,
- 0x0, 0xd, 0x52, 0x0, 0x0, 0x0, 0xf0, 0x40,
- 0x58, 0x9, 0x0, 0x0, 0x0, 0x30, 0x50, 0xb3,
- 0x3, 0xa0, 0x0, 0x0, 0x5, 0x18, 0x31, 0xc0,
- 0x7c, 0x30, 0x0, 0x8, 0x53, 0x0, 0xa1, 0x6,
- 0xa2, 0x0, 0x55, 0x13, 0x55, 0x55, 0x92, 0x0,
- 0x18, 0xe0, 0x0, 0x0, 0x3, 0xb0, 0x0, 0x2,
- 0xc0, 0x0, 0x10, 0xa, 0x0, 0x0, 0x4, 0xb0,
- 0x0, 0x9, 0x71, 0x0, 0x0, 0x4, 0xa0, 0x0,
- 0x1, 0xe3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x66, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+51CD "凍" */
- 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x2,
- 0x0, 0x0, 0x0, 0xc1, 0x0, 0x0, 0x2, 0xc1,
- 0x45, 0x55, 0xd5, 0x57, 0xb0, 0x0, 0x75, 0x1,
- 0x0, 0xb0, 0x1, 0x0, 0x0, 0x2, 0x2c, 0x55,
- 0xc5, 0x5d, 0x10, 0x0, 0x5, 0xb, 0x0, 0xb0,
- 0xb, 0x0, 0x0, 0x6, 0xb, 0x55, 0xc5, 0x5c,
- 0x0, 0x0, 0x43, 0xb, 0x0, 0xb0, 0xb, 0x0,
- 0x6, 0xd0, 0xa, 0x5d, 0xe8, 0x58, 0x0, 0x2,
- 0xc0, 0x0, 0x39, 0xb6, 0x10, 0x0, 0x2, 0xb0,
- 0x1, 0xa0, 0xb1, 0xa0, 0x0, 0x4, 0xb0, 0x9,
- 0x10, 0xb0, 0x5b, 0x20, 0x1, 0x51, 0x60, 0x0,
- 0xb0, 0x6, 0xb1, 0x0, 0x0, 0x0, 0x0, 0x50,
- 0x0, 0x0,
-
- /* U+51DD "凝" */
- 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0, 0x13,
- 0x0, 0xc0, 0x80, 0x65, 0x5d, 0x20, 0xa, 0x60,
- 0xb6, 0x21, 0x1, 0x35, 0x0, 0x2, 0x52, 0xa0,
- 0x15, 0x7, 0x80, 0x0, 0x0, 0x3, 0x98, 0xa5,
- 0x0, 0xb0, 0x0, 0x0, 0x50, 0xb0, 0x2, 0x65,
- 0x85, 0xd0, 0x0, 0x72, 0xb5, 0x92, 0x0, 0xa3,
- 0x20, 0x3, 0x76, 0xa, 0x0, 0xb1, 0xa0, 0x30,
- 0x3e, 0x45, 0x5c, 0x78, 0xa0, 0xc5, 0x50, 0xb,
- 0x1, 0xc, 0x0, 0xb0, 0xa0, 0x0, 0xf, 0x0,
- 0x57, 0xa1, 0xa7, 0xa0, 0x0, 0x8, 0x0, 0x90,
- 0x66, 0x41, 0xb6, 0x20, 0x0, 0x6, 0x0, 0x5,
- 0x0, 0x7, 0x91, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+51E6 "処" */
- 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd,
- 0x0, 0x0, 0xa5, 0xb2, 0x0, 0x0, 0x3b, 0x56,
- 0x90, 0xb0, 0xc0, 0x0, 0x0, 0x92, 0x4, 0x60,
- 0xb0, 0xc0, 0x0, 0x0, 0xb1, 0x7, 0x31, 0x90,
- 0xc0, 0x0, 0x7, 0x14, 0xb, 0x3, 0x70, 0xc0,
- 0x0, 0x3, 0x6, 0x1a, 0x8, 0x10, 0xc0, 0x10,
- 0x0, 0x2, 0xc4, 0x27, 0x0, 0xc0, 0x60, 0x0,
- 0x1, 0xe3, 0x60, 0x0, 0xa9, 0xd2, 0x0, 0x9,
- 0x2b, 0x40, 0x0, 0x1, 0x0, 0x0, 0x73, 0x1,
- 0xbc, 0x63, 0x22, 0x31, 0x6, 0x20, 0x0, 0x3,
- 0x8c, 0xde, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+51FA "出" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xa, 0x30, 0x0, 0x0, 0x3, 0x10, 0xa, 0x10,
- 0x5, 0x10, 0x7, 0x60, 0xa, 0x10, 0xa, 0x20,
- 0x6, 0x50, 0xa, 0x10, 0xa, 0x10, 0x6, 0x50,
- 0xa, 0x10, 0xa, 0x10, 0x8, 0x75, 0x5c, 0x65,
- 0x5c, 0x20, 0x0, 0x0, 0xa, 0x10, 0x2, 0x0,
- 0xd, 0x10, 0xa, 0x10, 0x2, 0xa0, 0xc, 0x0,
- 0xa, 0x10, 0x1, 0xa0, 0xc, 0x0, 0xa, 0x10,
- 0x1, 0xa0, 0xc, 0x0, 0xa, 0x10, 0x1, 0xa0,
- 0x8, 0x55, 0x55, 0x55, 0x56, 0xa0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0,
-
- /* U+5206 "分" */
- 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x1b, 0x0, 0x80, 0x0, 0x0, 0x0, 0x0,
- 0x87, 0x0, 0x80, 0x0, 0x0, 0x0, 0x1, 0xc0,
- 0x0, 0x27, 0x0, 0x0, 0x0, 0xa, 0x30, 0x0,
- 0x9, 0x40, 0x0, 0x0, 0x65, 0x0, 0x0, 0x1,
- 0xb8, 0x10, 0x4, 0x54, 0x57, 0x85, 0x5c, 0x59,
- 0xc1, 0x2, 0x0, 0x8, 0x40, 0xb, 0x10, 0x0,
- 0x0, 0x0, 0xb, 0x10, 0xc, 0x0, 0x0, 0x0,
- 0x0, 0x2a, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0,
- 0x93, 0x0, 0xd, 0x0, 0x0, 0x0, 0x5, 0x60,
- 0x0, 0x2b, 0x0, 0x0, 0x0, 0x63, 0x0, 0x18,
- 0xf3, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x10,
- 0x0, 0x0,
-
- /* U+5207 "切" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xd, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0xc,
- 0x0, 0x65, 0x69, 0x56, 0xd0, 0x0, 0xc, 0x0,
- 0x10, 0x3a, 0x1, 0xb0, 0x0, 0xc, 0x46, 0xa1,
- 0x48, 0x2, 0xb0, 0x5, 0x5c, 0x0, 0x0, 0x67,
- 0x2, 0xa0, 0x0, 0xc, 0x0, 0x0, 0x84, 0x3,
- 0x90, 0x0, 0xc, 0x0, 0x0, 0xc1, 0x4, 0x90,
- 0x0, 0xc, 0x1, 0x51, 0xc0, 0x4, 0x80, 0x0,
- 0xc, 0x57, 0x8, 0x50, 0x5, 0x70, 0x0, 0x1f,
- 0x60, 0x2b, 0x0, 0x7, 0x50, 0x0, 0x3, 0x1,
- 0xa1, 0x4, 0x3c, 0x30, 0x0, 0x0, 0x36, 0x0,
- 0x1, 0xca, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+520A "刊" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x3,
- 0x55, 0x55, 0x96, 0x0, 0x1, 0xd0, 0x0, 0x10,
- 0xc0, 0x0, 0x7, 0x1, 0xb0, 0x0, 0x0, 0xc0,
- 0x0, 0xc, 0x1, 0xb0, 0x0, 0x0, 0xc0, 0x0,
- 0xb, 0x1, 0xb0, 0x0, 0x0, 0xc0, 0x17, 0xb,
- 0x1, 0xb0, 0x6, 0x55, 0xd5, 0x55, 0x1b, 0x1,
- 0xb0, 0x0, 0x0, 0xc0, 0x0, 0xb, 0x1, 0xb0,
- 0x0, 0x0, 0xc0, 0x0, 0xc, 0x1, 0xb0, 0x0,
- 0x0, 0xc0, 0x0, 0x1b, 0x1, 0xb0, 0x0, 0x0,
- 0xc0, 0x0, 0x0, 0x1, 0xb0, 0x0, 0x0, 0xc0,
- 0x0, 0x0, 0x13, 0xa0, 0x0, 0x0, 0xd0, 0x0,
- 0x1, 0x6e, 0x60, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x2, 0x0,
-
- /* U+5217 "列" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x6, 0x10, 0x1, 0xc0, 0x3, 0x65,
- 0xe5, 0x55, 0x30, 0x1, 0xa0, 0x0, 0x3, 0xb0,
- 0x0, 0xb, 0x1, 0xa0, 0x0, 0x8, 0x95, 0x75,
- 0xb, 0x1, 0xa0, 0x0, 0xc, 0x0, 0x94, 0xb,
- 0x1, 0xa0, 0x0, 0x79, 0x10, 0xc0, 0xb, 0x1,
- 0xa0, 0x1, 0x62, 0xb3, 0x90, 0xb, 0x1, 0xa0,
- 0x4, 0x0, 0x7b, 0x20, 0xb, 0x1, 0xa0, 0x0,
- 0x0, 0x48, 0x0, 0xc, 0x1, 0xa0, 0x0, 0x2,
- 0xa0, 0x0, 0x4, 0x1, 0xa0, 0x0, 0x38, 0x0,
- 0x0, 0x3, 0x24, 0xa0, 0x4, 0x40, 0x0, 0x0,
- 0x1, 0x6f, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0x0,
-
- /* U+521D "初" */
- 0x0, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4,
- 0x40, 0x45, 0x65, 0x55, 0xb1, 0x17, 0x55, 0xb7,
- 0x0, 0xc0, 0x0, 0xc0, 0x0, 0x2, 0xb0, 0x0,
- 0xc0, 0x0, 0xb0, 0x0, 0xc, 0x16, 0x50, 0xb0,
- 0x1, 0xa0, 0x0, 0x7e, 0x19, 0x2, 0x90, 0x2,
- 0x90, 0x6, 0x4b, 0x95, 0x5, 0x60, 0x4, 0x80,
- 0x32, 0xb, 0xb, 0x38, 0x20, 0x5, 0x70, 0x0,
- 0xb, 0x0, 0xa, 0x0, 0x6, 0x60, 0x0, 0xb,
- 0x0, 0x64, 0x0, 0x8, 0x40, 0x0, 0xb, 0x2,
- 0x70, 0x13, 0x1b, 0x10, 0x0, 0xb, 0x25, 0x0,
- 0x4, 0xea, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5224 "判" */
- 0x0, 0x0, 0x20, 0x0, 0x0, 0x1, 0x20, 0x0,
- 0x0, 0xb2, 0x0, 0x0, 0x2, 0xb0, 0x3, 0x50,
- 0xb0, 0x3b, 0x2, 0x1, 0x90, 0x0, 0xc3, 0xb0,
- 0x92, 0xc, 0x11, 0x90, 0x0, 0x62, 0xb3, 0x30,
- 0xb, 0x1, 0x90, 0x2, 0x55, 0xc5, 0x6b, 0xb,
- 0x1, 0x90, 0x0, 0x0, 0xb0, 0x0, 0xb, 0x1,
- 0x90, 0x0, 0x0, 0xb0, 0x3, 0xb, 0x1, 0x90,
- 0x17, 0x55, 0xc5, 0x58, 0x3b, 0x1, 0x90, 0x0,
- 0x4, 0x70, 0x0, 0xc, 0x1, 0x90, 0x0, 0xa,
- 0x0, 0x0, 0x6, 0x1, 0x90, 0x0, 0x73, 0x0,
- 0x0, 0x0, 0x2, 0x90, 0x6, 0x20, 0x0, 0x0,
- 0x0, 0x7f, 0x50, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x2, 0x0,
-
- /* U+5225 "別" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x85, 0x55, 0x59, 0x0, 0x0, 0xc0, 0x0, 0xb0,
- 0x0, 0x1a, 0x0, 0x0, 0xb0, 0x0, 0xb0, 0x0,
- 0x1a, 0xa, 0x0, 0xb0, 0x0, 0xd5, 0x55, 0x6a,
- 0xb, 0x0, 0xb0, 0x0, 0x68, 0x10, 0x4, 0xb,
- 0x0, 0xb0, 0x0, 0xd, 0x0, 0x0, 0xb, 0x0,
- 0xb0, 0x0, 0xd, 0x55, 0x6a, 0xb, 0x0, 0xb0,
- 0x0, 0x39, 0x0, 0x46, 0xb, 0x0, 0xb0, 0x0,
- 0x75, 0x0, 0x74, 0xa, 0x0, 0xb0, 0x0, 0xb0,
- 0x0, 0xa1, 0x0, 0x0, 0xb0, 0x4, 0x50, 0x22,
- 0xc0, 0x0, 0x12, 0xb0, 0x7, 0x0, 0x1d, 0x50,
- 0x0, 0x5e, 0x70, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0x0,
-
- /* U+5229 "利" */
- 0x0, 0x0, 0x0, 0x40, 0x0, 0x4, 0x0, 0x2,
- 0x59, 0xba, 0x40, 0x0, 0xb3, 0x3, 0x21, 0xc0,
- 0x0, 0x6, 0xa, 0x10, 0x0, 0xc, 0x0, 0x0,
- 0xb0, 0xa1, 0x25, 0x55, 0xd5, 0x6c, 0x1b, 0xa,
- 0x10, 0x10, 0x1f, 0x0, 0x0, 0xb0, 0xa1, 0x0,
- 0x7, 0xf5, 0x10, 0xb, 0xa, 0x10, 0x1, 0xac,
- 0x1d, 0x40, 0xb0, 0xa1, 0x0, 0x91, 0xc0, 0x36,
- 0xb, 0xa, 0x10, 0x62, 0xc, 0x0, 0x0, 0x90,
- 0xa1, 0x31, 0x0, 0xc0, 0x0, 0x0, 0xa, 0x10,
- 0x0, 0xc, 0x0, 0x0, 0x44, 0xd1, 0x0, 0x0,
- 0xc0, 0x0, 0x0, 0x7d, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+5230 "到" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x4,
- 0x55, 0x55, 0x6b, 0x0, 0x0, 0xd0, 0x1, 0x0,
- 0xd2, 0x0, 0x5, 0x0, 0xb0, 0x0, 0x8, 0x42,
- 0x10, 0xc, 0x10, 0xb0, 0x0, 0x53, 0x0, 0x93,
- 0xb, 0x0, 0xb0, 0x6, 0xd8, 0xa6, 0x5e, 0xb,
- 0x0, 0xb0, 0x0, 0x0, 0xc1, 0x5, 0xb, 0x0,
- 0xb0, 0x0, 0x0, 0xc0, 0x2, 0xb, 0x0, 0xb0,
- 0x4, 0x55, 0xd5, 0x67, 0xb, 0x0, 0xb0, 0x0,
- 0x0, 0xc0, 0x0, 0xc, 0x0, 0xb0, 0x0, 0x0,
- 0xc0, 0x14, 0x2, 0x0, 0xb0, 0x4, 0x68, 0xb7,
- 0x40, 0x0, 0x1, 0xb0, 0xa, 0x72, 0x0, 0x0,
- 0x1, 0x7f, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x2, 0x0,
-
- /* U+5236 "制" */
- 0x0, 0x0, 0x10, 0x0, 0x0, 0x3, 0x0, 0x0,
- 0xb, 0x0, 0x0, 0x0, 0xb1, 0x3, 0xa0, 0xa0,
- 0x0, 0x2, 0xb, 0x0, 0x87, 0x5c, 0x6a, 0x0,
- 0xc0, 0xb0, 0x7, 0x0, 0xa0, 0x0, 0xa, 0xb,
- 0x3, 0x65, 0x5c, 0x57, 0x80, 0xa0, 0xb0, 0x0,
- 0x0, 0xa0, 0x10, 0xa, 0xb, 0x0, 0x95, 0x5c,
- 0x5c, 0x20, 0xa0, 0xb0, 0x9, 0x10, 0xa0, 0xa0,
- 0xa, 0xb, 0x0, 0x91, 0xa, 0xa, 0x0, 0xa0,
- 0xb0, 0x9, 0x10, 0xb5, 0xc0, 0x0, 0xb, 0x0,
- 0x60, 0xa, 0x26, 0x0, 0x0, 0xc0, 0x0, 0x0,
- 0xa0, 0x0, 0x3, 0xad, 0x0, 0x0, 0x1, 0x0,
- 0x0, 0x0, 0x10,
-
- /* U+5238 "券" */
- 0x0, 0x0, 0x0, 0x60, 0x1, 0x0, 0x0, 0x0,
- 0x1a, 0x10, 0xe1, 0xc, 0x20, 0x0, 0x0, 0x5,
- 0x92, 0xa0, 0x63, 0x0, 0x0, 0x2, 0x55, 0x69,
- 0x95, 0x75, 0xa8, 0x0, 0x0, 0x10, 0xb, 0x10,
- 0x0, 0x0, 0x0, 0x15, 0x55, 0x5d, 0x55, 0x55,
- 0x5b, 0x80, 0x1, 0x0, 0xa2, 0x0, 0x52, 0x0,
- 0x0, 0x0, 0x8, 0x40, 0x0, 0x9, 0x71, 0x0,
- 0x1, 0x84, 0x5b, 0x55, 0x5e, 0x7e, 0xb2, 0x14,
- 0x0, 0xc, 0x0, 0xc, 0x0, 0x20, 0x0, 0x0,
- 0x66, 0x0, 0x1a, 0x0, 0x0, 0x0, 0x3, 0xa0,
- 0x0, 0x48, 0x0, 0x0, 0x1, 0x67, 0x0, 0x18,
- 0xf3, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x10,
- 0x0, 0x0,
-
- /* U+523B "刻" */
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0,
- 0x1, 0xb0, 0x0, 0x0, 0x0, 0xc0, 0x0, 0x0,
- 0x81, 0x5, 0x2, 0x0, 0xb0, 0x16, 0x57, 0xc5,
- 0x56, 0x2a, 0x40, 0xb0, 0x0, 0xa, 0x30, 0x50,
- 0x9, 0x20, 0xb0, 0x0, 0x64, 0x4, 0xb1, 0x9,
- 0x20, 0xb0, 0x3, 0xd6, 0x5c, 0x11, 0x9, 0x20,
- 0xb0, 0x0, 0x0, 0xa3, 0x6c, 0x9, 0x20, 0xb0,
- 0x0, 0x9, 0x31, 0xc1, 0x9, 0x20, 0xb0, 0x2,
- 0x81, 0xc, 0x20, 0x9, 0x20, 0xb0, 0x23, 0x1,
- 0xa4, 0xa1, 0x1, 0x0, 0xb0, 0x0, 0x49, 0x10,
- 0x5a, 0x0, 0x1, 0xa0, 0x16, 0x30, 0x0, 0x3,
- 0x0, 0x6d, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x2, 0x0,
-
- /* U+5247 "則" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0,
- 0x95, 0x55, 0xa2, 0x0, 0x0, 0xd0, 0x0, 0xb0,
- 0x0, 0xb0, 0x1, 0x0, 0xb0, 0x0, 0xc5, 0x55,
- 0xc0, 0xd, 0x0, 0xb0, 0x0, 0xb0, 0x0, 0xb0,
- 0xb, 0x0, 0xb0, 0x0, 0xc5, 0x55, 0xc0, 0xb,
- 0x0, 0xb0, 0x0, 0xb0, 0x0, 0xb0, 0xb, 0x0,
- 0xb0, 0x0, 0xb0, 0x0, 0xb0, 0xb, 0x0, 0xb0,
- 0x0, 0xc5, 0x55, 0xc0, 0xb, 0x0, 0xb0, 0x0,
- 0x53, 0x2, 0x40, 0x8, 0x0, 0xb0, 0x0, 0x4b,
- 0x7, 0x50, 0x0, 0x0, 0xb0, 0x0, 0x90, 0x0,
- 0xc4, 0x0, 0x0, 0xb0, 0x6, 0x0, 0x0, 0x38,
- 0x0, 0x6e, 0x90, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x2, 0x0,
-
- /* U+524A "削" */
- 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0,
- 0xc2, 0x6, 0x0, 0x0, 0xc0, 0x1b, 0xb, 0x3,
- 0xa0, 0x0, 0xb, 0x0, 0x84, 0xb0, 0x70, 0xa,
- 0x10, 0xb0, 0x8, 0x5d, 0x65, 0x90, 0xb0, 0xb,
- 0x0, 0xb0, 0x0, 0xc, 0xb, 0x0, 0xb0, 0xd,
- 0x55, 0x55, 0xc0, 0xb0, 0xb, 0x0, 0xb0, 0x0,
- 0xc, 0xb, 0x0, 0xb0, 0xb, 0x0, 0x0, 0xc0,
- 0xb0, 0xb, 0x0, 0xd5, 0x55, 0x5c, 0xc, 0x0,
- 0xb0, 0xb, 0x0, 0x0, 0xc0, 0x60, 0xb, 0x0,
- 0xb0, 0x1, 0x2c, 0x0, 0x12, 0xa0, 0x1b, 0x0,
- 0x3d, 0x70, 0x5, 0xe7, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0x1, 0x0,
-
- /* U+524D "前" */
- 0x0, 0x0, 0x10, 0x0, 0x3, 0x0, 0x0, 0x0,
- 0x0, 0x85, 0x0, 0x3e, 0x20, 0x0, 0x0, 0x0,
- 0x1c, 0x0, 0x91, 0x0, 0x40, 0x6, 0x55, 0x55,
- 0x55, 0x65, 0x56, 0x92, 0x0, 0x30, 0x3, 0x10,
- 0x0, 0x19, 0x0, 0x0, 0xb5, 0x5b, 0x30, 0xa2,
- 0x1a, 0x0, 0x0, 0xb0, 0x9, 0x10, 0xb0, 0x1a,
- 0x0, 0x0, 0xb5, 0x5b, 0x10, 0xb0, 0x1a, 0x0,
- 0x0, 0xb0, 0x9, 0x10, 0xb0, 0x1a, 0x0, 0x0,
- 0xb5, 0x5b, 0x10, 0xb0, 0x1a, 0x0, 0x0, 0xb0,
- 0x9, 0x10, 0xb0, 0x1a, 0x0, 0x0, 0xb0, 0x9,
- 0x10, 0x11, 0x3a, 0x0, 0x0, 0xb0, 0x6d, 0x0,
- 0x6, 0xf5, 0x0, 0x0, 0x10, 0x1, 0x0, 0x0,
- 0x10, 0x0,
-
- /* U+525B "剛" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xa, 0x55,
- 0x55, 0x5c, 0x20, 0x0, 0xc0, 0xb1, 0x40, 0x61,
- 0xb0, 0x10, 0xb, 0xb, 0xa, 0x1a, 0xb, 0xa,
- 0x10, 0xb0, 0xb2, 0x66, 0x76, 0xb0, 0xa0, 0xb,
- 0xb, 0x12, 0xa1, 0x1b, 0xa, 0x0, 0xb0, 0xb1,
- 0x19, 0x22, 0xb0, 0xa0, 0xb, 0xb, 0x55, 0x94,
- 0x5b, 0xa, 0x0, 0xb0, 0xb5, 0x49, 0x45, 0xb0,
- 0xa0, 0xb, 0xb, 0x68, 0xa8, 0x5b, 0x8, 0x0,
- 0xb0, 0xb0, 0x0, 0x11, 0xb0, 0x0, 0xb, 0xb,
- 0x0, 0x0, 0xb, 0x0, 0x2, 0xa0, 0xa0, 0x0,
- 0x2a, 0xd0, 0x27, 0xe7, 0x0, 0x0, 0x0, 0x11,
- 0x0, 0x1, 0x0,
-
- /* U+5272 "割" */
- 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0xb0, 0x0, 0x0, 0x0, 0xc0, 0x6, 0x55,
- 0x75, 0x5a, 0x21, 0x0, 0xb0, 0x1b, 0x0, 0xb1,
- 0x4, 0xb, 0x30, 0xb0, 0x3, 0x55, 0xc5, 0x67,
- 0xa, 0x0, 0xb0, 0x0, 0x0, 0xb0, 0x0, 0xa,
- 0x0, 0xb0, 0x1, 0x55, 0xc5, 0x73, 0xa, 0x0,
- 0xb0, 0x0, 0x0, 0xb0, 0x4, 0x2a, 0x0, 0xb0,
- 0x6, 0x55, 0xd5, 0x55, 0x3b, 0x0, 0xb0, 0x0,
- 0x95, 0x65, 0xa1, 0xa, 0x10, 0xb0, 0x0, 0xb0,
- 0x0, 0xb0, 0x0, 0x0, 0xb0, 0x0, 0xb0, 0x0,
- 0xb0, 0x0, 0x0, 0xb0, 0x0, 0xd5, 0x55, 0xc0,
- 0x0, 0x6c, 0xa0, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x2, 0x0,
-
- /* U+5275 "創" */
- 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x10, 0x0,
- 0x0, 0xd5, 0x0, 0x0, 0x0, 0xc0, 0x0, 0x6,
- 0x73, 0xa3, 0x0, 0x0, 0xa0, 0x0, 0x29, 0x45,
- 0x1c, 0xb, 0x0, 0xa0, 0x1, 0x80, 0xa, 0x1,
- 0xa, 0x0, 0xa0, 0x15, 0x86, 0x55, 0x5a, 0xa,
- 0x0, 0xa0, 0x0, 0x86, 0x55, 0x59, 0xa, 0x0,
- 0xa0, 0x0, 0x82, 0x0, 0x9, 0xa, 0x0, 0xa0,
- 0x0, 0x96, 0x55, 0x58, 0xb, 0x0, 0xa0, 0x0,
- 0xb7, 0x55, 0x57, 0x6, 0x0, 0xa0, 0x1, 0xa9,
- 0x0, 0xa, 0x0, 0x0, 0xa0, 0x6, 0x39, 0x0,
- 0xa, 0x0, 0x0, 0xa0, 0x15, 0x1b, 0x55, 0x5a,
- 0x1, 0x7d, 0x70, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0x0,
-
- /* U+5283 "劃" */
- 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x10, 0x0,
- 0x0, 0xa2, 0x2, 0x0, 0x0, 0xc0, 0x0, 0x55,
- 0xb5, 0x5c, 0x0, 0x0, 0xa0, 0x6, 0x55, 0xb5,
- 0x5c, 0x92, 0x90, 0xa0, 0x0, 0x33, 0xb4, 0x3b,
- 0x0, 0xa0, 0xa0, 0x0, 0x22, 0xa2, 0x35, 0x0,
- 0xa0, 0xa0, 0x0, 0x55, 0xb5, 0x54, 0x40, 0xa0,
- 0xa0, 0x5, 0x75, 0x55, 0x57, 0x51, 0xa0, 0xa0,
- 0x0, 0xc5, 0xc5, 0x5c, 0x0, 0xa0, 0xa0, 0x0,
- 0xc5, 0xc5, 0x5a, 0x0, 0x60, 0xa0, 0x0, 0xc5,
- 0xc5, 0x5a, 0x0, 0x0, 0xa0, 0x0, 0x40, 0x0,
- 0x27, 0x20, 0x11, 0xb0, 0x7, 0xb9, 0x75, 0x31,
- 0x0, 0x4d, 0x80, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0x0,
-
- /* U+529B "力" */
- 0x0, 0x0, 0x0, 0x41, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb2, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0x10,
- 0x0, 0x10, 0x1, 0x75, 0x55, 0xd5, 0x55, 0x5d,
- 0x40, 0x0, 0x0, 0xc, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0x3, 0x90, 0x0, 0xd, 0x0, 0x0, 0x0,
- 0x84, 0x0, 0x0, 0xd0, 0x0, 0x0, 0x1c, 0x0,
- 0x0, 0x2b, 0x0, 0x0, 0x9, 0x40, 0x0, 0x4,
- 0xa0, 0x0, 0x4, 0x80, 0x0, 0x0, 0x67, 0x0,
- 0x4, 0x80, 0x0, 0x36, 0x4d, 0x30, 0x5, 0x50,
- 0x0, 0x0, 0x4f, 0x80, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0x10, 0x0,
-
- /* U+529F "功" */
- 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb, 0x30, 0x0, 0x0, 0x0, 0x4,
- 0x0, 0xa1, 0x0, 0x0, 0x65, 0xc5, 0x52, 0xa,
- 0x0, 0x0, 0x0, 0xa, 0x0, 0x55, 0xc5, 0x5a,
- 0x50, 0x0, 0xa0, 0x0, 0xb, 0x0, 0x92, 0x0,
- 0xa, 0x0, 0x0, 0xb0, 0xa, 0x10, 0x0, 0xa0,
- 0x0, 0x1a, 0x0, 0xb0, 0x0, 0xa, 0x3, 0x25,
- 0x60, 0xc, 0x0, 0x26, 0xc6, 0x10, 0xb0, 0x0,
- 0xc0, 0x2c, 0x50, 0x0, 0x65, 0x0, 0xc, 0x0,
- 0x0, 0x0, 0x47, 0x4, 0x23, 0xb0, 0x0, 0x0,
- 0x54, 0x0, 0x18, 0xf4, 0x0, 0x0, 0x10, 0x0,
- 0x0, 0x1, 0x0,
-
- /* U+52A0 "加" */
- 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x5d, 0x55,
- 0x91, 0xb5, 0x55, 0xc0, 0x0, 0xb, 0x0, 0xb0,
- 0xb0, 0x0, 0xb0, 0x0, 0xc, 0x0, 0xb0, 0xb0,
- 0x0, 0xb0, 0x0, 0xc, 0x0, 0xb0, 0xb0, 0x0,
- 0xb0, 0x0, 0xb, 0x0, 0xa0, 0xb0, 0x0, 0xb0,
- 0x0, 0x29, 0x1, 0x90, 0xb0, 0x0, 0xb0, 0x0,
- 0x64, 0x2, 0x80, 0xb0, 0x0, 0xb0, 0x0, 0xa0,
- 0x5, 0x60, 0xb0, 0x0, 0xb0, 0x5, 0x44, 0x7c,
- 0x30, 0xc5, 0x55, 0xb0, 0x15, 0x0, 0x66, 0x0,
- 0xb0, 0x0, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+52A8 "动" */
- 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x3, 0x65,
- 0x5a, 0x50, 0xb, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb, 0x0, 0x10, 0x0, 0x0, 0x0, 0x15,
- 0x5c, 0x55, 0xd0, 0x5, 0x57, 0x65, 0x92, 0xb,
- 0x0, 0xb0, 0x0, 0xb, 0x60, 0x0, 0x19, 0x0,
- 0xb0, 0x0, 0x29, 0x2, 0x0, 0x46, 0x0, 0xb0,
- 0x0, 0x80, 0x8, 0x20, 0x82, 0x1, 0xa0, 0x5,
- 0x32, 0x36, 0xd0, 0xa0, 0x1, 0xa0, 0xd, 0xb6,
- 0x20, 0x96, 0x30, 0x3, 0x90, 0x0, 0x0, 0x0,
- 0x36, 0x3, 0x17, 0x60, 0x0, 0x0, 0x4, 0x40,
- 0x2, 0xcd, 0x10, 0x0, 0x0, 0x1, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+52A9 "助" */
- 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x30, 0x4, 0x0, 0xe, 0x0, 0x0, 0x0, 0xd5,
- 0x5c, 0x20, 0xc, 0x0, 0x0, 0x0, 0xb0, 0xb,
- 0x0, 0xc, 0x0, 0x0, 0x0, 0xb0, 0xb, 0x26,
- 0x5d, 0x55, 0xc0, 0x0, 0xc5, 0x5c, 0x0, 0xc,
- 0x0, 0xb0, 0x0, 0xb0, 0xb, 0x0, 0xc, 0x0,
- 0xb0, 0x0, 0xc5, 0x5c, 0x0, 0x2a, 0x0, 0xb0,
- 0x0, 0xb0, 0xb, 0x0, 0x56, 0x0, 0xb0, 0x0,
- 0xb0, 0xb, 0x0, 0xb1, 0x0, 0xb0, 0x0, 0xb4,
- 0x78, 0x46, 0x60, 0x2, 0x90, 0x1d, 0xa4, 0x0,
- 0x36, 0x3, 0x59, 0x60, 0x1, 0x0, 0x5, 0x40,
- 0x0, 0x5a, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+52AA "努" */
- 0x0, 0x1, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x8, 0x50, 0x1, 0x11, 0x14, 0x0, 0x5, 0x5c,
- 0x57, 0x67, 0x44, 0x6d, 0x10, 0x1, 0x28, 0x9,
- 0x30, 0x60, 0x93, 0x0, 0x0, 0x92, 0xb, 0x0,
- 0x58, 0x80, 0x0, 0x0, 0x16, 0xca, 0x10, 0x2d,
- 0x80, 0x0, 0x0, 0x18, 0x44, 0x76, 0x70, 0x5c,
- 0x82, 0x14, 0x50, 0x1, 0xa4, 0x0, 0x0, 0x20,
- 0x0, 0x35, 0x55, 0xc8, 0x55, 0x75, 0x0, 0x0,
- 0x10, 0x1, 0xc0, 0x0, 0x85, 0x0, 0x0, 0x0,
- 0x9, 0x50, 0x0, 0xa3, 0x0, 0x0, 0x0, 0x87,
- 0x1, 0x31, 0xd0, 0x0, 0x2, 0x57, 0x20, 0x0,
- 0x6f, 0x60, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+52B3 "劳" */
- 0x0, 0x0, 0x40, 0x0, 0x30, 0x0, 0x0, 0x0,
- 0xc, 0x0, 0xd, 0x0, 0x0, 0x35, 0x55, 0xc5,
- 0x55, 0xc5, 0x6d, 0x20, 0x0, 0xb, 0x0, 0xb,
- 0x0, 0x0, 0x2, 0x0, 0x60, 0x0, 0x50, 0x2,
- 0x0, 0x95, 0x55, 0x65, 0x55, 0x56, 0xe1, 0x3b,
- 0x0, 0xb, 0x40, 0x0, 0x51, 0x0, 0x0, 0x0,
- 0xc1, 0x0, 0x21, 0x0, 0x4, 0x65, 0x5e, 0x55,
- 0x5b, 0x60, 0x0, 0x0, 0x2, 0xb0, 0x0, 0xa2,
- 0x0, 0x0, 0x0, 0xa4, 0x0, 0xc, 0x0, 0x0,
- 0x0, 0x78, 0x1, 0x1, 0xd0, 0x0, 0x3, 0x84,
- 0x0, 0x7, 0xf7, 0x0, 0x3, 0x20, 0x0, 0x0,
- 0x2, 0x0, 0x0,
-
- /* U+52C9 "勉" */
- 0x0, 0x4, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0,
- 0x2c, 0x0, 0x0, 0xc, 0x10, 0x0, 0x0, 0x97,
- 0x5d, 0x20, 0xa, 0x0, 0x0, 0x2, 0x80, 0x35,
- 0x0, 0xa, 0x2, 0x0, 0x7, 0xa5, 0xa5, 0xb5,
- 0x5c, 0x5a, 0x40, 0x10, 0xb0, 0xb0, 0xa0, 0xa,
- 0x8, 0x10, 0x0, 0xb0, 0xb0, 0xa0, 0xa, 0x8,
- 0x10, 0x0, 0xc5, 0xd8, 0xc0, 0x46, 0x9, 0x10,
- 0x0, 0x23, 0x98, 0x10, 0x91, 0xa, 0x0, 0x0,
- 0x8, 0x48, 0x2, 0x81, 0x1b, 0x0, 0x0, 0x19,
- 0x28, 0x7, 0x0, 0xa7, 0x40, 0x0, 0x81, 0x18,
- 0x30, 0x0, 0x0, 0x80, 0x6, 0x20, 0xb, 0x88,
- 0x88, 0x8a, 0xa0, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+52D5 "動" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x2, 0x6b, 0x80, 0xc, 0x10, 0x0, 0x3, 0x4b,
- 0x30, 0x0, 0xc, 0x0, 0x0, 0x26, 0x5b, 0x65,
- 0xa2, 0xb, 0x0, 0x30, 0x1, 0x9, 0x10, 0x24,
- 0x6c, 0x55, 0xd0, 0xb, 0x5b, 0x65, 0xc0, 0xb,
- 0x0, 0xb0, 0xa, 0x5b, 0x65, 0xa0, 0xb, 0x0,
- 0xa0, 0xa, 0x9, 0x10, 0xa0, 0x19, 0x0, 0xa0,
- 0xa, 0x5b, 0x65, 0x90, 0x55, 0x0, 0xa0, 0x0,
- 0x9, 0x10, 0x40, 0xa0, 0x2, 0x80, 0x6, 0x5b,
- 0x65, 0x52, 0x80, 0x4, 0x60, 0x0, 0x1a, 0x65,
- 0x48, 0x3, 0x1a, 0x30, 0x1d, 0x94, 0x0, 0x52,
- 0x2, 0xca, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0,
- 0x10, 0x0,
-
- /* U+52D9 "務" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2,
- 0x44, 0x46, 0x10, 0xd1, 0x0, 0x0, 0x1, 0x20,
- 0x2a, 0x45, 0xa5, 0x5d, 0x20, 0x0, 0x19, 0x70,
- 0x7, 0x60, 0x38, 0x0, 0x0, 0x1, 0xd0, 0x20,
- 0x28, 0xb0, 0x0, 0x5, 0x57, 0x97, 0x70, 0x1a,
- 0xb1, 0x0, 0x0, 0xc, 0xa5, 0x14, 0x91, 0x2c,
- 0xa4, 0x0, 0x29, 0xa1, 0x63, 0x76, 0x0, 0x40,
- 0x0, 0x92, 0xa0, 0x46, 0xc6, 0x5c, 0x30, 0x3,
- 0x51, 0xa0, 0x0, 0xb0, 0xb, 0x0, 0x5, 0x1,
- 0xa0, 0x5, 0x60, 0xb, 0x0, 0x0, 0x23, 0xa0,
- 0x29, 0x0, 0x1b, 0x0, 0x0, 0x4d, 0x63, 0x60,
- 0x7, 0xe6, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0,
- 0x10, 0x0,
-
- /* U+52DD "勝" */
- 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x8,
- 0x55, 0xb0, 0x81, 0xc1, 0x76, 0x0, 0x9, 0x10,
- 0xa0, 0x3a, 0xb2, 0x70, 0x0, 0x9, 0x10, 0xa2,
- 0x57, 0xc6, 0x78, 0x0, 0x9, 0x65, 0xa0, 0x12,
- 0x80, 0x2, 0x0, 0x9, 0x10, 0xb6, 0x5a, 0x77,
- 0x58, 0x50, 0x9, 0x10, 0xa0, 0x2a, 0x25, 0x30,
- 0x0, 0x9, 0x65, 0xa1, 0x83, 0xa0, 0x7b, 0x60,
- 0xa, 0x0, 0xb6, 0x77, 0xa5, 0x95, 0x30, 0xa,
- 0x0, 0xa0, 0x7, 0x20, 0xa0, 0x0, 0x9, 0x0,
- 0xa0, 0xa, 0x0, 0xa0, 0x0, 0x15, 0x0, 0xa0,
- 0x82, 0x0, 0xb0, 0x0, 0x40, 0x3c, 0x66, 0x20,
- 0x5c, 0x80, 0x0, 0x10, 0x1, 0x10, 0x0, 0x2,
- 0x0, 0x0,
-
- /* U+52E4 "勤" */
- 0x0, 0x12, 0x3, 0x0, 0x3, 0x0, 0x0, 0x0,
- 0x38, 0x8, 0x13, 0xa, 0x30, 0x0, 0x6, 0x7a,
- 0x5b, 0x67, 0xa, 0x0, 0x0, 0x0, 0x3a, 0x5b,
- 0x0, 0xb, 0x0, 0x0, 0x0, 0x22, 0xa2, 0x22,
- 0x6c, 0x55, 0xc2, 0x1, 0xb5, 0xc5, 0xb3, 0xb,
- 0x0, 0xb0, 0x1, 0xa0, 0xa0, 0x91, 0xb, 0x0,
- 0xb0, 0x1, 0xa5, 0xc5, 0x91, 0xb, 0x0, 0xb0,
- 0x2, 0x65, 0xc5, 0x86, 0xa, 0x0, 0xb0, 0x0,
- 0x0, 0xa0, 0x40, 0x47, 0x0, 0xb0, 0x0, 0x65,
- 0xc5, 0x52, 0x91, 0x0, 0xc0, 0x0, 0x2, 0xb5,
- 0x47, 0x63, 0x36, 0xa0, 0xb, 0xa6, 0x30, 0x35,
- 0x0, 0x7d, 0x10, 0x0, 0x0, 0x0, 0x20, 0x0,
- 0x0, 0x0,
-
- /* U+52F5 "勵" */
- 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x6,
- 0x55, 0x55, 0x5a, 0xb, 0x20, 0x0, 0x9, 0x0,
- 0x60, 0x60, 0xa, 0x0, 0x0, 0x9, 0x56, 0xa5,
- 0xb7, 0xa, 0x0, 0x10, 0x8, 0x0, 0x30, 0x42,
- 0x6c, 0x55, 0xb2, 0x8, 0xb, 0x59, 0x75, 0xa,
- 0x0, 0xa0, 0x9, 0xc, 0x5a, 0x74, 0xa, 0x0,
- 0xa0, 0x9, 0xc, 0x5a, 0x74, 0xa, 0x0, 0xa0,
- 0x9, 0x2, 0x17, 0x11, 0x9, 0x0, 0xa0, 0x8,
- 0x77, 0x5a, 0x5a, 0x46, 0x0, 0xa0, 0x7, 0x74,
- 0x3a, 0x59, 0x81, 0x0, 0xa0, 0x32, 0x75, 0x61,
- 0x59, 0x81, 0x14, 0x80, 0x20, 0x73, 0x0, 0x8b,
- 0x10, 0x7d, 0x10, 0x0, 0x10, 0x0, 0x1, 0x0,
- 0x0, 0x0,
-
- /* U+5305 "包" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5,
- 0x90, 0x0, 0x0, 0x30, 0x0, 0x0, 0xc, 0x55,
- 0x55, 0x55, 0xc4, 0x0, 0x0, 0x84, 0x0, 0x1,
- 0x0, 0xa1, 0x0, 0x4, 0x6c, 0x55, 0x5c, 0x30,
- 0xb0, 0x0, 0x25, 0xb, 0x0, 0xb, 0x0, 0xb0,
- 0x0, 0x0, 0xb, 0x0, 0xb, 0x0, 0xc0, 0x0,
- 0x0, 0xb, 0x55, 0x5b, 0x20, 0xc0, 0x0, 0x0,
- 0xb, 0x0, 0x0, 0x4a, 0xa0, 0x30, 0x0, 0xb,
- 0x0, 0x0, 0x3, 0x0, 0x60, 0x0, 0xb, 0x0,
- 0x0, 0x0, 0x1, 0xc0, 0x0, 0x5, 0xba, 0xaa,
- 0xaa, 0xbd, 0xb1,
-
- /* U+5316 "化" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc0, 0xa, 0x30, 0x0, 0x0, 0x0, 0x6,
- 0x80, 0xa, 0x10, 0x0, 0x0, 0x0, 0xc, 0x10,
- 0xa, 0x10, 0x12, 0x0, 0x0, 0x4b, 0x0, 0xa,
- 0x10, 0xa8, 0x0, 0x0, 0xbd, 0x0, 0xa, 0x17,
- 0x80, 0x0, 0x4, 0x4c, 0x0, 0xa, 0x79, 0x0,
- 0x0, 0x6, 0xc, 0x0, 0xb, 0x80, 0x0, 0x0,
- 0x10, 0xc, 0x0, 0x8d, 0x10, 0x0, 0x0, 0x0,
- 0xc, 0x26, 0x1a, 0x10, 0x0, 0x30, 0x0, 0xc,
- 0x10, 0xa, 0x10, 0x0, 0x60, 0x0, 0xc, 0x0,
- 0xa, 0x20, 0x1, 0xb0, 0x0, 0xd, 0x0, 0x6,
- 0xdb, 0xbc, 0xa0, 0x0, 0x5, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5317 "北" */
- 0x0, 0x0, 0x2, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0xd1, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0x0, 0xc0, 0x0, 0x0, 0x0, 0x0, 0xc,
- 0x0, 0xc0, 0x0, 0x20, 0x3, 0x55, 0x5c, 0x0,
- 0xc0, 0xb, 0xa0, 0x0, 0x0, 0xc, 0x0, 0xc3,
- 0x83, 0x0, 0x0, 0x0, 0xc, 0x0, 0xc3, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x0, 0xc0, 0x0, 0x0,
- 0x0, 0x0, 0xc, 0x0, 0xc0, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x0, 0xc0, 0x0, 0x40, 0x1, 0x58,
- 0x5c, 0x0, 0xc0, 0x0, 0x60, 0xa, 0x60, 0xc,
- 0x0, 0xc0, 0x0, 0xb1, 0x0, 0x0, 0xc, 0x0,
- 0x9c, 0xbc, 0xd3, 0x0, 0x0, 0x4, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+533B "医" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7,
- 0x55, 0x55, 0x55, 0x55, 0x7c, 0x10, 0xb, 0x10,
- 0xa, 0x10, 0x0, 0x0, 0x0, 0xb, 0x10, 0x1b,
- 0x0, 0x0, 0x20, 0x0, 0xb, 0x10, 0x78, 0x59,
- 0x57, 0x80, 0x0, 0xb, 0x10, 0x80, 0xb, 0x0,
- 0x0, 0x0, 0xb, 0x14, 0x0, 0x1a, 0x0, 0x3,
- 0x0, 0xb, 0x26, 0x55, 0x7b, 0x55, 0x58, 0x30,
- 0xb, 0x10, 0x0, 0x79, 0x10, 0x0, 0x0, 0xb,
- 0x10, 0x2, 0xb0, 0x7a, 0x30, 0x0, 0xb, 0x10,
- 0x39, 0x0, 0x3, 0xe3, 0x0, 0xb, 0x15, 0x40,
- 0x0, 0x0, 0x36, 0x10, 0xb, 0x55, 0x55, 0x55,
- 0x55, 0x58, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5340 "區" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x85, 0x55,
- 0x55, 0x55, 0x58, 0x80, 0x92, 0x1, 0x0, 0x0,
- 0x30, 0x0, 0x92, 0x5, 0x95, 0x55, 0xc0, 0x0,
- 0x92, 0x5, 0x60, 0x0, 0xa0, 0x0, 0x92, 0x5,
- 0x95, 0x55, 0xa0, 0x0, 0x92, 0x1, 0x10, 0x0,
- 0x20, 0x0, 0x92, 0x85, 0x58, 0x85, 0x5a, 0x10,
- 0x92, 0xa0, 0x19, 0xa0, 0xa, 0x0, 0x92, 0xa0,
- 0x19, 0xa0, 0xa, 0x0, 0x92, 0xb5, 0x69, 0xa5,
- 0x5c, 0x0, 0x92, 0x30, 0x1, 0x20, 0x1, 0x0,
- 0xa6, 0x55, 0x55, 0x55, 0x55, 0xe3, 0x20, 0x0,
- 0x0, 0x0, 0x0, 0x0,
-
- /* U+5341 "十" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb4, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb1,
- 0x0, 0x0, 0x0, 0x25, 0x55, 0x55, 0xc6, 0x55,
- 0x5a, 0x90, 0x1, 0x0, 0x0, 0xb1, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xb1, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb1, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb2,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5343 "千" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x25, 0x9e, 0xa0, 0x0, 0x0, 0x45,
- 0x67, 0xd6, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xa2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa2,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa2, 0x0,
- 0x5, 0x40, 0x36, 0x55, 0x55, 0xc7, 0x55, 0x55,
- 0x50, 0x0, 0x0, 0x0, 0xa2, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa2, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xa2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa3,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0,
- 0x0, 0x0,
-
- /* U+5348 "午" */
- 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xe4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5,
- 0x80, 0x0, 0x0, 0x62, 0x0, 0x0, 0xb, 0x55,
- 0x6b, 0x55, 0x54, 0x0, 0x0, 0x73, 0x0, 0x2a,
- 0x0, 0x0, 0x0, 0x3, 0x40, 0x0, 0x2a, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x2a, 0x0, 0x0,
- 0x40, 0x6, 0x55, 0x55, 0x6c, 0x55, 0x56, 0x81,
- 0x0, 0x0, 0x0, 0x2a, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2a, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x2a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2b,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x11, 0x0,
- 0x0, 0x0,
-
- /* U+534A "半" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc2, 0x0, 0x20, 0x0, 0x0, 0x26,
- 0x0, 0xc0, 0x5, 0xd1, 0x0, 0x0, 0x6, 0xb0,
- 0xc0, 0xa, 0x10, 0x0, 0x0, 0x0, 0xb0, 0xc0,
- 0x60, 0x0, 0x0, 0x2, 0x55, 0x55, 0xd5, 0x55,
- 0x8a, 0x0, 0x0, 0x10, 0x0, 0xc0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0,
- 0x16, 0x55, 0x55, 0xd5, 0x55, 0x5a, 0x90, 0x0,
- 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0,
- 0x0, 0x0,
-
- /* U+5352 "卒" */
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x3a, 0x0, 0x1, 0x0, 0x0, 0x65,
- 0x55, 0x59, 0x55, 0x6b, 0x20, 0x0, 0x0, 0x86,
- 0x0, 0x1d, 0x0, 0x0, 0x0, 0x0, 0xd0, 0x0,
- 0x77, 0x0, 0x0, 0x0, 0x6, 0x6a, 0x11, 0xa6,
- 0x60, 0x0, 0x0, 0x18, 0x5, 0x78, 0x10, 0xa6,
- 0x0, 0x0, 0x50, 0x0, 0x5a, 0x0, 0x13, 0x0,
- 0x4, 0x55, 0x55, 0x5d, 0x55, 0x56, 0xd2, 0x1,
- 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0,
- 0x0, 0x0,
-
- /* U+5354 "協" */
- 0x0, 0x10, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0,
- 0xa3, 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0, 0xa1,
- 0x3, 0x67, 0xa5, 0x5b, 0x20, 0x0, 0xa1, 0x0,
- 0x9, 0x20, 0xa, 0x0, 0x26, 0xc5, 0x91, 0x56,
- 0x0, 0x37, 0x0, 0x0, 0xa1, 0x15, 0x40, 0x18,
- 0xc1, 0x0, 0x0, 0xa1, 0x24, 0x30, 0x0, 0x60,
- 0x0, 0x0, 0xa1, 0x6a, 0x96, 0x75, 0xd5, 0x90,
- 0x0, 0xa1, 0x9, 0x14, 0x50, 0xa0, 0x90, 0x0,
- 0xa1, 0xa, 0x6, 0x32, 0x90, 0xa0, 0x0, 0xa1,
- 0x27, 0x8, 0x17, 0x40, 0xa0, 0x0, 0xa1, 0x72,
- 0x3b, 0x9, 0x0, 0xa0, 0x0, 0xa5, 0x30, 0x76,
- 0x70, 0x5b, 0x60, 0x0, 0x21, 0x0, 0x2, 0x0,
- 0x3, 0x0,
-
- /* U+5357 "南" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa5, 0x0, 0x0, 0x0, 0x5, 0x55,
- 0x55, 0xc6, 0x55, 0x5a, 0xc0, 0x1, 0x0, 0x0,
- 0xb0, 0x0, 0x0, 0x0, 0x0, 0x75, 0x55, 0xd5,
- 0x55, 0x59, 0x10, 0x0, 0xb0, 0x22, 0x0, 0x91,
- 0xb, 0x0, 0x0, 0xb0, 0xc, 0x14, 0x80, 0xb,
- 0x0, 0x0, 0xb0, 0x58, 0x5a, 0x5b, 0x1b, 0x0,
- 0x0, 0xb0, 0x10, 0xa1, 0x0, 0xb, 0x0, 0x0,
- 0xb4, 0x65, 0xc5, 0x59, 0x4b, 0x0, 0x0, 0xb0,
- 0x0, 0xa1, 0x0, 0xb, 0x0, 0x0, 0xb0, 0x0,
- 0xa1, 0x13, 0x2c, 0x0, 0x0, 0xb0, 0x0, 0x70,
- 0x4, 0xd8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x10, 0x0,
-
- /* U+5358 "単" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x4, 0x50, 0xa1, 0x4, 0xc0, 0x0, 0x0, 0x0,
- 0xb5, 0x68, 0xa, 0x20, 0x0, 0x0, 0x2, 0x23,
- 0x12, 0x43, 0x30, 0x0, 0x0, 0xc, 0x55, 0xb6,
- 0x55, 0xc2, 0x0, 0x0, 0xb, 0x0, 0x91, 0x0,
- 0xb0, 0x0, 0x0, 0xc, 0x55, 0xb6, 0x55, 0xc0,
- 0x0, 0x0, 0xb, 0x0, 0x91, 0x0, 0xb0, 0x0,
- 0x0, 0xb, 0x55, 0xb6, 0x55, 0xa0, 0x0, 0x4,
- 0x55, 0x55, 0xb6, 0x55, 0x59, 0xc0, 0x1, 0x0,
- 0x0, 0x91, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x91, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x92,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5371 "危" */
- 0x0, 0x0, 0x21, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb5, 0x0, 0x3, 0x0, 0x0, 0x0, 0x5,
- 0xa5, 0x55, 0xab, 0x0, 0x0, 0x0, 0x2a, 0x0,
- 0x1, 0x80, 0x0, 0x0, 0x2, 0x89, 0x55, 0x58,
- 0x55, 0x5a, 0x60, 0x3, 0xc, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x9, 0x65, 0x55, 0xc0,
- 0x0, 0x0, 0xc, 0x9, 0x20, 0x0, 0xa0, 0x0,
- 0x0, 0xc, 0x9, 0x20, 0x0, 0xa0, 0x0, 0x0,
- 0xb, 0x9, 0x20, 0x57, 0xa0, 0x20, 0x0, 0x47,
- 0x9, 0x20, 0x7, 0x20, 0x60, 0x0, 0xa1, 0x9,
- 0x20, 0x0, 0x0, 0xb0, 0x5, 0x30, 0x4, 0xca,
- 0xaa, 0xab, 0xb1, 0x11, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5373 "即" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x55,
- 0xa4, 0x7, 0x55, 0x93, 0xb, 0x0, 0x92, 0xb,
- 0x0, 0xa1, 0xb, 0x0, 0x92, 0xb, 0x0, 0xa1,
- 0xc, 0x55, 0xb2, 0xb, 0x0, 0xa1, 0xb, 0x0,
- 0x92, 0xb, 0x0, 0xa1, 0xc, 0x55, 0xb2, 0xb,
- 0x0, 0xa1, 0xb, 0x1, 0x30, 0xb, 0x0, 0xa1,
- 0xb, 0x5, 0x60, 0xb, 0x0, 0xa1, 0xb, 0x0,
- 0xc7, 0xb, 0x27, 0xc0, 0x1d, 0x86, 0x1b, 0xb,
- 0x3, 0x50, 0x6, 0x0, 0x0, 0xb, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2, 0x0, 0x0,
-
- /* U+537B "卻" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x4a, 0x4, 0x80, 0x20, 0x0, 0x20, 0x1, 0xa1,
- 0x0, 0x79, 0xc5, 0x55, 0xd0, 0x15, 0x1, 0x90,
- 0x4, 0xb0, 0x0, 0xb0, 0x0, 0x9, 0x85, 0x0,
- 0xb0, 0x0, 0xb0, 0x0, 0x47, 0x5, 0xb0, 0xb0,
- 0x0, 0xb0, 0x2, 0x80, 0x0, 0x77, 0xb0, 0x0,
- 0xb0, 0x16, 0x75, 0x55, 0xa2, 0xb0, 0x0, 0xb0,
- 0x10, 0xb0, 0x0, 0xb0, 0xb0, 0x0, 0xb0, 0x0,
- 0xb0, 0x0, 0xb0, 0xb1, 0x54, 0xb0, 0x0, 0xb0,
- 0x0, 0xb0, 0xb0, 0x1a, 0x40, 0x0, 0xb5, 0x55,
- 0xb0, 0xb0, 0x0, 0x0, 0x0, 0x60, 0x0, 0x40,
- 0xb0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+539A "厚" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0,
- 0x95, 0x55, 0x55, 0x55, 0x5a, 0x50, 0x0, 0xa1,
- 0x7, 0x55, 0x55, 0x80, 0x0, 0x0, 0xa1, 0xb,
- 0x0, 0x0, 0xb0, 0x0, 0x0, 0xa1, 0xc, 0x55,
- 0x55, 0xc0, 0x0, 0x0, 0xa1, 0xc, 0x55, 0x55,
- 0xc0, 0x0, 0x0, 0xa0, 0x6, 0x0, 0x0, 0x60,
- 0x0, 0x0, 0xb0, 0x56, 0x55, 0x57, 0xd2, 0x0,
- 0x0, 0xb0, 0x0, 0x1, 0x75, 0x0, 0x0, 0x0,
- 0xb4, 0x65, 0x55, 0xc5, 0x58, 0x80, 0x3, 0x70,
- 0x0, 0x1, 0xa0, 0x0, 0x0, 0x7, 0x10, 0x0,
- 0x11, 0xa0, 0x0, 0x0, 0x14, 0x0, 0x0, 0x4e,
- 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+539F "原" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x9,
- 0x55, 0x55, 0x65, 0x58, 0x90, 0x0, 0xb1, 0x0,
- 0x9, 0x30, 0x0, 0x0, 0xb, 0x11, 0x75, 0x95,
- 0x59, 0x20, 0x0, 0xb1, 0x1a, 0x0, 0x0, 0x91,
- 0x0, 0xb, 0x11, 0xc5, 0x55, 0x5b, 0x10, 0x0,
- 0xb0, 0x1a, 0x0, 0x0, 0x91, 0x0, 0xb, 0x1,
- 0xc5, 0x57, 0x5b, 0x20, 0x0, 0xb0, 0x3, 0x1,
- 0xa0, 0x30, 0x0, 0xb, 0x0, 0x7a, 0x1a, 0x35,
- 0x0, 0x2, 0x80, 0x5a, 0x1, 0xa0, 0x4c, 0x30,
- 0x71, 0x65, 0x3, 0x5a, 0x0, 0x3c, 0x14, 0x11,
- 0x0, 0x1b, 0x50, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+53B3 "厳" */
- 0x0, 0x1, 0x0, 0x10, 0x0, 0x10, 0x0, 0x0,
- 0x2b, 0x4, 0x80, 0x67, 0x0, 0x0, 0x10, 0x80,
- 0x8, 0x15, 0x6, 0x0, 0xc, 0x55, 0x55, 0x56,
- 0x75, 0x73, 0x0, 0xc1, 0x77, 0x80, 0x59, 0x0,
- 0x0, 0xc, 0x0, 0x72, 0x39, 0x10, 0x60, 0x0,
- 0xc3, 0xc5, 0xc5, 0xc5, 0x99, 0x10, 0xc, 0xa,
- 0x5c, 0x56, 0x8, 0x30, 0x0, 0xb0, 0xa0, 0xa0,
- 0x33, 0xb0, 0x0, 0xa, 0xa, 0x5c, 0x0, 0x99,
- 0x0, 0x2, 0x70, 0xb4, 0xc5, 0x1b, 0x60, 0x0,
- 0x61, 0xa8, 0x3a, 0x5, 0x6b, 0x60, 0x6, 0x0,
- 0x0, 0x94, 0x30, 0xb, 0x50, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+53BB "去" */
- 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xa2, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x20,
- 0x8, 0x0, 0x0, 0x55, 0x55, 0xc7, 0x55, 0x52,
- 0x0, 0x0, 0x0, 0xa, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa2, 0x0, 0x8, 0x21, 0x65, 0x55,
- 0x5e, 0x65, 0x55, 0x53, 0x0, 0x0, 0x7, 0x90,
- 0x0, 0x0, 0x0, 0x0, 0x3, 0x90, 0x4, 0x10,
- 0x0, 0x0, 0x2, 0x80, 0x0, 0xa, 0x50, 0x0,
- 0x6, 0xc6, 0x66, 0x66, 0x5e, 0x60, 0x0, 0x49,
- 0x53, 0x10, 0x0, 0x39, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+53C2 "参" */
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x8, 0xa0, 0x0, 0x0, 0x0, 0x0, 0x2,
- 0x73, 0x0, 0x28, 0x50, 0x0, 0x0, 0x4e, 0x88,
- 0xa5, 0x54, 0xb6, 0x0, 0x0, 0x0, 0x8, 0x50,
- 0x0, 0x3, 0x50, 0x5, 0x55, 0x7c, 0x55, 0x85,
- 0x55, 0x60, 0x0, 0x1, 0xa1, 0x48, 0x47, 0x0,
- 0x0, 0x0, 0x28, 0x5, 0xb2, 0x13, 0xb8, 0x30,
- 0x5, 0x41, 0x75, 0x5, 0xd2, 0x6, 0x81, 0x0,
- 0x34, 0x1, 0x87, 0x1, 0x80, 0x0, 0x0, 0x3,
- 0x66, 0x10, 0x5c, 0x60, 0x0, 0x0, 0x22, 0x1,
- 0x6a, 0x60, 0x0, 0x0, 0x1, 0x46, 0x68, 0x30,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+53C3 "參" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x7, 0x80, 0x51, 0x0, 0x0, 0x0, 0x1,
- 0xa6, 0x54, 0x5d, 0x20, 0x0, 0x0, 0x6, 0x52,
- 0x0, 0x8, 0x20, 0x0, 0x0, 0x66, 0x11, 0x0,
- 0x86, 0x6, 0x0, 0x4, 0xb6, 0x49, 0xc8, 0x61,
- 0x8, 0x40, 0x0, 0x0, 0xa, 0x66, 0x20, 0x1,
- 0x0, 0x0, 0x4, 0x92, 0x3, 0x6a, 0x62, 0x10,
- 0x4, 0x64, 0x3, 0xb8, 0x1, 0x8d, 0x91, 0x0,
- 0x5, 0x75, 0x4, 0xc1, 0x0, 0x0, 0x0, 0x30,
- 0x5, 0x97, 0x13, 0x10, 0x0, 0x0, 0x35, 0x52,
- 0x4, 0xab, 0x60, 0x0, 0x1, 0x34, 0x55, 0x64,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+53C8 "又" */
- 0x0, 0x45, 0x55, 0x55, 0x55, 0x91, 0x0, 0x0,
- 0x10, 0x40, 0x0, 0x1, 0xc0, 0x0, 0x0, 0x0,
- 0x50, 0x0, 0x5, 0x70, 0x0, 0x0, 0x0, 0x50,
- 0x0, 0xb, 0x10, 0x0, 0x0, 0x0, 0x15, 0x0,
- 0x29, 0x0, 0x0, 0x0, 0x0, 0x8, 0x0, 0xa2,
- 0x0, 0x0, 0x0, 0x0, 0x2, 0x84, 0x90, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x8c, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x1, 0xbb, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0x2a, 0x20, 0xa9, 0x10, 0x0, 0x0, 0x6,
- 0x70, 0x0, 0x6, 0xea, 0x51, 0x4, 0x51, 0x0,
- 0x0, 0x0, 0x18, 0x80, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+53CA "及" */
- 0x0, 0x25, 0x56, 0x55, 0x59, 0x40, 0x0, 0x0,
- 0x0, 0xc, 0x0, 0xd, 0x10, 0x0, 0x0, 0x0,
- 0x1b, 0x0, 0x2a, 0x0, 0x0, 0x0, 0x0, 0x3b,
- 0x0, 0x84, 0x0, 0x0, 0x0, 0x0, 0x68, 0x20,
- 0xb5, 0x7c, 0x0, 0x0, 0x0, 0xa1, 0x60, 0x0,
- 0x94, 0x0, 0x0, 0x0, 0xb0, 0x61, 0x2, 0xb0,
- 0x0, 0x0, 0x6, 0x50, 0xa, 0xb, 0x20, 0x0,
- 0x0, 0xb, 0x0, 0x5, 0xd5, 0x0, 0x0, 0x0,
- 0x83, 0x0, 0x8, 0xb7, 0x0, 0x0, 0x4, 0x40,
- 0x4, 0x93, 0x8, 0xc5, 0x0, 0x23, 0x15, 0x63,
- 0x0, 0x0, 0x3b, 0xa0, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+53CB "友" */
- 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xd, 0x0, 0x0, 0x2, 0x30, 0x6, 0x55, 0x5e,
- 0x55, 0x55, 0x58, 0x80, 0x0, 0x0, 0x3a, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x67, 0x0, 0x0,
- 0x40, 0x0, 0x0, 0x0, 0xa7, 0x75, 0x57, 0xd0,
- 0x0, 0x0, 0x1, 0xc0, 0x60, 0x9, 0x50, 0x0,
- 0x0, 0x6, 0x60, 0x53, 0x1c, 0x0, 0x0, 0x0,
- 0xb, 0x0, 0x9, 0xb4, 0x0, 0x0, 0x0, 0x74,
- 0x0, 0x9, 0xe4, 0x0, 0x0, 0x2, 0x70, 0x1,
- 0x96, 0x1a, 0xa4, 0x0, 0x6, 0x2, 0x66, 0x0,
- 0x0, 0x5d, 0xb1, 0x10, 0x11, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+53CD "反" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x25, 0x8b, 0xe9, 0x0, 0x0, 0x1c,
- 0x55, 0x43, 0x10, 0x0, 0x0, 0x0, 0xb, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0x0, 0x0,
- 0x0, 0x1, 0x0, 0x0, 0xc, 0x58, 0x55, 0x55,
- 0xaa, 0x0, 0x0, 0x1b, 0x5, 0x0, 0x0, 0xd1,
- 0x0, 0x0, 0x2a, 0x0, 0x70, 0x7, 0x80, 0x0,
- 0x0, 0x38, 0x0, 0x64, 0x2c, 0x0, 0x0, 0x0,
- 0x74, 0x0, 0x9, 0xc2, 0x0, 0x0, 0x0, 0xa0,
- 0x0, 0x1b, 0xc6, 0x0, 0x0, 0x4, 0x50, 0x7,
- 0x81, 0x9, 0xd6, 0x10, 0x6, 0x15, 0x61, 0x0,
- 0x0, 0x3c, 0xd2, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+53D6 "取" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5,
- 0x75, 0x57, 0xb1, 0x0, 0x0, 0x0, 0x0, 0xb0,
- 0xb, 0x12, 0x22, 0x27, 0x0, 0x0, 0xb0, 0xb,
- 0x16, 0x33, 0x3e, 0x10, 0x0, 0xc5, 0x5c, 0x1,
- 0x30, 0x3a, 0x0, 0x0, 0xb0, 0xb, 0x0, 0x60,
- 0x76, 0x0, 0x0, 0xc5, 0x5c, 0x0, 0x70, 0xc1,
- 0x0, 0x0, 0xb0, 0xb, 0x0, 0x64, 0xa0, 0x0,
- 0x0, 0xb0, 0xb, 0x52, 0x1e, 0x30, 0x0, 0x4,
- 0xd9, 0x8d, 0x0, 0x2e, 0x40, 0x0, 0xa, 0x40,
- 0xb, 0x0, 0xa1, 0xc5, 0x0, 0x0, 0x0, 0xb,
- 0x8, 0x20, 0x1c, 0xb1, 0x0, 0x0, 0xa, 0x51,
- 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+53D7 "受" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x30, 0x0, 0x0,
- 0x0, 0x13, 0x57, 0xac, 0xd5, 0x0, 0x0, 0x45,
- 0x44, 0x31, 0x0, 0x80, 0x0, 0x0, 0x9, 0x10,
- 0xb1, 0x6, 0x80, 0x0, 0x0, 0x27, 0x70, 0x86,
- 0x9, 0x0, 0x10, 0x1, 0xa6, 0x55, 0x65, 0x56,
- 0x58, 0xd0, 0x9, 0x60, 0x0, 0x0, 0x1, 0x7,
- 0x10, 0x2, 0x5, 0x75, 0x55, 0x5f, 0x31, 0x0,
- 0x0, 0x0, 0x15, 0x0, 0x87, 0x0, 0x0, 0x0,
- 0x0, 0x6, 0x45, 0xa0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xcd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3a,
- 0x56, 0xb7, 0x20, 0x0, 0x2, 0x57, 0x50, 0x0,
- 0x6, 0xcf, 0xb1, 0x2, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+53E3 "口" */
- 0x18, 0x55, 0x55, 0x55, 0x5a, 0x1, 0xb0, 0x0,
- 0x0, 0x0, 0xc0, 0xb, 0x0, 0x0, 0x0, 0xc,
- 0x0, 0xb0, 0x0, 0x0, 0x0, 0xc0, 0xb, 0x0,
- 0x0, 0x0, 0xc, 0x0, 0xb0, 0x0, 0x0, 0x0,
- 0xc0, 0xb, 0x0, 0x0, 0x0, 0xc, 0x0, 0xb0,
- 0x0, 0x0, 0x0, 0xc0, 0x1c, 0x55, 0x55, 0x55,
- 0x5c, 0x1, 0xa0, 0x0, 0x0, 0x0, 0x70, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+53E4 "古" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa4, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa2, 0x0, 0x0, 0x0, 0x5, 0x55, 0x55,
- 0xc6, 0x55, 0x59, 0x90, 0x0, 0x0, 0x0, 0xa2,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa2, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xa2, 0x0, 0x0,
- 0x0, 0x0, 0xb, 0x55, 0x85, 0x55, 0xd2, 0x0,
- 0x0, 0xc, 0x0, 0x0, 0x0, 0xc0, 0x0, 0x0,
- 0xc, 0x0, 0x0, 0x0, 0xc0, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0x0, 0xc0, 0x0, 0x0, 0xc, 0x55,
- 0x55, 0x55, 0xd0, 0x0, 0x0, 0xc, 0x0, 0x0,
- 0x0, 0xb0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+53E5 "句" */
- 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x2, 0xe2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9,
- 0x95, 0x55, 0x55, 0x55, 0x90, 0x0, 0x3a, 0x0,
- 0x0, 0x0, 0x2, 0xa0, 0x0, 0xa0, 0x0, 0x0,
- 0x0, 0x1, 0xa0, 0x7, 0x17, 0x55, 0x55, 0x90,
- 0x1, 0xa0, 0x10, 0xc, 0x0, 0x2, 0xa0, 0x2,
- 0xa0, 0x0, 0xc, 0x0, 0x2, 0xa0, 0x2, 0xa0,
- 0x0, 0xc, 0x0, 0x2, 0xa0, 0x2, 0x90, 0x0,
- 0xd, 0x55, 0x56, 0x90, 0x3, 0x90, 0x0, 0x4,
- 0x0, 0x0, 0x0, 0x4, 0x80, 0x0, 0x0, 0x0,
- 0x0, 0x20, 0x8, 0x50, 0x0, 0x0, 0x0, 0x0,
- 0x18, 0xec, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x40, 0x0,
-
- /* U+53E6 "另" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0xb5, 0x55, 0x55, 0x5e, 0x0, 0x0, 0xb, 0x0,
- 0x0, 0x0, 0xc0, 0x0, 0x0, 0xb0, 0x0, 0x0,
- 0xc, 0x0, 0x0, 0xb, 0x55, 0x55, 0x55, 0xc0,
- 0x0, 0x0, 0x90, 0xa, 0x10, 0x7, 0x0, 0x0,
- 0x0, 0x1, 0xc0, 0x0, 0x3, 0x0, 0x26, 0x55,
- 0x7c, 0x55, 0x56, 0xc0, 0x0, 0x0, 0x5, 0x70,
- 0x0, 0x29, 0x0, 0x0, 0x0, 0xa2, 0x0, 0x3,
- 0x90, 0x0, 0x0, 0x29, 0x0, 0x0, 0x48, 0x0,
- 0x0, 0x49, 0x0, 0x3, 0x18, 0x60, 0x3, 0x64,
- 0x0, 0x0, 0x2b, 0xe1, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+53EA "只" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa5,
- 0x55, 0x55, 0x5d, 0x0, 0x0, 0xc0, 0x0, 0x0,
- 0xc, 0x0, 0x0, 0xc0, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0xc0, 0x0, 0x0, 0xc, 0x0, 0x0, 0xc0,
- 0x0, 0x0, 0xc, 0x0, 0x0, 0xc5, 0x55, 0x55,
- 0x5c, 0x0, 0x0, 0xc0, 0x0, 0x0, 0x9, 0x0,
- 0x0, 0x2, 0xd1, 0x5, 0x10, 0x0, 0x0, 0xc,
- 0x40, 0x0, 0xa4, 0x0, 0x0, 0x76, 0x0, 0x0,
- 0x1e, 0x50, 0x5, 0x60, 0x0, 0x0, 0x5, 0xe0,
- 0x44, 0x0, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0,
-
- /* U+53EB "叫" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x30, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc2, 0x27, 0x55, 0xa0, 0x29,
- 0x0, 0xb0, 0x2a, 0x0, 0xc0, 0x2a, 0x0, 0xb0,
- 0x2a, 0x0, 0xc0, 0x2a, 0x0, 0xb0, 0x2a, 0x0,
- 0xc0, 0x2a, 0x0, 0xb0, 0x2a, 0x0, 0xc0, 0x2a,
- 0x0, 0xb0, 0x2a, 0x0, 0xc0, 0x2a, 0x2, 0xc0,
- 0x2b, 0x55, 0xc0, 0x3d, 0x83, 0xb0, 0x2a, 0x0,
- 0xc0, 0x5, 0x0, 0xb0, 0x25, 0x0, 0x0, 0x0,
- 0x0, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xc1, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x10,
-
- /* U+53EF "可" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x90, 0x6,
- 0x55, 0x55, 0x55, 0x55, 0xd5, 0x52, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc0, 0x0, 0x0, 0x18, 0x55,
- 0x5a, 0x0, 0xc0, 0x0, 0x0, 0x2a, 0x0, 0xc,
- 0x0, 0xc0, 0x0, 0x0, 0x1a, 0x0, 0xc, 0x0,
- 0xc0, 0x0, 0x0, 0x1a, 0x0, 0xc, 0x0, 0xc0,
- 0x0, 0x0, 0x1c, 0x55, 0x5c, 0x0, 0xc0, 0x0,
- 0x0, 0x2a, 0x0, 0xa, 0x0, 0xc0, 0x0, 0x0,
- 0x13, 0x0, 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x54, 0xd0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1a, 0x90, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+53F0 "台" */
- 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x3e, 0x30, 0x0, 0x0, 0x0, 0x1, 0xc2, 0x0,
- 0x0, 0x0, 0x0, 0xa, 0x20, 0x0, 0x60, 0x0,
- 0x0, 0x92, 0x0, 0x0, 0x1b, 0x50, 0x2d, 0x87,
- 0x77, 0x76, 0x57, 0xe5, 0xa, 0x74, 0x10, 0x0,
- 0x0, 0x45, 0x0, 0x30, 0x0, 0x0, 0x5, 0x0,
- 0x0, 0xc5, 0x55, 0x55, 0x5d, 0x0, 0x0, 0xc0,
- 0x0, 0x0, 0xc, 0x0, 0x0, 0xc0, 0x0, 0x0,
- 0xc, 0x0, 0x0, 0xc0, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0xc5, 0x55, 0x55, 0x5c, 0x0, 0x0, 0x20,
- 0x0, 0x0, 0x1, 0x0,
-
- /* U+53F2 "史" */
- 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc0, 0x0, 0x0, 0x0, 0xc, 0x55, 0x5d, 0x55,
- 0x5d, 0x20, 0x0, 0xd0, 0x0, 0xc0, 0x0, 0xc0,
- 0x0, 0xd, 0x0, 0xc, 0x0, 0xc, 0x0, 0x0,
- 0xe5, 0x55, 0xd5, 0x55, 0xd0, 0x0, 0x6, 0x10,
- 0xb, 0x0, 0x4, 0x0, 0x0, 0x3, 0x20, 0xb0,
- 0x0, 0x0, 0x0, 0x0, 0x7, 0x77, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe, 0x90, 0x0, 0x0, 0x0,
- 0x0, 0x2b, 0x45, 0xca, 0x63, 0x20, 0x4, 0x87,
- 0x10, 0x0, 0x49, 0xcc, 0x23, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+53F3 "右" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5,
- 0x80, 0x0, 0x3, 0x1, 0x65, 0x55, 0xb7, 0x55,
- 0x55, 0x96, 0x0, 0x0, 0x1c, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x7, 0x50, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0xc0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x9c,
- 0x65, 0x55, 0x5d, 0x20, 0x0, 0x54, 0xa2, 0x0,
- 0x0, 0xc0, 0x0, 0x35, 0xa, 0x20, 0x0, 0xc,
- 0x0, 0x23, 0x0, 0xa2, 0x0, 0x0, 0xc0, 0x0,
- 0x0, 0xa, 0x65, 0x55, 0x5d, 0x0, 0x0, 0x0,
- 0x81, 0x0, 0x0, 0x90, 0x0,
-
- /* U+53F7 "号" */
- 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0xb5, 0x55, 0x55, 0xc3, 0x0, 0x0, 0xb, 0x0,
- 0x0, 0xb, 0x10, 0x0, 0x0, 0xb0, 0x0, 0x0,
- 0xb1, 0x0, 0x0, 0xb, 0x55, 0x55, 0x5c, 0x10,
- 0x0, 0x0, 0x40, 0x0, 0x0, 0x10, 0x50, 0x5,
- 0x55, 0x99, 0x55, 0x55, 0x56, 0x30, 0x0, 0xb,
- 0x20, 0x0, 0x0, 0x0, 0x0, 0x2, 0xd5, 0x55,
- 0x59, 0xa0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x84,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0x10, 0x0,
- 0x0, 0x0, 0x3, 0x2, 0xd0, 0x0, 0x0, 0x0,
- 0x0, 0x2d, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x20, 0x0, 0x0,
-
- /* U+53F8 "司" */
- 0x2, 0x65, 0x55, 0x55, 0x55, 0xa1, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0, 0x1,
- 0x20, 0xc0, 0x35, 0x55, 0x55, 0x57, 0x70, 0xc0,
- 0x0, 0x10, 0x0, 0x20, 0x0, 0xc0, 0x0, 0xd5,
- 0x55, 0xd4, 0x0, 0xc0, 0x0, 0xc0, 0x0, 0xb0,
- 0x0, 0xc0, 0x0, 0xc0, 0x0, 0xb0, 0x0, 0xc0,
- 0x0, 0xd5, 0x55, 0xd1, 0x0, 0xc0, 0x0, 0x80,
- 0x0, 0x50, 0x0, 0xc0, 0x0, 0x0, 0x0, 0x0,
- 0x21, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x5d, 0x90,
- 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
-
- /* U+5403 "吃" */
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x9, 0x80, 0x0, 0x0, 0x42, 0x26, 0x0,
- 0xc0, 0x0, 0x0, 0xd, 0x33, 0xd0, 0x69, 0x55,
- 0x58, 0x80, 0xc0, 0xc, 0x9, 0x0, 0x0, 0x0,
- 0xc, 0x0, 0xc5, 0x10, 0x0, 0x40, 0x0, 0xc0,
- 0xc, 0x15, 0x55, 0x9c, 0x10, 0xc, 0x0, 0xc0,
- 0x0, 0x2c, 0x10, 0x0, 0xc5, 0x5d, 0x0, 0xc,
- 0x20, 0x0, 0xd, 0x0, 0xb0, 0xa, 0x30, 0x0,
- 0x30, 0x50, 0x0, 0x7, 0x70, 0x0, 0x6, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x1, 0xa0, 0x0, 0x0,
- 0x8, 0xba, 0xaa, 0xcc, 0x0,
-
- /* U+5404 "各" */
- 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x3d, 0x10, 0x3, 0x0, 0x0, 0x0, 0x0,
- 0xc7, 0x55, 0x6e, 0x20, 0x0, 0x0, 0x7, 0x56,
- 0x0, 0x96, 0x0, 0x0, 0x0, 0x44, 0x4, 0x53,
- 0xb0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x9c, 0x10,
- 0x0, 0x0, 0x0, 0x0, 0x4, 0xa8, 0xa3, 0x0,
- 0x0, 0x0, 0x0, 0x86, 0x0, 0x3b, 0xd8, 0x51,
- 0x0, 0x58, 0xb5, 0x55, 0x5c, 0x48, 0x60, 0x4,
- 0x1, 0xa0, 0x0, 0xc, 0x0, 0x0, 0x0, 0x1,
- 0xa0, 0x0, 0xc, 0x0, 0x0, 0x0, 0x1, 0xa0,
- 0x0, 0xc, 0x0, 0x0, 0x0, 0x2, 0xc5, 0x55,
- 0x5d, 0x0, 0x0, 0x0, 0x1, 0x30, 0x0, 0x3,
- 0x0, 0x0,
-
- /* U+5408 "合" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x9, 0x67, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5a,
- 0x2, 0x90, 0x0, 0x0, 0x0, 0x4, 0xa0, 0x0,
- 0x4b, 0x20, 0x0, 0x0, 0x68, 0x0, 0x0, 0x17,
- 0xda, 0x50, 0x26, 0x24, 0x55, 0x55, 0x56, 0x7,
- 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x9, 0x55, 0x55, 0x5c, 0x20, 0x0, 0x0,
- 0xa, 0x10, 0x0, 0xc, 0x0, 0x0, 0x0, 0xa,
- 0x10, 0x0, 0xc, 0x0, 0x0, 0x0, 0xa, 0x65,
- 0x55, 0x5d, 0x0, 0x0, 0x0, 0xa, 0x10, 0x0,
- 0x9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+540C "同" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x55,
- 0x55, 0x55, 0x55, 0xa3, 0xc, 0x0, 0x0, 0x0,
- 0x0, 0xa2, 0xc, 0x0, 0x0, 0x0, 0x61, 0xa2,
- 0xc, 0x6, 0x55, 0x55, 0x52, 0xa2, 0xc, 0x0,
- 0x10, 0x0, 0x30, 0xa2, 0xc, 0x1, 0xc5, 0x55,
- 0xc0, 0xa2, 0xc, 0x0, 0xa0, 0x0, 0xb0, 0xa2,
- 0xc, 0x0, 0xa0, 0x0, 0xb0, 0xa2, 0xc, 0x1,
- 0xc5, 0x55, 0xb0, 0xa2, 0xc, 0x0, 0x20, 0x0,
- 0x10, 0xa2, 0xc, 0x0, 0x0, 0x0, 0x20, 0xc1,
- 0xd, 0x0, 0x0, 0x0, 0x4c, 0xd0, 0x2, 0x0,
- 0x0, 0x0, 0x1, 0x0,
-
- /* U+540D "名" */
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x6c, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd,
- 0x75, 0x55, 0x78, 0x0, 0x0, 0x7, 0x50, 0x0,
- 0xc, 0x40, 0x0, 0x4, 0xc2, 0x0, 0x9, 0x70,
- 0x0, 0x3, 0x60, 0xd3, 0x9, 0x80, 0x0, 0x0,
- 0x20, 0x3, 0x1a, 0x80, 0x0, 0x0, 0x0, 0x0,
- 0x3b, 0x50, 0x0, 0x10, 0x0, 0x0, 0x7e, 0x65,
- 0x55, 0x5d, 0x20, 0x15, 0x72, 0xc0, 0x0, 0x0,
- 0xc0, 0x2, 0x0, 0xc, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0x0, 0xd5, 0x55, 0x55, 0xd0, 0x0, 0x0,
- 0x9, 0x0, 0x0, 0x7, 0x0,
-
- /* U+5411 "向" */
- 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0, 0x1b,
- 0x0, 0x0, 0x0, 0x10, 0x5, 0x20, 0x0, 0x2,
- 0xd, 0x55, 0x65, 0x55, 0x55, 0xd2, 0xc0, 0x0,
- 0x0, 0x0, 0xc, 0xc, 0x1, 0x20, 0x4, 0x0,
- 0xc0, 0xc0, 0x1c, 0x55, 0xc3, 0xc, 0xc, 0x1,
- 0xa0, 0xb, 0x10, 0xc0, 0xc0, 0x1a, 0x0, 0xb1,
- 0xc, 0xc, 0x2, 0xc5, 0x5c, 0x10, 0xc0, 0xc0,
- 0x13, 0x0, 0x10, 0xc, 0xc, 0x0, 0x0, 0x0,
- 0x22, 0xd0, 0xc0, 0x0, 0x0, 0x3, 0xbb, 0x1,
- 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5426 "否" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x45,
- 0x55, 0x56, 0x55, 0x55, 0xd4, 0x0, 0x0, 0x3,
- 0xd0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xbd, 0x12,
- 0x0, 0x0, 0x0, 0x1, 0xb2, 0xc0, 0x27, 0x60,
- 0x0, 0x3, 0xa1, 0xc, 0x0, 0x4, 0xd4, 0x5,
- 0x50, 0x0, 0xd0, 0x0, 0x2, 0xa0, 0x0, 0x30,
- 0x4, 0x0, 0x5, 0x0, 0x0, 0xc, 0x65, 0x55,
- 0x55, 0xe0, 0x0, 0x0, 0xb1, 0x0, 0x0, 0xd,
- 0x0, 0x0, 0xb, 0x10, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0xb6, 0x55, 0x55, 0x5d, 0x0, 0x0, 0xc,
- 0x10, 0x0, 0x0, 0xd0, 0x0, 0x0, 0x20, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+5427 "吧" */
- 0x0, 0x0, 0x2, 0x0, 0x0, 0x30, 0x7, 0x55,
- 0x90, 0xd5, 0xc5, 0x6d, 0x0, 0xc0, 0x1b, 0xc,
- 0xc, 0x1, 0xb0, 0xc, 0x1, 0xb0, 0xc0, 0xc0,
- 0x1b, 0x0, 0xc0, 0x1b, 0xc, 0xc, 0x1, 0xb0,
- 0xc, 0x1, 0xb0, 0xd5, 0xd5, 0x6b, 0x0, 0xc0,
- 0x1b, 0xc, 0x0, 0x1, 0x70, 0xc, 0x56, 0xb0,
- 0xc0, 0x0, 0x0, 0x0, 0xc0, 0x1b, 0xc, 0x0,
- 0x0, 0x1, 0xc, 0x0, 0x50, 0xc0, 0x0, 0x0,
- 0x60, 0x0, 0x0, 0xc, 0x0, 0x0, 0xa, 0x0,
- 0x0, 0x0, 0xab, 0xaa, 0xab, 0xc0,
-
- /* U+5440 "呀" */
- 0x0, 0x0, 0x2, 0x22, 0x22, 0x65, 0x9, 0x55,
- 0xb2, 0x42, 0x22, 0xc2, 0x20, 0xc0, 0xc, 0x6,
- 0x90, 0xc, 0x0, 0xc, 0x0, 0xc0, 0xb3, 0x0,
- 0xc0, 0x0, 0xc0, 0xc, 0x1c, 0x0, 0xc, 0x7,
- 0xc, 0x0, 0xc2, 0x75, 0x7d, 0xd5, 0x51, 0xc0,
- 0xc, 0x0, 0xa, 0x4c, 0x0, 0xc, 0x55, 0xd0,
- 0x4, 0x90, 0xc0, 0x0, 0xa0, 0x1, 0x2, 0xa0,
- 0xc, 0x0, 0x0, 0x0, 0x2, 0x90, 0x0, 0xc0,
- 0x0, 0x0, 0x3, 0x60, 0x12, 0x3b, 0x0, 0x0,
- 0x1, 0x20, 0x0, 0x5e, 0x60, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+544A "告" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x64, 0xb, 0x30, 0x0, 0x0, 0x0, 0xb, 0x10,
- 0xb1, 0x2, 0x10, 0x0, 0x5, 0x85, 0x5c, 0x65,
- 0x76, 0x0, 0x1, 0x70, 0x0, 0xb1, 0x0, 0x0,
- 0x0, 0x20, 0x0, 0xb, 0x10, 0x1, 0x50, 0x6,
- 0x55, 0x55, 0x65, 0x55, 0x67, 0x10, 0x0, 0x20,
- 0x0, 0x0, 0x20, 0x0, 0x0, 0xc, 0x55, 0x55,
- 0x5c, 0x30, 0x0, 0x0, 0xc0, 0x0, 0x0, 0xb1,
- 0x0, 0x0, 0xc, 0x0, 0x0, 0xb, 0x10, 0x0,
- 0x0, 0xc5, 0x55, 0x55, 0xc1, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0xa, 0x10, 0x0, 0x0, 0x20, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+5462 "呢" */
- 0x10, 0x1, 0x8, 0x55, 0x55, 0x91, 0xc5, 0x5d,
- 0xc, 0x0, 0x0, 0xc0, 0xc0, 0xc, 0xc, 0x0,
- 0x0, 0xc0, 0xc0, 0xc, 0xc, 0x55, 0x55, 0xd0,
- 0xc0, 0xc, 0xc, 0x12, 0x0, 0x20, 0xc0, 0xc,
- 0xc, 0x3a, 0x0, 0x70, 0xc0, 0xc, 0xb, 0x38,
- 0x9, 0x80, 0xc5, 0x5c, 0x38, 0x38, 0x74, 0x0,
- 0xc0, 0x6, 0x73, 0x3b, 0x10, 0x2, 0x40, 0x0,
- 0xa0, 0x38, 0x0, 0x14, 0x0, 0x4, 0x40, 0x2b,
- 0x11, 0x6a, 0x0, 0x6, 0x0, 0x7, 0x99, 0x93,
- 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5468 "周" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9,
- 0x65, 0x55, 0x55, 0x55, 0xd0, 0x0, 0x92, 0x0,
- 0x92, 0x0, 0xb, 0x0, 0x9, 0x20, 0xa, 0x14,
- 0x10, 0xb0, 0x0, 0x92, 0x36, 0xc5, 0x53, 0xb,
- 0x0, 0x9, 0x20, 0xa, 0x10, 0x60, 0xb0, 0x0,
- 0xa4, 0x65, 0x55, 0x55, 0x2b, 0x0, 0xa, 0x0,
- 0x85, 0x5a, 0x30, 0xb0, 0x0, 0xb0, 0xb, 0x0,
- 0xb0, 0xb, 0x0, 0xa, 0x0, 0xb0, 0xb, 0x0,
- 0xb0, 0x4, 0x50, 0xc, 0x55, 0xc0, 0xb, 0x0,
- 0x80, 0x0, 0x40, 0x3, 0x22, 0xb0, 0x32, 0x0,
- 0x0, 0x0, 0x5, 0xe5, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+5473 "味" */
- 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0x74, 0x49, 0x0,
- 0xc, 0x0, 0x20, 0xc, 0x0, 0xc1, 0x65, 0xd5,
- 0x67, 0x0, 0xc0, 0xc, 0x0, 0xc, 0x0, 0x0,
- 0xc, 0x0, 0xc0, 0x0, 0xc0, 0x2, 0x50, 0xc0,
- 0xc, 0x65, 0xae, 0x85, 0x55, 0xc, 0x0, 0xc0,
- 0xc, 0xc5, 0x10, 0x0, 0xd5, 0x5c, 0x6, 0x5c,
- 0x8, 0x0, 0xa, 0x0, 0x32, 0x90, 0xc0, 0x76,
- 0x0, 0x0, 0x1, 0x90, 0xc, 0x0, 0xc9, 0x10,
- 0x1, 0x70, 0x0, 0xc0, 0x1, 0x50, 0x0, 0x20,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x20, 0x0, 0x0,
-
- /* U+547C "呼" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x4, 0x8e, 0x20, 0x85, 0x5c, 0x14,
- 0x58, 0xc2, 0x0, 0xb, 0x0, 0xc1, 0x10, 0x1a,
- 0x1, 0x90, 0xb0, 0xc, 0xa, 0x11, 0xa0, 0x94,
- 0xb, 0x0, 0xc0, 0x67, 0x1a, 0x25, 0x0, 0xb0,
- 0xc, 0x1, 0x11, 0xa2, 0x5, 0xb, 0x0, 0xc5,
- 0x55, 0x6c, 0x55, 0x71, 0xb5, 0x5c, 0x0, 0x1,
- 0xa0, 0x0, 0xb, 0x0, 0xc0, 0x0, 0x1a, 0x0,
- 0x0, 0x50, 0x0, 0x0, 0x1, 0xa0, 0x0, 0x0,
- 0x0, 0x0, 0x1, 0x3a, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x6e, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x10, 0x0, 0x0,
-
- /* U+547D "命" */
- 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x4, 0xf1, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0x36, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa4,
- 0x2, 0x80, 0x0, 0x0, 0x0, 0xa, 0x40, 0x0,
- 0x7c, 0x71, 0x0, 0x3, 0x82, 0x65, 0x55, 0x61,
- 0x8f, 0x80, 0x33, 0x20, 0x3, 0x4, 0x11, 0x52,
- 0x0, 0x0, 0xb5, 0x5d, 0xb, 0x33, 0xc1, 0x0,
- 0x0, 0xb0, 0xb, 0xb, 0x0, 0xb0, 0x0, 0x0,
- 0xb0, 0xb, 0xb, 0x0, 0xb0, 0x0, 0x0, 0xb5,
- 0x5c, 0xb, 0x0, 0xb0, 0x0, 0x0, 0xb0, 0x9,
- 0xb, 0x29, 0xc0, 0x0, 0x0, 0x30, 0x0, 0xb,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
- 0x0, 0x0,
-
- /* U+548C "和" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x4a, 0xd0, 0x0, 0x0, 0x0, 0x2, 0x55,
- 0xd1, 0x0, 0x85, 0x55, 0x90, 0x0, 0x0, 0xc0,
- 0x0, 0xc0, 0x2, 0xa0, 0x3, 0x55, 0xd5, 0x94,
- 0xc0, 0x2, 0xa0, 0x0, 0x4, 0xe0, 0x0, 0xc0,
- 0x2, 0xa0, 0x0, 0xb, 0xe7, 0x20, 0xc0, 0x2,
- 0xa0, 0x0, 0x37, 0xc1, 0xd3, 0xc0, 0x2, 0xa0,
- 0x0, 0x90, 0xc0, 0x11, 0xc0, 0x2, 0xa0, 0x6,
- 0x10, 0xc0, 0x0, 0xd5, 0x56, 0xa0, 0x11, 0x0,
- 0xc0, 0x0, 0xc0, 0x2, 0xa0, 0x0, 0x0, 0xd0,
- 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0xb0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+54B2 "咲" */
- 0x0, 0x0, 0x1, 0x0, 0x1, 0x10, 0x0, 0x0,
- 0x0, 0x94, 0x0, 0x7a, 0x0, 0xb5, 0x5c, 0x1,
- 0xf0, 0xa, 0x0, 0xc, 0x0, 0xc0, 0x4, 0x3,
- 0x21, 0x30, 0xc0, 0xc, 0x26, 0x59, 0x85, 0x66,
- 0xc, 0x0, 0xc0, 0x0, 0x93, 0x0, 0x0, 0xc0,
- 0xc, 0x0, 0xa, 0x20, 0x4, 0xc, 0x0, 0xc6,
- 0x55, 0xd8, 0x55, 0x73, 0xd5, 0x5c, 0x0, 0xc,
- 0x41, 0x0, 0xc, 0x0, 0x80, 0x3, 0x91, 0x70,
- 0x0, 0x10, 0x0, 0x0, 0xa2, 0xa, 0x10, 0x0,
- 0x0, 0x0, 0x56, 0x0, 0x3c, 0x0, 0x0, 0x0,
- 0x64, 0x0, 0x0, 0x8e, 0x40, 0x0, 0x30, 0x0,
- 0x0, 0x0, 0x30,
-
- /* U+54C1 "品" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb,
- 0x55, 0x55, 0xa4, 0x0, 0x0, 0xc, 0x0, 0x0,
- 0x82, 0x0, 0x0, 0xc, 0x0, 0x0, 0x82, 0x0,
- 0x0, 0xc, 0x0, 0x0, 0x82, 0x0, 0x0, 0xd,
- 0x55, 0x55, 0xb2, 0x0, 0x0, 0x4, 0x0, 0x0,
- 0x10, 0x0, 0x1a, 0x55, 0xa5, 0xb, 0x55, 0xb4,
- 0xb, 0x0, 0x93, 0xc, 0x0, 0xa2, 0xb, 0x0,
- 0x93, 0xc, 0x0, 0xa2, 0xb, 0x0, 0x93, 0xc,
- 0x0, 0xa2, 0xd, 0x55, 0xb3, 0xd, 0x55, 0xb2,
- 0x1a, 0x0, 0x51, 0x9, 0x0, 0x61, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0,
-
- /* U+54E1 "員" */
- 0x0, 0x2, 0x0, 0x0, 0x3, 0x0, 0x0, 0x1c,
- 0x55, 0x55, 0x5d, 0x0, 0x0, 0x1b, 0x0, 0x0,
- 0xb, 0x0, 0x0, 0x1c, 0x55, 0x55, 0x5a, 0x0,
- 0x1, 0x86, 0x55, 0x55, 0x56, 0x80, 0x1, 0xb0,
- 0x0, 0x0, 0x2, 0x90, 0x1, 0xc5, 0x55, 0x55,
- 0x56, 0x90, 0x0, 0xb0, 0x0, 0x0, 0x2, 0x90,
- 0x1, 0xc5, 0x55, 0x55, 0x56, 0x90, 0x1, 0xc5,
- 0x55, 0x55, 0x56, 0xa0, 0x0, 0x50, 0x54, 0x5,
- 0x10, 0x20, 0x0, 0x7, 0xa3, 0x1, 0x9b, 0x30,
- 0x3, 0x72, 0x0, 0x0, 0x3, 0xe0, 0x11, 0x0,
- 0x0, 0x0, 0x0, 0x10,
-
- /* U+54EA "哪" */
- 0x0, 0x3, 0x33, 0x37, 0x24, 0x37, 0x8, 0x5a,
- 0x22, 0xb1, 0xb4, 0x72, 0xc1, 0xa0, 0xa0, 0xa,
- 0xb, 0x46, 0x53, 0xa, 0xa, 0x25, 0xc5, 0xb4,
- 0x66, 0x0, 0xa0, 0xa0, 0xa, 0xb, 0x46, 0x50,
- 0xa, 0xa, 0x0, 0x90, 0xb4, 0x64, 0x30, 0xa0,
- 0xa2, 0x5b, 0x4b, 0x46, 0xa, 0xc, 0x5b, 0x5,
- 0x61, 0xa4, 0x60, 0x91, 0xb0, 0x20, 0x91, 0x1a,
- 0x47, 0x2b, 0x12, 0x0, 0x28, 0x3, 0x84, 0x6a,
- 0x90, 0x0, 0x8, 0x17, 0xb4, 0x46, 0x0, 0x0,
- 0x6, 0x0, 0x25, 0x4, 0x50, 0x0, 0x1, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5546 "商" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x67, 0x0, 0x2, 0x20, 0x6, 0x55,
- 0x75, 0x56, 0x67, 0x57, 0x60, 0x0, 0x0, 0x67,
- 0x0, 0x67, 0x0, 0x0, 0x0, 0x75, 0x5c, 0x55,
- 0x95, 0x59, 0x10, 0x0, 0xb0, 0x5, 0x0, 0x20,
- 0xb, 0x0, 0x0, 0xb0, 0x3c, 0x10, 0x5c, 0x1b,
- 0x0, 0x0, 0xb1, 0x71, 0x0, 0x25, 0x2b, 0x0,
- 0x0, 0xb2, 0xc, 0x55, 0xc2, 0xb, 0x0, 0x0,
- 0xb0, 0xb, 0x0, 0xb0, 0xb, 0x0, 0x0, 0xb0,
- 0xc, 0x55, 0xc0, 0xb, 0x0, 0x0, 0xb0, 0xa,
- 0x0, 0x60, 0xb, 0x0, 0x0, 0xc0, 0x0, 0x0,
- 0x3, 0xbb, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0,
- 0x10, 0x0,
-
- /* U+554A "啊" */
- 0x0, 0x4, 0x67, 0x74, 0x55, 0x5a, 0x2c, 0x5c,
- 0x65, 0x73, 0x0, 0x5, 0x60, 0xa0, 0xa5, 0x58,
- 0x0, 0x0, 0x56, 0xa, 0xa, 0x55, 0x50, 0xa5,
- 0xb5, 0x60, 0xa0, 0xa5, 0x64, 0xa, 0xa, 0x56,
- 0xa, 0xa, 0x55, 0x70, 0xa0, 0xa5, 0x60, 0xa0,
- 0xa5, 0x55, 0x6a, 0xa, 0x56, 0xc, 0x5b, 0x55,
- 0x47, 0xc5, 0xa5, 0x60, 0xa0, 0x35, 0x8d, 0x23,
- 0x1, 0x56, 0x0, 0x0, 0x55, 0x0, 0x0, 0x5,
- 0x60, 0x0, 0x5, 0x50, 0x0, 0x10, 0x56, 0x0,
- 0x0, 0x64, 0x0, 0x1, 0x8f, 0x30, 0x0, 0x1,
- 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+554F "問" */
- 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0xc5,
- 0x55, 0xc0, 0xc5, 0x55, 0xd0, 0x1b, 0x0, 0xa,
- 0xb, 0x0, 0xc, 0x1, 0xc5, 0x55, 0xa0, 0xc5,
- 0x55, 0xc0, 0x1b, 0x0, 0xa, 0xb, 0x0, 0xc,
- 0x1, 0xc5, 0x55, 0x80, 0xb5, 0x55, 0xc0, 0x1b,
- 0x0, 0x0, 0x0, 0x10, 0xc, 0x1, 0xb0, 0xc,
- 0x55, 0x5d, 0x0, 0xc0, 0x1b, 0x0, 0xb0, 0x0,
- 0xb0, 0xc, 0x1, 0xb0, 0xb, 0x0, 0xb, 0x0,
- 0xc0, 0x1b, 0x0, 0xd5, 0x55, 0xb0, 0xc, 0x1,
- 0xb0, 0x3, 0x0, 0x2, 0x0, 0xc0, 0x1a, 0x0,
- 0x0, 0x0, 0x6, 0xd8, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0x1, 0x0,
-
- /* U+5566 "啦" */
- 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd0, 0x4, 0x30, 0x0, 0x0, 0x0, 0xb,
- 0x0, 0xd, 0x0, 0xb, 0x5c, 0x10, 0xb4, 0x0,
- 0x71, 0x50, 0xb0, 0xb4, 0x6c, 0x54, 0x65, 0x55,
- 0xb, 0xb, 0x0, 0xb0, 0x0, 0x5, 0x30, 0xb0,
- 0xb0, 0xb, 0x45, 0x20, 0xa5, 0xb, 0xb, 0x5,
- 0xd2, 0x9, 0xb, 0x0, 0xb0, 0xba, 0x6b, 0x0,
- 0xc0, 0xa0, 0xc, 0x5c, 0x0, 0xb0, 0xa, 0x27,
- 0x0, 0xa0, 0x20, 0xb, 0x0, 0x24, 0x30, 0x0,
- 0x0, 0x11, 0xb0, 0x0, 0x50, 0x60, 0x0, 0x4,
- 0xd7, 0x36, 0x55, 0x56, 0x20, 0x0, 0x1, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+5584 "善" */
- 0x0, 0x0, 0x20, 0x0, 0x20, 0x0, 0x0, 0x0,
- 0x6, 0x70, 0x1b, 0x0, 0x0, 0x3, 0x55, 0x6b,
- 0x59, 0x55, 0xc5, 0x0, 0x0, 0x0, 0xc, 0x0,
- 0x21, 0x0, 0x0, 0x36, 0x55, 0xd5, 0x56, 0x50,
- 0x0, 0x65, 0x55, 0x5d, 0x55, 0x56, 0xb0, 0x0,
- 0x4, 0x60, 0xc0, 0x1b, 0x0, 0x0, 0x0, 0xb,
- 0xc, 0x5, 0x20, 0x60, 0x16, 0x55, 0x55, 0x65,
- 0x55, 0x57, 0x40, 0x0, 0x75, 0x55, 0x55, 0xa1,
- 0x0, 0x0, 0xb, 0x0, 0x0, 0xb, 0x0, 0x0,
- 0x0, 0xb0, 0x0, 0x0, 0xb0, 0x0, 0x0, 0xc,
- 0x55, 0x55, 0x5d, 0x0, 0x0, 0x0, 0x20, 0x0,
- 0x0, 0x20, 0x0,
-
- /* U+5589 "喉" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc2, 0x55, 0x82, 0x0, 0x54, 0x72, 0x1a,
- 0x0, 0xa, 0x0, 0xa, 0x1a, 0x6, 0x30, 0x0,
- 0xa0, 0x40, 0xa0, 0xa0, 0xc2, 0x7b, 0x55, 0x55,
- 0xa, 0xa, 0x3e, 0x4, 0xa0, 0x2, 0x0, 0xa0,
- 0xa4, 0xa0, 0x95, 0xb5, 0x62, 0xa, 0xa, 0xa,
- 0x32, 0xb, 0x0, 0x0, 0xa5, 0xc0, 0xa4, 0x55,
- 0xc6, 0x59, 0xb, 0x9, 0xa, 0x0, 0xa, 0x60,
- 0x0, 0x60, 0x0, 0xa0, 0x6, 0x56, 0x30, 0x0,
- 0x0, 0xa, 0x1, 0x90, 0xb, 0x10, 0x0, 0x0,
- 0xb2, 0x60, 0x0, 0x3b, 0x0, 0x0, 0x1, 0x10,
- 0x0, 0x0, 0x0,
-
- /* U+559C "喜" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb, 0x10, 0x4, 0x10, 0x2, 0x65, 0x55,
- 0xc5, 0x55, 0x75, 0x0, 0x0, 0x22, 0x2c, 0x22,
- 0x91, 0x0, 0x0, 0x6, 0x32, 0x22, 0x26, 0x10,
- 0x0, 0x0, 0xb5, 0x55, 0x55, 0xc1, 0x0, 0x0,
- 0xb, 0x55, 0x55, 0x5c, 0x0, 0x0, 0x0, 0x63,
- 0x30, 0x8, 0x40, 0x0, 0x1, 0x11, 0x1b, 0x13,
- 0x51, 0x18, 0x21, 0x64, 0x54, 0x44, 0x44, 0x54,
- 0x42, 0x0, 0xa, 0x55, 0x55, 0x5b, 0x40, 0x0,
- 0x0, 0xa0, 0x0, 0x0, 0x82, 0x0, 0x0, 0xb,
- 0x55, 0x55, 0x5b, 0x30, 0x0, 0x0, 0x30, 0x0,
- 0x0, 0x20, 0x0,
-
- /* U+559D "喝" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x10, 0xc5, 0x55, 0x5e, 0x0, 0xb5, 0x6c, 0xc,
- 0x0, 0x0, 0xc0, 0xc, 0x1, 0xa0, 0xd5, 0x55,
- 0x5c, 0x0, 0xc0, 0x1a, 0xd, 0x55, 0x55, 0xc0,
- 0xc, 0x1, 0xa0, 0x8a, 0x0, 0x4, 0x0, 0xc0,
- 0x1a, 0xa, 0x73, 0x33, 0x37, 0xc, 0x56, 0xb6,
- 0x52, 0x86, 0x22, 0xb0, 0xc0, 0x8, 0xa5, 0x1c,
- 0x60, 0x18, 0x9, 0x0, 0x26, 0x38, 0x13, 0xa3,
- 0x70, 0x0, 0x0, 0x65, 0x0, 0x16, 0x46, 0x0,
- 0x0, 0x6, 0x65, 0x55, 0x47, 0x40, 0x0, 0x0,
- 0x0, 0x0, 0x3b, 0xd0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x11, 0x0,
-
- /* U+55AE "單" */
- 0x0, 0x10, 0x3, 0x2, 0x0, 0x11, 0x0, 0x0,
- 0xb5, 0x5c, 0x1b, 0x55, 0x87, 0x0, 0x0, 0xb0,
- 0xb, 0xa, 0x0, 0x55, 0x0, 0x0, 0xb5, 0x5a,
- 0xb, 0x55, 0x85, 0x0, 0x0, 0x27, 0x55, 0x65,
- 0x55, 0xa0, 0x0, 0x0, 0x38, 0x0, 0x90, 0x0,
- 0xb0, 0x0, 0x0, 0x2b, 0x55, 0xb5, 0x55, 0xb0,
- 0x0, 0x0, 0x28, 0x0, 0x90, 0x0, 0xb0, 0x0,
- 0x0, 0x3b, 0x55, 0xb5, 0x55, 0xb0, 0x0, 0x0,
- 0x11, 0x0, 0x90, 0x0, 0x13, 0x20, 0x16, 0x55,
- 0x55, 0xb5, 0x55, 0x56, 0x60, 0x0, 0x0, 0x0,
- 0x90, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x30, 0x0,
- 0x0, 0x0,
-
- /* U+55B6 "営" */
- 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x91, 0x9, 0x10, 0x87, 0x0, 0x0, 0x5, 0x90,
- 0x57, 0x18, 0x0, 0x0, 0x20, 0x2, 0x0, 0x4,
- 0x0, 0x11, 0x8, 0x55, 0x55, 0x55, 0x55, 0x5b,
- 0x91, 0xd0, 0x47, 0x55, 0x55, 0xb0, 0x70, 0x11,
- 0x5, 0x60, 0x0, 0xb, 0x0, 0x0, 0x0, 0x59,
- 0x55, 0x55, 0xb0, 0x0, 0x0, 0x3, 0x20, 0x0,
- 0x3, 0x0, 0x0, 0x5, 0x55, 0x55, 0x55, 0x59,
- 0x10, 0x0, 0xa1, 0x0, 0x0, 0x0, 0xb0, 0x0,
- 0xa, 0x10, 0x0, 0x0, 0xb, 0x0, 0x0, 0xa5,
- 0x55, 0x55, 0x55, 0xc0, 0x0, 0x5, 0x0, 0x0,
- 0x0, 0x4, 0x0,
-
- /* U+55CE "嗎" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9, 0x55,
- 0x95, 0x85, 0x59, 0x57, 0x60, 0xb0, 0xa, 0x56,
- 0x0, 0xb0, 0x10, 0xb, 0x0, 0xa5, 0x95, 0x5c,
- 0x58, 0x20, 0xb0, 0xa, 0x56, 0x0, 0xb0, 0x10,
- 0xb, 0x0, 0xa5, 0x95, 0x5c, 0x57, 0x30, 0xb0,
- 0xa, 0x56, 0x0, 0xb0, 0x2, 0xc, 0x55, 0xb5,
- 0x95, 0x47, 0x45, 0xc2, 0xb0, 0x6, 0x0, 0x0,
- 0x4, 0xb, 0x5, 0x0, 0x4, 0x24, 0x26, 0x3a,
- 0xb0, 0x0, 0x0, 0x90, 0xc0, 0xc0, 0xab, 0x0,
- 0x0, 0x67, 0x7, 0x2, 0x2, 0xa0, 0x0, 0x0,
- 0x0, 0x0, 0x39, 0xf5, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x3, 0x0,
-
- /* U+55EF "嗯" */
- 0x20, 0x3, 0x18, 0x55, 0x55, 0xa3, 0xb, 0x56,
- 0xb1, 0xa0, 0x73, 0xa, 0x10, 0xb0, 0x1a, 0x1a,
- 0x5b, 0x79, 0xa1, 0xb, 0x1, 0xa1, 0xa0, 0xb0,
- 0xa, 0x10, 0xb0, 0x1a, 0x1a, 0x18, 0x94, 0xa1,
- 0xb, 0x1, 0xa1, 0xa7, 0x0, 0x7a, 0x10, 0xb5,
- 0x6a, 0x1c, 0x55, 0x55, 0xb1, 0xb, 0x1, 0x70,
- 0x30, 0x71, 0x2, 0x0, 0x80, 0x0, 0x22, 0x63,
- 0xa0, 0x63, 0x0, 0x0, 0x36, 0x28, 0x2, 0x3,
- 0xd2, 0x0, 0xd, 0x22, 0x70, 0x1, 0x64, 0x0,
- 0x0, 0x0, 0xc, 0x99, 0xb9, 0x0,
-
- /* U+561B "嘛" */
- 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb2, 0x0, 0x0, 0x85, 0x94, 0x75,
- 0x58, 0x55, 0x98, 0xb, 0xb, 0x47, 0xb, 0x0,
- 0xa1, 0x0, 0xb0, 0xb4, 0x70, 0xa0, 0xa, 0x0,
- 0xb, 0xb, 0x4a, 0x5c, 0x94, 0xc6, 0x80, 0xb0,
- 0xb5, 0x63, 0xc0, 0xe, 0x40, 0xb, 0xb, 0x64,
- 0x8c, 0xb4, 0xe6, 0x0, 0xc5, 0xc9, 0x1a, 0xa2,
- 0x8a, 0x70, 0x9, 0x0, 0xa6, 0x2a, 0x25, 0xa2,
- 0x90, 0x0, 0x36, 0x50, 0xa5, 0xa, 0xa, 0x30,
- 0x7, 0x20, 0xa, 0x0, 0xb0, 0x0, 0x3, 0x10,
- 0x0, 0xa0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+56B4 "嚴" */
- 0x0, 0x1, 0x0, 0x30, 0x10, 0x2, 0x0, 0x0,
- 0x1b, 0x55, 0xc0, 0xb5, 0x5c, 0x0, 0x0, 0x1b,
- 0x55, 0xb0, 0xb5, 0x5b, 0x0, 0x0, 0x33, 0x0,
- 0x30, 0x40, 0x7, 0x30, 0x0, 0xd5, 0x55, 0x65,
- 0x57, 0x56, 0x50, 0x0, 0xb0, 0x65, 0xc1, 0x2b,
- 0x0, 0x0, 0x0, 0xb0, 0x0, 0x93, 0x66, 0x25,
- 0x40, 0x0, 0xb5, 0xc5, 0x79, 0xb2, 0x49, 0x10,
- 0x1, 0xa0, 0xb5, 0x77, 0x73, 0x55, 0x0, 0x2,
- 0x80, 0xa0, 0x39, 0x7, 0x91, 0x0, 0x5, 0x40,
- 0xb5, 0x77, 0x5, 0xb0, 0x0, 0x7, 0x2, 0xc7,
- 0x89, 0x38, 0xa5, 0x0, 0x5, 0x9, 0x40, 0x37,
- 0x52, 0xb, 0x90, 0x10, 0x0, 0x0, 0x12, 0x0,
- 0x0, 0x0,
-
- /* U+56DB "四" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x55, 0x75,
- 0x57, 0x55, 0xc2, 0xc0, 0xc, 0x0, 0xc0, 0xc,
- 0xc, 0x0, 0xc0, 0xc, 0x0, 0xc0, 0xc0, 0xc,
- 0x0, 0xc0, 0xc, 0xc, 0x0, 0xb0, 0xc, 0x0,
- 0xc0, 0xc0, 0xb, 0x0, 0xc0, 0xc, 0xc, 0x4,
- 0x70, 0xc, 0x0, 0xc0, 0xc0, 0xa1, 0x0, 0xab,
- 0xcd, 0xc, 0x73, 0x0, 0x0, 0x0, 0xc0, 0xd1,
- 0x0, 0x0, 0x0, 0xc, 0xd, 0x55, 0x55, 0x55,
- 0x55, 0xd0, 0xc0, 0x0, 0x0, 0x0, 0xb, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x10,
-
- /* U+56DE "回" */
- 0x85, 0x55, 0x55, 0x55, 0x59, 0x2c, 0x0, 0x0,
- 0x0, 0x0, 0xb0, 0xc0, 0x0, 0x0, 0x0, 0xb,
- 0xc, 0x1, 0x75, 0x55, 0x80, 0xb0, 0xc0, 0x1a,
- 0x0, 0x1a, 0xb, 0xc, 0x0, 0xa0, 0x1, 0xa0,
- 0xb0, 0xc0, 0x1a, 0x0, 0x1a, 0xb, 0xc, 0x1,
- 0xc5, 0x56, 0xa0, 0xb0, 0xc0, 0x4, 0x0, 0x2,
- 0xb, 0xc, 0x0, 0x0, 0x0, 0x0, 0xb0, 0xd5,
- 0x55, 0x55, 0x55, 0x5c, 0xc, 0x0, 0x0, 0x0,
- 0x0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+56E0 "因" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x95,
- 0x55, 0x55, 0x55, 0x56, 0xa0, 0x1b, 0x0, 0x1,
- 0x60, 0x0, 0x2a, 0x1, 0xb0, 0x0, 0x1b, 0x0,
- 0x2, 0xa0, 0x1b, 0x0, 0x1, 0xa0, 0x4, 0x2a,
- 0x1, 0xb3, 0x65, 0x6c, 0x56, 0x72, 0xa0, 0x1b,
- 0x0, 0x4, 0x90, 0x0, 0x2a, 0x1, 0xb0, 0x0,
- 0x88, 0x70, 0x2, 0xa0, 0x1b, 0x0, 0xc, 0x4,
- 0xc0, 0x2a, 0x1, 0xb0, 0x9, 0x30, 0x9, 0x72,
- 0xa0, 0x1b, 0x16, 0x20, 0x0, 0x14, 0x2a, 0x1,
- 0xb0, 0x0, 0x0, 0x0, 0x2, 0xa0, 0x1c, 0x55,
- 0x55, 0x55, 0x55, 0x6a, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+56F0 "困" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0x55,
- 0x55, 0x65, 0x55, 0xc4, 0xc, 0x0, 0x0, 0xd0,
- 0x0, 0xa2, 0xc, 0x0, 0x0, 0xc0, 0x0, 0xa2,
- 0xc, 0x36, 0x56, 0xd5, 0x79, 0xa2, 0xc, 0x0,
- 0xc, 0xc0, 0x0, 0xa2, 0xc, 0x0, 0x47, 0xd5,
- 0x0, 0xa2, 0xc, 0x0, 0xa0, 0xc2, 0xc4, 0xa2,
- 0xc, 0x8, 0x20, 0xc0, 0x2c, 0xa2, 0xc, 0x52,
- 0x0, 0xc0, 0x2, 0xa2, 0xc, 0x0, 0x0, 0xd0,
- 0x0, 0xa2, 0xc, 0x0, 0x0, 0x40, 0x0, 0xa2,
- 0xd, 0x55, 0x55, 0x55, 0x55, 0xb2, 0x2, 0x0,
- 0x0, 0x0, 0x0, 0x0,
-
- /* U+56F3 "図" */
- 0x30, 0x0, 0x0, 0x0, 0x0, 0x30, 0xb6, 0x55,
- 0x55, 0x55, 0x55, 0xd2, 0xb1, 0x0, 0x1, 0x30,
- 0x0, 0xb0, 0xb1, 0x0, 0x71, 0xb2, 0x71, 0xb0,
- 0xb1, 0x4, 0x2b, 0x56, 0xd1, 0xb0, 0xb1, 0x5,
- 0x14, 0x9, 0x40, 0xb0, 0xb1, 0x0, 0x80, 0x3a,
- 0x0, 0xb0, 0xb1, 0x0, 0x29, 0xb1, 0x0, 0xb0,
- 0xb1, 0x0, 0xb, 0xb0, 0x0, 0xb0, 0xb1, 0x1,
- 0x81, 0x3c, 0x72, 0xb0, 0xb1, 0x45, 0x0, 0x1,
- 0x89, 0xc0, 0xb3, 0x0, 0x0, 0x0, 0x0, 0xb0,
- 0xb6, 0x55, 0x55, 0x55, 0x55, 0xd1, 0x20, 0x0,
- 0x0, 0x0, 0x0, 0x20,
-
- /* U+56FD "国" */
- 0x10, 0x0, 0x0, 0x0, 0x1, 0xd, 0x55, 0x55,
- 0x55, 0x55, 0xd2, 0xc0, 0x0, 0x0, 0x3, 0x3c,
- 0xc, 0x16, 0x56, 0xb5, 0x53, 0xc0, 0xc0, 0x0,
- 0x2a, 0x0, 0xc, 0xc, 0x4, 0x56, 0xb5, 0xa1,
- 0xc0, 0xc0, 0x10, 0x2a, 0x20, 0xc, 0xc, 0x0,
- 0x2, 0xa9, 0x70, 0xc0, 0xc0, 0x0, 0x2a, 0x9,
- 0xc, 0xc, 0x35, 0x56, 0xb5, 0x98, 0xc0, 0xc1,
- 0x0, 0x0, 0x0, 0xc, 0xd, 0x55, 0x55, 0x55,
- 0x55, 0xd0, 0xc0, 0x0, 0x0, 0x0, 0x9, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+570B "國" */
- 0x20, 0x0, 0x0, 0x0, 0x0, 0x30, 0xa6, 0x55,
- 0x55, 0x87, 0x55, 0xc2, 0xa1, 0x0, 0x0, 0xc1,
- 0xc0, 0xb0, 0xa2, 0x65, 0x55, 0xc5, 0x8a, 0xb0,
- 0xa1, 0x0, 0x0, 0xa0, 0x0, 0xb0, 0xa1, 0x95,
- 0xb2, 0xa0, 0x65, 0xb0, 0xa1, 0xa0, 0xa0, 0x90,
- 0xa1, 0xb0, 0xa1, 0xa5, 0xc0, 0x67, 0x80, 0xb0,
- 0xa1, 0x70, 0x40, 0xf, 0x11, 0xc0, 0xa1, 0x36,
- 0x63, 0x7a, 0x86, 0xb0, 0xa2, 0x91, 0x6, 0x40,
- 0x6f, 0xb0, 0xa1, 0x0, 0x40, 0x0, 0x3, 0xc0,
- 0xa6, 0x55, 0x55, 0x55, 0x55, 0xc0, 0x30, 0x0,
- 0x0, 0x0, 0x0, 0x20,
-
- /* U+570D "圍" */
- 0x11, 0x0, 0x0, 0x0, 0x0, 0x3, 0x2, 0xb5,
- 0x55, 0x75, 0x55, 0x55, 0xd0, 0x2a, 0x0, 0xa,
- 0x10, 0x20, 0xc, 0x2, 0xa0, 0x46, 0xb5, 0x5d,
- 0x0, 0xc0, 0x2a, 0x45, 0x5b, 0x55, 0xca, 0x3c,
- 0x2, 0xa1, 0x16, 0x55, 0x58, 0x0, 0xc0, 0x2a,
- 0x1, 0x90, 0x0, 0xb0, 0xc, 0x2, 0xa0, 0x18,
- 0x5c, 0x57, 0x0, 0xc0, 0x2a, 0x6, 0x85, 0xc5,
- 0x84, 0xc, 0x2, 0xa0, 0xa8, 0x5c, 0x57, 0x70,
- 0xc0, 0x2a, 0x1, 0x0, 0xb0, 0x0, 0xc, 0x2,
- 0xa0, 0x0, 0x8, 0x0, 0x0, 0xc0, 0x2b, 0x55,
- 0x55, 0x55, 0x55, 0x5c, 0x0, 0x20, 0x0, 0x0,
- 0x0, 0x0, 0x20,
-
- /* U+5712 "園" */
- 0x30, 0x0, 0x0, 0x0, 0x0, 0x30, 0xa6, 0x55,
- 0x5a, 0x55, 0x55, 0xd1, 0xa2, 0x0, 0xc, 0x3,
- 0x0, 0xc0, 0xa2, 0x6, 0x5c, 0x56, 0x20, 0xc0,
- 0xa2, 0x65, 0x5a, 0x55, 0xa3, 0xc0, 0xa2, 0x7,
- 0x55, 0x58, 0x20, 0xc0, 0xa2, 0xb, 0x0, 0xa,
- 0x10, 0xc0, 0xa2, 0xd, 0x66, 0x5b, 0x10, 0xc0,
- 0xa2, 0x3, 0xd1, 0x1, 0xc1, 0xc0, 0xa2, 0x18,
- 0xa1, 0x69, 0x10, 0xc0, 0xa4, 0x50, 0x80, 0x9,
- 0xa0, 0xc0, 0xa2, 0x0, 0x60, 0x0, 0x70, 0xc0,
- 0xa6, 0x55, 0x55, 0x55, 0x55, 0xd0, 0x20, 0x0,
- 0x0, 0x0, 0x0, 0x10,
-
- /* U+5718 "團" */
- 0x30, 0x0, 0x0, 0x0, 0x0, 0x30, 0xb6, 0x55,
- 0x5a, 0x65, 0x55, 0xd1, 0xb3, 0x65, 0x5d, 0x55,
- 0x76, 0xc0, 0xb1, 0x55, 0x5c, 0x55, 0x80, 0xc0,
- 0xb1, 0x86, 0x5c, 0x55, 0xa0, 0xc0, 0xb1, 0x86,
- 0x5c, 0x55, 0xa0, 0xc0, 0xb1, 0x50, 0xb, 0x3,
- 0x70, 0xc0, 0xb1, 0x9a, 0x88, 0x48, 0x86, 0xc0,
- 0xb2, 0x55, 0x55, 0x5c, 0x82, 0xc0, 0xb1, 0x15,
- 0x40, 0xa, 0x0, 0xc0, 0xb1, 0x0, 0x72, 0x5a,
- 0x0, 0xc0, 0xb1, 0x0, 0x0, 0x74, 0x0, 0xc0,
- 0xb6, 0x55, 0x55, 0x55, 0x55, 0xd0, 0x20, 0x0,
- 0x0, 0x0, 0x0, 0x10,
-
- /* U+571F "土" */
- 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb4, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb1,
- 0x0, 0x0, 0x0, 0x2, 0x55, 0x55, 0xc6, 0x55,
- 0x9a, 0x0, 0x0, 0x10, 0x0, 0xb1, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xb1, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb1, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb1, 0x0, 0x1, 0x0, 0x26, 0x55, 0x55,
- 0xb6, 0x55, 0x5b, 0x90, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+5723 "圣" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x16, 0x65, 0x55, 0x58, 0xd0, 0x0, 0x0, 0x0,
- 0x32, 0x0, 0xd, 0x50, 0x0, 0x0, 0x0, 0x6,
- 0x40, 0xa6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c,
- 0x70, 0x0, 0x0, 0x0, 0x0, 0x2, 0xb8, 0xb7,
- 0x20, 0x0, 0x0, 0x3, 0x87, 0x19, 0x15, 0xbf,
- 0xd3, 0x4, 0x53, 0x0, 0xd, 0x0, 0x0, 0x20,
- 0x0, 0x0, 0x0, 0xd, 0x0, 0x26, 0x0, 0x0,
- 0x26, 0x55, 0x5e, 0x55, 0x55, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xd, 0x0, 0x1, 0x80, 0x5, 0x55, 0x55, 0x56,
- 0x55, 0x55, 0x62,
-
- /* U+5728 "在" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xe2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x6, 0x80, 0x0, 0x6, 0x40, 0x5, 0x65, 0x5d,
- 0x55, 0x65, 0x55, 0x40, 0x0, 0x0, 0x58, 0x0,
- 0xd0, 0x0, 0x0, 0x0, 0x1, 0xb0, 0x0, 0xc0,
- 0x0, 0x0, 0x0, 0xd, 0x20, 0x0, 0xc0, 0x7,
- 0x0, 0x0, 0x8c, 0x6, 0x55, 0xd5, 0x55, 0x20,
- 0x6, 0x2c, 0x0, 0x0, 0xc0, 0x0, 0x0, 0x10,
- 0xc, 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0, 0xc, 0x45,
- 0x55, 0xc5, 0x56, 0xc1, 0x0, 0xc, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5730 "地" */
- 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x29, 0x0, 0x0, 0x1a, 0x0, 0x0, 0x0, 0x29,
- 0x0, 0x51, 0x1a, 0x0, 0x0, 0x0, 0x29, 0x0,
- 0xb0, 0x1a, 0x3, 0x0, 0x0, 0x29, 0x10, 0xb0,
- 0x1b, 0x5d, 0x20, 0x6, 0x7b, 0x83, 0xb5, 0x6a,
- 0xb, 0x0, 0x0, 0x29, 0x35, 0xc0, 0x1a, 0xb,
- 0x0, 0x0, 0x29, 0x0, 0xb0, 0x1a, 0xb, 0x0,
- 0x0, 0x29, 0x0, 0xb0, 0x1a, 0xb, 0x0, 0x0,
- 0x29, 0x0, 0xb0, 0x1b, 0x9b, 0x10, 0x0, 0x2c,
- 0x64, 0xb0, 0x17, 0x0, 0x50, 0xb, 0xb3, 0x0,
- 0xb0, 0x0, 0x0, 0x91, 0x3, 0x0, 0x0, 0x7b,
- 0xaa, 0xaa, 0xe4,
-
- /* U+5747 "均" */
- 0x0, 0x2, 0x0, 0x2, 0x10, 0x0, 0x0, 0x0,
- 0xe, 0x0, 0x7, 0x90, 0x0, 0x0, 0x0, 0xc,
- 0x0, 0xb, 0x10, 0x0, 0x10, 0x0, 0xc, 0x0,
- 0x2b, 0x55, 0x55, 0xd1, 0x5, 0x5d, 0x86, 0x81,
- 0x0, 0x0, 0xc0, 0x0, 0xc, 0x2, 0x53, 0x60,
- 0x0, 0xc0, 0x0, 0xc, 0x2, 0x0, 0xb6, 0x0,
- 0xc0, 0x0, 0xc, 0x0, 0x0, 0x35, 0x0, 0xb0,
- 0x0, 0xc, 0x2, 0x10, 0x5, 0x41, 0xb0, 0x0,
- 0x2e, 0x83, 0x6, 0x91, 0x2, 0xa0, 0x1d, 0xc3,
- 0x2, 0xe6, 0x0, 0x4, 0x80, 0x3, 0x0, 0x0,
- 0x20, 0x22, 0x1a, 0x50, 0x0, 0x0, 0x0, 0x0,
- 0x5, 0xea, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x10, 0x0,
-
- /* U+574A "坊" */
- 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0x10, 0x1, 0xb1, 0x0, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0x88, 0x0, 0x0, 0x0, 0xc, 0x0,
- 0x11, 0x22, 0x11, 0x80, 0x0, 0xc, 0x16, 0x36,
- 0xb3, 0x33, 0x31, 0x4, 0x5d, 0x54, 0x4, 0x90,
- 0x0, 0x0, 0x0, 0xc, 0x0, 0x5, 0xa5, 0x5b,
- 0x60, 0x0, 0xc, 0x0, 0x7, 0x60, 0xa, 0x30,
- 0x0, 0xc, 0x0, 0xb, 0x20, 0xb, 0x10, 0x0,
- 0x1d, 0x86, 0x2b, 0x0, 0xd, 0x0, 0xc, 0xc4,
- 0x0, 0x93, 0x0, 0xd, 0x0, 0x2, 0x0, 0x5,
- 0x40, 0x21, 0x3b, 0x0, 0x0, 0x0, 0x53, 0x0,
- 0x1a, 0xf4, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0,
- 0x10, 0x0,
-
- /* U+5750 "坐" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x95, 0x0, 0x0, 0x0, 0x0, 0xd,
- 0x20, 0x92, 0x0, 0xd2, 0x0, 0x0, 0x2c, 0x0,
- 0x92, 0x3, 0xb0, 0x0, 0x0, 0x88, 0x0, 0x92,
- 0x9, 0x80, 0x0, 0x0, 0xc5, 0xa0, 0x92, 0x1a,
- 0x2b, 0x0, 0x6, 0x40, 0xb4, 0x92, 0x71, 0x9,
- 0x60, 0x16, 0x0, 0x20, 0x95, 0x30, 0x1, 0x10,
- 0x10, 0x35, 0x55, 0xb7, 0x55, 0xd3, 0x0, 0x0,
- 0x10, 0x0, 0x92, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x92, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x92, 0x0, 0x5, 0x40, 0x26, 0x55, 0x55, 0x65,
- 0x55, 0x57, 0x70,
-
- /* U+578B "型" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x15,
- 0x55, 0x58, 0x80, 0x0, 0xb1, 0x0, 0xa, 0x9,
- 0x20, 0xb, 0xb, 0x0, 0x0, 0xa0, 0x92, 0x30,
- 0xb0, 0xb0, 0x5, 0x5c, 0x5b, 0x78, 0x3b, 0xb,
- 0x0, 0x0, 0xb0, 0x92, 0x0, 0xb0, 0xb0, 0x0,
- 0x28, 0x9, 0x20, 0x3, 0xb, 0x0, 0x9, 0x0,
- 0x92, 0x0, 0x38, 0xd0, 0x5, 0x10, 0x1, 0xa5,
- 0x0, 0x23, 0x0, 0x1, 0x55, 0x5c, 0x75, 0x5c,
- 0x30, 0x0, 0x1, 0x0, 0xa3, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa, 0x30, 0x0, 0x10, 0x4, 0x55,
- 0x55, 0xb7, 0x55, 0x5e, 0x80, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+57DF "域" */
- 0x0, 0x0, 0x0, 0x0, 0x2, 0x10, 0x0, 0x0,
- 0x94, 0x0, 0x0, 0xc, 0x2b, 0x20, 0x0, 0x92,
- 0x0, 0x0, 0xb, 0x4, 0x40, 0x0, 0x92, 0x36,
- 0x55, 0x5c, 0x56, 0xa1, 0x25, 0xb8, 0x80, 0x0,
- 0xb, 0x0, 0x0, 0x1, 0x92, 0xa, 0x5c, 0x3b,
- 0xa, 0x30, 0x0, 0x92, 0xa, 0xa, 0xb, 0xd,
- 0x0, 0x0, 0x92, 0xa, 0xa, 0xb, 0x57, 0x0,
- 0x0, 0x92, 0xa, 0x59, 0xa, 0xc1, 0x0, 0x15,
- 0xc7, 0x40, 0x0, 0x28, 0xa0, 0x2, 0x49, 0x10,
- 0x68, 0x74, 0x3b, 0xc2, 0x32, 0x0, 0x0, 0x61,
- 0x2, 0x90, 0x3d, 0xa1, 0x0, 0x0, 0x0, 0x56,
- 0x0, 0x4, 0xe2, 0x0, 0x0, 0x1, 0x10, 0x0,
- 0x0, 0x0,
-
- /* U+57F7 "執" */
- 0x0, 0x3, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0,
- 0xc, 0x20, 0x0, 0xc2, 0x0, 0x0, 0x4, 0x5d,
- 0x59, 0x0, 0xc0, 0x0, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0xc0, 0x3, 0x0, 0x0, 0xc, 0x3, 0x26,
- 0xd5, 0x8b, 0x0, 0x27, 0x85, 0x59, 0x30, 0xb0,
- 0x57, 0x0, 0x0, 0x93, 0x56, 0x5, 0xb0, 0x65,
- 0x0, 0x5, 0x77, 0x99, 0x12, 0xe4, 0x74, 0x0,
- 0x0, 0xc, 0x0, 0x4, 0x8d, 0x74, 0x0, 0x25,
- 0x5d, 0x5a, 0x49, 0x20, 0x75, 0x10, 0x1, 0xc,
- 0x0, 0x19, 0x0, 0x58, 0x60, 0x0, 0xc, 0x0,
- 0x91, 0x0, 0xd, 0xa0, 0x0, 0xb, 0x16, 0x10,
- 0x0, 0x3, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+57FA "基" */
- 0x0, 0x0, 0x20, 0x0, 0x3, 0x0, 0x0, 0x0,
- 0x0, 0xd0, 0x0, 0xd, 0x1, 0x0, 0x3, 0x55,
- 0xd5, 0x55, 0x5d, 0x5a, 0x30, 0x0, 0x0, 0xc0,
- 0x0, 0xc, 0x0, 0x0, 0x0, 0x0, 0xc5, 0x55,
- 0x5c, 0x0, 0x0, 0x0, 0x0, 0xc5, 0x55, 0x5c,
- 0x0, 0x0, 0x0, 0x0, 0xc0, 0x0, 0xc, 0x5,
- 0x40, 0x6, 0x55, 0xc7, 0x75, 0x87, 0x57, 0x60,
- 0x0, 0x4, 0x90, 0xb2, 0x9, 0x30, 0x0, 0x0,
- 0x57, 0x0, 0xb0, 0x5, 0x9c, 0x71, 0x16, 0x32,
- 0x55, 0xc5, 0x56, 0x3, 0x40, 0x0, 0x0, 0x0,
- 0xb0, 0x0, 0x0, 0x0, 0x3, 0x55, 0x55, 0xc5,
- 0x55, 0x6e, 0x20, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5831 "報" */
- 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xa, 0x20, 0xa, 0x55, 0x59, 0x50, 0x5, 0x5c,
- 0x59, 0x1b, 0x0, 0x8, 0x30, 0x0, 0xa, 0x0,
- 0xb, 0x0, 0xa, 0x10, 0x25, 0x5c, 0x57, 0x7b,
- 0x2, 0xac, 0x0, 0x1, 0x60, 0x35, 0xb, 0x0,
- 0x11, 0x0, 0x0, 0x85, 0x72, 0xc, 0x75, 0x5a,
- 0x80, 0x6, 0x68, 0x79, 0x3b, 0x40, 0xb, 0x0,
- 0x0, 0xa, 0x0, 0xb, 0x7, 0x74, 0x0, 0x25,
- 0x5c, 0x57, 0x6b, 0x7, 0xa0, 0x0, 0x1, 0xa,
- 0x0, 0xb, 0xa, 0xb3, 0x0, 0x0, 0xa, 0x0,
- 0xb, 0x71, 0x1d, 0x80, 0x0, 0xa, 0x10, 0xb,
- 0x0, 0x2, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5834 "場" */
- 0x0, 0x20, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0,
- 0xa4, 0x0, 0xc5, 0x55, 0x5d, 0x0, 0x0, 0xa2,
- 0x0, 0xb0, 0x0, 0xc, 0x0, 0x0, 0xa2, 0x0,
- 0xc5, 0x55, 0x5c, 0x0, 0x36, 0xc6, 0x92, 0xd5,
- 0x55, 0x5c, 0x0, 0x0, 0xa2, 0x0, 0x60, 0x0,
- 0x5, 0x10, 0x0, 0xa2, 0x16, 0x5a, 0x55, 0x56,
- 0x90, 0x0, 0xa2, 0x0, 0x7a, 0x55, 0x56, 0x50,
- 0x0, 0xa5, 0x67, 0x65, 0x76, 0x66, 0x50, 0x27,
- 0xb4, 0x42, 0x28, 0xb, 0x8, 0x20, 0x47, 0x0,
- 0x4, 0x60, 0x92, 0xb, 0x0, 0x0, 0x0, 0x12,
- 0x8, 0x30, 0xc, 0x0, 0x0, 0x0, 0x3, 0x61,
- 0x6, 0xe5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x10, 0x0,
-
- /* U+584A "塊" */
- 0x0, 0x10, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0,
- 0xa3, 0x0, 0x4, 0x80, 0x0, 0x0, 0x0, 0xa2,
- 0xa, 0x57, 0x85, 0x5c, 0x0, 0x0, 0xa2, 0xb,
- 0x0, 0xc0, 0xc, 0x0, 0x25, 0xc7, 0x8b, 0x55,
- 0xd5, 0x5c, 0x0, 0x1, 0xa2, 0xb, 0x0, 0xc0,
- 0xc, 0x0, 0x0, 0xa2, 0xb, 0x1, 0xb0, 0xc,
- 0x0, 0x0, 0xa2, 0x9, 0x48, 0xe8, 0x47, 0x0,
- 0x0, 0xa2, 0x40, 0xa, 0x84, 0x82, 0x0, 0x1,
- 0xb8, 0x10, 0x39, 0x65, 0x74, 0x0, 0x5d, 0x30,
- 0x1, 0xa0, 0x6c, 0x79, 0x50, 0x1, 0x0, 0x19,
- 0x10, 0x66, 0x2, 0x80, 0x0, 0x3, 0x50, 0x0,
- 0x3b, 0x89, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5869 "塩" */
- 0x0, 0x30, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0xb1, 0x0, 0xa5, 0x0, 0x0, 0x0, 0x0, 0xb0,
- 0x0, 0xc5, 0x55, 0x5c, 0x40, 0x0, 0xb0, 0x6,
- 0x20, 0x0, 0x0, 0x0, 0x36, 0xd7, 0x56, 0x85,
- 0x55, 0x5a, 0x0, 0x0, 0xb0, 0x10, 0xb0, 0x0,
- 0xb, 0x0, 0x0, 0xb0, 0x0, 0xb0, 0x0, 0xb,
- 0x0, 0x0, 0xb0, 0x1, 0xa5, 0x55, 0x58, 0x0,
- 0x0, 0xb1, 0x45, 0x55, 0x55, 0x58, 0x20, 0x3,
- 0xc6, 0xb, 0xa, 0xa, 0xa, 0x10, 0x4b, 0x10,
- 0xb, 0xa, 0xa, 0xa, 0x10, 0x0, 0x0, 0xb,
- 0xa, 0xa, 0xa, 0x10, 0x0, 0x0, 0x4c, 0x5c,
- 0x5c, 0x5b, 0xc1, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5883 "境" */
- 0x0, 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0,
- 0x2b, 0x0, 0x0, 0x92, 0x1, 0x0, 0x0, 0x29,
- 0x1, 0x65, 0x65, 0x68, 0x50, 0x0, 0x29, 0x0,
- 0x9, 0x20, 0xc2, 0x0, 0x5, 0x6b, 0xa3, 0x15,
- 0x44, 0x51, 0x70, 0x0, 0x29, 0x5, 0x54, 0x44,
- 0x45, 0x41, 0x0, 0x29, 0x0, 0xb5, 0x55, 0x5e,
- 0x10, 0x0, 0x29, 0x0, 0xb5, 0x55, 0x5c, 0x0,
- 0x0, 0x29, 0x13, 0xb0, 0x0, 0xc, 0x0, 0x6,
- 0xa9, 0x30, 0xc7, 0x78, 0x5c, 0x0, 0x6, 0x10,
- 0x0, 0x9, 0x4b, 0x0, 0x50, 0x0, 0x0, 0x0,
- 0x2c, 0xb, 0x0, 0x71, 0x0, 0x0, 0x37, 0x81,
- 0x6, 0xb9, 0xd4, 0x0, 0x2, 0x10, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5897 "増" */
- 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb3, 0x0, 0x49, 0x0, 0x7a, 0x0, 0x0, 0xb1,
- 0x0, 0x9, 0x61, 0x80, 0x0, 0x0, 0xb1, 0x8,
- 0x56, 0x77, 0x55, 0x90, 0x13, 0xc5, 0x6c, 0x0,
- 0xb0, 0x2, 0xa0, 0x13, 0xb2, 0x1c, 0x55, 0xc5,
- 0x56, 0xa0, 0x0, 0xb1, 0xc, 0x0, 0xb0, 0x2,
- 0xa0, 0x0, 0xb1, 0xa, 0x55, 0x55, 0x56, 0x70,
- 0x0, 0xb1, 0x1, 0x85, 0x55, 0x5a, 0x0, 0x0,
- 0xb8, 0x61, 0xa0, 0x0, 0xc, 0x0, 0x4c, 0xa1,
- 0x0, 0xc5, 0x55, 0x5c, 0x0, 0x15, 0x0, 0x0,
- 0xa0, 0x0, 0xc, 0x0, 0x0, 0x0, 0x1, 0xc5,
- 0x55, 0x5d, 0x0, 0x0, 0x0, 0x0, 0x30, 0x0,
- 0x2, 0x0,
-
- /* U+589E "增" */
- 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0,
- 0x2b, 0x0, 0x9, 0x30, 0x67, 0x0, 0x0, 0x19,
- 0x0, 0x22, 0x50, 0x70, 0x30, 0x0, 0x19, 0x0,
- 0xc5, 0x5c, 0x55, 0xc0, 0x6, 0x6b, 0xa4, 0xe5,
- 0xa, 0x28, 0xa0, 0x0, 0x19, 0x0, 0xad, 0xa,
- 0x61, 0xa0, 0x0, 0x19, 0x0, 0xa2, 0xa, 0x10,
- 0xa0, 0x0, 0x19, 0x0, 0x95, 0x55, 0x55, 0x80,
- 0x0, 0x19, 0x0, 0x56, 0x55, 0x5b, 0x10, 0x0,
- 0x3d, 0x63, 0x55, 0x0, 0xb, 0x0, 0xc, 0x91,
- 0x0, 0x58, 0x55, 0x5c, 0x0, 0x1, 0x0, 0x0,
- 0x55, 0x0, 0xb, 0x0, 0x0, 0x0, 0x0, 0x58,
- 0x55, 0x5c, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0,
- 0x0, 0x0,
-
- /* U+58CA "壊" */
- 0x0, 0x10, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0,
- 0xb2, 0x0, 0x0, 0xd1, 0x2, 0x20, 0x0, 0xb0,
- 0x26, 0x55, 0xd5, 0x56, 0x50, 0x0, 0xb0, 0x5,
- 0x55, 0xd5, 0x58, 0x20, 0x25, 0xc6, 0x8a, 0xa,
- 0xa, 0xa, 0x0, 0x1, 0xb0, 0xa, 0xa, 0xa,
- 0xa, 0x0, 0x0, 0xb0, 0xb, 0x59, 0x59, 0x5c,
- 0x0, 0x0, 0xb0, 0x1, 0x0, 0xa1, 0x3, 0x0,
- 0x0, 0xb0, 0x26, 0x5b, 0x95, 0x58, 0x20, 0x0,
- 0xb6, 0x50, 0x86, 0x24, 0x1b, 0x0, 0x2a, 0x91,
- 0x7, 0xc3, 0x9, 0x71, 0x0, 0x5, 0x2, 0x62,
- 0x73, 0x42, 0xd4, 0x0, 0x0, 0x1, 0x0, 0x8a,
- 0x10, 0x3e, 0x91, 0x0, 0x0, 0x0, 0x10, 0x0,
- 0x0, 0x0,
-
- /* U+58D3 "壓" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0xc,
- 0x55, 0x55, 0x55, 0x65, 0x83, 0x0, 0xb3, 0x95,
- 0x5b, 0xa, 0x27, 0x0, 0xb, 0x39, 0x55, 0xa0,
- 0xa0, 0x52, 0x0, 0xb3, 0x75, 0x57, 0x5c, 0x59,
- 0x0, 0x9, 0x67, 0x55, 0xb0, 0xa4, 0x0, 0x3,
- 0x76, 0x85, 0x5a, 0x9, 0x60, 0x0, 0x62, 0x68,
- 0x55, 0xa5, 0x45, 0x50, 0x8, 0x6, 0x40, 0x5a,
- 0x60, 0xc, 0x42, 0x30, 0x31, 0x1, 0x70, 0x0,
- 0x10, 0x0, 0x25, 0x55, 0x6b, 0x55, 0xa0, 0x0,
- 0x0, 0x10, 0x1, 0x80, 0x0, 0x0, 0x4, 0x55,
- 0x55, 0x6b, 0x55, 0x5c, 0x80, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+58EB "士" */
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa5, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xa2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa2,
- 0x0, 0x0, 0x0, 0x15, 0x55, 0x55, 0xc7, 0x55,
- 0x5c, 0x90, 0x1, 0x0, 0x0, 0xa2, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xa2, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa2, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa2, 0x0, 0x0, 0x0, 0x0, 0x55, 0x55,
- 0xc7, 0x55, 0xaa, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+58F0 "声" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0x25, 0x55, 0x55,
- 0xd5, 0x55, 0x7b, 0x0, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0x0, 0x0, 0x65, 0x55, 0xb5, 0x58, 0x80,
- 0x0, 0x3, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0,
- 0xd5, 0x55, 0xd5, 0x55, 0xd0, 0x0, 0xc, 0x0,
- 0xc, 0x0, 0xc, 0x0, 0x0, 0xd5, 0x55, 0xa5,
- 0x55, 0xd0, 0x0, 0x1b, 0x0, 0x0, 0x0, 0x2,
- 0x0, 0x4, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x90, 0x0, 0x0, 0x0, 0x0, 0x0, 0x53, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+58F2 "売" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa, 0x20, 0x2, 0x10, 0x2, 0x65, 0x55,
- 0xc6, 0x55, 0x86, 0x0, 0x0, 0x0, 0xa, 0x10,
- 0x21, 0x0, 0x0, 0x16, 0x55, 0x75, 0x57, 0x40,
- 0x0, 0x55, 0x55, 0x55, 0x55, 0x55, 0x82, 0xa,
- 0x10, 0x0, 0x0, 0x0, 0xa, 0x20, 0x80, 0x6,
- 0x60, 0x36, 0x1, 0x10, 0x0, 0x0, 0x86, 0x4,
- 0x80, 0x0, 0x0, 0x0, 0x9, 0x30, 0x48, 0x0,
- 0x0, 0x0, 0x0, 0xc0, 0x4, 0x80, 0x4, 0x0,
- 0x0, 0x58, 0x0, 0x38, 0x0, 0x52, 0x0, 0x66,
- 0x0, 0x2, 0xea, 0xac, 0x51, 0x40, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+5909 "変" */
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x5a, 0x0, 0x0, 0x30, 0x4, 0x65,
- 0x58, 0x59, 0x68, 0x56, 0xb3, 0x0, 0x2, 0x1c,
- 0x0, 0x3b, 0x0, 0x0, 0x0, 0x1c, 0x4c, 0x0,
- 0x3c, 0x86, 0x0, 0x0, 0x91, 0x1c, 0x0, 0x3b,
- 0x8, 0xb0, 0x5, 0x0, 0xa, 0x10, 0x11, 0x0,
- 0x50, 0x0, 0x0, 0x4e, 0x65, 0x55, 0x91, 0x0,
- 0x0, 0x2, 0x95, 0x0, 0x7, 0xc2, 0x0, 0x0,
- 0x35, 0x4, 0x60, 0x7a, 0x0, 0x0, 0x0, 0x10,
- 0x0, 0x6d, 0x80, 0x0, 0x0, 0x0, 0x0, 0x17,
- 0x94, 0xa9, 0x40, 0x0, 0x1, 0x56, 0x61, 0x0,
- 0x3, 0x9e, 0xe5, 0x2, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x10,
-
- /* U+590F "夏" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x3,
- 0x65, 0x55, 0xa5, 0x55, 0x5a, 0x20, 0x0, 0x7,
- 0x56, 0x85, 0x55, 0x90, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0x0, 0xc0, 0x0, 0x0, 0xd, 0x55, 0x55,
- 0x55, 0xc0, 0x0, 0x0, 0xd, 0x55, 0x55, 0x55,
- 0xc0, 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0xc0,
- 0x0, 0x0, 0xc, 0x6e, 0x55, 0x55, 0x80, 0x0,
- 0x0, 0x0, 0x99, 0x55, 0x5c, 0x20, 0x0, 0x0,
- 0x6, 0x55, 0x10, 0xa6, 0x0, 0x0, 0x0, 0x64,
- 0x0, 0x9a, 0x50, 0x0, 0x0, 0x3, 0x10, 0x5,
- 0x97, 0xa6, 0x20, 0x0, 0x1, 0x56, 0x72, 0x0,
- 0x6, 0xbe, 0x92, 0x12, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5915 "夕" */
- 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1f, 0x30, 0x0, 0x0, 0x0, 0x0, 0x6,
- 0xb0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd8, 0x55,
- 0x57, 0xd1, 0x0, 0x0, 0x5a, 0x0, 0x0, 0x8a,
- 0x0, 0x0, 0xc, 0x10, 0x0, 0xe, 0x20, 0x0,
- 0x7, 0x88, 0x0, 0x7, 0x90, 0x0, 0x3, 0x70,
- 0x5d, 0x1, 0xe1, 0x0, 0x1, 0x60, 0x0, 0xc2,
- 0xa5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x79, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x88, 0x0, 0x0, 0x0,
- 0x0, 0x3, 0xa5, 0x0, 0x0, 0x0, 0x1, 0x57,
- 0x50, 0x0, 0x0, 0x0, 0x0, 0x30, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+5916 "外" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xe2, 0x0, 0xd, 0x10, 0x0, 0x0, 0x3c, 0x0,
- 0x0, 0xc0, 0x0, 0x0, 0x8, 0x60, 0x23, 0xc,
- 0x0, 0x0, 0x0, 0xc5, 0x5a, 0xb0, 0xc0, 0x0,
- 0x0, 0x48, 0x0, 0xc2, 0xd, 0x10, 0x0, 0xa,
- 0x84, 0x1c, 0x0, 0xc6, 0xa2, 0x4, 0x40, 0xd7,
- 0x50, 0xc, 0x3, 0xe1, 0x30, 0x1, 0xc0, 0x0,
- 0xc0, 0x4, 0x0, 0x0, 0x65, 0x0, 0xc, 0x0,
- 0x0, 0x0, 0x29, 0x0, 0x0, 0xc0, 0x0, 0x0,
- 0x27, 0x0, 0x0, 0xc, 0x0, 0x0, 0x34, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x4, 0x0, 0x0,
-
- /* U+591A "多" */
- 0x0, 0x0, 0x1, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0x50, 0x0, 0x0, 0x0, 0x1, 0xb8, 0x55,
- 0x59, 0xb0, 0x0, 0x48, 0x72, 0x0, 0x5c, 0x10,
- 0x15, 0x20, 0x1b, 0x8, 0x80, 0x0, 0x0, 0x0,
- 0x6, 0xa3, 0x0, 0x0, 0x0, 0x37, 0x86, 0xc1,
- 0x0, 0x0, 0x24, 0x20, 0x2d, 0x95, 0x55, 0x93,
- 0x0, 0x5, 0xb2, 0x0, 0x4, 0xc2, 0x2, 0x75,
- 0x38, 0x0, 0x4b, 0x10, 0x2, 0x0, 0xd, 0x7,
- 0x90, 0x0, 0x0, 0x0, 0x17, 0x93, 0x0, 0x0,
- 0x3, 0x56, 0x62, 0x0, 0x0, 0x0, 0x21, 0x0,
- 0x0, 0x0, 0x0, 0x0,
-
- /* U+591C "夜" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x78, 0x0, 0x0, 0x0, 0x5, 0x55,
- 0x55, 0x58, 0x55, 0x57, 0xb0, 0x1, 0x2, 0xc0,
- 0x1d, 0x0, 0x0, 0x0, 0x0, 0x9, 0x60, 0x68,
- 0x0, 0x14, 0x0, 0x0, 0x1c, 0x0, 0xb5, 0x55,
- 0x99, 0x0, 0x0, 0x8e, 0x3, 0x93, 0x60, 0xb2,
- 0x0, 0x2, 0x7c, 0x9, 0x60, 0xb1, 0xb0, 0x0,
- 0x6, 0xc, 0x52, 0x16, 0x8, 0x50, 0x0, 0x0,
- 0xc, 0x0, 0x6, 0x5b, 0x0, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0xf6, 0x0, 0x0, 0x0, 0xc, 0x0,
- 0x19, 0x4a, 0x92, 0x0, 0x0, 0xc, 0x5, 0x70,
- 0x0, 0x6e, 0xc2, 0x0, 0x4, 0x30, 0x0, 0x0,
- 0x0, 0x10,
-
- /* U+5920 "夠" */
- 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0x30, 0x0, 0xd2, 0x0, 0x0, 0x0, 0x77,
- 0x58, 0xc4, 0x90, 0x0, 0x10, 0x5, 0x84, 0xc,
- 0x2a, 0x55, 0x55, 0xd0, 0x11, 0x6, 0xa3, 0x53,
- 0x0, 0x0, 0xb0, 0x0, 0x9, 0x52, 0x42, 0x0,
- 0x40, 0xb0, 0x4, 0x77, 0xa0, 0x1b, 0x55, 0xc0,
- 0xb0, 0x11, 0x2b, 0x57, 0xeb, 0x0, 0xb0, 0xb0,
- 0x1, 0xb1, 0x9, 0x5a, 0x0, 0xb0, 0xb0, 0x16,
- 0x1b, 0x2b, 0xb, 0x55, 0xb1, 0xa0, 0x0, 0x3,
- 0xb2, 0x0, 0x0, 0x3, 0x80, 0x0, 0x19, 0x30,
- 0x0, 0x12, 0x17, 0x60, 0x4, 0x60, 0x0, 0x0,
- 0x5, 0xde, 0x10, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x10, 0x0,
-
- /* U+5927 "大" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xd0, 0x0, 0x2, 0x10, 0x6, 0x55, 0x55, 0xe5,
- 0x55, 0x59, 0x80, 0x0, 0x0, 0x0, 0xe2, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xc6, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x4, 0x87, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x9, 0x31, 0x80, 0x0, 0x0, 0x0,
- 0x0, 0x1c, 0x0, 0x73, 0x0, 0x0, 0x0, 0x0,
- 0xb2, 0x0, 0xa, 0x40, 0x0, 0x0, 0x1a, 0x30,
- 0x0, 0x1, 0xda, 0x30, 0x5, 0x70, 0x0, 0x0,
- 0x0, 0xa, 0x70, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5929 "天" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x45, 0x55, 0x55, 0x55, 0xd4, 0x0, 0x0, 0x10,
- 0x0, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd0, 0x0,
- 0x1b, 0x10, 0x6, 0x55, 0x56, 0xc8, 0x55, 0x55,
- 0x30, 0x0, 0x0, 0x6, 0x75, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb, 0x21, 0x70, 0x0, 0x0, 0x0,
- 0x0, 0x3a, 0x0, 0x82, 0x0, 0x0, 0x0, 0x0,
- 0xb1, 0x0, 0x1c, 0x30, 0x0, 0x0, 0x9, 0x10,
- 0x0, 0x3, 0xe8, 0x20, 0x3, 0x70, 0x0, 0x0,
- 0x0, 0x2c, 0xa1, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+592A "太" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb5, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb1, 0x0, 0x3, 0x10, 0x5, 0x65, 0x55, 0xd7,
- 0x55, 0x5a, 0x70, 0x0, 0x0, 0x0, 0xd6, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x3, 0xa2, 0x50, 0x0,
- 0x0, 0x0, 0x0, 0x8, 0x50, 0xa0, 0x0, 0x0,
- 0x0, 0x0, 0xc, 0x0, 0x65, 0x0, 0x0, 0x0,
- 0x0, 0x87, 0x10, 0xc, 0x10, 0x0, 0x0, 0x4,
- 0x80, 0xb5, 0x3, 0xc1, 0x0, 0x0, 0x47, 0x0,
- 0x1e, 0x0, 0x6e, 0x60, 0x5, 0x30, 0x0, 0x2,
- 0x0, 0x6, 0x71, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+592B "夫" */
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x96, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x93, 0x0, 0x1, 0x0, 0x0, 0x55, 0x55,
- 0xb7, 0x55, 0x87, 0x0, 0x0, 0x0, 0x0, 0xa3,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa2, 0x0,
- 0x2, 0x0, 0x6, 0x55, 0x55, 0xd6, 0x55, 0x5b,
- 0x80, 0x0, 0x0, 0x1, 0xd4, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x6, 0x70, 0x60, 0x0, 0x0, 0x0,
- 0x0, 0x1c, 0x0, 0x72, 0x0, 0x0, 0x0, 0x0,
- 0xa3, 0x0, 0xb, 0x20, 0x0, 0x0, 0x19, 0x20,
- 0x0, 0x2, 0xe7, 0x10, 0x4, 0x50, 0x0, 0x0,
- 0x0, 0x2c, 0x80, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+592E "央" */
- 0x0, 0x0, 0x0, 0x12, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x3b, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x3a, 0x0, 0x0, 0x0, 0x0, 0xa, 0x55,
- 0x7c, 0x55, 0xc2, 0x0, 0x0, 0xd, 0x0, 0x39,
- 0x0, 0xd0, 0x0, 0x0, 0xd, 0x0, 0x39, 0x0,
- 0xd0, 0x0, 0x0, 0xd, 0x0, 0x48, 0x0, 0xd0,
- 0x10, 0x4, 0x6b, 0x55, 0x9a, 0x55, 0xb8, 0xb0,
- 0x0, 0x0, 0x0, 0x94, 0x50, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0xc0, 0x71, 0x0, 0x0, 0x0, 0x0,
- 0xa, 0x30, 0x1b, 0x10, 0x0, 0x0, 0x2, 0x93,
- 0x0, 0x2, 0xd7, 0x20, 0x2, 0x65, 0x0, 0x0,
- 0x0, 0x1a, 0xb1, 0x2, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5931 "失" */
- 0x0, 0x0, 0x0, 0x41, 0x0, 0x0, 0x0, 0x0,
- 0x2, 0x0, 0x96, 0x0, 0x0, 0x0, 0x0, 0xe,
- 0x20, 0x93, 0x0, 0x0, 0x0, 0x0, 0x2d, 0x55,
- 0xb7, 0x55, 0xd4, 0x0, 0x0, 0x72, 0x0, 0xa3,
- 0x0, 0x0, 0x0, 0x0, 0x70, 0x0, 0xb1, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0, 0x0, 0x9,
- 0x30, 0x6, 0x55, 0x55, 0xd8, 0x55, 0x55, 0x40,
- 0x0, 0x0, 0x4, 0x83, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0xb, 0x10, 0x90, 0x0, 0x0, 0x0, 0x0,
- 0x67, 0x0, 0x2a, 0x0, 0x0, 0x0, 0x6, 0x70,
- 0x0, 0x4, 0xc4, 0x0, 0x2, 0x73, 0x0, 0x0,
- 0x0, 0x4e, 0x90, 0x2, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0x0,
-
- /* U+5947 "奇" */
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x97, 0x0, 0x0, 0x0, 0x0, 0x55,
- 0x55, 0xd6, 0x55, 0x7b, 0x0, 0x0, 0x10, 0x5,
- 0x96, 0x30, 0x0, 0x0, 0x0, 0x0, 0x58, 0x0,
- 0x5c, 0x80, 0x0, 0x0, 0x46, 0x30, 0x0, 0x0,
- 0x92, 0x80, 0x6, 0x55, 0x55, 0x55, 0x55, 0xc5,
- 0x62, 0x0, 0x3, 0x0, 0x4, 0x0, 0xc0, 0x0,
- 0x0, 0xd, 0x55, 0x5d, 0x10, 0xc0, 0x0, 0x0,
- 0xc, 0x0, 0xc, 0x0, 0xc0, 0x0, 0x0, 0xd,
- 0x55, 0x5d, 0x0, 0xc0, 0x0, 0x0, 0xa, 0x0,
- 0x5, 0x0, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x5d, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
- 0x0, 0x0,
-
- /* U+5951 "契" */
- 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc0, 0x10, 0x0, 0x0, 0x20, 0x3, 0x65,
- 0xc5, 0x93, 0x6b, 0x56, 0xd0, 0x0, 0x0, 0xb1,
- 0x30, 0xc, 0x2, 0xa0, 0x0, 0x65, 0xc5, 0x40,
- 0x48, 0x4, 0x80, 0x3, 0x55, 0xc5, 0xa2, 0xb1,
- 0x6, 0x60, 0x0, 0x0, 0xb0, 0x8, 0x33, 0x6c,
- 0x20, 0x0, 0x0, 0xc1, 0x70, 0x0, 0x55, 0x0,
- 0x0, 0x0, 0x0, 0x95, 0x0, 0x5, 0x40, 0x5,
- 0x65, 0x55, 0xd8, 0x55, 0x55, 0x50, 0x0, 0x0,
- 0x7, 0x50, 0x80, 0x0, 0x0, 0x0, 0x0, 0x77,
- 0x0, 0x1a, 0x60, 0x0, 0x0, 0x58, 0x30, 0x0,
- 0x0, 0x8e, 0xb2, 0x4, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0x10,
-
- /* U+5957 "套" */
- 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2, 0xd1, 0x0, 0x2, 0x0, 0x2, 0x65,
- 0x5c, 0x85, 0x65, 0x5b, 0x20, 0x0, 0x0, 0x59,
- 0x0, 0x53, 0x0, 0x0, 0x0, 0x3, 0xa0, 0x0,
- 0x1a, 0x60, 0x0, 0x0, 0x56, 0xc5, 0x55, 0x66,
- 0x7e, 0x91, 0x15, 0x20, 0xc5, 0x55, 0x79, 0x2,
- 0x20, 0x0, 0x0, 0xc0, 0x0, 0x2, 0x0, 0x0,
- 0x0, 0x0, 0xc5, 0x55, 0x58, 0x30, 0x0, 0x5,
- 0x55, 0xd5, 0x55, 0x55, 0x5c, 0x90, 0x1, 0x0,
- 0xa, 0x60, 0x30, 0x0, 0x0, 0x0, 0x0, 0x73,
- 0x0, 0x9, 0x90, 0x0, 0x0, 0x9, 0xc9, 0x76,
- 0x54, 0x87, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x1, 0x0,
-
- /* U+5973 "女" */
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb7, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4,
- 0xa0, 0x0, 0x0, 0x10, 0x5, 0x55, 0x5a, 0x85,
- 0x55, 0x59, 0xc0, 0x0, 0x0, 0xc, 0x0, 0xb,
- 0x40, 0x0, 0x0, 0x0, 0x48, 0x0, 0xe, 0x0,
- 0x0, 0x0, 0x0, 0xa2, 0x0, 0x69, 0x0, 0x0,
- 0x0, 0x1, 0xd1, 0x0, 0xc2, 0x0, 0x0, 0x0,
- 0x0, 0x16, 0x89, 0xa0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x4c, 0xab, 0x50, 0x0, 0x0, 0x0, 0x8,
- 0x80, 0x3, 0xdb, 0x0, 0x0, 0x36, 0x71, 0x0,
- 0x0, 0xa, 0x10, 0x3, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5979 "她" */
- 0x0, 0x3, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0xe, 0x10, 0x0, 0xd, 0x0, 0x0, 0x0, 0x1b,
- 0x0, 0x14, 0xb, 0x0, 0x0, 0x0, 0x38, 0x3,
- 0x2a, 0xb, 0x1, 0x0, 0x6, 0x98, 0x6b, 0x19,
- 0xc, 0x5d, 0x20, 0x0, 0x73, 0x38, 0x7b, 0x5b,
- 0xb, 0x0, 0x0, 0xa0, 0x65, 0x19, 0xb, 0xc,
- 0x0, 0x0, 0xa0, 0x82, 0x19, 0xb, 0xc, 0x0,
- 0x0, 0x90, 0xb0, 0x19, 0xb, 0x5c, 0x0, 0x2,
- 0x93, 0xa0, 0x19, 0xc, 0x24, 0x10, 0x0, 0xa,
- 0xc3, 0x19, 0xb, 0x0, 0x50, 0x0, 0x27, 0x1d,
- 0x2a, 0x0, 0x0, 0x90, 0x2, 0x70, 0x1, 0xd,
- 0xa9, 0x9a, 0xd1, 0x3, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+597D "好" */
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xd, 0x10, 0x0, 0x0, 0x4, 0x0, 0x0, 0xc,
- 0x0, 0x25, 0x55, 0x6e, 0x30, 0x0, 0x29, 0x3,
- 0x0, 0x0, 0x81, 0x0, 0x15, 0x99, 0x5d, 0x10,
- 0x8, 0x30, 0x0, 0x0, 0x92, 0xb, 0x0, 0xc,
- 0x0, 0x0, 0x0, 0xa0, 0x38, 0x0, 0xc, 0x0,
- 0x70, 0x0, 0x90, 0x75, 0x55, 0x5d, 0x55, 0x51,
- 0x4, 0x50, 0xb0, 0x0, 0xc, 0x0, 0x0, 0x2,
- 0x67, 0xb0, 0x0, 0xc, 0x0, 0x0, 0x0, 0x9,
- 0xba, 0x0, 0xc, 0x0, 0x0, 0x0, 0x65, 0x8,
- 0x40, 0xc, 0x0, 0x0, 0x6, 0x30, 0x0, 0x6,
- 0xbc, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x31,
- 0x0, 0x0,
-
- /* U+5982 "如" */
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x7, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9,
- 0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0x0,
- 0x50, 0x95, 0x55, 0xc0, 0x6, 0x5d, 0x55, 0xd0,
- 0xb0, 0x0, 0xb0, 0x0, 0x29, 0x2, 0xa0, 0xb0,
- 0x0, 0xb0, 0x0, 0x65, 0x5, 0x70, 0xb0, 0x0,
- 0xb0, 0x0, 0x91, 0x8, 0x40, 0xb0, 0x0, 0xb0,
- 0x0, 0xb0, 0xb, 0x0, 0xb0, 0x0, 0xb0, 0x0,
- 0x57, 0x7b, 0x0, 0xb0, 0x0, 0xb0, 0x0, 0x0,
- 0x9b, 0xa0, 0xc5, 0x55, 0xb0, 0x0, 0x7, 0x40,
- 0x73, 0xb0, 0x0, 0xb0, 0x2, 0x72, 0x0, 0x0,
- 0x40, 0x0, 0x10, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5987 "妇" */
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xd, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd,
- 0x0, 0x12, 0x22, 0x22, 0x60, 0x0, 0x2a, 0x2,
- 0x44, 0x33, 0x34, 0xb0, 0x5, 0x89, 0x5b, 0x50,
- 0x0, 0x2, 0xa0, 0x0, 0x83, 0xb, 0x0, 0x0,
- 0x2, 0xa0, 0x0, 0xb0, 0xb, 0x6, 0x55, 0x56,
- 0xa0, 0x0, 0xb0, 0x1a, 0x0, 0x0, 0x2, 0xa0,
- 0x1, 0x92, 0x65, 0x0, 0x0, 0x2, 0xa0, 0x0,
- 0x6, 0xe4, 0x0, 0x0, 0x2, 0xa0, 0x0, 0x3,
- 0x9c, 0x30, 0x0, 0x2, 0xa0, 0x0, 0x19, 0x1,
- 0x46, 0x55, 0x56, 0xa0, 0x1, 0x70, 0x0, 0x0,
- 0x0, 0x1, 0x80, 0x3, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+59B3 "妳" */
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x2d, 0x0, 0x5, 0x90, 0x0, 0x0, 0x0, 0x58,
- 0x0, 0x9, 0x50, 0x0, 0x0, 0x0, 0x83, 0x3,
- 0xd, 0x44, 0x44, 0x70, 0x36, 0xd5, 0x7b, 0x37,
- 0x0, 0x5, 0x90, 0x0, 0xb0, 0x56, 0x70, 0x6,
- 0x15, 0x0, 0x5, 0x60, 0x93, 0x20, 0xc, 0x0,
- 0x0, 0x9, 0x10, 0xc0, 0x7, 0x1c, 0x3, 0x0,
- 0xb, 0x1, 0xa0, 0x1c, 0xc, 0x7, 0x50, 0x1,
- 0x7b, 0x60, 0x63, 0xc, 0x0, 0xd1, 0x0, 0x1b,
- 0xc6, 0x50, 0xc, 0x0, 0x50, 0x0, 0x91, 0x5,
- 0x0, 0xc, 0x0, 0x0, 0x7, 0x10, 0x0, 0x3,
- 0xad, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x12,
- 0x0, 0x0,
-
- /* U+59B9 "妹" */
- 0x0, 0x2, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0,
- 0xc, 0x20, 0x0, 0xd, 0x0, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0xb, 0x0, 0x0, 0x0, 0x38, 0x4,
- 0x26, 0x5c, 0x58, 0x40, 0x6, 0xa7, 0x5d, 0x0,
- 0xb, 0x0, 0x0, 0x0, 0xa0, 0x29, 0x0, 0xb,
- 0x0, 0x50, 0x0, 0xa0, 0x56, 0x65, 0xbd, 0x75,
- 0x52, 0x3, 0x60, 0x92, 0x0, 0xcb, 0x60, 0x0,
- 0x7, 0x40, 0xb0, 0x6, 0x5b, 0x61, 0x0, 0x0,
- 0x5a, 0x90, 0xa, 0xb, 0x19, 0x0, 0x0, 0x9,
- 0x96, 0x72, 0xb, 0x8, 0x80, 0x0, 0x62, 0x6,
- 0x30, 0xb, 0x0, 0xb5, 0x4, 0x30, 0x2, 0x0,
- 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2,
- 0x0, 0x0,
-
- /* U+59BB "妻" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc1, 0x0, 0x9, 0x20, 0x6, 0x55,
- 0x55, 0xd5, 0x55, 0x55, 0x30, 0x0, 0x25, 0x55,
- 0xd5, 0x55, 0x90, 0x0, 0x0, 0x0, 0x0, 0xc0,
- 0x1, 0xa0, 0x40, 0x7, 0x55, 0x55, 0xd5, 0x56,
- 0xc6, 0x81, 0x0, 0x0, 0x0, 0xc0, 0x1, 0xb0,
- 0x0, 0x0, 0x36, 0x5c, 0x65, 0x55, 0x70, 0x0,
- 0x25, 0x55, 0x6d, 0x55, 0x55, 0x57, 0xc1, 0x1,
- 0x0, 0x92, 0x0, 0x6a, 0x0, 0x0, 0x0, 0x1,
- 0x85, 0x56, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x1,
- 0x99, 0x9c, 0x92, 0x0, 0x3, 0x55, 0x66, 0x10,
- 0x0, 0x4a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+59C9 "姉" */
- 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x3,
- 0xc0, 0x0, 0x0, 0xc0, 0x0, 0x0, 0x66, 0x0,
- 0x0, 0xb, 0x0, 0x0, 0xa, 0x20, 0x25, 0x55,
- 0xc5, 0x95, 0x36, 0xd5, 0x89, 0x10, 0xb, 0x0,
- 0x0, 0x29, 0x7, 0x52, 0x0, 0xb0, 0x30, 0x6,
- 0x50, 0xa1, 0xb5, 0x5c, 0x5b, 0x20, 0xa0, 0xb,
- 0xb, 0x0, 0xb0, 0xa1, 0xb, 0x3, 0x80, 0xb0,
- 0xb, 0xa, 0x10, 0x38, 0xc4, 0xb, 0x0, 0xb0,
- 0xa1, 0x0, 0x2a, 0xc5, 0xb0, 0xb, 0x4c, 0x10,
- 0x9, 0x0, 0x54, 0x0, 0xb3, 0x70, 0x7, 0x10,
- 0x0, 0x0, 0xc, 0x0, 0x2, 0x0, 0x0, 0x0,
- 0x0, 0x20, 0x0,
-
- /* U+59CB "始" */
- 0x0, 0x1, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0,
- 0xd, 0x20, 0x0, 0x97, 0x0, 0x0, 0x0, 0x1b,
- 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0, 0x47, 0x3,
- 0x5, 0x50, 0x43, 0x0, 0x16, 0xb7, 0x5e, 0x19,
- 0x0, 0xb, 0x40, 0x0, 0xb0, 0x1a, 0x8c, 0x86,
- 0x56, 0xc0, 0x1, 0x90, 0x57, 0x13, 0x0, 0x0,
- 0x30, 0x6, 0x50, 0x92, 0x7, 0x55, 0x59, 0x20,
- 0x9, 0x20, 0xc0, 0xc, 0x0, 0xb, 0x0, 0x0,
- 0x5b, 0xa0, 0xc, 0x0, 0xb, 0x0, 0x0, 0xb,
- 0x9b, 0xc, 0x0, 0xb, 0x0, 0x0, 0x82, 0x8,
- 0xd, 0x55, 0x5d, 0x0, 0x6, 0x20, 0x0, 0xc,
- 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+59D0 "姐" */
- 0x0, 0x4, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xd, 0x20, 0x8, 0x55, 0x59, 0x10, 0x0, 0x1c,
- 0x0, 0xc, 0x0, 0xc, 0x0, 0x2, 0x69, 0x26,
- 0xc, 0x0, 0xc, 0x0, 0x3, 0xa5, 0x3d, 0x1c,
- 0x0, 0xc, 0x0, 0x0, 0xb0, 0xb, 0xd, 0x55,
- 0x5d, 0x0, 0x1, 0x90, 0x48, 0xc, 0x0, 0xc,
- 0x0, 0x6, 0x40, 0x83, 0xc, 0x0, 0xc, 0x0,
- 0x9, 0x20, 0xb0, 0xd, 0x55, 0x5d, 0x0, 0x0,
- 0x4a, 0xb0, 0xc, 0x0, 0xc, 0x0, 0x0, 0xb,
- 0x6c, 0x1c, 0x0, 0xc, 0x0, 0x0, 0x82, 0x4,
- 0x2c, 0x0, 0xc, 0x20, 0x6, 0x10, 0x5, 0x68,
- 0x55, 0x58, 0x92, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+59D4 "委" */
- 0x0, 0x0, 0x0, 0x0, 0x1, 0x40, 0x0, 0x0,
- 0x3, 0x46, 0x79, 0x99, 0x81, 0x0, 0x0, 0x0,
- 0x0, 0x2a, 0x0, 0x0, 0x10, 0x5, 0x65, 0x55,
- 0x9c, 0x65, 0x57, 0xc1, 0x0, 0x0, 0xa, 0x7a,
- 0x62, 0x0, 0x0, 0x0, 0x1, 0xa4, 0x1a, 0x8,
- 0x92, 0x0, 0x0, 0x57, 0x10, 0x57, 0x0, 0x4d,
- 0xd3, 0x4, 0x10, 0x5, 0xc0, 0x0, 0x0, 0x50,
- 0x7, 0x55, 0x6c, 0x65, 0x5a, 0x56, 0xa2, 0x0,
- 0x0, 0xa3, 0x0, 0x4a, 0x0, 0x0, 0x0, 0x0,
- 0x55, 0x77, 0xd1, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x6a, 0x7d, 0xa3, 0x0, 0x0, 0x25, 0x68, 0x30,
- 0x0, 0x6e, 0x20, 0x3, 0x20, 0x0, 0x0, 0x0,
- 0x1, 0x10,
-
- /* U+5A18 "娘" */
- 0x0, 0x2, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0,
- 0xb, 0x50, 0x0, 0x1c, 0x0, 0x0, 0x0, 0xd,
- 0x0, 0x8, 0x5b, 0x59, 0x10, 0x2, 0x4b, 0x36,
- 0xb, 0x0, 0xb, 0x0, 0x3, 0x77, 0x2c, 0x1c,
- 0x55, 0x5c, 0x0, 0x0, 0x92, 0xb, 0xb, 0x0,
- 0xb, 0x0, 0x0, 0xb0, 0x28, 0xb, 0x0, 0xb,
- 0x0, 0x1, 0x90, 0x64, 0xc, 0x58, 0x59, 0x10,
- 0x4, 0x70, 0xa0, 0xb, 0x7, 0x6, 0xa0, 0x0,
- 0x39, 0xc0, 0xb, 0x7, 0x65, 0x0, 0x0, 0x9,
- 0x8c, 0xb, 0x2, 0xc1, 0x0, 0x0, 0x56, 0x4,
- 0xc, 0x83, 0x4d, 0x71, 0x5, 0x50, 0x0, 0xc,
- 0x10, 0x2, 0x81, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5A5A "婚" */
- 0x0, 0x2, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0,
- 0x1d, 0x0, 0x22, 0x58, 0xb8, 0x0, 0x0, 0x48,
- 0x0, 0xb3, 0x1b, 0x0, 0x0, 0x0, 0x74, 0x2,
- 0xa1, 0x1b, 0x11, 0x50, 0x15, 0xc5, 0x88, 0xa4,
- 0x4a, 0x64, 0x40, 0x0, 0xb0, 0x74, 0xa0, 0x23,
- 0xa0, 0x40, 0x3, 0x70, 0xa1, 0xd9, 0x30, 0x5b,
- 0xb0, 0x7, 0x30, 0xb0, 0x40, 0x0, 0x6, 0xa1,
- 0xa, 0x12, 0x80, 0x97, 0x55, 0x5d, 0x10, 0x0,
- 0x6c, 0x50, 0x93, 0x0, 0xb, 0x0, 0x0, 0x29,
- 0xc4, 0x87, 0x55, 0x5c, 0x0, 0x0, 0x80, 0x16,
- 0x93, 0x0, 0xb, 0x0, 0x6, 0x0, 0x0, 0x97,
- 0x55, 0x5c, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0,
- 0x0, 0x0,
-
- /* U+5A66 "婦" */
- 0x0, 0x11, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0,
- 0x5a, 0x0, 0x55, 0x55, 0x5d, 0x10, 0x0, 0x84,
- 0x0, 0x15, 0x55, 0x5c, 0x0, 0x12, 0xb2, 0x42,
- 0x1, 0x0, 0xb, 0x0, 0x15, 0xc3, 0xa6, 0x46,
- 0x55, 0x5c, 0x0, 0x2, 0x80, 0xb4, 0x0, 0x0,
- 0x0, 0x30, 0x7, 0x40, 0xb8, 0x55, 0x6b, 0x56,
- 0xc1, 0xa, 0x1, 0x99, 0x20, 0x1a, 0x5, 0x0,
- 0xa, 0x6, 0x50, 0xb5, 0x6b, 0x5d, 0x10, 0x0,
- 0x7e, 0x30, 0xb0, 0x1a, 0xb, 0x0, 0x0, 0x38,
- 0xc3, 0xb0, 0x1a, 0xb, 0x0, 0x1, 0x80, 0x13,
- 0xb0, 0x1a, 0x6c, 0x0, 0x15, 0x0, 0x0, 0x0,
- 0x1a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2,
- 0x0, 0x0,
-
- /* U+5A92 "媒" */
- 0x0, 0x3, 0x0, 0x2, 0x0, 0x2, 0x0, 0x0,
- 0xe, 0x10, 0x1c, 0x0, 0xd, 0x0, 0x0, 0x2a,
- 0x3, 0x5c, 0x55, 0x5c, 0x91, 0x1, 0x67, 0x15,
- 0xa, 0x0, 0xb, 0x0, 0x5, 0xb5, 0x5b, 0xc,
- 0x55, 0x5b, 0x0, 0x0, 0xb0, 0x47, 0xa, 0x0,
- 0xb, 0x0, 0x1, 0xa0, 0x73, 0x1c, 0x55, 0x5b,
- 0x0, 0x4, 0x50, 0xa0, 0x2, 0x1c, 0x0, 0x0,
- 0x7, 0x30, 0xa3, 0x65, 0x8d, 0x55, 0xa0, 0x0,
- 0x4b, 0x80, 0x3, 0xbb, 0x50, 0x0, 0x0, 0x1a,
- 0x97, 0x1b, 0x2a, 0x63, 0x0, 0x0, 0x81, 0x4,
- 0x91, 0x1a, 0xa, 0x81, 0x6, 0x20, 0x36, 0x0,
- 0x1b, 0x0, 0x60, 0x0, 0x0, 0x0, 0x0, 0x2,
- 0x0, 0x0,
-
- /* U+5ABD "媽" */
- 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x2c, 0x0, 0xa5, 0x58, 0x58, 0x60, 0x0, 0x67,
- 0x0, 0xb0, 0xb, 0x0, 0x0, 0x0, 0x93, 0x2,
- 0xb5, 0x5c, 0x59, 0x20, 0x26, 0xd5, 0x88, 0xb0,
- 0xb, 0x0, 0x0, 0x1, 0xa0, 0x74, 0xb5, 0x5c,
- 0x58, 0x40, 0x5, 0x60, 0xa1, 0xb0, 0xb, 0x0,
- 0x0, 0x9, 0x20, 0xb0, 0xb5, 0x5b, 0x55, 0xa2,
- 0xb, 0x3, 0x80, 0x40, 0x0, 0x20, 0xc0, 0x2,
- 0x7c, 0x50, 0x24, 0x8, 0x29, 0xc0, 0x0, 0x1a,
- 0xb4, 0x84, 0x78, 0x3a, 0xc0, 0x0, 0x80, 0x7,
- 0x72, 0x51, 0x1, 0xc0, 0x6, 0x10, 0x0, 0x0,
- 0x3, 0x9e, 0x60, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x3, 0x0,
-
- /* U+5ACC "嫌" */
- 0x0, 0x42, 0x0, 0x10, 0x0, 0x40, 0x0, 0x0,
- 0xa4, 0x0, 0xb, 0x4, 0x80, 0x0, 0x0, 0xb0,
- 0x5, 0x5a, 0x59, 0x5a, 0x40, 0x13, 0xc3, 0x73,
- 0xa, 0xa, 0x0, 0x0, 0x15, 0x92, 0xc1, 0x6c,
- 0x5c, 0x5a, 0x0, 0x5, 0x50, 0xb0, 0xa, 0xa,
- 0xa, 0x0, 0x8, 0x12, 0x85, 0x5c, 0x5c, 0x5c,
- 0x80, 0xa, 0x5, 0x40, 0xa, 0xa, 0xa, 0x0,
- 0xa, 0x19, 0x2, 0x7f, 0x5c, 0x79, 0x0, 0x0,
- 0x7d, 0x20, 0x7d, 0xa, 0x60, 0x0, 0x0, 0x84,
- 0xa3, 0x6a, 0xa, 0x27, 0x0, 0x4, 0x50, 0x16,
- 0xa, 0xa, 0x9, 0x90, 0x24, 0x0, 0x30, 0xa,
- 0xb, 0x0, 0x20, 0x0, 0x0, 0x0, 0x2, 0x1,
- 0x0, 0x0,
-
- /* U+5B09 "嬉" */
- 0x0, 0x10, 0x0, 0x0, 0x11, 0x0, 0x0, 0x0,
- 0x68, 0x0, 0x0, 0x2b, 0x0, 0x0, 0x0, 0x92,
- 0x3, 0x65, 0x6b, 0x57, 0x70, 0x0, 0xb0, 0x31,
- 0x12, 0x4a, 0x27, 0x0, 0x36, 0xc5, 0xb3, 0x43,
- 0x22, 0x25, 0x0, 0x4, 0x70, 0xb0, 0xa5, 0x55,
- 0x5d, 0x0, 0x8, 0x30, 0xb0, 0xa5, 0x55, 0x5c,
- 0x0, 0xb, 0x3, 0x80, 0x25, 0x10, 0x72, 0x0,
- 0xa, 0x8, 0x32, 0x26, 0x82, 0x72, 0x60, 0x5,
- 0x8d, 0x4, 0x53, 0x33, 0x36, 0x30, 0x0, 0x69,
- 0xd0, 0xb5, 0x55, 0x5d, 0x10, 0x1, 0x90, 0x30,
- 0xb0, 0x0, 0xb, 0x0, 0x17, 0x0, 0x0, 0xb5,
- 0x55, 0x5c, 0x0, 0x10, 0x0, 0x0, 0x20, 0x0,
- 0x0, 0x0,
-
- /* U+5B50 "子" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x16, 0x55, 0x55, 0x55, 0x7c, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x3, 0xb5, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x56, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2c,
- 0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2c, 0x0,
- 0x0, 0x50, 0x6, 0x55, 0x55, 0x6c, 0x55, 0x56,
- 0x92, 0x0, 0x0, 0x0, 0x1b, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1b, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x1b, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1b, 0x0, 0x0, 0x0, 0x0, 0x0, 0x12,
- 0x3b, 0x0, 0x0, 0x0, 0x0, 0x0, 0x17, 0xf7,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0,
- 0x0, 0x0,
-
- /* U+5B57 "字" */
- 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x5a, 0x0, 0x0, 0x0, 0x0, 0x30,
- 0x0, 0x7, 0x0, 0x2, 0x60, 0x0, 0xa5, 0x55,
- 0x55, 0x55, 0x5a, 0x90, 0x3, 0xc3, 0x55, 0x55,
- 0x56, 0x73, 0x0, 0x0, 0x0, 0x10, 0x0, 0x2b,
- 0x50, 0x0, 0x0, 0x0, 0x0, 0x3, 0x60, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x1c, 0x0, 0x0, 0x70,
- 0x6, 0x55, 0x55, 0x6c, 0x55, 0x55, 0x72, 0x0,
- 0x0, 0x0, 0x1a, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x28, 0xe8,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x30, 0x0,
- 0x0, 0x0,
-
- /* U+5B58 "存" */
- 0x0, 0x0, 0x1, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x6, 0xa0, 0x0, 0x3, 0x0, 0x6, 0x55,
- 0x5d, 0x65, 0x55, 0x6b, 0x30, 0x0, 0x0, 0x39,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa4, 0x55,
- 0x55, 0x95, 0x0, 0x0, 0x9, 0x60, 0x0, 0x4,
- 0x82, 0x0, 0x0, 0x2e, 0x10, 0x0, 0x85, 0x0,
- 0x0, 0x0, 0x9b, 0x10, 0x0, 0xc0, 0x0, 0x0,
- 0x8, 0x1a, 0x26, 0x55, 0xd5, 0x58, 0x80, 0x30,
- 0xa, 0x10, 0x0, 0xc0, 0x0, 0x0, 0x0, 0xa,
- 0x10, 0x0, 0xc0, 0x0, 0x0, 0x0, 0xa, 0x20,
- 0x0, 0xc0, 0x0, 0x0, 0x0, 0xb, 0x20, 0x3b,
- 0xd0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x1, 0x10,
- 0x0, 0x0,
-
- /* U+5B63 "季" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0,
- 0x0, 0x2, 0x47, 0xac, 0xc2, 0x0, 0x0, 0x3,
- 0x43, 0x3a, 0x0, 0x0, 0x0, 0x5, 0x55, 0x55,
- 0x5c, 0x55, 0x56, 0xd2, 0x0, 0x0, 0x8, 0x8a,
- 0x71, 0x0, 0x0, 0x0, 0x0, 0x95, 0x1a, 0x9,
- 0x71, 0x0, 0x0, 0x58, 0x10, 0x18, 0x0, 0x6d,
- 0xd4, 0x4, 0x11, 0x65, 0x55, 0x5c, 0xa0, 0x20,
- 0x0, 0x0, 0x0, 0x6, 0x61, 0x0, 0x0, 0x4,
- 0x55, 0x55, 0x5d, 0x55, 0x58, 0xd1, 0x1, 0x0,
- 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0xd8,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0,
- 0x0, 0x0,
-
- /* U+5B66 "学" */
- 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x8,
- 0x0, 0xa0, 0x0, 0xe2, 0x0, 0x0, 0x6b, 0x9,
- 0x70, 0x66, 0x0, 0x0, 0x20, 0x90, 0x32, 0x8,
- 0x0, 0x20, 0xa, 0x55, 0x55, 0x55, 0x65, 0x6f,
- 0x25, 0xa0, 0x0, 0x0, 0x1, 0x16, 0x20, 0x32,
- 0x46, 0x55, 0x55, 0xd8, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0x73, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd0,
- 0x0, 0x38, 0x5, 0x65, 0x55, 0x5d, 0x55, 0x55,
- 0x51, 0x0, 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x6e, 0x90, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10,
- 0x0, 0x0, 0x0,
-
- /* U+5B69 "孩" */
- 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0,
- 0x11, 0x15, 0x0, 0x59, 0x0, 0x0, 0x2, 0x43,
- 0x89, 0x0, 0x9, 0x0, 0x70, 0x0, 0x1, 0x62,
- 0x55, 0xd6, 0x55, 0x52, 0x0, 0xc, 0x0, 0x4,
- 0x80, 0x21, 0x0, 0x0, 0xb, 0x2, 0x8, 0x0,
- 0xc6, 0x0, 0x0, 0xc, 0x73, 0x8a, 0x68, 0xa0,
- 0x0, 0x5, 0xac, 0x0, 0x0, 0x1b, 0x8, 0x50,
- 0x1a, 0x1b, 0x0, 0x1, 0xa1, 0x3b, 0x0, 0x0,
- 0xb, 0x0, 0x38, 0x11, 0xb1, 0x0, 0x0, 0xb,
- 0x4, 0x30, 0x2b, 0x74, 0x0, 0x0, 0xb, 0x0,
- 0x6, 0x80, 0xa, 0x70, 0x2, 0xc7, 0x25, 0x61,
- 0x0, 0x1, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5B6B "孫" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0,
- 0x0, 0x14, 0x2, 0x57, 0x9b, 0x50, 0x4, 0x55,
- 0xa9, 0x22, 0x88, 0x0, 0x0, 0x0, 0x1, 0x60,
- 0x1, 0xa0, 0x32, 0x0, 0x0, 0x2b, 0x0, 0x39,
- 0x44, 0xc4, 0x0, 0x0, 0x19, 0x0, 0x46, 0x4a,
- 0x30, 0x0, 0x0, 0x1b, 0x62, 0x1, 0x91, 0x15,
- 0x0, 0x5, 0xab, 0x0, 0x7b, 0x55, 0x58, 0x90,
- 0x9, 0x29, 0x0, 0x55, 0x2b, 0x0, 0xa0, 0x0,
- 0x19, 0x0, 0x17, 0xb, 0x30, 0x0, 0x0, 0x19,
- 0x0, 0x95, 0xb, 0xa, 0x20, 0x0, 0x29, 0x5,
- 0x40, 0xb, 0x2, 0xe0, 0x2, 0xd6, 0x11, 0x6,
- 0xe9, 0x0, 0x60, 0x0, 0x10, 0x0, 0x0, 0x20,
- 0x0, 0x0,
-
- /* U+5B78 "學" */
- 0x0, 0x0, 0x3, 0x2, 0x20, 0x0, 0x0, 0x0,
- 0x29, 0x64, 0x3c, 0x45, 0xb4, 0x0, 0x0, 0x1b,
- 0x72, 0x44, 0x65, 0xc1, 0x0, 0x0, 0x9, 0x0,
- 0x24, 0x30, 0xa0, 0x0, 0x0, 0xc, 0x65, 0x3e,
- 0x15, 0xc0, 0x0, 0x4, 0xa, 0x0, 0x53, 0x40,
- 0xb0, 0x30, 0xa, 0x55, 0x55, 0x55, 0x55, 0x58,
- 0xb0, 0x1c, 0x3, 0x55, 0x55, 0x7b, 0x4, 0x0,
- 0x0, 0x0, 0x0, 0x5, 0x60, 0x0, 0x0, 0x4,
- 0x55, 0x55, 0x6e, 0x55, 0x5b, 0x90, 0x1, 0x0,
- 0x0, 0x1a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0xd7,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0,
- 0x0, 0x0,
-
- /* U+5B83 "它" */
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x95, 0x0, 0x0, 0x0, 0x0, 0x30,
- 0x0, 0x28, 0x0, 0x1, 0x20, 0x3, 0x95, 0x55,
- 0x55, 0x55, 0x5b, 0xb0, 0xc, 0x50, 0x0, 0x0,
- 0x0, 0x7, 0x0, 0x2, 0x0, 0xd1, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xc0, 0x0, 0x2c, 0x20,
- 0x0, 0x0, 0x0, 0xc0, 0x17, 0xa4, 0x10, 0x0,
- 0x0, 0x0, 0xd5, 0x50, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0,
- 0xc0, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0xc0,
- 0x0, 0x0, 0xb, 0x0, 0x0, 0x0, 0xab, 0xaa,
- 0xaa, 0xbc, 0x20,
-
- /* U+5B85 "宅" */
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x85, 0x0, 0x0, 0x0, 0x0, 0x20,
- 0x0, 0x36, 0x0, 0x1, 0x20, 0x0, 0xa5, 0x55,
- 0x55, 0x55, 0x5a, 0x90, 0x3, 0xc0, 0x0, 0x3,
- 0x9d, 0x27, 0x0, 0x0, 0x34, 0x57, 0xd6, 0x30,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0, 0x0, 0x1,
- 0x0, 0x0, 0x0, 0x0, 0xc0, 0x2, 0x6e, 0x40,
- 0x0, 0x14, 0x55, 0xd5, 0x53, 0x10, 0x0, 0x6,
- 0x31, 0x0, 0xc0, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0xc0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0,
- 0xc0, 0x0, 0x0, 0xa0, 0x0, 0x0, 0x0, 0xbb,
- 0xaa, 0xab, 0xc0,
-
- /* U+5B87 "宇" */
- 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x68, 0x0, 0x0, 0x0, 0x3, 0x0, 0x1,
- 0x70, 0x0, 0x23, 0x0, 0xa5, 0x55, 0x55, 0x55,
- 0x5b, 0x80, 0x2c, 0x0, 0x0, 0x0, 0x2, 0x50,
- 0x0, 0x5, 0x55, 0x58, 0x56, 0xa1, 0x0, 0x0,
- 0x0, 0x1, 0xa0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1a, 0x0, 0x3, 0x80, 0x55, 0x55, 0x56, 0xc5,
- 0x55, 0x55, 0x10, 0x0, 0x0, 0x1a, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1, 0xa0, 0x0, 0x0, 0x0,
- 0x0, 0x10, 0x3a, 0x0, 0x0, 0x0, 0x0, 0x2,
- 0x8f, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20,
- 0x0, 0x0, 0x0,
-
- /* U+5B88 "守" */
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x9, 0x60, 0x0, 0x0, 0x0, 0x20, 0x0,
- 0x29, 0x0, 0x2, 0x0, 0xa, 0x55, 0x55, 0x55,
- 0x55, 0xe7, 0x4, 0xb0, 0x0, 0x0, 0xa2, 0x35,
- 0x0, 0x10, 0x0, 0x0, 0xd, 0x0, 0x20, 0x5,
- 0x55, 0x55, 0x55, 0xe5, 0x5a, 0x70, 0x0, 0x40,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0x2, 0xb0, 0x0,
- 0xd0, 0x0, 0x0, 0x0, 0xb, 0x40, 0xd, 0x0,
- 0x0, 0x0, 0x0, 0x30, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x4d, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x10, 0x0, 0x0,
-
- /* U+5B89 "安" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x58, 0x0, 0x0, 0x0, 0x0, 0x20,
- 0x0, 0x8, 0x0, 0x3, 0x10, 0x0, 0x95, 0x55,
- 0x55, 0x55, 0x5c, 0x60, 0x2, 0xb0, 0x3, 0x60,
- 0x0, 0x14, 0x0, 0x0, 0x0, 0x8, 0x50, 0x0,
- 0x0, 0x10, 0x5, 0x55, 0x5d, 0x55, 0x57, 0x59,
- 0x90, 0x0, 0x0, 0x57, 0x0, 0x1d, 0x0, 0x0,
- 0x0, 0x0, 0xb0, 0x0, 0x86, 0x0, 0x0, 0x0,
- 0x1, 0x86, 0x33, 0xc0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x5e, 0xb5, 0x0, 0x0, 0x0, 0x0, 0x5,
- 0xa2, 0x6, 0xd8, 0x0, 0x0, 0x36, 0x84, 0x0,
- 0x0, 0x1a, 0x50, 0x3, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5B8C "完" */
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x85, 0x0, 0x0, 0x0, 0x0, 0x40,
- 0x0, 0x26, 0x0, 0x0, 0x30, 0x0, 0xb5, 0x55,
- 0x55, 0x55, 0x58, 0xa0, 0x3, 0x80, 0x0, 0x0,
- 0x4, 0x3, 0x0, 0x0, 0x5, 0x55, 0x55, 0x55,
- 0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
- 0x0, 0x1, 0x55, 0x59, 0x55, 0x85, 0x5a, 0x40,
- 0x0, 0x0, 0xc, 0x2, 0xa0, 0x0, 0x0, 0x0,
- 0x0, 0x29, 0x2, 0xa0, 0x0, 0x10, 0x0, 0x0,
- 0x84, 0x2, 0xa0, 0x0, 0x50, 0x0, 0x2, 0xa0,
- 0x1, 0xa0, 0x0, 0x90, 0x0, 0x67, 0x0, 0x0,
- 0xba, 0xaa, 0xd3, 0x4, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5B98 "官" */
- 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1b, 0x20, 0x0, 0x0, 0x0, 0x20, 0x0,
- 0x64, 0x0, 0x3, 0x20, 0x68, 0x55, 0x55, 0x55,
- 0x55, 0xc7, 0xd, 0x16, 0x55, 0x55, 0x59, 0x23,
- 0x0, 0x0, 0xc0, 0x0, 0x0, 0xc0, 0x0, 0x0,
- 0xb, 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0xb5,
- 0x55, 0x55, 0xb0, 0x0, 0x0, 0xb, 0x0, 0x0,
- 0x0, 0x10, 0x0, 0x0, 0xb5, 0x55, 0x55, 0x98,
- 0x0, 0x0, 0xb, 0x0, 0x0, 0x6, 0x60, 0x0,
- 0x0, 0xb0, 0x0, 0x0, 0x66, 0x0, 0x0, 0xc,
- 0x55, 0x55, 0x59, 0x50, 0x0, 0x0, 0x20, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+5B99 "宙" */
- 0x0, 0x0, 0x1, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb, 0x20, 0x0, 0x0, 0x2, 0x0, 0x0,
- 0x54, 0x0, 0x2, 0x10, 0x95, 0x55, 0x57, 0x55,
- 0x55, 0xc7, 0x1d, 0x0, 0x0, 0xc2, 0x0, 0x14,
- 0x0, 0x1, 0x0, 0xc, 0x0, 0x1, 0x0, 0x0,
- 0x96, 0x55, 0xd5, 0x55, 0xe1, 0x0, 0x9, 0x20,
- 0xc, 0x0, 0xc, 0x0, 0x0, 0x92, 0x0, 0xc0,
- 0x0, 0xc0, 0x0, 0x9, 0x75, 0x5d, 0x55, 0x5c,
- 0x0, 0x0, 0x92, 0x0, 0xc0, 0x0, 0xc0, 0x0,
- 0x9, 0x20, 0xc, 0x0, 0xc, 0x0, 0x0, 0x97,
- 0x55, 0x55, 0x55, 0xd0, 0x0, 0x3, 0x0, 0x0,
- 0x0, 0x2, 0x0,
-
- /* U+5B9A "定" */
- 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x85, 0x0, 0x0, 0x0, 0x3, 0x0, 0x2,
- 0x60, 0x0, 0x13, 0x0, 0xa5, 0x55, 0x55, 0x55,
- 0x5a, 0xa0, 0x3b, 0x0, 0x0, 0x0, 0x0, 0x50,
- 0x0, 0x45, 0x55, 0x55, 0x55, 0x7c, 0x10, 0x1,
- 0x0, 0x2, 0x90, 0x0, 0x0, 0x0, 0x5, 0x70,
- 0x29, 0x0, 0x0, 0x0, 0x0, 0x87, 0x2, 0xb5,
- 0x5b, 0x50, 0x0, 0xa, 0x50, 0x29, 0x0, 0x0,
- 0x0, 0x1, 0xa4, 0x32, 0x90, 0x0, 0x0, 0x0,
- 0x82, 0x6, 0xaa, 0x10, 0x0, 0x0, 0x44, 0x0,
- 0x2, 0x8b, 0xde, 0xf9, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+5B9E "实" */
- 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x6a, 0x0, 0x0, 0x0, 0x0, 0x30,
- 0x0, 0x9, 0x0, 0x1, 0x30, 0x0, 0xa5, 0x55,
- 0x55, 0x55, 0x5a, 0xc0, 0x8, 0x80, 0x65, 0x7,
- 0x70, 0x7, 0x0, 0x2, 0x0, 0xd, 0x18, 0x50,
- 0x0, 0x0, 0x0, 0x18, 0x12, 0xa, 0x30, 0x0,
- 0x0, 0x0, 0x5, 0xc0, 0xb, 0x10, 0x0, 0x0,
- 0x4, 0x55, 0x95, 0x5e, 0x55, 0x58, 0xb0, 0x1,
- 0x0, 0x0, 0x4a, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc5, 0x87, 0x10, 0x0, 0x0, 0x0, 0x2b,
- 0x40, 0x5, 0xe7, 0x0, 0x1, 0x57, 0x60, 0x0,
- 0x0, 0x2d, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5B9F "実" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x9, 0x70, 0x0, 0x0, 0x2, 0x20, 0x0,
- 0x26, 0x0, 0x5, 0x20, 0x78, 0x55, 0x56, 0x55,
- 0x55, 0xd6, 0xd, 0x20, 0x0, 0xa3, 0x0, 0x22,
- 0x0, 0x4, 0x55, 0x5c, 0x65, 0x5c, 0x10, 0x0,
- 0x10, 0x0, 0xa1, 0x0, 0x20, 0x0, 0x1, 0x55,
- 0x5c, 0x65, 0x78, 0x0, 0x4, 0x55, 0x55, 0xc6,
- 0x55, 0x6d, 0x20, 0x10, 0x0, 0x1d, 0x50, 0x0,
- 0x0, 0x0, 0x0, 0x8, 0x61, 0x70, 0x0, 0x0,
- 0x0, 0x8, 0x90, 0x3, 0xb5, 0x0, 0x1, 0x58,
- 0x30, 0x0, 0x2, 0xae, 0x40, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+5BA2 "客" */
- 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x5b, 0x0, 0x0, 0x0, 0x0, 0x95,
- 0x55, 0x59, 0x55, 0x55, 0xb0, 0x5, 0x80, 0xb,
- 0x20, 0x0, 0x6, 0x60, 0x5, 0x10, 0x6c, 0x55,
- 0x5b, 0x52, 0x0, 0x0, 0x2, 0x93, 0x30, 0x6a,
- 0x0, 0x0, 0x0, 0x27, 0x0, 0x69, 0x90, 0x0,
- 0x0, 0x0, 0x30, 0x0, 0x98, 0x94, 0x0, 0x0,
- 0x0, 0x0, 0x68, 0x20, 0x7, 0xda, 0x84, 0x4,
- 0x56, 0xc5, 0x55, 0x55, 0xc4, 0x70, 0x0, 0x0,
- 0xb0, 0x0, 0x0, 0xb0, 0x0, 0x0, 0x0, 0xb0,
- 0x0, 0x0, 0xb0, 0x0, 0x0, 0x0, 0xc5, 0x55,
- 0x55, 0xb0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x10, 0x0,
-
- /* U+5BA4 "室" */
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x96, 0x0, 0x0, 0x0, 0x0, 0x65,
- 0x55, 0x79, 0x55, 0x56, 0x10, 0x7, 0x50, 0x0,
- 0x0, 0x0, 0x9, 0x10, 0x6, 0x45, 0x55, 0x55,
- 0x58, 0xa0, 0x0, 0x0, 0x0, 0xa, 0x50, 0x11,
- 0x0, 0x0, 0x0, 0x1, 0x82, 0x0, 0xa, 0x40,
- 0x0, 0x0, 0x2f, 0xa8, 0x76, 0x56, 0xe0, 0x0,
- 0x0, 0x3, 0x0, 0x84, 0x0, 0x40, 0x0, 0x0,
- 0x25, 0x55, 0xb7, 0x56, 0xb0, 0x0, 0x0, 0x1,
- 0x0, 0x92, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x92, 0x0, 0x0, 0x0, 0x15, 0x55, 0x55, 0xb7,
- 0x55, 0x5b, 0xa0, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5BB3 "害" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x85, 0x0, 0x0, 0x0, 0x2, 0x85,
- 0x55, 0x67, 0x55, 0x59, 0x80, 0xb, 0x30, 0x0,
- 0xb2, 0x0, 0x26, 0x0, 0x1, 0x25, 0x55, 0xd5,
- 0x55, 0x92, 0x0, 0x0, 0x0, 0x0, 0xc0, 0x0,
- 0x50, 0x0, 0x0, 0x25, 0x55, 0xd5, 0x55, 0x51,
- 0x0, 0x5, 0x55, 0x55, 0xd5, 0x55, 0x59, 0x90,
- 0x0, 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0, 0x0,
- 0xa, 0x55, 0x75, 0x55, 0xd0, 0x0, 0x0, 0xb,
- 0x0, 0x0, 0x0, 0xb0, 0x0, 0x0, 0xb, 0x0,
- 0x0, 0x0, 0xb0, 0x0, 0x0, 0xb, 0x55, 0x55,
- 0x55, 0xb0, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0,
- 0x50, 0x0,
-
- /* U+5BB5 "宵" */
- 0x0, 0x0, 0x11, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb4, 0x0, 0x0, 0x0, 0x7, 0x55, 0x57,
- 0x75, 0x55, 0x68, 0x3, 0x92, 0x0, 0x64, 0x1,
- 0x16, 0x40, 0x42, 0x2c, 0x2a, 0x20, 0xa5, 0x10,
- 0x0, 0x0, 0x55, 0xa1, 0x53, 0x0, 0x0, 0x0,
- 0xa5, 0x59, 0x55, 0x5c, 0x0, 0x0, 0xb, 0x0,
- 0x0, 0x0, 0xb0, 0x0, 0x0, 0xc5, 0x55, 0x55,
- 0x5b, 0x0, 0x0, 0xb, 0x0, 0x0, 0x0, 0xb0,
- 0x0, 0x0, 0xc5, 0x55, 0x55, 0x5b, 0x0, 0x0,
- 0xb, 0x0, 0x0, 0x0, 0xb0, 0x0, 0x0, 0xb0,
- 0x0, 0x6, 0xc9, 0x0, 0x0, 0x2, 0x0, 0x0,
- 0x3, 0x0, 0x0,
-
- /* U+5BB6 "家" */
- 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x78, 0x0, 0x0, 0x0, 0x0, 0x95,
- 0x55, 0x58, 0x55, 0x57, 0xa0, 0x6, 0x80, 0x0,
- 0x0, 0x0, 0x7, 0x20, 0x1, 0x5, 0x55, 0x95,
- 0x57, 0x70, 0x0, 0x0, 0x0, 0x1b, 0x60, 0x0,
- 0x50, 0x0, 0x0, 0x4, 0x81, 0x92, 0x8, 0x71,
- 0x0, 0x3, 0x53, 0x6, 0x7b, 0x54, 0x0, 0x0,
- 0x0, 0x1, 0x84, 0x1e, 0x37, 0x0, 0x0, 0x1,
- 0x56, 0x2, 0xb8, 0x75, 0x60, 0x0, 0x2, 0x0,
- 0x49, 0x14, 0x80, 0x99, 0x20, 0x0, 0x37, 0x40,
- 0x6, 0x60, 0x7, 0x80, 0x14, 0x20, 0x4, 0xbd,
- 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0,
- 0x0, 0x0,
-
- /* U+5BB9 "容" */
- 0x0, 0x0, 0x1, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x87, 0x0, 0x0, 0x0, 0x0, 0x95,
- 0x55, 0x58, 0x55, 0x57, 0x70, 0x5, 0x80, 0x40,
- 0x0, 0x20, 0x8, 0x30, 0x5, 0x12, 0xc3, 0x42,
- 0x3a, 0x51, 0x0, 0x0, 0x29, 0x10, 0xd7, 0x0,
- 0xb7, 0x0, 0x2, 0x40, 0xa, 0x54, 0x40, 0x4,
- 0x0, 0x0, 0x0, 0x97, 0x0, 0x58, 0x0, 0x0,
- 0x0, 0x9, 0x90, 0x0, 0x7, 0xda, 0x61, 0x4,
- 0x71, 0xd5, 0x55, 0x5d, 0x36, 0x60, 0x0, 0x0,
- 0xc0, 0x0, 0xc, 0x0, 0x0, 0x0, 0x0, 0xc0,
- 0x0, 0xc, 0x0, 0x0, 0x0, 0x0, 0xd5, 0x55,
- 0x5d, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x1,
- 0x0, 0x0,
-
- /* U+5BBF "宿" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x69, 0x0, 0x0, 0x0, 0x0, 0x85,
- 0x55, 0x59, 0x55, 0x56, 0x80, 0x3, 0x91, 0x90,
- 0x0, 0x0, 0x7, 0x40, 0x5, 0x26, 0x94, 0x55,
- 0x55, 0x56, 0xb1, 0x0, 0xb, 0x0, 0x0, 0xa3,
- 0x0, 0x0, 0x0, 0x6d, 0x0, 0x20, 0x80, 0x3,
- 0x0, 0x1, 0x8c, 0x0, 0xc5, 0x55, 0x5d, 0x0,
- 0x6, 0xc, 0x0, 0xc0, 0x0, 0xc, 0x0, 0x0,
- 0xc, 0x0, 0xc5, 0x55, 0x5c, 0x0, 0x0, 0xc,
- 0x0, 0xc0, 0x0, 0xc, 0x0, 0x0, 0xc, 0x0,
- 0xc0, 0x0, 0xc, 0x0, 0x0, 0xc, 0x0, 0xc5,
- 0x55, 0x5c, 0x0, 0x0, 0x3, 0x0, 0x20, 0x0,
- 0x2, 0x0,
-
- /* U+5BC4 "寄" */
- 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x92, 0x0, 0x0, 0x0, 0x9, 0x55, 0x56,
- 0x55, 0x55, 0x89, 0x6, 0x80, 0x0, 0x77, 0x0,
- 0x15, 0x0, 0x1, 0x55, 0x6d, 0x65, 0x5a, 0x20,
- 0x0, 0x0, 0x1a, 0x33, 0x85, 0x0, 0x0, 0x1,
- 0x55, 0x0, 0x0, 0x90, 0x17, 0x5, 0x55, 0x55,
- 0x55, 0x55, 0xc5, 0x61, 0x0, 0x95, 0x55, 0xa0,
- 0xc, 0x0, 0x0, 0xc, 0x0, 0xb, 0x0, 0xc0,
- 0x0, 0x0, 0xd5, 0x55, 0xb0, 0xc, 0x0, 0x0,
- 0xb, 0x0, 0x7, 0x0, 0xc0, 0x0, 0x0, 0x0,
- 0x0, 0x5, 0xe9, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0x0, 0x0,
-
- /* U+5BC6 "密" */
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x1c, 0x0, 0x0, 0x0, 0x0, 0x95,
- 0x55, 0x59, 0x55, 0x55, 0xd1, 0x6, 0x80, 0x0,
- 0x71, 0x7, 0x15, 0x20, 0x2, 0x1, 0x49, 0x57,
- 0x8a, 0x10, 0x0, 0x0, 0x27, 0x38, 0xa, 0x61,
- 0x39, 0x0, 0x0, 0xb3, 0x3c, 0x92, 0x5, 0x9,
- 0x60, 0x0, 0x26, 0x9d, 0x99, 0x9c, 0x31, 0x10,
- 0x3, 0x20, 0x0, 0x16, 0x0, 0x0, 0x0, 0x0,
- 0x19, 0x0, 0x1b, 0x0, 0x55, 0x0, 0x0, 0xa,
- 0x0, 0xa, 0x0, 0x65, 0x0, 0x0, 0x1a, 0x0,
- 0xa, 0x0, 0x65, 0x0, 0x0, 0x28, 0x55, 0x56,
- 0x55, 0x95, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5BCC "富" */
- 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x2, 0xc0, 0x0, 0x0, 0x8, 0x55, 0x55, 0x85,
- 0x55, 0x97, 0x49, 0x0, 0x0, 0x0, 0x41, 0x81,
- 0x10, 0x35, 0x55, 0x55, 0x53, 0x0, 0x0, 0xa,
- 0x55, 0x55, 0xb2, 0x0, 0x0, 0xc, 0x0, 0x0,
- 0xb0, 0x0, 0x0, 0xb, 0x55, 0x55, 0x90, 0x0,
- 0x0, 0x85, 0x55, 0x55, 0x59, 0x20, 0x0, 0xc0,
- 0x1, 0xa0, 0xb, 0x0, 0x0, 0xd5, 0x55, 0xc5,
- 0x5d, 0x0, 0x0, 0xc0, 0x1, 0xa0, 0xb, 0x0,
- 0x0, 0xd5, 0x55, 0x75, 0x5d, 0x10, 0x0, 0x20,
- 0x0, 0x0, 0x0, 0x0,
-
- /* U+5BD2 "寒" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x10, 0x0, 0x39, 0x0, 0x0, 0x10, 0x1, 0x95,
- 0x55, 0x57, 0x55, 0x56, 0xd0, 0xa, 0x30, 0x1a,
- 0x0, 0xb1, 0x14, 0x10, 0x0, 0x45, 0x6c, 0x55,
- 0xc5, 0x93, 0x0, 0x0, 0x0, 0x1a, 0x0, 0xb0,
- 0x51, 0x0, 0x0, 0x25, 0x6c, 0x55, 0xc5, 0x52,
- 0x0, 0x4, 0x55, 0x6c, 0x55, 0xc5, 0x58, 0xc0,
- 0x0, 0x0, 0x68, 0x0, 0x42, 0x0, 0x0, 0x0,
- 0x3, 0xa0, 0x78, 0x8, 0x40, 0x0, 0x0, 0x38,
- 0x0, 0x7, 0x0, 0x9d, 0x81, 0x4, 0x30, 0x15,
- 0x87, 0x20, 0x2, 0x30, 0x0, 0x0, 0x0, 0x5,
- 0xe2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5BDD "寝" */
- 0x0, 0x0, 0x2, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa, 0x50, 0x0, 0x0, 0x2, 0x85, 0x55,
- 0x66, 0x55, 0x5a, 0x30, 0x84, 0x30, 0x0, 0x0,
- 0x2, 0x50, 0x3, 0xb, 0x12, 0x65, 0x55, 0xc1,
- 0x0, 0x71, 0xb0, 0x5, 0x55, 0x5c, 0x0, 0x4,
- 0x8b, 0x2, 0x65, 0x55, 0xc0, 0x0, 0x1, 0xb0,
- 0x53, 0x33, 0x34, 0x60, 0x2, 0x8c, 0x38, 0x11,
- 0x12, 0x59, 0x13, 0xb0, 0xb3, 0x27, 0x65, 0x99,
- 0x0, 0x0, 0xb, 0x0, 0x7, 0x2a, 0x0, 0x0,
- 0x0, 0xb0, 0x0, 0x4f, 0x30, 0x0, 0x0, 0xb,
- 0x1, 0x65, 0x17, 0xba, 0x60, 0x0, 0x32, 0x20,
- 0x0, 0x0, 0x20,
-
- /* U+5BDF "察" */
- 0x0, 0x0, 0x0, 0x31, 0x0, 0x0, 0x0, 0x0,
- 0x10, 0x0, 0xc, 0x0, 0x0, 0x20, 0x0, 0x95,
- 0x65, 0x55, 0x55, 0x56, 0xd2, 0x6, 0x71, 0xd1,
- 0x11, 0x10, 0x5, 0x10, 0x0, 0xa, 0x75, 0xd5,
- 0x85, 0x5d, 0x50, 0x0, 0x57, 0x93, 0xa0, 0x52,
- 0x54, 0x0, 0x2, 0x82, 0x5a, 0x10, 0x1a, 0x50,
- 0x0, 0x1, 0x8, 0x96, 0x55, 0x74, 0xb7, 0x10,
- 0x0, 0x18, 0x10, 0x0, 0x0, 0x89, 0xd2, 0x4,
- 0x45, 0x55, 0x6c, 0x55, 0x52, 0x0, 0x0, 0x0,
- 0xb4, 0x1a, 0x16, 0x10, 0x0, 0x0, 0x19, 0x30,
- 0x1a, 0x0, 0xb6, 0x0, 0x3, 0x60, 0x6, 0xc9,
- 0x0, 0x1b, 0x0, 0x0, 0x0, 0x0, 0x30, 0x0,
- 0x0, 0x0,
-
- /* U+5BE6 "實" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x58, 0x0, 0x0, 0x0, 0x0, 0x84,
- 0x44, 0x47, 0x44, 0x48, 0x60, 0x1, 0xb3, 0x55,
- 0x55, 0x55, 0x87, 0x0, 0x2, 0x28, 0x52, 0x67,
- 0x22, 0xb5, 0x80, 0x5, 0x3b, 0x43, 0x95, 0x36,
- 0x93, 0x30, 0x0, 0x9, 0x55, 0x65, 0x57, 0x50,
- 0x0, 0x0, 0xa, 0x55, 0x55, 0x55, 0xd0, 0x0,
- 0x0, 0xb, 0x55, 0x55, 0x55, 0xb0, 0x0, 0x0,
- 0xb, 0x55, 0x55, 0x55, 0xb0, 0x0, 0x0, 0xb,
- 0x55, 0x55, 0x55, 0xb0, 0x0, 0x0, 0x3, 0x29,
- 0x0, 0x56, 0x40, 0x0, 0x0, 0x37, 0x72, 0x0,
- 0x3, 0xc7, 0x0, 0x2, 0x10, 0x0, 0x0, 0x0,
- 0x3, 0x0,
-
- /* U+5BEB "寫" */
- 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x76, 0x0, 0x0, 0x0, 0x8, 0x55, 0x56,
- 0x95, 0x55, 0x67, 0x7, 0x50, 0x5, 0x40, 0x0,
- 0x26, 0x40, 0x61, 0xa5, 0x41, 0x46, 0x5d, 0x20,
- 0x0, 0xc, 0x58, 0x31, 0x55, 0xb0, 0x0, 0x0,
- 0xb0, 0x0, 0x1, 0xb, 0x0, 0x0, 0xc, 0x8a,
- 0x55, 0x55, 0xa0, 0x0, 0x0, 0x1d, 0x65, 0x55,
- 0x55, 0x91, 0x0, 0x38, 0x10, 0x2, 0x14, 0xb,
- 0x0, 0x23, 0x60, 0x80, 0x91, 0xb1, 0xb0, 0x0,
- 0x2c, 0x8, 0x24, 0x12, 0x39, 0x0, 0x1, 0x20,
- 0x0, 0x4, 0xad, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x2, 0x20, 0x0,
-
- /* U+5BFA "寺" */
- 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd1, 0x0, 0x0, 0x0, 0x1, 0x55,
- 0x55, 0xe5, 0x55, 0x99, 0x0, 0x0, 0x10, 0x0,
- 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd0,
- 0x0, 0x1, 0x40, 0x36, 0x55, 0x55, 0x85, 0x66,
- 0x57, 0x91, 0x0, 0x0, 0x0, 0x0, 0x2d, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x2b, 0x6, 0x30,
- 0x6, 0x57, 0x55, 0x55, 0x6c, 0x55, 0x40, 0x0,
- 0x1, 0xb0, 0x0, 0x2b, 0x0, 0x0, 0x0, 0x0,
- 0xa5, 0x0, 0x2b, 0x0, 0x0, 0x0, 0x0, 0x20,
- 0x0, 0x2a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x28,
- 0xe8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40,
- 0x0, 0x0,
-
- /* U+5BFE "対" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x63, 0x0, 0x0, 0x0, 0xc1, 0x0, 0x0, 0x1e,
- 0x10, 0x0, 0x0, 0xc0, 0x0, 0x0, 0x6, 0x4,
- 0x0, 0x0, 0xc0, 0x0, 0x6, 0x55, 0xc7, 0x35,
- 0x55, 0xd5, 0xb0, 0x0, 0x0, 0xd0, 0x1, 0x0,
- 0xc0, 0x0, 0x3, 0x21, 0xb0, 0x33, 0x0, 0xc0,
- 0x0, 0x0, 0x5a, 0x60, 0xc, 0x20, 0xc0, 0x0,
- 0x0, 0xc, 0x90, 0x7, 0x60, 0xc0, 0x0, 0x0,
- 0x47, 0xa8, 0x0, 0x0, 0xc0, 0x0, 0x1, 0x90,
- 0x1c, 0x0, 0x0, 0xc0, 0x0, 0x18, 0x0, 0x0,
- 0x1, 0x32, 0xd0, 0x0, 0x20, 0x0, 0x0, 0x0,
- 0x3d, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
- 0x0, 0x0,
-
- /* U+5C04 "射" */
- 0x0, 0x1, 0x20, 0x0, 0x0, 0x30, 0x0, 0x0,
- 0x6, 0x40, 0x0, 0x0, 0xc2, 0x0, 0x0, 0xa7,
- 0x5b, 0x20, 0x0, 0xc0, 0x0, 0x0, 0xc0, 0xb,
- 0x10, 0x0, 0xc0, 0x10, 0x0, 0xd5, 0x5c, 0x46,
- 0x55, 0xd6, 0xa0, 0x0, 0xc0, 0xb, 0x10, 0x0,
- 0xc0, 0x0, 0x0, 0xd5, 0x5c, 0x15, 0x10, 0xc0,
- 0x0, 0x0, 0xc0, 0xb, 0x12, 0xc0, 0xc0, 0x0,
- 0x16, 0x86, 0xac, 0x10, 0xc0, 0xc0, 0x0, 0x0,
- 0x9, 0x4b, 0x10, 0x0, 0xc0, 0x0, 0x0, 0x48,
- 0xb, 0x10, 0x0, 0xc0, 0x0, 0x2, 0x80, 0xb,
- 0x10, 0x0, 0xc0, 0x0, 0x15, 0x2, 0xad, 0x0,
- 0x6d, 0xc0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1,
- 0x0, 0x0,
-
- /* U+5C07 "將" */
- 0x0, 0x0, 0x20, 0x0, 0x20, 0x0, 0x0, 0x2,
- 0x0, 0xd0, 0x1, 0xe1, 0x0, 0x0, 0xb, 0x10,
- 0xb0, 0x9, 0x85, 0x5b, 0x60, 0xb, 0x0, 0xb0,
- 0x58, 0x70, 0x3c, 0x10, 0xc, 0x55, 0xb3, 0x75,
- 0x74, 0xb1, 0x0, 0x3, 0x0, 0xb0, 0x8, 0x2a,
- 0x20, 0x0, 0x0, 0x0, 0xb0, 0x6, 0x80, 0xb1,
- 0x0, 0x17, 0x95, 0xb3, 0x51, 0x0, 0xb1, 0x60,
- 0x0, 0xc0, 0xb5, 0x65, 0x55, 0xc5, 0x50, 0x0,
- 0xb0, 0xb0, 0x64, 0x0, 0xb0, 0x0, 0x3, 0x80,
- 0xb0, 0x1d, 0x0, 0xb0, 0x0, 0x8, 0x20, 0xb0,
- 0x3, 0x0, 0xb0, 0x0, 0x35, 0x0, 0xc0, 0x1,
- 0x7d, 0xc0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x2,
- 0x10, 0x0,
-
- /* U+5C08 "專" */
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb, 0x30, 0x3, 0x50, 0x0, 0x65, 0x55,
- 0xc5, 0x55, 0x55, 0x0, 0x0, 0xa5, 0x5c, 0x55,
- 0x79, 0x0, 0x0, 0xc, 0x0, 0xb1, 0x4, 0x80,
- 0x0, 0x0, 0xc5, 0x5c, 0x55, 0x78, 0x0, 0x0,
- 0xc, 0x55, 0xc5, 0x57, 0x80, 0x0, 0x0, 0x30,
- 0xb, 0x22, 0x97, 0x0, 0x0, 0xac, 0xa8, 0x76,
- 0x84, 0x96, 0x0, 0x45, 0x55, 0x55, 0x5c, 0x75,
- 0xd7, 0x1, 0x3, 0x40, 0x0, 0xa2, 0x0, 0x0,
- 0x0, 0xb, 0x30, 0xa, 0x20, 0x0, 0x0, 0x0,
- 0x30, 0x3a, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0x0, 0x0,
-
- /* U+5C0D "對" */
- 0x0, 0x3, 0x3, 0x0, 0x0, 0x2, 0x0, 0x1,
- 0xc, 0xc, 0x1, 0x0, 0xd, 0x0, 0x8, 0x4a,
- 0xa, 0x67, 0x0, 0xb, 0x0, 0x2, 0x4a, 0xc,
- 0x42, 0x0, 0xb, 0x0, 0x16, 0x58, 0x59, 0x5a,
- 0x10, 0xb, 0x51, 0x0, 0x72, 0xb, 0x10, 0x65,
- 0x5c, 0x52, 0x0, 0x38, 0x25, 0x22, 0x30, 0xb,
- 0x0, 0x4, 0x66, 0xa5, 0x70, 0xb3, 0xb, 0x0,
- 0x0, 0x2, 0x90, 0x0, 0x59, 0xb, 0x0, 0x1,
- 0x66, 0xb6, 0x90, 0x1, 0xb, 0x0, 0x0, 0x2,
- 0x90, 0x0, 0x0, 0xb, 0x0, 0x0, 0x2, 0xa3,
- 0x42, 0x1, 0x1b, 0x0, 0xb, 0xb8, 0x52, 0x0,
- 0x5, 0xe8, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0,
- 0x10, 0x0,
-
- /* U+5C0E "導" */
- 0x0, 0x10, 0x0, 0x30, 0x2, 0x0, 0x0, 0x0,
- 0x94, 0x0, 0x2a, 0x8, 0x31, 0x0, 0x0, 0x38,
- 0x46, 0x58, 0x77, 0x59, 0x60, 0x1, 0x26, 0x9,
- 0x57, 0x55, 0x86, 0x0, 0x1, 0x3c, 0xb, 0x55,
- 0x55, 0x95, 0x0, 0x0, 0xb, 0xb, 0x44, 0x44,
- 0x95, 0x0, 0x0, 0xb, 0xb, 0x55, 0x55, 0x95,
- 0x0, 0x1, 0x76, 0x89, 0x21, 0x11, 0x34, 0x41,
- 0x2, 0x40, 0x4, 0x79, 0xac, 0xab, 0x70, 0x4,
- 0x55, 0x55, 0x55, 0x5e, 0x5a, 0xb0, 0x1, 0x1,
- 0x40, 0x0, 0xb, 0x0, 0x0, 0x0, 0x0, 0xa3,
- 0x0, 0xb, 0x0, 0x0, 0x0, 0x0, 0x20, 0x5,
- 0xb9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x30,
- 0x0, 0x0,
-
- /* U+5C0F "小" */
- 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0xe1, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0, 0x0, 0x0,
- 0x0, 0x8, 0x10, 0xc0, 0x30, 0x0, 0x0, 0x1e,
- 0x20, 0xc0, 0x46, 0x0, 0x0, 0x95, 0x0, 0xc0,
- 0x9, 0x70, 0x2, 0x90, 0x0, 0xc0, 0x0, 0xe5,
- 0x8, 0x0, 0x0, 0xc0, 0x0, 0x6c, 0x51, 0x0,
- 0x0, 0xc0, 0x0, 0x6, 0x0, 0x0, 0x0, 0xc0,
- 0x0, 0x0, 0x0, 0x1, 0x45, 0xb0, 0x0, 0x0,
- 0x0, 0x0, 0x4e, 0x60, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0x0, 0x0, 0x0,
-
- /* U+5C11 "少" */
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xa2, 0x0, 0x0, 0x0, 0x0, 0x34, 0xa, 0x22,
- 0x10, 0x0, 0x0, 0xa, 0x90, 0xa2, 0x7, 0x91,
- 0x0, 0x2, 0xc0, 0xa, 0x20, 0x7, 0xe2, 0x0,
- 0xa2, 0x0, 0xa2, 0x0, 0xa, 0x80, 0x54, 0x0,
- 0xa, 0x20, 0x29, 0x12, 0x24, 0x0, 0x0, 0xa3,
- 0x1d, 0xa1, 0x0, 0x0, 0x0, 0x1, 0x2d, 0x70,
- 0x0, 0x0, 0x0, 0x0, 0x6c, 0x30, 0x0, 0x0,
- 0x0, 0x5, 0xb7, 0x0, 0x0, 0x0, 0x3, 0x68,
- 0x40, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+5C1A "尚" */
- 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x11, 0x0,
- 0xd, 0x0, 0x5, 0x0, 0x9, 0x60, 0xc, 0x0,
- 0x4d, 0x10, 0x0, 0xe3, 0xc, 0x0, 0xa1, 0x0,
- 0x20, 0x40, 0xc, 0x5, 0x20, 0x20, 0xc5, 0x55,
- 0x57, 0x56, 0x56, 0xc0, 0xc0, 0x2, 0x0, 0x3,
- 0x2, 0xa0, 0xc0, 0xc, 0x55, 0x5c, 0x2, 0xa0,
- 0xc0, 0xb, 0x0, 0xb, 0x2, 0xa0, 0xc0, 0xb,
- 0x0, 0xb, 0x2, 0xa0, 0xc0, 0xc, 0x55, 0x5b,
- 0x2, 0xa0, 0xc0, 0x4, 0x0, 0x3, 0x24, 0xa0,
- 0xc0, 0x0, 0x0, 0x1, 0x7f, 0x50, 0x10, 0x0,
- 0x0, 0x0, 0x2, 0x0,
-
- /* U+5C24 "尤" */
- 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x9, 0x60, 0x66, 0x0, 0x0, 0x0, 0x0,
- 0x8, 0x30, 0xa, 0x90, 0x0, 0x0, 0x0, 0x8,
- 0x30, 0x0, 0x44, 0x0, 0x6, 0x55, 0x5b, 0x78,
- 0x55, 0x5b, 0x50, 0x0, 0x0, 0x9, 0x3a, 0x10,
- 0x0, 0x0, 0x0, 0x0, 0xa, 0x2a, 0x10, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0xa, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0xc, 0xa, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x48, 0xa, 0x10, 0x0, 0x10, 0x0, 0x0,
- 0xb1, 0xa, 0x10, 0x0, 0x50, 0x0, 0x9, 0x40,
- 0xa, 0x20, 0x1, 0x80, 0x1, 0x82, 0x0, 0x6,
- 0xdb, 0xbc, 0xb0, 0x13, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5C31 "就" */
- 0x0, 0x1, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x3, 0x90, 0x0, 0xb1, 0x30, 0x0, 0x0, 0x0,
- 0x70, 0x21, 0xb0, 0x4a, 0x0, 0x5, 0x55, 0x55,
- 0x52, 0xb0, 0x6, 0x0, 0x0, 0x75, 0x55, 0x74,
- 0xc5, 0x56, 0x90, 0x0, 0xb0, 0x0, 0xb0, 0xb4,
- 0x60, 0x0, 0x0, 0xb0, 0x0, 0xb0, 0xb4, 0x60,
- 0x0, 0x0, 0xc5, 0xb5, 0xa0, 0xb4, 0x60, 0x0,
- 0x0, 0x30, 0xa1, 0x0, 0xb4, 0x60, 0x0, 0x0,
- 0xc1, 0xa2, 0x82, 0x84, 0x60, 0x0, 0x5, 0x40,
- 0xa0, 0x98, 0x24, 0x60, 0x40, 0x6, 0x0, 0xa0,
- 0x8, 0x4, 0x60, 0x80, 0x10, 0x3b, 0x90, 0x70,
- 0x2, 0xca, 0xd0, 0x0, 0x1, 0x2, 0x10, 0x0,
- 0x0, 0x0,
-
- /* U+5C3A "尺" */
- 0x0, 0x3, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0,
- 0xd, 0x55, 0x55, 0x55, 0x5d, 0x0, 0x0, 0xd,
- 0x0, 0x0, 0x0, 0x1b, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0x0, 0x1b, 0x0, 0x0, 0xd, 0x55, 0x57,
- 0x55, 0x5b, 0x0, 0x0, 0xd, 0x0, 0x6, 0x0,
- 0x4, 0x0, 0x0, 0xc, 0x0, 0x7, 0x10, 0x0,
- 0x0, 0x0, 0xb, 0x0, 0x1, 0x70, 0x0, 0x0,
- 0x0, 0x38, 0x0, 0x0, 0x93, 0x0, 0x0, 0x0,
- 0x82, 0x0, 0x0, 0x1d, 0x40, 0x0, 0x2, 0x80,
- 0x0, 0x0, 0x2, 0xe9, 0x20, 0x7, 0x0, 0x0,
- 0x0, 0x0, 0x1b, 0xe3, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+5C40 "局" */
- 0x0, 0x8, 0x55, 0x55, 0x55, 0x5a, 0x0, 0x0,
- 0xc, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0x0, 0xc, 0x0, 0x0, 0xd, 0x55,
- 0x55, 0x55, 0x59, 0x0, 0x0, 0xc, 0x0, 0x0,
- 0x0, 0x0, 0x30, 0x0, 0xd, 0x55, 0x55, 0x55,
- 0x55, 0xd0, 0x0, 0x1a, 0x7, 0x55, 0x58, 0x0,
- 0xc0, 0x0, 0x28, 0xb, 0x0, 0xb, 0x0, 0xc0,
- 0x0, 0x64, 0xb, 0x0, 0xb, 0x0, 0xc0, 0x0,
- 0x90, 0xc, 0x55, 0x5a, 0x1, 0xb0, 0x1, 0x60,
- 0x2, 0x0, 0x2, 0x14, 0xa0, 0x5, 0x0, 0x0,
- 0x0, 0x1, 0x8f, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+5C45 "居" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8,
- 0x65, 0x55, 0x55, 0x56, 0xa0, 0x0, 0x83, 0x0,
- 0x0, 0x0, 0x38, 0x0, 0x8, 0x75, 0x55, 0x55,
- 0x57, 0x90, 0x0, 0x83, 0x0, 0x9, 0x10, 0x13,
- 0x0, 0x8, 0x30, 0x0, 0xc0, 0x0, 0x11, 0x0,
- 0x87, 0x65, 0x5d, 0x55, 0x58, 0x60, 0xa, 0x10,
- 0x0, 0xc0, 0x0, 0x0, 0x0, 0xa0, 0x20, 0xc,
- 0x0, 0x40, 0x0, 0xa, 0xc, 0x66, 0x66, 0x6d,
- 0x10, 0x3, 0x50, 0xc0, 0x0, 0x0, 0xc0, 0x0,
- 0x70, 0xc, 0x0, 0x0, 0xc, 0x0, 0x23, 0x0,
- 0xc5, 0x55, 0x55, 0xc0, 0x0, 0x0, 0x2, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+5C4A "届" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8,
- 0x65, 0x55, 0x55, 0x55, 0xc0, 0x0, 0x83, 0x0,
- 0x0, 0x0, 0xc, 0x0, 0x8, 0x75, 0x55, 0x55,
- 0x55, 0xc0, 0x0, 0x83, 0x0, 0x0, 0x30, 0x5,
- 0x0, 0x8, 0x30, 0x0, 0xd, 0x0, 0x0, 0x0,
- 0x82, 0x65, 0x55, 0xd5, 0x59, 0x30, 0xa, 0x1b,
- 0x10, 0xc, 0x0, 0xa1, 0x0, 0xa0, 0xb1, 0x0,
- 0xc0, 0xa, 0x10, 0xa, 0xa, 0x65, 0x5d, 0x55,
- 0xc1, 0x3, 0x60, 0xa1, 0x0, 0xc0, 0xa, 0x10,
- 0x70, 0xb, 0x65, 0x5d, 0x55, 0xc1, 0x14, 0x0,
- 0x91, 0x0, 0x0, 0x7, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+5C4B "屋" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0,
- 0x97, 0x55, 0x55, 0x55, 0x5e, 0x0, 0x0, 0x83,
- 0x0, 0x0, 0x0, 0xc, 0x0, 0x0, 0x87, 0x55,
- 0x55, 0x55, 0x5c, 0x0, 0x0, 0x83, 0x0, 0x0,
- 0x0, 0x5, 0x0, 0x0, 0x84, 0x65, 0x78, 0x55,
- 0x68, 0x10, 0x0, 0x92, 0x0, 0xb5, 0x6, 0x10,
- 0x0, 0x0, 0xa1, 0x38, 0x10, 0x2, 0xd5, 0x0,
- 0x0, 0xc0, 0x8a, 0x8b, 0x74, 0x4b, 0x0, 0x0,
- 0xb0, 0x0, 0xa, 0x20, 0x13, 0x0, 0x3, 0x60,
- 0x56, 0x5c, 0x65, 0x66, 0x0, 0x8, 0x0, 0x0,
- 0xa, 0x10, 0x0, 0x0, 0x15, 0x5, 0x55, 0x5c,
- 0x65, 0x58, 0xc0, 0x10, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5C55 "展" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x86, 0x55, 0x55, 0x55, 0x5d, 0x0, 0x0, 0x83,
- 0x0, 0x0, 0x0, 0xc, 0x0, 0x0, 0x87, 0x55,
- 0x55, 0x55, 0x5c, 0x0, 0x0, 0x83, 0x3, 0xa0,
- 0x1a, 0x2, 0x0, 0x0, 0x97, 0x57, 0xb5, 0x6b,
- 0x69, 0x0, 0x0, 0x92, 0x3, 0x80, 0x1a, 0x0,
- 0x0, 0x0, 0xa1, 0x3, 0x80, 0x1a, 0x5, 0x50,
- 0x0, 0xb5, 0x5c, 0x59, 0x55, 0x75, 0x40, 0x0,
- 0xb0, 0xb, 0x5, 0x32, 0xb3, 0x0, 0x2, 0x70,
- 0xb, 0x0, 0xa7, 0x0, 0x0, 0x7, 0x10, 0xb,
- 0x55, 0x1b, 0x83, 0x10, 0x15, 0x0, 0x1e, 0x40,
- 0x0, 0x6d, 0xa1, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5C65 "履" */
- 0x0, 0x10, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0,
- 0xa6, 0x55, 0x55, 0x55, 0x5c, 0x10, 0x0, 0x96,
- 0x55, 0x55, 0x55, 0x5c, 0x0, 0x0, 0x91, 0x27,
- 0x9, 0x30, 0x5, 0x0, 0x0, 0x91, 0x92, 0xc,
- 0x55, 0x58, 0x20, 0x0, 0x95, 0x46, 0x6b, 0x55,
- 0x5b, 0x0, 0x0, 0xa2, 0x69, 0x5a, 0x55, 0x5a,
- 0x0, 0x0, 0xa0, 0xc1, 0xa, 0x0, 0xa, 0x0,
- 0x0, 0xa6, 0xc1, 0x7, 0xc6, 0x56, 0x0, 0x0,
- 0x92, 0xa0, 0x5, 0xc5, 0x78, 0x0, 0x3, 0x50,
- 0xa0, 0x35, 0x42, 0xb2, 0x0, 0x7, 0x0, 0xa0,
- 0x20, 0x3d, 0x80, 0x0, 0x13, 0x0, 0x91, 0x47,
- 0x50, 0x5b, 0xa0, 0x0, 0x0, 0x2, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5C6C "屬" */
- 0x0, 0x20, 0x0, 0x0, 0x0, 0x3, 0x0, 0x9,
- 0x75, 0x55, 0x55, 0x55, 0xc0, 0x0, 0x97, 0x55,
- 0x56, 0x55, 0x6b, 0x0, 0x9, 0x23, 0x91, 0x92,
- 0x57, 0x10, 0x0, 0x96, 0x76, 0x39, 0x15, 0x87,
- 0x0, 0x9, 0x47, 0x55, 0x75, 0x55, 0xa0, 0x0,
- 0xa2, 0x70, 0x90, 0x90, 0xa, 0x0, 0xb, 0x19,
- 0x84, 0x44, 0x44, 0x60, 0x0, 0xa0, 0x96, 0x57,
- 0x55, 0x5a, 0x40, 0x9, 0x57, 0x55, 0xb5, 0x91,
- 0x91, 0x5, 0x40, 0x95, 0x5a, 0x5c, 0xa, 0x0,
- 0x70, 0x4, 0x23, 0xa5, 0x81, 0xa0, 0x14, 0x0,
- 0x85, 0x31, 0x6, 0x9a, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0x2, 0x0,
-
- /* U+5C71 "山" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb, 0x20, 0x0, 0x0, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0, 0x0,
- 0x8, 0x10, 0xc, 0x0, 0x0, 0xa1, 0xc, 0x0,
- 0xc, 0x0, 0x0, 0xc0, 0xc, 0x0, 0xc, 0x0,
- 0x0, 0xc0, 0xc, 0x0, 0xc, 0x0, 0x0, 0xc0,
- 0xc, 0x0, 0xc, 0x0, 0x0, 0xc0, 0xc, 0x0,
- 0xc, 0x0, 0x0, 0xc0, 0xc, 0x0, 0xc, 0x0,
- 0x0, 0xc0, 0xe, 0x55, 0x5a, 0x55, 0x55, 0xc0,
- 0x1, 0x0, 0x0, 0x0, 0x0, 0x80,
-
- /* U+5CF6 "島" */
- 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x90, 0x0, 0x0, 0x0, 0x0, 0x86, 0x56,
- 0x55, 0x5c, 0x30, 0x0, 0x9, 0x75, 0x55, 0x55,
- 0xc0, 0x0, 0x0, 0x93, 0x0, 0x0, 0xa, 0x0,
- 0x0, 0x9, 0x75, 0x55, 0x55, 0xb0, 0x0, 0x0,
- 0x97, 0x55, 0x55, 0x55, 0x59, 0x70, 0x9, 0x30,
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x76, 0x57, 0x55,
- 0x55, 0x5d, 0x10, 0x51, 0x0, 0xd0, 0x5, 0x0,
- 0xb0, 0xb, 0x0, 0xb, 0x0, 0xb1, 0xb, 0x0,
- 0xb5, 0x55, 0x95, 0x5b, 0x2, 0x90, 0x0, 0x0,
- 0x0, 0x0, 0x5b, 0xd3, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x11, 0x0,
-
- /* U+5D4C "嵌" */
- 0x0, 0x0, 0x0, 0x31, 0x0, 0x0, 0x0, 0x0,
- 0x71, 0x0, 0x85, 0x0, 0x18, 0x0, 0x0, 0xb0,
- 0x0, 0x74, 0x0, 0x1a, 0x0, 0x0, 0xb5, 0x55,
- 0x76, 0x55, 0x5a, 0x0, 0x0, 0x71, 0x8, 0x10,
- 0x59, 0x0, 0x0, 0x0, 0xb0, 0xb, 0x41, 0xa3,
- 0x0, 0x50, 0x6, 0xc5, 0x5c, 0x54, 0xb5, 0x57,
- 0xb0, 0x0, 0xb0, 0xb, 0x8, 0x1c, 0x25, 0x0,
- 0x0, 0xb5, 0x5c, 0x12, 0xe, 0x20, 0x0, 0x0,
- 0xb0, 0xb, 0x0, 0x58, 0x60, 0x0, 0x0, 0xb0,
- 0xb, 0x0, 0xa2, 0x72, 0x0, 0x0, 0xb5, 0x5d,
- 0x5, 0x70, 0xc, 0x30, 0x0, 0x80, 0x4, 0x64,
- 0x0, 0x3, 0xe4, 0x0, 0x0, 0x2, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5DDD "川" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xa3, 0x0, 0x0, 0x0, 0xd1, 0x0, 0xa, 0x10,
- 0xb, 0x20, 0xc, 0x0, 0x0, 0xa1, 0x0, 0xc0,
- 0x0, 0xc0, 0x0, 0xa, 0x10, 0xc, 0x0, 0xc,
- 0x0, 0x0, 0xb0, 0x0, 0xc0, 0x0, 0xc0, 0x0,
- 0xb, 0x0, 0xc, 0x0, 0xc, 0x0, 0x0, 0xb0,
- 0x0, 0xc0, 0x0, 0xc0, 0x0, 0xa, 0x0, 0xc,
- 0x0, 0xc, 0x0, 0x3, 0x70, 0x0, 0xc0, 0x0,
- 0xc0, 0x0, 0x71, 0x0, 0xa, 0x0, 0xc, 0x0,
- 0x7, 0x0, 0x0, 0x0, 0x0, 0xc0, 0x5, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x10,
-
- /* U+5DDE "州" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x27, 0x0, 0x20, 0x1, 0xc0, 0x0, 0x2, 0x90,
- 0x9, 0x40, 0x1a, 0x0, 0x0, 0x29, 0x0, 0x92,
- 0x1, 0xa0, 0x0, 0x3, 0x80, 0x9, 0x20, 0xa,
- 0x0, 0x6, 0x47, 0x80, 0x92, 0x91, 0xa0, 0x2,
- 0xa5, 0x66, 0x79, 0x29, 0x4a, 0x0, 0x74, 0x65,
- 0x23, 0x92, 0x21, 0xa0, 0x0, 0x9, 0x20, 0x9,
- 0x20, 0xa, 0x0, 0x0, 0xc0, 0x0, 0x92, 0x0,
- 0xa0, 0x0, 0x38, 0x0, 0x9, 0x20, 0xa, 0x0,
- 0x9, 0x0, 0x0, 0x71, 0x1, 0xa0, 0x5, 0x30,
- 0x0, 0x0, 0x0, 0x1b, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+5DE5 "工" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x3,
- 0x65, 0x55, 0x75, 0x55, 0x8b, 0x0, 0x0, 0x0,
- 0x0, 0xa2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xa2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa2,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa2, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xa2, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xa2, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa2, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa2, 0x0, 0x1, 0x0, 0x15, 0x55,
- 0x55, 0xc7, 0x55, 0x5e, 0x80, 0x1, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0,
-
- /* U+5DE6 "左" */
- 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd3, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe,
- 0x0, 0x0, 0x16, 0x0, 0x46, 0x56, 0xc5, 0x55,
- 0x56, 0x81, 0x0, 0x0, 0x66, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0xb0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x76,
- 0x55, 0xb5, 0x58, 0x10, 0x0, 0x1a, 0x0, 0xc,
- 0x0, 0x0, 0x0, 0x8, 0x10, 0x0, 0xc0, 0x0,
- 0x0, 0x4, 0x40, 0x0, 0xc, 0x0, 0x0, 0x2,
- 0x40, 0x0, 0x0, 0xc0, 0x0, 0x70, 0x0, 0x17,
- 0x55, 0x56, 0x55, 0x56, 0x30,
-
- /* U+5DEE "差" */
- 0x0, 0x1, 0x10, 0x0, 0x3, 0x0, 0x0, 0x0,
- 0x0, 0xa5, 0x0, 0xc, 0x40, 0x0, 0x0, 0x0,
- 0x17, 0x0, 0x44, 0x3, 0x50, 0x0, 0x55, 0x55,
- 0xb6, 0x55, 0x56, 0x60, 0x0, 0x0, 0x0, 0xc0,
- 0x0, 0x24, 0x0, 0x0, 0x25, 0x56, 0xc5, 0x55,
- 0x55, 0x0, 0x0, 0x0, 0x6, 0x50, 0x0, 0x3,
- 0x80, 0x4, 0x55, 0x5d, 0x55, 0x55, 0x55, 0x51,
- 0x0, 0x0, 0x56, 0x0, 0x0, 0x11, 0x0, 0x0,
- 0x1, 0x95, 0x56, 0xa5, 0x66, 0x0, 0x0, 0x18,
- 0x0, 0x2, 0xa0, 0x0, 0x0, 0x1, 0x70, 0x0,
- 0x2, 0xa0, 0x0, 0x0, 0x3, 0x4, 0x55, 0x56,
- 0xc5, 0x56, 0xd1, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5DF1 "己" */
- 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x65,
- 0x55, 0x55, 0x55, 0xd1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc0, 0x0, 0x3, 0x0, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0xb5, 0x55, 0x55, 0x55, 0xd0, 0x0, 0xb,
- 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb1, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xb, 0x10, 0x0, 0x0,
- 0x0, 0x5, 0x0, 0xb1, 0x0, 0x0, 0x0, 0x0,
- 0x70, 0xa, 0x52, 0x22, 0x22, 0x22, 0x6e, 0x0,
- 0x29, 0x99, 0x99, 0x99, 0x99, 0x50,
-
- /* U+5DF2 "已" */
- 0x4, 0x55, 0x55, 0x55, 0x5b, 0x0, 0x1, 0x0,
- 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0x0, 0x5, 0x10, 0x0, 0x0, 0xc, 0x0,
- 0xb, 0x65, 0x55, 0x55, 0x5c, 0x0, 0xb, 0x10,
- 0x0, 0x0, 0x9, 0x0, 0xb, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0xb, 0x10, 0x0, 0x0, 0x0, 0x10,
- 0xb, 0x10, 0x0, 0x0, 0x0, 0x50, 0xb, 0x10,
- 0x0, 0x0, 0x0, 0x62, 0xa, 0x42, 0x22, 0x22,
- 0x22, 0xb8, 0x2, 0x88, 0x88, 0x88, 0x88, 0x72,
-
- /* U+5E02 "市" */
- 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x68, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x90, 0x0, 0x19, 0x4, 0x65, 0x55, 0x5d, 0x55,
- 0x55, 0x52, 0x0, 0x0, 0x0, 0xc0, 0x0, 0x10,
- 0x0, 0xc, 0x55, 0x5d, 0x55, 0x6d, 0x0, 0x0,
- 0xc0, 0x0, 0xc0, 0x1, 0xb0, 0x0, 0xc, 0x0,
- 0xc, 0x0, 0x1b, 0x0, 0x0, 0xc0, 0x0, 0xc0,
- 0x1, 0xb0, 0x0, 0xc, 0x0, 0xc, 0x0, 0x1b,
- 0x0, 0x0, 0xc0, 0x0, 0xc0, 0x56, 0xa0, 0x0,
- 0xa, 0x0, 0xc, 0x1, 0xb4, 0x0, 0x0, 0x0,
- 0x0, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2,
- 0x0, 0x0, 0x0,
-
- /* U+5E03 "布" */
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0xe1, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x7, 0x60, 0x0, 0x1, 0x40, 0x5, 0x55, 0x5d,
- 0x55, 0x55, 0x56, 0x81, 0x0, 0x0, 0x57, 0x9,
- 0x30, 0x0, 0x0, 0x0, 0x0, 0xc0, 0xb, 0x0,
- 0x4, 0x0, 0x0, 0x8, 0xe5, 0x5c, 0x55, 0x5d,
- 0x0, 0x0, 0x54, 0xc0, 0xb, 0x0, 0xc, 0x0,
- 0x4, 0x40, 0xc0, 0xb, 0x0, 0xc, 0x0, 0x12,
- 0x0, 0xc0, 0xb, 0x0, 0xc, 0x0, 0x0, 0x0,
- 0xc0, 0xb, 0x2, 0x2c, 0x0, 0x0, 0x0, 0xb0,
- 0xb, 0x1, 0xc6, 0x0, 0x0, 0x0, 0x0, 0xc,
- 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0,
- 0x0, 0x0,
-
- /* U+5E08 "师" */
- 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xa3, 0x55, 0x55, 0x55, 0xa5, 0x3, 0xa, 0x11,
- 0x0, 0xb0, 0x0, 0x0, 0xa2, 0xa1, 0x0, 0xb,
- 0x0, 0x0, 0xa, 0x1a, 0x1a, 0x55, 0xc5, 0x5c,
- 0x20, 0xa1, 0xa1, 0xb0, 0xb, 0x0, 0xa0, 0xa,
- 0x1a, 0xb, 0x0, 0xb0, 0xa, 0x0, 0xa1, 0xb0,
- 0xb0, 0xb, 0x0, 0xa0, 0xa, 0x1b, 0xb, 0x0,
- 0xb0, 0xa, 0x0, 0x32, 0x80, 0xb0, 0xb, 0x1,
- 0xb0, 0x0, 0x82, 0x7, 0x0, 0xb0, 0x6b, 0x0,
- 0x27, 0x0, 0x0, 0xb, 0x0, 0x0, 0x6, 0x0,
- 0x0, 0x0, 0xb0, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x3, 0x0, 0x0,
-
- /* U+5E0C "希" */
- 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
- 0x14, 0x52, 0x3, 0xc8, 0x0, 0x0, 0x0, 0x0,
- 0x7, 0xdd, 0x30, 0x0, 0x0, 0x0, 0x0, 0x68,
- 0x14, 0xcb, 0x10, 0x0, 0x0, 0x44, 0xc, 0x40,
- 0x6, 0x51, 0x0, 0x16, 0x55, 0x7c, 0x55, 0x55,
- 0x5b, 0x80, 0x0, 0x0, 0xb1, 0x94, 0x0, 0x0,
- 0x0, 0x0, 0xb, 0x85, 0xb7, 0x55, 0x91, 0x0,
- 0x0, 0x8c, 0x20, 0x92, 0x0, 0xc0, 0x0, 0x25,
- 0x9, 0x20, 0x92, 0x0, 0xc0, 0x0, 0x0, 0x9,
- 0x20, 0x92, 0x11, 0xd0, 0x0, 0x0, 0xa, 0x20,
- 0x92, 0x2b, 0x90, 0x0, 0x0, 0x1, 0x0, 0xa3,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0,
- 0x0, 0x0,
-
- /* U+5E2B "師" */
- 0x0, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc,
- 0x10, 0x0, 0x0, 0x0, 0x20, 0x23, 0x30, 0x36,
- 0x55, 0xa5, 0x58, 0x2c, 0x55, 0x5c, 0x0, 0xb,
- 0x0, 0x0, 0xb0, 0x0, 0xb3, 0x54, 0xc4, 0x49,
- 0xc, 0x55, 0x5b, 0x55, 0xb, 0x0, 0xb0, 0xb0,
- 0x0, 0x45, 0x50, 0xb0, 0xb, 0xc, 0x55, 0x58,
- 0x55, 0xb, 0x0, 0xb0, 0xb0, 0x0, 0xb5, 0x50,
- 0xb0, 0xb, 0xb, 0x0, 0xb, 0x55, 0xb, 0x0,
- 0xb0, 0xb0, 0x0, 0xb5, 0x40, 0xb3, 0xb9, 0xc,
- 0x55, 0x5b, 0x0, 0xb, 0x1, 0x0, 0x70, 0x0,
- 0x10, 0x0, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x2, 0x0, 0x0,
-
- /* U+5E2D "席" */
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x1c, 0x0, 0x0, 0x20, 0x0, 0xc5,
- 0x55, 0x58, 0x55, 0x57, 0x80, 0x0, 0xc0, 0x6,
- 0x50, 0xc, 0x0, 0x0, 0x0, 0xc3, 0x59, 0x85,
- 0x5d, 0x5a, 0x50, 0x0, 0xb0, 0x5, 0x50, 0xb,
- 0x0, 0x0, 0x0, 0xb0, 0x6, 0x86, 0x5c, 0x0,
- 0x0, 0x1, 0xa0, 0x3, 0x1b, 0x4, 0x0, 0x0,
- 0x2, 0x90, 0xa5, 0x5c, 0x55, 0x5c, 0x0, 0x5,
- 0x60, 0xb0, 0xb, 0x0, 0xb, 0x0, 0x8, 0x10,
- 0xb0, 0xb, 0x0, 0xb, 0x0, 0x7, 0x0, 0xb0,
- 0xb, 0x3, 0xba, 0x0, 0x22, 0x0, 0x30, 0xb,
- 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0,
- 0x0, 0x0,
-
- /* U+5E2F "帯" */
- 0x0, 0x0, 0x0, 0x12, 0x0, 0x0, 0x0, 0x0,
- 0x5, 0x20, 0x37, 0x0, 0x80, 0x0, 0x3, 0x5a,
- 0x75, 0x79, 0x55, 0xd8, 0xc0, 0x0, 0x7, 0x30,
- 0x36, 0x0, 0xb0, 0x0, 0x0, 0x9, 0x75, 0x68,
- 0x55, 0xc0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0,
- 0x20, 0x40, 0x4, 0x85, 0x55, 0x78, 0x55, 0x56,
- 0xd1, 0xb, 0x22, 0x0, 0x37, 0x0, 0x24, 0x0,
- 0x0, 0xc, 0x55, 0x79, 0x55, 0xa5, 0x0, 0x0,
- 0xb, 0x0, 0x36, 0x0, 0x73, 0x0, 0x0, 0xb,
- 0x0, 0x36, 0x0, 0x73, 0x0, 0x0, 0xb, 0x0,
- 0x36, 0x16, 0xd2, 0x0, 0x0, 0x1, 0x0, 0x36,
- 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x11, 0x0,
- 0x0, 0x0,
-
- /* U+5E30 "帰" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0,
- 0xb, 0x14, 0x65, 0x55, 0x5c, 0x20, 0x0, 0xb,
- 0x0, 0x0, 0x0, 0xb, 0x0, 0x3, 0xb, 0x2,
- 0x65, 0x55, 0x5c, 0x0, 0xa, 0xb, 0x3, 0x55,
- 0x55, 0x5c, 0x0, 0xa, 0xb, 0x3, 0x0, 0x0,
- 0x3, 0x20, 0xa, 0xb, 0x48, 0x55, 0xb5, 0x55,
- 0xd2, 0xa, 0xb, 0x82, 0x0, 0xb0, 0x3, 0x20,
- 0x2, 0x19, 0x9, 0x65, 0xc5, 0x5d, 0x10, 0x0,
- 0x55, 0x9, 0x20, 0xb0, 0xb, 0x0, 0x0, 0x80,
- 0x9, 0x20, 0xb0, 0xb, 0x0, 0x1, 0x70, 0x9,
- 0x20, 0xb1, 0x7d, 0x0, 0x5, 0x0, 0x3, 0x0,
- 0xb0, 0x24, 0x0, 0x1, 0x0, 0x0, 0x0, 0x40,
- 0x0, 0x0,
-
- /* U+5E33 "帳" */
- 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1d, 0x0, 0xb, 0x55, 0x58, 0x50, 0x0, 0x1b,
- 0x0, 0xb, 0x0, 0x4, 0x0, 0xb, 0x5d, 0x5c,
- 0xc, 0x55, 0x56, 0x0, 0xb, 0x1b, 0xb, 0xb,
- 0x0, 0x6, 0x0, 0xb, 0x1b, 0xb, 0xc, 0x55,
- 0x55, 0x10, 0xb, 0x1b, 0xb, 0x5c, 0x55, 0x55,
- 0xb1, 0xb, 0x1b, 0xb, 0x28, 0x13, 0x1, 0x10,
- 0xb, 0x1b, 0xb, 0x28, 0x7, 0xa, 0x60, 0xa,
- 0x1c, 0x96, 0x28, 0x6, 0x82, 0x0, 0x0, 0x1b,
- 0x0, 0x28, 0x0, 0xb1, 0x0, 0x0, 0x1b, 0x0,
- 0x2a, 0x72, 0x3d, 0x30, 0x0, 0x1c, 0x0, 0x3c,
- 0x10, 0x4, 0xb2, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5E36 "帶" */
- 0x0, 0x3, 0x2, 0x2, 0x2, 0x0, 0x0, 0x0,
- 0xb, 0x1a, 0x1a, 0x2a, 0x30, 0x0, 0x3, 0x5d,
- 0x5c, 0x5c, 0x5b, 0x6d, 0x70, 0x0, 0xb, 0xa,
- 0xa, 0x9, 0x10, 0x30, 0x0, 0x64, 0xa, 0x5c,
- 0x9, 0x65, 0xa0, 0x4, 0x20, 0x4, 0x3, 0x1,
- 0x44, 0x20, 0x6, 0x55, 0x55, 0x86, 0x55, 0x58,
- 0xc0, 0xd, 0x0, 0x0, 0x92, 0x0, 0x36, 0x10,
- 0x14, 0x49, 0x55, 0xb6, 0x55, 0xd0, 0x0, 0x0,
- 0x46, 0x0, 0x91, 0x0, 0xb0, 0x0, 0x0, 0x46,
- 0x0, 0x91, 0x0, 0xb0, 0x0, 0x0, 0x45, 0x0,
- 0x91, 0x28, 0xa0, 0x0, 0x0, 0x0, 0x0, 0x91,
- 0x2, 0x20, 0x0, 0x0, 0x0, 0x0, 0x30, 0x0,
- 0x0, 0x0,
-
- /* U+5E38 "常" */
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x5,
- 0x70, 0xc, 0x5, 0x90, 0x0, 0x0, 0xb, 0x10,
- 0xb0, 0x80, 0x0, 0x0, 0x85, 0x55, 0x59, 0x65,
- 0x55, 0xe1, 0x67, 0x2, 0x0, 0x0, 0x30, 0x53,
- 0x5, 0x10, 0x96, 0x55, 0x5c, 0x10, 0x0, 0x0,
- 0x9, 0x20, 0x0, 0xb0, 0x0, 0x0, 0x0, 0x86,
- 0x5c, 0x58, 0x0, 0x0, 0x0, 0x95, 0x55, 0xc5,
- 0x57, 0x60, 0x0, 0xc, 0x0, 0xb, 0x0, 0x56,
- 0x0, 0x0, 0xc0, 0x0, 0xb0, 0x5, 0x60, 0x0,
- 0xc, 0x0, 0xb, 0x7, 0xc4, 0x0, 0x0, 0x30,
- 0x0, 0xb0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x2,
- 0x0, 0x0, 0x0,
-
- /* U+5E45 "幅" */
- 0x0, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc,
- 0x0, 0x55, 0x55, 0x55, 0xa1, 0x0, 0xa0, 0x1,
- 0x0, 0x0, 0x0, 0xa, 0x5c, 0x5b, 0x9, 0x55,
- 0x5c, 0x0, 0xa0, 0xa0, 0xa0, 0xb0, 0x0, 0xb0,
- 0xa, 0xa, 0xa, 0xc, 0x55, 0x5b, 0x0, 0xa0,
- 0xa0, 0xa0, 0x70, 0x0, 0x40, 0xa, 0xa, 0xa,
- 0x95, 0x59, 0x55, 0xb0, 0xa0, 0xa0, 0xa9, 0x0,
- 0xa0, 0x1a, 0xb, 0xa, 0x78, 0x95, 0x5c, 0x55,
- 0xa0, 0x30, 0xa1, 0x9, 0x0, 0xa0, 0x1a, 0x0,
- 0xb, 0x0, 0x95, 0x5c, 0x55, 0xa0, 0x0, 0xb0,
- 0xa, 0x0, 0x0, 0x1a, 0x0, 0x2, 0x0, 0x10,
- 0x0, 0x0, 0x0,
-
- /* U+5E73 "平" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
- 0x55, 0x55, 0x55, 0x55, 0x8b, 0x0, 0x0, 0x10,
- 0x0, 0xa2, 0x0, 0x30, 0x0, 0x0, 0x9, 0x0,
- 0xa2, 0x4, 0xd1, 0x0, 0x0, 0x6, 0xb0, 0xa2,
- 0x9, 0x10, 0x0, 0x0, 0x0, 0xb0, 0xa2, 0x42,
- 0x0, 0x0, 0x36, 0x55, 0x55, 0xc7, 0x65, 0x5a,
- 0x90, 0x0, 0x0, 0x0, 0xa2, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa2, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xa3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa2,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5E74 "年" */
- 0x0, 0x1, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x7, 0xa0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd,
- 0x65, 0x55, 0x55, 0x5c, 0x60, 0x0, 0x74, 0x0,
- 0xd, 0x0, 0x0, 0x0, 0x3, 0x60, 0x0, 0xd,
- 0x0, 0x0, 0x0, 0x4, 0x8, 0x55, 0x5d, 0x55,
- 0xa7, 0x0, 0x0, 0xd, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0x0, 0xd, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0xd, 0x0, 0x2, 0x80, 0x17,
- 0x55, 0x55, 0x5d, 0x55, 0x55, 0x51, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0,
- 0x0, 0x0,
-
- /* U+5E78 "幸" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa3, 0x0, 0x0, 0x0, 0x0, 0x16,
- 0x55, 0xc6, 0x58, 0x90, 0x0, 0x0, 0x0, 0x0,
- 0xa1, 0x0, 0x0, 0x0, 0x5, 0x55, 0x55, 0xb6,
- 0x55, 0x6d, 0x30, 0x0, 0x0, 0x52, 0x0, 0x83,
- 0x0, 0x0, 0x0, 0x0, 0x1c, 0x0, 0xa0, 0x0,
- 0x0, 0x0, 0x65, 0x57, 0x68, 0x65, 0xc3, 0x0,
- 0x0, 0x0, 0x0, 0xa1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa1, 0x0, 0x7, 0x50, 0x26, 0x55,
- 0x55, 0xc6, 0x55, 0x55, 0x40, 0x0, 0x0, 0x0,
- 0xa1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa2,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x30, 0x0,
- 0x0, 0x0,
-
- /* U+5E7E "幾" */
- 0x0, 0x0, 0x10, 0x13, 0x0, 0x20, 0x0, 0x0,
- 0x4, 0xa0, 0x1a, 0x4, 0xa0, 0x0, 0x0, 0x18,
- 0x2, 0xa, 0x18, 0x3, 0x0, 0x1, 0xb6, 0x6b,
- 0x1b, 0xa8, 0x5c, 0x30, 0x0, 0x32, 0x80, 0xa,
- 0x10, 0x82, 0x0, 0x0, 0x36, 0x28, 0xb, 0x3a,
- 0x47, 0x60, 0x0, 0x99, 0x67, 0x3a, 0x2a, 0x30,
- 0x90, 0x0, 0x3, 0x90, 0x9, 0x12, 0x73, 0x40,
- 0x5, 0x58, 0x95, 0x59, 0x85, 0x57, 0x60, 0x0,
- 0x9, 0x80, 0x2, 0x90, 0xaa, 0x0, 0x0, 0x9,
- 0x3c, 0x0, 0xbb, 0x70, 0x2, 0x0, 0x71, 0x3,
- 0x4, 0xac, 0x40, 0x24, 0x5, 0x20, 0x4, 0x73,
- 0x1, 0x9c, 0xc4, 0x1, 0x0, 0x30, 0x0, 0x0,
- 0x1, 0x52,
-
- /* U+5E83 "広" */
- 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc2, 0x0, 0x0, 0x0, 0x20, 0x0,
- 0x5, 0x30, 0x8, 0x20, 0x9, 0x85, 0x55, 0x55,
- 0x55, 0x53, 0x0, 0x94, 0x0, 0x4, 0x20, 0x0,
- 0x0, 0x9, 0x30, 0x0, 0xb7, 0x0, 0x0, 0x0,
- 0xa3, 0x0, 0x2d, 0x0, 0x0, 0x0, 0xb, 0x10,
- 0x8, 0x40, 0x0, 0x0, 0x0, 0xc0, 0x1, 0xa0,
- 0x0, 0x0, 0x0, 0xa, 0x0, 0x82, 0x0, 0x19,
- 0x10, 0x3, 0x50, 0x46, 0x0, 0x0, 0x3d, 0x10,
- 0x70, 0x2e, 0x99, 0x98, 0x87, 0xc8, 0x15, 0x0,
- 0x84, 0x10, 0x0, 0x2, 0x61, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+5E86 "庆" */
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x1d, 0x0, 0x0, 0x0, 0x0, 0x85,
- 0x55, 0x5c, 0x55, 0x5b, 0x80, 0x0, 0xc0, 0x0,
- 0x7, 0x10, 0x0, 0x0, 0x0, 0xc0, 0x0, 0xd,
- 0x0, 0x0, 0x0, 0x0, 0xc0, 0x0, 0xc, 0x0,
- 0x0, 0x10, 0x0, 0xc3, 0x65, 0x5d, 0x65, 0x57,
- 0x80, 0x0, 0xc0, 0x0, 0xc, 0x50, 0x0, 0x0,
- 0x0, 0xc0, 0x0, 0x29, 0x71, 0x0, 0x0, 0x1,
- 0xa0, 0x0, 0x84, 0x19, 0x0, 0x0, 0x5, 0x60,
- 0x1, 0xb0, 0x7, 0x70, 0x0, 0x8, 0x0, 0x29,
- 0x10, 0x0, 0xab, 0x30, 0x24, 0x5, 0x60, 0x0,
- 0x0, 0x8, 0x91, 0x10, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5E95 "底" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2d, 0x0, 0x0, 0x0, 0x0, 0xb5,
- 0x55, 0x5b, 0x55, 0x5a, 0x70, 0x0, 0xd0, 0x0,
- 0x0, 0x0, 0x40, 0x0, 0x0, 0xd0, 0x42, 0x47,
- 0x9b, 0xb5, 0x0, 0x0, 0xd0, 0xc3, 0x15, 0x80,
- 0x0, 0x0, 0x0, 0xd0, 0xc0, 0x2, 0xa0, 0x2,
- 0x0, 0x0, 0xd0, 0xc5, 0x55, 0xd5, 0x59, 0x40,
- 0x0, 0xb0, 0xc0, 0x0, 0xb1, 0x0, 0x0, 0x2,
- 0x80, 0xc0, 0x0, 0x77, 0x0, 0x0, 0x6, 0x30,
- 0xc1, 0x75, 0xd, 0x20, 0x50, 0x8, 0x0, 0xdb,
- 0x38, 0x13, 0xd4, 0x90, 0x23, 0x0, 0x30, 0x5,
- 0x80, 0x2b, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x20,
-
- /* U+5E97 "店" */
- 0x0, 0x0, 0x0, 0x31, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x1d, 0x10, 0x0, 0x20, 0x0, 0x86,
- 0x55, 0x5a, 0x55, 0x58, 0xb1, 0x0, 0x93, 0x0,
- 0xa, 0x20, 0x0, 0x0, 0x0, 0x93, 0x0, 0xc,
- 0x0, 0x0, 0x0, 0x0, 0x93, 0x0, 0xc, 0x55,
- 0x5b, 0x40, 0x0, 0xa2, 0x0, 0xc, 0x0, 0x0,
- 0x0, 0x0, 0xa2, 0x0, 0xc, 0x0, 0x1, 0x0,
- 0x0, 0xc0, 0xb5, 0x58, 0x55, 0x5e, 0x0, 0x0,
- 0xc0, 0xb0, 0x0, 0x0, 0xd, 0x0, 0x3, 0x70,
- 0xb0, 0x0, 0x0, 0xd, 0x0, 0x7, 0x0, 0xb5,
- 0x55, 0x55, 0x5d, 0x0, 0x23, 0x0, 0xb0, 0x0,
- 0x0, 0x9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5E9C "府" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x1d, 0x0, 0x0, 0x10, 0x0, 0xa5,
- 0x55, 0x59, 0x55, 0x59, 0x90, 0x0, 0xc0, 0x2,
- 0x50, 0x0, 0x61, 0x0, 0x0, 0xc0, 0x8, 0x70,
- 0x0, 0xb0, 0x0, 0x0, 0xc0, 0xc, 0x0, 0x0,
- 0xb0, 0x60, 0x0, 0xc0, 0x7d, 0x26, 0x55, 0xc5,
- 0x51, 0x0, 0xb1, 0x9b, 0x12, 0x0, 0xb0, 0x0,
- 0x2, 0xa7, 0xb, 0x9, 0x50, 0xb0, 0x0, 0x4,
- 0x70, 0xb, 0x1, 0x90, 0xb0, 0x0, 0x7, 0x10,
- 0xb, 0x0, 0x0, 0xb0, 0x0, 0x8, 0x0, 0xb,
- 0x0, 0x0, 0xb0, 0x0, 0x32, 0x0, 0xb, 0x0,
- 0x39, 0xc0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x1,
- 0x20, 0x0,
-
- /* U+5EA6 "度" */
- 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x3c, 0x0, 0x1, 0x0, 0x0, 0xb5,
- 0x55, 0x58, 0x55, 0x59, 0x70, 0x0, 0xc0, 0x9,
- 0x30, 0xa, 0x20, 0x0, 0x0, 0xc4, 0x5b, 0x65,
- 0x5d, 0x5b, 0x40, 0x0, 0xc0, 0x9, 0x20, 0xb,
- 0x0, 0x0, 0x0, 0xc0, 0x9, 0x65, 0x5c, 0x0,
- 0x0, 0x0, 0xc0, 0x4, 0x0, 0x3, 0x20, 0x0,
- 0x0, 0xa0, 0x47, 0x55, 0x59, 0xb0, 0x0, 0x2,
- 0x70, 0x0, 0x70, 0x2c, 0x0, 0x0, 0x6, 0x20,
- 0x0, 0x29, 0xc1, 0x0, 0x0, 0x7, 0x0, 0x0,
- 0x6a, 0xb6, 0x10, 0x0, 0x23, 0x2, 0x67, 0x30,
- 0x7, 0xcd, 0x80, 0x10, 0x22, 0x0, 0x0, 0x0,
- 0x1, 0x0,
-
- /* U+5EA7 "座" */
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x4b, 0x0, 0x1, 0x0, 0x0, 0x95,
- 0x55, 0x5b, 0x55, 0x5d, 0x50, 0x0, 0xd0, 0x0,
- 0x3, 0x0, 0x0, 0x0, 0x0, 0xc0, 0x36, 0xa,
- 0x20, 0x81, 0x0, 0x0, 0xc0, 0x75, 0xa, 0x1,
- 0xd0, 0x0, 0x0, 0xc0, 0xa5, 0xa, 0x6, 0x94,
- 0x0, 0x0, 0xc2, 0x55, 0x9a, 0x8, 0x9, 0x70,
- 0x0, 0xb6, 0x0, 0x5a, 0x41, 0x21, 0x30, 0x1,
- 0x90, 0x65, 0x5c, 0x55, 0x86, 0x0, 0x5, 0x40,
- 0x0, 0xa, 0x0, 0x0, 0x0, 0x7, 0x0, 0x0,
- 0xa, 0x0, 0x0, 0x0, 0x14, 0x15, 0x55, 0x5c,
- 0x55, 0x5b, 0xa0, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5EAB "庫" */
- 0x0, 0x0, 0x0, 0x31, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0xd0, 0x0, 0x0, 0x0, 0x65, 0x55,
- 0x5a, 0x55, 0x5d, 0x30, 0x8, 0x30, 0x0, 0x28,
- 0x0, 0x0, 0x0, 0x83, 0x65, 0x56, 0xb5, 0x88,
- 0x0, 0x8, 0x30, 0x20, 0x19, 0x3, 0x0, 0x0,
- 0x92, 0xd, 0x56, 0xb5, 0xc2, 0x0, 0xa, 0x10,
- 0xc5, 0x6b, 0x5c, 0x10, 0x0, 0xa0, 0xb, 0x1,
- 0x90, 0xa1, 0x0, 0xa, 0x0, 0xc5, 0x6b, 0x59,
- 0x10, 0x3, 0x53, 0x55, 0x56, 0xb5, 0x5d, 0x50,
- 0x70, 0x1, 0x0, 0x19, 0x0, 0x0, 0x23, 0x0,
- 0x0, 0x2, 0xa0, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x12, 0x0, 0x0,
-
- /* U+5EAD "庭" */
- 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2c, 0x0, 0x3, 0x0, 0x2, 0xa5,
- 0x55, 0x58, 0x55, 0x59, 0x40, 0x2, 0xa0, 0x2,
- 0x0, 0x0, 0x48, 0x0, 0x2, 0xa6, 0x6e, 0x24,
- 0x5d, 0x53, 0x0, 0x2, 0xa0, 0x84, 0x0, 0xc,
- 0x0, 0x0, 0x2, 0x95, 0x82, 0x10, 0xc, 0x4,
- 0x10, 0x2, 0x97, 0x5b, 0x56, 0x5d, 0x55, 0x30,
- 0x3, 0x72, 0xb, 0x0, 0xc, 0x0, 0x0, 0x4,
- 0x53, 0x69, 0x0, 0xc, 0x0, 0x30, 0x7, 0x10,
- 0xd5, 0x26, 0x56, 0x55, 0x60, 0x7, 0x7, 0x68,
- 0x94, 0x10, 0x0, 0x0, 0x32, 0x74, 0x0, 0x28,
- 0xbd, 0xef, 0xa1, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5EB7 "康" */
- 0x0, 0x0, 0x0, 0x13, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa, 0x40, 0x1, 0x20, 0x0, 0xa5,
- 0x55, 0x57, 0x65, 0x58, 0x80, 0x0, 0xa1, 0x0,
- 0xc, 0x0, 0x20, 0x0, 0x0, 0xa1, 0x65, 0x5c,
- 0x55, 0xc3, 0x0, 0x0, 0xa5, 0x55, 0x5c, 0x55,
- 0xc7, 0xa0, 0x0, 0xb2, 0x0, 0xb, 0x0, 0xa0,
- 0x0, 0x0, 0xc0, 0x65, 0x5c, 0x65, 0xc1, 0x0,
- 0x0, 0xb0, 0x44, 0xb, 0x50, 0x2a, 0x20, 0x1,
- 0xa0, 0xb, 0x2c, 0x54, 0x83, 0x0, 0x5, 0x40,
- 0x7, 0x5b, 0xb, 0x20, 0x0, 0x8, 0x9, 0xa1,
- 0xb, 0x1, 0xc7, 0x20, 0x23, 0x5, 0x3, 0xba,
- 0x0, 0x9, 0x60, 0x10, 0x0, 0x0, 0x10, 0x0,
- 0x0, 0x0,
-
- /* U+5EE0 "廠" */
- 0x0, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc, 0x10, 0x1, 0x10, 0x0, 0x85,
- 0x55, 0x58, 0x55, 0x59, 0x80, 0x0, 0xb0, 0x2,
- 0x70, 0x2, 0x30, 0x0, 0x0, 0xb1, 0x63, 0xb2,
- 0x96, 0x60, 0x0, 0x0, 0xb0, 0x84, 0xb6, 0x9,
- 0x44, 0x60, 0x0, 0xb3, 0x66, 0xb6, 0x9a, 0x19,
- 0x20, 0x0, 0xa4, 0x61, 0x12, 0xb6, 0x19, 0x0,
- 0x0, 0xa4, 0x6b, 0x87, 0xa1, 0x59, 0x0, 0x0,
- 0x84, 0x69, 0x46, 0x90, 0xa6, 0x0, 0x4, 0x44,
- 0x69, 0x75, 0x90, 0xb4, 0x0, 0x6, 0x4, 0x60,
- 0x13, 0x95, 0x4b, 0x20, 0x4, 0x4, 0x30, 0x8,
- 0x73, 0x2, 0xc2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5EFA "建" */
- 0x0, 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0, 0x5, 0x57,
- 0xa2, 0x55, 0xc5, 0x5b, 0x0, 0x0, 0xa, 0x20,
- 0x0, 0xb0, 0xb, 0x20, 0x0, 0x48, 0x15, 0x55,
- 0xc5, 0x5d, 0x70, 0x0, 0xa0, 0x1, 0x22, 0xb2,
- 0x2b, 0x0, 0x5, 0x85, 0xd2, 0x33, 0xc3, 0x35,
- 0x0, 0x0, 0x0, 0xa2, 0x55, 0xc5, 0x86, 0x0,
- 0x1, 0x33, 0x70, 0x0, 0xb0, 0x0, 0x0, 0x0,
- 0x77, 0x45, 0x55, 0xc5, 0x57, 0x70, 0x0, 0x2d,
- 0x0, 0x0, 0xb0, 0x0, 0x0, 0x0, 0x77, 0xb5,
- 0x10, 0xa0, 0x0, 0x0, 0x5, 0x20, 0x17, 0xbc,
- 0xcc, 0xde, 0xc1, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5EFF "廿" */
- 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc2, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0,
- 0xc0, 0x0, 0xc, 0x0, 0x0, 0x0, 0x0, 0xc0,
- 0x0, 0xc, 0x0, 0x0, 0x0, 0x0, 0xc0, 0x0,
- 0xc, 0x1, 0x60, 0x6, 0x55, 0xd5, 0x55, 0x5d,
- 0x56, 0x61, 0x0, 0x0, 0xc0, 0x0, 0xc, 0x0,
- 0x0, 0x0, 0x0, 0xc0, 0x0, 0xc, 0x0, 0x0,
- 0x0, 0x0, 0xc0, 0x0, 0xc, 0x0, 0x0, 0x0,
- 0x0, 0xc0, 0x0, 0xc, 0x0, 0x0, 0x0, 0x0,
- 0xc0, 0x0, 0xc, 0x0, 0x0, 0x0, 0x0, 0xc5,
- 0x55, 0x5c, 0x0, 0x0, 0x0, 0x0, 0xb0, 0x0,
- 0xb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5F0F "式" */
- 0x0, 0x0, 0x0, 0x1, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2, 0xc2, 0x81, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0xb0, 0x68, 0x0, 0x3, 0x55, 0x55,
- 0x56, 0xd5, 0x5b, 0xa0, 0x1, 0x10, 0x0, 0x0,
- 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0xc0,
- 0x0, 0x0, 0x3, 0x65, 0x85, 0xb3, 0xc0, 0x0,
- 0x0, 0x0, 0x0, 0xc0, 0x0, 0x93, 0x0, 0x0,
- 0x0, 0x0, 0xc0, 0x0, 0x58, 0x0, 0x0, 0x0,
- 0x0, 0xc0, 0x0, 0xd, 0x0, 0x30, 0x0, 0x0,
- 0xd6, 0x64, 0x8, 0x80, 0x60, 0x8, 0xba, 0x61,
- 0x0, 0x0, 0xc8, 0x90, 0x5, 0x20, 0x0, 0x0,
- 0x0, 0xa, 0xf1, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x11,
-
- /* U+5F15 "引" */
- 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x55, 0x55,
- 0x59, 0x0, 0xb4, 0x1, 0x0, 0x2, 0x90, 0xa,
- 0x10, 0x0, 0x0, 0x29, 0x0, 0xa1, 0x6, 0x75,
- 0x56, 0xa0, 0xa, 0x10, 0x93, 0x0, 0x12, 0x0,
- 0xa1, 0xc, 0x0, 0x0, 0x0, 0xa, 0x12, 0xc5,
- 0x55, 0x5d, 0x10, 0xa1, 0x0, 0x0, 0x0, 0xa0,
- 0xa, 0x10, 0x0, 0x0, 0x47, 0x0, 0xa1, 0x0,
- 0x0, 0x8, 0x40, 0xa, 0x10, 0x2, 0x54, 0xd0,
- 0x0, 0xa1, 0x0, 0x4, 0xe4, 0x0, 0xb, 0x20,
- 0x0, 0x0, 0x0, 0x0, 0x10,
-
- /* U+5F1F "弟" */
- 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0,
- 0x94, 0x0, 0xd, 0x30, 0x0, 0x0, 0x1, 0xb0,
- 0x6, 0x30, 0x0, 0x0, 0x46, 0x55, 0x58, 0x75,
- 0x5d, 0x0, 0x0, 0x0, 0x1, 0xa0, 0x0, 0xc0,
- 0x0, 0x8, 0x55, 0x6c, 0x55, 0x5c, 0x0, 0x1,
- 0xb0, 0x1, 0xa0, 0x0, 0x60, 0x0, 0x76, 0x0,
- 0x1a, 0x0, 0x0, 0x40, 0x6, 0x55, 0x6f, 0xc5,
- 0x55, 0x7c, 0x0, 0x0, 0xb, 0x5a, 0x0, 0x4,
- 0x80, 0x0, 0x9, 0x41, 0xa0, 0x0, 0x75, 0x0,
- 0x18, 0x20, 0x1a, 0x5, 0xad, 0x20, 0x35, 0x0,
- 0x2, 0xb0, 0x4, 0x30, 0x0, 0x0, 0x0, 0x1,
- 0x0, 0x0, 0x0,
-
- /* U+5F31 "弱" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x36,
- 0x55, 0xb3, 0x56, 0x55, 0xc1, 0x0, 0x0, 0xa,
- 0x10, 0x0, 0xb, 0x0, 0x3, 0x0, 0xa1, 0x14,
- 0x22, 0xc0, 0x0, 0xc5, 0x59, 0x13, 0x92, 0x27,
- 0x0, 0x1a, 0x0, 0x0, 0x65, 0x0, 0x10, 0x4,
- 0x95, 0x5c, 0x3a, 0x65, 0x5a, 0x60, 0x4, 0x10,
- 0xb0, 0x5, 0x10, 0x75, 0x0, 0x1c, 0xb, 0x0,
- 0x2b, 0x7, 0x50, 0x0, 0x24, 0xc0, 0x0, 0x45,
- 0x84, 0x2, 0x87, 0xb, 0x3, 0x86, 0x8, 0x40,
- 0xc3, 0x0, 0xb0, 0xa2, 0x10, 0xb2, 0x0, 0x6,
- 0xd6, 0x0, 0x3, 0xcc, 0x0, 0x0, 0x2, 0x0,
- 0x0, 0x1, 0x0,
-
- /* U+5F35 "張" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5,
- 0x55, 0x92, 0x75, 0x55, 0x5b, 0x20, 0x0, 0x0,
- 0xa1, 0x91, 0x0, 0x1, 0x0, 0x0, 0x0, 0xa1,
- 0x96, 0x55, 0x67, 0x0, 0x8, 0x55, 0xc1, 0x91,
- 0x0, 0x5, 0x0, 0xc, 0x0, 0x30, 0x96, 0x55,
- 0x55, 0x0, 0xb, 0x0, 0x2, 0xa4, 0x33, 0x35,
- 0x60, 0x3c, 0x55, 0x96, 0xc2, 0x72, 0x23, 0x20,
- 0x0, 0x0, 0xa2, 0xb0, 0x51, 0x2c, 0x20, 0x0,
- 0x0, 0xb0, 0xb0, 0x19, 0x60, 0x0, 0x0, 0x0,
- 0xb0, 0xb0, 0x7, 0x50, 0x0, 0x2, 0x14, 0x80,
- 0xb5, 0x60, 0xb7, 0x0, 0x0, 0xaf, 0x20, 0xd7,
- 0x0, 0x1b, 0x90, 0x0, 0x1, 0x0, 0x10, 0x0,
- 0x0, 0x0,
-
- /* U+5F37 "強" */
- 0x0, 0x0, 0x0, 0x0, 0x31, 0x0, 0x1, 0x55,
- 0x5a, 0x20, 0xc, 0x50, 0x0, 0x0, 0x0, 0xa0,
- 0x7, 0x30, 0x10, 0x0, 0x0, 0xa, 0x6, 0x20,
- 0x1, 0xa3, 0x9, 0x55, 0xc4, 0xd9, 0x88, 0x44,
- 0xc0, 0xb0, 0x2, 0x0, 0x2, 0xa0, 0x1, 0xa,
- 0x0, 0x0, 0xa5, 0x6b, 0x5b, 0x14, 0xb5, 0x59,
- 0x3b, 0x2, 0x90, 0xb0, 0x0, 0x0, 0xb1, 0xb0,
- 0x29, 0xb, 0x0, 0x0, 0xc, 0xc, 0x56, 0xb5,
- 0xb0, 0x0, 0x1, 0xb0, 0x0, 0x29, 0x5, 0x0,
- 0x20, 0x77, 0x1, 0x25, 0xb5, 0x87, 0x0, 0xad,
- 0x2, 0xd8, 0x53, 0x0, 0xb0, 0x1, 0x10, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+5F53 "当" */
- 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xa, 0x50, 0x2, 0x0, 0x4, 0x80, 0xa, 0x10,
- 0x4e, 0x10, 0x0, 0x7a, 0xa, 0x10, 0xb2, 0x0,
- 0x0, 0x5, 0xa, 0x16, 0x10, 0x0, 0x16, 0x55,
- 0x5b, 0x65, 0x55, 0xb2, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd0,
- 0x3, 0x55, 0x55, 0x55, 0x55, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd0,
- 0x46, 0x55, 0x55, 0x55, 0x55, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x20,
-
- /* U+5F62 "形" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
- 0x55, 0x55, 0x5b, 0x50, 0x1d, 0x10, 0x0, 0xc,
- 0x0, 0xb0, 0x0, 0x95, 0x0, 0x0, 0xc, 0x0,
- 0xb0, 0x5, 0x50, 0x0, 0x0, 0xc, 0x0, 0xb0,
- 0x24, 0x0, 0x0, 0x0, 0xc, 0x0, 0xb4, 0x40,
- 0xa, 0x70, 0x5, 0x5d, 0x55, 0xc5, 0x40, 0x79,
- 0x0, 0x0, 0xc, 0x0, 0xb0, 0x7, 0x60, 0x0,
- 0x0, 0x1a, 0x0, 0xb0, 0x63, 0x0, 0x40, 0x0,
- 0x56, 0x0, 0xb0, 0x0, 0x8, 0xd1, 0x0, 0x91,
- 0x0, 0xb0, 0x0, 0x79, 0x0, 0x2, 0x60, 0x0,
- 0xb0, 0x8, 0x50, 0x0, 0x6, 0x0, 0x0, 0x73,
- 0x72, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0,
- 0x0, 0x0,
-
- /* U+5F71 "影" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
- 0x95, 0x55, 0x5c, 0x0, 0x8, 0x50, 0x1, 0xa0,
- 0x0, 0xb, 0x0, 0x3b, 0x0, 0x1, 0xb5, 0x55,
- 0x5b, 0x1, 0x90, 0x0, 0x1, 0xb5, 0x85, 0x5a,
- 0x15, 0x0, 0x10, 0x2, 0x22, 0xb2, 0x26, 0x40,
- 0x2, 0xe1, 0x4, 0x53, 0x33, 0x37, 0x20, 0xb,
- 0x20, 0x0, 0xc5, 0x55, 0x6b, 0x0, 0x91, 0x0,
- 0x0, 0xa0, 0x0, 0x1a, 0x16, 0x0, 0x33, 0x0,
- 0x95, 0xc5, 0x67, 0x0, 0x1, 0xd5, 0x0, 0x66,
- 0xb3, 0x60, 0x0, 0x2b, 0x20, 0x1, 0x90, 0xb0,
- 0x77, 0x4, 0x91, 0x0, 0x6, 0x17, 0xd0, 0x3,
- 0x64, 0x0, 0x0, 0x0, 0x0, 0x10, 0x2, 0x0,
- 0x0, 0x0,
-
- /* U+5F79 "役" */
- 0x0, 0x1, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xa, 0x80, 0x2a, 0x55, 0xc0, 0x0, 0x0, 0x49,
- 0x0, 0x29, 0x0, 0xb0, 0x0, 0x2, 0x80, 0x20,
- 0x47, 0x0, 0xb0, 0x0, 0x4, 0x3, 0xe1, 0x82,
- 0x0, 0xc0, 0x10, 0x0, 0xc, 0x24, 0x50, 0x0,
- 0x68, 0x83, 0x0, 0x8c, 0x23, 0x55, 0x55, 0x78,
- 0x0, 0x5, 0x4c, 0x0, 0x5, 0x0, 0x93, 0x0,
- 0x13, 0xc, 0x0, 0x6, 0x1, 0xb0, 0x0, 0x0,
- 0xc, 0x0, 0x1, 0x8a, 0x30, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0xbb, 0x0, 0x0, 0x0, 0xc, 0x0,
- 0x19, 0x57, 0xa2, 0x0, 0x0, 0xc, 0x5, 0x71,
- 0x0, 0x4c, 0xc1, 0x0, 0x3, 0x20, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5F7C "彼" */
- 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0,
- 0xd, 0x20, 0x0, 0xc, 0x0, 0x0, 0x0, 0x57,
- 0x0, 0x30, 0xb, 0x0, 0x40, 0x1, 0x90, 0x30,
- 0xd5, 0x5c, 0x57, 0xc1, 0x6, 0x6, 0xb0, 0xb0,
- 0xb, 0x5, 0x0, 0x0, 0xc, 0x10, 0xb0, 0xb,
- 0x0, 0x0, 0x0, 0x8b, 0x0, 0xc6, 0x58, 0x5c,
- 0x20, 0x4, 0x5b, 0x0, 0xa1, 0x40, 0x1a, 0x0,
- 0x3, 0xb, 0x2, 0x90, 0x80, 0x83, 0x0, 0x0,
- 0xb, 0x5, 0x50, 0x65, 0xa0, 0x0, 0x0, 0xb,
- 0x8, 0x0, 0x1f, 0x20, 0x0, 0x0, 0xb, 0x16,
- 0x3, 0x94, 0xb5, 0x0, 0x0, 0xb, 0x53, 0x53,
- 0x0, 0x1a, 0xc1, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5F80 "往" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x6, 0x90, 0x4, 0x70, 0x0, 0x0, 0x0, 0x1b,
- 0x0, 0x0, 0xb3, 0x0, 0x0, 0x0, 0x71, 0x0,
- 0x0, 0x20, 0x6, 0x10, 0x4, 0x2, 0xa5, 0x55,
- 0xd5, 0x55, 0x30, 0x0, 0xa, 0x60, 0x0, 0xc0,
- 0x0, 0x0, 0x0, 0x4d, 0x0, 0x0, 0xc0, 0x0,
- 0x0, 0x1, 0x9c, 0x1, 0x55, 0xd5, 0x5a, 0x10,
- 0x7, 0xc, 0x0, 0x0, 0xc0, 0x0, 0x0, 0x10,
- 0xc, 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0xc0, 0x0, 0x50, 0x0, 0xc, 0x36, 0x55,
- 0x75, 0x56, 0x71, 0x0, 0x3, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5F85 "待" */
- 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0,
- 0x7, 0x90, 0x0, 0xc2, 0x0, 0x0, 0x0, 0x1b,
- 0x0, 0x0, 0xc0, 0x5, 0x0, 0x0, 0x91, 0x32,
- 0x55, 0xd5, 0x55, 0x0, 0x5, 0x13, 0xd0, 0x0,
- 0xc0, 0x0, 0x0, 0x0, 0xb, 0x47, 0x55, 0x95,
- 0x55, 0xa1, 0x0, 0x6d, 0x0, 0x0, 0x0, 0xa1,
- 0x0, 0x2, 0x6c, 0x5, 0x55, 0x55, 0xd5, 0xb0,
- 0x4, 0xc, 0x0, 0x30, 0x0, 0xb0, 0x0, 0x0,
- 0xc, 0x0, 0x3a, 0x0, 0xb0, 0x0, 0x0, 0xc,
- 0x0, 0xa, 0x0, 0xb0, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0x0, 0xb0, 0x0, 0x0, 0xc, 0x0, 0x0,
- 0x5b, 0xc0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x2,
- 0x10, 0x0,
-
- /* U+5F88 "很" */
- 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0x40, 0x75, 0x55, 0x59, 0x0, 0x0, 0x47,
- 0x0, 0xb0, 0x0, 0xb, 0x0, 0x0, 0x80, 0x30,
- 0xb0, 0x0, 0xb, 0x0, 0x5, 0x3, 0xc0, 0xb5,
- 0x55, 0x5b, 0x0, 0x0, 0xa, 0x20, 0xb0, 0x0,
- 0xb, 0x0, 0x0, 0x4c, 0x0, 0xb5, 0x65, 0x5b,
- 0x0, 0x0, 0x8b, 0x0, 0xb0, 0x60, 0x8, 0x20,
- 0x6, 0xb, 0x0, 0xb0, 0x61, 0x67, 0x10, 0x0,
- 0xb, 0x0, 0xb0, 0xb, 0x10, 0x0, 0x0, 0xb,
- 0x0, 0xb0, 0x6, 0x80, 0x0, 0x0, 0xb, 0x0,
- 0xb6, 0x71, 0x7c, 0x40, 0x0, 0xc, 0x0, 0xb5,
- 0x0, 0x3, 0x81, 0x0, 0x2, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5F8B "律" */
- 0x0, 0x4, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0,
- 0x4b, 0x0, 0x0, 0xd0, 0x0, 0x0, 0x0, 0xa1,
- 0x3, 0x55, 0xd5, 0x5a, 0x10, 0x5, 0x24, 0x50,
- 0x0, 0xc0, 0xc, 0x0, 0x2, 0xb, 0x66, 0x55,
- 0xd5, 0x5d, 0xa3, 0x0, 0x3b, 0x0, 0x0, 0xc0,
- 0xc, 0x0, 0x0, 0xba, 0x4, 0x65, 0xd5, 0x5b,
- 0x0, 0x6, 0x3a, 0x0, 0x0, 0xc0, 0x4, 0x0,
- 0x2, 0x1a, 0x5, 0x55, 0xd5, 0x56, 0x20, 0x0,
- 0x1a, 0x0, 0x0, 0xc0, 0x0, 0x60, 0x0, 0x1a,
- 0x56, 0x55, 0xd5, 0x55, 0x51, 0x0, 0x1a, 0x0,
- 0x0, 0xc0, 0x0, 0x0, 0x0, 0x2a, 0x0, 0x0,
- 0xd0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x40,
- 0x0, 0x0,
-
- /* U+5F8C "後" */
- 0x0, 0x0, 0x10, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x7, 0xb0, 0x0, 0xd3, 0x0, 0x0, 0x0, 0x2b,
- 0x0, 0x9, 0x20, 0x97, 0x0, 0x1, 0x90, 0x31,
- 0xd8, 0x59, 0x70, 0x0, 0x6, 0x3, 0xd1, 0x41,
- 0x83, 0x31, 0x0, 0x0, 0xb, 0x20, 0x58, 0x0,
- 0x2c, 0x20, 0x0, 0x8d, 0x4, 0xcc, 0x85, 0x35,
- 0x70, 0x6, 0x5c, 0x0, 0xc, 0x20, 0x12, 0x0,
- 0x12, 0xc, 0x0, 0x89, 0x55, 0xaa, 0x0, 0x0,
- 0xc, 0x4, 0x54, 0x21, 0xc0, 0x0, 0x0, 0xc,
- 0x13, 0x0, 0x9b, 0x20, 0x0, 0x0, 0xc, 0x0,
- 0x1, 0xab, 0x40, 0x0, 0x0, 0xc, 0x2, 0x77,
- 0x10, 0x7d, 0xa2, 0x0, 0x3, 0x22, 0x0, 0x0,
- 0x0, 0x20,
-
- /* U+5F92 "徒" */
- 0x0, 0x2, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0,
- 0xc, 0x40, 0x0, 0xa4, 0x0, 0x0, 0x0, 0x58,
- 0x0, 0x0, 0x92, 0x3, 0x0, 0x1, 0x90, 0x42,
- 0x65, 0xb7, 0x57, 0x40, 0x6, 0x5, 0xc0, 0x0,
- 0x92, 0x0, 0x0, 0x0, 0xc, 0x20, 0x0, 0x92,
- 0x1, 0x70, 0x0, 0x7c, 0x16, 0x55, 0xb8, 0x55,
- 0x51, 0x3, 0x8c, 0x0, 0xa0, 0x92, 0x0, 0x0,
- 0x15, 0xc, 0x1, 0xb0, 0x97, 0x59, 0x50, 0x0,
- 0xc, 0x3, 0xa0, 0x92, 0x0, 0x0, 0x0, 0xc,
- 0x7, 0x35, 0x92, 0x0, 0x0, 0x0, 0xc, 0x7,
- 0x3, 0xd6, 0x10, 0x0, 0x0, 0xc, 0x40, 0x0,
- 0x6, 0xbe, 0xe3, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5F93 "従" */
- 0x0, 0x0, 0x20, 0x0, 0x0, 0x1, 0x0, 0x0,
- 0x7, 0xc0, 0x73, 0x0, 0xb, 0x60, 0x0, 0x2b,
- 0x0, 0xd, 0x20, 0x29, 0x0, 0x0, 0x90, 0x20,
- 0x5, 0x40, 0x70, 0x0, 0x6, 0x1, 0xe4, 0x55,
- 0x55, 0x66, 0xc1, 0x0, 0x9, 0x60, 0x10, 0xc,
- 0x0, 0x0, 0x0, 0x4d, 0x0, 0x51, 0xc, 0x0,
- 0x0, 0x1, 0x8c, 0x0, 0xa4, 0xc, 0x2, 0x20,
- 0x5, 0xc, 0x0, 0xb1, 0xd, 0x55, 0x30, 0x0,
- 0xc, 0x0, 0xd1, 0xc, 0x0, 0x0, 0x0, 0xc,
- 0x2, 0x97, 0x1c, 0x0, 0x0, 0x0, 0xc, 0x7,
- 0x10, 0xac, 0x0, 0x0, 0x0, 0xc, 0x23, 0x0,
- 0x7, 0xdc, 0xa3, 0x0, 0x2, 0x10, 0x0, 0x0,
- 0x2, 0x40,
-
- /* U+5F97 "得" */
- 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x5, 0xd0, 0x85, 0x55, 0x5b, 0x0, 0x0, 0x2b,
- 0x10, 0xb0, 0x0, 0x1a, 0x0, 0x1, 0x80, 0x42,
- 0xb5, 0x55, 0x6a, 0x0, 0x4, 0x0, 0xd5, 0xb0,
- 0x0, 0x1a, 0x0, 0x0, 0x8, 0x60, 0xc5, 0x55,
- 0x6a, 0x0, 0x0, 0x4d, 0x3, 0x65, 0x55, 0x58,
- 0x60, 0x3, 0x6c, 0x0, 0x10, 0x0, 0xc0, 0x0,
- 0x3, 0xc, 0x16, 0x55, 0x55, 0xd5, 0xc1, 0x0,
- 0xc, 0x0, 0x51, 0x0, 0xc0, 0x0, 0x0, 0xc,
- 0x0, 0x2c, 0x0, 0xc0, 0x0, 0x0, 0xc, 0x0,
- 0x5, 0x0, 0xc0, 0x0, 0x0, 0xc, 0x0, 0x0,
- 0x4a, 0xd0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x1,
- 0x10, 0x0,
-
- /* U+5F9E "從" */
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x8, 0xa0, 0x6b, 0x0, 0x5a, 0x0, 0x0, 0x2a,
- 0x0, 0x85, 0x0, 0x94, 0x0, 0x0, 0x80, 0x10,
- 0xa8, 0x30, 0xb7, 0x0, 0x5, 0x0, 0xe4, 0x61,
- 0xd5, 0x33, 0xc0, 0x0, 0x8, 0x55, 0x0, 0x15,
- 0x0, 0x40, 0x0, 0x4c, 0x0, 0x0, 0x9, 0x0,
- 0x0, 0x3, 0x7c, 0x0, 0xa3, 0xc, 0x0, 0x0,
- 0x13, 0xc, 0x0, 0xc0, 0xd, 0x59, 0x20, 0x0,
- 0xc, 0x0, 0xc0, 0xc, 0x0, 0x0, 0x0, 0xc,
- 0x1, 0xc7, 0xc, 0x0, 0x0, 0x0, 0xc, 0x6,
- 0x21, 0xad, 0x30, 0x0, 0x0, 0xc, 0x24, 0x0,
- 0x4, 0xae, 0xd4, 0x0, 0x1, 0x10, 0x0, 0x0,
- 0x0, 0x10,
-
- /* U+5FA1 "御" */
- 0x0, 0x1, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0xa, 0x50, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x48,
- 0x2, 0x80, 0x40, 0x63, 0x71, 0x2, 0x70, 0x37,
- 0x6b, 0x52, 0xc1, 0xb0, 0x4, 0x5, 0xa6, 0xa,
- 0x0, 0xb0, 0xa0, 0x0, 0xb, 0x15, 0x5b, 0x86,
- 0xb0, 0xa0, 0x0, 0x99, 0x0, 0xa, 0x0, 0xb0,
- 0xa0, 0x4, 0x49, 0xa, 0x1a, 0x31, 0xb0, 0xa0,
- 0x2, 0x19, 0xa, 0xb, 0x53, 0xb0, 0xa0, 0x0,
- 0x19, 0xa, 0xa, 0x0, 0xb0, 0xa0, 0x0, 0x19,
- 0xa, 0x1c, 0x52, 0xb6, 0xb0, 0x0, 0x19, 0x4d,
- 0x82, 0x0, 0xb0, 0x10, 0x0, 0x29, 0x1, 0x0,
- 0x0, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x10, 0x0,
-
- /* U+5FA9 "復" */
- 0x0, 0x0, 0x10, 0x3, 0x0, 0x0, 0x0, 0x0,
- 0x7, 0xc0, 0xd, 0x20, 0x0, 0x0, 0x0, 0x1b,
- 0x0, 0x6a, 0x55, 0x57, 0x90, 0x0, 0x91, 0x1,
- 0x72, 0x0, 0x3, 0x10, 0x6, 0x0, 0x94, 0xd,
- 0x55, 0x5b, 0x40, 0x0, 0x7, 0x80, 0xc, 0x55,
- 0x5b, 0x20, 0x0, 0x3c, 0x0, 0xb, 0x0, 0x9,
- 0x20, 0x1, 0x8b, 0x0, 0xa, 0xc5, 0x58, 0x10,
- 0x4, 0xb, 0x0, 0x8, 0x85, 0x5a, 0x10, 0x0,
- 0xb, 0x0, 0x45, 0x50, 0x6a, 0x0, 0x0, 0xb,
- 0x3, 0x30, 0x38, 0xb0, 0x0, 0x0, 0xb, 0x0,
- 0x0, 0x5c, 0x80, 0x0, 0x0, 0xb, 0x0, 0x47,
- 0x30, 0x6d, 0xa2, 0x0, 0x1, 0x2, 0x0, 0x0,
- 0x0, 0x20,
-
- /* U+5FC3 "心" */
- 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x7a, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x40, 0xe, 0x60, 0x0, 0x0, 0x0, 0x0, 0xc4,
- 0x5, 0x20, 0x0, 0x0, 0x0, 0x30, 0xb1, 0x0,
- 0x0, 0x21, 0x0, 0x0, 0x80, 0xb1, 0x0, 0x0,
- 0xb, 0x10, 0x3, 0xa0, 0xb1, 0x0, 0x0, 0x6,
- 0xb0, 0xd, 0x70, 0xb1, 0x0, 0x0, 0x42, 0xd0,
- 0x4, 0x0, 0xb1, 0x0, 0x0, 0x60, 0x10, 0x0,
- 0x0, 0xb2, 0x0, 0x3, 0x90, 0x0, 0x0, 0x0,
- 0x7d, 0xaa, 0xad, 0xc0, 0x0, 0x0, 0x0, 0x0,
- 0x11, 0x10, 0x0, 0x0,
-
- /* U+5FC5 "必" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x53, 0x0, 0x26, 0x0, 0x0, 0x0, 0x0,
- 0xb5, 0x7, 0x80, 0x0, 0x0, 0xc, 0x23, 0xb0,
- 0xc1, 0x0, 0x0, 0x0, 0xc0, 0x0, 0x49, 0x0,
- 0x0, 0x5, 0xc, 0x0, 0xb, 0x13, 0x20, 0x0,
- 0x80, 0xc0, 0x4, 0x80, 0xa, 0x10, 0x67, 0xc,
- 0x0, 0xb1, 0x0, 0x6a, 0xa, 0x20, 0xc0, 0x93,
- 0x0, 0x21, 0x70, 0x0, 0xc, 0x76, 0x0, 0x6,
- 0x0, 0x0, 0x0, 0xd5, 0x0, 0x1, 0xb0, 0x0,
- 0x16, 0x79, 0xdc, 0xcc, 0xdb, 0x0, 0x13, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5FD8 "忘" */
- 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x95, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2d, 0x0, 0x4, 0x70, 0x6, 0x55, 0xd5,
- 0x55, 0x55, 0x55, 0x50, 0x0, 0x0, 0xc0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x2, 0xd5, 0x55, 0x55, 0x7c,
- 0x0, 0x0, 0x0, 0x50, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x30, 0x2d, 0x10, 0x0, 0x0, 0x0,
- 0x40, 0x95, 0x9, 0x20, 0x19, 0x10, 0x0, 0xa0,
- 0x83, 0x0, 0x0, 0x45, 0xc0, 0x6, 0xc0, 0x83,
- 0x0, 0x0, 0x90, 0x70, 0x1, 0x0, 0x5c, 0xaa,
- 0xab, 0xb0, 0x0,
-
- /* U+5FD9 "忙" */
- 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x95, 0x0, 0x2, 0x90, 0x0, 0x0, 0x0, 0x92,
- 0x0, 0x0, 0x97, 0x0, 0x0, 0x0, 0x93, 0x0,
- 0x0, 0x22, 0x2, 0x60, 0x2, 0x9a, 0x85, 0xd5,
- 0x55, 0x55, 0x50, 0x9, 0x93, 0xa0, 0xc0, 0x0,
- 0x0, 0x0, 0x4a, 0x92, 0x0, 0xc0, 0x0, 0x0,
- 0x0, 0x21, 0x92, 0x0, 0xc0, 0x0, 0x0, 0x0,
- 0x0, 0x92, 0x0, 0xc0, 0x0, 0x0, 0x0, 0x0,
- 0x92, 0x0, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x92,
- 0x0, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x93, 0x0,
- 0xc0, 0x0, 0x4, 0x20, 0x0, 0xa3, 0x1, 0x85,
- 0x55, 0x55, 0x40, 0x0, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5FEB "快" */
- 0x0, 0x13, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0,
- 0x2c, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x0, 0x1a,
- 0x0, 0x0, 0xc0, 0x1, 0x0, 0x0, 0x1c, 0x3,
- 0x55, 0xd5, 0x5e, 0x10, 0x1, 0x3b, 0xb3, 0x0,
- 0xc0, 0xc, 0x0, 0x7, 0x4a, 0x35, 0x0, 0xc0,
- 0xc, 0x0, 0xd, 0x2a, 0x0, 0x0, 0xb0, 0xc,
- 0x20, 0x0, 0x1a, 0x26, 0x56, 0xc6, 0x59, 0x94,
- 0x0, 0x1a, 0x0, 0x6, 0x66, 0x0, 0x0, 0x0,
- 0x1a, 0x0, 0xb, 0x16, 0x20, 0x0, 0x0, 0x1a,
- 0x0, 0x47, 0x0, 0xa0, 0x0, 0x0, 0x1a, 0x2,
- 0x90, 0x0, 0x5b, 0x10, 0x0, 0x2b, 0x37, 0x0,
- 0x0, 0x7, 0xe4, 0x0, 0x1, 0x10, 0x0, 0x0,
- 0x0, 0x10,
-
- /* U+5FF5 "念" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0xe6, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0x45, 0x30, 0x0, 0x0, 0x0, 0x0, 0xa5,
- 0x50, 0x67, 0x0, 0x0, 0x0, 0xa, 0x30, 0x77,
- 0x4, 0xd8, 0x41, 0x4, 0x71, 0x0, 0x13, 0x3,
- 0x7, 0x80, 0x12, 0x4, 0x65, 0x55, 0x7e, 0x20,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xa4, 0x0, 0x0,
- 0x0, 0x0, 0x42, 0x93, 0x90, 0x0, 0x0, 0x0,
- 0x40, 0xd2, 0x96, 0x0, 0x23, 0x0, 0x0, 0xb0,
- 0xc0, 0x10, 0x4, 0xb, 0x40, 0x7, 0x80, 0xc0,
- 0x0, 0x8, 0x24, 0x60, 0x0, 0x0, 0xac, 0xaa,
- 0xad, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+600E "怎" */
- 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5,
- 0xb5, 0x55, 0x55, 0x6c, 0x10, 0x0, 0x1a, 0xc,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x81, 0xc, 0x55,
- 0x56, 0xb0, 0x0, 0x5, 0x10, 0xc, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xc, 0x55, 0x55, 0xb7,
- 0x0, 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x7, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x30, 0xc1, 0x1d, 0x0, 0x17, 0x0, 0x0, 0x90,
- 0xc0, 0x6, 0x0, 0x36, 0xb0, 0x9, 0x70, 0xc0,
- 0x0, 0x1, 0x60, 0xa0, 0x4, 0x0, 0x8b, 0xaa,
- 0xac, 0x90, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6012 "怒" */
- 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x8, 0x60, 0x1, 0x11, 0x15, 0x0, 0x5, 0x5d,
- 0x57, 0x67, 0x44, 0x7c, 0x0, 0x0, 0x28, 0x9,
- 0x31, 0x50, 0xa3, 0x0, 0x0, 0x92, 0xb, 0x0,
- 0x76, 0x90, 0x0, 0x0, 0x26, 0xc9, 0x0, 0x4f,
- 0x40, 0x0, 0x0, 0x7, 0x58, 0x55, 0x71, 0xb9,
- 0x30, 0x4, 0x61, 0x3, 0x52, 0x0, 0x6, 0x80,
- 0x10, 0x0, 0x10, 0x55, 0x0, 0x10, 0x0, 0x0,
- 0x40, 0xb2, 0xd, 0x30, 0x39, 0x0, 0x0, 0xa0,
- 0xb1, 0x4, 0x2, 0x8, 0x90, 0x7, 0x70, 0xb1,
- 0x0, 0x6, 0x20, 0x40, 0x0, 0x0, 0x8c, 0xbb,
- 0xbd, 0x50, 0x0,
-
- /* U+6015 "怕" */
- 0x0, 0x3, 0x0, 0x0, 0x21, 0x0, 0x0, 0x0,
- 0xd1, 0x0, 0x7, 0x70, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0x80, 0x0, 0x0, 0x0, 0xc0, 0x9, 0x57,
- 0x55, 0xc2, 0x1, 0x2c, 0xa2, 0xc0, 0x0, 0xc,
- 0x0, 0x64, 0xc3, 0x3c, 0x0, 0x0, 0xc0, 0xd,
- 0x2c, 0x0, 0xc0, 0x0, 0xc, 0x0, 0x0, 0xc0,
- 0xc, 0x55, 0x55, 0xd0, 0x0, 0xc, 0x0, 0xc0,
- 0x0, 0xc, 0x0, 0x0, 0xc0, 0xc, 0x0, 0x0,
- 0xc0, 0x0, 0xc, 0x0, 0xc0, 0x0, 0xc, 0x0,
- 0x0, 0xc0, 0xc, 0x55, 0x55, 0xd0, 0x0, 0xd,
- 0x0, 0xc0, 0x0, 0xb, 0x0, 0x0, 0x20, 0x1,
- 0x0, 0x0, 0x0,
-
- /* U+601D "思" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb, 0x55, 0x58, 0x55, 0x5d, 0x0, 0x0, 0xc,
- 0x0, 0xc, 0x0, 0xc, 0x0, 0x0, 0xc, 0x0,
- 0xc, 0x0, 0xc, 0x0, 0x0, 0xd, 0x55, 0x5d,
- 0x55, 0x5c, 0x0, 0x0, 0xc, 0x0, 0xc, 0x0,
- 0xc, 0x0, 0x0, 0xc, 0x0, 0xc, 0x0, 0xc,
- 0x0, 0x0, 0xd, 0x55, 0x65, 0x55, 0x5b, 0x0,
- 0x0, 0x1, 0x30, 0x69, 0x0, 0x0, 0x0, 0x0,
- 0x60, 0x95, 0xb, 0x20, 0x33, 0x91, 0x1, 0xb0,
- 0x93, 0x0, 0x0, 0xc3, 0x6b, 0x8, 0x80, 0x94,
- 0x0, 0x0, 0xe6, 0x6, 0x0, 0x0, 0x6d, 0xbb,
- 0xbc, 0xe5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6025 "急" */
- 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x5b, 0x10, 0x12, 0x0, 0x0, 0x0, 0x1,
- 0xb5, 0x55, 0xba, 0x0, 0x0, 0x0, 0x8, 0x0,
- 0x2, 0x70, 0x2, 0x0, 0x0, 0x76, 0x55, 0x56,
- 0x55, 0x8c, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0,
- 0x49, 0x0, 0x0, 0x2, 0x65, 0x55, 0x55, 0x79,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x49, 0x0,
- 0x0, 0x6, 0x55, 0x96, 0x55, 0x77, 0x0, 0x0,
- 0x10, 0xb2, 0x1d, 0x11, 0x14, 0x0, 0x0, 0x80,
- 0xc0, 0x3, 0x5, 0x7, 0x90, 0x5, 0xb0, 0xc0,
- 0x0, 0x7, 0x20, 0x90, 0x2, 0x10, 0x9b, 0xaa,
- 0xad, 0x50, 0x0,
-
- /* U+6027 "性" */
- 0x0, 0x13, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0,
- 0x1c, 0x0, 0x0, 0xe, 0x10, 0x0, 0x0, 0x1a,
- 0x0, 0x77, 0xc, 0x0, 0x0, 0x0, 0x1c, 0x40,
- 0xa3, 0xc, 0x0, 0x10, 0x2, 0x4a, 0xa3, 0xd5,
- 0x5d, 0x57, 0xa0, 0x7, 0x5a, 0x14, 0x60, 0xc,
- 0x0, 0x0, 0xa, 0x2a, 0x7, 0x0, 0xc, 0x0,
- 0x0, 0x0, 0x1a, 0x2, 0x45, 0x5d, 0x59, 0x70,
- 0x0, 0x1a, 0x0, 0x10, 0xc, 0x0, 0x0, 0x0,
- 0x1a, 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0x1a,
- 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0x1a, 0x0,
- 0x0, 0xc, 0x0, 0x71, 0x0, 0x2b, 0x7, 0x55,
- 0x55, 0x55, 0x53, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+606F "息" */
- 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0,
- 0x20, 0x37, 0x0, 0x5, 0x0, 0x0, 0xd, 0x55,
- 0x55, 0x55, 0xe0, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0xc, 0x0, 0x0, 0xd, 0x55, 0x55, 0x55, 0xc0,
- 0x0, 0x0, 0xd5, 0x55, 0x55, 0x5c, 0x0, 0x0,
- 0xd, 0x0, 0x0, 0x0, 0xc0, 0x0, 0x0, 0xd5,
- 0x55, 0x55, 0x5d, 0x0, 0x0, 0x5, 0x0, 0x83,
- 0x0, 0x30, 0x0, 0x2, 0xc, 0x22, 0xf0, 0x0,
- 0x40, 0x0, 0x90, 0xd0, 0x3, 0x3, 0x17, 0x80,
- 0xa8, 0xd, 0x0, 0x0, 0x54, 0x1c, 0x4, 0x0,
- 0x9b, 0xaa, 0xac, 0x60, 0x0,
-
- /* U+60A8 "您" */
- 0x0, 0x2, 0x10, 0x11, 0x0, 0x0, 0x0, 0x0,
- 0x96, 0x8, 0x90, 0x0, 0x0, 0x0, 0x1c, 0x0,
- 0xd5, 0x55, 0x59, 0x30, 0x9, 0xa0, 0x62, 0x3,
- 0x0, 0xa2, 0x4, 0x6a, 0x23, 0x20, 0xc1, 0x20,
- 0x0, 0x41, 0xa0, 0x1d, 0x1c, 0x7, 0x10, 0x0,
- 0x1a, 0x8, 0x20, 0xc0, 0x2d, 0x10, 0x1, 0xa3,
- 0x14, 0x8e, 0x0, 0x61, 0x0, 0x15, 0x0, 0x44,
- 0x40, 0x0, 0x0, 0x1, 0x18, 0x55, 0x90, 0x2,
- 0x40, 0x0, 0x81, 0x73, 0x7, 0x0, 0x48, 0x70,
- 0x4e, 0x7, 0x30, 0x0, 0x28, 0x9, 0x1, 0x10,
- 0x4b, 0x99, 0x9b, 0x80, 0x0,
-
- /* U+60AA "悪" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x36,
- 0x55, 0x65, 0x56, 0x58, 0xa0, 0x0, 0x0, 0xc,
- 0x0, 0xc0, 0x0, 0x0, 0x8, 0x65, 0xd5, 0x5d,
- 0x5c, 0x30, 0x0, 0x92, 0xc, 0x0, 0xc0, 0xb0,
- 0x0, 0x9, 0x75, 0xd5, 0x5d, 0x5c, 0x10, 0x0,
- 0x30, 0xc, 0x0, 0xc0, 0x24, 0x0, 0x55, 0x55,
- 0x95, 0x59, 0x56, 0xa3, 0x0, 0x0, 0x20, 0x64,
- 0x0, 0x0, 0x0, 0x3, 0x1d, 0x0, 0xc3, 0x1,
- 0x70, 0x0, 0x91, 0xb0, 0x2, 0x4, 0x7, 0x70,
- 0xb8, 0x1b, 0x0, 0x0, 0x63, 0x17, 0x3, 0x0,
- 0xdb, 0xbb, 0xbd, 0x60, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+60B2 "悲" */
- 0x0, 0x0, 0x3, 0x0, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0xd0, 0x0, 0x0, 0x3, 0x55,
- 0x5c, 0x0, 0xd5, 0x57, 0x50, 0x0, 0x0, 0xc,
- 0x0, 0xc0, 0x2, 0x0, 0x0, 0x55, 0x5c, 0x0,
- 0xd5, 0x57, 0x0, 0x0, 0x0, 0xc, 0x0, 0xc0,
- 0x0, 0x10, 0x5, 0x55, 0x5c, 0x0, 0xd5, 0x57,
- 0x70, 0x0, 0x0, 0xd, 0x0, 0xc0, 0x0, 0x0,
- 0x0, 0x0, 0x21, 0x46, 0x0, 0x11, 0x0, 0x0,
- 0x40, 0xd1, 0xb, 0x30, 0x9, 0x40, 0x2, 0x80,
- 0xc0, 0x2, 0x0, 0x41, 0xb0, 0xc, 0x40, 0xc0,
- 0x0, 0x1, 0x80, 0x10, 0x0, 0x0, 0xbb, 0xaa,
- 0xac, 0x90, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+60C5 "情" */
- 0x0, 0x20, 0x0, 0x0, 0x30, 0x0, 0x0, 0xa,
- 0x40, 0x0, 0xd, 0x0, 0x0, 0x0, 0xa2, 0x26,
- 0x55, 0xd5, 0x6a, 0x0, 0x1a, 0x93, 0x0, 0xc,
- 0x3, 0x0, 0x7, 0xa4, 0x74, 0x65, 0xd5, 0x63,
- 0x4, 0x9a, 0x24, 0x55, 0x5d, 0x55, 0x86, 0x21,
- 0xa2, 0x12, 0x0, 0x0, 0x20, 0x0, 0xa, 0x20,
- 0xa5, 0x55, 0x5c, 0x30, 0x0, 0xa2, 0xa, 0x65,
- 0x55, 0xc1, 0x0, 0xa, 0x20, 0xa1, 0x0, 0xa,
- 0x10, 0x0, 0xa2, 0xa, 0x65, 0x55, 0xc1, 0x0,
- 0xa, 0x20, 0xa1, 0x0, 0xa, 0x10, 0x0, 0xa2,
- 0xa, 0x10, 0x28, 0xe0, 0x0, 0x2, 0x0, 0x20,
- 0x0, 0x2, 0x0,
-
- /* U+60F3 "想" */
- 0x0, 0x4, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x9, 0x30, 0x8, 0x55, 0x59, 0x10, 0x0, 0x8,
- 0x24, 0xb, 0x0, 0xb, 0x0, 0x6, 0x5c, 0x78,
- 0x2c, 0x55, 0x5c, 0x0, 0x0, 0x1f, 0x70, 0xb,
- 0x0, 0xb, 0x0, 0x0, 0x8c, 0x6c, 0xc, 0x55,
- 0x5c, 0x0, 0x2, 0x78, 0x25, 0xb, 0x0, 0xb,
- 0x0, 0x6, 0x9, 0x20, 0xd, 0x55, 0x5c, 0x0,
- 0x10, 0x7, 0x20, 0x46, 0x0, 0x4, 0x0, 0x0,
- 0x0, 0x71, 0x2d, 0x0, 0x2, 0x0, 0x0, 0x70,
- 0xb0, 0x7, 0x14, 0x7, 0x60, 0x4, 0xa0, 0xb0,
- 0x0, 0x6, 0x10, 0xc0, 0x4, 0x20, 0x8a, 0x99,
- 0x9c, 0x40, 0x0,
-
- /* U+6108 "愈" */
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xab, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa5,
- 0x17, 0x0, 0x0, 0x0, 0x3, 0x93, 0x11, 0x7b,
- 0x61, 0x0, 0x35, 0x52, 0x36, 0x33, 0x17, 0xda,
- 0x10, 0xc, 0x55, 0xb0, 0x80, 0xc0, 0x0, 0x0,
- 0xb4, 0x4a, 0x9, 0xa, 0x0, 0x0, 0xc, 0x55,
- 0xa0, 0xa0, 0xa0, 0x0, 0x0, 0xa0, 0x69, 0x3,
- 0x2b, 0x0, 0x0, 0x5, 0x23, 0x84, 0x5, 0x60,
- 0x0, 0x1, 0x18, 0x40, 0xc0, 0x0, 0x70, 0x0,
- 0xa1, 0x83, 0x0, 0x2, 0x15, 0xa0, 0x27, 0x5,
- 0xb9, 0x99, 0xb6, 0x2, 0x0,
-
- /* U+610F "意" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x75, 0x0, 0x30, 0x0, 0x0, 0x25,
- 0x76, 0x66, 0x97, 0x80, 0x0, 0x0, 0x0, 0xc,
- 0x0, 0xa1, 0x1, 0x0, 0x6, 0x55, 0x57, 0x56,
- 0x65, 0x59, 0x80, 0x0, 0x7, 0x55, 0x55, 0x55,
- 0x70, 0x0, 0x0, 0xb, 0x0, 0x0, 0x2, 0x90,
- 0x0, 0x0, 0xc, 0x55, 0x55, 0x56, 0x90, 0x0,
- 0x0, 0xc, 0x55, 0x55, 0x56, 0x90, 0x0, 0x0,
- 0x5, 0x20, 0x71, 0x1, 0x30, 0x0, 0x0, 0x50,
- 0xc0, 0x3a, 0x1, 0x39, 0x10, 0x2, 0xa0, 0xb0,
- 0x1, 0x6, 0x6, 0x90, 0x8, 0x40, 0xaa, 0x99,
- 0x9d, 0x10, 0x10,
-
- /* U+611A "愚" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc5,
- 0x58, 0x55, 0x5c, 0x0, 0x0, 0xc0, 0x9, 0x10,
- 0xb, 0x0, 0x0, 0xd5, 0x5b, 0x65, 0x5b, 0x0,
- 0x0, 0xd5, 0x5b, 0x65, 0x5c, 0x0, 0x3, 0x30,
- 0x9, 0x10, 0x1, 0x50, 0xd, 0x55, 0x5b, 0x67,
- 0x55, 0xc1, 0xc, 0x1, 0x2a, 0x57, 0xb0, 0xb0,
- 0xc, 0xb, 0x74, 0x10, 0x60, 0xb0, 0xb, 0x1,
- 0x1a, 0x20, 0x29, 0xb0, 0x3, 0xc, 0x4, 0x80,
- 0x23, 0x60, 0x1a, 0xb, 0x0, 0x0, 0x60, 0x97,
- 0x74, 0x9, 0xa9, 0x99, 0xc4, 0x13,
-
- /* U+611B "愛" */
- 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x1, 0x24,
- 0x57, 0x8a, 0xcc, 0x50, 0x1, 0x43, 0x7, 0x10,
- 0x86, 0x0, 0x2, 0xb, 0x2, 0x60, 0x70, 0x12,
- 0x2a, 0x56, 0x5a, 0x75, 0x55, 0xb7, 0xa4, 0x5a,
- 0x31, 0xd1, 0x13, 0x80, 0x8, 0x59, 0x30, 0x10,
- 0x64, 0x4c, 0x6, 0x4, 0xaa, 0xaa, 0x92, 0x2,
- 0x0, 0xa, 0x50, 0x0, 0x10, 0x0, 0x0, 0x5a,
- 0x85, 0x59, 0xc0, 0x0, 0x4, 0x50, 0x64, 0x5a,
- 0x10, 0x0, 0x1, 0x0, 0x2d, 0xe2, 0x0, 0x0,
- 0x2, 0x57, 0x61, 0x3a, 0xdb, 0x93, 0x12, 0x0,
- 0x0, 0x0, 0x3, 0x30,
-
- /* U+611F "感" */
- 0x0, 0x0, 0x0, 0x0, 0x41, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb0, 0xa2, 0x0, 0x0, 0x95,
- 0x55, 0x55, 0xc5, 0x67, 0xb0, 0x0, 0xb0, 0x0,
- 0x2, 0x91, 0x3, 0x0, 0x0, 0xb3, 0x55, 0x56,
- 0x73, 0x2d, 0x10, 0x0, 0xb0, 0x85, 0x58, 0x48,
- 0xb3, 0x0, 0x0, 0xb0, 0xb0, 0x1a, 0xe, 0x70,
- 0x10, 0x3, 0x70, 0xd5, 0x6a, 0x4a, 0xa0, 0x50,
- 0x8, 0x0, 0x60, 0x7, 0x40, 0x5c, 0xb0, 0x22,
- 0x0, 0x50, 0x75, 0x0, 0x32, 0x82, 0x0, 0x70,
- 0xd0, 0xc, 0x2, 0xc, 0x20, 0x7, 0x80, 0xb0,
- 0x0, 0x7, 0x6, 0x40, 0x5, 0x10, 0xb9, 0x99,
- 0x9c, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+614B "態" */
- 0x0, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1b,
- 0x51, 0x1, 0xb0, 0x4, 0x0, 0x47, 0x10, 0x47,
- 0x1b, 0x58, 0x61, 0x8, 0xa8, 0x54, 0x91, 0xa0,
- 0x0, 0x70, 0xa, 0x55, 0x96, 0xb, 0x99, 0xa8,
- 0x0, 0xc5, 0x59, 0x51, 0xc0, 0x16, 0x0, 0xb,
- 0x0, 0x75, 0x1b, 0x69, 0x61, 0x0, 0xc4, 0x49,
- 0x51, 0xb0, 0x0, 0x60, 0xc, 0x6, 0xc4, 0xc,
- 0xaa, 0xb8, 0x0, 0x20, 0x55, 0x2a, 0x10, 0x3,
- 0x0, 0x6, 0xc, 0x10, 0x47, 0x4, 0x58, 0x4,
- 0xb0, 0xc0, 0x0, 0x0, 0x70, 0xc0, 0x42, 0xa,
- 0xba, 0xaa, 0xc9, 0x0, 0x0,
-
- /* U+6163 "慣" */
- 0x0, 0x10, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0,
- 0xb2, 0x0, 0xc5, 0x87, 0x5c, 0x0, 0x0, 0xb0,
- 0x0, 0xb0, 0x92, 0x1a, 0x50, 0x2, 0xb6, 0x56,
- 0xb5, 0xd5, 0x8a, 0x50, 0x7, 0xb6, 0x55, 0xa5,
- 0xd5, 0x97, 0x0, 0x49, 0xb2, 0x21, 0x10, 0x0,
- 0x22, 0x0, 0x31, 0xb0, 0xa, 0x55, 0x55, 0x5c,
- 0x0, 0x0, 0xb0, 0xb, 0x44, 0x44, 0x4b, 0x0,
- 0x0, 0xb0, 0xb, 0x11, 0x11, 0x1b, 0x0, 0x0,
- 0xb0, 0xb, 0x55, 0x55, 0x5b, 0x0, 0x0, 0xb0,
- 0xc, 0x55, 0x55, 0x5b, 0x0, 0x0, 0xb0, 0x3,
- 0xc4, 0x1, 0x84, 0x0, 0x0, 0xb0, 0x38, 0x20,
- 0x0, 0x1d, 0x30, 0x0, 0x10, 0x20, 0x0, 0x0,
- 0x1, 0x10,
-
- /* U+6167 "慧" */
- 0x0, 0x3, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0,
- 0xc1, 0x40, 0xc, 0x3, 0x20, 0x36, 0x5c, 0x55,
- 0x46, 0xc5, 0x53, 0x0, 0x65, 0xc6, 0x53, 0x6c,
- 0x59, 0x10, 0x45, 0x5c, 0x59, 0x35, 0xc5, 0x59,
- 0x1, 0x0, 0xa0, 0x0, 0x1a, 0x0, 0x0, 0x3,
- 0x65, 0x55, 0x55, 0x59, 0x70, 0x0, 0x5, 0x55,
- 0x55, 0x55, 0x95, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x6, 0x50, 0x0, 0x27, 0x65, 0x95, 0x55, 0x83,
- 0x0, 0x4, 0xa, 0x35, 0x90, 0x21, 0x70, 0x0,
- 0xa0, 0xa2, 0x3, 0x7, 0x13, 0xb0, 0x33, 0x7,
- 0xb9, 0x99, 0xc3, 0x3, 0x0,
-
- /* U+616E "慮" */
- 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2c, 0x11, 0x50, 0x0, 0x0, 0x10,
- 0x0, 0x1b, 0x44, 0x42, 0x0, 0x0, 0xb6, 0x55,
- 0x6a, 0x56, 0x5c, 0x50, 0x0, 0xa1, 0x24, 0x6b,
- 0x58, 0x35, 0x0, 0x0, 0xb1, 0x30, 0x1a, 0x22,
- 0x39, 0x0, 0x0, 0xb0, 0x20, 0x4, 0x66, 0xa3,
- 0x0, 0x0, 0xb0, 0xc5, 0x5b, 0x65, 0xc2, 0x0,
- 0x0, 0xb0, 0xb5, 0x5b, 0x65, 0xc0, 0x0, 0x0,
- 0x90, 0xc5, 0x5a, 0x65, 0xc0, 0x0, 0x4, 0x40,
- 0x28, 0x5, 0x60, 0x14, 0x0, 0x7, 0x4, 0x3d,
- 0x0, 0x91, 0x42, 0xd0, 0x32, 0x3d, 0xb, 0xba,
- 0xab, 0x80, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+61C9 "應" */
- 0x0, 0x0, 0x0, 0x41, 0x0, 0x0, 0x0, 0x0,
- 0x20, 0x0, 0x2b, 0x0, 0x1, 0x40, 0x0, 0xc5,
- 0x56, 0x57, 0x76, 0x56, 0x70, 0x0, 0xc0, 0x2d,
- 0x6b, 0x1b, 0x1, 0x0, 0x0, 0xc0, 0xb2, 0xc6,
- 0x5a, 0x57, 0x40, 0x0, 0xc4, 0xc4, 0xc5, 0x5c,
- 0x59, 0x0, 0x0, 0xc0, 0xb1, 0xa1, 0xa, 0x4,
- 0x0, 0x0, 0xb0, 0xb0, 0xa5, 0x5c, 0x55, 0x10,
- 0x0, 0xb0, 0xb0, 0xa5, 0x59, 0x56, 0x80, 0x3,
- 0x80, 0x40, 0x41, 0x0, 0x1, 0x0, 0x7, 0x34,
- 0x39, 0xa, 0x60, 0x24, 0x70, 0x8, 0x1b, 0x28,
- 0x0, 0x60, 0x70, 0xc1, 0x23, 0x54, 0xc, 0xaa,
- 0xab, 0xd1, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+61F8 "懸" */
- 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x10, 0x0,
- 0xa5, 0x5b, 0x33, 0x57, 0x9a, 0x70, 0x0, 0xb5,
- 0x5b, 0x10, 0x19, 0x65, 0x10, 0x0, 0xa4, 0x4b,
- 0x13, 0xd6, 0x9a, 0x30, 0x0, 0xa5, 0x5b, 0x10,
- 0x5a, 0x32, 0x50, 0x0, 0xa0, 0x9, 0x55, 0xf9,
- 0xa5, 0xb2, 0x6, 0x97, 0xa5, 0x54, 0x60, 0xb3,
- 0x10, 0x2, 0xa4, 0x79, 0x24, 0xa1, 0xb3, 0xa0,
- 0x5, 0x2a, 0x52, 0x65, 0x26, 0xa0, 0x81, 0x0,
- 0x3, 0x50, 0x52, 0x6, 0x31, 0x0, 0x0, 0x51,
- 0x90, 0x1d, 0x10, 0x8, 0x50, 0x4, 0xa1, 0x90,
- 0x2, 0x0, 0x60, 0xc0, 0x7, 0x20, 0xca, 0xaa,
- 0xac, 0xa0, 0x0,
-
- /* U+6210 "成" */
- 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xf, 0x15, 0x70, 0x0, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0xc3, 0x0, 0x0, 0x75, 0x55,
- 0x5e, 0x55, 0x6b, 0x60, 0x0, 0xc1, 0x0, 0xb,
- 0x10, 0x0, 0x0, 0x0, 0xc1, 0x0, 0x9, 0x30,
- 0x38, 0x0, 0x0, 0xc5, 0x58, 0x46, 0x60, 0x97,
- 0x0, 0x0, 0xc0, 0x9, 0x33, 0x90, 0xd0, 0x0,
- 0x0, 0xc0, 0xa, 0x10, 0xd7, 0x70, 0x0, 0x0,
- 0xb0, 0xb, 0x0, 0x8e, 0x0, 0x20, 0x2, 0x74,
- 0x6c, 0x0, 0xbd, 0x50, 0x60, 0x7, 0x10, 0x75,
- 0x19, 0x12, 0xd9, 0x90, 0x6, 0x0, 0x2, 0x50,
- 0x0, 0x9, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6211 "我" */
- 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0,
- 0x3, 0x8d, 0x6a, 0x51, 0x30, 0x0, 0x2, 0x43,
- 0xc0, 0xa, 0x20, 0x99, 0x0, 0x0, 0x0, 0xc0,
- 0x9, 0x20, 0x9, 0x0, 0x5, 0x55, 0xd5, 0x5b,
- 0x75, 0x5a, 0x90, 0x1, 0x0, 0xc0, 0x7, 0x40,
- 0x1, 0x0, 0x0, 0x0, 0xc0, 0x5, 0x60, 0x79,
- 0x0, 0x0, 0x1, 0xe6, 0x33, 0x82, 0xb0, 0x0,
- 0x18, 0xc8, 0xc0, 0x0, 0xcb, 0x10, 0x0, 0x6,
- 0x10, 0xc0, 0x1, 0xe5, 0x0, 0x10, 0x0, 0x0,
- 0xc0, 0x29, 0x4c, 0x10, 0x50, 0x0, 0x43, 0xc4,
- 0x50, 0x2, 0xd6, 0x90, 0x0, 0x2d, 0x60, 0x0,
- 0x0, 0x18, 0xe4, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6216 "或" */
- 0x0, 0x0, 0x0, 0x0, 0x11, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe1, 0xb4, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x15, 0x40, 0x6, 0x55, 0x55,
- 0x55, 0xd5, 0x56, 0x70, 0x0, 0x0, 0x1, 0x0,
- 0xc0, 0x1, 0x0, 0x0, 0xd5, 0x5c, 0x50, 0xc0,
- 0xe, 0x10, 0x0, 0xc0, 0xa, 0x20, 0xa2, 0x4a,
- 0x0, 0x0, 0xc0, 0xa, 0x20, 0x74, 0xa3, 0x0,
- 0x0, 0xd5, 0x5c, 0x20, 0x3b, 0xb0, 0x0, 0x0,
- 0x50, 0x0, 0x0, 0xf, 0x40, 0x10, 0x0, 0x35,
- 0x77, 0x54, 0x98, 0xb0, 0x50, 0x1f, 0xa5, 0x10,
- 0x28, 0x10, 0x7c, 0xa0, 0x0, 0x0, 0x5, 0x40,
- 0x0, 0x5, 0xd2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6226 "戦" */
- 0x0, 0x2, 0x0, 0x10, 0x4, 0x0, 0x0, 0x8,
- 0x18, 0x51, 0xb0, 0xe, 0x25, 0x0, 0x4, 0x81,
- 0x66, 0x10, 0xc, 0x9, 0x50, 0x9, 0x55, 0x77,
- 0xb0, 0xc, 0x1, 0x20, 0xb, 0x1, 0x90, 0xb0,
- 0x2d, 0x55, 0x80, 0xb, 0x55, 0xb5, 0xb5, 0x3c,
- 0x4, 0x20, 0xb, 0x1, 0x90, 0xb0, 0xc, 0xc,
- 0x40, 0xb, 0x55, 0xb5, 0xb0, 0xc, 0x59, 0x0,
- 0x7, 0x1, 0x90, 0x60, 0x9, 0xd1, 0x0, 0x0,
- 0x1, 0x90, 0x43, 0x8, 0x90, 0x0, 0x27, 0x55,
- 0xb5, 0x54, 0x4a, 0xd1, 0x51, 0x0, 0x1, 0x90,
- 0x3, 0x90, 0x4d, 0xb0, 0x0, 0x1, 0xa0, 0x56,
- 0x0, 0x6, 0xf1, 0x0, 0x0, 0x10, 0x10, 0x0,
- 0x0, 0x31,
-
- /* U+6230 "戰" */
- 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0xa,
- 0x5b, 0x57, 0xb2, 0xd, 0x34, 0x0, 0xa, 0xa,
- 0x55, 0x91, 0xd, 0xa, 0x40, 0xb, 0x5b, 0x58,
- 0xb1, 0xc, 0x1, 0x10, 0x5, 0x2, 0x21, 0x50,
- 0xc, 0x46, 0x80, 0x7, 0x77, 0x95, 0xc3, 0x5c,
- 0x3, 0x10, 0x7, 0x77, 0x95, 0xa0, 0xb, 0xb,
- 0x40, 0x7, 0x33, 0x70, 0xa0, 0xa, 0x4a, 0x0,
- 0x8, 0x77, 0x95, 0xa0, 0x7, 0xd2, 0x0, 0x3,
- 0x3, 0x70, 0x20, 0x6, 0xb0, 0x0, 0x6, 0x57,
- 0x95, 0x74, 0x2a, 0xb3, 0x60, 0x0, 0x3, 0x70,
- 0x2, 0x80, 0x2d, 0xb0, 0x0, 0x4, 0x70, 0x34,
- 0x0, 0x4, 0xf0, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0x21,
-
- /* U+623B "戻" */
- 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x5a, 0x0, 0x0, 0x0, 0x0, 0x8,
- 0x55, 0x5a, 0x55, 0x5a, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0x0, 0xc, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0xc, 0x0, 0x0, 0xe, 0x55, 0x55, 0x55,
- 0x5c, 0x0, 0x0, 0x1c, 0x0, 0x8, 0x40, 0x4,
- 0x0, 0x0, 0x3a, 0x0, 0xc, 0x20, 0x3, 0x0,
- 0x0, 0x66, 0x65, 0x5d, 0x75, 0x58, 0x40, 0x0,
- 0xa1, 0x0, 0x75, 0x43, 0x0, 0x0, 0x1, 0x90,
- 0x3, 0xa0, 0x9, 0x30, 0x0, 0x7, 0x10, 0x38,
- 0x0, 0x0, 0xb9, 0x20, 0x14, 0x15, 0x40, 0x0,
- 0x0, 0x8, 0xc2, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+623F "房" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2b, 0x0, 0x0, 0x0, 0x0, 0x3a,
- 0x55, 0x56, 0x55, 0x5d, 0x10, 0x0, 0x39, 0x0,
- 0x0, 0x0, 0xc, 0x0, 0x0, 0x2b, 0x55, 0x55,
- 0x55, 0x5d, 0x0, 0x0, 0x38, 0x0, 0x8, 0x30,
- 0x1, 0x0, 0x0, 0x47, 0x0, 0x2, 0x70, 0x1,
- 0x50, 0x0, 0x56, 0x55, 0x8b, 0x55, 0x55, 0x50,
- 0x0, 0x82, 0x0, 0x68, 0x0, 0x5, 0x0, 0x0,
- 0xa0, 0x0, 0xb7, 0x55, 0x5e, 0x10, 0x2, 0x70,
- 0x2, 0xd0, 0x0, 0x1c, 0x0, 0x6, 0x10, 0x1c,
- 0x20, 0x0, 0x3a, 0x0, 0x13, 0x2, 0x92, 0x0,
- 0x17, 0xd5, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0,
- 0x40, 0x0,
-
- /* U+6240 "所" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0,
- 0x21, 0x6b, 0x52, 0x4, 0x8c, 0x60, 0x0, 0xd4,
- 0x0, 0xa, 0x61, 0x0, 0x0, 0x0, 0xd0, 0x0,
- 0xa, 0x30, 0x0, 0x0, 0x0, 0xd5, 0x59, 0x29,
- 0x30, 0x0, 0x20, 0x0, 0xc0, 0xc, 0x9, 0x75,
- 0x96, 0x80, 0x0, 0xc0, 0xc, 0xa, 0x20, 0xb0,
- 0x0, 0x0, 0xd5, 0x5d, 0xc, 0x0, 0xb0, 0x0,
- 0x0, 0xc0, 0x8, 0xb, 0x0, 0xb0, 0x0, 0x0,
- 0xb0, 0x0, 0x47, 0x0, 0xb0, 0x0, 0x4, 0x60,
- 0x0, 0x91, 0x0, 0xb0, 0x0, 0x7, 0x0, 0x4,
- 0x50, 0x0, 0xb0, 0x0, 0x15, 0x0, 0x15, 0x0,
- 0x0, 0xb1, 0x0, 0x10, 0x0, 0x10, 0x0, 0x0,
- 0x10, 0x0,
-
- /* U+624B "手" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x25, 0x8c, 0xf3, 0x0, 0x2, 0x45,
- 0x66, 0xd4, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc1, 0x0, 0x0, 0x0, 0x0, 0x55, 0x55, 0xd5,
- 0x55, 0xd5, 0x0, 0x0, 0x10, 0x0, 0xc1, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xc1, 0x0, 0x0,
- 0x0, 0x25, 0x55, 0x55, 0xd5, 0x55, 0x5b, 0xa0,
- 0x1, 0x0, 0x0, 0xc1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc1, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22,
- 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4d, 0xc0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+624D "才" */
- 0x0, 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd0, 0x0, 0x50, 0x5, 0x65, 0x55, 0x5c,
- 0xd5, 0x56, 0x71, 0x0, 0x0, 0x0, 0x6a, 0xd0,
- 0x0, 0x0, 0x0, 0x0, 0x1, 0xd1, 0xd0, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x30, 0xd0, 0x0, 0x0,
- 0x0, 0x0, 0x75, 0x0, 0xd0, 0x0, 0x0, 0x0,
- 0x6, 0x50, 0x0, 0xd0, 0x0, 0x0, 0x0, 0x63,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0x5, 0x10, 0x1,
- 0x0, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x9f,
- 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0,
- 0x0, 0x0,
-
- /* U+6253 "打" */
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc,
- 0x0, 0x55, 0x57, 0x58, 0x90, 0x15, 0x5d, 0x5a,
- 0x10, 0xd, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0,
- 0xd, 0x0, 0x0, 0x0, 0xc, 0x1, 0x0, 0xd,
- 0x0, 0x0, 0x0, 0xc, 0x73, 0x0, 0xd, 0x0,
- 0x0, 0x29, 0xbd, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x5, 0xc, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0,
- 0xc, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0xd, 0x0, 0x0, 0x3, 0x2d, 0x0,
- 0x3, 0x1d, 0x0, 0x0, 0x1, 0xbc, 0x0, 0x2,
- 0xca, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10,
- 0x0, 0x0,
-
- /* U+6255 "払" */
- 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb2, 0x0, 0x8, 0x50, 0x0, 0x0, 0xb, 0x0,
- 0x0, 0xd3, 0x0, 0x1, 0x55, 0xd5, 0xa1, 0x1d,
- 0x0, 0x0, 0x0, 0xb, 0x0, 0x5, 0x80, 0x0,
- 0x0, 0x0, 0xb0, 0x11, 0x92, 0x0, 0x0, 0x0,
- 0xc, 0x74, 0xb, 0x0, 0x0, 0x2, 0xab, 0xd0,
- 0x3, 0x70, 0x4, 0x0, 0x5, 0xb, 0x0, 0x72,
- 0x0, 0x43, 0x0, 0x0, 0xb0, 0x9, 0x0, 0x0,
- 0xb0, 0x0, 0xb, 0x3, 0x60, 0x0, 0x8, 0x70,
- 0x32, 0xd0, 0xcb, 0xa9, 0x76, 0x7c, 0x1, 0xbb,
- 0x4, 0x40, 0x0, 0x2, 0xa0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+627E "找" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0x20, 0x8, 0x61, 0x40, 0x0, 0x0, 0xc,
- 0x0, 0x8, 0x40, 0x8a, 0x0, 0x0, 0xc, 0x4,
- 0x8, 0x40, 0x5, 0x0, 0x16, 0x5d, 0x55, 0x19,
- 0x64, 0x5b, 0x30, 0x0, 0xc, 0x3, 0x39, 0x40,
- 0x0, 0x0, 0x0, 0xc, 0x64, 0x7, 0x50, 0x6a,
- 0x0, 0x28, 0xae, 0x0, 0x5, 0x74, 0xc1, 0x0,
- 0x16, 0xc, 0x0, 0x2, 0xdb, 0x0, 0x0, 0x0,
- 0xc, 0x0, 0x5, 0xf2, 0x0, 0x30, 0x0, 0xc,
- 0x0, 0x75, 0x2c, 0x10, 0x60, 0x3, 0x3d, 0x5,
- 0x10, 0x4, 0xd8, 0x70, 0x1, 0xaa, 0x0, 0x0,
- 0x0, 0x2b, 0xa0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6280 "技" */
- 0x0, 0x3, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0,
- 0xd, 0x10, 0x0, 0xe, 0x0, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0xc, 0x0, 0x0, 0x15, 0x5d, 0x6a,
- 0x35, 0x5d, 0x55, 0xb1, 0x0, 0xc, 0x0, 0x0,
- 0xc, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0x0, 0xc, 0x75, 0x47, 0x59, 0x5d,
- 0x30, 0x18, 0xbd, 0x0, 0x6, 0x0, 0x1b, 0x0,
- 0x6, 0xc, 0x0, 0x3, 0x40, 0x84, 0x0, 0x0,
- 0xc, 0x0, 0x0, 0x94, 0xb0, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0x5f, 0x20, 0x0, 0x1, 0xc, 0x0,
- 0x7, 0x95, 0xc4, 0x0, 0x3, 0xcc, 0x15, 0x72,
- 0x0, 0x2a, 0xd3, 0x0, 0x10, 0x20, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+628A "把" */
- 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xd, 0x10, 0x10, 0x0, 0x2, 0x0, 0x0, 0xc,
- 0x0, 0xd5, 0x5b, 0x5d, 0x30, 0x15, 0x5d, 0x77,
- 0xc0, 0xb, 0xb, 0x0, 0x0, 0xc, 0x0, 0xc0,
- 0xb, 0xb, 0x0, 0x0, 0xc, 0x0, 0xc0, 0xb,
- 0xb, 0x0, 0x0, 0xd, 0x73, 0xd5, 0x57, 0x5c,
- 0x10, 0x2a, 0xbd, 0x0, 0xc0, 0x0, 0x0, 0x0,
- 0x5, 0xc, 0x0, 0xc0, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0x0, 0xc0, 0x0, 0x0, 0x10, 0x0, 0xc,
- 0x0, 0xc0, 0x0, 0x0, 0x50, 0x0, 0xc, 0x0,
- 0xc0, 0x0, 0x0, 0xa0, 0x5, 0xbb, 0x0, 0xab,
- 0xaa, 0xab, 0xd0, 0x0, 0x21, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6295 "投" */
- 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xe, 0x10, 0x9, 0x55, 0xa1, 0x0, 0x0, 0xc,
- 0x0, 0xb, 0x0, 0xc0, 0x0, 0x5, 0x5d, 0x78,
- 0x2a, 0x0, 0xc0, 0x0, 0x0, 0xc, 0x0, 0x55,
- 0x0, 0xc0, 0x0, 0x0, 0xc, 0x1, 0x90, 0x0,
- 0x8a, 0xb3, 0x0, 0xd, 0x67, 0x65, 0x55, 0x87,
- 0x0, 0x18, 0xbc, 0x0, 0x5, 0x0, 0xa3, 0x0,
- 0x6, 0xc, 0x0, 0x6, 0x11, 0xb0, 0x0, 0x0,
- 0xc, 0x0, 0x0, 0x9a, 0x30, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0xac, 0x0, 0x0, 0x1, 0xc, 0x0,
- 0x19, 0x57, 0xc3, 0x0, 0x3, 0xc8, 0x15, 0x60,
- 0x0, 0x3c, 0xb1, 0x0, 0x0, 0x20, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+62BC "押" */
- 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xd, 0x0, 0x85, 0x55, 0x55, 0xa0, 0x0, 0xc,
- 0x0, 0xc0, 0xc, 0x1, 0xb0, 0x5, 0x5d, 0x95,
- 0xc0, 0xc, 0x1, 0xb0, 0x0, 0xc, 0x0, 0xd5,
- 0x5d, 0x56, 0xb0, 0x0, 0xc, 0x1, 0xc0, 0xc,
- 0x1, 0xb0, 0x0, 0xe, 0x61, 0xc0, 0xc, 0x1,
- 0xb0, 0x17, 0xbc, 0x0, 0xd5, 0x5d, 0x56, 0xb0,
- 0x19, 0xc, 0x0, 0xa0, 0xc, 0x0, 0x60, 0x0,
- 0xc, 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0xc, 0x0, 0x0, 0x1, 0x2c, 0x0,
- 0x0, 0xc, 0x0, 0x0, 0x3, 0xd7, 0x0, 0x0,
- 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2,
- 0x0, 0x0,
-
- /* U+62C5 "担" */
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xd, 0x10, 0x0, 0x0, 0x1, 0x0, 0x0, 0xc,
- 0x0, 0x96, 0x55, 0x5e, 0x10, 0x0, 0xc, 0x13,
- 0x92, 0x0, 0xd, 0x0, 0x5, 0x5d, 0x54, 0x92,
- 0x0, 0xd, 0x0, 0x0, 0xc, 0x1, 0x97, 0x55,
- 0x5d, 0x0, 0x0, 0xc, 0x71, 0x92, 0x0, 0xd,
- 0x0, 0x5, 0xbe, 0x0, 0x92, 0x0, 0xd, 0x0,
- 0x1a, 0x1c, 0x0, 0x92, 0x0, 0xd, 0x0, 0x0,
- 0xc, 0x0, 0xa7, 0x55, 0x5e, 0x0, 0x0, 0xc,
- 0x0, 0x50, 0x0, 0x2, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0x0, 0x2, 0x70, 0x3, 0xbc, 0x6, 0x55,
- 0x55, 0x55, 0x50, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+62C9 "拉" */
- 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0x20, 0x0, 0x70, 0x0, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0x6a, 0x0, 0x0, 0x2, 0x2c, 0x36,
- 0x0, 0x16, 0x1, 0x0, 0x3, 0x2c, 0x22, 0x55,
- 0x55, 0x58, 0x50, 0x0, 0xc, 0x0, 0x0, 0x0,
- 0x42, 0x0, 0x0, 0xc, 0x64, 0x23, 0x0, 0x97,
- 0x0, 0x2, 0x9e, 0x10, 0xa, 0x0, 0xb1, 0x0,
- 0x2d, 0x3c, 0x0, 0xa, 0x30, 0xb0, 0x0, 0x0,
- 0xc, 0x0, 0x8, 0x73, 0x70, 0x0, 0x0, 0xc,
- 0x0, 0x4, 0x27, 0x10, 0x0, 0x1, 0xd, 0x0,
- 0x0, 0x7, 0x0, 0x50, 0x2, 0xbc, 0x6, 0x55,
- 0x56, 0x56, 0x71, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+62DB "招" */
- 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc0, 0x25, 0x55, 0x55, 0x76, 0x0, 0xb, 0x0,
- 0x6, 0x70, 0x7, 0x50, 0x55, 0xc6, 0x80, 0x83,
- 0x0, 0x83, 0x0, 0xb, 0x0, 0xb, 0x0, 0xa,
- 0x10, 0x0, 0xb0, 0x4, 0x60, 0x55, 0xd0, 0x0,
- 0xc, 0x73, 0x80, 0x0, 0xa5, 0x1, 0x7b, 0xc0,
- 0x46, 0x55, 0x55, 0x92, 0x8, 0xb, 0x0, 0xa1,
- 0x0, 0xb, 0x0, 0x0, 0xb0, 0xa, 0x10, 0x0,
- 0xb0, 0x0, 0xb, 0x0, 0xa1, 0x0, 0xb, 0x0,
- 0x0, 0xb0, 0xa, 0x65, 0x55, 0xd0, 0x3, 0xc9,
- 0x0, 0x90, 0x0, 0x8, 0x0, 0x1, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+62E1 "拡" */
- 0x0, 0x2, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0,
- 0xd, 0x0, 0x0, 0x78, 0x0, 0x0, 0x0, 0xc,
- 0x0, 0x20, 0xa, 0x0, 0x50, 0x0, 0xc, 0x12,
- 0xd5, 0x55, 0x55, 0x61, 0x5, 0x5d, 0x54, 0xc0,
- 0x1, 0x0, 0x0, 0x0, 0xc, 0x0, 0xc0, 0xa,
- 0x70, 0x0, 0x0, 0xc, 0x52, 0xc0, 0xd, 0x0,
- 0x0, 0x0, 0x7d, 0x10, 0xc0, 0x38, 0x0, 0x0,
- 0x2e, 0x5c, 0x0, 0xc0, 0x81, 0x0, 0x0, 0x1,
- 0xc, 0x1, 0xa0, 0x80, 0x7, 0x0, 0x0, 0xc,
- 0x5, 0x55, 0x30, 0x3, 0xa0, 0x0, 0xc, 0x9,
- 0xd, 0xa8, 0x65, 0xd2, 0x5, 0xd8, 0x42, 0x3,
- 0x0, 0x0, 0x50, 0x0, 0x10, 0x10, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+62EC "括" */
- 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xd, 0x20, 0x0, 0x2, 0x7c, 0x10, 0x0, 0xc,
- 0x0, 0x35, 0x7d, 0x41, 0x0, 0x17, 0x5d, 0x5a,
- 0x0, 0xc, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0,
- 0xc, 0x0, 0x30, 0x0, 0xc, 0x3, 0x65, 0x5d,
- 0x56, 0x80, 0x0, 0xc, 0x54, 0x0, 0xc, 0x0,
- 0x0, 0x16, 0xae, 0x10, 0x20, 0xc, 0x3, 0x0,
- 0x19, 0x1c, 0x0, 0xc5, 0x55, 0x5d, 0x10, 0x0,
- 0xc, 0x0, 0xc0, 0x0, 0xc, 0x0, 0x0, 0xc,
- 0x0, 0xc0, 0x0, 0xc, 0x0, 0x2, 0x2d, 0x0,
- 0xc5, 0x55, 0x5d, 0x0, 0x1, 0xaa, 0x0, 0xc0,
- 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+62ED "拭" */
- 0x0, 0x2, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0,
- 0xe, 0x10, 0x0, 0xd, 0x29, 0x30, 0x0, 0xc,
- 0x0, 0x0, 0xd, 0x2, 0x80, 0x0, 0xc, 0x23,
- 0x0, 0xc, 0x1, 0x50, 0x16, 0x5d, 0x54, 0x46,
- 0x5d, 0x55, 0x50, 0x0, 0xc, 0x0, 0x0, 0xa,
- 0x10, 0x0, 0x0, 0xd, 0x66, 0x55, 0x89, 0x20,
- 0x0, 0x18, 0xbd, 0x0, 0xc, 0x6, 0x50, 0x0,
- 0x18, 0xc, 0x0, 0xc, 0x3, 0x80, 0x0, 0x0,
- 0xc, 0x0, 0xc, 0x0, 0xc0, 0x0, 0x0, 0xc,
- 0x0, 0x1d, 0x63, 0x86, 0x41, 0x1, 0xc, 0xa,
- 0xa4, 0x0, 0xd, 0xc0, 0x3, 0xd8, 0x0, 0x0,
- 0x0, 0x1, 0xc2, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+62FF "拿" */
- 0x0, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb9, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x3b, 0x30, 0x66, 0x0, 0x0, 0x0, 0x17, 0x76,
- 0x55, 0x86, 0xb9, 0x62, 0x4, 0x40, 0x85, 0x55,
- 0x59, 0x13, 0x60, 0x0, 0x0, 0xc0, 0x0, 0xc,
- 0x0, 0x0, 0x0, 0x0, 0xd5, 0x55, 0x5a, 0x10,
- 0x0, 0x0, 0x23, 0x45, 0x68, 0xac, 0xb0, 0x0,
- 0x0, 0x0, 0x0, 0x2a, 0x0, 0x40, 0x0, 0x0,
- 0x36, 0x55, 0x6c, 0x56, 0x92, 0x0, 0x4, 0x55,
- 0x55, 0x6c, 0x55, 0x5a, 0x90, 0x0, 0x0, 0x0,
- 0x2a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0xd7,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x30, 0x0,
- 0x0, 0x0,
-
- /* U+6301 "持" */
- 0x0, 0x4, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0,
- 0xd, 0x0, 0x0, 0xb3, 0x0, 0x0, 0x0, 0xc,
- 0x1, 0x44, 0xc5, 0x49, 0x0, 0x5, 0x5d, 0x86,
- 0x11, 0xb2, 0x11, 0x0, 0x0, 0xc, 0x0, 0x0,
- 0xb1, 0x0, 0x20, 0x0, 0xc, 0x6, 0x55, 0x86,
- 0x56, 0x90, 0x0, 0xd, 0x62, 0x0, 0x7, 0x70,
- 0x0, 0x7, 0xbc, 0x5, 0x55, 0x5a, 0x87, 0x90,
- 0x6, 0xc, 0x1, 0x20, 0x7, 0x50, 0x0, 0x0,
- 0xc, 0x0, 0x85, 0x7, 0x50, 0x0, 0x0, 0xc,
- 0x0, 0x19, 0x7, 0x50, 0x0, 0x1, 0x1c, 0x0,
- 0x0, 0x7, 0x50, 0x0, 0x2, 0xc8, 0x0, 0x0,
- 0x7f, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
- 0x0, 0x0,
-
- /* U+6307 "指" */
- 0x0, 0x5, 0x0, 0x31, 0x0, 0x0, 0x0, 0x0,
- 0xc1, 0x8, 0x60, 0x3, 0x70, 0x0, 0xc, 0x0,
- 0x83, 0x18, 0xa5, 0x0, 0x55, 0xd6, 0xb8, 0x75,
- 0x10, 0x3, 0x1, 0xc, 0x0, 0x84, 0x0, 0x0,
- 0x70, 0x0, 0xc0, 0x35, 0xc9, 0x99, 0xb9, 0x0,
- 0xc, 0x70, 0x0, 0x0, 0x0, 0x0, 0x4b, 0xe0,
- 0x6, 0x75, 0x55, 0xc1, 0x1b, 0x2c, 0x0, 0x65,
- 0x0, 0xc, 0x0, 0x0, 0xc0, 0x6, 0x85, 0x55,
- 0xd0, 0x0, 0xc, 0x0, 0x65, 0x0, 0xc, 0x0,
- 0x10, 0xd0, 0x6, 0x85, 0x55, 0xd0, 0x2, 0xba,
- 0x0, 0x74, 0x0, 0xb, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+6319 "挙" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x7, 0x0, 0x91, 0x5, 0xb0, 0x0, 0x0, 0x5,
- 0xb0, 0x5a, 0xa, 0x10, 0x0, 0x0, 0x0, 0x70,
- 0x4, 0x34, 0x4, 0x30, 0x6, 0x55, 0xc5, 0x55,
- 0x95, 0x57, 0x60, 0x0, 0x5, 0x80, 0x0, 0x66,
- 0x0, 0x0, 0x0, 0x3a, 0x46, 0x9b, 0xa6, 0xb4,
- 0x0, 0x5, 0x60, 0x0, 0xb0, 0x0, 0x7c, 0x80,
- 0x31, 0x55, 0x55, 0xc5, 0x55, 0x71, 0x0, 0x0,
- 0x0, 0x0, 0xb0, 0x0, 0x7, 0x30, 0x7, 0x55,
- 0x55, 0xc5, 0x55, 0x55, 0x40, 0x0, 0x0, 0x0,
- 0xb0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3a, 0xd0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x20, 0x0,
- 0x0, 0x0,
-
- /* U+6355 "捕" */
- 0x0, 0x2, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0xd, 0x0, 0x0, 0xb2, 0x81, 0x0, 0x0, 0xb,
- 0x0, 0x0, 0xb0, 0x36, 0x10, 0x0, 0xb, 0x45,
- 0x55, 0xc5, 0x56, 0x90, 0x4, 0x4c, 0x41, 0x0,
- 0xb0, 0x0, 0x0, 0x0, 0xb, 0xa, 0x65, 0xc5,
- 0x5c, 0x20, 0x0, 0xd, 0x59, 0x10, 0xb0, 0xb,
- 0x0, 0x7, 0xbb, 0x9, 0x65, 0xc5, 0x5c, 0x0,
- 0x7, 0xb, 0x9, 0x10, 0xb0, 0xb, 0x0, 0x0,
- 0xb, 0x9, 0x65, 0xc5, 0x5c, 0x0, 0x0, 0xb,
- 0x9, 0x10, 0xb0, 0xb, 0x0, 0x0, 0xb, 0x9,
- 0x10, 0xb0, 0xb, 0x0, 0x4, 0xc7, 0xa, 0x10,
- 0xb2, 0x8d, 0x0, 0x0, 0x10, 0x2, 0x0, 0x10,
- 0x1, 0x0,
-
- /* U+6368 "捨" */
- 0x0, 0x2, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0xe, 0x0, 0x0, 0xe1, 0x0, 0x0, 0x0, 0xc,
- 0x0, 0x8, 0x57, 0x0, 0x0, 0x0, 0xc, 0x41,
- 0x47, 0x2, 0x90, 0x0, 0x5, 0x5d, 0x55, 0x70,
- 0x0, 0x8c, 0x72, 0x0, 0xc, 0x14, 0x25, 0xc5,
- 0x63, 0x71, 0x0, 0xc, 0x43, 0x0, 0xb0, 0x2,
- 0x20, 0x1, 0x8e, 0x24, 0x65, 0xc5, 0x56, 0x50,
- 0xc, 0x4c, 0x0, 0x0, 0xb0, 0x0, 0x0, 0x0,
- 0xc, 0x0, 0xc5, 0x85, 0x5d, 0x10, 0x0, 0xc,
- 0x0, 0xb0, 0x0, 0xc, 0x0, 0x1, 0xc, 0x0,
- 0xb0, 0x0, 0xc, 0x0, 0x4, 0xd8, 0x0, 0xd5,
- 0x55, 0x5d, 0x0, 0x0, 0x10, 0x0, 0x20, 0x0,
- 0x1, 0x0,
-
- /* U+6388 "授" */
- 0x0, 0x3, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0,
- 0xd, 0x0, 0x1, 0x47, 0xad, 0x40, 0x0, 0xb,
- 0x1, 0x43, 0x30, 0x9, 0x20, 0x5, 0x5c, 0x84,
- 0x90, 0xa2, 0x2a, 0x0, 0x0, 0xb, 0x0, 0x75,
- 0x63, 0x71, 0x0, 0x0, 0xb, 0x27, 0x55, 0x55,
- 0x85, 0xb0, 0x0, 0x1d, 0x5c, 0x0, 0x0, 0x5,
- 0x30, 0x17, 0xab, 0x2, 0x55, 0x55, 0xa4, 0x0,
- 0x17, 0xb, 0x0, 0x5, 0x2, 0xc1, 0x0, 0x0,
- 0xb, 0x0, 0x3, 0x5b, 0x20, 0x0, 0x0, 0xb,
- 0x0, 0x0, 0xd8, 0x0, 0x0, 0x0, 0xb, 0x0,
- 0x2a, 0x48, 0x93, 0x0, 0x5, 0xd7, 0x16, 0x60,
- 0x0, 0x4b, 0xc2, 0x0, 0x10, 0x10, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6392 "排" */
- 0x0, 0x5, 0x0, 0x4, 0x10, 0x40, 0x0, 0x0,
- 0xc, 0x0, 0x9, 0x50, 0xd0, 0x0, 0x0, 0xb,
- 0x0, 0x9, 0x20, 0xb0, 0x0, 0x5, 0x5c, 0x96,
- 0x5b, 0x20, 0xc5, 0x84, 0x0, 0xb, 0x0, 0x9,
- 0x20, 0xb0, 0x0, 0x0, 0xb, 0x11, 0x9, 0x20,
- 0xb0, 0x10, 0x0, 0x2d, 0x52, 0x5b, 0x20, 0xc5,
- 0x82, 0x1b, 0xab, 0x0, 0x9, 0x20, 0xb0, 0x0,
- 0x3, 0xb, 0x0, 0x9, 0x20, 0xb0, 0x21, 0x0,
- 0xb, 0x15, 0x5b, 0x20, 0xc5, 0x64, 0x0, 0xb,
- 0x0, 0x9, 0x20, 0xb0, 0x0, 0x1, 0xb, 0x0,
- 0x9, 0x20, 0xb0, 0x0, 0x3, 0xc7, 0x0, 0x9,
- 0x20, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
- 0x10, 0x0,
-
- /* U+639B "掛" */
- 0x0, 0x20, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0xa3, 0x0, 0x1b, 0x0, 0xb2, 0x0, 0x0, 0xa1,
- 0x0, 0x19, 0x0, 0xb0, 0x0, 0x0, 0xa2, 0x25,
- 0x5b, 0x91, 0xb0, 0x0, 0x35, 0xc6, 0x40, 0x19,
- 0x0, 0xb0, 0x0, 0x0, 0xa1, 0x0, 0x19, 0x13,
- 0xb5, 0x0, 0x0, 0xa2, 0x35, 0x57, 0x54, 0xb4,
- 0xb0, 0x3, 0xd4, 0x0, 0x1b, 0x0, 0xb0, 0xa0,
- 0x6a, 0xb1, 0x15, 0x6b, 0x83, 0xb0, 0x0, 0x0,
- 0xa1, 0x0, 0x19, 0x0, 0xb0, 0x0, 0x0, 0xa1,
- 0x0, 0x19, 0x0, 0xb0, 0x0, 0x0, 0xb0, 0x2,
- 0x5b, 0x53, 0xb0, 0x0, 0x8, 0xb0, 0x5b, 0x40,
- 0x0, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+63A1 "採" */
- 0x0, 0x2, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0,
- 0xd, 0x0, 0x14, 0x69, 0xcc, 0x10, 0x0, 0xb,
- 0x3, 0x33, 0x0, 0x2, 0x40, 0x0, 0xb, 0x44,
- 0x31, 0x90, 0x9, 0x60, 0x5, 0x5c, 0x52, 0xc2,
- 0x85, 0x37, 0x0, 0x0, 0xb, 0x0, 0x40, 0x51,
- 0x40, 0x0, 0x0, 0xb, 0x42, 0x0, 0x93, 0x2,
- 0x40, 0x0, 0x6d, 0x24, 0x59, 0xf9, 0x55, 0x40,
- 0x1e, 0x6b, 0x0, 0xb, 0xb8, 0x10, 0x0, 0x1,
- 0xb, 0x0, 0x46, 0x92, 0xa0, 0x0, 0x0, 0xb,
- 0x1, 0x80, 0x92, 0x69, 0x0, 0x0, 0xb, 0x7,
- 0x0, 0x92, 0xb, 0xb2, 0x4, 0xd8, 0x20, 0x0,
- 0x92, 0x0, 0x20, 0x0, 0x10, 0x0, 0x0, 0x20,
- 0x0, 0x0,
-
- /* U+63A2 "探" */
- 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xd, 0x0, 0x75, 0x55, 0x55, 0x82, 0x0, 0xb,
- 0x1, 0xb0, 0x0, 0x0, 0xa1, 0x0, 0xb, 0x44,
- 0x25, 0x92, 0x51, 0x0, 0x5, 0x5c, 0x53, 0x1b,
- 0x10, 0x3d, 0x30, 0x0, 0xb, 0x3, 0x81, 0x1a,
- 0x3, 0x50, 0x0, 0xd, 0x62, 0x0, 0x1a, 0x0,
- 0x50, 0x6, 0xbb, 0x5, 0x55, 0xec, 0x75, 0x63,
- 0x8, 0xb, 0x0, 0x6, 0x9a, 0x70, 0x0, 0x0,
- 0xb, 0x0, 0x1b, 0x1a, 0x46, 0x0, 0x0, 0xb,
- 0x0, 0x91, 0x1a, 0xa, 0x70, 0x0, 0xb, 0x7,
- 0x10, 0x1a, 0x0, 0xb6, 0x2, 0xb7, 0x20, 0x0,
- 0x19, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+63A5 "接" */
- 0x0, 0x4, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0,
- 0xc, 0x0, 0x0, 0x94, 0x0, 0x0, 0x0, 0xb,
- 0x1, 0x55, 0x77, 0x58, 0x60, 0x5, 0x5c, 0x77,
- 0x34, 0x0, 0xa1, 0x0, 0x0, 0xb, 0x0, 0xb,
- 0x23, 0x70, 0x0, 0x0, 0xb, 0x5, 0x57, 0x68,
- 0x55, 0xb1, 0x0, 0xc, 0x51, 0x1, 0xc0, 0x0,
- 0x0, 0x16, 0xab, 0x0, 0x8, 0x50, 0x0, 0x50,
- 0x18, 0xb, 0x35, 0x5c, 0x55, 0xc6, 0x62, 0x0,
- 0xb, 0x0, 0x73, 0x2, 0xb0, 0x0, 0x0, 0xb,
- 0x0, 0x57, 0x7c, 0x20, 0x0, 0x1, 0xb, 0x0,
- 0x1, 0xa6, 0xb8, 0x0, 0x2, 0xc7, 0x3, 0x78,
- 0x10, 0x7, 0xa0, 0x0, 0x10, 0x31, 0x0, 0x0,
- 0x0, 0x10,
-
- /* U+63A7 "控" */
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xe, 0x10, 0x1, 0x82, 0x0, 0x0, 0x0, 0xc,
- 0x0, 0x10, 0x39, 0x0, 0x10, 0x5, 0x5d, 0x83,
- 0x94, 0x44, 0x46, 0xb0, 0x0, 0xc, 0x5, 0x55,
- 0x32, 0x4, 0x0, 0x0, 0xc, 0x0, 0x1c, 0x20,
- 0x97, 0x0, 0x0, 0xd, 0x63, 0x91, 0x0, 0xb,
- 0x50, 0x5, 0xad, 0x4, 0x0, 0x0, 0x26, 0x10,
- 0x1a, 0x1c, 0x0, 0x55, 0xc6, 0x54, 0x0, 0x0,
- 0xc, 0x0, 0x0, 0xa2, 0x0, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0xa2, 0x0, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0xa2, 0x1, 0x60, 0x5, 0xb9, 0x6, 0x55,
- 0x55, 0x55, 0x50, 0x0, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+63A8 "推" */
- 0x0, 0x2, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0,
- 0xd, 0x0, 0x3d, 0x9, 0x20, 0x0, 0x0, 0xb,
- 0x0, 0x76, 0x4, 0x70, 0x20, 0x5, 0x5c, 0x76,
- 0xb5, 0x5a, 0x55, 0x80, 0x0, 0xb, 0x0, 0xf0,
- 0xb, 0x0, 0x0, 0x0, 0xb, 0x7, 0xd0, 0xb,
- 0x3, 0x20, 0x0, 0x1d, 0x45, 0xb5, 0x5c, 0x55,
- 0x30, 0x19, 0x9b, 0x0, 0xb0, 0xb, 0x0, 0x0,
- 0x5, 0xb, 0x0, 0xb5, 0x5c, 0x57, 0x80, 0x0,
- 0xb, 0x0, 0xb0, 0xb, 0x0, 0x0, 0x0, 0xb,
- 0x0, 0xb0, 0xb, 0x0, 0x0, 0x0, 0xb, 0x0,
- 0xb5, 0x5c, 0x56, 0xc1, 0x3, 0xc6, 0x0, 0xb0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+63CF "描" */
- 0x0, 0x4, 0x0, 0x1, 0x0, 0x10, 0x0, 0x0,
- 0xe, 0x10, 0x8, 0x60, 0xc2, 0x0, 0x0, 0xc,
- 0x0, 0x8, 0x30, 0xc0, 0x20, 0x0, 0xc, 0x26,
- 0x5a, 0x75, 0xd5, 0x81, 0x6, 0x5d, 0x54, 0x8,
- 0x30, 0xc0, 0x0, 0x0, 0xc, 0x0, 0x4, 0x10,
- 0x40, 0x10, 0x0, 0xc, 0x53, 0xc5, 0x5a, 0x56,
- 0xc0, 0x5, 0x9d, 0x10, 0xb0, 0xb, 0x1, 0xa0,
- 0x9, 0x1c, 0x0, 0xc5, 0x5c, 0x56, 0xa0, 0x0,
- 0xc, 0x0, 0xb0, 0xb, 0x1, 0xa0, 0x0, 0xc,
- 0x0, 0xb0, 0xb, 0x1, 0xa0, 0x3, 0x2c, 0x0,
- 0xc5, 0x5c, 0x56, 0xa0, 0x2, 0xc7, 0x0, 0xa0,
- 0x0, 0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+63D0 "提" */
- 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xd, 0x0, 0x85, 0x55, 0x5a, 0x0, 0x0, 0xb,
- 0x0, 0x91, 0x0, 0xa, 0x0, 0x5, 0x5c, 0x84,
- 0x96, 0x55, 0x5a, 0x0, 0x0, 0xb, 0x0, 0x91,
- 0x0, 0xa, 0x0, 0x0, 0xb, 0x1, 0xa6, 0x55,
- 0x5a, 0x0, 0x0, 0xd, 0x60, 0x30, 0x0, 0x0,
- 0x50, 0x8, 0xab, 0x17, 0x55, 0x5c, 0x55, 0x62,
- 0x6, 0xb, 0x2, 0xa0, 0xb, 0x0, 0x0, 0x0,
- 0xb, 0x5, 0x70, 0xc, 0x56, 0x60, 0x0, 0xb,
- 0x9, 0x63, 0xb, 0x0, 0x0, 0x1, 0x2b, 0x26,
- 0x8, 0x9c, 0x0, 0x0, 0x2, 0xc6, 0x50, 0x0,
- 0x4a, 0xde, 0xd2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+63DB "換" */
- 0x0, 0x2, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x2c, 0x0, 0x9, 0x41, 0x20, 0x0, 0x0, 0x19,
- 0x0, 0x38, 0x5b, 0xa0, 0x0, 0x5, 0x6b, 0x94,
- 0x50, 0x26, 0x0, 0x0, 0x0, 0x19, 0x0, 0xa5,
- 0x75, 0x5b, 0x20, 0x0, 0x19, 0x3, 0xb5, 0x65,
- 0xa, 0x0, 0x0, 0x2d, 0x60, 0xb8, 0x1, 0xcb,
- 0x0, 0x9, 0xc9, 0x0, 0xc2, 0x81, 0x6b, 0x0,
- 0x5, 0x19, 0x0, 0x40, 0xc0, 0x4, 0x30, 0x0,
- 0x19, 0x16, 0x56, 0xb7, 0x55, 0x81, 0x0, 0x19,
- 0x0, 0x9, 0x25, 0x20, 0x0, 0x0, 0x19, 0x0,
- 0x76, 0x0, 0xa6, 0x0, 0x4, 0xc7, 0x37, 0x20,
- 0x0, 0x9, 0xd2, 0x0, 0x20, 0x10, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+63EE "揮" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x93, 0x7, 0x55, 0x55, 0x56, 0x80, 0x0, 0x92,
- 0xe, 0x10, 0x62, 0x7, 0x30, 0x0, 0x93, 0x13,
- 0x0, 0xb1, 0x6, 0x0, 0x35, 0xb7, 0x45, 0x55,
- 0xc5, 0x55, 0x20, 0x0, 0x92, 0x6, 0x55, 0xc5,
- 0x5a, 0x20, 0x0, 0x93, 0x49, 0x20, 0xb0, 0xb,
- 0x0, 0x1, 0xc6, 0x9, 0x65, 0xc5, 0x5c, 0x0,
- 0x6c, 0xb2, 0x9, 0x65, 0xc5, 0x5c, 0x0, 0x10,
- 0x92, 0x5, 0x0, 0xb0, 0x4, 0x0, 0x0, 0x92,
- 0x26, 0x55, 0xc5, 0x58, 0x80, 0x0, 0x92, 0x0,
- 0x0, 0xb0, 0x0, 0x0, 0x29, 0xe0, 0x0, 0x0,
- 0xb0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x30,
- 0x0, 0x0,
-
- /* U+63FA "揺" */
- 0x0, 0x2, 0x0, 0x0, 0x0, 0x1, 0x10, 0x0,
- 0xd, 0x0, 0x1, 0x48, 0xbd, 0xa0, 0x0, 0xb,
- 0x2, 0x44, 0x31, 0x0, 0x80, 0x0, 0xb, 0x34,
- 0x20, 0x91, 0x5, 0xa0, 0x5, 0x5c, 0x53, 0xc1,
- 0x67, 0x8, 0x0, 0x0, 0xb, 0x0, 0x40, 0x1,
- 0x22, 0x20, 0x0, 0xb, 0x53, 0x55, 0x5b, 0x56,
- 0x50, 0x1, 0x7d, 0x10, 0x0, 0xb, 0x0, 0x20,
- 0x1e, 0x5b, 0x6, 0x55, 0x5c, 0x55, 0x95, 0x1,
- 0xb, 0x0, 0x40, 0xb, 0x0, 0x20, 0x0, 0xb,
- 0x0, 0xc0, 0xb, 0x0, 0xc0, 0x0, 0x1b, 0x0,
- 0xa0, 0xb, 0x0, 0xa0, 0x5, 0xe7, 0x1, 0xa5,
- 0x57, 0x55, 0xb0, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x10,
-
- /* U+643A "携" */
- 0x0, 0x2, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0xd, 0x0, 0x1d, 0x1b, 0x10, 0x0, 0x0, 0xb,
- 0x0, 0x88, 0x5b, 0x67, 0x80, 0x5, 0x5c, 0x93,
- 0xf0, 0xa, 0x3, 0x10, 0x0, 0xb, 0x6, 0xb5,
- 0x5c, 0x55, 0x30, 0x0, 0xb, 0x22, 0xb5, 0x5c,
- 0x59, 0x30, 0x0, 0x1d, 0x40, 0xb0, 0xa, 0x0,
- 0x30, 0x19, 0xab, 0x0, 0xb5, 0x56, 0x55, 0x60,
- 0x6, 0xb, 0x3, 0x68, 0x55, 0x96, 0x0, 0x0,
- 0xb, 0x0, 0xd, 0x0, 0xb0, 0x40, 0x0, 0xb,
- 0x0, 0x48, 0x1, 0x75, 0xd0, 0x0, 0xb, 0x1,
- 0xb1, 0x0, 0x3, 0x80, 0x4, 0xc8, 0x38, 0x10,
- 0x2, 0x9c, 0x20, 0x0, 0x10, 0x10, 0x0, 0x0,
- 0x12, 0x0,
-
- /* U+64C1 "擁" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb1, 0x0, 0x0, 0xa1, 0x0, 0x0, 0x0, 0xb0,
- 0x25, 0x55, 0x96, 0x56, 0xa0, 0x0, 0xb0, 0x1,
- 0xb0, 0x44, 0x60, 0x0, 0x25, 0xc6, 0x56, 0x22,
- 0xa2, 0x73, 0x10, 0x0, 0xb0, 0x5, 0x4c, 0xc5,
- 0x96, 0x70, 0x0, 0xb2, 0x68, 0xb6, 0xb0, 0xb0,
- 0x0, 0x0, 0xc4, 0x5, 0x32, 0xc5, 0xc6, 0x60,
- 0x3c, 0xd0, 0x37, 0x6a, 0xb0, 0xb0, 0x0, 0x13,
- 0xb0, 0x56, 0xb1, 0xc5, 0xc6, 0x60, 0x0, 0xb0,
- 0x2, 0x70, 0xb0, 0xb0, 0x0, 0x0, 0xb0, 0x9,
- 0x0, 0xb0, 0xb0, 0x40, 0x18, 0xd0, 0x60, 0x0,
- 0xd5, 0x65, 0x60, 0x0, 0x10, 0x0, 0x0, 0x10,
- 0x0, 0x0,
-
- /* U+64C7 "擇" */
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1c, 0x0, 0x85, 0x55, 0x55, 0x90, 0x0, 0x1a,
- 0x0, 0xa0, 0xb0, 0xa0, 0xa0, 0x0, 0xa, 0x20,
- 0xc5, 0xc5, 0xc5, 0xb0, 0x5, 0x5c, 0x73, 0x60,
- 0x1a, 0x0, 0x40, 0x0, 0xa, 0x0, 0x45, 0x5c,
- 0x5a, 0x20, 0x0, 0xa, 0x50, 0x0, 0xb, 0x0,
- 0x40, 0x0, 0x3d, 0x13, 0x69, 0x55, 0x86, 0x52,
- 0x8, 0xaa, 0x0, 0x4, 0x80, 0x93, 0x0, 0x6,
- 0x1a, 0x0, 0x76, 0x79, 0x67, 0x40, 0x0, 0xa,
- 0x0, 0x0, 0xb, 0x0, 0x60, 0x0, 0xa, 0x7,
- 0x55, 0x5c, 0x55, 0x52, 0x4, 0xa9, 0x0, 0x0,
- 0xb, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x5,
- 0x0, 0x0,
-
- /* U+64D4 "擔" */
- 0x0, 0x1, 0x0, 0x2, 0x10, 0x0, 0x0, 0x0,
- 0xd, 0x0, 0xa, 0x60, 0x10, 0x0, 0x0, 0xb,
- 0x0, 0x3a, 0x55, 0xd1, 0x0, 0x0, 0xb, 0x20,
- 0xb5, 0x57, 0x65, 0xa0, 0x5, 0x5c, 0x65, 0xc1,
- 0xa2, 0x37, 0x0, 0x0, 0xb, 0x0, 0xb5, 0x18,
- 0x36, 0x30, 0x0, 0xb, 0x62, 0xb5, 0x56, 0x55,
- 0x81, 0x0, 0x3d, 0x10, 0xb2, 0x55, 0x59, 0x0,
- 0x9, 0x9b, 0x0, 0xa0, 0x0, 0x5, 0x0, 0x5,
- 0xb, 0x3, 0x72, 0x65, 0x55, 0x10, 0x0, 0xb,
- 0x8, 0x28, 0x65, 0x5b, 0x20, 0x1, 0xb, 0x7,
- 0x8, 0x30, 0xa, 0x10, 0x2, 0xd7, 0x50, 0x8,
- 0x75, 0x5a, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+64DA "據" */
- 0x0, 0x1, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0,
- 0x1b, 0x0, 0x0, 0xb1, 0x4, 0x0, 0x0, 0x19,
- 0x1, 0x0, 0xb5, 0x55, 0x20, 0x0, 0x19, 0x29,
- 0x65, 0xb6, 0x55, 0xd1, 0x5, 0x6b, 0x6a, 0x10,
- 0xb5, 0x83, 0x20, 0x0, 0x19, 0x9, 0x44, 0xb1,
- 0x7, 0x0, 0x0, 0x1a, 0x49, 0x10, 0x37, 0x76,
- 0x40, 0x0, 0x4c, 0xa, 0x45, 0xa8, 0x57, 0x60,
- 0x9, 0xa9, 0xa, 0x5, 0x84, 0x1b, 0x20, 0x4,
- 0x19, 0xa, 0x23, 0x8a, 0x90, 0x0, 0x0, 0x19,
- 0x26, 0x56, 0x4a, 0x97, 0x0, 0x0, 0x19, 0x61,
- 0x27, 0x60, 0xb4, 0xc2, 0x5, 0xc7, 0x42, 0x30,
- 0x39, 0x90, 0x10, 0x0, 0x20, 0x0, 0x0, 0x2,
- 0x0, 0x0,
-
- /* U+652F "支" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc3, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc1, 0x0, 0x6, 0x10, 0x6, 0x55, 0x55,
- 0xd5, 0x55, 0x57, 0x40, 0x0, 0x0, 0x0, 0xc1,
- 0x0, 0x0, 0x0, 0x0, 0x25, 0x55, 0xd5, 0x59,
- 0x10, 0x0, 0x0, 0x0, 0x40, 0x0, 0x4a, 0x0,
- 0x0, 0x0, 0x0, 0x51, 0x0, 0xc2, 0x0, 0x0,
- 0x0, 0x0, 0x9, 0x7, 0x70, 0x0, 0x0, 0x0,
- 0x0, 0x5, 0xab, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x5, 0xdb, 0x20, 0x0, 0x0, 0x0, 0x1, 0x97,
- 0x3, 0xca, 0x63, 0x10, 0x4, 0x67, 0x10, 0x0,
- 0x4, 0xae, 0x60, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6539 "改" */
- 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x1d, 0x0, 0x0, 0x5, 0x55, 0x5c,
- 0x15, 0x70, 0x0, 0x0, 0x0, 0x0, 0xb0, 0xa1,
- 0x0, 0x41, 0x0, 0x0, 0xb, 0xb, 0x55, 0xb6,
- 0x30, 0x20, 0x0, 0xb6, 0x70, 0xa, 0x0, 0xb,
- 0x65, 0x58, 0x55, 0x10, 0xb0, 0x0, 0xb1, 0x0,
- 0x0, 0x25, 0xb, 0x0, 0xb, 0x10, 0x0, 0x0,
- 0x95, 0x60, 0x0, 0xb1, 0x0, 0x2, 0x6, 0xc0,
- 0x0, 0xb, 0x13, 0x75, 0x0, 0x8c, 0x20, 0x0,
- 0xcc, 0x60, 0x0, 0x85, 0x1c, 0x40, 0x4, 0x10,
- 0x4, 0x71, 0x0, 0x2d, 0x80, 0x0, 0x1, 0x10,
- 0x0, 0x0, 0x0,
-
- /* U+653E "放" */
- 0x0, 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0,
- 0x9, 0x30, 0x0, 0xc4, 0x0, 0x0, 0x0, 0x1,
- 0xb0, 0x0, 0xd0, 0x0, 0x0, 0x25, 0x65, 0x55,
- 0xa4, 0xb5, 0x59, 0x80, 0x0, 0x92, 0x0, 0x8,
- 0x20, 0x57, 0x0, 0x0, 0x92, 0x3, 0xa, 0x20,
- 0x75, 0x0, 0x0, 0xa6, 0x5c, 0x52, 0x60, 0xb1,
- 0x0, 0x0, 0xb0, 0xb, 0x0, 0x80, 0xc0, 0x0,
- 0x0, 0xb0, 0xb, 0x0, 0x68, 0x60, 0x0, 0x0,
- 0xa0, 0xb, 0x0, 0x1f, 0x0, 0x0, 0x4, 0x60,
- 0xc, 0x0, 0x98, 0x90, 0x0, 0x9, 0x6, 0xa8,
- 0x8, 0x30, 0x8a, 0x10, 0x43, 0x0, 0x83, 0x61,
- 0x0, 0x7, 0x91, 0x0, 0x0, 0x1, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+653F "政" */
- 0x0, 0x0, 0x0, 0x0, 0x22, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x88, 0x0, 0x0, 0x6, 0x55,
- 0x65, 0xc3, 0xb1, 0x0, 0x0, 0x0, 0x0, 0xb0,
- 0x0, 0xd5, 0x56, 0xb2, 0x0, 0x0, 0xb0, 0x4,
- 0x70, 0xd, 0x0, 0x1, 0xb0, 0xb1, 0x28, 0x50,
- 0xb, 0x0, 0x1, 0xa0, 0xc5, 0x55, 0x60, 0x38,
- 0x0, 0x1, 0xa0, 0xb0, 0x20, 0x52, 0x75, 0x0,
- 0x1, 0xa0, 0xb0, 0x0, 0x8, 0xc0, 0x0, 0x1,
- 0xa0, 0xb0, 0x31, 0xa, 0x90, 0x0, 0x2, 0xc8,
- 0xb6, 0x10, 0x4b, 0xc1, 0x0, 0x1d, 0x72, 0x0,
- 0x6, 0x70, 0x3d, 0x40, 0x0, 0x0, 0x2, 0x62,
- 0x0, 0x3, 0xc4, 0x0, 0x0, 0x1, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6545 "故" */
- 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0xc0, 0x0, 0x4c, 0x0, 0x0, 0x0, 0x0,
- 0xb0, 0x0, 0x75, 0x0, 0x0, 0x0, 0x0, 0xb0,
- 0x30, 0xb0, 0x0, 0x40, 0x5, 0x55, 0xc5, 0x73,
- 0xd5, 0x5d, 0x61, 0x0, 0x0, 0xb0, 0x6, 0x80,
- 0xc, 0x0, 0x0, 0x0, 0xb0, 0x6, 0x50, 0x1b,
- 0x0, 0x0, 0xc5, 0x79, 0x80, 0x34, 0x47, 0x0,
- 0x0, 0xb0, 0x6, 0x50, 0x9, 0x92, 0x0, 0x0,
- 0xb0, 0x6, 0x50, 0x9, 0xb0, 0x0, 0x0, 0xb0,
- 0x6, 0x50, 0xb, 0xb0, 0x0, 0x0, 0xd5, 0x59,
- 0x51, 0x92, 0x5b, 0x20, 0x0, 0x50, 0x1, 0x55,
- 0x0, 0x5, 0xd2, 0x0, 0x0, 0x1, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6548 "效" */
- 0x0, 0x1, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
- 0x5, 0x60, 0x0, 0x1e, 0x20, 0x0, 0x0, 0x0,
- 0xd1, 0x21, 0x48, 0x0, 0x0, 0x3, 0x65, 0x65,
- 0x75, 0x92, 0x0, 0x60, 0x0, 0x2b, 0x7, 0x40,
- 0xb5, 0x5d, 0x51, 0x0, 0x93, 0x0, 0xd4, 0x90,
- 0xb, 0x0, 0x3, 0x60, 0x6, 0x36, 0x50, 0x29,
- 0x0, 0x5, 0x14, 0x1c, 0x12, 0x34, 0x64, 0x0,
- 0x0, 0x3, 0xc4, 0x0, 0x9, 0xb0, 0x0, 0x0,
- 0x2, 0xba, 0x0, 0xa, 0x70, 0x0, 0x0, 0xa,
- 0x8, 0x70, 0x3a, 0xa0, 0x0, 0x0, 0x81, 0x1,
- 0x54, 0x60, 0x6b, 0x10, 0x6, 0x10, 0x0, 0x53,
- 0x0, 0x7, 0xb1, 0x0, 0x0, 0x2, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6557 "敗" */
- 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x6,
- 0x55, 0x55, 0x90, 0x7a, 0x0, 0x0, 0xb, 0x0,
- 0x1, 0xb0, 0xa2, 0x0, 0x0, 0xb, 0x0, 0x1,
- 0xa0, 0xc5, 0x57, 0xb2, 0xb, 0x55, 0x55, 0xa3,
- 0x80, 0xc, 0x0, 0xb, 0x0, 0x1, 0xa7, 0x40,
- 0xc, 0x0, 0xb, 0x55, 0x55, 0xa6, 0x50, 0x29,
- 0x0, 0xb, 0x0, 0x1, 0xb0, 0x42, 0x75, 0x0,
- 0xb, 0x55, 0x55, 0xa0, 0x7, 0xb0, 0x0, 0x7,
- 0x11, 0x10, 0x40, 0x9, 0x80, 0x0, 0x0, 0xa6,
- 0x1a, 0x30, 0x3a, 0xb1, 0x0, 0x5, 0x60, 0x2,
- 0x72, 0x80, 0x3d, 0x20, 0x24, 0x0, 0x0, 0x44,
- 0x0, 0x4, 0xd3, 0x0, 0x0, 0x1, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6559 "教" */
- 0x0, 0x0, 0x10, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0xc0, 0x0, 0x9, 0x70, 0x0, 0x0, 0x0,
- 0xb3, 0x2b, 0xc, 0x10, 0x0, 0x1, 0x55, 0xc5,
- 0xd2, 0xa, 0x0, 0x50, 0x5, 0x55, 0xc8, 0xaa,
- 0x67, 0x4a, 0x62, 0x0, 0x0, 0x38, 0x0, 0x73,
- 0xa, 0x10, 0x1, 0x57, 0xb5, 0xd3, 0x44, 0xb,
- 0x0, 0x0, 0x46, 0x16, 0x22, 0x6, 0xa, 0x0,
- 0x4, 0x20, 0x85, 0x2, 0x6, 0x56, 0x0, 0x1,
- 0x36, 0xc8, 0x52, 0x3, 0xd0, 0x0, 0x8, 0x72,
- 0x83, 0x0, 0x7, 0xc2, 0x0, 0x0, 0x0, 0x83,
- 0x0, 0x75, 0x1c, 0x20, 0x0, 0x27, 0xd1, 0x26,
- 0x20, 0x3, 0xd4, 0x0, 0x0, 0x30, 0x10, 0x0,
- 0x0, 0x0,
-
- /* U+6562 "敢" */
- 0x0, 0x0, 0x0, 0x0, 0x12, 0x0, 0x0, 0x1,
- 0x55, 0x58, 0x0, 0x5a, 0x0, 0x0, 0x0, 0x0,
- 0x48, 0x0, 0x83, 0x0, 0x0, 0x15, 0x55, 0xa6,
- 0x86, 0xb5, 0x56, 0xa0, 0x0, 0xb0, 0xb, 0x0,
- 0xa0, 0x1a, 0x0, 0x0, 0xb0, 0xb, 0x5, 0x80,
- 0x38, 0x0, 0x0, 0xc5, 0x5c, 0x7, 0x50, 0x65,
- 0x0, 0x0, 0xb0, 0xb, 0x13, 0x34, 0x92, 0x0,
- 0x0, 0xc5, 0x5c, 0x0, 0x8, 0xb0, 0x0, 0x0,
- 0xb0, 0xb, 0x33, 0x9, 0x70, 0x0, 0x16, 0xe9,
- 0x7d, 0x10, 0x1b, 0xb0, 0x0, 0x8, 0x20, 0xb,
- 0x0, 0x91, 0x4b, 0x10, 0x0, 0x0, 0xb, 0x27,
- 0x10, 0x5, 0xc2, 0x0, 0x0, 0x1, 0x20, 0x0,
- 0x0, 0x0,
-
- /* U+6570 "数" */
- 0x0, 0x0, 0x30, 0x0, 0x11, 0x0, 0x0, 0x1,
- 0x40, 0xc1, 0x62, 0x5b, 0x0, 0x0, 0x0, 0xb3,
- 0xb1, 0x90, 0x93, 0x0, 0x0, 0x0, 0x31, 0xb3,
- 0x41, 0xb0, 0x0, 0x60, 0x6, 0x5b, 0xe5, 0x56,
- 0xb5, 0x5d, 0x51, 0x0, 0x48, 0xb9, 0x77, 0x50,
- 0x1a, 0x0, 0x4, 0x60, 0xa0, 0x54, 0x50, 0x38,
- 0x0, 0x11, 0x4, 0x90, 0x10, 0x52, 0x65, 0x0,
- 0x6, 0x5b, 0x75, 0xc0, 0x17, 0xb1, 0x0, 0x0,
- 0x29, 0x7, 0x50, 0xa, 0xb0, 0x0, 0x0, 0x26,
- 0x8d, 0x20, 0xb, 0xa0, 0x0, 0x0, 0x6, 0x84,
- 0xc2, 0x93, 0x8a, 0x10, 0x4, 0x62, 0x0, 0x36,
- 0x10, 0x7, 0xc1, 0x0, 0x0, 0x1, 0x10, 0x0,
- 0x0, 0x0,
-
- /* U+6574 "整" */
- 0x0, 0x0, 0x30, 0x0, 0x22, 0x0, 0x0, 0x0,
- 0x0, 0xc0, 0x30, 0x86, 0x0, 0x0, 0x5, 0x65,
- 0xc5, 0x63, 0xc5, 0x57, 0xa0, 0x0, 0x95, 0xc5,
- 0xa3, 0xa0, 0x29, 0x0, 0x0, 0xa0, 0xb0, 0xa7,
- 0x24, 0x84, 0x0, 0x0, 0xb7, 0xe5, 0x90, 0x9,
- 0xb0, 0x0, 0x0, 0x2a, 0xc8, 0x60, 0x2a, 0xb2,
- 0x0, 0x3, 0x70, 0xc0, 0x65, 0x60, 0x2c, 0xa1,
- 0x12, 0x46, 0x65, 0x86, 0x55, 0x96, 0x10, 0x0,
- 0x0, 0x20, 0x57, 0x0, 0x20, 0x0, 0x0, 0x0,
- 0xc0, 0x5a, 0x56, 0x80, 0x0, 0x0, 0x0, 0xb0,
- 0x57, 0x0, 0x0, 0x0, 0x4, 0x55, 0xc5, 0x8a,
- 0x55, 0x5b, 0x90, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6587 "文" */
- 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x83, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x48, 0x0, 0x0, 0x10, 0x5, 0x55, 0x65,
- 0x55, 0x57, 0x5a, 0xa0, 0x0, 0x0, 0x50, 0x0,
- 0x2a, 0x0, 0x0, 0x0, 0x0, 0x51, 0x0, 0x66,
- 0x0, 0x0, 0x0, 0x0, 0x7, 0x0, 0xb1, 0x0,
- 0x0, 0x0, 0x0, 0x8, 0x2, 0xb0, 0x0, 0x0,
- 0x0, 0x0, 0x3, 0x8a, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xaa, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x6, 0x8a, 0x70, 0x0, 0x0, 0x0, 0x1, 0x84,
- 0x0, 0x7d, 0x84, 0x10, 0x3, 0x55, 0x0, 0x0,
- 0x1, 0x8e, 0x80, 0x11, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6599 "料" */
- 0x0, 0x2, 0x0, 0x0, 0x0, 0x30, 0x0, 0x0,
- 0xc, 0x10, 0x0, 0x0, 0xd2, 0x0, 0x5, 0xb,
- 0x9, 0x13, 0x20, 0xc0, 0x0, 0x3, 0x9b, 0x9,
- 0x0, 0xd2, 0xc0, 0x0, 0x0, 0x6b, 0x40, 0x0,
- 0x40, 0xc0, 0x0, 0x5, 0x5d, 0x5a, 0x31, 0x0,
- 0xc0, 0x0, 0x0, 0x2f, 0x10, 0x4, 0x90, 0xc0,
- 0x0, 0x0, 0x9e, 0x79, 0x0, 0xa0, 0xc0, 0x10,
- 0x1, 0x8b, 0x9, 0x10, 0x0, 0xc6, 0xa0, 0x8,
- 0x1b, 0x3, 0x55, 0x55, 0xd0, 0x0, 0x32, 0xb,
- 0x0, 0x0, 0x0, 0xc0, 0x0, 0x0, 0xb, 0x0,
- 0x0, 0x0, 0xc0, 0x0, 0x0, 0xb, 0x0, 0x0,
- 0x0, 0xd0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x10, 0x0,
-
- /* U+65AD "断" */
- 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x8,
- 0x20, 0xb2, 0x0, 0x12, 0x6b, 0x70, 0xb, 0x12,
- 0xb0, 0x92, 0xc3, 0x10, 0x0, 0xb, 0xb, 0xc1,
- 0x90, 0xb0, 0x0, 0x0, 0xb, 0x4, 0xc4, 0x0,
- 0xb0, 0x0, 0x0, 0xb, 0x45, 0xe5, 0x93, 0xc5,
- 0x57, 0xb1, 0xb, 0x4, 0xf4, 0x0, 0xb0, 0x1a,
- 0x0, 0xb, 0x8, 0xc3, 0x90, 0xa0, 0x1a, 0x0,
- 0xb, 0x17, 0xb0, 0xa3, 0x90, 0x1a, 0x0, 0xb,
- 0x50, 0xb0, 0x4, 0x70, 0x1a, 0x0, 0xb, 0x0,
- 0xa1, 0x8, 0x20, 0x1a, 0x0, 0xc, 0x55, 0x59,
- 0x66, 0x0, 0x1a, 0x0, 0x0, 0x0, 0x1, 0x60,
- 0x0, 0x1a, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+65B0 "新" */
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x4, 0x80, 0x0, 0x0, 0x39, 0xa0, 0x4, 0x55,
- 0xb5, 0xb2, 0xb5, 0x41, 0x0, 0x0, 0x61, 0xa,
- 0x20, 0xb0, 0x0, 0x0, 0x0, 0x2a, 0x8, 0x0,
- 0xb0, 0x0, 0x0, 0x6, 0x57, 0x85, 0x87, 0xb5,
- 0x56, 0xc3, 0x0, 0x0, 0xb0, 0x0, 0xb0, 0x1a,
- 0x0, 0x3, 0x55, 0xc5, 0xa3, 0xb0, 0x1a, 0x0,
- 0x0, 0x10, 0xb0, 0x0, 0xb0, 0x1a, 0x0, 0x0,
- 0xd2, 0xb5, 0x41, 0xa0, 0x1a, 0x0, 0x4, 0x60,
- 0xb0, 0xc6, 0x40, 0x1a, 0x0, 0x7, 0x22, 0xb0,
- 0x28, 0x0, 0x1a, 0x0, 0x10, 0xa, 0x70, 0x60,
- 0x0, 0x1a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+65B7 "斷" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9,
- 0x19, 0x2, 0x70, 0x32, 0x6b, 0x60, 0xb, 0x35,
- 0x57, 0x73, 0xc2, 0x0, 0x0, 0xb, 0x4a, 0x16,
- 0xa0, 0xb0, 0x0, 0x0, 0xb, 0x25, 0x67, 0x81,
- 0xb0, 0x0, 0x10, 0xb, 0x55, 0x75, 0x54, 0xb5,
- 0x87, 0x80, 0xb, 0x58, 0x56, 0x90, 0xb0, 0x92,
- 0x0, 0xb, 0xa, 0x16, 0x40, 0xb0, 0x92, 0x0,
- 0xb, 0x68, 0x79, 0xb1, 0xb0, 0x92, 0x0, 0xb,
- 0x18, 0x4, 0x60, 0xa0, 0x92, 0x0, 0xb, 0x48,
- 0x8a, 0x92, 0x80, 0x92, 0x0, 0xb, 0x0, 0x36,
- 0x47, 0x20, 0x92, 0x0, 0x8, 0x55, 0x55, 0x46,
- 0x0, 0x92, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0,
- 0x10, 0x0,
-
- /* U+65B9 "方" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa5, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x29, 0x0, 0x0, 0x20, 0x16, 0x55, 0x55,
- 0x85, 0x55, 0x57, 0xb1, 0x0, 0x0, 0x2, 0xa0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x80, 0x0,
- 0x20, 0x0, 0x0, 0x0, 0x6, 0x95, 0x55, 0xe2,
- 0x0, 0x0, 0x0, 0xa, 0x10, 0x1, 0xc0, 0x0,
- 0x0, 0x0, 0xb, 0x0, 0x3, 0xa0, 0x0, 0x0,
- 0x0, 0x73, 0x0, 0x5, 0x80, 0x0, 0x0, 0x2,
- 0x80, 0x0, 0x8, 0x50, 0x0, 0x0, 0x28, 0x0,
- 0x22, 0xc, 0x20, 0x0, 0x3, 0x50, 0x0, 0x7,
- 0xfa, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x20,
- 0x0, 0x0,
-
- /* U+65BC "於" */
- 0x0, 0x2, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x9, 0x30, 0x0, 0x7a, 0x0, 0x0, 0x0, 0x3,
- 0x52, 0x10, 0xb8, 0x0, 0x0, 0x16, 0x96, 0x57,
- 0x61, 0xb2, 0x60, 0x0, 0x0, 0x92, 0x0, 0x6,
- 0x40, 0xa1, 0x0, 0x0, 0x97, 0x59, 0x19, 0x0,
- 0x2d, 0x20, 0x0, 0xa2, 0xb, 0x61, 0x63, 0x6,
- 0xa0, 0x0, 0xb0, 0xb, 0x10, 0x1b, 0x80, 0x0,
- 0x0, 0xb0, 0xb, 0x0, 0x0, 0x30, 0x0, 0x0,
- 0xa0, 0x1a, 0x0, 0x0, 0x0, 0x0, 0x5, 0x40,
- 0x38, 0x5, 0x95, 0x0, 0x0, 0x8, 0x17, 0xb4,
- 0x0, 0x9, 0xe1, 0x0, 0x32, 0x3, 0x60, 0x0,
- 0x0, 0x63, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+65BD "施" */
- 0x0, 0x10, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0,
- 0x1a, 0x0, 0x0, 0xe2, 0x0, 0x0, 0x0, 0x9,
- 0x20, 0x7, 0x92, 0x24, 0x90, 0x15, 0x75, 0x5b,
- 0x5b, 0x33, 0x33, 0x30, 0x0, 0xb0, 0x0, 0x71,
- 0xd, 0x0, 0x0, 0x0, 0xb0, 0x32, 0x2a, 0xb,
- 0x5, 0x20, 0x0, 0xb5, 0xc3, 0xb, 0x1d, 0x6c,
- 0x10, 0x0, 0xb0, 0xa2, 0x6d, 0x4b, 0xb, 0x0,
- 0x0, 0xb0, 0xb1, 0xb, 0xb, 0xb, 0x0, 0x0,
- 0x90, 0xb0, 0xb, 0xb, 0x6c, 0x0, 0x4, 0x50,
- 0xb0, 0xb, 0xc, 0x12, 0x50, 0x8, 0x32, 0xc0,
- 0xb, 0x3, 0x0, 0x90, 0x23, 0xb, 0x50, 0xc,
- 0xaa, 0xaa, 0xd3, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+65C1 "旁" */
- 0x0, 0x0, 0x1, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x94, 0x0, 0x3, 0x0, 0x0, 0x65,
- 0x65, 0x66, 0x65, 0x78, 0x0, 0x0, 0x0, 0x67,
- 0x0, 0x77, 0x0, 0x0, 0x0, 0x20, 0xa, 0x0,
- 0x70, 0x2, 0x0, 0x3, 0x95, 0x55, 0x85, 0x55,
- 0x5c, 0x60, 0x7, 0x20, 0x0, 0x59, 0x0, 0x14,
- 0x10, 0x4, 0x65, 0x57, 0x78, 0x55, 0x57, 0x90,
- 0x0, 0x0, 0xb, 0x30, 0x0, 0x30, 0x0, 0x0,
- 0x0, 0xd, 0x55, 0x56, 0xd0, 0x0, 0x0, 0x0,
- 0x67, 0x0, 0x4, 0x90, 0x0, 0x0, 0x2, 0xa0,
- 0x2, 0x8, 0x50, 0x0, 0x1, 0x66, 0x0, 0x2,
- 0xcd, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x10,
- 0x0, 0x0,
-
- /* U+65C5 "旅" */
- 0x0, 0x10, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0xb, 0x10, 0x7, 0xa0, 0x0, 0x0, 0x0, 0x7,
- 0x60, 0xb, 0x20, 0x1, 0x0, 0x15, 0x55, 0x5a,
- 0x5b, 0x55, 0x59, 0x60, 0x0, 0xb0, 0x0, 0x62,
- 0x0, 0x12, 0x0, 0x0, 0xb0, 0x4, 0x41, 0x27,
- 0xa6, 0x0, 0x0, 0xb5, 0x5c, 0xc, 0x52, 0x0,
- 0x0, 0x0, 0xb0, 0xa, 0xb, 0x4, 0xb, 0x30,
- 0x0, 0xb0, 0x1a, 0xb, 0x8, 0x61, 0x0, 0x2,
- 0x90, 0x29, 0xb, 0x8, 0x10, 0x0, 0x7, 0x30,
- 0x47, 0xb, 0x2, 0xa0, 0x0, 0x8, 0x16, 0xb3,
- 0xb, 0x54, 0x7a, 0x10, 0x41, 0x4, 0x50, 0xe,
- 0x40, 0x7, 0xc1, 0x0, 0x0, 0x0, 0x1, 0x0,
- 0x0, 0x0,
-
- /* U+65CF "族" */
- 0x0, 0x10, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0,
- 0x48, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0xb,
- 0x0, 0x56, 0x0, 0x5, 0x0, 0x25, 0x85, 0x67,
- 0x98, 0x55, 0x57, 0x20, 0x0, 0xb0, 0x1, 0x6d,
- 0x10, 0x1, 0x0, 0x0, 0xb5, 0x95, 0x58, 0x85,
- 0x68, 0x0, 0x0, 0xb0, 0xb0, 0x70, 0xa1, 0x0,
- 0x0, 0x0, 0xb0, 0xb1, 0x0, 0xa0, 0x2, 0x10,
- 0x0, 0xb0, 0xb5, 0x55, 0xc7, 0x57, 0x50, 0x1,
- 0x90, 0xb0, 0x0, 0xa6, 0x0, 0x0, 0x6, 0x30,
- 0xb0, 0x7, 0x42, 0x70, 0x0, 0x8, 0x29, 0x90,
- 0x48, 0x0, 0x96, 0x0, 0x41, 0x4, 0x26, 0x50,
- 0x0, 0xb, 0x90, 0x0, 0x0, 0x20, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+65E2 "既" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0x55,
- 0x59, 0x25, 0x57, 0x58, 0x70, 0xa1, 0x0, 0xb1,
- 0x30, 0xc0, 0x0, 0xa, 0x10, 0xb, 0x2b, 0xc,
- 0x0, 0x0, 0xa6, 0x55, 0xb3, 0x70, 0xc0, 0x0,
- 0xa, 0x10, 0xb, 0x46, 0xb, 0x0, 0x10, 0xa6,
- 0x55, 0xb6, 0x77, 0xb5, 0x77, 0xa, 0x10, 0x4,
- 0x0, 0x6c, 0x20, 0x0, 0xa1, 0x14, 0x0, 0xa,
- 0xa2, 0x0, 0xa, 0x10, 0x67, 0x2, 0xa9, 0x20,
- 0x0, 0xa1, 0x65, 0xd1, 0x91, 0x92, 0x5, 0xb,
- 0xc3, 0x3, 0x64, 0x9, 0x20, 0x80, 0x31, 0x0,
- 0x53, 0x0, 0x6b, 0xad, 0x0, 0x0, 0x10, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+65E5 "日" */
- 0x95, 0x55, 0x55, 0x5a, 0x2c, 0x0, 0x0, 0x0,
- 0xc0, 0xc0, 0x0, 0x0, 0xc, 0xc, 0x0, 0x0,
- 0x0, 0xc0, 0xc0, 0x0, 0x0, 0xc, 0xd, 0x55,
- 0x55, 0x55, 0xd0, 0xc0, 0x0, 0x0, 0xc, 0xc,
- 0x0, 0x0, 0x0, 0xc0, 0xc0, 0x0, 0x0, 0xc,
- 0xc, 0x0, 0x0, 0x0, 0xc0, 0xd5, 0x55, 0x55,
- 0x5d, 0xa, 0x0, 0x0, 0x0, 0x90, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+65E6 "旦" */
- 0x0, 0x1, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0,
- 0xb6, 0x55, 0x55, 0xd3, 0x0, 0x0, 0xb, 0x10,
- 0x0, 0xc, 0x0, 0x0, 0x0, 0xa1, 0x0, 0x0,
- 0xc0, 0x0, 0x0, 0xa, 0x65, 0x55, 0x5d, 0x0,
- 0x0, 0x0, 0xa1, 0x0, 0x0, 0xc0, 0x0, 0x0,
- 0xa, 0x10, 0x0, 0xc, 0x0, 0x0, 0x0, 0xb6,
- 0x55, 0x55, 0xd0, 0x0, 0x0, 0xb, 0x10, 0x0,
- 0xb, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x11,
- 0x75, 0x55, 0x55, 0x55, 0x55, 0x53,
-
- /* U+65E9 "早" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xa5, 0x55, 0x55, 0xc4, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0xb, 0x10, 0x0, 0x0, 0xc0, 0x0, 0x0,
- 0xb1, 0x0, 0x0, 0xc, 0x55, 0x55, 0x5c, 0x10,
- 0x0, 0x0, 0xc0, 0x0, 0x0, 0xb1, 0x0, 0x0,
- 0xc, 0x55, 0x75, 0x5c, 0x10, 0x0, 0x0, 0x60,
- 0xb, 0x10, 0x40, 0x0, 0x0, 0x0, 0x0, 0xb1,
- 0x0, 0x8, 0x1, 0x75, 0x55, 0x5c, 0x65, 0x55,
- 0x52, 0x0, 0x0, 0x0, 0xb1, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2,
- 0x0, 0x0, 0x0,
-
- /* U+65F6 "时" */
- 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe1, 0x0, 0x85, 0x5a, 0x20,
- 0x0, 0xc, 0x0, 0xc, 0x0, 0xc0, 0x0, 0x0,
- 0xc0, 0x50, 0xc0, 0xc, 0x46, 0x55, 0x5d, 0x57,
- 0x1c, 0x0, 0xc0, 0x0, 0x0, 0xc0, 0x0, 0xc5,
- 0x5d, 0x7, 0x40, 0xc, 0x0, 0xc, 0x0, 0xc0,
- 0xe, 0x10, 0xc0, 0x0, 0xc0, 0xc, 0x0, 0x60,
- 0xc, 0x0, 0xc, 0x0, 0xc0, 0x0, 0x0, 0xc0,
- 0x0, 0xc5, 0x5d, 0x0, 0x0, 0xc, 0x0, 0x9,
- 0x0, 0x30, 0x0, 0x11, 0xc0, 0x0, 0x0, 0x0,
- 0x0, 0x4, 0xd8, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0x0, 0x0,
-
- /* U+6607 "昇" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0x55, 0x55, 0x55, 0x8b, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0x0, 0x47, 0x0, 0x0, 0xd, 0x55,
- 0x55, 0x55, 0x87, 0x0, 0x0, 0xc, 0x0, 0x0,
- 0x0, 0x47, 0x0, 0x0, 0xc, 0x55, 0x75, 0x55,
- 0x75, 0x0, 0x0, 0x2, 0x6a, 0xc2, 0xc, 0x10,
- 0x0, 0x0, 0x33, 0x57, 0x0, 0xc, 0x0, 0x0,
- 0x0, 0x0, 0x47, 0x0, 0xc, 0x3, 0x70, 0x5,
- 0x55, 0x99, 0x55, 0x5d, 0x55, 0x50, 0x0, 0x0,
- 0xa2, 0x0, 0xc, 0x0, 0x0, 0x0, 0x3, 0x80,
- 0x0, 0xc, 0x0, 0x0, 0x0, 0x57, 0x0, 0x0,
- 0xd, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x3,
- 0x0, 0x0,
-
- /* U+660E "明" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10,
- 0x95, 0x55, 0xc2, 0xc5, 0x5d, 0xa, 0x10, 0xb,
- 0xb, 0x0, 0xb0, 0xa1, 0x0, 0xb0, 0xb0, 0xb,
- 0xa, 0x65, 0x5c, 0xc, 0x55, 0xb0, 0xa1, 0x0,
- 0xb0, 0xb0, 0xb, 0xb, 0x0, 0xb, 0xb, 0x0,
- 0xb0, 0xb3, 0x33, 0xc0, 0xc5, 0x5c, 0xc, 0x11,
- 0x1b, 0xb, 0x0, 0x51, 0xb0, 0x0, 0xb0, 0x0,
- 0x0, 0x84, 0x0, 0xb, 0x0, 0x0, 0x47, 0x0,
- 0x10, 0xc0, 0x0, 0x44, 0x0, 0x4, 0xcc, 0x0,
- 0x11, 0x0, 0x0, 0x1, 0x0,
-
- /* U+6613 "易" */
- 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1b,
- 0x55, 0x55, 0x5d, 0x0, 0x0, 0x1b, 0x0, 0x0,
- 0xc, 0x0, 0x0, 0x1c, 0x55, 0x55, 0x5c, 0x0,
- 0x0, 0x1b, 0x0, 0x0, 0xc, 0x0, 0x0, 0x1c,
- 0x85, 0x55, 0x5b, 0x0, 0x0, 0x7, 0xa0, 0x0,
- 0x0, 0x11, 0x0, 0x2b, 0x5b, 0x75, 0xc5, 0xa8,
- 0x2, 0x90, 0x3b, 0x6, 0x70, 0x93, 0x4, 0x1,
- 0xb1, 0xc, 0x10, 0xc0, 0x0, 0x48, 0x10, 0x95,
- 0x0, 0xc0, 0x4, 0x20, 0x19, 0x51, 0x4, 0x90,
- 0x0, 0x15, 0x61, 0x1, 0xae, 0x20, 0x0, 0x20,
- 0x0, 0x0, 0x0, 0x0,
-
- /* U+6614 "昔" */
- 0x0, 0x0, 0x10, 0x0, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x76, 0x0, 0xc2, 0x0, 0x0, 0x0, 0x0,
- 0x74, 0x0, 0xc0, 0x36, 0x0, 0x2, 0x65, 0xa8,
- 0x55, 0xd5, 0x55, 0x0, 0x0, 0x0, 0x74, 0x0,
- 0xc0, 0x0, 0x0, 0x15, 0x55, 0xa8, 0x55, 0xd5,
- 0x5b, 0x80, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc, 0x55, 0x55, 0x5a, 0x70, 0x0,
- 0x0, 0xc, 0x0, 0x0, 0x8, 0x40, 0x0, 0x0,
- 0xc, 0x55, 0x55, 0x5a, 0x40, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0x8, 0x40, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0x8, 0x40, 0x0, 0x0, 0xc, 0x55, 0x55,
- 0x5a, 0x40, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+661F "星" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0x55, 0x55, 0x55, 0x8a, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0x0, 0x57, 0x0, 0x0, 0xd, 0x55,
- 0x55, 0x55, 0x87, 0x0, 0x0, 0xc, 0x0, 0x0,
- 0x0, 0x57, 0x0, 0x0, 0xb, 0x55, 0x65, 0x55,
- 0x86, 0x0, 0x0, 0x9, 0x20, 0x2b, 0x0, 0x0,
- 0x0, 0x0, 0x1e, 0x55, 0x6b, 0x55, 0x6d, 0x20,
- 0x0, 0x82, 0x0, 0x29, 0x0, 0x0, 0x0, 0x2,
- 0x50, 0x0, 0x29, 0x0, 0x82, 0x0, 0x3, 0x5,
- 0x55, 0x6b, 0x55, 0x53, 0x0, 0x0, 0x0, 0x0,
- 0x29, 0x0, 0x0, 0x40, 0x6, 0x55, 0x55, 0x57,
- 0x55, 0x56, 0x92,
-
- /* U+6620 "映" */
- 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb2, 0x0, 0x0, 0x75, 0x59, 0x0,
- 0xb, 0x0, 0x0, 0xb, 0x0, 0xb0, 0xb5, 0xc5,
- 0x5c, 0x0, 0xb0, 0xb, 0xa, 0xb, 0x0, 0xa0,
- 0xb, 0x0, 0xb0, 0xa0, 0xb0, 0xa, 0x0, 0xb5,
- 0x5b, 0xa, 0xb, 0x0, 0xa0, 0xb, 0x0, 0xb5,
- 0xa5, 0xc5, 0x5b, 0xb1, 0xb0, 0xb, 0x0, 0x28,
- 0x50, 0x0, 0xb, 0x0, 0xb0, 0x8, 0x46, 0x10,
- 0x0, 0xb5, 0x5b, 0x1, 0xa0, 0x1a, 0x0, 0x9,
- 0x0, 0x1, 0xa1, 0x0, 0x6a, 0x0, 0x0, 0x5,
- 0x70, 0x0, 0x0, 0x8d, 0x10, 0x2, 0x10, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+6625 "春" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xf3, 0x0, 0x1, 0x0, 0x2, 0x55,
- 0x56, 0xe5, 0x55, 0x5a, 0x30, 0x0, 0x0, 0x5,
- 0x70, 0x0, 0x60, 0x0, 0x0, 0x55, 0x5d, 0x65,
- 0x55, 0x51, 0x0, 0x5, 0x55, 0x6c, 0x55, 0x55,
- 0x57, 0xc1, 0x0, 0x1, 0xb1, 0x0, 0x7, 0x0,
- 0x0, 0x0, 0x1a, 0x61, 0x11, 0x18, 0x90, 0x0,
- 0x4, 0x70, 0xd3, 0x33, 0x3d, 0x3c, 0xa3, 0x11,
- 0x0, 0xc0, 0x0, 0xc, 0x0, 0x40, 0x0, 0x0,
- 0xd5, 0x55, 0x5c, 0x0, 0x0, 0x0, 0x0, 0xc0,
- 0x0, 0xc, 0x0, 0x0, 0x0, 0x0, 0xd5, 0x55,
- 0x5c, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x1,
- 0x0, 0x0,
-
- /* U+6628 "昨" */
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa, 0x70, 0x0, 0x0, 0x85, 0x5b, 0x20,
- 0xd0, 0x0, 0x0, 0xb, 0x0, 0xb0, 0x4a, 0x75,
- 0x57, 0xb0, 0xb0, 0xb, 0x9, 0xc, 0x0, 0x0,
- 0xb, 0x0, 0xb3, 0x40, 0xc0, 0x0, 0x0, 0xb5,
- 0x5c, 0x20, 0xd, 0x55, 0xa2, 0xb, 0x0, 0xb0,
- 0x0, 0xc0, 0x0, 0x0, 0xb0, 0xb, 0x0, 0xc,
- 0x0, 0x33, 0xb, 0x0, 0xb0, 0x0, 0xd5, 0x56,
- 0x50, 0xb5, 0x5d, 0x0, 0xc, 0x0, 0x0, 0xa,
- 0x0, 0x40, 0x0, 0xc0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x10, 0x0, 0x0,
-
- /* U+662F "是" */
- 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0xd5, 0x55, 0x5c, 0x50, 0x0, 0x0, 0x0,
- 0xc0, 0x0, 0xa, 0x20, 0x0, 0x0, 0x0, 0xd5,
- 0x55, 0x5c, 0x20, 0x0, 0x0, 0x0, 0xc0, 0x0,
- 0xa, 0x20, 0x0, 0x0, 0x0, 0xd5, 0x55, 0x5b,
- 0x20, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x7,
- 0x30, 0x4, 0x65, 0x75, 0x5d, 0x55, 0x55, 0x40,
- 0x0, 0x4, 0xd0, 0xc, 0x0, 0x22, 0x0, 0x0,
- 0x8, 0x60, 0xd, 0x55, 0x65, 0x0, 0x0, 0xb,
- 0x45, 0xc, 0x0, 0x0, 0x0, 0x0, 0x92, 0x5,
- 0xbd, 0x20, 0x0, 0x0, 0x5, 0x30, 0x0, 0x17,
- 0xbd, 0xef, 0x90, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+663C "昼" */
- 0x0, 0x8, 0x55, 0x55, 0x55, 0xb0, 0x0, 0x0,
- 0xb, 0x0, 0x0, 0x0, 0xa0, 0x0, 0x0, 0xc,
- 0x55, 0x55, 0x65, 0xb0, 0x0, 0x0, 0xb, 0x0,
- 0x0, 0x42, 0x10, 0x0, 0x0, 0x39, 0x0, 0x0,
- 0x9, 0x20, 0x0, 0x0, 0x98, 0x75, 0x55, 0x5d,
- 0xa7, 0x0, 0x2, 0x67, 0x30, 0x0, 0xa, 0x6,
- 0xb0, 0x16, 0x7, 0x75, 0x55, 0x5b, 0x0, 0x0,
- 0x10, 0x7, 0x30, 0x0, 0xa, 0x0, 0x0, 0x0,
- 0x7, 0x75, 0x55, 0x5b, 0x0, 0x0, 0x0, 0x1,
- 0x0, 0x0, 0x0, 0x8, 0x0, 0x3, 0x55, 0x55,
- 0x55, 0x55, 0x56, 0x30,
-
- /* U+6642 "時" */
- 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x1, 0x0,
- 0x20, 0x0, 0xb2, 0x0, 0x0, 0xc5, 0x5d, 0x10,
- 0xb, 0x0, 0x30, 0xb, 0x0, 0xb0, 0x55, 0xc5,
- 0x57, 0x0, 0xb0, 0xb, 0x0, 0xb, 0x0, 0x0,
- 0xb, 0x0, 0xb5, 0x55, 0xd5, 0x57, 0xa0, 0xb5,
- 0x5b, 0x0, 0x0, 0x9, 0x10, 0xb, 0x0, 0xb4,
- 0x55, 0x55, 0xc5, 0xa0, 0xb0, 0xb, 0x14, 0x10,
- 0xb, 0x0, 0xb, 0x0, 0xb0, 0xc, 0x10, 0xb0,
- 0x0, 0xc5, 0x5c, 0x0, 0x41, 0xb, 0x0, 0x8,
- 0x0, 0x30, 0x0, 0x0, 0xb0, 0x0, 0x0, 0x0,
- 0x0, 0x5, 0xac, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x3, 0x10, 0x0,
-
- /* U+6669 "晩" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x20, 0x0, 0x0, 0xb5, 0x5c, 0x4,
- 0xb5, 0x6b, 0x10, 0xb, 0x1, 0x90, 0xa0, 0x8,
- 0x40, 0x0, 0xb0, 0x19, 0x7a, 0x56, 0x85, 0x92,
- 0xb, 0x1, 0xb2, 0xb0, 0x91, 0xb, 0x0, 0xc5,
- 0x69, 0xb, 0x9, 0x10, 0xb0, 0xb, 0x1, 0x90,
- 0xd5, 0xb6, 0x5c, 0x0, 0xb0, 0x19, 0x4, 0x17,
- 0xc0, 0x10, 0xb, 0x1, 0xa0, 0x4, 0x4c, 0x0,
- 0x0, 0xd5, 0x6a, 0x0, 0x90, 0xc0, 0x4, 0x6,
- 0x0, 0x0, 0x65, 0xc, 0x0, 0x60, 0x0, 0x0,
- 0x64, 0x0, 0xba, 0x9d, 0x10, 0x0, 0x10, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+666E "普" */
- 0x0, 0x0, 0x40, 0x0, 0x22, 0x0, 0x0, 0x0,
- 0x4, 0xb0, 0x8, 0x30, 0x0, 0x2, 0x55, 0x5d,
- 0x55, 0x95, 0x7c, 0x10, 0x1, 0x0, 0xc0, 0x2a,
- 0x5, 0x0, 0x0, 0xa, 0xc, 0x2, 0xa1, 0xb0,
- 0x0, 0x0, 0x75, 0xc0, 0x2a, 0x71, 0x0, 0x35,
- 0x56, 0x5d, 0x56, 0xb7, 0x5c, 0x70, 0x0, 0x10,
- 0x0, 0x0, 0x20, 0x0, 0x0, 0xa, 0x65, 0x55,
- 0x5d, 0x30, 0x0, 0x0, 0x92, 0x0, 0x0, 0xc0,
- 0x0, 0x0, 0x9, 0x65, 0x55, 0x5d, 0x0, 0x0,
- 0x0, 0x92, 0x0, 0x0, 0xc0, 0x0, 0x0, 0xa,
- 0x65, 0x55, 0x5d, 0x0, 0x0, 0x0, 0x20, 0x0,
- 0x0, 0x10, 0x0,
-
- /* U+666F "景" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb, 0x55, 0x55, 0x55, 0xd1, 0x0, 0x0, 0xc,
- 0x55, 0x55, 0x55, 0xd0, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0x0, 0xc0, 0x0, 0x0, 0xb, 0x55, 0x88,
- 0x55, 0xa0, 0x0, 0x3, 0x33, 0x33, 0x3c, 0x33,
- 0x35, 0xa0, 0x3, 0x24, 0x22, 0x22, 0x22, 0x62,
- 0x20, 0x0, 0x8, 0x85, 0x55, 0x56, 0xc0, 0x0,
- 0x0, 0x8, 0x40, 0x0, 0x1, 0xa0, 0x0, 0x0,
- 0x6, 0x65, 0x6c, 0x55, 0x70, 0x0, 0x0, 0x1,
- 0xc2, 0x1a, 0x5, 0x40, 0x0, 0x0, 0x59, 0x20,
- 0x1a, 0x0, 0x6c, 0x20, 0x15, 0x20, 0x5, 0xa8,
- 0x0, 0x4, 0x70, 0x0, 0x0, 0x0, 0x40, 0x0,
- 0x0, 0x0,
-
- /* U+6674 "晴" */
- 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0,
- 0x10, 0x0, 0xb3, 0x2, 0x10, 0xb5, 0x5d, 0x35,
- 0x5c, 0x55, 0x64, 0xb, 0x0, 0xb0, 0x0, 0xb1,
- 0x6, 0x0, 0xb0, 0xb, 0x5, 0x5c, 0x65, 0x51,
- 0xb, 0x33, 0xb5, 0x55, 0xb5, 0x55, 0xa0, 0xb2,
- 0x2b, 0x2, 0x0, 0x0, 0x40, 0xb, 0x0, 0xb0,
- 0xb5, 0x55, 0x5c, 0x0, 0xb0, 0xb, 0xb, 0x55,
- 0x55, 0xb0, 0xb, 0x33, 0xb0, 0xb0, 0x0, 0xb,
- 0x0, 0xb2, 0x2b, 0xb, 0x55, 0x55, 0xb0, 0x5,
- 0x0, 0x10, 0xb0, 0x0, 0xb, 0x0, 0x0, 0x0,
- 0xb, 0x0, 0x49, 0xa0, 0x0, 0x0, 0x0, 0x30,
- 0x0, 0x41, 0x0,
-
- /* U+667A "智" */
- 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x1, 0xb0,
- 0x3, 0x1, 0x0, 0x1, 0x6, 0x69, 0x86, 0x1b,
- 0x55, 0x79, 0x5, 0x7, 0x30, 0xb, 0x0, 0x37,
- 0x55, 0x5b, 0x57, 0x6b, 0x0, 0x37, 0x0, 0xb,
- 0x74, 0xb, 0x55, 0x78, 0x0, 0x74, 0xa, 0x6b,
- 0x0, 0x36, 0x5, 0x43, 0x0, 0x21, 0x4, 0x0,
- 0x31, 0xd, 0x55, 0x55, 0x5d, 0x20, 0x0, 0xb,
- 0x0, 0x0, 0xb, 0x0, 0x0, 0xc, 0x55, 0x55,
- 0x5c, 0x0, 0x0, 0xb, 0x0, 0x0, 0xb, 0x0,
- 0x0, 0xd, 0x55, 0x55, 0x5c, 0x0, 0x0, 0x1,
- 0x0, 0x0, 0x1, 0x0,
-
- /* U+6687 "暇" */
- 0x0, 0x11, 0x75, 0x83, 0x55, 0x92, 0xb, 0x5c,
- 0x49, 0xa, 0x0, 0xa, 0x0, 0xa0, 0xa1, 0x90,
- 0xa0, 0x0, 0xa0, 0xa, 0xa, 0x1b, 0x5c, 0x15,
- 0x5c, 0x0, 0xb5, 0xc1, 0x90, 0x40, 0x0, 0x10,
- 0xa, 0xa, 0x19, 0x3, 0x45, 0x58, 0x30, 0xa0,
- 0xa1, 0xb5, 0x40, 0x40, 0xb1, 0xa, 0xa, 0x19,
- 0x2, 0x5, 0x1b, 0x0, 0xb5, 0xc2, 0xb5, 0x71,
- 0x69, 0x30, 0x7, 0x1, 0x19, 0x0, 0x4, 0xe0,
- 0x0, 0x0, 0x1, 0x90, 0x3, 0x84, 0xc3, 0x0,
- 0x0, 0x28, 0x4, 0x40, 0x4, 0xa2, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+6691 "暑" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb, 0x55, 0x55, 0x56, 0xc0, 0x0, 0x0, 0xc,
- 0x55, 0x55, 0x56, 0xa0, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0x2, 0xa0, 0x0, 0x0, 0xb, 0x55, 0xd6,
- 0x56, 0x8b, 0x10, 0x0, 0x15, 0x55, 0xd6, 0xa3,
- 0xc4, 0x0, 0x0, 0x0, 0x0, 0xc0, 0x6b, 0x11,
- 0x50, 0x6, 0x55, 0x55, 0x9d, 0x85, 0x56, 0x70,
- 0x0, 0x0, 0x7a, 0xc6, 0x55, 0x90, 0x0, 0x0,
- 0x58, 0xd0, 0x0, 0x0, 0xc0, 0x0, 0x23, 0x0,
- 0xd5, 0x55, 0x55, 0xc0, 0x0, 0x0, 0x0, 0xc0,
- 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0, 0xd5, 0x55,
- 0x55, 0xc0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6696 "暖" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0,
- 0x1, 0x45, 0x68, 0xab, 0x30, 0xb5, 0x5d, 0x23,
- 0x6, 0x2, 0x90, 0xb, 0x0, 0xb0, 0x93, 0x74,
- 0x73, 0x0, 0xb0, 0xb, 0x28, 0x66, 0x58, 0x95,
- 0xb, 0x0, 0xb0, 0x4, 0x70, 0x0, 0x0, 0xc5,
- 0x5b, 0x46, 0x98, 0x55, 0x5b, 0x1b, 0x0, 0xb0,
- 0xa, 0x10, 0x0, 0x0, 0xb0, 0xb, 0x0, 0xc6,
- 0x56, 0xd0, 0xb, 0x0, 0xb0, 0x64, 0x70, 0xb3,
- 0x0, 0xc5, 0x5b, 0x19, 0x3, 0xc5, 0x0, 0xa,
- 0x0, 0x7, 0x0, 0x8a, 0xa1, 0x0, 0x0, 0x3,
- 0x3, 0x82, 0x5, 0xda, 0x20, 0x0, 0x0, 0x20,
- 0x0, 0x0, 0x20,
-
- /* U+6697 "暗" */
- 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x85, 0x0, 0x0, 0xb5, 0x5d, 0x16,
- 0x56, 0x75, 0x93, 0xc, 0x0, 0xb0, 0x23, 0x0,
- 0xa3, 0x0, 0xb0, 0xb, 0x0, 0xc1, 0xa, 0x0,
- 0xb, 0x0, 0xb1, 0x26, 0x26, 0x32, 0x80, 0xc5,
- 0x5b, 0x33, 0x33, 0x33, 0x33, 0xb, 0x0, 0xb0,
- 0x75, 0x55, 0x5a, 0x0, 0xb0, 0xb, 0xb, 0x0,
- 0x0, 0xb0, 0xb, 0x0, 0xb0, 0xb5, 0x55, 0x5b,
- 0x0, 0xc5, 0x5b, 0xb, 0x0, 0x0, 0xb0, 0x4,
- 0x0, 0x10, 0xb5, 0x55, 0x5c, 0x0, 0x0, 0x0,
- 0xb, 0x0, 0x0, 0xa0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+66C7 "曇" */
- 0x0, 0x10, 0x0, 0x0, 0x4, 0x0, 0x0, 0xa,
- 0x55, 0x55, 0x55, 0xc1, 0x0, 0x0, 0xa5, 0x55,
- 0x55, 0x5b, 0x0, 0x0, 0xa, 0x55, 0x55, 0x55,
- 0xb0, 0x0, 0x0, 0x53, 0x33, 0x33, 0x39, 0x20,
- 0x0, 0x32, 0x11, 0xa2, 0x11, 0x11, 0x40, 0x39,
- 0x77, 0x6b, 0x56, 0x77, 0x5c, 0x28, 0x27, 0x72,
- 0x91, 0x37, 0x62, 0x0, 0x0, 0x11, 0x13, 0x11,
- 0x44, 0x0, 0x0, 0x4, 0x43, 0x33, 0x33, 0x33,
- 0x30, 0x55, 0x55, 0x79, 0x55, 0x55, 0x66, 0x0,
- 0x0, 0x29, 0x20, 0x6, 0x40, 0x0, 0x0, 0x8d,
- 0x98, 0x76, 0x5c, 0x30, 0x0, 0x2, 0x20, 0x0,
- 0x0, 0x10, 0x0,
-
- /* U+66DC "曜" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0,
- 0x34, 0x65, 0xb4, 0x65, 0xb0, 0xc5, 0x6b, 0x37,
- 0xa, 0x26, 0xa, 0xb, 0x1, 0x90, 0x60, 0xa0,
- 0x61, 0xa0, 0xb0, 0x19, 0x16, 0x5a, 0x37, 0x5b,
- 0xb, 0x56, 0xa9, 0x22, 0x69, 0x10, 0x60, 0xb0,
- 0x19, 0x8, 0x60, 0xc2, 0x12, 0xb, 0x1, 0x91,
- 0xc5, 0x5c, 0x56, 0x60, 0xb0, 0x19, 0x7c, 0x22,
- 0xb2, 0x80, 0xb, 0x56, 0xb1, 0xc3, 0x3b, 0x33,
- 0x10, 0xb0, 0x13, 0xc, 0x55, 0xc5, 0xa2, 0x2,
- 0x0, 0x0, 0xb0, 0xa, 0x0, 0x30, 0x0, 0x0,
- 0xd, 0x55, 0x75, 0x68, 0x0, 0x0, 0x0, 0x10,
- 0x0, 0x0, 0x0,
-
- /* U+66F2 "曲" */
- 0x0, 0x3, 0x0, 0x30, 0x0, 0x0, 0x0, 0xc1,
- 0xc, 0x10, 0x0, 0x0, 0xb, 0x0, 0xb0, 0x0,
- 0x8, 0x55, 0xc5, 0x5c, 0x55, 0xa1, 0xd0, 0xb,
- 0x0, 0xb0, 0xc, 0xc, 0x0, 0xb0, 0xb, 0x0,
- 0xc0, 0xc0, 0xb, 0x0, 0xb0, 0xc, 0xc, 0x55,
- 0xc5, 0x5c, 0x55, 0xc0, 0xc0, 0xb, 0x0, 0xb0,
- 0xc, 0xc, 0x0, 0xb0, 0xb, 0x0, 0xc0, 0xc0,
- 0xb, 0x0, 0xb0, 0xc, 0xc, 0x55, 0xb5, 0x5b,
- 0x55, 0xd0, 0xc0, 0x0, 0x0, 0x0, 0x9, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+66F4 "更" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4,
- 0x55, 0x55, 0x56, 0x55, 0x56, 0xc1, 0x0, 0x0,
- 0x0, 0xc, 0x0, 0x0, 0x0, 0x0, 0x19, 0x55,
- 0x5d, 0x55, 0x5b, 0x0, 0x0, 0x1b, 0x0, 0xc,
- 0x0, 0x1a, 0x0, 0x0, 0xc, 0x55, 0x5d, 0x55,
- 0x6a, 0x0, 0x0, 0xb, 0x0, 0xc, 0x0, 0x1a,
- 0x0, 0x0, 0x1c, 0x55, 0x5d, 0x55, 0x6a, 0x0,
- 0x0, 0x5, 0x10, 0x38, 0x0, 0x4, 0x0, 0x0,
- 0x0, 0x33, 0x75, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x7, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3a,
- 0x7b, 0x62, 0x0, 0x0, 0x1, 0x57, 0x50, 0x1,
- 0x6a, 0xdd, 0xe4, 0x2, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+66F8 "書" */
- 0x0, 0x0, 0x1, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2b, 0x0, 0x20, 0x0, 0x0, 0x45, 0x56,
- 0xb5, 0x5c, 0x41, 0x3, 0x65, 0x55, 0x6b, 0x55,
- 0xb7, 0x90, 0x0, 0x45, 0x56, 0xb5, 0x5b, 0x10,
- 0x0, 0x0, 0x0, 0x29, 0x0, 0x32, 0x0, 0x3,
- 0x55, 0x56, 0xb5, 0x56, 0x60, 0x4, 0x55, 0x55,
- 0x69, 0x55, 0x58, 0x80, 0x0, 0x85, 0x55, 0x55,
- 0x59, 0x20, 0x0, 0xc, 0x0, 0x0, 0x0, 0xa1,
- 0x0, 0x0, 0xd5, 0x55, 0x55, 0x5c, 0x10, 0x0,
- 0xc, 0x0, 0x0, 0x0, 0xa1, 0x0, 0x0, 0xd5,
- 0x55, 0x55, 0x5c, 0x10, 0x0, 0x2, 0x0, 0x0,
- 0x0, 0x20, 0x0,
-
- /* U+66FE "曾" */
- 0x0, 0x20, 0x0, 0x11, 0x0, 0x0, 0x3a, 0x0,
- 0x96, 0x0, 0x20, 0x7, 0x2, 0x60, 0x12, 0xb5,
- 0x55, 0xb6, 0x55, 0x88, 0xb0, 0x82, 0x91, 0x59,
- 0x56, 0xb0, 0x39, 0x92, 0x80, 0x56, 0xb5, 0x56,
- 0xb7, 0x55, 0x86, 0x60, 0x0, 0x0, 0x0, 0x22,
- 0x9, 0x55, 0x55, 0x5b, 0x40, 0x9, 0x10, 0x0,
- 0x9, 0x10, 0x9, 0x65, 0x55, 0x5b, 0x10, 0x9,
- 0x10, 0x0, 0x9, 0x20, 0x9, 0x55, 0x55, 0x5b,
- 0x20, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+66FF "替" */
- 0x0, 0x3, 0x0, 0x1, 0x20, 0x0, 0x0, 0xd,
- 0x10, 0x2, 0xb0, 0x0, 0x5, 0x5d, 0x77, 0x46,
- 0xb7, 0x70, 0x0, 0xb, 0x1, 0x3, 0x80, 0x20,
- 0x25, 0x7b, 0x65, 0x59, 0xb5, 0x73, 0x0, 0x86,
- 0x90, 0xa, 0x17, 0x0, 0x4, 0x60, 0x55, 0x81,
- 0x5, 0xa4, 0x43, 0x75, 0x59, 0x55, 0x5a, 0x42,
- 0x0, 0xc0, 0x0, 0x0, 0x2a, 0x0, 0x0, 0xc0,
- 0x0, 0x0, 0x29, 0x0, 0x0, 0xc5, 0x55, 0x55,
- 0x69, 0x0, 0x0, 0xc0, 0x0, 0x0, 0x2a, 0x0,
- 0x0, 0xc5, 0x55, 0x55, 0x6a, 0x0, 0x0, 0x20,
- 0x0, 0x0, 0x0, 0x0,
-
- /* U+6700 "最" */
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x30, 0x0, 0x0,
- 0x6, 0x85, 0x55, 0x55, 0xd2, 0x0, 0x0, 0x6,
- 0x95, 0x55, 0x55, 0xd0, 0x0, 0x0, 0x6, 0x60,
- 0x0, 0x0, 0xc0, 0x0, 0x0, 0x6, 0x95, 0x55,
- 0x55, 0xd0, 0x0, 0x4, 0x56, 0x55, 0x55, 0x55,
- 0x58, 0xd1, 0x0, 0x29, 0x0, 0xb0, 0x0, 0x3,
- 0x0, 0x0, 0x2b, 0x55, 0xc4, 0x85, 0x5d, 0x30,
- 0x0, 0x2b, 0x55, 0xc0, 0x50, 0x39, 0x0, 0x0,
- 0x29, 0x0, 0xb0, 0x28, 0xb1, 0x0, 0x0, 0x2b,
- 0x67, 0xd5, 0x1a, 0x90, 0x0, 0xa, 0xc7, 0x30,
- 0xb0, 0x56, 0x99, 0x10, 0x0, 0x0, 0x0, 0xb5,
- 0x30, 0x6, 0xb2, 0x0, 0x0, 0x0, 0x10, 0x0,
- 0x0, 0x0,
-
- /* U+6703 "會" */
- 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xba, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xa, 0x71, 0x60, 0x0, 0x0, 0x0, 0x1, 0xa5,
- 0x0, 0x5a, 0x61, 0x0, 0x0, 0x57, 0x25, 0x55,
- 0x51, 0x6c, 0xb1, 0x4, 0xb, 0x55, 0x59, 0x55,
- 0xb3, 0x0, 0x0, 0xb, 0x57, 0xb, 0x56, 0x91,
- 0x0, 0x0, 0xb, 0x6, 0xb, 0x60, 0x91, 0x0,
- 0x0, 0x8, 0x55, 0x55, 0x56, 0x70, 0x0, 0x0,
- 0x3, 0xa5, 0x55, 0x5c, 0x30, 0x0, 0x0, 0x2,
- 0xb5, 0x55, 0x5c, 0x10, 0x0, 0x0, 0x2, 0x90,
- 0x0, 0xa, 0x10, 0x0, 0x0, 0x3, 0xb5, 0x55,
- 0x5c, 0x10, 0x0, 0x0, 0x1, 0x30, 0x0, 0x4,
- 0x0, 0x0,
-
- /* U+6708 "月" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa5,
- 0x55, 0x55, 0xc1, 0x0, 0xc, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0xc0, 0x0, 0x0, 0xc0, 0x0, 0xd,
- 0x55, 0x55, 0x5c, 0x0, 0x0, 0xc0, 0x0, 0x0,
- 0xc0, 0x0, 0xc, 0x0, 0x0, 0xc, 0x0, 0x0,
- 0xd5, 0x55, 0x55, 0xc0, 0x0, 0x2a, 0x0, 0x0,
- 0xc, 0x0, 0x5, 0x70, 0x0, 0x0, 0xc0, 0x0,
- 0xa1, 0x0, 0x0, 0xc, 0x0, 0x37, 0x0, 0x1,
- 0x11, 0xd0, 0x26, 0x0, 0x0, 0x5, 0xe9, 0x2,
- 0x0, 0x0, 0x0, 0x1, 0x0,
-
- /* U+6709 "有" */
- 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xe3, 0x0, 0x0, 0x0, 0x15, 0x55,
- 0x58, 0xc5, 0x55, 0x5a, 0xc1, 0x1, 0x0, 0xc,
- 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x77, 0x0,
- 0x0, 0x40, 0x0, 0x0, 0x2, 0xe5, 0x55, 0x55,
- 0xe0, 0x0, 0x0, 0x19, 0xc0, 0x0, 0x0, 0xc0,
- 0x0, 0x1, 0x80, 0xc5, 0x55, 0x55, 0xc0, 0x0,
- 0x15, 0x0, 0xc0, 0x0, 0x0, 0xc0, 0x0, 0x0,
- 0x0, 0xd5, 0x55, 0x55, 0xc0, 0x0, 0x0, 0x0,
- 0xc0, 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0, 0xc0,
- 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0, 0xc0, 0x0,
- 0x5c, 0x90, 0x0, 0x0, 0x0, 0x10, 0x0, 0x2,
- 0x0, 0x0,
-
- /* U+670B "朋" */
- 0x0, 0x75, 0x59, 0x20, 0x85, 0x59, 0x20, 0xb,
- 0x0, 0xb0, 0xb, 0x0, 0xb0, 0x0, 0xb0, 0xb,
- 0x0, 0xb0, 0xb, 0x0, 0xc, 0x55, 0xc0, 0xc,
- 0x55, 0xc0, 0x0, 0xb0, 0xb, 0x0, 0xb0, 0xb,
- 0x0, 0xb, 0x0, 0xb0, 0xb, 0x0, 0xb0, 0x0,
- 0xc5, 0x5c, 0x0, 0xc5, 0x5c, 0x0, 0xa, 0x0,
- 0xb0, 0xa, 0x0, 0xb0, 0x0, 0xa0, 0xb, 0x3,
- 0x70, 0xb, 0x0, 0x36, 0x0, 0xb0, 0x82, 0x0,
- 0xb0, 0x7, 0x2, 0x6d, 0x18, 0x0, 0xc, 0x1,
- 0x40, 0x4, 0x66, 0x0, 0x4c, 0xd0, 0x0, 0x0,
- 0x1, 0x0, 0x0, 0x10, 0x0,
-
- /* U+670D "服" */
- 0x0, 0x95, 0x5a, 0x9, 0x55, 0x5a, 0x10, 0x0,
- 0xb0, 0xb, 0xb, 0x0, 0xc, 0x0, 0x0, 0xb0,
- 0xb, 0xb, 0x0, 0xc, 0x0, 0x0, 0xc5, 0x5b,
- 0xb, 0x4, 0x89, 0x0, 0x0, 0xb0, 0xb, 0xb,
- 0x0, 0x51, 0x0, 0x0, 0xb0, 0xb, 0xc, 0x65,
- 0x5a, 0x50, 0x0, 0xc5, 0x5b, 0xb, 0x42, 0xc,
- 0x0, 0x0, 0xb0, 0xb, 0xb, 0x7, 0x29, 0x0,
- 0x0, 0xa0, 0xb, 0xb, 0x6, 0xb2, 0x0, 0x4,
- 0x60, 0xb, 0xb, 0x4, 0xd1, 0x0, 0x8, 0x2,
- 0x1b, 0xb, 0x37, 0x1c, 0x61, 0x14, 0x1, 0xc7,
- 0xd, 0x30, 0x1, 0x71, 0x0, 0x0, 0x0, 0x1,
- 0x0, 0x0, 0x0,
-
- /* U+671B "望" */
- 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb, 0x10, 0x8, 0x55, 0x59, 0x10, 0x0, 0x5,
- 0x14, 0xc, 0x0, 0xb, 0x0, 0x16, 0xb5, 0x57,
- 0x2d, 0x55, 0x5c, 0x0, 0x0, 0xb0, 0x0, 0xc,
- 0x0, 0xb, 0x0, 0x0, 0xb0, 0x25, 0x3c, 0x55,
- 0x5c, 0x0, 0x0, 0xca, 0x60, 0x75, 0x2, 0x3c,
- 0x0, 0x0, 0x40, 0x3, 0x60, 0x0, 0x67, 0x0,
- 0x3, 0x65, 0x57, 0x75, 0x55, 0x6b, 0x10, 0x0,
- 0x0, 0x0, 0xc0, 0x0, 0x10, 0x0, 0x0, 0x46,
- 0x55, 0xd5, 0x56, 0x90, 0x0, 0x0, 0x0, 0x0,
- 0xc0, 0x0, 0x0, 0x0, 0x15, 0x55, 0x55, 0xd5,
- 0x55, 0x5b, 0x90, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+671D "朝" */
- 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc0, 0x0, 0x42, 0x22, 0x70, 0x4, 0x55,
- 0xc5, 0x75, 0x93, 0x22, 0xc0, 0x0, 0x0, 0xb0,
- 0x0, 0x91, 0x0, 0xb0, 0x0, 0xa5, 0x95, 0xc0,
- 0x93, 0x11, 0xb0, 0x0, 0xb0, 0x0, 0xb0, 0x94,
- 0x33, 0xb0, 0x0, 0xc5, 0x55, 0xb0, 0x91, 0x0,
- 0xb0, 0x0, 0xb0, 0x0, 0xb0, 0xa1, 0x0, 0xb0,
- 0x0, 0xc5, 0xc5, 0x90, 0xb5, 0x55, 0xb0, 0x0,
- 0x0, 0xb0, 0x31, 0xb0, 0x0, 0xb0, 0x16, 0x55,
- 0xc5, 0x55, 0x80, 0x0, 0xb0, 0x0, 0x0, 0xb0,
- 0x8, 0x10, 0x0, 0xb0, 0x0, 0x0, 0xc0, 0x43,
- 0x0, 0x4c, 0x80, 0x0, 0x0, 0x20, 0x10, 0x0,
- 0x1, 0x0,
-
- /* U+671F "期" */
- 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x1c, 0x0, 0xd0, 0x16, 0x44, 0x81, 0x0, 0x1a,
- 0x0, 0xc5, 0x1b, 0x11, 0xc0, 0x3, 0x6c, 0x55,
- 0xd5, 0x3b, 0x0, 0xc0, 0x0, 0x1c, 0x55, 0xc0,
- 0x1c, 0x55, 0xc0, 0x0, 0x1a, 0x0, 0xc0, 0x1a,
- 0x0, 0xc0, 0x0, 0x1c, 0x55, 0xc0, 0x1a, 0x0,
- 0xc0, 0x0, 0x1a, 0x0, 0xc0, 0x2b, 0x22, 0xc0,
- 0x3, 0x6c, 0x55, 0xda, 0x5a, 0x33, 0xc0, 0x0,
- 0x6, 0x13, 0x0, 0x66, 0x0, 0xc0, 0x0, 0x2c,
- 0x24, 0xa0, 0xb1, 0x0, 0xc0, 0x0, 0xa1, 0x0,
- 0x75, 0x60, 0x10, 0xc0, 0x6, 0x0, 0x0, 0x35,
- 0x0, 0x2b, 0xa0, 0x0, 0x0, 0x0, 0x10, 0x0,
- 0x0, 0x0,
-
- /* U+6728 "木" */
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc3, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc1, 0x0, 0x3, 0x0, 0x7, 0x55, 0x57, 0xe7,
- 0x55, 0x5b, 0x50, 0x0, 0x0, 0xb, 0xf7, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x2b, 0xc3, 0x60, 0x0,
- 0x0, 0x0, 0x0, 0xb3, 0xc1, 0xa1, 0x0, 0x0,
- 0x0, 0x6, 0x70, 0xc1, 0x3b, 0x0, 0x0, 0x0,
- 0x48, 0x0, 0xc1, 0x6, 0xd3, 0x0, 0x3, 0x70,
- 0x0, 0xc1, 0x0, 0x7f, 0xa0, 0x23, 0x0, 0x0,
- 0xc1, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0xc1,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0,
- 0x0, 0x0,
-
- /* U+672A "未" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa5, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa2, 0x0, 0x50, 0x0, 0x0, 0x46, 0x55,
- 0xc7, 0x56, 0x71, 0x0, 0x0, 0x0, 0x0, 0xa2,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa2, 0x0,
- 0x5, 0x0, 0x6, 0x55, 0x58, 0xf9, 0x55, 0x58,
- 0x40, 0x0, 0x0, 0xc, 0xd5, 0x40, 0x0, 0x0,
- 0x0, 0x0, 0x86, 0xa2, 0x81, 0x0, 0x0, 0x0,
- 0x6, 0x70, 0xa2, 0x1c, 0x20, 0x0, 0x0, 0x65,
- 0x0, 0xa2, 0x2, 0xe8, 0x10, 0x16, 0x20, 0x0,
- 0xa3, 0x0, 0x2c, 0x80, 0x0, 0x0, 0x0, 0xb3,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0,
- 0x0, 0x0,
-
- /* U+672B "末" */
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb5, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa2, 0x0, 0x5, 0x0, 0x7, 0x55, 0x55,
- 0xc7, 0x55, 0x58, 0x40, 0x0, 0x0, 0x0, 0xa2,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa2, 0x0,
- 0x80, 0x0, 0x0, 0x55, 0x5a, 0xfa, 0x55, 0x52,
- 0x0, 0x0, 0x0, 0x1c, 0xb4, 0x60, 0x0, 0x0,
- 0x0, 0x0, 0xb3, 0xa2, 0x74, 0x0, 0x0, 0x0,
- 0x9, 0x40, 0xa2, 0xb, 0x60, 0x0, 0x0, 0x83,
- 0x0, 0xa2, 0x0, 0xcc, 0x60, 0x26, 0x10, 0x0,
- 0xa3, 0x0, 0x7, 0x20, 0x0, 0x0, 0x0, 0xb3,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0,
- 0x0, 0x0,
-
- /* U+672C "本" */
- 0x0, 0x0, 0x0, 0x13, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2a, 0x0, 0x0, 0x0, 0x2, 0x55, 0x55,
- 0x6c, 0x55, 0x58, 0xb0, 0x0, 0x10, 0x0, 0xea,
- 0x50, 0x0, 0x0, 0x0, 0x0, 0x6, 0xaa, 0x60,
- 0x0, 0x0, 0x0, 0x0, 0x1c, 0x3a, 0x18, 0x0,
- 0x0, 0x0, 0x0, 0xa3, 0x2a, 0x7, 0x50, 0x0,
- 0x0, 0x7, 0x50, 0x2a, 0x0, 0xb7, 0x0, 0x0,
- 0x66, 0x55, 0x6c, 0x59, 0x7c, 0xd3, 0x5, 0x20,
- 0x0, 0x2a, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0,
- 0x2a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3b,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x11, 0x0,
- 0x0, 0x0,
-
- /* U+672D "札" */
- 0x0, 0x1, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x3, 0xc0, 0x0, 0xd2, 0x0, 0x0, 0x0, 0x3,
- 0xa0, 0x0, 0xd0, 0x0, 0x0, 0x0, 0x2, 0xa0,
- 0x60, 0xd0, 0x0, 0x0, 0x6, 0x57, 0xc5, 0x50,
- 0xd0, 0x0, 0x0, 0x0, 0x7, 0xb0, 0x0, 0xd0,
- 0x0, 0x0, 0x0, 0xc, 0xca, 0x30, 0xd0, 0x0,
- 0x0, 0x0, 0x3a, 0xa3, 0xe0, 0xd0, 0x0, 0x0,
- 0x0, 0x93, 0xa0, 0x30, 0xd0, 0x0, 0x0, 0x3,
- 0x42, 0xa0, 0x0, 0xd0, 0x0, 0x30, 0x4, 0x2,
- 0xa0, 0x0, 0xd0, 0x0, 0x60, 0x0, 0x3, 0xa0,
- 0x0, 0xc0, 0x0, 0xa2, 0x0, 0x3, 0xa0, 0x0,
- 0x9c, 0xaa, 0xd3, 0x0, 0x1, 0x30, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+673A "机" */
- 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xd, 0x0, 0x2, 0x0, 0x40, 0x0, 0x0, 0xc,
- 0x0, 0x1c, 0x55, 0xd1, 0x0, 0x0, 0xc, 0x4,
- 0x1b, 0x0, 0xc0, 0x0, 0x5, 0x6e, 0x55, 0x1b,
- 0x0, 0xc0, 0x0, 0x0, 0x4d, 0x0, 0x1b, 0x0,
- 0xc0, 0x0, 0x0, 0x8d, 0x94, 0x1b, 0x0, 0xc0,
- 0x0, 0x0, 0xac, 0xc, 0x1a, 0x0, 0xc0, 0x0,
- 0x3, 0x5c, 0x0, 0x29, 0x0, 0xc0, 0x0, 0x7,
- 0xc, 0x0, 0x56, 0x0, 0xc0, 0x0, 0x22, 0xc,
- 0x0, 0xa1, 0x0, 0xc0, 0x50, 0x0, 0xc, 0x2,
- 0x70, 0x0, 0xc0, 0x70, 0x0, 0xd, 0x7, 0x0,
- 0x0, 0xba, 0xd3, 0x0, 0x8, 0x30, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6750 "材" */
- 0x0, 0x3, 0x0, 0x0, 0x0, 0x30, 0x0, 0x0,
- 0xd, 0x30, 0x0, 0x0, 0xd2, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0, 0xc, 0x6,
- 0x0, 0x0, 0xd1, 0x60, 0x35, 0x5e, 0x55, 0x24,
- 0x46, 0xf4, 0x40, 0x0, 0x1f, 0x50, 0x0, 0x9,
- 0xf0, 0x0, 0x0, 0x7f, 0x4b, 0x0, 0x2c, 0xd0,
- 0x0, 0x0, 0xbc, 0x9, 0x10, 0xa2, 0xd0, 0x0,
- 0x5, 0x5c, 0x0, 0x7, 0x50, 0xd0, 0x0, 0x7,
- 0xc, 0x0, 0x55, 0x0, 0xd0, 0x0, 0x40, 0xc,
- 0x3, 0x20, 0x0, 0xd0, 0x0, 0x0, 0xc, 0x10,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0xc, 0x10, 0x0,
- 0x5c, 0xd0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x1,
- 0x10, 0x0,
-
- /* U+6751 "村" */
- 0x0, 0x4, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0,
- 0xd, 0x20, 0x0, 0x0, 0xd2, 0x0, 0x0, 0xd,
- 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0, 0xd, 0x5,
- 0x0, 0x0, 0xd1, 0x40, 0x25, 0x5f, 0x55, 0x25,
- 0x55, 0xe5, 0x40, 0x0, 0x4f, 0x20, 0x3, 0x0,
- 0xd0, 0x0, 0x0, 0x8f, 0x69, 0x6, 0x60, 0xd0,
- 0x0, 0x0, 0x9d, 0xb, 0x10, 0xe0, 0xd0, 0x0,
- 0x6, 0x3d, 0x0, 0x0, 0x40, 0xd0, 0x0, 0x6,
- 0xd, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x30, 0xd,
- 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x5c, 0xe0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x2,
- 0x10, 0x0,
-
- /* U+675F "束" */
- 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x1d, 0x0, 0x0, 0x10, 0x5, 0x65,
- 0x55, 0x5d, 0x55, 0x55, 0xb4, 0x0, 0x0, 0x0,
- 0xc, 0x0, 0x0, 0x0, 0x0, 0x29, 0x55, 0x5d,
- 0x55, 0x6b, 0x0, 0x0, 0x1b, 0x0, 0xc, 0x0,
- 0x2a, 0x0, 0x0, 0x1b, 0x0, 0xc, 0x0, 0x2a,
- 0x0, 0x0, 0x1c, 0x55, 0x8d, 0x65, 0x7a, 0x0,
- 0x0, 0x28, 0x5, 0xbc, 0x60, 0x13, 0x0, 0x0,
- 0x0, 0x2c, 0x1c, 0x18, 0x0, 0x0, 0x0, 0x2,
- 0xb1, 0xc, 0x4, 0xa2, 0x0, 0x0, 0x49, 0x0,
- 0x1c, 0x0, 0x4e, 0xa3, 0x5, 0x40, 0x0, 0x1c,
- 0x0, 0x1, 0x60, 0x0, 0x0, 0x0, 0x2, 0x0,
- 0x0, 0x0,
-
- /* U+6761 "条" */
- 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x4c, 0x0, 0x1, 0x40, 0x0, 0x0, 0x0,
- 0xb8, 0x55, 0x5c, 0xb0, 0x0, 0x0, 0x7, 0x35,
- 0x10, 0x4d, 0x0, 0x0, 0x0, 0x44, 0x0, 0x95,
- 0xc2, 0x0, 0x0, 0x1, 0x20, 0x0, 0x9f, 0x70,
- 0x0, 0x0, 0x0, 0x2, 0x79, 0x47, 0x9d, 0xa7,
- 0x63, 0x4, 0x54, 0x0, 0xe, 0x0, 0x58, 0x70,
- 0x0, 0x17, 0x55, 0x5e, 0x55, 0x96, 0x0, 0x0,
- 0x0, 0x54, 0xd, 0x21, 0x0, 0x0, 0x0, 0x2,
- 0xd3, 0xd, 0x7, 0x80, 0x0, 0x0, 0x2a, 0x10,
- 0xd, 0x0, 0x8c, 0x0, 0x3, 0x50, 0x5, 0xda,
- 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0,
- 0x0, 0x0,
-
- /* U+6765 "来" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa5, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa2, 0x0, 0x17, 0x0, 0x2, 0x66, 0x55,
- 0xc7, 0x55, 0x75, 0x10, 0x0, 0x8, 0x60, 0xa2,
- 0x7, 0xa0, 0x0, 0x0, 0x0, 0xe0, 0xa2, 0x1a,
- 0x0, 0x0, 0x25, 0x55, 0x75, 0xc7, 0x95, 0x5a,
- 0x90, 0x1, 0x0, 0x8, 0xf6, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x2b, 0xa2, 0x80, 0x0, 0x0, 0x0,
- 0x0, 0xc1, 0xa2, 0x3a, 0x0, 0x0, 0x0, 0xa,
- 0x20, 0xa2, 0x5, 0xc3, 0x0, 0x1, 0x81, 0x0,
- 0xa3, 0x0, 0x4e, 0xa0, 0x24, 0x0, 0x0, 0xb3,
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0,
- 0x0, 0x0,
-
- /* U+676F "杯" */
- 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc2, 0x0, 0x0, 0x0, 0x42, 0x0, 0xb, 0x4,
- 0x55, 0x9a, 0x55, 0x30, 0x0, 0xb0, 0x40, 0xa,
- 0x20, 0x0, 0x15, 0x5d, 0x56, 0x0, 0xb0, 0x0,
- 0x0, 0x1, 0xf4, 0x0, 0x7d, 0x20, 0x0, 0x0,
- 0x7f, 0x68, 0xb, 0xb0, 0x30, 0x0, 0x9, 0xb0,
- 0xa8, 0x2b, 0x2, 0x90, 0x6, 0x2b, 0x3, 0x50,
- 0xb0, 0x7, 0xa2, 0x40, 0xb2, 0x50, 0xb, 0x0,
- 0x5, 0x20, 0xb, 0x10, 0x0, 0xc0, 0x0, 0x0,
- 0x0, 0xb1, 0x0, 0xc, 0x0, 0x0, 0x0, 0xc,
- 0x10, 0x0, 0xc1, 0x0, 0x0, 0x0, 0x30, 0x0,
- 0x2, 0x0, 0x0,
-
- /* U+6771 "東" */
- 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x1c, 0x0, 0x2, 0x10, 0x3, 0x65,
- 0x55, 0x5c, 0x55, 0x59, 0x80, 0x0, 0x2, 0x0,
- 0x1b, 0x0, 0x40, 0x0, 0x0, 0xd, 0x55, 0x5c,
- 0x55, 0xd3, 0x0, 0x0, 0xc, 0x0, 0x1b, 0x0,
- 0xc0, 0x0, 0x0, 0xd, 0x55, 0x5c, 0x55, 0xd0,
- 0x0, 0x0, 0xd, 0x55, 0x6c, 0x55, 0xd0, 0x0,
- 0x0, 0x7, 0x3, 0xdb, 0x50, 0x40, 0x0, 0x0,
- 0x0, 0xc, 0x3b, 0x44, 0x0, 0x0, 0x0, 0x0,
- 0xa3, 0x1b, 0x9, 0x50, 0x0, 0x0, 0x9, 0x30,
- 0x1b, 0x0, 0xac, 0x51, 0x4, 0x60, 0x0, 0x1b,
- 0x0, 0x5, 0xa2, 0x1, 0x0, 0x0, 0x2, 0x0,
- 0x0, 0x0,
-
- /* U+6790 "析" */
- 0x0, 0x5, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0,
- 0xd, 0x0, 0x24, 0x46, 0x9a, 0x40, 0x0, 0xc,
- 0x0, 0x39, 0x0, 0x0, 0x0, 0x5, 0x5d, 0x69,
- 0x39, 0x0, 0x0, 0x0, 0x0, 0x1c, 0x0, 0x39,
- 0x0, 0x0, 0x10, 0x0, 0x5e, 0x10, 0x3b, 0x55,
- 0x85, 0xb2, 0x0, 0xac, 0xa4, 0x38, 0x0, 0xc0,
- 0x0, 0x0, 0x9c, 0x28, 0x48, 0x0, 0xc0, 0x0,
- 0x6, 0x2c, 0x0, 0x56, 0x0, 0xc0, 0x0, 0x5,
- 0xc, 0x0, 0x83, 0x0, 0xc0, 0x0, 0x0, 0xc,
- 0x0, 0xb0, 0x0, 0xc0, 0x0, 0x0, 0xd, 0x6,
- 0x40, 0x0, 0xc0, 0x0, 0x0, 0xd, 0x25, 0x0,
- 0x0, 0xc0, 0x0, 0x0, 0x2, 0x10, 0x0, 0x0,
- 0x10, 0x0,
-
- /* U+6797 "林" */
- 0x0, 0x1, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0xb, 0x30, 0x0, 0xb3, 0x0, 0x0, 0x0, 0xa,
- 0x10, 0x0, 0xb1, 0x0, 0x0, 0x0, 0xa, 0x33,
- 0x0, 0xb1, 0x18, 0x0, 0x5, 0x5d, 0x64, 0x34,
- 0xf8, 0x44, 0x10, 0x0, 0xf, 0x20, 0x5, 0xf7,
- 0x0, 0x0, 0x0, 0x5f, 0x94, 0xa, 0xc7, 0x10,
- 0x0, 0x0, 0xab, 0x2c, 0x27, 0xb2, 0x90, 0x0,
- 0x4, 0x5a, 0x11, 0x80, 0xb1, 0x94, 0x0, 0x6,
- 0xa, 0x15, 0x20, 0xb1, 0x1e, 0x60, 0x20, 0xa,
- 0x33, 0x0, 0xb1, 0x3, 0x30, 0x0, 0xa, 0x10,
- 0x0, 0xb1, 0x0, 0x0, 0x0, 0xb, 0x20, 0x0,
- 0xb1, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x40,
- 0x0, 0x0,
-
- /* U+679C "果" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0x55, 0x59, 0x55, 0xc3, 0x0, 0x0, 0xc,
- 0x0, 0x1b, 0x0, 0xc0, 0x0, 0x0, 0xd, 0x55,
- 0x6c, 0x55, 0xd0, 0x0, 0x0, 0xc, 0x0, 0x1b,
- 0x0, 0xc0, 0x0, 0x0, 0xd, 0x55, 0x6c, 0x55,
- 0xd0, 0x0, 0x0, 0x9, 0x0, 0x1b, 0x0, 0x70,
- 0x0, 0x3, 0x55, 0x55, 0x6c, 0x55, 0x5b, 0xb1,
- 0x1, 0x0, 0x4, 0xcd, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0x3c, 0x2b, 0x74, 0x0, 0x0, 0x0, 0x3,
- 0xa0, 0x1b, 0xb, 0x80, 0x0, 0x0, 0x66, 0x0,
- 0x2b, 0x0, 0x9e, 0x92, 0x5, 0x10, 0x0, 0x2b,
- 0x0, 0x4, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+67D0 "某" */
- 0x0, 0x0, 0x20, 0x0, 0x3, 0x0, 0x0, 0x0,
- 0x0, 0xc1, 0x0, 0xd, 0x0, 0x0, 0x5, 0x55,
- 0xd5, 0x55, 0x5d, 0x5a, 0x50, 0x0, 0x0, 0xc0,
- 0x0, 0xc, 0x0, 0x0, 0x0, 0x0, 0xc5, 0x55,
- 0x5c, 0x0, 0x0, 0x0, 0x0, 0xc0, 0x0, 0xc,
- 0x0, 0x0, 0x0, 0x0, 0xd5, 0x85, 0x5c, 0x0,
- 0x0, 0x0, 0x0, 0x10, 0xa1, 0x0, 0x3, 0x30,
- 0x7, 0x55, 0x5b, 0xe9, 0x55, 0x56, 0x60, 0x0,
- 0x0, 0x39, 0xa3, 0x60, 0x0, 0x0, 0x0, 0x2,
- 0xa0, 0xa1, 0x58, 0x0, 0x0, 0x0, 0x48, 0x0,
- 0xa2, 0x4, 0xd8, 0x40, 0x15, 0x30, 0x0, 0xb2,
- 0x0, 0x19, 0x60, 0x0, 0x0, 0x0, 0x20, 0x0,
- 0x0, 0x0,
-
- /* U+67E5 "查" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x20, 0x0, 0x10, 0x6, 0x55, 0x57,
- 0xe6, 0x55, 0x59, 0x40, 0x0, 0x1, 0xbd, 0x25,
- 0x0, 0x0, 0x0, 0x1, 0xa2, 0xc0, 0x57, 0x0,
- 0x0, 0x2, 0x91, 0xb, 0x0, 0x4c, 0x72, 0x5,
- 0x49, 0x65, 0x55, 0x56, 0xc7, 0x41, 0x0, 0xa2,
- 0x0, 0x0, 0x29, 0x0, 0x0, 0x9, 0x65, 0x55,
- 0x56, 0x90, 0x0, 0x0, 0x92, 0x0, 0x0, 0x29,
- 0x0, 0x0, 0xa, 0x65, 0x55, 0x56, 0xa0, 0x0,
- 0x0, 0x91, 0x0, 0x0, 0x15, 0x10, 0x4, 0x55,
- 0x55, 0x55, 0x55, 0x5e, 0x30, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+67F1 "柱" */
- 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xe, 0x0, 0x0, 0xa2, 0x0, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0x4b, 0x0, 0x0, 0x0, 0xc, 0x13,
- 0x23, 0x36, 0x34, 0xb1, 0x6, 0x5d, 0x55, 0x22,
- 0x1c, 0x11, 0x10, 0x0, 0x3d, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0x0, 0x8d, 0xa3, 0x0, 0xc, 0x0,
- 0x0, 0x0, 0xac, 0x3a, 0x35, 0x5d, 0x59, 0x80,
- 0x5, 0x4c, 0x0, 0x10, 0xc, 0x0, 0x0, 0x6,
- 0xc, 0x0, 0x0, 0xc, 0x0, 0x0, 0x10, 0xc,
- 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0xc, 0x0, 0x30, 0x0, 0xd, 0x5, 0x55,
- 0x58, 0x56, 0x92, 0x0, 0x2, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+67FB "査" */
- 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xe, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x0, 0x2, 0x80, 0x4, 0x65, 0x55,
- 0xdd, 0x95, 0x55, 0x51, 0x0, 0x0, 0x9, 0x6c,
- 0x37, 0x0, 0x0, 0x0, 0x0, 0x95, 0xc, 0x4,
- 0xb4, 0x0, 0x0, 0x58, 0x20, 0xa, 0x0, 0x4a,
- 0xe6, 0x4, 0x11, 0xc5, 0x55, 0x55, 0xe0, 0x10,
- 0x0, 0x1, 0xb0, 0x0, 0x0, 0xc0, 0x0, 0x0,
- 0x1, 0xc5, 0x55, 0x55, 0xc0, 0x0, 0x0, 0x1,
- 0xc5, 0x55, 0x55, 0xc0, 0x0, 0x0, 0x1, 0xb0,
- 0x0, 0x0, 0xc0, 0x10, 0x5, 0x55, 0xc5, 0x55,
- 0x55, 0xd6, 0xf5, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+67FF "柿" */
- 0x0, 0x2, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0xe, 0x0, 0x0, 0x95, 0x0, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0x2b, 0x0, 0x10, 0x0, 0xc, 0x14,
- 0x65, 0x58, 0x55, 0xb2, 0x5, 0x5d, 0x65, 0x0,
- 0xc, 0x0, 0x0, 0x0, 0x4d, 0x0, 0x75, 0x5d,
- 0x55, 0x80, 0x0, 0x9d, 0xb3, 0xc0, 0xc, 0x2,
- 0xa0, 0x0, 0x9c, 0x35, 0xc0, 0xc, 0x2, 0xa0,
- 0x5, 0x3c, 0x0, 0xc0, 0xc, 0x2, 0xa0, 0x6,
- 0xc, 0x0, 0xc0, 0xc, 0x2, 0xa0, 0x10, 0xc,
- 0x0, 0xc0, 0xc, 0x2a, 0x80, 0x0, 0xd, 0x0,
- 0x20, 0xc, 0x2, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0xc, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1,
- 0x0, 0x0,
-
- /* U+6811 "树" */
- 0x0, 0x4, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0,
- 0xd, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xc,
- 0x4, 0x55, 0x91, 0xc, 0x0, 0x0, 0xc, 0x22,
- 0x0, 0xc0, 0xc, 0x41, 0x5, 0x5d, 0x66, 0x3,
- 0x95, 0x5d, 0x53, 0x0, 0x3d, 0x0, 0x57, 0x40,
- 0xc, 0x0, 0x0, 0x7d, 0xa2, 0x6c, 0x53, 0xc,
- 0x0, 0x0, 0xac, 0x28, 0x4d, 0xc, 0xc, 0x0,
- 0x3, 0x4c, 0x0, 0xa8, 0x58, 0xc, 0x0, 0x6,
- 0xc, 0x5, 0x33, 0x90, 0xc, 0x0, 0x10, 0xc,
- 0x24, 0x0, 0x20, 0xc, 0x0, 0x0, 0xc, 0x10,
- 0x0, 0x11, 0x1c, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x6, 0xe9, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0,
- 0x20, 0x0,
-
- /* U+6821 "校" */
- 0x0, 0x1, 0x0, 0x1, 0x10, 0x0, 0x0, 0x0,
- 0xe, 0x0, 0x0, 0xb3, 0x0, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0x56, 0x0, 0x40, 0x0, 0xc, 0x15,
- 0x65, 0x55, 0x56, 0x81, 0x5, 0x5e, 0x54, 0x8,
- 0x61, 0x61, 0x0, 0x0, 0x4e, 0x60, 0x2b, 0x0,
- 0x2d, 0x40, 0x0, 0x9d, 0x86, 0x80, 0x0, 0x34,
- 0x90, 0x0, 0x9c, 0x4, 0x4, 0x0, 0xd5, 0x0,
- 0x5, 0x3c, 0x0, 0x5, 0x3, 0xb0, 0x0, 0x6,
- 0xc, 0x0, 0x1, 0x6b, 0x20, 0x0, 0x10, 0xc,
- 0x0, 0x0, 0xa9, 0x0, 0x0, 0x0, 0xc, 0x0,
- 0x6, 0x7a, 0x91, 0x0, 0x0, 0xd, 0x4, 0x72,
- 0x0, 0x5d, 0xc3, 0x0, 0x3, 0x21, 0x0, 0x0,
- 0x0, 0x20,
-
- /* U+682A "株" */
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xe, 0x10, 0x1, 0xd, 0x0, 0x0, 0x0, 0xc,
- 0x0, 0x3c, 0xc, 0x0, 0x0, 0x0, 0xc, 0x23,
- 0x7a, 0x5d, 0x59, 0x60, 0x6, 0x6d, 0x54, 0xa0,
- 0xc, 0x0, 0x0, 0x0, 0x4d, 0x1, 0x20, 0xc,
- 0x0, 0x10, 0x0, 0x9d, 0xb5, 0x65, 0x8d, 0x65,
- 0x94, 0x0, 0x9c, 0x34, 0x1, 0xdc, 0x50, 0x0,
- 0x6, 0x2c, 0x0, 0x9, 0x4c, 0x71, 0x0, 0x5,
- 0xc, 0x0, 0x38, 0xc, 0x1a, 0x0, 0x0, 0xc,
- 0x1, 0x80, 0xc, 0x6, 0xb2, 0x0, 0xd, 0x16,
- 0x0, 0xc, 0x0, 0x84, 0x0, 0xd, 0x10, 0x0,
- 0xc, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x2,
- 0x0, 0x0,
-
- /* U+6839 "根" */
- 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xe, 0x0, 0x85, 0x55, 0x5c, 0x10, 0x0, 0xc,
- 0x0, 0xc0, 0x0, 0xc, 0x0, 0x1, 0x1c, 0x24,
- 0xc0, 0x0, 0xc, 0x0, 0x4, 0x4d, 0x33, 0xc5,
- 0x55, 0x5c, 0x0, 0x0, 0x4d, 0x10, 0xc0, 0x0,
- 0xc, 0x0, 0x0, 0x9c, 0xa3, 0xc5, 0x65, 0x5c,
- 0x0, 0x0, 0x9c, 0x37, 0xc0, 0x60, 0x7, 0x70,
- 0x5, 0x2c, 0x0, 0xc0, 0x61, 0x68, 0x10, 0x5,
- 0xc, 0x0, 0xc0, 0x1b, 0x10, 0x0, 0x0, 0xc,
- 0x0, 0xc0, 0x8, 0x50, 0x0, 0x0, 0xd, 0x0,
- 0xc2, 0x61, 0xb9, 0x10, 0x0, 0xd, 0x0, 0xd9,
- 0x0, 0x9, 0xd3, 0x0, 0x2, 0x0, 0x10, 0x0,
- 0x0, 0x0,
-
- /* U+683C "格" */
- 0x0, 0x3, 0x0, 0x3, 0x10, 0x0, 0x0, 0x0,
- 0xd, 0x0, 0xc, 0x50, 0x0, 0x0, 0x0, 0xb,
- 0x0, 0x2d, 0x55, 0x5a, 0x0, 0x0, 0xb, 0x23,
- 0x87, 0x0, 0x85, 0x0, 0x5, 0x6d, 0x56, 0x43,
- 0x53, 0xa0, 0x0, 0x0, 0x4d, 0x3, 0x0, 0x9c,
- 0x10, 0x0, 0x0, 0x9c, 0xa2, 0x2, 0xbb, 0x40,
- 0x0, 0x0, 0x8b, 0x25, 0x47, 0x0, 0x9c, 0x72,
- 0x5, 0x2b, 0x24, 0x95, 0x55, 0x5b, 0x60, 0x5,
- 0xb, 0x0, 0xa1, 0x0, 0x29, 0x0, 0x0, 0xb,
- 0x0, 0xa1, 0x0, 0x29, 0x0, 0x0, 0xc, 0x0,
- 0xa1, 0x0, 0x29, 0x0, 0x0, 0xc, 0x0, 0xa6,
- 0x55, 0x6a, 0x0, 0x0, 0x4, 0x0, 0x30, 0x0,
- 0x2, 0x0,
-
- /* U+6843 "桃" */
- 0x0, 0x2, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0xd, 0x0, 0x9, 0x4a, 0x40, 0x0, 0x0, 0xb,
- 0x0, 0x9, 0x29, 0x10, 0x0, 0x0, 0xb, 0x32,
- 0x9, 0x29, 0x13, 0x30, 0x5, 0x5d, 0x53, 0x79,
- 0x29, 0x2b, 0x40, 0x0, 0x4d, 0x0, 0xc9, 0x29,
- 0x71, 0x0, 0x0, 0x8c, 0xa2, 0x29, 0x29, 0x10,
- 0x0, 0x0, 0xab, 0x36, 0xb, 0x29, 0x84, 0x0,
- 0x4, 0x4b, 0x3, 0x9b, 0x19, 0x2b, 0x40, 0x7,
- 0xb, 0xa, 0xb, 0x9, 0x10, 0x20, 0x11, 0xb,
- 0x0, 0x29, 0x9, 0x10, 0x40, 0x0, 0xc, 0x0,
- 0x91, 0x9, 0x20, 0x80, 0x0, 0xc, 0x6, 0x30,
- 0x6, 0xca, 0xd2, 0x0, 0x6, 0x21, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6848 "案" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x85, 0x0, 0x0, 0x0, 0x0, 0x75,
- 0x55, 0x86, 0x55, 0x5a, 0x60, 0x3, 0xb0, 0x4,
- 0xa0, 0x0, 0x9, 0x0, 0x1, 0x55, 0x5c, 0x55,
- 0x58, 0x59, 0x60, 0x0, 0x0, 0x94, 0x0, 0xa4,
- 0x0, 0x0, 0x0, 0x0, 0x14, 0x7d, 0xc6, 0x10,
- 0x0, 0x0, 0x1, 0x57, 0x83, 0x6, 0xd4, 0x0,
- 0x0, 0x32, 0x0, 0x2c, 0x0, 0x3, 0x70, 0x3,
- 0x55, 0x57, 0xdc, 0x85, 0x55, 0x61, 0x0, 0x0,
- 0x2b, 0x3a, 0x56, 0x0, 0x0, 0x0, 0x5, 0x80,
- 0x2a, 0x5, 0xb7, 0x30, 0x4, 0x62, 0x0, 0x2b,
- 0x0, 0x18, 0xb2, 0x0, 0x0, 0x0, 0x1, 0x0,
- 0x0, 0x0,
-
- /* U+689D "條" */
- 0x0, 0x3, 0x0, 0x1, 0x30, 0x0, 0x0, 0x0,
- 0x1f, 0x20, 0x6, 0xb0, 0x0, 0x0, 0x0, 0x58,
- 0x0, 0xc, 0x75, 0x5a, 0x10, 0x0, 0xb1, 0x50,
- 0x39, 0x50, 0x78, 0x0, 0x3, 0xf1, 0xc0, 0x80,
- 0x87, 0x90, 0x0, 0x8, 0xb0, 0xb1, 0x0, 0x8d,
- 0x60, 0x0, 0x41, 0xb0, 0xb0, 0x28, 0x41, 0x8d,
- 0x92, 0x0, 0xb0, 0xb3, 0x30, 0x1c, 0x1, 0x40,
- 0x0, 0xb0, 0xb4, 0x65, 0x6b, 0x57, 0x80, 0x0,
- 0xb0, 0xc0, 0x14, 0x1a, 0x10, 0x0, 0x0, 0xb0,
- 0x70, 0xa7, 0x1a, 0x2a, 0x20, 0x0, 0xb0, 0x5,
- 0x60, 0x1a, 0x3, 0xd0, 0x0, 0xb0, 0x23, 0x5,
- 0xd8, 0x0, 0x40, 0x0, 0x20, 0x0, 0x0, 0x20,
- 0x0, 0x0,
-
- /* U+68B0 "械" */
- 0x0, 0x10, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0xa4, 0x0, 0x0, 0xd, 0x28, 0x0, 0x0, 0x92,
- 0x0, 0x0, 0xb, 0x6, 0x30, 0x0, 0x93, 0x34,
- 0x44, 0x4c, 0x45, 0x90, 0x36, 0xc6, 0x44, 0x12,
- 0xb, 0x0, 0x0, 0x0, 0xd8, 0x19, 0x2c, 0xb,
- 0x3, 0x50, 0x1, 0xf5, 0xa9, 0x1a, 0xa, 0x8,
- 0x50, 0x6, 0xb2, 0x7b, 0x5c, 0x8b, 0xc, 0x0,
- 0x7, 0x92, 0xa, 0xa, 0x8, 0x86, 0x0, 0x41,
- 0x92, 0xa, 0xa, 0x5, 0xd0, 0x10, 0x0, 0x92,
- 0x17, 0xb, 0x9, 0xc0, 0x50, 0x0, 0xa2, 0x60,
- 0x8, 0x83, 0x4a, 0x80, 0x0, 0xa4, 0x30, 0x26,
- 0x10, 0x6, 0xe0, 0x0, 0x30, 0x0, 0x20, 0x0,
- 0x0, 0x10,
-
- /* U+68EE "森" */
- 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc2, 0x0, 0x2, 0x0, 0x5, 0x55,
- 0x57, 0xe7, 0x55, 0x5b, 0x20, 0x0, 0x0, 0x2c,
- 0xd3, 0x50, 0x0, 0x0, 0x0, 0x1, 0xb1, 0xc0,
- 0x69, 0x10, 0x0, 0x0, 0x38, 0x0, 0xc0, 0x7,
- 0xe9, 0x50, 0x4, 0x39, 0x30, 0xb0, 0xd, 0x17,
- 0x20, 0x25, 0x5b, 0x69, 0x35, 0x5d, 0x58, 0x80,
- 0x0, 0x1f, 0x20, 0x0, 0xdc, 0x50, 0x0, 0x0,
- 0x9c, 0x88, 0x7, 0x7b, 0x81, 0x0, 0x4, 0x6a,
- 0x16, 0x39, 0xb, 0x2c, 0x10, 0x25, 0xa, 0x23,
- 0x60, 0xc, 0x6, 0xc1, 0x10, 0xa, 0x22, 0x0,
- 0xc, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x3,
- 0x0, 0x0,
-
- /* U+690D "植" */
- 0x0, 0x6, 0x0, 0x0, 0x41, 0x0, 0x0, 0x0,
- 0xd, 0x0, 0x0, 0xa2, 0x0, 0x0, 0x0, 0xc,
- 0x3, 0x55, 0xc5, 0x58, 0x90, 0x2, 0x2c, 0x73,
- 0x0, 0xb0, 0x0, 0x0, 0x4, 0x4d, 0x31, 0x75,
- 0xc5, 0x5a, 0x0, 0x0, 0x4d, 0x20, 0xb0, 0x0,
- 0xb, 0x0, 0x0, 0x9c, 0xa4, 0xb5, 0x55, 0x5b,
- 0x0, 0x0, 0x9c, 0x13, 0xb0, 0x0, 0xb, 0x0,
- 0x5, 0x3c, 0x0, 0xb5, 0x55, 0x5b, 0x0, 0x5,
- 0xc, 0x0, 0xb0, 0x0, 0xb, 0x0, 0x0, 0xc,
- 0x0, 0xb5, 0x55, 0x5b, 0x0, 0x0, 0xc, 0x0,
- 0xb0, 0x0, 0xb, 0x50, 0x0, 0xc, 0x36, 0x65,
- 0x55, 0x56, 0x62, 0x0, 0x3, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+691C "検" */
- 0x0, 0x4, 0x0, 0x0, 0x21, 0x0, 0x0, 0x0,
- 0xe, 0x0, 0x0, 0xb9, 0x0, 0x0, 0x0, 0xc,
- 0x0, 0x3, 0xb3, 0x50, 0x0, 0x1, 0x1c, 0x43,
- 0x1a, 0x0, 0x6b, 0x30, 0x4, 0x4d, 0x34, 0x76,
- 0x55, 0x87, 0xb3, 0x0, 0x4e, 0x22, 0x0, 0xb,
- 0x0, 0x0, 0x0, 0x9d, 0xa5, 0xa5, 0x5c, 0x5c,
- 0x30, 0x0, 0x9c, 0x14, 0xb0, 0xa, 0xb, 0x0,
- 0x5, 0x3c, 0x0, 0xb5, 0x6b, 0x5c, 0x0, 0x5,
- 0xc, 0x0, 0x70, 0x6b, 0x14, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0xc1, 0xa0, 0x0, 0x0, 0xd, 0x0,
- 0x9, 0x40, 0x4c, 0x30, 0x0, 0xd, 0x2, 0x72,
- 0x0, 0x5, 0xc3, 0x0, 0x2, 0x1, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+695A "楚" */
- 0x0, 0x0, 0x20, 0x0, 0x4, 0x0, 0x0, 0x0,
- 0x0, 0xc1, 0x0, 0xc, 0x0, 0x0, 0x2, 0x55,
- 0xc6, 0x83, 0x5c, 0x59, 0x30, 0x0, 0x4, 0xf2,
- 0x0, 0x7e, 0x0, 0x0, 0x0, 0xb, 0xc6, 0x72,
- 0x9b, 0x77, 0x0, 0x0, 0x82, 0xc0, 0x48, 0xb,
- 0xa, 0x20, 0x5, 0x20, 0xb0, 0x50, 0xb, 0x0,
- 0x0, 0x1, 0x65, 0x55, 0x58, 0x55, 0x5e, 0x30,
- 0x0, 0x0, 0x60, 0xb, 0x0, 0x42, 0x0, 0x0,
- 0x5, 0xb0, 0xc, 0x55, 0x86, 0x0, 0x0, 0xc,
- 0x70, 0xb, 0x0, 0x0, 0x0, 0x0, 0x73, 0x8,
- 0x6b, 0x0, 0x0, 0x0, 0x4, 0x30, 0x0, 0x39,
- 0xbc, 0xce, 0xb1, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+696D "業" */
- 0x0, 0x0, 0x4, 0x0, 0x50, 0x0, 0x0, 0x0,
- 0x76, 0xc, 0x10, 0xc0, 0xb2, 0x0, 0x0, 0xa,
- 0x4b, 0x0, 0xb7, 0x30, 0x0, 0x4, 0x56, 0x6c,
- 0x55, 0xd5, 0x56, 0xb0, 0x1, 0x0, 0x63, 0x0,
- 0x72, 0x0, 0x0, 0x0, 0x0, 0x8, 0x0, 0x60,
- 0x35, 0x0, 0x0, 0x45, 0x55, 0xa7, 0x55, 0x55,
- 0x0, 0x0, 0x15, 0x55, 0xb7, 0x55, 0xb1, 0x0,
- 0x0, 0x0, 0x0, 0x82, 0x0, 0x3, 0x10, 0x4,
- 0x55, 0x58, 0xe9, 0x65, 0x56, 0x50, 0x0, 0x0,
- 0x3b, 0xa3, 0x92, 0x0, 0x0, 0x0, 0x7, 0x80,
- 0x92, 0xa, 0xa5, 0x20, 0x4, 0x72, 0x0, 0x93,
- 0x0, 0x4b, 0xc2, 0x0, 0x0, 0x0, 0x30, 0x0,
- 0x0, 0x0,
-
- /* U+6975 "極" */
- 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xd, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0xb,
- 0x0, 0x55, 0x55, 0xb8, 0x0, 0x3, 0x3c, 0x71,
- 0x0, 0x18, 0x20, 0x0, 0x2, 0x2c, 0x26, 0x58,
- 0x3a, 0x55, 0x81, 0x0, 0x3d, 0x38, 0x1a, 0x19,
- 0x1, 0xb0, 0x0, 0x8c, 0x9d, 0x1a, 0x19, 0x56,
- 0x60, 0x0, 0xab, 0x1c, 0x1a, 0x19, 0xe, 0x10,
- 0x4, 0x5b, 0x8, 0x6c, 0x19, 0x1a, 0x90, 0x7,
- 0xb, 0x9, 0x18, 0x19, 0x60, 0xb0, 0x10, 0xb,
- 0x4, 0x3, 0x3a, 0x30, 0x0, 0x0, 0xc, 0x0,
- 0x2, 0xc5, 0x0, 0x0, 0x0, 0xc, 0x25, 0x55,
- 0x55, 0x55, 0xd2, 0x0, 0x5, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+697D "楽" */
- 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa, 0x10, 0x0, 0x0, 0x2, 0x71,
- 0x1b, 0x66, 0x5b, 0x6, 0x80, 0x0, 0x3c, 0xb,
- 0x0, 0x1a, 0x37, 0x0, 0x0, 0x1, 0xc, 0x55,
- 0x6c, 0x20, 0x0, 0x0, 0x16, 0x4b, 0x0, 0x1b,
- 0x7b, 0x40, 0x6, 0xa1, 0xc, 0x55, 0x6a, 0x2,
- 0xa0, 0x0, 0x0, 0x5, 0xa, 0x14, 0x0, 0x20,
- 0x5, 0x65, 0x55, 0x9d, 0x75, 0x57, 0x80, 0x0,
- 0x0, 0x6, 0xbc, 0x71, 0x0, 0x0, 0x0, 0x0,
- 0x69, 0xc, 0xa, 0x30, 0x0, 0x0, 0x18, 0x50,
- 0xc, 0x1, 0xbb, 0x61, 0x5, 0x50, 0x0, 0xd,
- 0x0, 0x4, 0x60, 0x0, 0x0, 0x0, 0x3, 0x0,
- 0x0, 0x0,
-
- /* U+6982 "概" */
- 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1a, 0x5, 0x57, 0x24, 0x55, 0x93, 0x0, 0x9,
- 0xa, 0x9, 0x0, 0xb, 0x0, 0x2, 0x3b, 0x7a,
- 0x9, 0x8, 0x2a, 0x0, 0x2, 0x4a, 0x2a, 0x5b,
- 0xb, 0x19, 0x0, 0x0, 0x6c, 0x2a, 0x9, 0x2a,
- 0x28, 0x0, 0x0, 0xaa, 0xcc, 0x9, 0x79, 0x8a,
- 0x95, 0x0, 0x99, 0x3c, 0x57, 0x0, 0x88, 0x0,
- 0x6, 0x39, 0xa, 0x15, 0x0, 0xcb, 0x0, 0x6,
- 0x19, 0xa, 0xa, 0x55, 0x7a, 0x0, 0x10, 0x19,
- 0xb, 0x92, 0x4a, 0xa, 0x3, 0x0, 0x1a, 0x6,
- 0x10, 0x92, 0xa, 0x6, 0x0, 0x1a, 0x0, 0x16,
- 0x10, 0xa, 0xa9, 0x0, 0x3, 0x0, 0x20, 0x0,
- 0x0, 0x0,
-
- /* U+69CB "構" */
- 0x0, 0x20, 0x0, 0x4, 0x0, 0x30, 0x0, 0x0,
- 0x84, 0x0, 0xc, 0x0, 0xc1, 0x20, 0x0, 0x82,
- 0x15, 0x5c, 0x55, 0xc6, 0x60, 0x0, 0x82, 0x44,
- 0x5c, 0x55, 0xc9, 0x30, 0x25, 0xb6, 0x51, 0xa,
- 0x0, 0xa0, 0x40, 0x0, 0xd9, 0x55, 0x56, 0x97,
- 0x65, 0x60, 0x1, 0xf4, 0xa5, 0x55, 0xa8, 0x58,
- 0x20, 0x6, 0xc2, 0x38, 0x20, 0x74, 0xa, 0x0,
- 0x8, 0x82, 0x8, 0x65, 0xa8, 0x5b, 0x0, 0x32,
- 0x82, 0x8, 0x20, 0x74, 0xa, 0x50, 0x10, 0x82,
- 0x5b, 0x65, 0x55, 0x5b, 0x61, 0x0, 0x82, 0x8,
- 0x20, 0x0, 0xa, 0x0, 0x0, 0x92, 0x9, 0x20,
- 0x2, 0x8d, 0x0, 0x0, 0x10, 0x2, 0x0, 0x0,
- 0x1, 0x0,
-
- /* U+69D8 "様" */
- 0x0, 0x2, 0x0, 0x3, 0x0, 0x4, 0x0, 0x0,
- 0xc, 0x0, 0x3, 0xb0, 0xb, 0x10, 0x0, 0xa,
- 0x0, 0x45, 0xb5, 0x86, 0xb2, 0x0, 0xa, 0x23,
- 0x0, 0xb, 0x0, 0x0, 0x5, 0x6c, 0x54, 0x25,
- 0x5c, 0x57, 0x70, 0x0, 0x4d, 0x50, 0x0, 0xb,
- 0x0, 0x10, 0x0, 0x8a, 0xa4, 0x65, 0x5b, 0x55,
- 0x94, 0x0, 0xaa, 0x20, 0x0, 0xb, 0x20, 0x80,
- 0x4, 0x4a, 0x4, 0x59, 0x7b, 0x47, 0x50, 0x6,
- 0xa, 0x0, 0xa, 0x1b, 0x72, 0x0, 0x0, 0xa,
- 0x0, 0x47, 0xb, 0xb, 0x0, 0x0, 0xb, 0x1,
- 0x80, 0xb, 0x5, 0xc3, 0x0, 0xb, 0x25, 0x4,
- 0xac, 0x0, 0x40, 0x0, 0x1, 0x0, 0x0, 0x11,
- 0x0, 0x0,
-
- /* U+6A02 "樂" */
- 0x0, 0x21, 0x0, 0x32, 0x0, 0x30, 0x0, 0x0,
- 0x86, 0x1, 0x72, 0x20, 0xa5, 0x0, 0x0, 0xa2,
- 0x3a, 0x55, 0xc1, 0x83, 0x20, 0x7, 0x38, 0x7a,
- 0x0, 0xa7, 0x2a, 0x40, 0x9, 0x7a, 0xa, 0x55,
- 0xa9, 0x78, 0x0, 0x0, 0x73, 0xa, 0x0, 0xa0,
- 0x83, 0x0, 0x6, 0x75, 0xaa, 0x55, 0xa6, 0x55,
- 0xb0, 0x8, 0x62, 0xa4, 0x45, 0x3a, 0x62, 0x90,
- 0x6, 0x55, 0x55, 0xaa, 0x55, 0x5a, 0x70, 0x0,
- 0x0, 0xb, 0xb7, 0x60, 0x0, 0x0, 0x0, 0x1,
- 0xa4, 0x66, 0x48, 0x0, 0x0, 0x0, 0x58, 0x10,
- 0x66, 0x4, 0xd8, 0x50, 0x15, 0x20, 0x0, 0x66,
- 0x0, 0x17, 0x70, 0x0, 0x0, 0x0, 0x21, 0x0,
- 0x0, 0x0,
-
- /* U+6A19 "標" */
- 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0x3, 0x65, 0x75, 0x75, 0xa2, 0x0, 0xa,
- 0x0, 0x0, 0x90, 0x90, 0x0, 0x5, 0x5c, 0x86,
- 0xa5, 0xb5, 0xb5, 0xa0, 0x0, 0x2b, 0x0, 0xa0,
- 0x90, 0x92, 0x80, 0x0, 0x7d, 0x60, 0xc5, 0xb5,
- 0xb6, 0x80, 0x0, 0xaa, 0x94, 0x70, 0x0, 0x2,
- 0x20, 0x3, 0x5a, 0x10, 0x55, 0x55, 0x58, 0x20,
- 0x6, 0xa, 0x4, 0x55, 0x55, 0x55, 0x85, 0x12,
- 0xa, 0x1, 0x23, 0xb, 0x10, 0x0, 0x0, 0xb,
- 0x0, 0xb5, 0xb, 0x38, 0x0, 0x0, 0xb, 0x8,
- 0x20, 0xb, 0x4, 0xb0, 0x0, 0xb, 0x40, 0x5,
- 0xb8, 0x0, 0x40, 0x0, 0x1, 0x0, 0x0, 0x10,
- 0x0, 0x0,
-
- /* U+6A21 "模" */
- 0x0, 0x4, 0x0, 0x3, 0x0, 0x40, 0x0, 0x0,
- 0xd, 0x0, 0xb, 0x20, 0xd0, 0x10, 0x0, 0xb,
- 0x4, 0x5c, 0x55, 0xc5, 0xa1, 0x4, 0x4c, 0x85,
- 0xa, 0x0, 0xa0, 0x0, 0x1, 0x3c, 0x10, 0x95,
- 0x55, 0x5b, 0x10, 0x0, 0x6d, 0x20, 0xb0, 0x0,
- 0xb, 0x0, 0x0, 0xab, 0xa4, 0xb5, 0x55, 0x5c,
- 0x0, 0x1, 0x7b, 0x16, 0xb5, 0x55, 0x5c, 0x0,
- 0x6, 0xb, 0x0, 0x60, 0x93, 0x5, 0x0, 0x12,
- 0xb, 0x16, 0x55, 0xc7, 0x55, 0xb2, 0x0, 0xb,
- 0x0, 0x1, 0xb4, 0x20, 0x0, 0x0, 0xc, 0x0,
- 0xa, 0x30, 0xa5, 0x0, 0x0, 0xc, 0x2, 0x83,
- 0x0, 0xa, 0xd3, 0x0, 0x2, 0x22, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6A23 "樣" */
- 0x0, 0x4, 0x0, 0x3, 0x0, 0x32, 0x0, 0x0,
- 0xc, 0x0, 0x5, 0x80, 0x94, 0x0, 0x0, 0xb,
- 0x2, 0x55, 0x7a, 0x57, 0x50, 0x5, 0x5c, 0x76,
- 0x45, 0x5c, 0x59, 0x20, 0x0, 0x2c, 0x0, 0x0,
- 0xa, 0x0, 0x10, 0x0, 0x6d, 0x53, 0x55, 0x69,
- 0x55, 0x92, 0x0, 0xab, 0x85, 0x0, 0x3c, 0x0,
- 0x0, 0x2, 0x7b, 0x13, 0x55, 0x5a, 0x0, 0x40,
- 0x7, 0xb, 0x0, 0x2, 0xc, 0x19, 0x60, 0x12,
- 0xb, 0x5, 0x5e, 0x5b, 0x91, 0x0, 0x0, 0xb,
- 0x0, 0x79, 0xb, 0x38, 0x0, 0x0, 0xc, 0x4,
- 0x90, 0xb, 0x7, 0xa2, 0x0, 0xc, 0x25, 0x5,
- 0xbc, 0x0, 0x51, 0x0, 0x2, 0x0, 0x0, 0x20,
- 0x0, 0x0,
-
- /* U+6A2A "横" */
- 0x0, 0x13, 0x0, 0x2, 0x1, 0x20, 0x0, 0x0,
- 0x1b, 0x0, 0xa, 0x2, 0xb0, 0x0, 0x0, 0x19,
- 0x3, 0x5b, 0x56, 0xb7, 0x50, 0x5, 0x6b, 0xa4,
- 0x9, 0x2, 0x90, 0x0, 0x0, 0x59, 0x16, 0x58,
- 0x86, 0x85, 0x91, 0x0, 0x8b, 0x0, 0x20, 0xa0,
- 0x3, 0x0, 0x0, 0xba, 0xb2, 0xc4, 0xb5, 0x5c,
- 0x20, 0x2, 0x89, 0x32, 0xa0, 0xa0, 0xa, 0x0,
- 0x7, 0x29, 0x0, 0xc5, 0xb5, 0x5c, 0x0, 0x5,
- 0x19, 0x0, 0xa0, 0xa0, 0xa, 0x0, 0x0, 0x19,
- 0x0, 0xb8, 0x56, 0x57, 0x0, 0x0, 0x1a, 0x0,
- 0x5b, 0x10, 0x76, 0x0, 0x0, 0x2a, 0x6, 0x60,
- 0x0, 0x7, 0x80, 0x0, 0x13, 0x20, 0x0, 0x0,
- 0x0, 0x30,
-
- /* U+6A39 "樹" */
- 0x0, 0x31, 0x0, 0x21, 0x0, 0x3, 0x0, 0x0,
- 0x92, 0x0, 0x67, 0x0, 0xb, 0x0, 0x0, 0x92,
- 0x25, 0x99, 0x83, 0xa, 0x0, 0x25, 0xb8, 0x70,
- 0x66, 0x0, 0xa, 0x40, 0x0, 0xb2, 0x5, 0x77,
- 0x84, 0x5c, 0x50, 0x0, 0xe4, 0x6, 0x55, 0x80,
- 0xa, 0x0, 0x3, 0xf8, 0x7a, 0x0, 0xa6, 0x2a,
- 0x0, 0x8, 0xa2, 0x4b, 0x55, 0xa1, 0xba, 0x0,
- 0x16, 0x92, 0x6, 0x0, 0x90, 0x2a, 0x0, 0x40,
- 0x92, 0x7, 0x13, 0x70, 0xa, 0x0, 0x0, 0x92,
- 0x3, 0x47, 0x32, 0xa, 0x0, 0x0, 0x92, 0x6a,
- 0x85, 0x10, 0xb, 0x0, 0x0, 0x92, 0x20, 0x0,
- 0x2, 0xbb, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6A4B "橋" */
- 0x0, 0x30, 0x0, 0x0, 0x0, 0x42, 0x0, 0x0,
- 0x94, 0x3, 0x57, 0xaa, 0x85, 0x0, 0x0, 0x92,
- 0x0, 0x0, 0xc0, 0x1, 0x0, 0x25, 0xb8, 0x74,
- 0x5b, 0x75, 0x86, 0x40, 0x0, 0xb2, 0x0, 0x76,
- 0x0, 0x87, 0x10, 0x0, 0xe5, 0x17, 0x4b, 0x55,
- 0xc5, 0xa1, 0x3, 0xf7, 0x80, 0xb, 0x55, 0xb0,
- 0x0, 0x8, 0xa2, 0x33, 0x13, 0x0, 0x41, 0x40,
- 0x17, 0x92, 0xc, 0x45, 0x44, 0x55, 0xb0, 0x50,
- 0x92, 0xb, 0x9, 0x55, 0xc1, 0x90, 0x0, 0x92,
- 0xb, 0x9, 0x55, 0xa1, 0x90, 0x0, 0x92, 0xb,
- 0x4, 0x0, 0x31, 0x90, 0x0, 0x92, 0xb, 0x0,
- 0x0, 0x6c, 0x60, 0x0, 0x10, 0x1, 0x0, 0x0,
- 0x1, 0x0,
-
- /* U+6A5F "機" */
- 0x0, 0x41, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0,
- 0xa2, 0x0, 0xb0, 0xb2, 0x68, 0x0, 0x0, 0xa1,
- 0x4, 0x36, 0xb0, 0x83, 0x20, 0x25, 0xc9, 0x6b,
- 0x78, 0xb9, 0x8b, 0x40, 0x0, 0xc1, 0x1, 0x71,
- 0xb1, 0x46, 0x0, 0x0, 0xf3, 0x5, 0x29, 0xb2,
- 0x65, 0x60, 0x4, 0xf8, 0x6a, 0x57, 0xb7, 0x92,
- 0x80, 0x9, 0xb1, 0x40, 0xb0, 0x91, 0x56, 0x20,
- 0x26, 0xa1, 0x25, 0xc5, 0xa7, 0x57, 0x80, 0x40,
- 0xa1, 0x0, 0xc0, 0x47, 0x2c, 0x0, 0x0, 0xa1,
- 0x5, 0x5a, 0xb, 0xc2, 0x30, 0x0, 0xa1, 0x18,
- 0x1, 0x78, 0xc4, 0x70, 0x0, 0xa3, 0x50, 0x5,
- 0x10, 0x18, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6B21 "次" */
- 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x2,
- 0x40, 0x0, 0xe, 0x30, 0x0, 0x0, 0x0, 0xa6,
- 0x10, 0x3a, 0x0, 0x0, 0x0, 0x0, 0x38, 0x40,
- 0x88, 0x55, 0x57, 0x70, 0x0, 0x0, 0x50, 0xb0,
- 0x40, 0xa, 0x60, 0x0, 0x5, 0x17, 0x20, 0xe2,
- 0x24, 0x0, 0x0, 0x7, 0x25, 0x1, 0xb3, 0x0,
- 0x0, 0x0, 0x44, 0x10, 0x3, 0x85, 0x0, 0x0,
- 0x6, 0xd0, 0x0, 0x7, 0x47, 0x0, 0x0, 0x0,
- 0xb0, 0x0, 0xb, 0x4, 0x50, 0x0, 0x0, 0xe0,
- 0x0, 0x74, 0x0, 0xb1, 0x0, 0x0, 0xf0, 0x5,
- 0x50, 0x0, 0x3d, 0x30, 0x0, 0x21, 0x62, 0x0,
- 0x0, 0x4, 0xb2, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6B32 "欲" */
- 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x55, 0x15, 0x0, 0x78, 0x0, 0x0, 0x0, 0xa1,
- 0x7, 0x90, 0xb1, 0x0, 0x0, 0x7, 0x13, 0x50,
- 0x40, 0xc5, 0x55, 0xa0, 0x10, 0xa, 0x70, 0x6,
- 0x30, 0x5, 0x60, 0x0, 0x38, 0x3c, 0x46, 0xe,
- 0x4, 0x0, 0x1, 0x90, 0x2, 0x80, 0x1c, 0x0,
- 0x0, 0x6, 0x30, 0x4, 0x0, 0x39, 0x30, 0x0,
- 0x10, 0xc5, 0x5d, 0x0, 0x65, 0x60, 0x0, 0x0,
- 0xa0, 0xb, 0x0, 0xb0, 0x90, 0x0, 0x0, 0xa0,
- 0xb, 0x3, 0x80, 0x74, 0x0, 0x0, 0xc5, 0x5c,
- 0x19, 0x0, 0xd, 0x30, 0x0, 0x60, 0x4, 0x60,
- 0x0, 0x4, 0xc2, 0x0, 0x0, 0x1, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6B4C "歌" */
- 0x0, 0x0, 0x0, 0x0, 0x21, 0x0, 0x0, 0x16,
- 0x55, 0x56, 0xa3, 0x79, 0x0, 0x0, 0x1, 0x0,
- 0x18, 0x30, 0xb1, 0x0, 0x0, 0x4, 0xa5, 0xa8,
- 0x31, 0xc5, 0x56, 0x70, 0x4, 0xa5, 0xa8, 0x36,
- 0x14, 0x7, 0x40, 0x3, 0x40, 0x47, 0x43, 0xe,
- 0x2, 0x0, 0x26, 0x55, 0x58, 0xa2, 0xf, 0x0,
- 0x0, 0x2, 0x0, 0x3a, 0x10, 0x2a, 0x40, 0x0,
- 0xb, 0x65, 0xba, 0x10, 0x67, 0x70, 0x0, 0xb,
- 0x10, 0xaa, 0x10, 0x91, 0x80, 0x0, 0xb, 0x65,
- 0x7a, 0x11, 0x90, 0x57, 0x0, 0x1, 0x0, 0x3b,
- 0x18, 0x10, 0xd, 0x40, 0x0, 0x0, 0x4b, 0x62,
- 0x0, 0x3, 0x90, 0x0, 0x0, 0x2, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6B50 "歐" */
- 0x0, 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x9,
- 0x55, 0x55, 0xa0, 0xc2, 0x0, 0x0, 0xa, 0x3,
- 0x12, 0x30, 0xb0, 0x0, 0x0, 0xa, 0xa, 0x48,
- 0x65, 0x95, 0x57, 0x80, 0xa, 0x9, 0x5, 0x48,
- 0x5, 0x8, 0x20, 0xa, 0xa, 0x58, 0x53, 0xe,
- 0x12, 0x0, 0xa, 0x1, 0x0, 0x0, 0xd, 0x10,
- 0x0, 0xa, 0x87, 0x9a, 0x96, 0xb, 0x40, 0x0,
- 0xa, 0x83, 0x79, 0x63, 0x39, 0x70, 0x0, 0xa,
- 0x87, 0x7a, 0x93, 0x75, 0x80, 0x0, 0xa, 0x61,
- 0x16, 0x21, 0xb0, 0x49, 0x0, 0xb, 0x0, 0x4,
- 0x18, 0x30, 0xc, 0x70, 0x8, 0x55, 0x55, 0x93,
- 0x0, 0x1, 0xb2, 0x0, 0x0, 0x3, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6B61 "歡" */
- 0x0, 0x10, 0x2, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x48, 0xc, 0x31, 0x79, 0x0, 0x0, 0x6, 0x89,
- 0x5c, 0x52, 0x92, 0x0, 0x0, 0x6, 0x58, 0x56,
- 0x71, 0xc5, 0x57, 0x80, 0xb, 0xb, 0x91, 0xa2,
- 0x62, 0x9, 0x30, 0x8, 0x86, 0x85, 0x66, 0xe,
- 0x12, 0x0, 0x0, 0xc1, 0x80, 0x31, 0x1d, 0x0,
- 0x0, 0x7, 0xa5, 0xb5, 0x62, 0x2b, 0x20, 0x0,
- 0x27, 0xa4, 0xc4, 0x70, 0x56, 0x60, 0x0, 0x2,
- 0xa5, 0xc5, 0x70, 0x92, 0x90, 0x0, 0x2, 0x70,
- 0xb0, 0x10, 0xa0, 0x57, 0x0, 0x3, 0xa5, 0x95,
- 0x99, 0x20, 0xc, 0x60, 0x3, 0x60, 0x0, 0x62,
- 0x0, 0x2, 0xb2, 0x0, 0x0, 0x2, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6B62 "止" */
- 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xe, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0x0, 0x0, 0x0, 0x0, 0xb, 0x30, 0xc,
- 0x0, 0x3, 0x0, 0x0, 0xc, 0x0, 0xd, 0x55,
- 0x59, 0x20, 0x0, 0xc, 0x0, 0xc, 0x0, 0x0,
- 0x0, 0x0, 0xc, 0x0, 0xc, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x0, 0xc, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0x0, 0xc, 0x0, 0x0, 0x0, 0x0, 0xc,
- 0x0, 0xc, 0x0, 0x0, 0x0, 0x15, 0x5d, 0x55,
- 0x5d, 0x55, 0x5a, 0xb0, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+6B63 "正" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
- 0x55, 0x55, 0x55, 0x55, 0x5b, 0x90, 0x0, 0x10,
- 0x0, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0xc,
- 0x0, 0x0, 0x0, 0x0, 0xb, 0x30, 0xc, 0x0,
- 0x1, 0x0, 0x0, 0xb, 0x0, 0xd, 0x55, 0x7a,
- 0x0, 0x0, 0xb, 0x0, 0xc, 0x0, 0x0, 0x0,
- 0x0, 0xb, 0x0, 0xc, 0x0, 0x0, 0x0, 0x0,
- 0xb, 0x0, 0xc, 0x0, 0x0, 0x0, 0x0, 0xb,
- 0x0, 0xc, 0x0, 0x0, 0x0, 0x0, 0xb, 0x0,
- 0xc, 0x0, 0x6, 0x50, 0x17, 0x55, 0x55, 0x55,
- 0x55, 0x55, 0x50,
-
- /* U+6B64 "此" */
- 0x0, 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0xa4, 0x0, 0xc2, 0x0, 0x0, 0x0, 0x0,
- 0xa2, 0x0, 0xb0, 0x0, 0x0, 0x0, 0x10, 0x92,
- 0x0, 0xb0, 0x1, 0x20, 0x0, 0xd0, 0x92, 0x0,
- 0xb0, 0x1c, 0x90, 0x0, 0xb0, 0x96, 0x86, 0xb3,
- 0x93, 0x0, 0x0, 0xb0, 0x92, 0x0, 0xb4, 0x0,
- 0x0, 0x0, 0xb0, 0x92, 0x0, 0xb0, 0x0, 0x0,
- 0x0, 0xb0, 0x92, 0x0, 0xb0, 0x0, 0x0, 0x0,
- 0xb0, 0x92, 0x2, 0xb0, 0x0, 0x30, 0x0, 0xb0,
- 0xa9, 0x62, 0xb0, 0x0, 0x60, 0x16, 0xea, 0x50,
- 0x0, 0xc0, 0x0, 0xc2, 0x1a, 0x30, 0x0, 0x0,
- 0x5a, 0xaa, 0x91,
-
- /* U+6B65 "步" */
- 0x0, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0xc,
- 0x20, 0xd, 0x55, 0x6b, 0x0, 0x0, 0xc, 0x0,
- 0xc, 0x0, 0x0, 0x0, 0x0, 0xc, 0x0, 0xc,
- 0x0, 0x0, 0x20, 0x7, 0x5b, 0x55, 0x5b, 0x55,
- 0x57, 0xc1, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0,
- 0x0, 0x0, 0x3, 0xa0, 0xc, 0x0, 0xa, 0x30,
- 0x0, 0xb, 0x30, 0xc, 0x0, 0x9a, 0x0, 0x0,
- 0x75, 0x0, 0xc, 0xa, 0x80, 0x0, 0x4, 0x50,
- 0x0, 0x8, 0xb5, 0x0, 0x0, 0x2, 0x0, 0x2,
- 0x89, 0x10, 0x0, 0x0, 0x0, 0x25, 0x66, 0x10,
- 0x0, 0x0, 0x0, 0x3, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6B69 "歩" */
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x20, 0x0, 0x0, 0x0, 0x2b, 0x0,
- 0xc0, 0x2, 0x40, 0x0, 0x2, 0xa0, 0xc, 0x55,
- 0x54, 0x0, 0x0, 0x1a, 0x0, 0xc0, 0x0, 0x4,
- 0x5, 0x65, 0x85, 0x5b, 0x55, 0x56, 0x92, 0x0,
- 0x1, 0x0, 0xe0, 0x44, 0x0, 0x0, 0x2, 0xe2,
- 0xc, 0x0, 0x5b, 0x30, 0x0, 0xb3, 0x0, 0xc0,
- 0xa, 0x8d, 0x0, 0x82, 0x0, 0xd, 0xb, 0xb2,
- 0x20, 0x20, 0x0, 0x0, 0x7c, 0x60, 0x0, 0x0,
- 0x0, 0x3, 0x98, 0x10, 0x0, 0x0, 0x1, 0x57,
- 0x50, 0x0, 0x0, 0x0, 0x2, 0x20, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+6B6F "歯" */
- 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0,
- 0x3, 0x50, 0xd, 0x0, 0x0, 0x0, 0x0, 0x4,
- 0x80, 0xd, 0x55, 0xb1, 0x0, 0x0, 0x4, 0x80,
- 0xc, 0x0, 0x0, 0x0, 0x4, 0x57, 0xa5, 0x5d,
- 0x55, 0x5b, 0x80, 0x1, 0x0, 0x10, 0x8, 0x2,
- 0x0, 0x0, 0x0, 0xb0, 0x57, 0xb, 0xb, 0x27,
- 0x10, 0x0, 0xb0, 0x7, 0xb, 0x43, 0x2c, 0x0,
- 0x0, 0xb3, 0x65, 0xae, 0x76, 0x7c, 0x0, 0x0,
- 0xb0, 0x5, 0x8b, 0x87, 0xc, 0x0, 0x0, 0xb0,
- 0x47, 0xb, 0x9, 0x9c, 0x0, 0x0, 0xb4, 0x40,
- 0xa, 0x0, 0x2c, 0x0, 0x2, 0xa5, 0x55, 0x55,
- 0x55, 0x5c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6B72 "歲" */
- 0x0, 0x0, 0x0, 0x21, 0x0, 0x0, 0x0, 0x0,
- 0x3, 0x40, 0x66, 0x0, 0x50, 0x0, 0x0, 0x4,
- 0x60, 0x68, 0x55, 0x50, 0x10, 0x6, 0x57, 0x85,
- 0x88, 0x55, 0x57, 0xa0, 0x0, 0x0, 0x0, 0x6,
- 0x63, 0x90, 0x0, 0x0, 0xb5, 0x55, 0x58, 0x95,
- 0x79, 0x50, 0x0, 0xc0, 0x0, 0x21, 0x90, 0x24,
- 0x0, 0x0, 0xc3, 0x6a, 0x72, 0xb0, 0x89, 0x0,
- 0x0, 0xc2, 0x5a, 0x23, 0xa3, 0xc0, 0x0, 0x2,
- 0xa7, 0x2a, 0xb6, 0x6e, 0x30, 0x0, 0x4, 0x64,
- 0xf, 0x60, 0xad, 0x20, 0x40, 0x8, 0x0, 0x95,
- 0x1a, 0x42, 0xd4, 0x80, 0x15, 0x47, 0x24, 0x71,
- 0x0, 0x2c, 0xf0, 0x10, 0x10, 0x20, 0x0, 0x0,
- 0x0, 0x10,
-
- /* U+6B73 "歳" */
- 0x0, 0x0, 0x0, 0x11, 0x0, 0x0, 0x0, 0x0,
- 0x3, 0x50, 0x58, 0x0, 0x60, 0x0, 0x0, 0x4,
- 0x70, 0x49, 0x55, 0x51, 0x10, 0x6, 0x57, 0x85,
- 0x78, 0x55, 0x58, 0xa0, 0x0, 0x0, 0x0, 0x5,
- 0x83, 0xa0, 0x0, 0x0, 0xa5, 0x55, 0x57, 0xa5,
- 0x78, 0x60, 0x0, 0xb0, 0x0, 0x13, 0xa0, 0x14,
- 0x0, 0x0, 0xb6, 0x5b, 0x54, 0xb0, 0x7b, 0x0,
- 0x0, 0xa2, 0x3a, 0x40, 0x94, 0xd1, 0x0, 0x1,
- 0x98, 0x3a, 0x57, 0x4f, 0x30, 0x0, 0x4, 0x84,
- 0xa, 0x4, 0x9d, 0x20, 0x40, 0x7, 0x12, 0xa9,
- 0x19, 0x43, 0xd3, 0x70, 0x6, 0x0, 0x4, 0x60,
- 0x0, 0x2c, 0xe0, 0x10, 0x0, 0x20, 0x0, 0x0,
- 0x0, 0x20,
-
- /* U+6B77 "歷" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1,
- 0x95, 0x55, 0x55, 0x55, 0x5b, 0x50, 0x1, 0xa0,
- 0x15, 0xc2, 0x1, 0x78, 0x0, 0x1, 0xa3, 0x5a,
- 0x0, 0x4c, 0x20, 0x0, 0x1, 0xa5, 0x7b, 0xa3,
- 0x6c, 0x58, 0x50, 0x1, 0xa0, 0xab, 0x20, 0x5e,
- 0x60, 0x0, 0x2, 0x92, 0x99, 0xa1, 0x8a, 0x2a,
- 0x0, 0x3, 0x87, 0x29, 0x6, 0xa, 0x5, 0x70,
- 0x4, 0x70, 0x15, 0x12, 0x74, 0x0, 0x0, 0x6,
- 0x30, 0x51, 0x2, 0x80, 0x50, 0x0, 0x8, 0x0,
- 0xa0, 0x2, 0xa5, 0x52, 0x0, 0x7, 0x0, 0xa0,
- 0x2, 0x80, 0x0, 0x0, 0x42, 0x55, 0xc5, 0x56,
- 0xa5, 0x59, 0xb0, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6B7B "死" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5,
- 0x55, 0x55, 0x55, 0x55, 0x5a, 0xc0, 0x1, 0x3,
- 0xa0, 0x0, 0xc0, 0x0, 0x0, 0x0, 0x7, 0x60,
- 0x0, 0xc0, 0x0, 0x0, 0x0, 0xb, 0x10, 0x40,
- 0xc0, 0x4, 0x60, 0x0, 0x1c, 0x56, 0xe1, 0xc0,
- 0x2c, 0x40, 0x0, 0x85, 0x5, 0x80, 0xc3, 0x80,
- 0x0, 0x1, 0x88, 0x3a, 0x20, 0xc3, 0x0, 0x0,
- 0x7, 0x3, 0x6c, 0x0, 0xc0, 0x0, 0x0, 0x10,
- 0x0, 0x94, 0x0, 0xc0, 0x0, 0x40, 0x0, 0x4,
- 0x80, 0x0, 0xc0, 0x0, 0x70, 0x0, 0x38, 0x0,
- 0x0, 0xc2, 0x11, 0xd2, 0x4, 0x50, 0x0, 0x0,
- 0x59, 0x99, 0x70, 0x11, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6B8A "殊" */
- 0x0, 0x0, 0x0, 0x0, 0x12, 0x0, 0x0, 0x0,
- 0x0, 0x4, 0x6, 0x2c, 0x0, 0x0, 0x5, 0x99,
- 0x55, 0x3a, 0x2a, 0x1, 0x0, 0x0, 0x84, 0x0,
- 0x67, 0x6b, 0x59, 0x40, 0x0, 0xb6, 0x75, 0x80,
- 0x2a, 0x0, 0x0, 0x0, 0xb0, 0x77, 0x20, 0x2a,
- 0x0, 0x40, 0x3, 0x90, 0xa4, 0x55, 0xbc, 0x65,
- 0x92, 0x7, 0x57, 0xc0, 0x2, 0xda, 0x60, 0x0,
- 0x13, 0x5, 0x90, 0xa, 0x4a, 0x80, 0x0, 0x0,
- 0x8, 0x20, 0x56, 0x2a, 0x38, 0x0, 0x0, 0x19,
- 0x3, 0x80, 0x2a, 0xa, 0x80, 0x0, 0x71, 0x26,
- 0x0, 0x2a, 0x1, 0xb4, 0x5, 0x10, 0x20, 0x0,
- 0x2a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6B8B "残" */
- 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x5, 0x0, 0xc2, 0x60, 0x0, 0x5, 0x99,
- 0x55, 0x10, 0xc0, 0x69, 0x0, 0x0, 0x83, 0x0,
- 0x0, 0xc0, 0x6, 0x0, 0x0, 0xa0, 0x4, 0x35,
- 0xd5, 0x57, 0x40, 0x0, 0xb5, 0x5d, 0x10, 0xb0,
- 0x0, 0x0, 0x5, 0x80, 0x38, 0x0, 0xb6, 0x57,
- 0x60, 0x8, 0x49, 0x64, 0x54, 0x94, 0x7, 0x10,
- 0x21, 0x4, 0xa0, 0x0, 0x57, 0x4b, 0x0, 0x0,
- 0x2, 0x80, 0x0, 0x1d, 0xb0, 0x0, 0x0, 0x9,
- 0x0, 0x0, 0x4e, 0x50, 0x12, 0x0, 0x63, 0x0,
- 0x18, 0x60, 0xc5, 0x60, 0x4, 0x30, 0x4, 0x50,
- 0x0, 0x1b, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x30,
-
- /* U+6BB5 "段" */
- 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x43, 0x8b, 0x27, 0x55, 0x91, 0x0, 0x0, 0xc2,
- 0x0, 0xc, 0x0, 0xb0, 0x0, 0x0, 0xb0, 0x0,
- 0xc, 0x0, 0xb0, 0x0, 0x0, 0xc5, 0x68, 0xa,
- 0x0, 0xc0, 0x10, 0x0, 0xb0, 0x0, 0x72, 0x0,
- 0x59, 0x80, 0x0, 0xc5, 0x68, 0x55, 0x44, 0x78,
- 0x0, 0x0, 0xb0, 0x0, 0x6, 0x0, 0xa3, 0x0,
- 0x0, 0xb0, 0x2, 0x24, 0x42, 0xb0, 0x0, 0x14,
- 0xd9, 0x73, 0x0, 0xbb, 0x30, 0x0, 0x19, 0xc0,
- 0x0, 0x0, 0xbd, 0x10, 0x0, 0x0, 0xb0, 0x0,
- 0x3a, 0x33, 0xd6, 0x0, 0x0, 0xb0, 0x35, 0x40,
- 0x0, 0x1a, 0xc2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6BCD "母" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x9, 0x65, 0x55, 0x55, 0xb5, 0x0, 0x0, 0xc,
- 0x11, 0x50, 0x0, 0xa2, 0x0, 0x0, 0xd, 0x0,
- 0x87, 0x0, 0xb1, 0x0, 0x0, 0xd, 0x0, 0x17,
- 0x0, 0xc0, 0x0, 0x15, 0x5d, 0x55, 0x55, 0x55,
- 0xe7, 0xc0, 0x0, 0x2a, 0x2, 0x30, 0x0, 0xd0,
- 0x0, 0x0, 0x48, 0x0, 0xb5, 0x0, 0xd0, 0x0,
- 0x0, 0x67, 0x0, 0x49, 0x1, 0xc0, 0x0, 0x0,
- 0x85, 0x0, 0x0, 0x2, 0xb3, 0x60, 0x0, 0x86,
- 0x55, 0x55, 0x57, 0xb5, 0x50, 0x0, 0x0, 0x0,
- 0x2, 0x7, 0x70, 0x0, 0x0, 0x0, 0x0, 0x1,
- 0xbf, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x11,
- 0x0, 0x0,
-
- /* U+6BCE "毎" */
- 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x5, 0xc0, 0x0, 0x0, 0x6, 0x0, 0x0, 0xc,
- 0x55, 0x55, 0x55, 0x56, 0x20, 0x0, 0x84, 0x0,
- 0x0, 0x0, 0x30, 0x0, 0x4, 0x26, 0x85, 0x5c,
- 0x55, 0xd3, 0x0, 0x0, 0x8, 0x30, 0x1a, 0x0,
- 0xc0, 0x0, 0x0, 0xa, 0x10, 0x38, 0x0, 0xc0,
- 0x50, 0x16, 0x5d, 0x55, 0x89, 0x55, 0xd6, 0x71,
- 0x0, 0xc, 0x0, 0x75, 0x0, 0xc0, 0x0, 0x0,
- 0xb, 0x0, 0x83, 0x0, 0xc0, 0x0, 0x0, 0x5b,
- 0x55, 0x96, 0x55, 0xd8, 0x80, 0x0, 0x1, 0x0,
- 0x0, 0x3, 0xa0, 0x0, 0x0, 0x0, 0x0, 0x2,
- 0x8d, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
- 0x0, 0x0,
-
- /* U+6BCF "每" */
- 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x5, 0xc0, 0x0, 0x0, 0x5, 0x0, 0x0, 0xc,
- 0x65, 0x55, 0x55, 0x58, 0x30, 0x0, 0x85, 0x0,
- 0x0, 0x0, 0x30, 0x0, 0x5, 0x56, 0x95, 0x75,
- 0x55, 0xd3, 0x0, 0x12, 0x7, 0x40, 0x87, 0x0,
- 0xc0, 0x0, 0x0, 0x9, 0x30, 0x8, 0x0, 0xc0,
- 0x60, 0x16, 0x5c, 0x66, 0x55, 0x55, 0xd5, 0x71,
- 0x0, 0xc, 0x0, 0xa4, 0x0, 0xd0, 0x0, 0x0,
- 0xc, 0x0, 0x2a, 0x0, 0xc0, 0x0, 0x0, 0x3c,
- 0x55, 0x55, 0x55, 0xd8, 0xa0, 0x0, 0x1, 0x0,
- 0x0, 0x3, 0x90, 0x0, 0x0, 0x0, 0x0, 0x1,
- 0x8d, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
- 0x0, 0x0,
-
- /* U+6BD4 "比" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb2, 0x0,
- 0xc, 0x30, 0x0, 0x0, 0xc0, 0x0, 0xc, 0x0,
- 0x0, 0x0, 0xc0, 0x0, 0xc, 0x0, 0xc, 0x30,
- 0xc0, 0x0, 0xc, 0x0, 0xb7, 0x0, 0xc5, 0x5a,
- 0x3c, 0x9, 0x30, 0x0, 0xc0, 0x0, 0xc, 0x60,
- 0x0, 0x0, 0xc0, 0x0, 0xc, 0x0, 0x0, 0x0,
- 0xc0, 0x0, 0xc, 0x0, 0x0, 0x0, 0xc0, 0x0,
- 0xc, 0x0, 0x0, 0x40, 0xc0, 0x15, 0x2c, 0x0,
- 0x0, 0x60, 0xdb, 0x70, 0xc, 0x31, 0x14, 0xc0,
- 0x62, 0x0, 0x4, 0xaa, 0xaa, 0x60,
-
- /* U+6BDB "毛" */
- 0x0, 0x0, 0x0, 0x1, 0x5c, 0x30, 0x0, 0x0,
- 0x14, 0x57, 0xb9, 0x74, 0x20, 0x0, 0x0, 0x20,
- 0x0, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc0, 0x0, 0x50, 0x0, 0x0, 0x24, 0x55, 0xd5,
- 0x55, 0x62, 0x0, 0x0, 0x31, 0x0, 0xc0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0, 0x1, 0x29,
- 0x80, 0x4, 0x55, 0x55, 0xd5, 0x54, 0x21, 0x0,
- 0x1, 0x0, 0x0, 0xc0, 0x0, 0x0, 0x10, 0x0,
- 0x0, 0x0, 0xc0, 0x0, 0x0, 0x50, 0x0, 0x0,
- 0x0, 0xd0, 0x0, 0x0, 0xa0, 0x0, 0x0, 0x0,
- 0xbc, 0xbb, 0xbc, 0xc1,
-
- /* U+6C0F "氏" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x4, 0x8e, 0x80, 0x0, 0xa5, 0x56, 0xd5, 0x31,
- 0x0, 0x0, 0xb1, 0x0, 0xb1, 0x0, 0x0, 0x0,
- 0xb1, 0x0, 0xa2, 0x0, 0x0, 0x0, 0xb5, 0x55,
- 0xb7, 0x55, 0x6e, 0x30, 0xb1, 0x0, 0x56, 0x0,
- 0x0, 0x0, 0xb1, 0x0, 0x2b, 0x0, 0x0, 0x0,
- 0xb1, 0x0, 0xc, 0x30, 0x0, 0x0, 0xb1, 0x0,
- 0x34, 0xd0, 0x0, 0x30, 0xb1, 0x66, 0x0, 0x8b,
- 0x10, 0x70, 0xcd, 0x40, 0x0, 0x7, 0xe9, 0x70,
- 0x62, 0x0, 0x0, 0x0, 0x2a, 0x90, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0,
-
- /* U+6C11 "民" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x95,
- 0x55, 0x55, 0x55, 0xc1, 0x0, 0xc, 0x0, 0x0,
- 0x0, 0xc, 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0,
- 0xc0, 0x0, 0xc, 0x55, 0x5a, 0x55, 0x5d, 0x0,
- 0x0, 0xc0, 0x0, 0xa1, 0x0, 0x0, 0x0, 0xc,
- 0x0, 0x9, 0x20, 0x0, 0x53, 0x0, 0xc5, 0x55,
- 0x99, 0x55, 0x55, 0x40, 0xc, 0x0, 0x1, 0xb0,
- 0x0, 0x0, 0x0, 0xc0, 0x0, 0xa, 0x40, 0x0,
- 0x0, 0xc, 0x1, 0x50, 0x2d, 0x20, 0x5, 0x0,
- 0xd8, 0x80, 0x0, 0x4d, 0x41, 0x80, 0xc, 0x50,
- 0x0, 0x0, 0x2b, 0xfc, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0x30,
-
- /* U+6C14 "气" */
- 0x0, 0x2, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x8, 0x90, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe,
- 0x55, 0x55, 0x55, 0x7d, 0x10, 0x0, 0x65, 0x0,
- 0x0, 0x0, 0x10, 0x0, 0x0, 0x90, 0x65, 0x55,
- 0x57, 0x90, 0x0, 0x7, 0x10, 0x0, 0x0, 0x3,
- 0x0, 0x0, 0x21, 0x36, 0x55, 0x55, 0x5c, 0x30,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xa, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x9, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x5, 0x70, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc2, 0x80, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x3d, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x30,
-
- /* U+6C17 "気" */
- 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x4, 0xc0, 0x0, 0x0, 0x2, 0x0, 0x0, 0xa,
- 0x75, 0x55, 0x55, 0x59, 0x40, 0x0, 0x28, 0x55,
- 0x55, 0x55, 0xa2, 0x0, 0x0, 0x90, 0x10, 0x0,
- 0x0, 0x10, 0x0, 0x5, 0x16, 0x55, 0x55, 0x55,
- 0xe0, 0x0, 0x1, 0x0, 0x0, 0xa, 0x60, 0xc0,
- 0x0, 0x0, 0x4, 0x20, 0x3c, 0x0, 0xb0, 0x0,
- 0x0, 0x0, 0x49, 0xc1, 0x0, 0xb0, 0x0, 0x0,
- 0x0, 0xa, 0xc7, 0x0, 0xb0, 0x0, 0x0, 0x0,
- 0x93, 0xc, 0x60, 0x83, 0x30, 0x0, 0x27, 0x10,
- 0x2, 0x60, 0x2c, 0x51, 0x1, 0x30, 0x0, 0x0,
- 0x0, 0x6, 0xe4, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x12,
-
- /* U+6C34 "水" */
- 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb4, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb4, 0x0, 0x7a, 0x0, 0x5, 0x55, 0xa4, 0xb7,
- 0x5, 0x80, 0x0, 0x1, 0x0, 0xd1, 0xb7, 0x63,
- 0x0, 0x0, 0x0, 0x3, 0xa0, 0xb2, 0x80, 0x0,
- 0x0, 0x0, 0x9, 0x40, 0xb1, 0x83, 0x0, 0x0,
- 0x0, 0x1b, 0x0, 0xb1, 0x1c, 0x0, 0x0, 0x0,
- 0x83, 0x0, 0xb1, 0x6, 0xb0, 0x0, 0x3, 0x60,
- 0x0, 0xb1, 0x0, 0x9d, 0x40, 0x15, 0x0, 0x11,
- 0xc1, 0x0, 0x8, 0x60, 0x0, 0x0, 0x2b, 0xd0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6C37 "氷" */
- 0x0, 0x0, 0x0, 0x52, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa3, 0x0, 0x0, 0x0, 0x0, 0x20,
- 0x0, 0xa2, 0x0, 0x10, 0x0, 0x0, 0x6a, 0x10,
- 0xa3, 0x0, 0xd4, 0x0, 0x0, 0x6, 0x80, 0xa8,
- 0x9, 0x30, 0x0, 0x4, 0x55, 0x66, 0xa8, 0x72,
- 0x0, 0x0, 0x1, 0x0, 0x85, 0xa4, 0x70, 0x0,
- 0x0, 0x0, 0x0, 0xc0, 0xa2, 0xa1, 0x0, 0x0,
- 0x0, 0x7, 0x50, 0xa2, 0x3c, 0x0, 0x0, 0x0,
- 0x1a, 0x0, 0xa2, 0x9, 0xb0, 0x0, 0x0, 0xa1,
- 0x0, 0xa2, 0x0, 0xbd, 0x50, 0x8, 0x10, 0x22,
- 0xc2, 0x0, 0x8, 0x20, 0x20, 0x0, 0x18, 0xc0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6C38 "永" */
- 0x0, 0x0, 0x1, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x8b, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x55,
- 0x5a, 0x10, 0x1, 0x0, 0x0, 0x0, 0x10, 0xe,
- 0x0, 0x2e, 0x10, 0x0, 0x0, 0x12, 0xd, 0x40,
- 0xa2, 0x0, 0x3, 0x65, 0xa9, 0xc, 0x77, 0x20,
- 0x0, 0x0, 0x0, 0xc1, 0xc, 0x55, 0x0, 0x0,
- 0x0, 0x4, 0x80, 0xc, 0xb, 0x0, 0x0, 0x0,
- 0xb, 0x0, 0xc, 0x5, 0xb0, 0x0, 0x0, 0x73,
- 0x0, 0xc, 0x0, 0x9c, 0x20, 0x4, 0x40, 0x3,
- 0x4c, 0x0, 0x8, 0xc2, 0x2, 0x0, 0x2, 0xd7,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6C42 "求" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd2, 0x29, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0xd0, 0x3, 0xc0, 0x0, 0x5, 0x55, 0x55,
- 0xe5, 0x55, 0x7d, 0x30, 0x1, 0x0, 0x0, 0xd3,
- 0x0, 0x0, 0x0, 0x0, 0x56, 0x0, 0xd5, 0x0,
- 0x65, 0x0, 0x0, 0xa, 0x90, 0xd7, 0x5, 0xb3,
- 0x0, 0x0, 0x1, 0x60, 0xd2, 0xa5, 0x0, 0x0,
- 0x0, 0x0, 0x36, 0xd0, 0x93, 0x0, 0x0, 0x0,
- 0x39, 0x40, 0xd0, 0x1d, 0x30, 0x0, 0x3c, 0xa0,
- 0x0, 0xd0, 0x3, 0xe8, 0x10, 0x6, 0x0, 0x32,
- 0xe0, 0x0, 0x2d, 0x90, 0x0, 0x0, 0x3c, 0xb0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6C5A "汚" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x92, 0x6, 0x55, 0x65, 0x5a, 0x10, 0x0, 0x3a,
- 0x0, 0x4, 0x70, 0x0, 0x0, 0x0, 0x1, 0x20,
- 0x6, 0x50, 0x0, 0x0, 0x27, 0x0, 0x76, 0x5b,
- 0x75, 0x55, 0xb1, 0x7, 0x73, 0x20, 0xb, 0x0,
- 0x0, 0x0, 0x0, 0x46, 0x0, 0xc, 0x0, 0x0,
- 0x0, 0x0, 0x7, 0x0, 0x4b, 0x55, 0x5c, 0x40,
- 0x0, 0x44, 0x0, 0x0, 0x0, 0xd, 0x0, 0x7,
- 0xe0, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0, 0xd0,
- 0x0, 0x0, 0x0, 0x39, 0x0, 0x1, 0xd0, 0x0,
- 0x0, 0x30, 0x86, 0x0, 0x0, 0xa0, 0x0, 0x0,
- 0x3e, 0xd1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2,
- 0x0, 0x0,
-
- /* U+6C60 "池" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xa2, 0x0, 0x0, 0xb2, 0x0, 0x0, 0x0, 0x49,
- 0x0, 0x0, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x31,
- 0xa0, 0xb0, 0x2, 0x0, 0x9, 0x10, 0x41, 0xa0,
- 0xb4, 0x4c, 0x30, 0x3, 0xb1, 0x44, 0xb4, 0xc0,
- 0xa, 0x0, 0x0, 0x26, 0x22, 0xa0, 0xb0, 0xb,
- 0x0, 0x0, 0x7, 0x1, 0xa0, 0xb0, 0xb, 0x0,
- 0x0, 0x35, 0x1, 0xa0, 0xb2, 0x4c, 0x0, 0x6,
- 0xe1, 0x1, 0xa0, 0xb0, 0x76, 0x20, 0x0, 0xd0,
- 0x1, 0xa0, 0x70, 0x0, 0x60, 0x0, 0xe0, 0x1,
- 0xb0, 0x0, 0x0, 0xb4, 0x0, 0xa0, 0x0, 0x8a,
- 0xaa, 0xaa, 0x91,
-
- /* U+6C7A "決" */
- 0x0, 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0,
- 0x75, 0x0, 0x1, 0xd0, 0x0, 0x0, 0x0, 0xd,
- 0x0, 0x1, 0xb0, 0x0, 0x0, 0x0, 0x1, 0x5,
- 0x76, 0xc5, 0x5c, 0x0, 0x7, 0x20, 0x40, 0x1,
- 0xa0, 0xc, 0x0, 0x1, 0xe0, 0x60, 0x1, 0xa0,
- 0xc, 0x0, 0x0, 0x43, 0x30, 0x2, 0x90, 0xc,
- 0x0, 0x0, 0x8, 0x26, 0x57, 0xb5, 0x5a, 0x93,
- 0x0, 0x27, 0x0, 0x7, 0x56, 0x0, 0x0, 0x5,
- 0xe3, 0x0, 0xc, 0x9, 0x10, 0x0, 0x0, 0xc0,
- 0x0, 0x57, 0x2, 0xc0, 0x0, 0x0, 0xe0, 0x1,
- 0xa0, 0x0, 0x7c, 0x20, 0x0, 0x70, 0x28, 0x0,
- 0x0, 0x7, 0xf4, 0x0, 0x0, 0x20, 0x0, 0x0,
- 0x0, 0x10,
-
- /* U+6C88 "沈" */
- 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x1,
- 0x50, 0x0, 0x1, 0xd0, 0x0, 0x0, 0x0, 0x77,
- 0x0, 0x1, 0xb0, 0x0, 0x0, 0x0, 0x3, 0x7,
- 0x55, 0xc5, 0x57, 0x80, 0x14, 0x0, 0x4c, 0x1,
- 0xa0, 0x7, 0x20, 0x9, 0x54, 0x11, 0x2, 0xa0,
- 0x0, 0x0, 0x1, 0x25, 0x0, 0x4, 0xe5, 0x0,
- 0x0, 0x0, 0x6, 0x0, 0x7, 0xb4, 0x0, 0x0,
- 0x0, 0x62, 0x0, 0xc, 0x74, 0x0, 0x0, 0x14,
- 0xc0, 0x0, 0x39, 0x64, 0x0, 0x10, 0x7, 0xb0,
- 0x0, 0xa1, 0x64, 0x0, 0x50, 0x4, 0xa0, 0x7,
- 0x20, 0x65, 0x0, 0x61, 0x5, 0xa0, 0x62, 0x0,
- 0x3c, 0x99, 0xc4, 0x0, 0x23, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6C92 "沒" */
- 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0,
- 0x73, 0x0, 0x4b, 0x0, 0x0, 0x0, 0x0, 0x1d,
- 0x0, 0x96, 0x55, 0x5d, 0x0, 0x0, 0x2, 0x13,
- 0x80, 0x0, 0x1b, 0x0, 0x7, 0x0, 0x56, 0x10,
- 0x0, 0x38, 0x0, 0x4, 0xb0, 0x73, 0x0, 0x3,
- 0xd2, 0x0, 0x0, 0x55, 0x15, 0x65, 0x55, 0x6c,
- 0x0, 0x0, 0x8, 0x0, 0x60, 0x0, 0x86, 0x0,
- 0x0, 0x46, 0x0, 0x43, 0x1, 0xb0, 0x0, 0x6,
- 0xf1, 0x0, 0xa, 0x1b, 0x20, 0x0, 0x0, 0xc0,
- 0x0, 0x3, 0xf5, 0x0, 0x0, 0x0, 0xe0, 0x0,
- 0x3b, 0x6c, 0x60, 0x0, 0x0, 0x80, 0x38, 0x71,
- 0x1, 0x9f, 0xb2, 0x0, 0x2, 0x20, 0x0, 0x0,
- 0x1, 0x20,
-
- /* U+6CB9 "油" */
- 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x5,
- 0x0, 0x0, 0xc, 0x10, 0x0, 0x0, 0x3c, 0x0,
- 0x0, 0xb0, 0x0, 0x0, 0x0, 0x42, 0x20, 0xb,
- 0x0, 0x40, 0x23, 0x0, 0x5b, 0x55, 0xc5, 0x5d,
- 0x10, 0xb5, 0x14, 0xb0, 0xb, 0x0, 0xb0, 0x2,
- 0x36, 0xb, 0x0, 0xb0, 0xb, 0x0, 0x0, 0x80,
- 0xb5, 0x5c, 0x55, 0xc0, 0x0, 0x54, 0xb, 0x0,
- 0xb0, 0xb, 0x1, 0x6d, 0x0, 0xb0, 0xb, 0x0,
- 0xb0, 0x3, 0xc0, 0xb, 0x0, 0xb0, 0xb, 0x0,
- 0x3b, 0x0, 0xb5, 0x5c, 0x55, 0xc0, 0x3, 0xb0,
- 0xa, 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+6CBB "治" */
- 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x53, 0x0, 0x1, 0xe1, 0x0, 0x0, 0x0, 0xe,
- 0x10, 0x8, 0x40, 0x0, 0x0, 0x0, 0x4, 0x4,
- 0x27, 0x0, 0x53, 0x0, 0x4, 0x0, 0x32, 0x80,
- 0x0, 0xb, 0x50, 0x6, 0xa0, 0x6a, 0xc8, 0x65,
- 0x55, 0xd0, 0x0, 0x80, 0x61, 0x0, 0x0, 0x0,
- 0x20, 0x0, 0x6, 0x10, 0x95, 0x55, 0x5b, 0x0,
- 0x0, 0xa, 0x0, 0xb0, 0x0, 0xb, 0x0, 0x4,
- 0xb7, 0x0, 0xb0, 0x0, 0xb, 0x0, 0x0, 0x95,
- 0x0, 0xb0, 0x0, 0xb, 0x0, 0x0, 0xb4, 0x0,
- 0xc5, 0x55, 0x5b, 0x0, 0x0, 0x93, 0x0, 0xa0,
- 0x0, 0x9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6CC1 "況" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x82, 0x1, 0xa5, 0x55, 0x5b, 0x20, 0x0, 0x1d,
- 0x0, 0xa0, 0x0, 0xb, 0x0, 0x0, 0x2, 0x3,
- 0xa0, 0x0, 0xb, 0x0, 0x6, 0x0, 0x40, 0xa0,
- 0x0, 0xb, 0x0, 0x4, 0xb0, 0x50, 0xc5, 0x55,
- 0x5c, 0x0, 0x0, 0x64, 0x21, 0x77, 0x3b, 0x5,
- 0x0, 0x0, 0x8, 0x0, 0x8, 0x1b, 0x0, 0x0,
- 0x0, 0x37, 0x0, 0xa, 0xb, 0x0, 0x0, 0x6,
- 0xe2, 0x0, 0xa, 0xb, 0x0, 0x0, 0x0, 0xd0,
- 0x0, 0x74, 0xb, 0x0, 0x50, 0x0, 0xf0, 0x3,
- 0x80, 0xb, 0x0, 0x80, 0x0, 0xa0, 0x46, 0x0,
- 0x7, 0xa9, 0xc2, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6CCA "泊" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x51,
- 0x0, 0x0, 0x5b, 0x0, 0x0, 0x1, 0xd0, 0x0,
- 0x8, 0x10, 0x0, 0x0, 0x5, 0x3, 0x95, 0x85,
- 0x55, 0xb0, 0x40, 0x2, 0x2b, 0x0, 0x0, 0x1a,
- 0x3, 0xb0, 0x50, 0xb0, 0x0, 0x1, 0xa0, 0x9,
- 0x16, 0xb, 0x0, 0x0, 0x1a, 0x0, 0x6, 0x10,
- 0xc5, 0x55, 0x56, 0xa0, 0x0, 0x90, 0xb, 0x0,
- 0x0, 0x1a, 0x4, 0xb6, 0x0, 0xb0, 0x0, 0x1,
- 0xa0, 0xa, 0x30, 0xb, 0x0, 0x0, 0x1a, 0x0,
- 0xb2, 0x0, 0xc5, 0x55, 0x56, 0xa0, 0x9, 0x30,
- 0xb, 0x0, 0x0, 0x1a, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+6CD5 "法" */
- 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0,
- 0x91, 0x0, 0x0, 0xb3, 0x0, 0x0, 0x0, 0x3a,
- 0x0, 0x0, 0xb0, 0x0, 0x0, 0x0, 0x2, 0x34,
- 0x65, 0xc5, 0x5a, 0x30, 0x26, 0x0, 0x50, 0x0,
- 0xb0, 0x0, 0x0, 0x8, 0x71, 0x40, 0x0, 0xb0,
- 0x0, 0x0, 0x1, 0x46, 0x0, 0x0, 0xb0, 0x0,
- 0x60, 0x0, 0x7, 0x36, 0x56, 0xd5, 0x55, 0x51,
- 0x0, 0x63, 0x0, 0x7, 0x90, 0x0, 0x0, 0x18,
- 0xd0, 0x0, 0x2b, 0x0, 0x30, 0x0, 0x1, 0xb0,
- 0x0, 0x91, 0x0, 0x57, 0x0, 0x3, 0xa0, 0x19,
- 0x44, 0x55, 0x5c, 0x70, 0x2, 0x80, 0x2e, 0x95,
- 0x20, 0x1, 0xa0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6CE2 "波" */
- 0x0, 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0,
- 0x92, 0x0, 0x0, 0xb1, 0x0, 0x0, 0x0, 0x4a,
- 0x0, 0x0, 0xb0, 0x0, 0x0, 0x0, 0x1, 0x4a,
- 0x55, 0xc5, 0x5b, 0x70, 0x27, 0x0, 0x5b, 0x0,
- 0xb0, 0x17, 0x0, 0x8, 0x73, 0x2b, 0x0, 0xb0,
- 0x0, 0x0, 0x1, 0x27, 0xb, 0x56, 0xa5, 0x6a,
- 0x0, 0x0, 0x16, 0xb, 0x5, 0x0, 0x84, 0x0,
- 0x0, 0x81, 0xb, 0x6, 0x11, 0xa0, 0x0, 0x29,
- 0xb0, 0x28, 0x0, 0xaa, 0x10, 0x0, 0x3, 0x90,
- 0x72, 0x0, 0xab, 0x0, 0x0, 0x5, 0x91, 0x70,
- 0x9, 0x45, 0xc3, 0x0, 0x3, 0x76, 0x5, 0x71,
- 0x0, 0x3d, 0x80, 0x0, 0x0, 0x30, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6CE3 "泣" */
- 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0,
- 0x82, 0x0, 0x8, 0x50, 0x0, 0x0, 0x0, 0x3c,
- 0x0, 0x3, 0xb0, 0x0, 0x0, 0x0, 0x3, 0x5,
- 0x55, 0x65, 0x5d, 0x30, 0x16, 0x0, 0x31, 0x0,
- 0x0, 0x0, 0x0, 0x7, 0x90, 0x52, 0x0, 0x0,
- 0xe1, 0x0, 0x0, 0x54, 0x20, 0x70, 0x2, 0xb0,
- 0x0, 0x0, 0x8, 0x0, 0xa2, 0x5, 0x60, 0x0,
- 0x0, 0x28, 0x0, 0x77, 0x8, 0x10, 0x0, 0x6,
- 0xe3, 0x0, 0x49, 0x9, 0x0, 0x0, 0x0, 0xd1,
- 0x0, 0x12, 0x7, 0x0, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0x42, 0x1, 0x80, 0x0, 0xa0, 0x65, 0x55,
- 0x55, 0x55, 0x51,
-
- /* U+6CE8 "注" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x70, 0x0, 0x8, 0x50, 0x0, 0x0, 0x0, 0x6a,
- 0x0, 0x1, 0xe0, 0x0, 0x0, 0x0, 0x4, 0x40,
- 0x0, 0x20, 0x5, 0x50, 0x22, 0x0, 0x56, 0x55,
- 0xd5, 0x55, 0x40, 0xb, 0x53, 0x30, 0x0, 0xc0,
- 0x0, 0x0, 0x3, 0x67, 0x0, 0x0, 0xc0, 0x0,
- 0x0, 0x0, 0x8, 0x4, 0x55, 0xd5, 0x6d, 0x10,
- 0x0, 0x55, 0x1, 0x0, 0xc0, 0x0, 0x0, 0x17,
- 0xe0, 0x0, 0x0, 0xc0, 0x0, 0x0, 0x3, 0xd0,
- 0x0, 0x0, 0xc0, 0x0, 0x0, 0x4, 0xb0, 0x0,
- 0x0, 0xc0, 0x2, 0x70, 0x4, 0xa0, 0x65, 0x55,
- 0x55, 0x55, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6CF3 "泳" */
- 0x0, 0x0, 0x0, 0x13, 0x0, 0x0, 0x0, 0x0,
- 0x82, 0x0, 0x6, 0xd2, 0x0, 0x0, 0x0, 0x2c,
- 0x0, 0x0, 0x52, 0x0, 0x0, 0x0, 0x2, 0x32,
- 0x65, 0xe1, 0x1, 0x0, 0x17, 0x0, 0x50, 0x0,
- 0xe1, 0xb, 0x40, 0x7, 0x93, 0x20, 0x40, 0xc5,
- 0x73, 0x0, 0x0, 0x47, 0x46, 0xd2, 0xc9, 0x10,
- 0x0, 0x0, 0x8, 0x0, 0xb0, 0xc7, 0x10, 0x0,
- 0x0, 0x55, 0x4, 0x70, 0xc2, 0x80, 0x0, 0x7,
- 0xf1, 0xa, 0x10, 0xc0, 0xb3, 0x0, 0x0, 0xe0,
- 0x37, 0x0, 0xc0, 0x3e, 0x30, 0x3, 0xd1, 0x60,
- 0x11, 0xc0, 0x6, 0xa1, 0x1, 0xa0, 0x0, 0x4d,
- 0xa0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0,
- 0x0, 0x0,
-
- /* U+6D0B "洋" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x60, 0x0, 0x92, 0x0, 0xd2, 0x0, 0x0, 0x69,
- 0x0, 0x4b, 0x4, 0x70, 0x0, 0x0, 0x5, 0x20,
- 0x3, 0x7, 0x5, 0x40, 0x12, 0x0, 0x45, 0x55,
- 0xd5, 0x55, 0x40, 0xb, 0x50, 0x50, 0x0, 0xc0,
- 0x2, 0x0, 0x2, 0x64, 0x23, 0x65, 0xd5, 0x59,
- 0x10, 0x0, 0x8, 0x0, 0x0, 0xc0, 0x0, 0x0,
- 0x0, 0x18, 0x0, 0x0, 0xc0, 0x1, 0x60, 0x5,
- 0xb4, 0x36, 0x55, 0xd5, 0x55, 0x50, 0x0, 0xe1,
- 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0xc0, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20,
- 0x0, 0x0,
-
- /* U+6D17 "洗" */
- 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x1,
- 0x60, 0x0, 0x40, 0xb2, 0x0, 0x0, 0x0, 0x87,
- 0x2, 0xd0, 0xb0, 0x0, 0x0, 0x0, 0x12, 0x35,
- 0x95, 0xc5, 0x5d, 0x20, 0x15, 0x0, 0x49, 0x0,
- 0xb0, 0x0, 0x0, 0x7, 0x81, 0x54, 0x0, 0xb0,
- 0x0, 0x0, 0x0, 0x55, 0x35, 0x55, 0xc5, 0x56,
- 0xb0, 0x0, 0x7, 0x1, 0x1b, 0xa, 0x10, 0x0,
- 0x0, 0x17, 0x0, 0x29, 0xa, 0x10, 0x0, 0x5,
- 0xb4, 0x0, 0x57, 0xa, 0x10, 0x0, 0x0, 0xd2,
- 0x0, 0xa2, 0xa, 0x10, 0x40, 0x0, 0xf1, 0x4,
- 0x90, 0xa, 0x10, 0x80, 0x0, 0xe0, 0x57, 0x0,
- 0x6, 0xb9, 0xd4, 0x0, 0x2, 0x10, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6D32 "洲" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0,
- 0x83, 0x0, 0xb0, 0x2, 0x0, 0xd0, 0x0, 0x1b,
- 0x0, 0xb0, 0xc, 0x0, 0xb0, 0x0, 0x0, 0x40,
- 0xb0, 0xa, 0x0, 0xb0, 0x7, 0x10, 0x50, 0xa0,
- 0xa, 0x0, 0xb0, 0x3, 0xc1, 0x45, 0xb6, 0xa,
- 0x70, 0xb0, 0x0, 0x26, 0x66, 0xa5, 0x6a, 0x84,
- 0xb0, 0x0, 0x8, 0x62, 0x91, 0x1a, 0x10, 0xb0,
- 0x0, 0x36, 0x4, 0x70, 0xa, 0x0, 0xb0, 0x6,
- 0xe2, 0x8, 0x20, 0xa, 0x0, 0xb0, 0x0, 0xd0,
- 0xa, 0x0, 0xa, 0x0, 0xb0, 0x0, 0xf0, 0x63,
- 0x0, 0xb, 0x0, 0xb0, 0x0, 0x92, 0x40, 0x0,
- 0x1, 0x0, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6D3B "活" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x72, 0x0, 0x0, 0x15, 0xac, 0x0, 0x0, 0x2d,
- 0x4, 0x57, 0xd6, 0x32, 0x0, 0x0, 0x3, 0x0,
- 0x0, 0xb0, 0x0, 0x0, 0x24, 0x0, 0x30, 0x0,
- 0xb0, 0x0, 0x20, 0x9, 0x64, 0x46, 0x55, 0xc5,
- 0x55, 0x91, 0x1, 0x56, 0x0, 0x0, 0xb0, 0x0,
- 0x0, 0x0, 0x16, 0x2, 0x0, 0xb0, 0x3, 0x0,
- 0x0, 0x72, 0xc, 0x55, 0x55, 0x5e, 0x10, 0x18,
- 0xd0, 0xc, 0x0, 0x0, 0xb, 0x0, 0x1, 0xb0,
- 0xc, 0x0, 0x0, 0xb, 0x0, 0x3, 0xb0, 0xc,
- 0x55, 0x55, 0x5c, 0x0, 0x2, 0x80, 0xc, 0x0,
- 0x0, 0xc, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0,
- 0x2, 0x0,
-
- /* U+6D3E "派" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x66, 0x0, 0x0, 0x26, 0xbc, 0x0, 0x0, 0xd,
- 0x9, 0x65, 0x42, 0x0, 0x0, 0x0, 0x0, 0x39,
- 0x20, 0x1, 0x6c, 0x0, 0x38, 0x1, 0x39, 0x2a,
- 0x67, 0x20, 0x0, 0x9, 0x55, 0x9, 0x2b, 0x4,
- 0x5, 0x40, 0x1, 0x7, 0xa, 0x1b, 0x6, 0x69,
- 0x20, 0x0, 0x35, 0xb, 0xb, 0x9, 0x20, 0x0,
- 0x0, 0xa0, 0xb, 0xb, 0x8, 0x10, 0x0, 0x19,
- 0xd0, 0x19, 0xb, 0x3, 0x80, 0x0, 0x3, 0xb0,
- 0x72, 0xb, 0x0, 0xa4, 0x0, 0x5, 0xa0, 0x70,
- 0xc, 0x83, 0x1e, 0x80, 0x1, 0x56, 0x0, 0x9,
- 0x10, 0x3, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6D41 "流" */
- 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0,
- 0x60, 0x0, 0x9, 0x50, 0x1, 0x0, 0x0, 0x4b,
- 0x27, 0x59, 0x75, 0x59, 0x40, 0x0, 0x4, 0x0,
- 0x1d, 0x20, 0x0, 0x0, 0x32, 0x0, 0x40, 0x93,
- 0x0, 0x70, 0x0, 0xc, 0x32, 0x37, 0x73, 0x34,
- 0x98, 0x0, 0x3, 0x26, 0x7, 0x74, 0x20, 0x8,
- 0x0, 0x0, 0x7, 0xa, 0x29, 0x30, 0xb0, 0x0,
- 0x0, 0x63, 0xb, 0xb, 0x0, 0xb0, 0x0, 0x26,
- 0xc0, 0xb, 0xb, 0x0, 0xb0, 0x0, 0x6, 0xa0,
- 0xb, 0xb, 0x0, 0xb0, 0x30, 0x5, 0x90, 0x55,
- 0xb, 0x0, 0xb0, 0x60, 0x6, 0x93, 0x60, 0xb,
- 0x0, 0xb9, 0xc0, 0x0, 0x12, 0x0, 0x2, 0x0,
- 0x0, 0x0,
-
- /* U+6D45 "浅" */
- 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0,
- 0x56, 0x0, 0x0, 0xd2, 0x50, 0x0, 0x0, 0xd,
- 0x20, 0x0, 0xc0, 0x86, 0x0, 0x0, 0x2, 0x4,
- 0x0, 0xc0, 0x4, 0x20, 0x7, 0x20, 0x33, 0x45,
- 0xd5, 0x56, 0x50, 0x2, 0xe0, 0x61, 0x10, 0xb0,
- 0x0, 0x20, 0x0, 0x41, 0x60, 0x2, 0xc5, 0x57,
- 0x90, 0x0, 0x6, 0x36, 0x43, 0xb0, 0x7, 0x0,
- 0x0, 0xa, 0x0, 0x0, 0x83, 0x8a, 0x0, 0x4,
- 0xb8, 0x0, 0x0, 0x3e, 0x80, 0x0, 0x0, 0x95,
- 0x0, 0x1, 0xad, 0x30, 0x50, 0x0, 0xb4, 0x0,
- 0x57, 0x11, 0xc4, 0x90, 0x0, 0x93, 0x13, 0x0,
- 0x0, 0x1b, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x20,
-
- /* U+6D74 "浴" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x92, 0x0, 0x1d, 0x2, 0x70, 0x0, 0x0, 0x4c,
- 0x0, 0xa3, 0x0, 0x3e, 0x20, 0x0, 0x3, 0x45,
- 0x30, 0xa5, 0x7, 0x40, 0x17, 0x0, 0x62, 0x4,
- 0xb6, 0x0, 0x0, 0x7, 0xa2, 0x30, 0xc, 0x13,
- 0x60, 0x0, 0x0, 0x47, 0x0, 0xa2, 0x0, 0x69,
- 0x10, 0x0, 0x9, 0x8, 0x70, 0x0, 0xb, 0xe2,
- 0x0, 0x37, 0x51, 0xc5, 0x55, 0x5c, 0x0, 0x6,
- 0xd2, 0x0, 0xc0, 0x0, 0x1b, 0x0, 0x0, 0xf0,
- 0x0, 0xc0, 0x0, 0x1b, 0x0, 0x2, 0xf0, 0x0,
- 0xd5, 0x55, 0x5b, 0x0, 0x1, 0xc0, 0x0, 0xc0,
- 0x0, 0x1b, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6D77 "海" */
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x1,
- 0x70, 0x4, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x94,
- 0x9, 0x75, 0x55, 0x5a, 0x40, 0x0, 0x12, 0x19,
- 0x0, 0x0, 0x0, 0x0, 0x29, 0x4, 0x6a, 0x55,
- 0x55, 0xa5, 0x0, 0x9, 0x25, 0x1c, 0x7, 0x30,
- 0x91, 0x0, 0x0, 0x14, 0xc, 0x1, 0x80, 0xa0,
- 0x20, 0x0, 0x64, 0x7c, 0x55, 0x55, 0xc5, 0x81,
- 0x0, 0x80, 0x38, 0x7, 0x20, 0xb0, 0x0, 0x2a,
- 0x80, 0x65, 0x3, 0x60, 0xb0, 0x0, 0x6, 0x60,
- 0xb6, 0x55, 0x55, 0xd5, 0x90, 0x8, 0x60, 0x0,
- 0x1, 0x11, 0xb0, 0x0, 0x5, 0x50, 0x0, 0x0,
- 0x6f, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2,
- 0x0, 0x0,
-
- /* U+6D88 "消" */
- 0x0, 0x0, 0x0, 0x0, 0x11, 0x0, 0x0, 0x6,
- 0x20, 0x31, 0x2, 0xc0, 0x43, 0x0, 0x1e, 0x0,
- 0xc3, 0x1a, 0xb, 0x20, 0x0, 0x40, 0x35, 0x51,
- 0xa5, 0x10, 0x6, 0x10, 0x13, 0x85, 0x6c, 0x69,
- 0x20, 0x3d, 0x5, 0xc, 0x0, 0x0, 0xc0, 0x0,
- 0x50, 0x70, 0xd5, 0x55, 0x5d, 0x0, 0x0, 0x35,
- 0xc, 0x0, 0x0, 0xc0, 0x0, 0x9, 0x0, 0xc0,
- 0x0, 0xc, 0x0, 0x48, 0xb0, 0xd, 0x55, 0x55,
- 0xd0, 0x0, 0x68, 0x0, 0xc0, 0x0, 0xc, 0x0,
- 0x6, 0x70, 0xc, 0x0, 0x0, 0xc0, 0x0, 0x67,
- 0x0, 0xc0, 0x4, 0xbc, 0x0, 0x0, 0x0, 0x1,
- 0x0, 0x1, 0x10,
-
- /* U+6DBC "涼" */
- 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x50, 0x0, 0x0, 0x94, 0x0, 0x0, 0x0, 0x69,
- 0x0, 0x0, 0x16, 0x0, 0x60, 0x0, 0x6, 0x6,
- 0x65, 0x55, 0x55, 0x51, 0x13, 0x0, 0x40, 0x65,
- 0x55, 0x57, 0x0, 0x9, 0x60, 0x50, 0xb0, 0x0,
- 0xb, 0x0, 0x1, 0x94, 0x20, 0xb0, 0x0, 0xb,
- 0x0, 0x0, 0x8, 0x0, 0xb5, 0x57, 0x5c, 0x0,
- 0x0, 0x26, 0x0, 0x50, 0x1a, 0x3, 0x0, 0x6,
- 0xc1, 0x0, 0xa3, 0x1a, 0x33, 0x0, 0x0, 0xd0,
- 0x3, 0xa0, 0x1a, 0x9, 0x50, 0x0, 0xd0, 0x18,
- 0x0, 0x19, 0x1, 0xe0, 0x0, 0xc0, 0x50, 0x6,
- 0xb8, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0, 0x40,
- 0x0, 0x0,
-
- /* U+6DF1 "深" */
- 0x0, 0x70, 0x4, 0x0, 0x0, 0x2, 0x10, 0x0,
- 0x59, 0xa, 0x55, 0x55, 0x5b, 0x50, 0x0, 0x2,
- 0x56, 0x47, 0x3, 0x43, 0x0, 0x32, 0x3, 0x10,
- 0xa1, 0x10, 0x6b, 0x0, 0xc, 0x35, 0x6, 0x0,
- 0xc2, 0x7, 0x0, 0x2, 0x16, 0x0, 0x0, 0xc0,
- 0x2, 0x40, 0x0, 0x53, 0x16, 0x5b, 0xf8, 0x55,
- 0x50, 0x0, 0xa0, 0x0, 0x2b, 0xc5, 0x10, 0x0,
- 0x29, 0xb0, 0x0, 0xb1, 0xc0, 0xa0, 0x0, 0x4,
- 0x90, 0x9, 0x20, 0xc0, 0x4c, 0x20, 0x6, 0x81,
- 0x61, 0x0, 0xc0, 0x7, 0x80, 0x4, 0x60, 0x0,
- 0x0, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+6DF7 "混" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x64, 0x2, 0x0, 0x0, 0x4, 0x0, 0x0, 0xd,
- 0x17, 0x85, 0x55, 0x5d, 0x0, 0x0, 0x2, 0x47,
- 0x85, 0x55, 0x5b, 0x0, 0x29, 0x0, 0x56, 0x50,
- 0x0, 0xb, 0x0, 0x7, 0x72, 0x37, 0x50, 0x0,
- 0xb, 0x0, 0x0, 0x17, 0x5, 0x65, 0x58, 0x57,
- 0x0, 0x0, 0x7, 0xa, 0x20, 0xc, 0x6, 0x10,
- 0x0, 0x63, 0xb, 0x5a, 0x3b, 0x88, 0x10, 0x18,
- 0xf0, 0xb, 0x0, 0xd, 0x20, 0x0, 0x0, 0xc0,
- 0xb, 0x0, 0xb, 0x0, 0x50, 0x1, 0xd0, 0xb,
- 0x66, 0x2b, 0x0, 0x90, 0x0, 0x80, 0x8, 0x40,
- 0xc, 0xab, 0xb0,
-
- /* U+6E05 "清" */
- 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x1,
- 0x91, 0x0, 0x0, 0xc0, 0x2, 0x0, 0x0, 0x59,
- 0x26, 0x55, 0xc5, 0x58, 0x40, 0x0, 0x2, 0x3,
- 0x55, 0xc5, 0x77, 0x0, 0x28, 0x4, 0x1, 0x10,
- 0xb0, 0x0, 0x10, 0x7, 0x85, 0x55, 0x55, 0xa5,
- 0x56, 0xb0, 0x0, 0x25, 0x2, 0x0, 0x0, 0x4,
- 0x0, 0x0, 0x33, 0xb, 0x55, 0x55, 0x5c, 0x0,
- 0x0, 0x80, 0xb, 0x55, 0x55, 0x5b, 0x0, 0x28,
- 0xb0, 0xb, 0x0, 0x0, 0xb, 0x0, 0x4, 0xa0,
- 0xb, 0x55, 0x55, 0x5b, 0x0, 0x5, 0x80, 0xb,
- 0x0, 0x0, 0xb, 0x0, 0x5, 0x70, 0xb, 0x0,
- 0x5, 0xc9, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0,
- 0x20, 0x0,
-
- /* U+6E07 "渇" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x73, 0x9, 0x65, 0x55, 0x5c, 0x0, 0x0, 0x1d,
- 0x9, 0x20, 0x0, 0xb, 0x0, 0x0, 0x2, 0x2b,
- 0x65, 0x55, 0x5b, 0x0, 0x16, 0x0, 0x59, 0x20,
- 0x0, 0xb, 0x0, 0x6, 0x91, 0x59, 0x85, 0x55,
- 0x5b, 0x0, 0x0, 0x56, 0x3, 0xc4, 0x0, 0x0,
- 0x10, 0x0, 0x8, 0x7, 0x85, 0x55, 0x57, 0xb0,
- 0x0, 0x54, 0x5a, 0x30, 0x35, 0x3, 0x80, 0x6,
- 0xe2, 0x27, 0x67, 0x62, 0x4, 0x70, 0x0, 0xc0,
- 0x7, 0x60, 0x5, 0x14, 0x70, 0x0, 0xd0, 0x3,
- 0xa9, 0x9a, 0x25, 0x60, 0x0, 0x70, 0x0, 0x0,
- 0x0, 0x7e, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x3, 0x0,
-
- /* U+6E08 "済" */
- 0x0, 0x0, 0x0, 0x2, 0x10, 0x0, 0x0, 0x0,
- 0x72, 0x0, 0x1, 0xd1, 0x0, 0x0, 0x0, 0x1d,
- 0x6, 0x65, 0x95, 0x88, 0x70, 0x0, 0x3, 0x0,
- 0x60, 0x2, 0xb0, 0x0, 0x15, 0x0, 0x40, 0x1a,
- 0x1b, 0x10, 0x0, 0x7, 0x80, 0x40, 0x7, 0xf4,
- 0x0, 0x0, 0x0, 0x65, 0x2, 0x87, 0x2a, 0xb6,
- 0x41, 0x0, 0x8, 0x46, 0x80, 0x0, 0xa9, 0x60,
- 0x0, 0x45, 0x3, 0xa5, 0x55, 0xd0, 0x0, 0x7,
- 0xe0, 0x4, 0x70, 0x0, 0xb0, 0x0, 0x0, 0xd0,
- 0x7, 0x75, 0x55, 0xc0, 0x0, 0x1, 0xd0, 0xa,
- 0x0, 0x0, 0xb0, 0x0, 0x0, 0x90, 0x54, 0x0,
- 0x0, 0xb0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0,
- 0x40, 0x0,
-
- /* U+6E09 "渉" */
- 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0,
- 0x73, 0x0, 0x0, 0xa3, 0x0, 0x0, 0x0, 0x1d,
- 0x0, 0x61, 0xa1, 0x0, 0x0, 0x0, 0x2, 0x30,
- 0xa0, 0xa6, 0x59, 0x0, 0x26, 0x0, 0x50, 0xa0,
- 0xa1, 0x0, 0x0, 0x8, 0x72, 0x55, 0xc5, 0xb6,
- 0x56, 0xa0, 0x1, 0x47, 0x1, 0x10, 0x93, 0x0,
- 0x0, 0x0, 0x17, 0x0, 0xd1, 0xa1, 0x19, 0x20,
- 0x0, 0x82, 0x4, 0x70, 0xa1, 0x31, 0xd0, 0x18,
- 0xd0, 0x9, 0x0, 0xa4, 0xd2, 0x30, 0x2, 0xb0,
- 0x23, 0x0, 0x6c, 0x10, 0x0, 0x4, 0xb0, 0x0,
- 0x8, 0x90, 0x0, 0x0, 0x2, 0x70, 0x6, 0x83,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x41, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6E1B "減" */
- 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x1,
- 0x60, 0x0, 0x0, 0xc, 0x48, 0x0, 0x0, 0x78,
- 0x0, 0x0, 0xb, 0x6, 0x50, 0x0, 0x4, 0x3b,
- 0x55, 0x5c, 0x65, 0x92, 0x22, 0x0, 0x4b, 0x0,
- 0x9, 0x10, 0x0, 0xb, 0x43, 0x2b, 0x46, 0xba,
- 0x22, 0x70, 0x3, 0x56, 0xa, 0x0, 0x17, 0x36,
- 0x70, 0x0, 0x16, 0xa, 0x95, 0xc7, 0x6b, 0x10,
- 0x0, 0x72, 0xa, 0x90, 0xa2, 0xb9, 0x0, 0x18,
- 0xc0, 0xa, 0x90, 0xa0, 0xe2, 0x0, 0x3, 0xa0,
- 0x36, 0x95, 0xa6, 0xc5, 0x40, 0x4, 0x90, 0x91,
- 0x0, 0x38, 0xc, 0x80, 0x3, 0x82, 0x50, 0x3,
- 0x70, 0x3, 0xf3, 0x0, 0x2, 0x0, 0x2, 0x0,
- 0x0, 0x12,
-
- /* U+6E21 "渡" */
- 0x0, 0x0, 0x0, 0x1, 0x10, 0x0, 0x0, 0x0,
- 0x91, 0x0, 0x0, 0xb3, 0x0, 0x0, 0x0, 0x59,
- 0x9, 0x55, 0x87, 0x55, 0xb1, 0x10, 0x1, 0x1b,
- 0x7, 0x10, 0x80, 0x0, 0x1a, 0x10, 0x4b, 0xa,
- 0x0, 0xa1, 0x40, 0x6, 0x65, 0xc, 0x5c, 0x55,
- 0xc5, 0x40, 0x0, 0x6, 0xb, 0xa, 0x55, 0xb0,
- 0x0, 0x0, 0x16, 0xb, 0x5, 0x0, 0x40, 0x0,
- 0x0, 0x81, 0x19, 0x37, 0x55, 0xd4, 0x0, 0x18,
- 0xd0, 0x46, 0x5, 0x15, 0x90, 0x0, 0x2, 0xb0,
- 0x82, 0x0, 0xbb, 0x0, 0x0, 0x4, 0xb0, 0x90,
- 0x7, 0x9b, 0x60, 0x0, 0x1, 0x66, 0x25, 0x73,
- 0x0, 0x7e, 0xa1, 0x0, 0x1, 0x21, 0x0, 0x0,
- 0x0, 0x10,
-
- /* U+6E29 "温" */
- 0x0, 0x81, 0x7, 0x55, 0x55, 0x91, 0x0, 0x0,
- 0x47, 0xa, 0x0, 0x0, 0x90, 0x0, 0x0, 0x0,
- 0x4b, 0x55, 0x55, 0xb0, 0x0, 0x17, 0x3, 0x1a,
- 0x0, 0x0, 0x90, 0x0, 0x7, 0x55, 0xa, 0x0,
- 0x0, 0xa0, 0x0, 0x0, 0x7, 0xa, 0x55, 0x55,
- 0xa0, 0x0, 0x0, 0x35, 0x20, 0x0, 0x0, 0x3,
- 0x0, 0x0, 0x81, 0xb5, 0xb5, 0x5c, 0x5d, 0x0,
- 0x28, 0xc0, 0xb0, 0xa0, 0xa, 0xb, 0x0, 0x4,
- 0xa0, 0xb0, 0xa0, 0xa, 0xb, 0x0, 0x5, 0x90,
- 0xb0, 0xa0, 0xa, 0xb, 0x0, 0x5, 0x95, 0xc5,
- 0xb5, 0x5c, 0x5d, 0xb1, 0x0, 0x1, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+6E2F "港" */
- 0x0, 0x0, 0x0, 0x20, 0x3, 0x0, 0x0, 0x0,
- 0xa2, 0x0, 0x94, 0xb, 0x10, 0x0, 0x0, 0x49,
- 0x0, 0x92, 0xb, 0x5, 0x0, 0x10, 0x2, 0x26,
- 0xb6, 0x5c, 0x55, 0x10, 0xb, 0x24, 0x0, 0x92,
- 0xb, 0x0, 0x10, 0x5, 0x65, 0x65, 0xa8, 0x5a,
- 0x55, 0x81, 0x0, 0x5, 0x0, 0xb0, 0x3, 0x40,
- 0x0, 0x0, 0x42, 0x7, 0xb5, 0x58, 0xb7, 0x0,
- 0x0, 0x90, 0x55, 0xb0, 0x7, 0x36, 0xd2, 0x19,
- 0xa4, 0x30, 0xc5, 0x59, 0x30, 0x0, 0x4, 0x80,
- 0x0, 0xb0, 0x3, 0x13, 0x0, 0x6, 0x80, 0x0,
- 0xb0, 0x0, 0x4, 0x30, 0x3, 0x50, 0x0, 0xba,
- 0xaa, 0xac, 0x60,
-
- /* U+6E56 "湖" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2,
- 0x60, 0x3, 0x90, 0x2, 0x0, 0x30, 0x0, 0x94,
- 0x13, 0x70, 0xd, 0x55, 0xb0, 0x0, 0x1, 0x45,
- 0x85, 0x1b, 0x1, 0x90, 0x44, 0x4, 0x26, 0x82,
- 0x1c, 0x55, 0x90, 0xc, 0x25, 0x3, 0x70, 0xa,
- 0x1, 0x90, 0x2, 0x6, 0x46, 0x86, 0xa, 0x1,
- 0x90, 0x0, 0x43, 0xb2, 0x2a, 0xc, 0x55, 0x90,
- 0x0, 0x90, 0xa0, 0xa, 0x19, 0x1, 0x90, 0x29,
- 0xb0, 0xa0, 0xa, 0x46, 0x1, 0x90, 0x3, 0x90,
- 0xb5, 0x59, 0x90, 0x1, 0x90, 0x5, 0x90, 0x80,
- 0x5, 0x40, 0x22, 0x90, 0x2, 0x60, 0x0, 0x44,
- 0x0, 0x4e, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6E90 "源" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
- 0x91, 0x8, 0x55, 0x55, 0x57, 0xb0, 0x0, 0x68,
- 0xc, 0x0, 0xc, 0x10, 0x0, 0x0, 0x1, 0x4c,
- 0x2, 0x34, 0x4, 0x0, 0x35, 0x1, 0x3c, 0xc,
- 0x55, 0x5c, 0x20, 0xb, 0x65, 0xc, 0xb, 0x0,
- 0xb, 0x0, 0x2, 0x26, 0xc, 0xc, 0x55, 0x5c,
- 0x0, 0x0, 0x16, 0xb, 0xb, 0x0, 0xb, 0x0,
- 0x0, 0x71, 0x29, 0xa, 0x5d, 0x59, 0x0, 0x18,
- 0xd0, 0x64, 0x6, 0xc, 0x22, 0x0, 0x2, 0xb0,
- 0x90, 0x4a, 0xc, 0xa, 0x50, 0x4, 0xa3, 0x41,
- 0x80, 0xc, 0x1, 0xe0, 0x2, 0x85, 0x4, 0x2,
- 0x9d, 0x0, 0x30, 0x0, 0x10, 0x0, 0x0, 0x11,
- 0x0, 0x0,
-
- /* U+6E96 "準" */
- 0x0, 0x10, 0x0, 0x10, 0x10, 0x0, 0x0, 0x0,
- 0x94, 0x0, 0x95, 0x2a, 0x0, 0x0, 0x0, 0x5,
- 0x31, 0xc5, 0x58, 0x59, 0x70, 0x8, 0x30, 0x48,
- 0xb0, 0x1a, 0x2, 0x0, 0x1, 0x65, 0x62, 0xc5,
- 0x6c, 0x57, 0x20, 0x0, 0x7, 0x10, 0xb0, 0x1a,
- 0x15, 0x10, 0x3, 0xb3, 0x0, 0xc5, 0x6b, 0x44,
- 0x20, 0x0, 0x91, 0x0, 0xd5, 0x6b, 0x57, 0x90,
- 0x0, 0x82, 0x0, 0x46, 0x0, 0x0, 0x0, 0x5,
- 0x55, 0x55, 0x7b, 0x55, 0x55, 0xa2, 0x1, 0x0,
- 0x0, 0x29, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x29, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x29,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
- 0x0, 0x0,
-
- /* U+6E9D "溝" */
- 0x0, 0x0, 0x0, 0x21, 0x2, 0x10, 0x0, 0x0,
- 0x70, 0x0, 0x67, 0x6, 0x70, 0x0, 0x0, 0x69,
- 0x36, 0x98, 0x59, 0x87, 0x70, 0x0, 0x4, 0x20,
- 0x65, 0x5, 0x54, 0x0, 0x31, 0x0, 0x46, 0x98,
- 0x59, 0x85, 0x30, 0xc, 0x25, 0x36, 0x76, 0x97,
- 0x75, 0x90, 0x5, 0x36, 0x2, 0x0, 0xb0, 0x3,
- 0x0, 0x0, 0x34, 0xb, 0x55, 0xc5, 0x5d, 0x0,
- 0x0, 0x90, 0xb, 0x55, 0xc5, 0x5b, 0x0, 0x29,
- 0xa0, 0xb, 0x0, 0xb0, 0xb, 0x20, 0x6, 0x70,
- 0x6c, 0x55, 0x65, 0x5c, 0x61, 0x7, 0x70, 0xb,
- 0x0, 0x0, 0xb, 0x0, 0x5, 0x60, 0xb, 0x0,
- 0x5, 0x9a, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0,
- 0x42, 0x0,
-
- /* U+6EFF "滿" */
- 0x0, 0x0, 0x0, 0x11, 0x0, 0x30, 0x0, 0x0,
- 0x72, 0x0, 0x47, 0x0, 0xc0, 0x0, 0x0, 0x1d,
- 0x36, 0x79, 0x55, 0xd5, 0x92, 0x0, 0x3, 0x20,
- 0x36, 0x0, 0xb0, 0x0, 0x6, 0x0, 0x40, 0x49,
- 0xa5, 0xc0, 0x0, 0x4, 0xb0, 0x50, 0x10, 0xb0,
- 0x0, 0x0, 0x0, 0x74, 0x2c, 0x55, 0xc5, 0x58,
- 0x90, 0x0, 0x7, 0xb, 0x61, 0xb3, 0x54, 0x60,
- 0x0, 0x27, 0xb, 0x3b, 0xb0, 0xd8, 0x60, 0x5,
- 0xd3, 0xb, 0x79, 0xd5, 0x6e, 0x60, 0x0, 0xc0,
- 0xc, 0x11, 0xb3, 0x6, 0x60, 0x0, 0xe0, 0xb,
- 0x0, 0xb0, 0x4, 0x60, 0x0, 0x90, 0xb, 0x0,
- 0xb0, 0x5b, 0x50, 0x0, 0x0, 0x3, 0x0, 0x0,
- 0x5, 0x0,
-
- /* U+6F22 "漢" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x20, 0x0, 0x0,
- 0x81, 0x0, 0xb0, 0x1, 0xa0, 0x40, 0x0, 0x4a,
- 0x36, 0xc5, 0x56, 0xb5, 0x50, 0x0, 0x3, 0x31,
- 0xb5, 0x56, 0x90, 0x0, 0x14, 0x0, 0x50, 0x40,
- 0xa0, 0x31, 0x0, 0x9, 0x61, 0x4c, 0x55, 0xc5,
- 0x5c, 0x0, 0x1, 0x56, 0xb, 0x0, 0xa0, 0xa,
- 0x0, 0x0, 0x7, 0xa, 0x55, 0xc5, 0x58, 0x0,
- 0x0, 0x63, 0x6, 0x55, 0xc5, 0x68, 0x0, 0x17,
- 0xd0, 0x0, 0x1, 0x90, 0x0, 0x40, 0x1, 0xb0,
- 0x65, 0x5a, 0x89, 0x55, 0x51, 0x2, 0xb0, 0x0,
- 0x39, 0x5, 0x70, 0x0, 0x1, 0x80, 0x6, 0x70,
- 0x0, 0x4d, 0x92, 0x0, 0x0, 0x41, 0x0, 0x0,
- 0x0, 0x10,
-
- /* U+6F38 "漸" */
- 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0,
- 0x92, 0x0, 0xc0, 0x0, 0x16, 0xc2, 0x0, 0x4a,
- 0x65, 0xc5, 0x99, 0x51, 0x0, 0x0, 0x1, 0x10,
- 0xb0, 0x28, 0x10, 0x0, 0x26, 0x4, 0xb5, 0xc5,
- 0xd8, 0x10, 0x50, 0x8, 0x75, 0xb0, 0xb0, 0xb8,
- 0x6c, 0x51, 0x1, 0x45, 0xb5, 0xc5, 0xb8, 0x1b,
- 0x0, 0x0, 0x52, 0xb0, 0xb0, 0xb8, 0x1b, 0x0,
- 0x0, 0xa0, 0x95, 0xc5, 0x69, 0xb, 0x0, 0x29,
- 0xa3, 0x55, 0xc5, 0xa9, 0xb, 0x0, 0x4, 0x80,
- 0x0, 0xb0, 0x9, 0xb, 0x0, 0x6, 0x80, 0x0,
- 0xb0, 0x44, 0xb, 0x0, 0x4, 0x60, 0x0, 0xc1,
- 0x60, 0xb, 0x0, 0x0, 0x0, 0x0, 0x42, 0x0,
- 0x4, 0x0,
-
- /* U+6FC3 "濃" */
- 0x0, 0x0, 0x0, 0x3, 0x3, 0x0, 0x0, 0x1,
- 0x60, 0x2, 0xa, 0xa, 0x3, 0x0, 0x0, 0x78,
- 0xb, 0x5c, 0x5c, 0x5c, 0x20, 0x0, 0x4, 0x4b,
- 0x5c, 0x5c, 0x5c, 0x0, 0x7, 0x11, 0x4b, 0xa,
- 0xa, 0xb, 0x0, 0x3, 0xc5, 0x18, 0x55, 0x55,
- 0x58, 0x0, 0x0, 0x57, 0x1c, 0x55, 0x55, 0x56,
- 0x30, 0x0, 0x26, 0xb, 0x45, 0x55, 0x57, 0x0,
- 0x1, 0xa2, 0xc, 0x55, 0x55, 0x55, 0x90, 0x5,
- 0xe0, 0x1a, 0x73, 0x60, 0x36, 0x0, 0x0, 0xc0,
- 0x37, 0x73, 0x39, 0x71, 0x0, 0x1, 0xd0, 0x81,
- 0x75, 0x55, 0xb4, 0x10, 0x0, 0x42, 0x40, 0x77,
- 0x0, 0x2a, 0x91, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+6FDF "濟" */
- 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x2,
- 0x60, 0x0, 0x1, 0xb0, 0x0, 0x10, 0x0, 0x95,
- 0x46, 0x56, 0x66, 0x57, 0x80, 0x0, 0x12, 0x30,
- 0xa, 0x2b, 0x15, 0x10, 0x27, 0x4, 0x3a, 0x98,
- 0x93, 0x68, 0x10, 0x8, 0x76, 0xa, 0x64, 0xb4,
- 0x68, 0x0, 0x0, 0x45, 0x36, 0x92, 0xa5, 0x97,
- 0xa1, 0x0, 0x61, 0x65, 0x90, 0x62, 0x43, 0x61,
- 0x0, 0xa0, 0xa, 0x75, 0x55, 0x5d, 0x0, 0x1a,
- 0x90, 0xa, 0x10, 0x0, 0xc, 0x0, 0x5, 0x70,
- 0xb, 0x55, 0x55, 0x5c, 0x0, 0x6, 0x70, 0x18,
- 0x0, 0x0, 0xc, 0x0, 0x3, 0x41, 0x80, 0x0,
- 0x0, 0xc, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0,
- 0x3, 0x0,
-
- /* U+7063 "灣" */
- 0x0, 0x0, 0x2, 0x1, 0x20, 0x2, 0x0, 0x2,
- 0x50, 0x28, 0x10, 0x92, 0x9, 0x40, 0x0, 0xa4,
- 0x97, 0x66, 0x57, 0x96, 0xa0, 0x0, 0x23, 0x34,
- 0x26, 0x87, 0x17, 0x30, 0x16, 0x4, 0xa7, 0xa5,
- 0x35, 0x89, 0x75, 0x7, 0x75, 0x33, 0x3a, 0x5b,
- 0x23, 0x30, 0x1, 0x57, 0x99, 0x8a, 0x5b, 0x94,
- 0x86, 0x0, 0x52, 0x16, 0x58, 0x57, 0x6a, 0x10,
- 0x0, 0x90, 0x3, 0x22, 0x22, 0x2b, 0x0, 0x18,
- 0xa0, 0xb, 0x33, 0x33, 0x37, 0x0, 0x4, 0x80,
- 0x18, 0x55, 0x55, 0x5b, 0x50, 0x5, 0x70, 0x0,
- 0x0, 0x0, 0xb, 0x0, 0x4, 0x70, 0x0, 0x0,
- 0x17, 0xa4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+706B "火" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb6, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb3, 0x0, 0x10, 0x0, 0x0, 0x4, 0x0, 0xb3,
- 0x0, 0xb6, 0x0, 0x0, 0x18, 0x0, 0xc3, 0x6,
- 0x80, 0x0, 0x1, 0xc4, 0x0, 0xd4, 0x36, 0x0,
- 0x0, 0x4, 0x70, 0x1, 0xc4, 0x40, 0x0, 0x0,
- 0x0, 0x0, 0x6, 0x70, 0x80, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x10, 0x47, 0x0, 0x0, 0x0, 0x0,
- 0x85, 0x0, 0x9, 0x70, 0x0, 0x0, 0x8, 0x60,
- 0x0, 0x0, 0xab, 0x40, 0x4, 0x72, 0x0, 0x0,
- 0x0, 0x8, 0x80, 0x21, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+707D "災" */
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0xb, 0x40, 0x59, 0x0, 0xa5, 0x0, 0x0, 0x45,
- 0x0, 0x90, 0x3, 0x60, 0x0, 0x0, 0x70, 0x6,
- 0x0, 0x7, 0x0, 0x0, 0x0, 0x67, 0x3, 0x90,
- 0x6, 0x60, 0x0, 0x0, 0xb, 0x20, 0x58, 0x0,
- 0x94, 0x0, 0x0, 0x1, 0x0, 0x32, 0x0, 0x11,
- 0x0, 0x0, 0x2, 0x0, 0xa7, 0x0, 0x10, 0x0,
- 0x0, 0x9, 0x0, 0xc6, 0x3, 0xb0, 0x0, 0x0,
- 0x7a, 0x2, 0xb3, 0x76, 0x0, 0x0, 0x0, 0x10,
- 0xb, 0x40, 0x82, 0x0, 0x0, 0x0, 0x0, 0x97,
- 0x0, 0xc, 0x60, 0x0, 0x1, 0x69, 0x30, 0x0,
- 0x0, 0x9e, 0x81, 0x13, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0x0,
-
- /* U+70B9 "点" */
- 0x0, 0x0, 0x0, 0x51, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc5, 0x55, 0x6c, 0x10, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0, 0x0, 0x0,
- 0x0, 0x0, 0xc5, 0x59, 0x55, 0x5e, 0x10, 0x0,
- 0xd, 0x0, 0x0, 0x0, 0xc0, 0x0, 0x0, 0xd0,
- 0x0, 0x0, 0xc, 0x0, 0x0, 0xd, 0x55, 0x55,
- 0x55, 0xc0, 0x0, 0x0, 0xb0, 0x0, 0x0, 0x8,
- 0x0, 0x0, 0x30, 0x12, 0x2, 0x10, 0x14, 0x0,
- 0x9, 0x0, 0xb1, 0xc, 0x0, 0x85, 0x9, 0x70,
- 0x7, 0x10, 0x81, 0x2, 0x90, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+70BA "為" */
- 0x0, 0x0, 0x0, 0x11, 0x0, 0x0, 0x0, 0x0,
- 0x2, 0xa0, 0x6a, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x61, 0xb2, 0x0, 0x0, 0x0, 0x0, 0x75, 0x56,
- 0xc5, 0x56, 0xb0, 0x0, 0x0, 0x0, 0x9, 0x30,
- 0x6, 0x50, 0x0, 0x0, 0x0, 0x1c, 0x55, 0x59,
- 0x6d, 0x10, 0x0, 0x0, 0xa2, 0x0, 0x0, 0x47,
- 0x0, 0x0, 0x6, 0x95, 0x55, 0x55, 0x96, 0xc1,
- 0x0, 0x38, 0x0, 0x1, 0x3, 0x0, 0xb0, 0x2,
- 0x72, 0x27, 0x6, 0x62, 0xa2, 0xa0, 0x13, 0xa,
- 0x4, 0x90, 0xb0, 0x64, 0x80, 0x0, 0x6b, 0x0,
- 0x50, 0x0, 0x7, 0x50, 0x0, 0x0, 0x0, 0x0,
- 0x2, 0x8e, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x3, 0x0,
-
- /* U+7121 "無" */
- 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x2d, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0x86,
- 0x56, 0x56, 0xa2, 0x0, 0x6, 0xd0, 0xa0, 0xa0,
- 0xb0, 0x0, 0x2, 0x3a, 0xa, 0xa, 0xb, 0x0,
- 0x0, 0x0, 0xa0, 0xa0, 0xa0, 0xb0, 0x70, 0x2,
- 0x6c, 0x5c, 0x5c, 0x5c, 0x55, 0x10, 0x0, 0xa0,
- 0xa0, 0xa0, 0xb0, 0x0, 0x0, 0xa, 0xa, 0xa,
- 0xb, 0x3, 0x0, 0x65, 0x85, 0x85, 0x85, 0x85,
- 0x93, 0x0, 0x40, 0x23, 0x1, 0x50, 0x16, 0x0,
- 0x1a, 0x0, 0xb1, 0x9, 0x40, 0x86, 0xc, 0x50,
- 0x8, 0x30, 0x35, 0x2, 0x60, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+7136 "然" */
- 0x0, 0x3, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0,
- 0xe, 0x20, 0x0, 0xb2, 0x50, 0x0, 0x0, 0x49,
- 0x2, 0x20, 0xb1, 0x4b, 0x0, 0x0, 0xa6, 0x5a,
- 0x80, 0xb0, 0x7, 0x0, 0x2, 0xa9, 0x2b, 0x56,
- 0xd6, 0x5b, 0x40, 0x8, 0x73, 0x6b, 0x0, 0xc5,
- 0x0, 0x0, 0x32, 0x67, 0x74, 0x1, 0xa5, 0x30,
- 0x0, 0x0, 0x3, 0xa0, 0x8, 0x30, 0xb1, 0x0,
- 0x0, 0x2a, 0x0, 0x57, 0x0, 0x4d, 0x40, 0x4,
- 0x70, 0x5, 0x30, 0x0, 0x6, 0x50, 0x11, 0x40,
- 0x31, 0x4, 0x10, 0x34, 0x0, 0x1, 0xa0, 0x1c,
- 0x1, 0xc0, 0xb, 0x40, 0xb, 0x70, 0xc, 0x0,
- 0xa0, 0x4, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+7159 "煙" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xd, 0x2, 0x65, 0x55, 0x55, 0xb3, 0x0, 0xc,
- 0x0, 0x0, 0xb0, 0xb0, 0x0, 0x0, 0xc, 0x27,
- 0x75, 0xc5, 0xd5, 0x90, 0x2, 0x1c, 0x92, 0xa0,
- 0xb0, 0xb0, 0xb0, 0x8, 0x2d, 0x10, 0xa0, 0xb0,
- 0xb0, 0xb0, 0x1d, 0xb, 0x0, 0xa0, 0xb0, 0xb0,
- 0xb0, 0x0, 0xb, 0x0, 0xa5, 0x5a, 0x55, 0x60,
- 0x0, 0x1b, 0x0, 0x0, 0xc, 0x0, 0x0, 0x0,
- 0x39, 0xa2, 0x55, 0x5c, 0x59, 0x60, 0x0, 0x73,
- 0x3b, 0x0, 0xb, 0x0, 0x0, 0x0, 0xa0, 0x2,
- 0x0, 0xb, 0x0, 0x0, 0x7, 0x20, 0x5, 0x55,
- 0x5c, 0x55, 0x97, 0x12, 0x0, 0x1, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+71B1 "熱" */
- 0x0, 0x0, 0x20, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0xd0, 0x0, 0xc, 0x0, 0x0, 0x0, 0x65,
- 0xc6, 0x80, 0xb, 0x4, 0x0, 0x0, 0x0, 0xb0,
- 0x24, 0x5c, 0x79, 0x0, 0x4, 0x77, 0x76, 0x72,
- 0x19, 0x36, 0x0, 0x0, 0x96, 0x37, 0x92, 0x48,
- 0x36, 0x0, 0x6, 0x20, 0xc0, 0x70, 0xb9, 0x38,
- 0x0, 0x0, 0x65, 0xc7, 0x70, 0xb9, 0x6b, 0x2,
- 0x0, 0x0, 0xb3, 0x46, 0x30, 0x18, 0xa2, 0x4,
- 0xba, 0x62, 0x23, 0x0, 0x0, 0xb2, 0x1, 0x23,
- 0x5, 0x1, 0x40, 0x24, 0x0, 0x0, 0x92, 0x7,
- 0x50, 0xa3, 0xb, 0x40, 0x7, 0xa0, 0x2, 0x60,
- 0x33, 0x4, 0x60, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+71DF "營" */
- 0x0, 0x0, 0x30, 0x0, 0x2, 0x0, 0x0, 0x0,
- 0x2b, 0x15, 0x2, 0xa1, 0x30, 0x0, 0x63, 0xc7,
- 0x37, 0x4a, 0x84, 0x0, 0x6, 0x2c, 0x63, 0x86,
- 0x94, 0x0, 0x0, 0x9, 0x12, 0x92, 0x90, 0x6b,
- 0x0, 0x5, 0x22, 0x22, 0x62, 0x22, 0x64, 0x4,
- 0x73, 0x43, 0x33, 0x36, 0x3a, 0x60, 0xa1, 0xc,
- 0x55, 0x55, 0xd2, 0x30, 0x0, 0x0, 0xc5, 0x55,
- 0x5c, 0x0, 0x0, 0x0, 0x15, 0x0, 0x0, 0x32,
- 0x0, 0x0, 0xd, 0x55, 0x55, 0x55, 0xd2, 0x0,
- 0x0, 0xc0, 0x0, 0x0, 0xc, 0x0, 0x0, 0xd,
- 0x55, 0x55, 0x55, 0xd0, 0x0, 0x0, 0x70, 0x0,
- 0x0, 0x5, 0x0,
-
- /* U+722D "爭" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x2, 0x35, 0x7a, 0xdc, 0x0, 0x1, 0x54, 0x47,
- 0x21, 0x2, 0x50, 0x0, 0x8, 0x50, 0x3a, 0x0,
- 0x94, 0x0, 0x0, 0x9, 0x0, 0x60, 0x53, 0x0,
- 0x0, 0x5, 0x55, 0x57, 0x56, 0x5c, 0x0, 0x0,
- 0x0, 0x1, 0x90, 0x1, 0xa0, 0x13, 0x65, 0x55,
- 0x6b, 0x55, 0x5c, 0x86, 0x0, 0x0, 0x1, 0x90,
- 0x1, 0xa0, 0x0, 0x6, 0x55, 0x6b, 0x55, 0x5a,
- 0x0, 0x0, 0x0, 0x1, 0x90, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x29, 0x0, 0x0, 0x0, 0x0, 0x4,
- 0x8e, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50,
- 0x0, 0x0, 0x0,
-
- /* U+7236 "父" */
- 0x0, 0x0, 0x47, 0x0, 0x30, 0x0, 0x0, 0x0,
- 0x1, 0xd5, 0x0, 0x7, 0x60, 0x0, 0x0, 0xb,
- 0x30, 0x0, 0x0, 0x7c, 0x0, 0x1, 0x81, 0x10,
- 0x0, 0x5, 0x9, 0x50, 0x14, 0x0, 0x50, 0x0,
- 0x1d, 0x10, 0x0, 0x0, 0x0, 0x52, 0x0, 0x85,
- 0x0, 0x0, 0x0, 0x0, 0x9, 0x1, 0xb0, 0x0,
- 0x0, 0x0, 0x0, 0x3, 0x8a, 0x30, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xab, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x7, 0x76, 0xc3, 0x0, 0x0, 0x0, 0x2,
- 0x94, 0x0, 0x3c, 0xc7, 0x30, 0x3, 0x75, 0x0,
- 0x0, 0x0, 0x4a, 0x91, 0x12, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+7238 "爸" */
- 0x0, 0x0, 0x20, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x1, 0xc4, 0x0, 0x6, 0x91, 0x0, 0x0, 0x29,
- 0x41, 0x0, 0x77, 0x4d, 0x0, 0x3, 0x50, 0x7,
- 0x39, 0x80, 0x2, 0x0, 0x0, 0x0, 0x4, 0xda,
- 0x10, 0x0, 0x0, 0x0, 0x5, 0x96, 0x2, 0x8a,
- 0x97, 0x63, 0x15, 0x68, 0x55, 0x55, 0x55, 0xb5,
- 0x50, 0x0, 0xb, 0x0, 0xb0, 0x1, 0xa0, 0x0,
- 0x0, 0xb, 0x0, 0xb0, 0x1, 0x90, 0x0, 0x0,
- 0xb, 0x55, 0x85, 0x56, 0x90, 0x0, 0x0, 0xb,
- 0x0, 0x0, 0x0, 0x3, 0x10, 0x0, 0xb, 0x0,
- 0x0, 0x0, 0x5, 0x30, 0x0, 0x7, 0xba, 0xaa,
- 0xaa, 0xad, 0x60,
-
- /* U+7247 "片" */
- 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0,
- 0x64, 0x0, 0xd, 0x0, 0x0, 0x0, 0x8, 0x40,
- 0x0, 0xc0, 0x0, 0x0, 0x0, 0x83, 0x0, 0xc,
- 0x0, 0x0, 0x0, 0x8, 0x75, 0x55, 0xd5, 0x5b,
- 0x70, 0x0, 0x93, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x9, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb6,
- 0x55, 0x55, 0xc0, 0x0, 0x0, 0xc, 0x0, 0x0,
- 0x1b, 0x0, 0x0, 0x1, 0xb0, 0x0, 0x1, 0xb0,
- 0x0, 0x0, 0x83, 0x0, 0x0, 0x1b, 0x0, 0x0,
- 0x28, 0x0, 0x0, 0x1, 0xb0, 0x0, 0x6, 0x0,
- 0x0, 0x0, 0x1b, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x10, 0x0,
-
- /* U+725B "牛" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x10, 0x1d, 0x0, 0x0, 0x0, 0x0, 0x4c, 0x0,
- 0xc0, 0x0, 0x0, 0x0, 0x9, 0x50, 0xc, 0x0,
- 0x17, 0x0, 0x0, 0xc5, 0x55, 0xd5, 0x55, 0x51,
- 0x0, 0x73, 0x0, 0xc, 0x0, 0x0, 0x0, 0x15,
- 0x0, 0x0, 0xc0, 0x0, 0x0, 0x4, 0x55, 0x55,
- 0x5d, 0x55, 0x59, 0xc1, 0x10, 0x0, 0x0, 0xc0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x1c, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+7260 "牠" */
- 0x0, 0x2, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0xc, 0x20, 0x0, 0xd, 0x0, 0x0, 0x5, 0x5b,
- 0x0, 0x40, 0xb, 0x0, 0x0, 0x9, 0x4b, 0x0,
- 0xb2, 0xb, 0x3, 0x0, 0xb, 0x5c, 0x93, 0xb0,
- 0xc, 0x5c, 0x20, 0x8, 0xb, 0x5, 0xc5, 0x4b,
- 0xa, 0x0, 0x51, 0xb, 0x1, 0xb0, 0xb, 0xb,
- 0x0, 0x20, 0xb, 0x22, 0xb0, 0xb, 0xb, 0x0,
- 0x0, 0x3d, 0x40, 0xb0, 0xb, 0x5c, 0x0, 0x2b,
- 0x6b, 0x0, 0xb0, 0xb, 0x56, 0x0, 0x2, 0xb,
- 0x0, 0xb0, 0xb, 0x0, 0x40, 0x0, 0xb, 0x0,
- 0xb0, 0x0, 0x2, 0x70, 0x0, 0xb, 0x0, 0x5b,
- 0x99, 0x9b, 0x90, 0x0, 0x7, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+7269 "物" */
- 0x0, 0x2, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0,
- 0xb, 0x20, 0xd, 0x30, 0x0, 0x0, 0x6, 0x7b,
- 0x0, 0x2b, 0x0, 0x0, 0x0, 0x9, 0x2b, 0x11,
- 0x88, 0x95, 0x95, 0xd1, 0xb, 0x5c, 0x66, 0x90,
- 0xc0, 0xd0, 0xc0, 0x24, 0xb, 0x6, 0x15, 0x61,
- 0xb0, 0xc0, 0x30, 0xb, 0x2, 0xa, 0x6, 0x70,
- 0xc0, 0x0, 0xc, 0x62, 0x64, 0xb, 0x11, 0xb0,
- 0x18, 0x9d, 0x2, 0x60, 0x3a, 0x2, 0xa0, 0x15,
- 0xb, 0x4, 0x0, 0xb1, 0x4, 0x80, 0x0, 0xb,
- 0x0, 0x8, 0x30, 0x6, 0x70, 0x0, 0xb, 0x0,
- 0x63, 0x14, 0x2c, 0x30, 0x0, 0xb, 0x4, 0x0,
- 0x3, 0xf8, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+7279 "特" */
- 0x0, 0x4, 0x0, 0x0, 0x51, 0x0, 0x0, 0x0,
- 0xc, 0x10, 0x0, 0xc0, 0x0, 0x0, 0x7, 0x3c,
- 0x0, 0x55, 0xd5, 0x6b, 0x0, 0xb, 0x1c, 0x0,
- 0x10, 0xc0, 0x0, 0x0, 0xc, 0x5d, 0x6a, 0x0,
- 0xc0, 0x0, 0x20, 0x26, 0xc, 0x5, 0x55, 0x95,
- 0x56, 0xa1, 0x40, 0xc, 0x2, 0x0, 0x0, 0xd0,
- 0x0, 0x0, 0xc, 0x75, 0x55, 0x55, 0xd5, 0xc2,
- 0x18, 0xbd, 0x0, 0x30, 0x0, 0xc0, 0x0, 0x7,
- 0xc, 0x0, 0x66, 0x0, 0xc0, 0x0, 0x0, 0xc,
- 0x0, 0x1c, 0x0, 0xc0, 0x0, 0x0, 0xc, 0x0,
- 0x2, 0x11, 0xc0, 0x0, 0x0, 0xc, 0x0, 0x0,
- 0x5e, 0x70, 0x0, 0x0, 0x2, 0x0, 0x0, 0x1,
- 0x0, 0x0,
-
- /* U+72AC "犬" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xe2, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xe0, 0x4a, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0xd0, 0x8, 0x90, 0x0, 0x0, 0x0, 0x0, 0xc0,
- 0x0, 0x30, 0x30, 0x6, 0x55, 0x56, 0xd7, 0x55,
- 0x57, 0x91, 0x0, 0x0, 0x4, 0x95, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x7, 0x65, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0xb, 0x11, 0x80, 0x0, 0x0, 0x0,
- 0x0, 0x2b, 0x0, 0x74, 0x0, 0x0, 0x0, 0x0,
- 0xb2, 0x0, 0xc, 0x30, 0x0, 0x0, 0xa, 0x40,
- 0x0, 0x1, 0xe8, 0x10, 0x3, 0x81, 0x0, 0x0,
- 0x0, 0x1c, 0xb1, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+72AF "犯" */
- 0x1, 0x10, 0xb, 0x21, 0x0, 0x3, 0x0, 0x0,
- 0x54, 0x88, 0xd, 0x55, 0x5d, 0x20, 0x0, 0xa,
- 0x80, 0xc, 0x0, 0xc, 0x0, 0x0, 0x47, 0x80,
- 0xc, 0x0, 0xc, 0x0, 0x5, 0x40, 0xb0, 0xc,
- 0x0, 0xc, 0x0, 0x0, 0x3, 0xf0, 0xc, 0x0,
- 0xc, 0x0, 0x0, 0xa, 0xa2, 0xc, 0x5, 0x4d,
- 0x0, 0x0, 0x82, 0x93, 0xc, 0x1, 0xb7, 0x0,
- 0x6, 0x20, 0xa2, 0xc, 0x0, 0x0, 0x10, 0x0,
- 0x0, 0xb1, 0xc, 0x0, 0x0, 0x60, 0x0, 0x0,
- 0xd0, 0xc, 0x0, 0x0, 0xb1, 0x1, 0x8d, 0x50,
- 0x8, 0xcb, 0xbb, 0xd2, 0x0, 0x3, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+72B6 "状" */
- 0x0, 0x0, 0x10, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0xe1, 0x0, 0xc2, 0x40, 0x0, 0x0, 0x0,
- 0xc0, 0x0, 0xc0, 0x4d, 0x0, 0x6, 0x20, 0xc0,
- 0x0, 0xc0, 0x8, 0x0, 0x1, 0xe0, 0xc0, 0x0,
- 0xc0, 0x0, 0x70, 0x0, 0x91, 0xc5, 0x65, 0xd8,
- 0x55, 0x61, 0x0, 0x0, 0xc0, 0x0, 0xc6, 0x0,
- 0x0, 0x0, 0x6, 0xc0, 0x1, 0xa5, 0x10, 0x0,
- 0x2, 0xa1, 0xc0, 0x5, 0x71, 0x70, 0x0, 0xd,
- 0x20, 0xc0, 0xa, 0x10, 0xb0, 0x0, 0x0, 0x0,
- 0xc0, 0x1a, 0x0, 0x6a, 0x0, 0x0, 0x0, 0xc0,
- 0x91, 0x0, 0xd, 0x90, 0x0, 0x0, 0xd5, 0x30,
- 0x0, 0x2, 0xc4, 0x0, 0x0, 0x21, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+72C0 "狀" */
- 0x0, 0x0, 0x10, 0x0, 0x30, 0x0, 0x0, 0x0,
- 0x40, 0xb2, 0x0, 0xb3, 0x30, 0x0, 0x0, 0xc0,
- 0xb0, 0x0, 0xb1, 0x3a, 0x0, 0x0, 0xb0, 0xb0,
- 0x0, 0xb1, 0x8, 0x0, 0x0, 0xb0, 0xb1, 0x22,
- 0xb3, 0x23, 0x90, 0x2, 0x95, 0xc1, 0x32, 0xc7,
- 0x22, 0x20, 0x0, 0x0, 0xb0, 0x0, 0xb7, 0x0,
- 0x0, 0x3, 0x55, 0xc0, 0x0, 0xb6, 0x20, 0x0,
- 0x0, 0x82, 0xb0, 0x4, 0x72, 0x80, 0x0, 0x0,
- 0xa0, 0xb0, 0x9, 0x20, 0xb1, 0x0, 0x0, 0x90,
- 0xb0, 0x1a, 0x0, 0x5b, 0x0, 0x5, 0x30, 0xb0,
- 0x91, 0x0, 0xb, 0xa0, 0x5, 0x0, 0xb5, 0x30,
- 0x0, 0x1, 0x81, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+72EC "独" */
- 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x3,
- 0x20, 0x79, 0x0, 0xd, 0x0, 0x0, 0x0, 0x76,
- 0xb0, 0x0, 0xc, 0x0, 0x0, 0x0, 0x1e, 0x30,
- 0x85, 0x5d, 0x59, 0x20, 0x1, 0x85, 0x60, 0xc0,
- 0xc, 0xc, 0x0, 0x15, 0x3, 0xb0, 0xc0, 0xc,
- 0xc, 0x0, 0x0, 0xb, 0xc0, 0xc0, 0xc, 0xc,
- 0x0, 0x0, 0x57, 0xb0, 0xc0, 0xc, 0xc, 0x0,
- 0x1, 0xa0, 0xc0, 0xd5, 0x5d, 0x5c, 0x0, 0x7,
- 0x0, 0xc0, 0x10, 0xc, 0x2, 0x0, 0x10, 0x0,
- 0xd0, 0x0, 0xc, 0x8, 0x20, 0x0, 0x2, 0xb1,
- 0x24, 0x5d, 0x65, 0xd0, 0x0, 0x8e, 0x35, 0xc7,
- 0x30, 0x0, 0x90, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+72ED "狭" */
- 0x0, 0x0, 0x0, 0x1, 0x10, 0x0, 0x0, 0x3,
- 0x0, 0xb1, 0x4, 0xa0, 0x0, 0x0, 0x1, 0x87,
- 0x50, 0x3, 0x80, 0x2, 0x0, 0x0, 0x7a, 0x6,
- 0x57, 0xa5, 0x5a, 0x20, 0x4, 0x5a, 0x2, 0x3,
- 0x80, 0x62, 0x0, 0x22, 0xa, 0x31, 0xb4, 0x70,
- 0xb1, 0x0, 0x0, 0x2e, 0x50, 0xc5, 0x75, 0x20,
- 0x0, 0x0, 0x95, 0x85, 0x68, 0x96, 0x59, 0x90,
- 0x6, 0x33, 0x81, 0x8, 0x44, 0x0, 0x0, 0x32,
- 0x4, 0x80, 0xc, 0x7, 0x0, 0x0, 0x0, 0x6,
- 0x70, 0x56, 0x4, 0x70, 0x0, 0x3, 0x4c, 0x22,
- 0xa0, 0x0, 0x98, 0x0, 0x0, 0xa5, 0x56, 0x0,
- 0x0, 0x9, 0x90, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+732B "猫" */
- 0x0, 0x0, 0x0, 0x1, 0x0, 0x10, 0x0, 0x4,
- 0x0, 0x67, 0xc, 0x20, 0xe1, 0x0, 0x0, 0x75,
- 0xb0, 0xc, 0x0, 0xc0, 0x10, 0x0, 0x1e, 0x26,
- 0x5d, 0x55, 0xd5, 0xb1, 0x1, 0x84, 0x60, 0xc,
- 0x0, 0xc0, 0x0, 0x4, 0x3, 0xb0, 0x7, 0x0,
- 0x61, 0x0, 0x0, 0xa, 0xb1, 0xb5, 0x77, 0x5a,
- 0x60, 0x0, 0x46, 0xb1, 0x90, 0x56, 0x7, 0x40,
- 0x1, 0x80, 0xb1, 0x90, 0x56, 0x7, 0x40, 0x15,
- 0x0, 0xb1, 0xb5, 0x99, 0x5a, 0x40, 0x10, 0x0,
- 0xc1, 0x90, 0x56, 0x7, 0x40, 0x1, 0x37, 0x81,
- 0xb5, 0x99, 0x5a, 0x40, 0x0, 0x4c, 0x1, 0x80,
- 0x0, 0x4, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+733F "猿" */
- 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x3,
- 0x0, 0x83, 0x0, 0xc2, 0x1, 0x0, 0x1, 0x74,
- 0xb1, 0x65, 0xd5, 0x69, 0x0, 0x0, 0x3e, 0x0,
- 0x0, 0xc0, 0x0, 0x50, 0x1, 0x8a, 0x26, 0x55,
- 0x65, 0x55, 0x60, 0x15, 0x7, 0x50, 0xb5, 0x55,
- 0x5c, 0x0, 0x0, 0xd, 0x80, 0xb0, 0x0, 0xb,
- 0x0, 0x0, 0x66, 0xa0, 0xd5, 0x76, 0x5b, 0x0,
- 0x1, 0x81, 0xb0, 0x29, 0x46, 0x4, 0xb0, 0x7,
- 0x2, 0xb0, 0x68, 0x8, 0x67, 0x0, 0x10, 0x4,
- 0xa5, 0x97, 0x1, 0xc0, 0x0, 0x0, 0x8, 0x80,
- 0x46, 0x42, 0x5c, 0x30, 0x1, 0x9e, 0x0, 0x5c,
- 0x20, 0x4, 0xb2, 0x0, 0x1, 0x0, 0x1, 0x0,
- 0x0, 0x0,
-
- /* U+7372 "獲" */
- 0x0, 0x0, 0x0, 0x1, 0x0, 0x10, 0x0, 0x2,
- 0x0, 0x63, 0x9, 0x20, 0xa3, 0x40, 0x2, 0x82,
- 0xb4, 0x6b, 0x65, 0xb6, 0x61, 0x0, 0x2e, 0x10,
- 0x55, 0x37, 0x30, 0x0, 0x0, 0x9a, 0x10, 0xd6,
- 0x5a, 0x58, 0x50, 0x6, 0x16, 0x56, 0xc3, 0x3c,
- 0x38, 0x0, 0x0, 0xb, 0x93, 0xb2, 0x2b, 0x27,
- 0x0, 0x0, 0x48, 0xa0, 0xc5, 0x5c, 0x55, 0x40,
- 0x0, 0x90, 0xb0, 0xc5, 0x56, 0x55, 0x60, 0x7,
- 0x10, 0xb0, 0x66, 0x55, 0x7b, 0x0, 0x11, 0x1,
- 0xa0, 0x5, 0x31, 0xb2, 0x0, 0x0, 0x4, 0x80,
- 0x0, 0x9d, 0x20, 0x0, 0x1, 0x8d, 0x30, 0x17,
- 0x86, 0xb7, 0x52, 0x0, 0x25, 0x14, 0x40, 0x0,
- 0x4, 0x50,
-
- /* U+73A9 "玩" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5,
- 0x55, 0x6a, 0x15, 0x55, 0x59, 0x50, 0x1, 0xd,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x0, 0x31, 0x5, 0x5e, 0x95, 0x68, 0x75,
- 0xa5, 0x85, 0x0, 0xd, 0x0, 0x8, 0x40, 0xc0,
- 0x0, 0x0, 0xd, 0x0, 0xa, 0x20, 0xc0, 0x0,
- 0x0, 0xd, 0x0, 0xc, 0x0, 0xc0, 0x0, 0x0,
- 0xd, 0x34, 0x1b, 0x0, 0xc0, 0x0, 0x16, 0x99,
- 0x20, 0x75, 0x0, 0xc0, 0x22, 0x9, 0x10, 0x3,
- 0xa0, 0x0, 0xc0, 0x44, 0x0, 0x0, 0x57, 0x0,
- 0x0, 0xba, 0xd8, 0x0, 0x2, 0x10, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+73FE "現" */
- 0x4, 0x55, 0x68, 0x85, 0x55, 0x58, 0x30, 0x1,
- 0xb, 0x0, 0xb0, 0x0, 0x8, 0x20, 0x0, 0xb,
- 0x0, 0xb5, 0x55, 0x5a, 0x20, 0x0, 0xb, 0x0,
- 0xb0, 0x0, 0x8, 0x20, 0x0, 0xb, 0x23, 0xb4,
- 0x44, 0x4a, 0x20, 0x4, 0x6c, 0x53, 0xb0, 0x0,
- 0x8, 0x20, 0x0, 0xb, 0x0, 0xb5, 0x55, 0x5a,
- 0x20, 0x0, 0xb, 0x0, 0x82, 0xb0, 0xa4, 0x10,
- 0x0, 0xb, 0x1, 0x6, 0x60, 0xa0, 0x0, 0x1,
- 0x4d, 0x53, 0xc, 0x10, 0xa0, 0x40, 0x1c, 0x60,
- 0x0, 0x76, 0x0, 0xa0, 0x70, 0x0, 0x0, 0x7,
- 0x50, 0x0, 0xca, 0xd4, 0x0, 0x0, 0x30, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+7403 "球" */
- 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1c, 0x18, 0x10, 0x6, 0x57,
- 0x77, 0x0, 0x1b, 0x6, 0x60, 0x0, 0x1a, 0x2,
- 0x55, 0x6c, 0x55, 0xc4, 0x0, 0x1a, 0x0, 0x0,
- 0x1d, 0x0, 0x0, 0x0, 0x1a, 0x13, 0x70, 0x1e,
- 0x11, 0xb0, 0x5, 0x6c, 0x64, 0x96, 0x1b, 0x69,
- 0x30, 0x0, 0x1a, 0x0, 0x12, 0x1b, 0x91, 0x0,
- 0x0, 0x1a, 0x0, 0x2, 0x7b, 0x38, 0x0, 0x0,
- 0x1c, 0x65, 0x87, 0x1b, 0xb, 0x60, 0xa, 0xb4,
- 0x8, 0x50, 0x1b, 0x1, 0xe7, 0x4, 0x0, 0x0,
- 0x1, 0x2a, 0x0, 0x10, 0x0, 0x0, 0x0, 0x5,
- 0xf7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20,
- 0x0, 0x0,
-
- /* U+7406 "理" */
- 0x0, 0x0, 0x0, 0x53, 0x33, 0x37, 0x10, 0x6,
- 0x58, 0x85, 0xb1, 0x1b, 0x1b, 0x0, 0x0, 0xb,
- 0x0, 0xa0, 0xa, 0xa, 0x0, 0x0, 0xb, 0x0,
- 0xb5, 0x5c, 0x5c, 0x0, 0x0, 0xb, 0x21, 0xa0,
- 0xa, 0xa, 0x0, 0x6, 0x6d, 0x74, 0xb0, 0xa,
- 0xa, 0x0, 0x0, 0xb, 0x0, 0xb5, 0x5c, 0x5a,
- 0x0, 0x0, 0xb, 0x0, 0x0, 0xa, 0x0, 0x0,
- 0x0, 0xc, 0x54, 0x55, 0x5c, 0x5a, 0x20, 0x7,
- 0xb8, 0x10, 0x0, 0xa, 0x0, 0x0, 0x6, 0x0,
- 0x0, 0x0, 0xa, 0x0, 0x40, 0x0, 0x0, 0x36,
- 0x55, 0x56, 0x55, 0x71,
-
- /* U+74B0 "環" */
- 0x0, 0x0, 0x40, 0x75, 0x55, 0x57, 0x40, 0x6,
- 0x6b, 0x52, 0xa0, 0x90, 0x95, 0x30, 0x0, 0x19,
- 0x0, 0xc5, 0xa5, 0xa8, 0x30, 0x0, 0x19, 0x0,
- 0x20, 0x0, 0x0, 0x40, 0x4, 0x6b, 0xa6, 0x55,
- 0x55, 0x55, 0x50, 0x1, 0x29, 0x0, 0x85, 0x55,
- 0x5b, 0x0, 0x0, 0x19, 0x0, 0xa1, 0x0, 0x9,
- 0x0, 0x0, 0x19, 0x0, 0xa6, 0xb7, 0x58, 0x20,
- 0x0, 0x1a, 0x52, 0xa, 0x37, 0x16, 0x90, 0x9,
- 0xb6, 0x0, 0x8d, 0x1, 0xc2, 0x0, 0x3, 0x0,
- 0x26, 0x1b, 0x14, 0x2c, 0x60, 0x0, 0x0, 0x0,
- 0xc, 0x80, 0x1, 0x70, 0x0, 0x0, 0x0, 0x1,
- 0x0, 0x0, 0x0,
-
- /* U+7518 "甘" */
- 0x0, 0x0, 0x40, 0x0, 0x2, 0x0, 0x0, 0x0,
- 0x0, 0xe0, 0x0, 0xc, 0x20, 0x0, 0x0, 0x0,
- 0xc0, 0x0, 0xc, 0x0, 0x0, 0x0, 0x0, 0xc0,
- 0x0, 0xc, 0x2, 0x80, 0x6, 0x55, 0xd5, 0x55,
- 0x5d, 0x55, 0x51, 0x0, 0x0, 0xc0, 0x0, 0xc,
- 0x0, 0x0, 0x0, 0x0, 0xc0, 0x0, 0xc, 0x0,
- 0x0, 0x0, 0x0, 0xd5, 0x55, 0x5d, 0x0, 0x0,
- 0x0, 0x0, 0xc0, 0x0, 0xc, 0x0, 0x0, 0x0,
- 0x0, 0xc0, 0x0, 0xc, 0x0, 0x0, 0x0, 0x0,
- 0xc0, 0x0, 0xc, 0x0, 0x0, 0x0, 0x0, 0xe5,
- 0x55, 0x5d, 0x0, 0x0, 0x0, 0x0, 0xd0, 0x0,
- 0xb, 0x10, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+751A "甚" */
- 0x0, 0x0, 0x40, 0x0, 0x3, 0x0, 0x0, 0x0,
- 0x0, 0xc0, 0x0, 0xc, 0x10, 0x0, 0x2, 0x65,
- 0xd5, 0x55, 0x5d, 0x5a, 0x50, 0x0, 0x0, 0xc0,
- 0x0, 0xc, 0x0, 0x0, 0x0, 0x0, 0xc5, 0x55,
- 0x5d, 0x0, 0x0, 0x0, 0x0, 0xc0, 0x0, 0xc,
- 0x0, 0x0, 0x0, 0x0, 0xc5, 0x55, 0x5d, 0x0,
- 0x0, 0x0, 0x0, 0xc0, 0x0, 0xc, 0x0, 0x20,
- 0x17, 0x5a, 0x85, 0x55, 0x58, 0x55, 0x91, 0x0,
- 0xc, 0x1, 0xc0, 0x35, 0x0, 0x0, 0x0, 0xc,
- 0x9, 0x40, 0x7, 0xb0, 0x0, 0x0, 0xc, 0x64,
- 0x0, 0x0, 0x90, 0x0, 0x0, 0xe, 0x75, 0x55,
- 0x55, 0x5d, 0x30, 0x0, 0x3, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+751F "生" */
- 0x0, 0x0, 0x0, 0x12, 0x0, 0x0, 0x0, 0x0,
- 0x3, 0x10, 0x2c, 0x0, 0x0, 0x0, 0x0, 0x9,
- 0x80, 0x2a, 0x0, 0x0, 0x0, 0x0, 0xc, 0x0,
- 0x2a, 0x0, 0x5, 0x0, 0x0, 0x49, 0x55, 0x6c,
- 0x55, 0x58, 0x30, 0x0, 0x90, 0x0, 0x2a, 0x0,
- 0x0, 0x0, 0x2, 0x50, 0x0, 0x2a, 0x0, 0x0,
- 0x0, 0x5, 0x0, 0x0, 0x2a, 0x0, 0x54, 0x0,
- 0x0, 0x5, 0x55, 0x6c, 0x55, 0x54, 0x0, 0x0,
- 0x0, 0x0, 0x2a, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x2a, 0x0, 0x0, 0x60, 0x6, 0x55, 0x55, 0x56,
- 0x55, 0x56, 0x72,
-
- /* U+7522 "產" */
- 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x6, 0x40, 0x0, 0x40, 0x0, 0x55, 0x67,
- 0x55, 0x6d, 0x65, 0x0, 0x0, 0x0, 0x27, 0x89,
- 0x30, 0x0, 0x0, 0x0, 0x25, 0x65, 0xb4, 0x0,
- 0x0, 0x7, 0x67, 0x55, 0x56, 0xb5, 0xc2, 0x0,
- 0xc0, 0x23, 0x7, 0x10, 0x0, 0x0, 0xb, 0x8,
- 0x60, 0xb0, 0x1, 0x0, 0x0, 0xb0, 0xc5, 0x5c,
- 0x55, 0x84, 0x0, 0xa, 0x62, 0x0, 0xb0, 0x1,
- 0x0, 0x2, 0x72, 0x46, 0x5c, 0x55, 0x80, 0x0,
- 0x61, 0x0, 0x0, 0xb0, 0x0, 0x0, 0x6, 0x15,
- 0x55, 0x5c, 0x55, 0x5a, 0x71, 0x0, 0x10, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+7523 "産" */
- 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x6, 0x50, 0x0, 0x60, 0x0, 0x55, 0x75,
- 0x55, 0x76, 0x56, 0x10, 0x0, 0x2, 0x90, 0x8,
- 0x60, 0x0, 0x0, 0x20, 0x8, 0x0, 0x70, 0x4,
- 0x0, 0xc, 0x55, 0x55, 0x85, 0x55, 0x62, 0x0,
- 0xb0, 0x57, 0xb, 0x10, 0x0, 0x0, 0xb, 0xa,
- 0x30, 0xb0, 0x2, 0x50, 0x0, 0xb1, 0xa5, 0x5c,
- 0x55, 0x54, 0x0, 0x19, 0x60, 0x0, 0xb0, 0x5,
- 0x0, 0x4, 0x60, 0x36, 0x5c, 0x55, 0x51, 0x0,
- 0x70, 0x0, 0x0, 0xb0, 0x0, 0x0, 0x6, 0x15,
- 0x55, 0x5c, 0x55, 0x5b, 0x51, 0x0, 0x10, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+7528 "用" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8,
- 0x65, 0x55, 0x75, 0x55, 0xd1, 0x0, 0x83, 0x0,
- 0xa, 0x0, 0xc, 0x0, 0x8, 0x30, 0x0, 0xa0,
- 0x0, 0xc0, 0x0, 0x87, 0x55, 0x5c, 0x55, 0x5c,
- 0x0, 0x8, 0x30, 0x0, 0xa0, 0x0, 0xc0, 0x0,
- 0x93, 0x0, 0xa, 0x0, 0xc, 0x0, 0x9, 0x20,
- 0x0, 0xa0, 0x0, 0xc0, 0x0, 0xb5, 0x55, 0x5c,
- 0x55, 0x5c, 0x0, 0xc, 0x0, 0x0, 0xa0, 0x0,
- 0xc0, 0x2, 0x80, 0x0, 0x1a, 0x0, 0xc, 0x0,
- 0x71, 0x0, 0x1, 0xa0, 0x22, 0xd0, 0x6, 0x0,
- 0x0, 0x17, 0x3, 0xc9, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0x0,
-
- /* U+7530 "田" */
- 0x10, 0x0, 0x0, 0x0, 0x10, 0xc5, 0x55, 0xa6,
- 0x55, 0xa6, 0xc0, 0x0, 0xa1, 0x0, 0x84, 0xc0,
- 0x0, 0xa1, 0x0, 0x84, 0xc0, 0x0, 0xa1, 0x0,
- 0x84, 0xc5, 0x55, 0xc6, 0x55, 0xa4, 0xc0, 0x0,
- 0xa1, 0x0, 0x84, 0xc0, 0x0, 0xa1, 0x0, 0x84,
- 0xc0, 0x0, 0xa1, 0x0, 0x84, 0xc0, 0x0, 0xa1,
- 0x0, 0x84, 0xc5, 0x55, 0x55, 0x55, 0xa4, 0x40,
- 0x0, 0x0, 0x0, 0x20,
-
- /* U+7531 "由" */
- 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0xb,
- 0x30, 0x0, 0x0, 0x0, 0x0, 0xa1, 0x0, 0x0,
- 0x2, 0x0, 0xa, 0x10, 0x0, 0x40, 0xc5, 0x55,
- 0xc6, 0x55, 0x5e, 0x1c, 0x0, 0xa, 0x10, 0x0,
- 0xc0, 0xc0, 0x0, 0xa1, 0x0, 0xc, 0xc, 0x0,
- 0xa, 0x10, 0x0, 0xc0, 0xc5, 0x55, 0xc6, 0x55,
- 0x5c, 0xc, 0x0, 0xa, 0x10, 0x0, 0xc0, 0xc0,
- 0x0, 0xa1, 0x0, 0xc, 0xc, 0x0, 0xa, 0x10,
- 0x0, 0xc0, 0xc5, 0x55, 0x55, 0x55, 0x5c, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+7533 "申" */
- 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0xc2,
- 0x0, 0x0, 0x20, 0x0, 0xb0, 0x0, 0x30, 0xc5,
- 0x55, 0xc5, 0x55, 0xd3, 0xc0, 0x0, 0xb0, 0x0,
- 0xb0, 0xc5, 0x55, 0xc5, 0x55, 0xc0, 0xc0, 0x0,
- 0xb0, 0x0, 0xb0, 0xc0, 0x0, 0xb0, 0x0, 0xb0,
- 0xc5, 0x55, 0xc5, 0x55, 0xc1, 0xb0, 0x0, 0xb0,
- 0x0, 0x70, 0x0, 0x0, 0xb0, 0x0, 0x0, 0x0,
- 0x0, 0xb0, 0x0, 0x0, 0x0, 0x0, 0xb1, 0x0,
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0,
-
- /* U+7535 "电" */
- 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc1, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0, 0x0,
- 0x0, 0x0, 0xa5, 0x55, 0xd5, 0x55, 0xb4, 0x0,
- 0xc0, 0x0, 0xc0, 0x0, 0xc0, 0x0, 0xc0, 0x0,
- 0xc0, 0x0, 0xc0, 0x0, 0xc5, 0x55, 0xd5, 0x55,
- 0xd0, 0x0, 0xc0, 0x0, 0xc0, 0x0, 0xc0, 0x0,
- 0xc0, 0x0, 0xc0, 0x0, 0xc0, 0x0, 0xd5, 0x55,
- 0xd5, 0x55, 0xa0, 0x10, 0x30, 0x0, 0xc0, 0x0,
- 0x0, 0x50, 0x0, 0x0, 0xc0, 0x0, 0x0, 0xa0,
- 0x0, 0x0, 0x8b, 0xaa, 0xab, 0xd0,
-
- /* U+7537 "男" */
- 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0xc5,
- 0x55, 0xa5, 0x5c, 0x20, 0x0, 0xb0, 0x1, 0xa0,
- 0xb, 0x0, 0x0, 0xc5, 0x55, 0xc5, 0x5c, 0x0,
- 0x0, 0xb0, 0x1, 0xa0, 0xb, 0x0, 0x0, 0xd5,
- 0x55, 0xc5, 0x5c, 0x10, 0x0, 0x80, 0x1, 0x80,
- 0x5, 0x0, 0x0, 0x0, 0x3, 0xa0, 0x0, 0x30,
- 0x6, 0x55, 0x59, 0x95, 0x55, 0xe1, 0x0, 0x0,
- 0xa, 0x20, 0x1, 0xb0, 0x0, 0x0, 0x3a, 0x0,
- 0x4, 0x80, 0x0, 0x4, 0xa0, 0x4, 0x8, 0x40,
- 0x4, 0x86, 0x0, 0x1, 0xdc, 0x0, 0x31, 0x0,
- 0x0, 0x0, 0x10, 0x0,
-
- /* U+753A "町" */
- 0x0, 0x0, 0x10, 0x0, 0x0, 0x24, 0xb, 0x5a,
- 0x5c, 0x56, 0x5b, 0x65, 0x50, 0xb0, 0xb0, 0xa0,
- 0x0, 0xa2, 0x0, 0xb, 0xb, 0xa, 0x0, 0xa,
- 0x20, 0x0, 0xb0, 0xb0, 0xa0, 0x0, 0xa2, 0x0,
- 0xb, 0x5c, 0x5c, 0x0, 0xa, 0x20, 0x0, 0xb0,
- 0xb0, 0xa0, 0x0, 0xa2, 0x0, 0xb, 0xb, 0xa,
- 0x0, 0xa, 0x20, 0x0, 0xb0, 0xb0, 0xa0, 0x0,
- 0xa2, 0x0, 0xc, 0x55, 0x5c, 0x10, 0xa, 0x20,
- 0x0, 0x60, 0x0, 0x0, 0x0, 0xa2, 0x0, 0x0,
- 0x0, 0x0, 0x3, 0xae, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x20, 0x0, 0x0,
-
- /* U+753B "画" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x65,
- 0x55, 0x55, 0x55, 0x59, 0xb0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x85, 0x56, 0x59,
- 0x40, 0x0, 0x1, 0xc, 0x0, 0xa0, 0xb0, 0x8,
- 0x1, 0xb0, 0xb0, 0xa, 0xb, 0x0, 0xb0, 0x1a,
- 0xc, 0x55, 0xc5, 0xc0, 0xb, 0x1, 0xa0, 0xb0,
- 0xa, 0xb, 0x0, 0xb0, 0x1a, 0xb, 0x0, 0xa0,
- 0xb0, 0xb, 0x1, 0xa0, 0xb0, 0xa, 0xb, 0x0,
- 0xb0, 0x1a, 0xc, 0x55, 0x55, 0xa0, 0xb, 0x3,
- 0xb5, 0x55, 0x55, 0x55, 0x55, 0xb0, 0x3, 0x0,
- 0x0, 0x0, 0x0, 0x8, 0x0,
-
- /* U+754C "界" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb, 0x55, 0x57, 0x55, 0x97, 0x0, 0x0, 0xb,
- 0x0, 0x19, 0x0, 0x74, 0x0, 0x0, 0xc, 0x55,
- 0x6b, 0x55, 0x94, 0x0, 0x0, 0xb, 0x0, 0x19,
- 0x0, 0x74, 0x0, 0x0, 0xc, 0x55, 0xb7, 0x75,
- 0x94, 0x0, 0x0, 0x1, 0x7, 0x70, 0x34, 0x0,
- 0x0, 0x0, 0x0, 0x7b, 0x0, 0x7, 0x93, 0x0,
- 0x0, 0x29, 0x4a, 0x40, 0x2b, 0x2a, 0xe3, 0x4,
- 0x30, 0xc, 0x0, 0x1a, 0x0, 0x0, 0x0, 0x0,
- 0x2a, 0x0, 0x1a, 0x0, 0x0, 0x0, 0x1, 0xa1,
- 0x0, 0x1a, 0x0, 0x0, 0x0, 0x46, 0x0, 0x0,
- 0x2a, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+7559 "留" */
- 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x22,
- 0x69, 0x80, 0x0, 0x0, 0x40, 0xc, 0x20, 0x0,
- 0x6a, 0x95, 0x6b, 0x0, 0xb0, 0x17, 0x10, 0x93,
- 0x3, 0x80, 0xb, 0x1, 0x7d, 0x1b, 0x0, 0x56,
- 0x1, 0xd9, 0x60, 0x49, 0x22, 0x6b, 0x30, 0x7,
- 0x0, 0x16, 0x20, 0x3, 0x70, 0x0, 0x59, 0x55,
- 0x59, 0x55, 0x6c, 0x0, 0x4, 0x80, 0x1, 0xb0,
- 0x1, 0xa0, 0x0, 0x4a, 0x55, 0x6c, 0x55, 0x6a,
- 0x0, 0x4, 0x80, 0x1, 0xb0, 0x1, 0xa0, 0x0,
- 0x48, 0x0, 0x1b, 0x0, 0x1b, 0x0, 0x5, 0xa5,
- 0x55, 0x65, 0x56, 0xb0, 0x0, 0x11, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+756A "番" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x30, 0x0, 0x0,
- 0x0, 0x24, 0x79, 0xbb, 0x10, 0x0, 0x36, 0x64,
- 0xa2, 0x9, 0x10, 0x0, 0x0, 0xb, 0x9, 0x24,
- 0x60, 0x0, 0x6, 0x55, 0x88, 0xc8, 0x75, 0x57,
- 0x40, 0x0, 0x4, 0x99, 0x27, 0x0, 0x0, 0x0,
- 0x6, 0x60, 0x92, 0x9, 0x71, 0x0, 0x26, 0x40,
- 0x8, 0x10, 0x8, 0xd7, 0x11, 0xb, 0x55, 0x97,
- 0x55, 0xd2, 0x0, 0x0, 0xb0, 0x7, 0x40, 0xb,
- 0x0, 0x0, 0xb, 0x55, 0xa7, 0x55, 0xc0, 0x0,
- 0x0, 0xb0, 0x7, 0x40, 0xb, 0x0, 0x0, 0xb,
- 0x55, 0x55, 0x55, 0xb0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+756B "畫" */
- 0x0, 0x0, 0x0, 0x12, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2b, 0x0, 0x30, 0x0, 0x0, 0x6,
- 0x55, 0x6b, 0x55, 0xd1, 0x20, 0x3, 0x65, 0x55,
- 0x6b, 0x55, 0xc5, 0x70, 0x0, 0x7, 0x55, 0x6b,
- 0x55, 0xc0, 0x0, 0x0, 0x5, 0x55, 0x6b, 0x55,
- 0x76, 0x0, 0x0, 0x23, 0x22, 0x3a, 0x22, 0x25,
- 0x20, 0x0, 0x45, 0x33, 0x33, 0x33, 0x53, 0x10,
- 0x0, 0xd, 0x55, 0x6b, 0x55, 0xb4, 0x0, 0x0,
- 0xc, 0x55, 0x6b, 0x55, 0xb1, 0x0, 0x0, 0xb,
- 0x0, 0x29, 0x0, 0xa1, 0x0, 0x0, 0xc, 0x55,
- 0x55, 0x55, 0x91, 0x10, 0x5, 0x55, 0x55, 0x55,
- 0x55, 0x58, 0xe1, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+7570 "異" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa,
- 0x55, 0x57, 0x55, 0xa5, 0x0, 0x0, 0xb0, 0x0,
- 0xb0, 0x9, 0x10, 0x0, 0xc, 0x55, 0x5c, 0x55,
- 0xb1, 0x0, 0x0, 0xb0, 0x0, 0xb0, 0x9, 0x10,
- 0x0, 0xd, 0x55, 0x58, 0x55, 0xb2, 0x0, 0x0,
- 0x21, 0xb0, 0x8, 0x20, 0x0, 0x0, 0x65, 0x6c,
- 0x55, 0xa6, 0x5a, 0x10, 0x0, 0x1, 0xa0, 0x8,
- 0x10, 0x0, 0x3, 0x55, 0x6c, 0x55, 0xa6, 0x57,
- 0x80, 0x10, 0x0, 0x91, 0x4, 0x30, 0x0, 0x0,
- 0x4, 0xb7, 0x10, 0x4, 0xb5, 0x0, 0x37, 0x50,
- 0x0, 0x0, 0x0, 0xb5, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x10,
-
- /* U+7576 "當" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x6,
- 0x10, 0x1b, 0x3, 0x70, 0x0, 0x0, 0x39, 0x0,
- 0xa0, 0x92, 0x0, 0x0, 0x75, 0x65, 0x5b, 0x67,
- 0x55, 0xa0, 0x29, 0x0, 0x0, 0x0, 0x10, 0x74,
- 0x6, 0x40, 0xb5, 0x55, 0x5c, 0x22, 0x0, 0x0,
- 0xb, 0x0, 0x0, 0xb0, 0x0, 0x0, 0x0, 0xc5,
- 0x55, 0x5c, 0x0, 0x0, 0x0, 0x31, 0x0, 0x0,
- 0x2, 0x30, 0x0, 0x1c, 0x55, 0x5c, 0x55, 0xa7,
- 0x0, 0x1, 0xc5, 0x55, 0xc5, 0x5a, 0x40, 0x0,
- 0x1a, 0x0, 0xb, 0x0, 0x74, 0x0, 0x1, 0xc5,
- 0x55, 0xc5, 0x5a, 0x40, 0x0, 0x15, 0x0, 0x0,
- 0x0, 0x42, 0x0,
-
- /* U+75B2 "疲" */
- 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa, 0x40, 0x0, 0x0, 0x0, 0x9,
- 0x55, 0x58, 0x85, 0x56, 0xc1, 0x2, 0xb, 0x0,
- 0x0, 0x91, 0x0, 0x0, 0x8, 0x2b, 0x6, 0x55,
- 0xd5, 0x58, 0x40, 0x5, 0x4b, 0xb, 0x0, 0xb0,
- 0x9, 0x20, 0x0, 0xb, 0xb, 0x0, 0xb0, 0x1,
- 0x0, 0x16, 0x7b, 0xb, 0x55, 0xb5, 0x79, 0x0,
- 0x15, 0xa, 0xb, 0x5, 0x0, 0xa3, 0x0, 0x0,
- 0x47, 0xb, 0x3, 0x44, 0x90, 0x0, 0x0, 0x92,
- 0x55, 0x0, 0x9b, 0x0, 0x0, 0x1, 0x80, 0x90,
- 0x4, 0x99, 0x83, 0x0, 0x6, 0x6, 0x13, 0x63,
- 0x0, 0x3a, 0xc1, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+75C5 "病" */
- 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x75, 0x0, 0x0, 0x0, 0xc, 0x55,
- 0x56, 0x65, 0x58, 0x60, 0x60, 0xc0, 0x0, 0x0,
- 0x0, 0x20, 0x8, 0x3c, 0x26, 0x55, 0xb5, 0x58,
- 0x20, 0x10, 0xb0, 0x0, 0xd, 0x0, 0x0, 0x1,
- 0x6b, 0x9, 0x55, 0xd5, 0x5b, 0x22, 0xb1, 0xa0,
- 0xb0, 0x2a, 0x0, 0xc0, 0x0, 0x28, 0xb, 0x6,
- 0x86, 0xc, 0x0, 0x6, 0x40, 0xb0, 0xa0, 0x76,
- 0xc0, 0x0, 0x90, 0xb, 0x61, 0x1, 0x6c, 0x0,
- 0x26, 0x0, 0xb0, 0x0, 0x10, 0xc0, 0x6, 0x0,
- 0xb, 0x0, 0x3, 0xcc, 0x0, 0x0, 0x0, 0x10,
- 0x0, 0x0, 0x0,
-
- /* U+75DB "痛" */
- 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x5, 0x90, 0x0, 0x10, 0x0, 0x9,
- 0x55, 0x55, 0x85, 0x58, 0x90, 0x7, 0xa, 0x15,
- 0x55, 0x55, 0x57, 0x0, 0x7, 0x6a, 0x10, 0x3,
- 0x23, 0x85, 0x0, 0x3, 0x3a, 0x13, 0x0, 0xc3,
- 0x3, 0x0, 0x0, 0xb, 0x1c, 0x55, 0xc5, 0x5b,
- 0x30, 0x3, 0x8c, 0xb, 0x0, 0xb0, 0xa, 0x10,
- 0x3a, 0xb, 0xb, 0x55, 0xc5, 0x5b, 0x10, 0x0,
- 0x19, 0xb, 0x55, 0xc5, 0x5b, 0x10, 0x0, 0x73,
- 0xb, 0x0, 0xb0, 0xa, 0x10, 0x1, 0x80, 0xb,
- 0x0, 0xb0, 0x1a, 0x10, 0x6, 0x0, 0xb, 0x0,
- 0x90, 0x7d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+767A "発" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x65, 0x55, 0xd5, 0x12, 0xc1, 0x0, 0x0, 0x15,
- 0x7, 0x70, 0x76, 0x4, 0x10, 0x0, 0xa, 0x3a,
- 0x0, 0x54, 0x48, 0x20, 0x0, 0x3, 0xa0, 0x0,
- 0x8, 0xa1, 0x0, 0x0, 0x58, 0x55, 0x55, 0x58,
- 0xad, 0xb1, 0x4, 0x10, 0x1b, 0x0, 0xb0, 0x0,
- 0x10, 0x0, 0x0, 0xb, 0x0, 0xb0, 0x0, 0x0,
- 0x2, 0x55, 0x5c, 0x55, 0xc5, 0x58, 0x70, 0x0,
- 0x10, 0xb, 0x0, 0xb0, 0x0, 0x0, 0x0, 0x0,
- 0x65, 0x0, 0xb0, 0x0, 0x30, 0x0, 0x3, 0x80,
- 0x0, 0xb0, 0x0, 0x70, 0x2, 0x64, 0x0, 0x0,
- 0x9a, 0x9b, 0xa0, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+767C "發" */
- 0x0, 0x0, 0x4, 0x10, 0x21, 0x0, 0x0, 0x46,
- 0x59, 0xb2, 0x38, 0x11, 0x0, 0x3, 0x73, 0xa0,
- 0x5, 0x25, 0x70, 0x0, 0x7, 0x80, 0x0, 0x4,
- 0x91, 0x0, 0x36, 0x86, 0xa0, 0x18, 0x5a, 0x8a,
- 0x21, 0x0, 0xb, 0x2, 0x80, 0xb0, 0x0, 0x4,
- 0x22, 0xb0, 0x55, 0xc, 0x1, 0x0, 0xc2, 0x25,
- 0x8, 0x0, 0x69, 0x91, 0xd, 0x55, 0x93, 0x26,
- 0x46, 0xb0, 0x0, 0x30, 0xc, 0x1, 0x10, 0xa3,
- 0x0, 0x0, 0x2, 0xa0, 0x3, 0x98, 0x0, 0x0,
- 0x0, 0x57, 0x0, 0x57, 0x97, 0x0, 0x2, 0x9d,
- 0x22, 0x53, 0x0, 0xa4, 0x0, 0x1, 0x10, 0x10,
- 0x0, 0x0, 0x0,
-
- /* U+767D "白" */
- 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x3e,
- 0x10, 0x0, 0x0, 0x0, 0x9, 0x20, 0x0, 0x0,
- 0x7, 0x56, 0x85, 0x55, 0x56, 0xc0, 0xa2, 0x0,
- 0x0, 0x0, 0x1a, 0x9, 0x20, 0x0, 0x0, 0x1,
- 0xa0, 0x92, 0x0, 0x0, 0x0, 0x1a, 0x9, 0x75,
- 0x55, 0x55, 0x56, 0xa0, 0x92, 0x0, 0x0, 0x0,
- 0x1a, 0x9, 0x20, 0x0, 0x0, 0x1, 0xa0, 0x92,
- 0x0, 0x0, 0x0, 0x1a, 0xa, 0x75, 0x55, 0x55,
- 0x56, 0xa0, 0xa2, 0x0, 0x0, 0x0, 0x19, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+767E "百" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x55,
- 0x55, 0x55, 0x55, 0x59, 0x90, 0x10, 0x0, 0xb,
- 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa0, 0x0,
- 0x0, 0x0, 0x0, 0x85, 0x77, 0x55, 0x5b, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0xd0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0xd5, 0x55, 0x55,
- 0x5d, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0xd0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0xd, 0x55, 0x55, 0x55, 0xd0, 0x0, 0x0, 0xd0,
- 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+7684 "的" */
- 0x0, 0x11, 0x0, 0x1, 0x10, 0x0, 0x0, 0x5,
- 0x90, 0x0, 0x6c, 0x0, 0x0, 0x0, 0x70, 0x0,
- 0xb, 0x30, 0x0, 0x1, 0xa7, 0x5b, 0x42, 0xd5,
- 0x56, 0xb0, 0x1b, 0x0, 0xb0, 0x92, 0x0, 0x3a,
- 0x0, 0xb0, 0xb, 0x35, 0x0, 0x3, 0x90, 0xb,
- 0x0, 0xb2, 0x25, 0x0, 0x39, 0x0, 0xc5, 0x5c,
- 0x0, 0xa3, 0x4, 0x90, 0xb, 0x0, 0xb0, 0x5,
- 0x40, 0x48, 0x0, 0xb0, 0xb, 0x0, 0x0, 0x5,
- 0x70, 0xb, 0x0, 0xb0, 0x0, 0x0, 0x66, 0x1,
- 0xc5, 0x5c, 0x0, 0x14, 0x2b, 0x40, 0x19, 0x0,
- 0x70, 0x0, 0x2d, 0xc0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+7686 "皆" */
- 0x20, 0x0, 0x4, 0x0, 0x0, 0x0, 0xb1, 0x0,
- 0xb, 0x20, 0x57, 0x0, 0xb5, 0x5b, 0x2b, 0x8,
- 0x82, 0x0, 0xb0, 0x0, 0xb, 0x40, 0x0, 0x30,
- 0xb0, 0x35, 0x1b, 0x0, 0x0, 0x80, 0xdb, 0x41,
- 0x39, 0xa9, 0x99, 0xe1, 0x10, 0x4, 0x70, 0x11,
- 0x11, 0x0, 0x8, 0x59, 0x55, 0x55, 0xa0, 0x0,
- 0xc, 0x0, 0x0, 0x0, 0xc0, 0x0, 0xd, 0x55,
- 0x55, 0x55, 0xc0, 0x0, 0xc, 0x0, 0x0, 0x0,
- 0xc0, 0x0, 0xc, 0x0, 0x0, 0x0, 0xc0, 0x0,
- 0xd, 0x55, 0x55, 0x55, 0xb0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0,
-
- /* U+76BF "皿" */
- 0x0, 0x75, 0x56, 0x55, 0x55, 0xa2, 0x0, 0x0,
- 0xc0, 0xb, 0x2, 0x90, 0xc0, 0x0, 0x0, 0xc0,
- 0xb, 0x2, 0x90, 0xc0, 0x0, 0x0, 0xc0, 0xb,
- 0x2, 0x90, 0xc0, 0x0, 0x0, 0xc0, 0xb, 0x2,
- 0x90, 0xc0, 0x0, 0x0, 0xc0, 0xb, 0x2, 0x90,
- 0xc0, 0x0, 0x0, 0xc0, 0xb, 0x2, 0x90, 0xc0,
- 0x0, 0x0, 0xc0, 0xb, 0x2, 0x90, 0xc0, 0x0,
- 0x0, 0xc0, 0xb, 0x2, 0x90, 0xc1, 0x40, 0x26,
- 0x65, 0x56, 0x55, 0x65, 0x66, 0x60,
-
- /* U+76D7 "盗" */
- 0x0, 0x0, 0x0, 0x31, 0x0, 0x0, 0x0, 0x63,
- 0x0, 0xc, 0x60, 0x0, 0x0, 0x0, 0xd0, 0x44,
- 0xc5, 0x55, 0x84, 0x0, 0x1, 0x62, 0xa0, 0x62,
- 0x9, 0x20, 0x0, 0x38, 0x61, 0xd, 0x41, 0x0,
- 0x0, 0x6e, 0x10, 0x5, 0x87, 0x0, 0x0, 0x0,
- 0xb0, 0x0, 0xc1, 0x2a, 0x0, 0x0, 0x3b, 0x2,
- 0x92, 0x0, 0x6e, 0x40, 0x0, 0x31, 0x30, 0x0,
- 0x3, 0x30, 0x0, 0xc, 0x5c, 0x65, 0xc5, 0xb4,
- 0x0, 0x0, 0xb0, 0xa1, 0xb, 0x9, 0x10, 0x0,
- 0xb, 0xa, 0x10, 0xb0, 0x91, 0x0, 0x35, 0xc5,
- 0xc6, 0x5c, 0x5b, 0x8b, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+76EE "目" */
- 0x85, 0x55, 0x55, 0x5a, 0x1d, 0x0, 0x0, 0x0,
- 0xd0, 0xd0, 0x0, 0x0, 0xd, 0xd, 0x0, 0x0,
- 0x0, 0xd0, 0xd5, 0x55, 0x55, 0x5d, 0xd, 0x0,
- 0x0, 0x0, 0xd0, 0xd0, 0x0, 0x0, 0xd, 0xd,
- 0x55, 0x55, 0x55, 0xd0, 0xd0, 0x0, 0x0, 0xd,
- 0xd, 0x0, 0x0, 0x0, 0xd0, 0xd5, 0x55, 0x55,
- 0x5d, 0xc, 0x0, 0x0, 0x0, 0xc0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+76F4 "直" */
- 0x0, 0x0, 0x0, 0x11, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x69, 0x0, 0x2, 0x0, 0x4, 0x65,
- 0x55, 0xa8, 0x55, 0x5a, 0x40, 0x0, 0x1, 0x0,
- 0xa1, 0x0, 0x20, 0x0, 0x0, 0xc, 0x55, 0x75,
- 0x56, 0xc0, 0x0, 0x0, 0xc, 0x0, 0x0, 0x1,
- 0xa0, 0x0, 0x0, 0xc, 0x55, 0x55, 0x56, 0xa0,
- 0x0, 0x0, 0xc, 0x0, 0x0, 0x1, 0xa0, 0x0,
- 0x0, 0xc, 0x55, 0x55, 0x56, 0xa0, 0x0, 0x0,
- 0xc, 0x0, 0x0, 0x1, 0xa0, 0x0, 0x0, 0xc,
- 0x55, 0x55, 0x56, 0xa0, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0x1, 0xa1, 0x60, 0x16, 0x56, 0x55, 0x55,
- 0x55, 0x65, 0x61,
-
- /* U+76F8 "相" */
- 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xa4, 0x0, 0x10, 0x0, 0x30, 0x0, 0x9, 0x10,
- 0xd, 0x55, 0x5d, 0x30, 0x0, 0x91, 0x20, 0xc0,
- 0x0, 0xc0, 0x6, 0x5d, 0x67, 0x4c, 0x0, 0xc,
- 0x0, 0x0, 0xf2, 0x0, 0xc5, 0x55, 0xd0, 0x0,
- 0x5f, 0x97, 0xc, 0x0, 0xc, 0x0, 0xa, 0xa1,
- 0xb0, 0xc0, 0x0, 0xc0, 0x3, 0x79, 0x10, 0xc,
- 0x55, 0x5d, 0x0, 0x80, 0x91, 0x0, 0xc0, 0x0,
- 0xc0, 0x31, 0xa, 0x10, 0xc, 0x0, 0xc, 0x0,
- 0x0, 0xa2, 0x0, 0xd5, 0x55, 0xd0, 0x0, 0xa,
- 0x20, 0xc, 0x0, 0xa, 0x0, 0x0, 0x10, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+770B "看" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0,
- 0x0, 0x13, 0x57, 0x9b, 0xb5, 0x0, 0x1, 0x44,
- 0x43, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x65, 0x58,
- 0xb5, 0x55, 0xa4, 0x0, 0x0, 0x0, 0xb, 0x20,
- 0x0, 0x0, 0x40, 0x17, 0x55, 0x7b, 0x55, 0x55,
- 0x56, 0x92, 0x0, 0x0, 0xb1, 0x0, 0x0, 0x30,
- 0x0, 0x0, 0x7, 0xe5, 0x55, 0x55, 0xd0, 0x0,
- 0x0, 0x45, 0xc5, 0x55, 0x55, 0xc0, 0x0, 0x4,
- 0x40, 0xc0, 0x0, 0x0, 0xc0, 0x0, 0x11, 0x0,
- 0xc5, 0x55, 0x55, 0xc0, 0x0, 0x0, 0x0, 0xc0,
- 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0, 0xc5, 0x55,
- 0x55, 0xc0, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0,
- 0x60, 0x0,
-
- /* U+771F "真" */
- 0x0, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x3b, 0x0, 0x1, 0x30, 0x0, 0x65,
- 0x55, 0x8a, 0x55, 0x56, 0x70, 0x0, 0x0, 0x0,
- 0x56, 0x0, 0x30, 0x0, 0x0, 0x1, 0xc5, 0x65,
- 0x56, 0xc0, 0x0, 0x0, 0x1, 0xc5, 0x55, 0x56,
- 0x90, 0x0, 0x0, 0x1, 0xb0, 0x0, 0x2, 0x90,
- 0x0, 0x0, 0x1, 0xc5, 0x55, 0x56, 0x90, 0x0,
- 0x0, 0x1, 0xc5, 0x55, 0x56, 0x90, 0x0, 0x0,
- 0x1, 0xb0, 0x0, 0x2, 0x90, 0x52, 0x6, 0x55,
- 0x6a, 0x55, 0x86, 0x65, 0x64, 0x0, 0x0, 0x89,
- 0x10, 0x8, 0x91, 0x0, 0x0, 0x28, 0x30, 0x0,
- 0x0, 0x5c, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0,
- 0x2, 0x0,
-
- /* U+7720 "眠" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0,
- 0x30, 0xa5, 0x55, 0x5c, 0x20, 0xc5, 0x5c, 0xb,
- 0x0, 0x0, 0xc0, 0xb, 0x1, 0xa0, 0xb0, 0x0,
- 0xc, 0x0, 0xb0, 0x1a, 0xc, 0x59, 0x55, 0xd0,
- 0xc, 0x55, 0xa0, 0xb0, 0x91, 0x0, 0x0, 0xb0,
- 0x1a, 0xb, 0x8, 0x30, 0x37, 0xc, 0x55, 0xa0,
- 0xc4, 0x88, 0x44, 0x41, 0xb0, 0x1a, 0xb, 0x3,
- 0x90, 0x0, 0xb, 0x1, 0xa0, 0xb0, 0xc, 0x0,
- 0x3, 0xc5, 0x5b, 0xb, 0x23, 0x5a, 0x1, 0x5b,
- 0x0, 0x70, 0xe7, 0x0, 0x8b, 0x84, 0x0, 0x0,
- 0x8, 0x0, 0x0, 0x5e, 0x60, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+773E "眾" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0xb, 0x55,
- 0xa5, 0x5b, 0x55, 0xd2, 0xb, 0x0, 0xa0, 0xe,
- 0x0, 0xb0, 0xb, 0x0, 0xa0, 0xe, 0x0, 0xb0,
- 0xb, 0x55, 0x55, 0x55, 0x55, 0x90, 0x0, 0x0,
- 0x0, 0x14, 0x7b, 0xb0, 0x4, 0x55, 0x6a, 0x94,
- 0x32, 0x10, 0x0, 0x46, 0x5, 0x50, 0x9, 0x0,
- 0x0, 0x93, 0x5, 0x50, 0x3a, 0x0, 0x0, 0xc7,
- 0x5, 0x50, 0x9a, 0x0, 0x8, 0x23, 0xc5, 0x52,
- 0x91, 0x80, 0x43, 0x0, 0x65, 0x77, 0x0, 0x78,
- 0x0, 0x0, 0x5, 0x60, 0x0, 0x0, 0x0, 0x0,
- 0x2, 0x0, 0x0, 0x0,
-
- /* U+7740 "着" */
- 0x0, 0x0, 0x20, 0x0, 0x3, 0x0, 0x0, 0x0,
- 0x0, 0x3b, 0x0, 0x67, 0x0, 0x0, 0x3, 0x55,
- 0x5c, 0x55, 0x95, 0x5c, 0x30, 0x1, 0x0, 0x0,
- 0xc0, 0x0, 0x20, 0x0, 0x0, 0x36, 0x58, 0xa5,
- 0x57, 0x90, 0x0, 0x0, 0x0, 0xb, 0x10, 0x0,
- 0x4, 0x40, 0x16, 0x55, 0xa8, 0x55, 0x55, 0x55,
- 0x40, 0x0, 0x3, 0xe5, 0x55, 0x55, 0xb0, 0x0,
- 0x0, 0x39, 0x92, 0x0, 0x0, 0xb0, 0x0, 0x4,
- 0x60, 0x96, 0x55, 0x55, 0xb0, 0x0, 0x21, 0x0,
- 0x96, 0x55, 0x55, 0xb0, 0x0, 0x0, 0x0, 0x92,
- 0x0, 0x0, 0xb0, 0x0, 0x0, 0x0, 0x96, 0x55,
- 0x55, 0xb0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0,
- 0x20, 0x0,
-
- /* U+77E5 "知" */
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x47,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x96, 0x66,
- 0xb0, 0x95, 0x55, 0xc0, 0x0, 0x80, 0xc0, 0x0,
- 0xb0, 0x0, 0xb0, 0x5, 0x10, 0xc0, 0x0, 0xb0,
- 0x0, 0xb0, 0x1, 0x0, 0xc0, 0x62, 0xb0, 0x0,
- 0xb0, 0x6, 0x55, 0xd5, 0x53, 0xb0, 0x0, 0xb0,
- 0x0, 0x2, 0xc0, 0x0, 0xb0, 0x0, 0xb0, 0x0,
- 0x7, 0x59, 0x30, 0xb0, 0x0, 0xb0, 0x0, 0xb,
- 0x1, 0xd2, 0xc5, 0x55, 0xb0, 0x0, 0x82, 0x0,
- 0x64, 0xb0, 0x0, 0xb0, 0x6, 0x30, 0x0, 0x0,
- 0x50, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+77ED "短" */
- 0x0, 0x32, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x97, 0x0, 0x55, 0x55, 0x58, 0x60, 0x0, 0xc0,
- 0x1, 0x10, 0x0, 0x0, 0x0, 0x3, 0xba, 0x69,
- 0x0, 0x0, 0x1, 0x0, 0x8, 0x1c, 0x0, 0xc,
- 0x55, 0x5d, 0x0, 0x3, 0xc, 0x0, 0xb, 0x0,
- 0xb, 0x0, 0x3, 0x3d, 0x39, 0x2b, 0x0, 0xb,
- 0x0, 0x3, 0x2c, 0x22, 0x1c, 0x55, 0x5b, 0x0,
- 0x0, 0xd, 0x10, 0x6, 0x0, 0x34, 0x0, 0x0,
- 0x29, 0x83, 0x8, 0x0, 0xa5, 0x0, 0x0, 0x73,
- 0x1b, 0x7, 0x50, 0xa0, 0x0, 0x0, 0x90, 0x2,
- 0x3, 0x21, 0x50, 0x30, 0x6, 0x10, 0x5, 0x55,
- 0x56, 0x55, 0x91, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+77F3 "石" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x30, 0x6,
- 0x55, 0x59, 0xa5, 0x55, 0x55, 0x50, 0x0, 0x0,
- 0xc, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4a,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc1, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x7, 0xd5, 0x55, 0x55,
- 0xc3, 0x0, 0x0, 0x48, 0xc0, 0x0, 0x0, 0xc0,
- 0x0, 0x2, 0x70, 0xc0, 0x0, 0x0, 0xc0, 0x0,
- 0x24, 0x0, 0xc0, 0x0, 0x0, 0xc0, 0x0, 0x0,
- 0x0, 0xc0, 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0,
- 0xc5, 0x55, 0x55, 0xd0, 0x0, 0x0, 0x0, 0xc0,
- 0x0, 0x0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+7802 "砂" */
- 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0,
- 0x0, 0x4, 0x0, 0xd, 0x0, 0x0, 0x7, 0x79,
- 0x67, 0x0, 0xb, 0x0, 0x0, 0x0, 0x74, 0x0,
- 0x27, 0xb, 0x22, 0x0, 0x0, 0xa0, 0x0, 0x68,
- 0xb, 0x9, 0x60, 0x0, 0xb0, 0x40, 0xa1, 0xc,
- 0x1, 0xe0, 0x5, 0xe5, 0xc3, 0x80, 0xc, 0x0,
- 0x20, 0x7, 0xb0, 0xa6, 0x10, 0xc, 0xa, 0x20,
- 0x21, 0xb0, 0xa2, 0x0, 0x8, 0x6c, 0x10, 0x0,
- 0xb0, 0xa0, 0x0, 0x4, 0xb0, 0x0, 0x0, 0xc5,
- 0xc1, 0x0, 0x5a, 0x0, 0x0, 0x0, 0xb0, 0x60,
- 0x18, 0x60, 0x0, 0x0, 0x0, 0x30, 0x25, 0x60,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+7814 "研" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x12, 0x56, 0x55, 0x58, 0x70, 0x6, 0x78,
- 0x65, 0x9, 0x20, 0xb0, 0x0, 0x0, 0x73, 0x0,
- 0x9, 0x20, 0xb0, 0x0, 0x0, 0xa0, 0x0, 0x9,
- 0x20, 0xb0, 0x0, 0x0, 0xe5, 0xa3, 0x9, 0x20,
- 0xb0, 0x20, 0x6, 0xe0, 0x94, 0x6b, 0x65, 0xc6,
- 0x90, 0x7, 0xb0, 0x92, 0xa, 0x10, 0xb0, 0x0,
- 0x20, 0xb0, 0x92, 0xb, 0x0, 0xb0, 0x0, 0x0,
- 0xb0, 0x92, 0x1b, 0x0, 0xb0, 0x0, 0x0, 0xc5,
- 0xb2, 0x74, 0x0, 0xb0, 0x0, 0x0, 0x70, 0x12,
- 0x70, 0x0, 0xc0, 0x0, 0x0, 0x0, 0x26, 0x0,
- 0x0, 0xb1, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+7834 "破" */
- 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x6, 0x58,
- 0x86, 0x30, 0xb, 0x0, 0x40, 0x0, 0x38, 0x0,
- 0xa5, 0x5c, 0x58, 0xa0, 0x0, 0x74, 0x0, 0xa0,
- 0xb, 0x3, 0x0, 0x0, 0xb1, 0x50, 0xa0, 0xb,
- 0x0, 0x0, 0x3, 0xd3, 0xc1, 0xa5, 0x6a, 0x5c,
- 0x10, 0x8, 0xb0, 0xb0, 0xb0, 0x50, 0x1a, 0x0,
- 0x22, 0xb0, 0xb0, 0xb0, 0x60, 0x74, 0x0, 0x0,
- 0xb0, 0xb0, 0xa0, 0x17, 0xb0, 0x0, 0x0, 0xc5,
- 0xc5, 0x40, 0xb, 0x80, 0x0, 0x0, 0xb0, 0x68,
- 0x0, 0x85, 0x89, 0x30, 0x0, 0x50, 0x52, 0x56,
- 0x10, 0x5, 0xb2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+78BA "確" */
- 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x3,
- 0x33, 0x74, 0x0, 0xd, 0x30, 0x0, 0x3, 0x75,
- 0x11, 0x46, 0x6c, 0x55, 0xa5, 0x0, 0x91, 0x0,
- 0xc0, 0x95, 0x10, 0x50, 0x0, 0xb0, 0x10, 0x2,
- 0xa0, 0xb0, 0x0, 0x0, 0xd5, 0xc3, 0xb, 0x65,
- 0xa5, 0xa2, 0x5, 0xc0, 0xa0, 0x8c, 0x1, 0x90,
- 0x0, 0x7, 0xa0, 0xa5, 0x2c, 0x56, 0xb5, 0x80,
- 0x22, 0xa0, 0xa0, 0xb, 0x1, 0x90, 0x0, 0x0,
- 0xa0, 0xa0, 0xb, 0x23, 0xa4, 0x60, 0x0, 0xb5,
- 0xb0, 0xc, 0x34, 0xa2, 0x20, 0x0, 0x90, 0x0,
- 0xb, 0x1, 0x90, 0x40, 0x0, 0x0, 0x0, 0xc,
- 0x55, 0x55, 0x52, 0x0, 0x0, 0x0, 0x2, 0x0,
- 0x0, 0x0,
-
- /* U+793A "示" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x15, 0x55, 0x55, 0x55, 0x9b, 0x0, 0x0, 0x1,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x40, 0x6, 0x55, 0x55, 0x68, 0x55,
- 0x55, 0xa3, 0x0, 0x0, 0x0, 0x2a, 0x0, 0x0,
- 0x0, 0x0, 0x1, 0xe2, 0x2a, 0x6, 0x0, 0x0,
- 0x0, 0x8, 0x70, 0x2a, 0x0, 0xa2, 0x0, 0x0,
- 0x3a, 0x0, 0x2a, 0x0, 0x2d, 0x20, 0x1, 0x90,
- 0x0, 0x2a, 0x0, 0x6, 0xb0, 0x6, 0x0, 0x23,
- 0x6a, 0x0, 0x0, 0x60, 0x0, 0x0, 0x6, 0xf6,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0,
- 0x0, 0x0,
-
- /* U+793C "礼" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x8, 0x30, 0x0, 0xd0, 0x0, 0x0, 0x0, 0x2,
- 0xb0, 0x0, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x12,
- 0x20, 0xc0, 0x0, 0x0, 0x2, 0x65, 0x5e, 0x60,
- 0xc0, 0x0, 0x0, 0x0, 0x0, 0x58, 0x0, 0xc0,
- 0x0, 0x0, 0x0, 0x2, 0xd0, 0x0, 0xc0, 0x0,
- 0x0, 0x0, 0x19, 0xd9, 0x40, 0xc0, 0x0, 0x0,
- 0x1, 0x70, 0xc1, 0xc0, 0xc0, 0x0, 0x0, 0x3,
- 0x0, 0xc0, 0x0, 0xc0, 0x0, 0x10, 0x0, 0x0,
- 0xc0, 0x0, 0xc0, 0x0, 0x50, 0x0, 0x0, 0xc0,
- 0x0, 0xc0, 0x0, 0xa0, 0x0, 0x0, 0xd0, 0x0,
- 0x8b, 0xbb, 0xd2, 0x0, 0x0, 0x20, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+793E "社" */
- 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb, 0x10, 0x0, 0x2b, 0x0, 0x0, 0x0, 0x7,
- 0x30, 0x0, 0x2a, 0x0, 0x0, 0x5, 0x55, 0x78,
- 0x0, 0x2a, 0x0, 0x0, 0x1, 0x0, 0xb4, 0x0,
- 0x2a, 0x0, 0x0, 0x0, 0x4, 0x90, 0x55, 0x6b,
- 0x58, 0x90, 0x0, 0xe, 0x70, 0x10, 0x2a, 0x0,
- 0x0, 0x0, 0x9d, 0x3c, 0x0, 0x2a, 0x0, 0x0,
- 0x6, 0x2c, 0x4, 0x0, 0x2a, 0x0, 0x0, 0x11,
- 0xc, 0x0, 0x0, 0x2a, 0x0, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0x2a, 0x0, 0x0, 0x0, 0xc, 0x4,
- 0x55, 0x6b, 0x55, 0xc3, 0x0, 0xc, 0x1, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+7956 "祖" */
- 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x59, 0x0, 0x65, 0x55, 0x5a, 0x0, 0x0, 0xc,
- 0x0, 0xa2, 0x0, 0xc, 0x0, 0x5, 0x55, 0xa1,
- 0xa2, 0x0, 0xc, 0x0, 0x0, 0x2, 0xa0, 0x92,
- 0x0, 0xc, 0x0, 0x0, 0xa, 0x20, 0x96, 0x55,
- 0x5c, 0x0, 0x0, 0x4d, 0x60, 0x92, 0x0, 0xc,
- 0x0, 0x0, 0x9b, 0x78, 0x92, 0x0, 0xc, 0x0,
- 0x6, 0xb, 0x4, 0x96, 0x55, 0x5c, 0x0, 0x0,
- 0xb, 0x0, 0x92, 0x0, 0xc, 0x0, 0x0, 0xb,
- 0x0, 0x92, 0x0, 0xc, 0x0, 0x0, 0xb, 0x0,
- 0x92, 0x0, 0xc, 0x52, 0x0, 0xc, 0x26, 0x55,
- 0x55, 0x55, 0x54, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+795D "祝" */
- 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x2a, 0x0, 0x20, 0x0, 0x4, 0x0, 0x0, 0xa,
- 0x10, 0xb5, 0x55, 0x5d, 0x0, 0x5, 0x55, 0x93,
- 0xb0, 0x0, 0xb, 0x0, 0x1, 0x0, 0xc0, 0xb0,
- 0x0, 0xb, 0x0, 0x0, 0x7, 0x40, 0xb0, 0x0,
- 0xb, 0x0, 0x0, 0x2e, 0x30, 0xb6, 0x89, 0x5c,
- 0x0, 0x0, 0x9b, 0x95, 0x14, 0x6b, 0x1, 0x0,
- 0x6, 0x1b, 0x15, 0x5, 0x4b, 0x0, 0x0, 0x21,
- 0xb, 0x0, 0x8, 0x1b, 0x0, 0x0, 0x0, 0xb,
- 0x0, 0xa, 0xb, 0x0, 0x50, 0x0, 0xc, 0x0,
- 0x82, 0xb, 0x0, 0x80, 0x0, 0xc, 0x6, 0x20,
- 0x7, 0xa9, 0xd2, 0x0, 0x4, 0x30, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+795E "神" */
- 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0,
- 0x29, 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0xb, 0x0, 0x10, 0x5, 0x55, 0x92,
- 0xb5, 0x5c, 0x55, 0xd0, 0x1, 0x0, 0xb0, 0xb0,
- 0xb, 0x0, 0xb0, 0x0, 0x7, 0x40, 0xb5, 0x5c,
- 0x55, 0xb0, 0x0, 0x2d, 0x60, 0xb0, 0xb, 0x0,
- 0xb0, 0x0, 0x9b, 0x69, 0xb0, 0xb, 0x0, 0xb0,
- 0x6, 0xb, 0x3, 0xb5, 0x5c, 0x55, 0xb0, 0x10,
- 0xb, 0x0, 0x50, 0xb, 0x0, 0x20, 0x0, 0xb,
- 0x0, 0x0, 0xb, 0x0, 0x0, 0x0, 0xb, 0x0,
- 0x0, 0xc, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0,
- 0xc, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x3,
- 0x0, 0x0,
-
- /* U+796D "祭" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x5, 0x90, 0x11, 0x30, 0x3, 0x0, 0x0, 0xb,
- 0x55, 0xc5, 0x95, 0x5d, 0x30, 0x0, 0x57, 0x92,
- 0xc0, 0x71, 0x71, 0x0, 0x1, 0x93, 0x4a, 0x40,
- 0x1b, 0x20, 0x0, 0x5, 0xb, 0x49, 0x0, 0x7,
- 0x70, 0x0, 0x0, 0x2, 0x96, 0x55, 0x68, 0x8b,
- 0x30, 0x0, 0x37, 0x0, 0x0, 0x0, 0x5, 0xa2,
- 0x15, 0x56, 0x55, 0x56, 0x55, 0x87, 0x0, 0x0,
- 0x0, 0x55, 0xb, 0x13, 0x0, 0x0, 0x0, 0x3,
- 0xc3, 0xb, 0x3, 0xa4, 0x0, 0x0, 0x49, 0x0,
- 0xb, 0x0, 0x1d, 0x30, 0x2, 0x30, 0x5, 0xb9,
- 0x0, 0x1, 0x10, 0x0, 0x0, 0x0, 0x31, 0x0,
- 0x0, 0x0,
-
- /* U+7981 "禁" */
- 0x0, 0x0, 0x40, 0x0, 0x3, 0x0, 0x0, 0x0,
- 0x0, 0xc0, 0x0, 0xb, 0x10, 0x0, 0x4, 0x55,
- 0xc5, 0xa2, 0x5d, 0x56, 0xa0, 0x0, 0xb, 0xc2,
- 0x0, 0x5f, 0x50, 0x0, 0x0, 0x56, 0xb9, 0x50,
- 0x9b, 0x46, 0x0, 0x2, 0x80, 0xb1, 0x27, 0x1b,
- 0x8, 0xb1, 0x4, 0x0, 0x80, 0x21, 0x7, 0x20,
- 0x20, 0x0, 0x6, 0x55, 0x55, 0x55, 0x92, 0x0,
- 0x5, 0x55, 0x55, 0x55, 0x55, 0x55, 0xb1, 0x1,
- 0x0, 0x42, 0xc, 0x0, 0x0, 0x0, 0x0, 0x3,
- 0xd4, 0xc, 0x7, 0x60, 0x0, 0x0, 0x48, 0x10,
- 0xc, 0x0, 0x8a, 0x0, 0x2, 0x30, 0x6, 0xd9,
- 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0,
- 0x0, 0x0,
-
- /* U+79C0 "秀" */
- 0x0, 0x0, 0x0, 0x0, 0x1, 0x50, 0x0, 0x0,
- 0x4, 0x56, 0x7a, 0x89, 0x72, 0x0, 0x0, 0x0,
- 0x0, 0xa, 0x0, 0x0, 0x10, 0x4, 0x65, 0x55,
- 0x8c, 0x65, 0x56, 0xb1, 0x0, 0x0, 0xb, 0x5a,
- 0x42, 0x0, 0x0, 0x0, 0x0, 0xa4, 0x1a, 0x8,
- 0x60, 0x0, 0x0, 0x29, 0x20, 0x15, 0x2, 0x6d,
- 0x72, 0x4, 0x42, 0x6b, 0x65, 0x8a, 0x1, 0x60,
- 0x0, 0x0, 0xc, 0x0, 0xa2, 0x4, 0x0, 0x0,
- 0x0, 0x1b, 0x0, 0x85, 0x6c, 0x0, 0x0, 0x0,
- 0x93, 0x0, 0x0, 0x47, 0x0, 0x0, 0x6, 0x60,
- 0x0, 0x10, 0x93, 0x0, 0x0, 0x64, 0x0, 0x0,
- 0x4d, 0xb0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1,
- 0x0, 0x0,
-
- /* U+79C1 "私" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x4a, 0xd1, 0x5, 0x10, 0x0, 0x2, 0x46,
- 0xd1, 0x0, 0xb, 0x50, 0x0, 0x0, 0x0, 0xc0,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0xc0, 0x52,
- 0x2a, 0x0, 0x0, 0x6, 0x55, 0xe5, 0x53, 0x65,
- 0x0, 0x0, 0x0, 0x5, 0xf4, 0x0, 0x90, 0x0,
- 0x0, 0x0, 0xb, 0xd6, 0xb0, 0x90, 0x10, 0x0,
- 0x0, 0x83, 0xc0, 0x93, 0x50, 0x35, 0x0, 0x5,
- 0x40, 0xc0, 0x7, 0x0, 0xb, 0x10, 0x13, 0x0,
- 0xc0, 0x18, 0x0, 0x7, 0xb0, 0x0, 0x0, 0xd0,
- 0x8e, 0xa8, 0x64, 0xf0, 0x0, 0x0, 0xe0, 0x12,
- 0x0, 0x0, 0x50, 0x0, 0x0, 0x30, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+79CB "秋" */
- 0x0, 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0,
- 0x3, 0xaa, 0x0, 0xb4, 0x0, 0x0, 0x3, 0x5b,
- 0x30, 0x0, 0xb1, 0x0, 0x0, 0x0, 0x9, 0x20,
- 0x1, 0xb1, 0x9, 0x10, 0x15, 0x5b, 0x7b, 0x35,
- 0xc2, 0x6a, 0x10, 0x1, 0xe, 0x20, 0x84, 0xd6,
- 0x70, 0x0, 0x0, 0x4f, 0x50, 0xa0, 0xc7, 0x0,
- 0x0, 0x0, 0x9b, 0x7a, 0x0, 0xc7, 0x0, 0x0,
- 0x3, 0x69, 0x29, 0x3, 0x97, 0x10, 0x0, 0x6,
- 0x9, 0x20, 0x9, 0x42, 0x90, 0x0, 0x20, 0x9,
- 0x20, 0x1b, 0x0, 0xb3, 0x0, 0x0, 0xa, 0x20,
- 0x91, 0x0, 0x2e, 0x40, 0x0, 0xa, 0x46, 0x0,
- 0x0, 0x6, 0x70, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+79CD "种" */
- 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0,
- 0x4, 0xb8, 0x0, 0xd, 0x0, 0x0, 0x4, 0x5c,
- 0x10, 0x0, 0xb, 0x0, 0x0, 0x0, 0xb, 0x0,
- 0x10, 0xb, 0x0, 0x40, 0x16, 0x5c, 0x69, 0xa5,
- 0x5c, 0x56, 0xb0, 0x0, 0xe, 0x0, 0xa1, 0xb,
- 0x2, 0x90, 0x0, 0x3f, 0x61, 0xa1, 0xb, 0x2,
- 0x90, 0x0, 0xad, 0x3c, 0xa1, 0xb, 0x2, 0x90,
- 0x3, 0x7b, 0x2, 0xa5, 0x5c, 0x56, 0x90, 0x8,
- 0xb, 0x0, 0x20, 0xb, 0x0, 0x0, 0x30, 0xb,
- 0x0, 0x0, 0xb, 0x0, 0x0, 0x0, 0xb, 0x0,
- 0x0, 0xc, 0x0, 0x0, 0x0, 0xb, 0x0, 0x0,
- 0xc, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x3,
- 0x0, 0x0,
-
- /* U+79D1 "科" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0,
- 0x2, 0x8d, 0x0, 0x0, 0xc2, 0x0, 0x4, 0x5b,
- 0x40, 0x3, 0x10, 0xb0, 0x0, 0x0, 0x8, 0x20,
- 0x1, 0xd0, 0xb0, 0x0, 0x0, 0x8, 0x25, 0x10,
- 0x40, 0xb0, 0x0, 0x26, 0x5d, 0x65, 0x31, 0x0,
- 0xb0, 0x0, 0x0, 0x1f, 0x60, 0x5, 0x70, 0xb0,
- 0x0, 0x0, 0x8c, 0x6b, 0x0, 0x90, 0xb0, 0x30,
- 0x2, 0x88, 0x26, 0x0, 0x3, 0xd6, 0x70, 0x7,
- 0x8, 0x23, 0x65, 0x41, 0xb0, 0x0, 0x30, 0x9,
- 0x20, 0x0, 0x0, 0xb0, 0x0, 0x0, 0x9, 0x20,
- 0x0, 0x0, 0xb0, 0x0, 0x0, 0x9, 0x30, 0x0,
- 0x0, 0xc0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0,
- 0x40, 0x0,
-
- /* U+79D8 "秘" */
- 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x38, 0xb7, 0x0, 0x70, 0x6, 0x0, 0x4, 0x2b,
- 0x0, 0x0, 0x4b, 0x1e, 0x10, 0x0, 0xb, 0x0,
- 0x6, 0x44, 0x49, 0x0, 0x14, 0x4c, 0x4a, 0x9,
- 0x20, 0x95, 0x0, 0x2, 0x1f, 0x0, 0x9, 0x20,
- 0xd1, 0x0, 0x0, 0x5f, 0x82, 0x49, 0x23, 0xb5,
- 0x20, 0x0, 0xac, 0x29, 0x99, 0x2a, 0x50, 0xd0,
- 0x4, 0x5b, 0x6, 0x99, 0x5c, 0x0, 0xb2, 0x7,
- 0xb, 0x2, 0x19, 0xe2, 0x1, 0x10, 0x20, 0xb,
- 0x0, 0xb, 0x60, 0x5, 0x0, 0x0, 0xb, 0x0,
- 0x8c, 0x20, 0x9, 0x10, 0x0, 0xb, 0x26, 0x15,
- 0xca, 0xad, 0x30, 0x0, 0x5, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+79FB "移" */
- 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x3, 0xa8, 0x0, 0xb4, 0x0, 0x0, 0x4, 0x6d,
- 0x20, 0x4, 0xb5, 0x59, 0x30, 0x0, 0xb, 0x0,
- 0x19, 0x50, 0x2b, 0x0, 0x0, 0xb, 0x5, 0x30,
- 0xa2, 0xb1, 0x0, 0x26, 0x5f, 0x55, 0x10, 0x2a,
- 0x10, 0x0, 0x0, 0x3f, 0x20, 0x4, 0x78, 0x50,
- 0x0, 0x0, 0x9e, 0x77, 0x42, 0x4b, 0x10, 0x30,
- 0x1, 0x8c, 0x7, 0x3, 0xa5, 0x59, 0xb0, 0x7,
- 0xc, 0x0, 0x48, 0x70, 0x1c, 0x10, 0x22, 0xc,
- 0x1, 0x20, 0x92, 0xb2, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0x4a, 0x20, 0x0, 0x0, 0xc, 0x0, 0x57,
- 0x50, 0x0, 0x0, 0x0, 0x3, 0x13, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+7A0B "程" */
- 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x37, 0xb9, 0x18, 0x55, 0x59, 0x30, 0x4, 0x3b,
- 0x0, 0x1a, 0x0, 0xa, 0x0, 0x0, 0xb, 0x0,
- 0xa, 0x0, 0xa, 0x0, 0x15, 0x5c, 0x5a, 0x2c,
- 0x55, 0x5c, 0x0, 0x1, 0x1e, 0x0, 0x17, 0x0,
- 0x5, 0x0, 0x0, 0x5f, 0x71, 0x35, 0x55, 0x57,
- 0x70, 0x0, 0x9c, 0x2b, 0x10, 0xb, 0x0, 0x0,
- 0x1, 0x7b, 0x1, 0x0, 0xb, 0x0, 0x0, 0x7,
- 0xb, 0x0, 0x16, 0x5c, 0x59, 0x30, 0x23, 0xb,
- 0x0, 0x0, 0xb, 0x0, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0xb, 0x0, 0x30, 0x0, 0xc, 0x3, 0x65,
- 0x57, 0x55, 0x80, 0x0, 0x2, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+7A2E "種" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0,
- 0x2, 0x95, 0x14, 0x6a, 0xa8, 0x0, 0x3, 0x5c,
- 0x20, 0x0, 0xb, 0x0, 0x10, 0x0, 0xb, 0x1,
- 0x65, 0x5c, 0x56, 0x70, 0x4, 0x4c, 0x67, 0x20,
- 0xb, 0x2, 0x0, 0x2, 0x4d, 0x0, 0xa5, 0x5c,
- 0x5c, 0x10, 0x0, 0x7c, 0x80, 0xa5, 0x5c, 0x5c,
- 0x0, 0x0, 0xab, 0x65, 0xa0, 0xb, 0xb, 0x0,
- 0x5, 0x3b, 0x1, 0xa5, 0x5c, 0x5c, 0x0, 0x5,
- 0xb, 0x0, 0x40, 0xb, 0x4, 0x0, 0x10, 0xb,
- 0x0, 0x65, 0x5c, 0x59, 0x40, 0x0, 0xc, 0x0,
- 0x0, 0xb, 0x0, 0x0, 0x0, 0xc, 0x3, 0x55,
- 0x5c, 0x57, 0xd0, 0x0, 0x3, 0x1, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+7A4D "積" */
- 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
- 0x27, 0xd3, 0x0, 0xc, 0x0, 0x40, 0x3, 0x3b,
- 0x0, 0x65, 0x5c, 0x55, 0x61, 0x0, 0xb, 0x0,
- 0x27, 0x5c, 0x57, 0x50, 0x6, 0x6d, 0x85, 0x11,
- 0x1b, 0x11, 0x62, 0x0, 0x5d, 0x31, 0x63, 0x33,
- 0x33, 0x52, 0x0, 0xab, 0x83, 0x96, 0x55, 0x56,
- 0xb0, 0x1, 0x8b, 0x23, 0x86, 0x55, 0x56, 0x90,
- 0x7, 0x1b, 0x0, 0x81, 0x0, 0x2, 0x90, 0x14,
- 0xb, 0x0, 0x86, 0x55, 0x56, 0x90, 0x0, 0xb,
- 0x0, 0x96, 0x55, 0x56, 0x90, 0x0, 0xc, 0x0,
- 0x2a, 0x60, 0x37, 0x10, 0x0, 0xb, 0x3, 0x73,
- 0x0, 0x2, 0xc0, 0x0, 0x0, 0x1, 0x0, 0x0,
- 0x0, 0x20,
-
- /* U+7A76 "究" */
- 0x0, 0x0, 0x1, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb4, 0x0, 0x0, 0x0, 0x0, 0x75,
- 0x55, 0x87, 0x55, 0x5c, 0x10, 0x3, 0x90, 0x94,
- 0x1, 0x50, 0x36, 0x0, 0x3, 0x29, 0x75, 0x10,
- 0x2b, 0xa0, 0x0, 0x2, 0x61, 0xb, 0x10, 0x0,
- 0x91, 0x0, 0x0, 0x46, 0x6d, 0x66, 0x94, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x0, 0x92, 0x0, 0x0,
- 0x0, 0x0, 0x38, 0x0, 0x92, 0x0, 0x0, 0x0,
- 0x0, 0x93, 0x0, 0xa1, 0x0, 0x0, 0x0, 0x2,
- 0xb0, 0x0, 0xa1, 0x0, 0x50, 0x0, 0xb, 0x20,
- 0x0, 0xa1, 0x1, 0x90, 0x1, 0x82, 0x0, 0x0,
- 0x5b, 0xac, 0x90, 0x4, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+7A7A "空" */
- 0x0, 0x0, 0x1, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa6, 0x0, 0x0, 0x0, 0x0, 0x10,
- 0x0, 0x16, 0x0, 0x2, 0x0, 0x4, 0x95, 0x56,
- 0x55, 0x55, 0x5c, 0x80, 0xd, 0x30, 0xa9, 0x0,
- 0x57, 0x25, 0x0, 0x0, 0x9, 0x70, 0x0, 0x2,
- 0xc8, 0x0, 0x2, 0x72, 0x0, 0x0, 0x0, 0x1b,
- 0x10, 0x3, 0x17, 0x55, 0x85, 0x57, 0x80, 0x0,
- 0x0, 0x0, 0x0, 0xa2, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xa2, 0x0, 0x0, 0x0, 0x5, 0x55, 0x55, 0xc7,
- 0x55, 0x5d, 0x60, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+7A93 "窓" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x4c, 0x0, 0x0, 0x0, 0x0, 0x75,
- 0x55, 0x5c, 0x55, 0x56, 0xa0, 0x3, 0x90, 0x18,
- 0x0, 0x54, 0x5, 0x50, 0x6, 0x25, 0xa4, 0x63,
- 0x4, 0xd7, 0x0, 0x0, 0x52, 0x3, 0xc3, 0x10,
- 0x4, 0x0, 0x0, 0x0, 0x58, 0x0, 0xa, 0x10,
- 0x0, 0x0, 0x8, 0xda, 0x87, 0x68, 0xb0, 0x0,
- 0x0, 0x2, 0x30, 0x50, 0x0, 0x80, 0x0, 0x0,
- 0x10, 0xc1, 0x2c, 0x0, 0x5, 0x0, 0x0, 0x70,
- 0xc0, 0x7, 0x0, 0x46, 0x70, 0x7, 0x90, 0xc0,
- 0x0, 0x1, 0x70, 0xb0, 0x3, 0x0, 0xbb, 0xbb,
- 0xbc, 0xb0, 0x0,
-
- /* U+7ACB "立" */
- 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc3, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x68, 0x0, 0x1, 0x0, 0x2, 0x65, 0x55,
- 0x55, 0x55, 0x5c, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x5, 0x0, 0x0, 0x0, 0x1, 0x40, 0x0, 0xe,
- 0x40, 0x0, 0x0, 0x0, 0x90, 0x0, 0x1c, 0x0,
- 0x0, 0x0, 0x0, 0x67, 0x0, 0x47, 0x0, 0x0,
- 0x0, 0x0, 0x3d, 0x0, 0x91, 0x0, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0x90, 0x0, 0x0, 0x0, 0x0,
- 0x2, 0x2, 0x40, 0x0, 0x0, 0x15, 0x55, 0x55,
- 0x59, 0x55, 0x57, 0xd1, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+7AD9 "站" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x43, 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0xd,
- 0x0, 0x0, 0xb, 0x0, 0x0, 0x0, 0x7, 0x0,
- 0x30, 0xb, 0x1, 0x40, 0x6, 0x55, 0x56, 0x70,
- 0xc, 0x55, 0x50, 0x0, 0x10, 0x28, 0x0, 0xb,
- 0x0, 0x0, 0x0, 0x70, 0x57, 0x0, 0xb, 0x0,
- 0x0, 0x0, 0xb0, 0x72, 0xa, 0x5a, 0x5b, 0x30,
- 0x0, 0x94, 0x80, 0xb, 0x0, 0xb, 0x0, 0x0,
- 0x51, 0x60, 0xb, 0x0, 0xb, 0x0, 0x0, 0x36,
- 0x95, 0x2b, 0x0, 0xb, 0x0, 0xc, 0x83, 0x0,
- 0xc, 0x55, 0x5c, 0x0, 0x0, 0x0, 0x0, 0xb,
- 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+7AE5 "童" */
- 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x7, 0x40, 0x14, 0x0, 0x0, 0x46, 0x97,
- 0x55, 0xc6, 0x50, 0x0, 0x0, 0x1, 0xb0, 0x26,
- 0x0, 0x0, 0x5, 0x65, 0x56, 0x57, 0x55, 0x87,
- 0x0, 0x0, 0x75, 0x55, 0x55, 0x75, 0x0, 0x0,
- 0xb, 0x0, 0x91, 0x5, 0x50, 0x0, 0x0, 0xb5,
- 0x5b, 0x65, 0x95, 0x0, 0x0, 0xb, 0x55, 0xb6,
- 0x59, 0x60, 0x0, 0x0, 0x60, 0x9, 0x10, 0x33,
- 0x0, 0x0, 0x55, 0x55, 0xb6, 0x55, 0xb4, 0x0,
- 0x0, 0x0, 0x9, 0x10, 0x0, 0x20, 0x6, 0x55,
- 0x55, 0x75, 0x55, 0x58, 0x50,
-
- /* U+7AEF "端" */
- 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x71, 0x0, 0x50, 0x1c, 0x2, 0x10, 0x0, 0x48,
- 0x0, 0xb0, 0xa, 0x4, 0x70, 0x0, 0x1, 0x50,
- 0xa0, 0xa, 0x4, 0x60, 0x5, 0x44, 0x62, 0x85,
- 0x55, 0x57, 0x40, 0x3, 0x10, 0xd3, 0x55, 0x55,
- 0x55, 0x92, 0x1, 0x72, 0x80, 0x10, 0x92, 0x0,
- 0x0, 0x0, 0xb5, 0x30, 0x85, 0xa5, 0x55, 0x90,
- 0x0, 0x66, 0x0, 0xb0, 0xa0, 0xa0, 0xb0, 0x0,
- 0x8, 0x53, 0xb0, 0xa0, 0xa0, 0xb0, 0xb, 0xa3,
- 0x0, 0xb0, 0xa0, 0xa0, 0xb0, 0x1, 0x0, 0x0,
- 0xb0, 0xa0, 0x90, 0xb0, 0x0, 0x0, 0x0, 0xb0,
- 0x40, 0x29, 0xa0, 0x0, 0x0, 0x0, 0x10, 0x0,
- 0x2, 0x10,
-
- /* U+7B11 "笑" */
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xd, 0x30, 0x0, 0x5a, 0x0, 0x0, 0x0, 0x4c,
- 0x55, 0xb3, 0xc6, 0x57, 0xb0, 0x0, 0xa0, 0x82,
- 0x5, 0x50, 0xa1, 0x0, 0x6, 0x20, 0x47, 0x15,
- 0x0, 0x73, 0x0, 0x1, 0x0, 0x13, 0x67, 0xad,
- 0xc0, 0x0, 0x0, 0x24, 0x43, 0xb3, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xb0, 0x0, 0x2, 0x10,
- 0x6, 0x55, 0x55, 0xd7, 0x55, 0x58, 0x60, 0x0,
- 0x0, 0x4, 0x83, 0x40, 0x0, 0x0, 0x0, 0x0,
- 0xb, 0x10, 0x83, 0x0, 0x0, 0x0, 0x1, 0x92,
- 0x0, 0xa, 0x92, 0x0, 0x2, 0x56, 0x0, 0x0,
- 0x0, 0x6e, 0xa0, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+7B26 "符" */
- 0x0, 0x2, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0,
- 0xd, 0x30, 0x0, 0x69, 0x0, 0x0, 0x0, 0x6a,
- 0x65, 0x92, 0xb5, 0x75, 0x90, 0x1, 0x90, 0x1a,
- 0x5, 0x30, 0x83, 0x0, 0x6, 0x0, 0x54, 0x25,
- 0x0, 0x32, 0x0, 0x0, 0x2, 0xd1, 0x0, 0x0,
- 0xd0, 0x0, 0x0, 0xb, 0x25, 0x55, 0x55, 0xc5,
- 0xa2, 0x0, 0x7d, 0x10, 0x20, 0x0, 0xb0, 0x0,
- 0x6, 0x3b, 0x0, 0x75, 0x0, 0xb0, 0x0, 0x11,
- 0xb, 0x0, 0xd, 0x0, 0xb0, 0x0, 0x0, 0xb,
- 0x0, 0x1, 0x0, 0xb0, 0x0, 0x0, 0xb, 0x0,
- 0x0, 0x0, 0xb0, 0x0, 0x0, 0xc, 0x0, 0x0,
- 0x6c, 0x90, 0x0, 0x0, 0x2, 0x0, 0x0, 0x3,
- 0x0, 0x0,
-
- /* U+7B2C "第" */
- 0x0, 0x2, 0x0, 0x0, 0x11, 0x0, 0x0, 0x0,
- 0xc, 0x50, 0x10, 0x8a, 0x0, 0x10, 0x0, 0x6a,
- 0x85, 0x94, 0xc7, 0x65, 0x91, 0x3, 0x70, 0x66,
- 0x8, 0x0, 0xb0, 0x0, 0x2, 0x25, 0x67, 0x65,
- 0x55, 0x89, 0x0, 0x0, 0x1, 0x0, 0xb, 0x0,
- 0xb, 0x0, 0x0, 0x9, 0x55, 0x5c, 0x55, 0x5b,
- 0x0, 0x0, 0x1b, 0x0, 0xb, 0x0, 0x5, 0x0,
- 0x0, 0x7a, 0x55, 0x5c, 0x55, 0x55, 0x90, 0x0,
- 0x21, 0x5, 0x9b, 0x0, 0x1, 0xb0, 0x0, 0x0,
- 0x59, 0xb, 0x0, 0x4, 0x80, 0x0, 0x18, 0x50,
- 0xb, 0x2, 0x9e, 0x30, 0x15, 0x50, 0x0, 0xb,
- 0x0, 0x12, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0,
- 0x0, 0x0,
-
- /* U+7B46 "筆" */
- 0x0, 0x4, 0x10, 0x0, 0x22, 0x0, 0x0, 0x0,
- 0xd, 0x40, 0x0, 0x78, 0x0, 0x10, 0x0, 0x5b,
- 0x65, 0x95, 0xc5, 0x76, 0xa0, 0x0, 0xa0, 0x2b,
- 0x6, 0x30, 0x69, 0x0, 0x7, 0x10, 0x8, 0x39,
- 0x0, 0x1a, 0x0, 0x1, 0x4, 0x65, 0x6b, 0x55,
- 0xd2, 0x0, 0x1, 0x55, 0x55, 0x6b, 0x55, 0xd9,
- 0x80, 0x0, 0x10, 0x0, 0x29, 0x0, 0xc0, 0x0,
- 0x0, 0x4, 0x65, 0x6b, 0x55, 0xa0, 0x0, 0x0,
- 0x2, 0x22, 0x4a, 0x23, 0x80, 0x0, 0x0, 0x3,
- 0x33, 0x5a, 0x33, 0x35, 0x10, 0x3, 0x65, 0x55,
- 0x6b, 0x55, 0x57, 0x40, 0x0, 0x0, 0x0, 0x2a,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x11, 0x0,
- 0x0, 0x0,
-
- /* U+7B49 "等" */
- 0x0, 0x3, 0x0, 0x0, 0x12, 0x0, 0x0, 0x0,
- 0xe, 0x50, 0x10, 0x88, 0x0, 0x10, 0x0, 0x5b,
- 0x75, 0x85, 0xb7, 0x55, 0x80, 0x1, 0xa0, 0x84,
- 0x5, 0x10, 0xb0, 0x0, 0x6, 0x0, 0x35, 0xc,
- 0x0, 0x70, 0x0, 0x0, 0x6, 0x55, 0x5d, 0x55,
- 0x78, 0x0, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0,
- 0x30, 0x6, 0x55, 0x55, 0x57, 0x56, 0x55, 0x70,
- 0x0, 0x0, 0x0, 0x0, 0xb, 0x21, 0x30, 0x1,
- 0x75, 0x75, 0x55, 0x5c, 0x55, 0x60, 0x0, 0x0,
- 0x39, 0x0, 0xb, 0x10, 0x0, 0x0, 0x0, 0xb,
- 0x10, 0xb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4,
- 0xae, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x12,
- 0x0, 0x0,
-
- /* U+7B54 "答" */
- 0x0, 0x2, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0,
- 0xf, 0x20, 0x1, 0xe0, 0x0, 0x0, 0x0, 0x7b,
- 0x55, 0xa7, 0x86, 0x59, 0x30, 0x1, 0xa0, 0xa0,
- 0x16, 0x6, 0x60, 0x0, 0x7, 0x10, 0x85, 0xe1,
- 0x0, 0xa0, 0x0, 0x0, 0x0, 0x4b, 0x17, 0x20,
- 0x0, 0x0, 0x0, 0x6, 0x90, 0x0, 0x79, 0x30,
- 0x0, 0x1, 0x85, 0x65, 0x55, 0xa4, 0xae, 0x80,
- 0x24, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb, 0x55, 0x55, 0x5d, 0x30, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0xc, 0x0, 0x0, 0x0, 0xc, 0x55, 0x55,
- 0x5d, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x1,
- 0x0, 0x0,
-
- /* U+7B56 "策" */
- 0x0, 0x1, 0x10, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x9, 0x70, 0x0, 0x93, 0x0, 0x0, 0x0, 0x3c,
- 0x75, 0x86, 0xa7, 0x58, 0x70, 0x0, 0x90, 0x47,
- 0x5, 0x8, 0x40, 0x0, 0x4, 0x0, 0x4, 0xa,
- 0x2, 0x22, 0x30, 0x4, 0x55, 0x55, 0x5c, 0x55,
- 0x58, 0x80, 0x0, 0x7, 0x55, 0x5c, 0x55, 0x83,
- 0x0, 0x0, 0xb, 0x0, 0xb, 0x0, 0xa1, 0x0,
- 0x0, 0xb, 0x0, 0x7d, 0x11, 0xb0, 0x0, 0x0,
- 0xb, 0x6, 0x8b, 0x87, 0xc0, 0x0, 0x0, 0x0,
- 0x86, 0xb, 0x1a, 0x30, 0x0, 0x0, 0x38, 0x20,
- 0xb, 0x0, 0xac, 0x83, 0x15, 0x30, 0x0, 0xb,
- 0x0, 0x3, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+7B97 "算" */
- 0x0, 0x4, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0,
- 0xd, 0x10, 0x30, 0xb2, 0x0, 0x10, 0x0, 0x77,
- 0x96, 0x75, 0x85, 0x96, 0x60, 0x2, 0x71, 0x37,
- 0x5, 0x0, 0x85, 0x0, 0x5, 0xb, 0x55, 0x55,
- 0x57, 0xb0, 0x0, 0x0, 0xb, 0x55, 0x55, 0x57,
- 0x90, 0x0, 0x0, 0xb, 0x0, 0x0, 0x3, 0x90,
- 0x0, 0x0, 0xc, 0x55, 0x55, 0x57, 0x90, 0x0,
- 0x0, 0xc, 0x59, 0x55, 0x97, 0x90, 0x0, 0x0,
- 0x2, 0x2b, 0x0, 0xc0, 0x0, 0x20, 0x16, 0x55,
- 0x8b, 0x55, 0xd5, 0x57, 0x80, 0x0, 0x0, 0xb2,
- 0x0, 0xc0, 0x0, 0x0, 0x0, 0x38, 0x20, 0x0,
- 0xc0, 0x0, 0x0, 0x2, 0x20, 0x0, 0x0, 0x30,
- 0x0, 0x0,
-
- /* U+7BA1 "管" */
- 0x0, 0x3, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0,
- 0x79, 0x0, 0x11, 0xc1, 0x1, 0x0, 0x0, 0xb7,
- 0x66, 0x58, 0x68, 0x57, 0x40, 0x7, 0x10, 0xa0,
- 0x61, 0x6, 0x60, 0x0, 0x3, 0x0, 0x20, 0x92,
- 0x0, 0x12, 0x30, 0x9, 0x55, 0x55, 0x55, 0x55,
- 0x5b, 0x80, 0x29, 0x8, 0x55, 0x55, 0x5c, 0x4,
- 0x0, 0x0, 0xa, 0x0, 0x0, 0xb, 0x0, 0x0,
- 0x0, 0xa, 0x55, 0x55, 0x5b, 0x0, 0x0, 0x0,
- 0xa, 0x0, 0x0, 0x2, 0x10, 0x0, 0x0, 0xa,
- 0x55, 0x55, 0x5a, 0x60, 0x0, 0x0, 0xa, 0x0,
- 0x0, 0x7, 0x30, 0x0, 0x0, 0xb, 0x55, 0x55,
- 0x5a, 0x40, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+7BC0 "節" */
- 0x0, 0x4, 0x0, 0x0, 0x31, 0x0, 0x0, 0x0,
- 0x3c, 0x0, 0x60, 0xb3, 0x3, 0x40, 0x0, 0xa5,
- 0xa8, 0x54, 0xa6, 0xa5, 0x40, 0x4, 0x30, 0xc,
- 0x7, 0x0, 0x5a, 0x0, 0x13, 0x20, 0x0, 0x41,
- 0x20, 0x7, 0x0, 0x0, 0xb5, 0x55, 0xd1, 0xc5,
- 0x5d, 0x0, 0x0, 0xb5, 0x55, 0xb0, 0xb0, 0xb,
- 0x0, 0x0, 0xb0, 0x0, 0xb0, 0xb0, 0xb, 0x0,
- 0x0, 0xb5, 0x55, 0xb0, 0xb0, 0xb, 0x0, 0x0,
- 0xb0, 0x3, 0x10, 0xb0, 0xb, 0x0, 0x0, 0xb0,
- 0x8, 0x50, 0xb2, 0x9a, 0x0, 0x0, 0xc7, 0x74,
- 0xe0, 0xb0, 0x20, 0x0, 0x0, 0x74, 0x0, 0x41,
- 0xb0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10,
- 0x0, 0x0,
-
- /* U+7BC4 "範" */
- 0x0, 0x3, 0x0, 0x0, 0x21, 0x0, 0x0, 0x0,
- 0x4d, 0x10, 0x60, 0xa5, 0x3, 0x40, 0x0, 0xb6,
- 0xa6, 0x55, 0xa6, 0xb6, 0x40, 0x5, 0x40, 0x3d,
- 0x8, 0x0, 0x3d, 0x10, 0x4, 0x11, 0xc4, 0x61,
- 0x20, 0x8, 0x0, 0x2, 0x64, 0xb4, 0x51, 0xc5,
- 0x5c, 0x0, 0x0, 0xb5, 0xc5, 0xc0, 0xa0, 0xa,
- 0x0, 0x0, 0xa0, 0xa0, 0xa0, 0xa0, 0xa, 0x0,
- 0x0, 0xc5, 0xc5, 0xa0, 0xa0, 0xa, 0x0, 0x0,
- 0xc5, 0xc5, 0xb0, 0xa4, 0x7a, 0x0, 0x0, 0x20,
- 0xa0, 0x70, 0xa0, 0x41, 0x20, 0x5, 0x55, 0xc5,
- 0x52, 0xa0, 0x0, 0x50, 0x0, 0x0, 0xb0, 0x0,
- 0xb9, 0x9a, 0xc0, 0x0, 0x0, 0x40, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+7C21 "簡" */
- 0x0, 0x3, 0x0, 0x0, 0x40, 0x0, 0x0, 0x3,
- 0xc0, 0x6, 0x3d, 0x10, 0x43, 0x0, 0xa6, 0xb5,
- 0x5a, 0x6b, 0x75, 0x40, 0x51, 0x6, 0x52, 0x20,
- 0x1c, 0x0, 0x0, 0xb4, 0x4b, 0x27, 0x54, 0x5c,
- 0x10, 0xc, 0x55, 0xc0, 0x86, 0x55, 0xc0, 0x0,
- 0xb0, 0xa, 0x8, 0x20, 0xb, 0x0, 0xc, 0x55,
- 0x90, 0x75, 0x55, 0xc0, 0x0, 0xb0, 0x85, 0x55,
- 0x88, 0xb, 0x0, 0xb, 0x9, 0x55, 0x58, 0x70,
- 0xb0, 0x0, 0xb0, 0x91, 0x0, 0x47, 0xb, 0x0,
- 0xb, 0x9, 0x55, 0x57, 0x50, 0xb0, 0x0, 0xc0,
- 0x0, 0x0, 0x4, 0x8d, 0x0, 0x2, 0x0, 0x0,
- 0x0, 0x1, 0x20,
-
- /* U+7C73 "米" */
- 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0,
- 0x10, 0x0, 0xb5, 0x0, 0x60, 0x0, 0x0, 0x1a,
- 0x10, 0xb1, 0x6, 0xc1, 0x0, 0x0, 0x7, 0xa0,
- 0xb1, 0xb, 0x10, 0x0, 0x0, 0x1, 0x90, 0xb1,
- 0x72, 0x0, 0x0, 0x16, 0x55, 0x56, 0xd8, 0x85,
- 0x5b, 0x70, 0x0, 0x0, 0xb, 0xf7, 0x10, 0x0,
- 0x0, 0x0, 0x0, 0x4a, 0xb2, 0x80, 0x0, 0x0,
- 0x0, 0x1, 0xc1, 0xb1, 0x67, 0x0, 0x0, 0x0,
- 0xb, 0x20, 0xb1, 0xa, 0x80, 0x0, 0x0, 0x91,
- 0x0, 0xb1, 0x0, 0xbd, 0x60, 0x26, 0x0, 0x0,
- 0xb1, 0x0, 0x9, 0x50, 0x0, 0x0, 0x0, 0xb2,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0,
- 0x0, 0x0,
-
- /* U+7CBE "精" */
- 0x0, 0x2, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0,
- 0xd, 0x10, 0x0, 0xc, 0x0, 0x0, 0x6, 0xb,
- 0xb, 0x36, 0x5c, 0x57, 0x60, 0x6, 0x6b, 0x63,
- 0x0, 0xb, 0x3, 0x0, 0x1, 0x3b, 0x31, 0x6,
- 0x5c, 0x56, 0x10, 0x6, 0x5d, 0x57, 0x45, 0x5c,
- 0x55, 0x90, 0x0, 0x5e, 0x10, 0x12, 0x0, 0x2,
- 0x0, 0x0, 0xac, 0xa4, 0xc, 0x55, 0x5d, 0x10,
- 0x1, 0x9b, 0x27, 0xc, 0x55, 0x5c, 0x0, 0x7,
- 0x2b, 0x0, 0xb, 0x0, 0xb, 0x0, 0x14, 0xb,
- 0x0, 0xc, 0x55, 0x5c, 0x0, 0x10, 0xb, 0x0,
- 0xb, 0x0, 0xb, 0x0, 0x0, 0xc, 0x0, 0xb,
- 0x2, 0x8c, 0x0, 0x0, 0x2, 0x0, 0x3, 0x0,
- 0x12, 0x0,
-
- /* U+7CD6 "糖" */
- 0x0, 0x20, 0x0, 0x0, 0x31, 0x0, 0x0, 0x0,
- 0x67, 0x0, 0x0, 0xc, 0x0, 0x10, 0x15, 0x65,
- 0x95, 0xb5, 0x59, 0x57, 0x70, 0xc, 0x66, 0x90,
- 0xb0, 0xc, 0x1, 0x0, 0x5, 0x69, 0x0, 0xb4,
- 0x6c, 0x5d, 0x0, 0x36, 0xa8, 0x95, 0xb1, 0x1b,
- 0xb, 0x50, 0x0, 0xb5, 0x0, 0xa5, 0x4c, 0x5c,
- 0x40, 0x0, 0xea, 0x71, 0xa3, 0x5c, 0x5c, 0x0,
- 0x5, 0xa5, 0xa3, 0x81, 0xb, 0x4, 0x0, 0x7,
- 0x65, 0x6, 0x58, 0x56, 0x5b, 0x10, 0x31, 0x65,
- 0x9, 0xa, 0x0, 0xb, 0x0, 0x0, 0x75, 0x16,
- 0xa, 0x0, 0xb, 0x0, 0x0, 0x75, 0x60, 0xb,
- 0x55, 0x5c, 0x0, 0x0, 0x20, 0x0, 0x2, 0x0,
- 0x0, 0x0,
-
- /* U+7CFB "系" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x42, 0x0, 0x0,
- 0x2, 0x46, 0x79, 0xaa, 0x60, 0x0, 0x24, 0x32,
- 0xb7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x85, 0x0,
- 0x25, 0x0, 0x0, 0x4, 0x94, 0x23, 0x5c, 0x60,
- 0x0, 0x0, 0x9a, 0x65, 0xa7, 0x0, 0x0, 0x0,
- 0x0, 0x6, 0x81, 0x3, 0x60, 0x0, 0x1, 0x8b,
- 0x64, 0x55, 0x59, 0xe1, 0x0, 0x1a, 0x64, 0x2c,
- 0x0, 0x9, 0x20, 0x0, 0x7, 0x70, 0xc1, 0x61,
- 0x0, 0x0, 0x5, 0xb1, 0xc, 0x1, 0xb9, 0x0,
- 0x7, 0x60, 0x21, 0xc0, 0x0, 0xc8, 0x5, 0x10,
- 0x3, 0xca, 0x0, 0x1, 0x50, 0x0, 0x0, 0x1,
- 0x0, 0x0, 0x0,
-
- /* U+7D00 "紀" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xa, 0x30, 0x0, 0x0, 0x5, 0x10, 0x0, 0x38,
- 0x0, 0x36, 0x55, 0x5d, 0x20, 0x0, 0x80, 0x34,
- 0x0, 0x0, 0xc, 0x0, 0xb, 0x65, 0xb3, 0x0,
- 0x0, 0xc, 0x0, 0x6, 0x38, 0x40, 0x7, 0x55,
- 0x5d, 0x0, 0x0, 0x65, 0x26, 0xc, 0x0, 0x6,
- 0x0, 0x8, 0x84, 0x6d, 0x2c, 0x0, 0x0, 0x0,
- 0xb, 0x82, 0x6, 0x1c, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0x16, 0xc, 0x0, 0x0, 0x20, 0x6, 0xb,
- 0xb, 0x2c, 0x0, 0x0, 0x80, 0xb, 0xb, 0x36,
- 0x3d, 0x0, 0x0, 0xc0, 0x36, 0x3, 0x0, 0x9,
- 0xdb, 0xbd, 0xe1,
-
- /* U+7D04 "約" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x5, 0xa0, 0x0, 0x6b, 0x0, 0x0, 0x0, 0xa,
- 0x10, 0x0, 0xa3, 0x0, 0x0, 0x0, 0x72, 0x9,
- 0x1, 0xd5, 0x55, 0xb1, 0x7, 0xa6, 0x97, 0x6,
- 0x20, 0x0, 0xc0, 0x4, 0x54, 0x80, 0x15, 0x0,
- 0x0, 0xc0, 0x0, 0x38, 0x8, 0x12, 0x20, 0x0,
- 0xc0, 0x5, 0xb4, 0x6a, 0x80, 0xb6, 0x0, 0xb0,
- 0x5, 0x83, 0x2, 0x50, 0x1d, 0x1, 0xa0, 0x0,
- 0x12, 0x5, 0x10, 0x1, 0x2, 0x90, 0x4, 0x36,
- 0x51, 0xc0, 0x0, 0x4, 0x80, 0xb, 0x23, 0xa0,
- 0xa0, 0x0, 0x6, 0x60, 0x9, 0x0, 0x20, 0x0,
- 0x5, 0xce, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x10, 0x0,
-
- /* U+7D19 "紙" */
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xd, 0x10, 0x0, 0x1, 0x7c, 0x10, 0x0, 0x74,
- 0x0, 0x85, 0x6d, 0x40, 0x0, 0x3, 0x70, 0x63,
- 0x91, 0xb, 0x0, 0x0, 0x2d, 0x76, 0xb1, 0x91,
- 0xb, 0x0, 0x0, 0x6, 0x19, 0x10, 0x91, 0xa,
- 0x3, 0x30, 0x0, 0x91, 0x62, 0x95, 0x5b, 0x55,
- 0x40, 0x1c, 0x66, 0x8b, 0x91, 0x7, 0x20, 0x0,
- 0x9, 0x40, 0x7, 0x91, 0x5, 0x60, 0x0, 0x1,
- 0x20, 0x61, 0x91, 0x0, 0xa0, 0x10, 0x7, 0x47,
- 0x2b, 0x91, 0x1, 0xa2, 0x60, 0x39, 0xb, 0x2,
- 0xa7, 0x50, 0x2c, 0xa0, 0x64, 0x0, 0x0, 0xa4,
- 0x0, 0x2, 0xa0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+7D20 "素" */
- 0x0, 0x0, 0x0, 0x13, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2b, 0x0, 0x6, 0x0, 0x0, 0x56,
- 0x55, 0x6b, 0x55, 0x55, 0x20, 0x0, 0x5, 0x55,
- 0x6b, 0x55, 0xa2, 0x0, 0x0, 0x0, 0x0, 0x29,
- 0x0, 0x0, 0x60, 0x6, 0x55, 0x5b, 0xa5, 0x55,
- 0x55, 0x62, 0x0, 0x2, 0x75, 0x12, 0xc6, 0x0,
- 0x0, 0x0, 0x7, 0x96, 0x8a, 0x33, 0x0, 0x0,
- 0x0, 0x0, 0x48, 0x40, 0x6, 0xa0, 0x0, 0x0,
- 0xe, 0xd8, 0x8c, 0x53, 0x75, 0x0, 0x0, 0x2,
- 0x92, 0x29, 0x25, 0x10, 0x0, 0x0, 0x9, 0x70,
- 0x29, 0x2, 0xb8, 0x0, 0x2, 0x61, 0x16, 0xd8,
- 0x0, 0xc, 0x20, 0x0, 0x0, 0x0, 0x30, 0x0,
- 0x0, 0x0,
-
- /* U+7D30 "細" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xd, 0x10, 0x0, 0x0, 0x0, 0x10, 0x0, 0x74,
- 0x0, 0xb5, 0x5a, 0x57, 0xc0, 0x3, 0x60, 0x62,
- 0xb0, 0xb, 0x2, 0x90, 0x3c, 0x66, 0xc1, 0xb0,
- 0xb, 0x2, 0x90, 0x6, 0x2a, 0x10, 0xb0, 0xb,
- 0x2, 0x90, 0x0, 0x91, 0x70, 0xb5, 0x5c, 0x56,
- 0x90, 0x2c, 0x66, 0x98, 0xb0, 0xb, 0x2, 0x90,
- 0x1a, 0x51, 0x16, 0xb0, 0xb, 0x2, 0x90, 0x1,
- 0x10, 0x61, 0xb0, 0xb, 0x2, 0x90, 0x7, 0x28,
- 0x3b, 0xb0, 0xb, 0x2, 0x90, 0x2a, 0xd, 0x5,
- 0xb5, 0x5b, 0x56, 0x90, 0x44, 0x1, 0x0, 0xb0,
- 0x0, 0x2, 0x90, 0x0, 0x0, 0x0, 0x10, 0x0,
- 0x0, 0x0,
-
- /* U+7D39 "紹" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x9, 0x50, 0x35, 0x55, 0x55, 0xa1, 0x0, 0x2a,
- 0x0, 0x10, 0xa3, 0x0, 0xc0, 0x0, 0x90, 0x16,
- 0x0, 0xc1, 0x1, 0xb0, 0xa, 0x75, 0xa5, 0x1,
- 0xc0, 0x3, 0x90, 0x7, 0x57, 0x60, 0x7, 0x50,
- 0x5, 0x70, 0x0, 0x47, 0x33, 0x27, 0x1, 0x8d,
- 0x30, 0x6, 0x82, 0x5d, 0x43, 0x0, 0x3, 0x40,
- 0xa, 0x94, 0x17, 0xc, 0x55, 0x55, 0xd0, 0x0,
- 0x2, 0x18, 0xb, 0x0, 0x0, 0xb0, 0x4, 0x28,
- 0x28, 0x6b, 0x0, 0x0, 0xb0, 0xb, 0x26, 0x61,
- 0x3c, 0x55, 0x55, 0xb0, 0x8, 0x0, 0x0, 0xa,
- 0x0, 0x0, 0x90, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+7D42 "終" */
- 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0,
- 0xa, 0x30, 0x2, 0xe1, 0x0, 0x0, 0x0, 0x39,
- 0x0, 0x8, 0x85, 0x5a, 0x20, 0x0, 0x90, 0x35,
- 0x2b, 0x10, 0x2b, 0x0, 0xb, 0x76, 0xb3, 0x60,
- 0x70, 0xa2, 0x0, 0x5, 0x38, 0x40, 0x0, 0x5a,
- 0x70, 0x0, 0x0, 0x64, 0x25, 0x0, 0x4e, 0x60,
- 0x0, 0x9, 0x85, 0x5d, 0x15, 0x70, 0xab, 0x50,
- 0x8, 0x62, 0x5, 0x62, 0x29, 0x25, 0x81, 0x1,
- 0x2, 0x35, 0x0, 0x4, 0xa0, 0x0, 0x7, 0xa,
- 0xc, 0x12, 0x62, 0x10, 0x0, 0xc, 0xb, 0x23,
- 0x0, 0x1a, 0xb1, 0x0, 0x26, 0x0, 0x0, 0x0,
- 0x0, 0x89, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0x0,
-
- /* U+7D44 "組" */
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb, 0x30, 0x7, 0x55, 0x59, 0x0, 0x0, 0x47,
- 0x0, 0xc, 0x0, 0xc, 0x0, 0x1, 0x80, 0x36,
- 0xc, 0x0, 0xc, 0x0, 0xc, 0x76, 0xb3, 0xc,
- 0x0, 0xc, 0x0, 0x6, 0x38, 0x30, 0xd, 0x55,
- 0x5c, 0x0, 0x0, 0x74, 0x26, 0xc, 0x0, 0xc,
- 0x0, 0xa, 0x85, 0x6d, 0x2c, 0x0, 0xc, 0x0,
- 0x8, 0x61, 0x5, 0x1d, 0x55, 0x5c, 0x0, 0x1,
- 0x3, 0x26, 0xc, 0x0, 0xc, 0x0, 0x7, 0xa,
- 0xc, 0x1c, 0x0, 0xc, 0x0, 0xc, 0x9, 0x32,
- 0xc, 0x0, 0xc, 0x0, 0x16, 0x0, 0x4, 0x5d,
- 0x55, 0x5d, 0xd1, 0x0, 0x0, 0x1, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+7D4C "経" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0x0, 0x66, 0x55, 0x59, 0x40, 0x0, 0x74,
- 0x0, 0x7, 0x0, 0x1d, 0x20, 0x2, 0x70, 0x62,
- 0x2, 0x70, 0xa4, 0x0, 0x1c, 0x55, 0xb0, 0x0,
- 0x7b, 0x60, 0x0, 0x7, 0x3a, 0x10, 0x0, 0x9b,
- 0xa2, 0x0, 0x0, 0x82, 0x61, 0x48, 0x14, 0x4d,
- 0xc2, 0x9, 0x64, 0x7b, 0x10, 0xd, 0x0, 0x10,
- 0xa, 0x62, 0x7, 0x25, 0x5d, 0x59, 0x50, 0x0,
- 0x12, 0x52, 0x1, 0xc, 0x0, 0x0, 0x7, 0xb,
- 0xd, 0x0, 0xc, 0x0, 0x0, 0x1c, 0xc, 0x5,
- 0x0, 0xc, 0x0, 0x70, 0x25, 0x0, 0x3, 0x65,
- 0x55, 0x55, 0x51,
-
- /* U+7D50 "結" */
- 0x0, 0x1, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0,
- 0xc, 0x20, 0x0, 0xc, 0x10, 0x0, 0x0, 0x66,
- 0x0, 0x0, 0xb, 0x0, 0x0, 0x2, 0x80, 0x54,
- 0x45, 0x5c, 0x55, 0xb1, 0x1c, 0x66, 0xc2, 0x10,
- 0xb, 0x0, 0x0, 0x7, 0x39, 0x20, 0x0, 0xb,
- 0x0, 0x0, 0x0, 0x83, 0x34, 0x16, 0x5a, 0x59,
- 0x40, 0x1a, 0x64, 0x6e, 0x10, 0x0, 0x0, 0x0,
- 0xb, 0x62, 0x7, 0xb, 0x55, 0x5c, 0x20, 0x1,
- 0x3, 0x26, 0xb, 0x0, 0xb, 0x0, 0x6, 0xa,
- 0xb, 0x2b, 0x0, 0xb, 0x0, 0xc, 0xa, 0x34,
- 0x1c, 0x55, 0x5c, 0x0, 0x27, 0x1, 0x0, 0xb,
- 0x0, 0x9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+7D61 "絡" */
- 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0,
- 0x1c, 0x0, 0x4, 0xb0, 0x0, 0x0, 0x0, 0x73,
- 0x0, 0xa, 0x75, 0x59, 0x10, 0x2, 0x70, 0x60,
- 0x2b, 0x0, 0x3c, 0x10, 0x1b, 0x34, 0xc0, 0x72,
- 0x50, 0xc1, 0x0, 0x9, 0x4b, 0x12, 0x0, 0x5b,
- 0x30, 0x0, 0x0, 0x72, 0x60, 0x0, 0x99, 0x80,
- 0x0, 0x8, 0x42, 0x87, 0x37, 0x10, 0x5d, 0x91,
- 0x1e, 0x95, 0x29, 0x28, 0x55, 0x59, 0x20, 0x0,
- 0x0, 0x20, 0xb, 0x0, 0xb, 0x0, 0x5, 0x6,
- 0x56, 0xb, 0x0, 0xb, 0x0, 0xb, 0xd, 0x1b,
- 0xb, 0x0, 0xb, 0x0, 0x48, 0x6, 0x0, 0xd,
- 0x55, 0x5b, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
- 0x1, 0x0,
-
- /* U+7D66 "給" */
- 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x8, 0x50, 0x0, 0x2e, 0x10, 0x0, 0x0, 0x1a,
- 0x0, 0x0, 0x87, 0x40, 0x0, 0x0, 0x81, 0x34,
- 0x1, 0xb0, 0x70, 0x0, 0x7, 0x85, 0xa3, 0x9,
- 0x20, 0x1b, 0x10, 0x4, 0x57, 0x50, 0x63, 0x0,
- 0x16, 0xe4, 0x0, 0x36, 0x27, 0x16, 0x55, 0x64,
- 0x30, 0x4, 0xa4, 0x6d, 0x11, 0x0, 0x3, 0x0,
- 0x5, 0x83, 0x6, 0x1c, 0x55, 0x5d, 0x10, 0x1,
- 0x14, 0x35, 0xa, 0x0, 0xb, 0x0, 0x6, 0x27,
- 0x3d, 0x2a, 0x0, 0xb, 0x0, 0xd, 0x6, 0x54,
- 0x1c, 0x55, 0x5c, 0x0, 0x3, 0x0, 0x0, 0x1a,
- 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+7D71 "統" */
- 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0xb, 0x30, 0x0, 0x97, 0x0, 0x0, 0x0, 0x38,
- 0x0, 0x0, 0x17, 0x0, 0x60, 0x0, 0x90, 0x34,
- 0x65, 0xa8, 0x55, 0x50, 0xb, 0x65, 0xb3, 0x3,
- 0xa0, 0x31, 0x0, 0x7, 0x38, 0x30, 0x47, 0x0,
- 0x1b, 0x20, 0x0, 0x64, 0x34, 0x99, 0x65, 0x36,
- 0x80, 0x9, 0x74, 0x6e, 0x16, 0x50, 0xa0, 0x0,
- 0xb, 0x83, 0x17, 0x7, 0x40, 0xb0, 0x0, 0x1,
- 0x11, 0x55, 0x9, 0x20, 0xb0, 0x0, 0x7, 0xb,
- 0xc, 0xb, 0x0, 0xb0, 0x30, 0x1c, 0xa, 0x1,
- 0x57, 0x0, 0xb0, 0x60, 0x13, 0x0, 0x6, 0x60,
- 0x0, 0xba, 0xd4, 0x0, 0x0, 0x30, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+7D75 "絵" */
- 0x0, 0x1, 0x0, 0x0, 0x11, 0x0, 0x0, 0x0,
- 0x1d, 0x0, 0x0, 0x8a, 0x0, 0x0, 0x0, 0x93,
- 0x0, 0x1, 0xc5, 0x20, 0x0, 0x4, 0x50, 0x82,
- 0x9, 0x30, 0x91, 0x0, 0x2d, 0x77, 0xb0, 0x55,
- 0x0, 0x1c, 0x40, 0x5, 0x1a, 0x14, 0x34, 0x55,
- 0xb5, 0xb3, 0x0, 0x91, 0x62, 0x1, 0x0, 0x0,
- 0x0, 0x1a, 0x44, 0x8b, 0x0, 0x0, 0x4, 0x30,
- 0x1d, 0x73, 0x8, 0x55, 0xa7, 0x55, 0x40, 0x0,
- 0x11, 0x51, 0x1, 0xd2, 0x0, 0x0, 0x6, 0xa,
- 0x1c, 0x9, 0x20, 0x33, 0x0, 0xa, 0xb, 0x6,
- 0x74, 0x12, 0x3c, 0x20, 0x24, 0x0, 0x0, 0xb9,
- 0x64, 0x25, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+7D93 "經" */
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1c, 0x1, 0x55, 0x55, 0x58, 0x90, 0x0, 0x82,
- 0x0, 0x23, 0x5, 0x4, 0x0, 0x2, 0x60, 0x70,
- 0x68, 0x3a, 0x1c, 0x10, 0x1b, 0x46, 0xa0, 0x90,
- 0x80, 0x71, 0x0, 0x8, 0x3a, 0x1, 0x70, 0x80,
- 0x83, 0x0, 0x0, 0x82, 0x50, 0x86, 0x4a, 0xd,
- 0x10, 0x7, 0x51, 0x95, 0x26, 0x7, 0x4, 0x0,
- 0xd, 0xa5, 0x47, 0x45, 0x55, 0x57, 0x70, 0x1,
- 0x1, 0x41, 0x10, 0xb, 0x0, 0x0, 0x6, 0x9,
- 0x1b, 0x0, 0xb, 0x0, 0x0, 0xc, 0xc, 0x6,
- 0x0, 0xb, 0x0, 0x0, 0x18, 0x2, 0x2, 0x55,
- 0x5c, 0x56, 0xd1, 0x0, 0x0, 0x0, 0x10, 0x0,
- 0x0, 0x0,
-
- /* U+7D9A "続" */
- 0x0, 0x1, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0,
- 0x1c, 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0x73,
- 0x0, 0x55, 0x5c, 0x57, 0xa0, 0x1, 0x70, 0x60,
- 0x10, 0xb, 0x0, 0x0, 0xb, 0x45, 0xa0, 0x6,
- 0x5a, 0x5a, 0x10, 0x8, 0x4a, 0x0, 0x30, 0x0,
- 0x0, 0x20, 0x0, 0x72, 0x50, 0xa5, 0x55, 0x55,
- 0xe1, 0x6, 0x51, 0x96, 0x74, 0x51, 0x44, 0x20,
- 0xd, 0xa6, 0x57, 0x5, 0x71, 0xa0, 0x0, 0x1,
- 0x0, 0x30, 0x7, 0x41, 0x90, 0x0, 0x5, 0x17,
- 0x2a, 0xa, 0x1, 0x90, 0x40, 0xb, 0xc, 0x7,
- 0x47, 0x1, 0x90, 0x70, 0x17, 0x3, 0x6, 0x60,
- 0x0, 0xca, 0xe2, 0x0, 0x0, 0x30, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+7DAD "維" */
- 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x1b, 0x0, 0x6, 0x6a, 0x30, 0x0, 0x0, 0x82,
- 0x0, 0xb, 0x14, 0x80, 0x0, 0x2, 0x60, 0x70,
- 0x1d, 0x57, 0x58, 0x80, 0x1b, 0x56, 0xa0, 0x7b,
- 0xa, 0x10, 0x0, 0x6, 0x2a, 0x1, 0x6b, 0xa,
- 0x11, 0x0, 0x0, 0x81, 0x74, 0xc, 0x5c, 0x57,
- 0x40, 0x9, 0x54, 0xa7, 0xb, 0xa, 0x10, 0x0,
- 0xc, 0x72, 0x16, 0xb, 0xa, 0x13, 0x10, 0x1,
- 0x20, 0x51, 0xc, 0x5c, 0x55, 0x30, 0x6, 0x19,
- 0x1d, 0xb, 0xa, 0x10, 0x0, 0x2a, 0xc, 0x5,
- 0xb, 0xa, 0x12, 0x50, 0x33, 0x0, 0x0, 0xd,
- 0x55, 0x55, 0x50, 0x0, 0x0, 0x0, 0x2, 0x0,
- 0x0, 0x0,
-
- /* U+7DB2 "網" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1b, 0x0, 0x85, 0x55, 0x55, 0xa1, 0x0, 0x72,
- 0x0, 0xb2, 0x20, 0x82, 0xc0, 0x2, 0x60, 0x60,
- 0xb0, 0xb2, 0x90, 0xc0, 0x1c, 0x67, 0x90, 0xb4,
- 0x88, 0x86, 0xc0, 0x6, 0x2a, 0x0, 0xb1, 0x42,
- 0x0, 0xc0, 0x0, 0x91, 0x60, 0xb0, 0xd, 0x0,
- 0xc0, 0x9, 0x54, 0xa6, 0xb6, 0x86, 0x77, 0xc0,
- 0xb, 0x72, 0x25, 0xb0, 0xb0, 0x0, 0xc0, 0x1,
- 0x20, 0x70, 0xb0, 0xb0, 0x40, 0xc0, 0x7, 0x45,
- 0x76, 0xb1, 0x75, 0x52, 0xc0, 0x3a, 0x29, 0x23,
- 0xb0, 0x0, 0x0, 0xc0, 0x42, 0x0, 0x0, 0xb0,
- 0x0, 0x5d, 0x90, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0x0,
-
- /* U+7DD1 "緑" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1b, 0x0, 0x65, 0x55, 0x5c, 0x0, 0x0, 0x82,
- 0x0, 0x0, 0x0, 0xc, 0x0, 0x3, 0x50, 0x70,
- 0x26, 0x55, 0x5c, 0x0, 0x1c, 0x67, 0x80, 0x0,
- 0x0, 0xc, 0x20, 0x6, 0x29, 0x1, 0x75, 0x69,
- 0x58, 0x81, 0x0, 0x90, 0x70, 0x20, 0x2d, 0x2,
- 0x60, 0xb, 0x66, 0xa6, 0x86, 0x2c, 0x68, 0x20,
- 0x9, 0x50, 0x24, 0x9, 0x3a, 0xa0, 0x0, 0x2,
- 0x31, 0x91, 0x5, 0x7a, 0x64, 0x0, 0x8, 0x1a,
- 0x57, 0x94, 0x2a, 0xb, 0x20, 0x4a, 0x8, 0x7,
- 0x30, 0x29, 0x2, 0xc2, 0x21, 0x0, 0x0, 0x5,
- 0xe7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20,
- 0x0, 0x0,
-
- /* U+7DD2 "緒" */
- 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x1a, 0x0, 0x0, 0x92, 0x1, 0x0, 0x0, 0x82,
- 0x0, 0x0, 0x91, 0x2b, 0x20, 0x2, 0x60, 0x60,
- 0x65, 0xb6, 0x98, 0x0, 0x1b, 0x46, 0xa0, 0x0,
- 0x91, 0xa0, 0x10, 0x7, 0x3a, 0x5, 0x65, 0x9b,
- 0x76, 0xa0, 0x0, 0x91, 0x60, 0x0, 0x75, 0x0,
- 0x0, 0xa, 0x54, 0xa7, 0xa, 0xa5, 0x59, 0x0,
- 0xb, 0x62, 0x26, 0x89, 0x0, 0xa, 0x0, 0x1,
- 0x20, 0x64, 0x1b, 0x55, 0x5b, 0x0, 0x7, 0x36,
- 0x84, 0x9, 0x0, 0xa, 0x0, 0x2a, 0x1b, 0x25,
- 0x19, 0x0, 0xa, 0x0, 0x33, 0x1, 0x0, 0x1b,
- 0x55, 0x5b, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
- 0x0, 0x0,
-
- /* U+7DDA "線" */
- 0x0, 0x0, 0x0, 0x0, 0x11, 0x0, 0x0, 0x0,
- 0x29, 0x0, 0x0, 0x85, 0x0, 0x0, 0x0, 0x92,
- 0x0, 0x95, 0x85, 0x5c, 0x10, 0x3, 0x50, 0x50,
- 0xb0, 0x0, 0xb, 0x0, 0x2a, 0x37, 0x80, 0xb5,
- 0x55, 0x5c, 0x0, 0x18, 0x4a, 0x0, 0xb0, 0x0,
- 0xb, 0x0, 0x0, 0x92, 0x40, 0xa5, 0x6b, 0x59,
- 0x0, 0x9, 0x33, 0xd1, 0x1, 0x1d, 0x1, 0x50,
- 0x1d, 0x73, 0x74, 0x6c, 0x8b, 0x59, 0x50, 0x2,
- 0x30, 0x80, 0xb, 0x1a, 0x90, 0x0, 0x7, 0x65,
- 0x93, 0x83, 0x1a, 0x57, 0x0, 0x86, 0x37, 0x15,
- 0x50, 0x1a, 0xa, 0xa1, 0x30, 0x0, 0x42, 0x6,
- 0xd8, 0x1, 0x20, 0x0, 0x0, 0x0, 0x0, 0x30,
- 0x0, 0x0,
-
- /* U+7DE0 "締" */
- 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0,
- 0x1b, 0x0, 0x0, 0x5b, 0x0, 0x0, 0x0, 0x82,
- 0x2, 0x65, 0x59, 0x58, 0x70, 0x2, 0x60, 0x50,
- 0x8, 0x0, 0xa2, 0x0, 0x1a, 0x35, 0xa0, 0x5,
- 0x60, 0x80, 0x0, 0x8, 0x4a, 0x5, 0x75, 0x56,
- 0x55, 0xd1, 0x0, 0x81, 0x5b, 0x10, 0x18, 0x2,
- 0x30, 0x8, 0x42, 0xa3, 0x20, 0x19, 0x3, 0x0,
- 0xe, 0x94, 0x55, 0xa5, 0x6b, 0x5c, 0x10, 0x0,
- 0x10, 0x50, 0xa0, 0x19, 0xa, 0x0, 0x6, 0x63,
- 0x85, 0xa0, 0x19, 0xa, 0x0, 0x29, 0x2a, 0x13,
- 0x90, 0x19, 0x7b, 0x0, 0x53, 0x1, 0x0, 0x0,
- 0x19, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
- 0x0, 0x0,
-
- /* U+7DE9 "緩" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0,
- 0x1c, 0x0, 0x35, 0x67, 0x9b, 0x40, 0x0, 0x85,
- 0x0, 0x30, 0x50, 0x1a, 0x0, 0x2, 0x70, 0x60,
- 0x65, 0x46, 0x55, 0x0, 0x1b, 0x46, 0xa1, 0x77,
- 0x65, 0x88, 0x60, 0x7, 0x3a, 0x0, 0x1, 0xa0,
- 0x0, 0x0, 0x0, 0x81, 0x64, 0x67, 0xa5, 0x55,
- 0xb1, 0x8, 0x54, 0xa6, 0x8, 0x40, 0x0, 0x0,
- 0xb, 0x72, 0x25, 0xb, 0x85, 0x6d, 0x0, 0x2,
- 0x30, 0x60, 0x47, 0x70, 0xa4, 0x0, 0x8, 0x38,
- 0x85, 0x90, 0x1c, 0x70, 0x0, 0x59, 0x9, 0x19,
- 0x10, 0x7a, 0xb2, 0x0, 0x10, 0x0, 0x21, 0x27,
- 0x30, 0x3d, 0xb2, 0x0, 0x0, 0x0, 0x20, 0x0,
- 0x0, 0x20,
-
- /* U+7DF4 "練" */
- 0x0, 0x1, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0,
- 0x1c, 0x0, 0x0, 0xb, 0x0, 0x0, 0x0, 0x72,
- 0x3, 0x65, 0x5c, 0x56, 0xb1, 0x2, 0x60, 0x70,
- 0x0, 0xa, 0x0, 0x0, 0x1c, 0x56, 0x90, 0x95,
- 0x5c, 0x5b, 0x20, 0x6, 0x29, 0x0, 0xa5, 0xa,
- 0x7b, 0x0, 0x0, 0x81, 0x60, 0xa4, 0x6a, 0x7a,
- 0x0, 0x8, 0x53, 0x97, 0xb5, 0x6d, 0x5c, 0x0,
- 0xc, 0x73, 0x26, 0x61, 0xdb, 0x33, 0x0, 0x1,
- 0x11, 0x61, 0x8, 0x5a, 0x80, 0x0, 0x6, 0xa,
- 0x3a, 0x39, 0xa, 0x49, 0x0, 0x1b, 0xc, 0x5,
- 0x80, 0xa, 0x9, 0xc3, 0x25, 0x0, 0x14, 0x0,
- 0xa, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0, 0x1,
- 0x0, 0x0,
-
- /* U+7E3D "總" */
- 0x0, 0x0, 0x0, 0x0, 0x11, 0x0, 0x0, 0x0,
- 0xc, 0x0, 0x0, 0x76, 0x0, 0x0, 0x0, 0x73,
- 0x0, 0x94, 0x84, 0x48, 0x70, 0x1, 0x70, 0x60,
- 0xa0, 0xa5, 0x27, 0x50, 0xb, 0x45, 0xa0, 0xa3,
- 0x85, 0xc9, 0x50, 0x7, 0x39, 0x0, 0xa3, 0x39,
- 0x76, 0x50, 0x0, 0x81, 0x60, 0xb1, 0x66, 0xc6,
- 0x50, 0x9, 0x65, 0x97, 0xb8, 0x66, 0x7a, 0x50,
- 0xa, 0x62, 0x15, 0x21, 0x44, 0x2, 0x0, 0x0,
- 0x14, 0x30, 0x2c, 0xd, 0x14, 0x60, 0x5, 0x63,
- 0xc6, 0x2a, 0x3, 0x3, 0xc2, 0x1a, 0x37, 0x1d,
- 0xa, 0x0, 0x6, 0x10, 0x56, 0x0, 0x1, 0xd,
- 0xaa, 0xbc, 0x0,
-
- /* U+7E3E "績" */
- 0x0, 0x0, 0x0, 0x0, 0x12, 0x0, 0x0, 0x0,
- 0x1c, 0x0, 0x0, 0x2a, 0x4, 0x0, 0x0, 0x73,
- 0x3, 0x65, 0x6b, 0x56, 0x30, 0x1, 0x70, 0x60,
- 0x46, 0x6b, 0x58, 0x0, 0xb, 0x45, 0x91, 0x11,
- 0x39, 0x14, 0x70, 0x7, 0x39, 0x3, 0x63, 0x33,
- 0x36, 0x30, 0x0, 0x72, 0x60, 0xc5, 0x55, 0x5d,
- 0x20, 0x7, 0x52, 0xa5, 0xc5, 0x55, 0x5c, 0x0,
- 0xc, 0x94, 0x36, 0xc4, 0x44, 0x4c, 0x0, 0x0,
- 0x20, 0x50, 0xc1, 0x11, 0x1b, 0x0, 0x6, 0x37,
- 0x57, 0xa6, 0x55, 0x5a, 0x0, 0x1b, 0xc, 0x3,
- 0xb, 0x60, 0x67, 0x10, 0x24, 0x0, 0x1, 0x93,
- 0x0, 0x5, 0xd0, 0x0, 0x0, 0x3, 0x0, 0x0,
- 0x0, 0x30,
-
- /* U+7E54 "織" */
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x10, 0x0, 0x0,
- 0x83, 0x0, 0x39, 0x0, 0xa0, 0x0, 0x0, 0x90,
- 0x6, 0x58, 0x93, 0x97, 0x10, 0x6, 0x13, 0x15,
- 0x20, 0xc0, 0x92, 0x90, 0x49, 0x4b, 0x21, 0x93,
- 0x40, 0x90, 0x0, 0x35, 0x74, 0x26, 0x57, 0x55,
- 0xb5, 0xb1, 0x1, 0x74, 0x22, 0x0, 0x30, 0x93,
- 0x20, 0x19, 0x25, 0xb9, 0x65, 0xc0, 0x99, 0x40,
- 0x4b, 0x51, 0x79, 0x10, 0xa0, 0x9b, 0x0, 0x0,
- 0x24, 0x29, 0x65, 0xa0, 0xa5, 0x0, 0x7, 0x92,
- 0xc9, 0x10, 0xa1, 0xc6, 0x22, 0x77, 0x75, 0x2a,
- 0x65, 0x97, 0xb, 0xa0, 0x41, 0x0, 0x1, 0x1,
- 0x50, 0x1, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+7E70 "繰" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0x10, 0xb, 0x55, 0x5c, 0x0, 0x0, 0x45,
- 0x0, 0xb, 0x0, 0xb, 0x0, 0x0, 0x80, 0x61,
- 0xb, 0x55, 0x5a, 0x0, 0xb, 0x86, 0xb0, 0x75,
- 0x70, 0x75, 0x70, 0x4, 0x19, 0x10, 0xa0, 0xa0,
- 0xb0, 0x90, 0x0, 0x73, 0x61, 0xc5, 0xb0, 0xc5,
- 0xa0, 0x6, 0x84, 0x8a, 0x40, 0x36, 0x50, 0x30,
- 0x8, 0x83, 0x7, 0x65, 0x6e, 0x55, 0xb1, 0x0,
- 0x10, 0x61, 0x0, 0xbc, 0x50, 0x0, 0x7, 0xa,
- 0x2a, 0x9, 0x2c, 0x64, 0x0, 0x1b, 0xc, 0x3,
- 0x82, 0xc, 0x9, 0x81, 0x14, 0x0, 0x15, 0x0,
- 0xc, 0x0, 0x60, 0x0, 0x0, 0x0, 0x0, 0x1,
- 0x0, 0x0,
-
- /* U+7E7C "繼" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x56, 0x8, 0x16, 0x0, 0x33, 0x0, 0x0, 0xa0,
- 0xa, 0x37, 0x40, 0x93, 0x20, 0x6, 0x31, 0x3a,
- 0xb6, 0xa6, 0x8a, 0x20, 0x3a, 0x49, 0x4a, 0x18,
- 0x30, 0x64, 0x10, 0x26, 0x57, 0xa, 0xa7, 0x96,
- 0xa4, 0xa0, 0x1, 0x81, 0x4a, 0x10, 0x0, 0x13,
- 0x50, 0x1a, 0x34, 0xda, 0x59, 0x55, 0x69, 0x30,
- 0x2c, 0x51, 0x6a, 0x18, 0x30, 0x73, 0x20, 0x0,
- 0x13, 0xa, 0x95, 0xa6, 0x89, 0x40, 0x6, 0x81,
- 0xba, 0x18, 0x20, 0x64, 0x30, 0x56, 0x84, 0x7a,
- 0x96, 0x95, 0xa4, 0x90, 0x61, 0x10, 0xc, 0x75,
- 0x86, 0x67, 0xb0, 0x0, 0x0, 0x3, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+7E8C "續" */
- 0x0, 0x0, 0x0, 0x0, 0x15, 0x0, 0x0, 0x0,
- 0xb, 0x2, 0x55, 0x6c, 0x55, 0xb1, 0x0, 0x64,
- 0x0, 0x21, 0x2a, 0x15, 0x20, 0x1, 0x80, 0x40,
- 0x55, 0x44, 0x44, 0x40, 0x9, 0x23, 0xb0, 0xb5,
- 0xa5, 0xa5, 0xc0, 0xa, 0x5b, 0x10, 0xa0, 0x90,
- 0x90, 0xa0, 0x0, 0x63, 0x50, 0x95, 0x55, 0x56,
- 0x50, 0x6, 0x52, 0x95, 0x87, 0x55, 0x5a, 0x50,
- 0xd, 0x95, 0x37, 0x77, 0x55, 0x5a, 0x40, 0x0,
- 0x10, 0x30, 0x87, 0x55, 0x5a, 0x40, 0x6, 0x64,
- 0x93, 0x87, 0x55, 0x5a, 0x40, 0x29, 0x2a, 0x34,
- 0x39, 0x60, 0x48, 0x10, 0x43, 0x1, 0x4, 0x84,
- 0x0, 0x4, 0xd0, 0x0, 0x0, 0x1, 0x0, 0x0,
- 0x0, 0x20,
-
- /* U+7EDF "统" */
- 0x0, 0x22, 0x0, 0x4, 0x0, 0x0, 0x0, 0x9,
- 0x70, 0x0, 0x2c, 0x0, 0x0, 0x1, 0xb0, 0x5,
- 0x55, 0xa5, 0x6c, 0x10, 0x81, 0xa, 0x20, 0x77,
- 0x0, 0x0, 0x57, 0x39, 0x70, 0x19, 0x2, 0x0,
- 0x7, 0x65, 0x80, 0x8, 0x0, 0x3a, 0x20, 0x1,
- 0x90, 0xb, 0xaa, 0x6a, 0x7c, 0x1, 0xa2, 0x34,
- 0x34, 0xa0, 0xb0, 0x30, 0x6d, 0x72, 0x0, 0x39,
- 0xb, 0x0, 0x0, 0x0, 0x0, 0x5, 0x70, 0xb0,
- 0x0, 0x14, 0x76, 0x40, 0x93, 0xb, 0x4, 0x8,
- 0x81, 0x0, 0x3a, 0x0, 0xb0, 0x61, 0x0, 0x0,
- 0x57, 0x0, 0xb, 0xbc, 0x40, 0x0, 0x10, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+7F3A "缺" */
- 0x0, 0x20, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0,
- 0xb4, 0x0, 0x0, 0xc2, 0x0, 0x0, 0x0, 0xb0,
- 0x1, 0x0, 0xb0, 0x0, 0x0, 0x5, 0x89, 0x59,
- 0x46, 0xc5, 0x6b, 0x0, 0x7, 0xa, 0x0, 0x0,
- 0xb0, 0x19, 0x0, 0x11, 0xa, 0x1, 0x20, 0xb0,
- 0x19, 0x0, 0x36, 0x5c, 0x57, 0x60, 0xb0, 0x19,
- 0x30, 0x5, 0x1a, 0x5, 0x65, 0xc7, 0x57, 0x72,
- 0xa, 0xa, 0xa, 0x2, 0x86, 0x0, 0x0, 0xa,
- 0xa, 0xa, 0x7, 0x33, 0x60, 0x0, 0xa, 0x5c,
- 0x5c, 0x9, 0x0, 0xa1, 0x0, 0x8, 0x60, 0x4,
- 0x81, 0x0, 0x3d, 0x20, 0x0, 0x0, 0x16, 0x10,
- 0x0, 0x5, 0xb1, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+7F6E "置" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0,
- 0xb6, 0x6b, 0x66, 0xa6, 0x6d, 0x0, 0x0, 0xc0,
- 0xc, 0x0, 0xb0, 0xd, 0x0, 0x0, 0xc6, 0x6b,
- 0x76, 0xa6, 0x6d, 0x0, 0x0, 0x20, 0x0, 0xa3,
- 0x0, 0x7, 0x0, 0x2, 0x76, 0x66, 0xd6, 0x66,
- 0x66, 0x10, 0x0, 0xa, 0x66, 0x96, 0x69, 0xa0,
- 0x0, 0x0, 0xb, 0x10, 0x0, 0x4, 0x80, 0x0,
- 0x0, 0xb, 0x66, 0x66, 0x68, 0x80, 0x0, 0x0,
- 0xb, 0x76, 0x66, 0x69, 0x80, 0x0, 0x0, 0xb,
- 0x10, 0x0, 0x4, 0x80, 0x0, 0x0, 0xb, 0x76,
- 0x66, 0x69, 0x80, 0x0, 0x26, 0x6d, 0x76, 0x66,
- 0x69, 0xb7, 0xd2, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+7F8E "美" */
- 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0xa3, 0x0, 0xc3, 0x0, 0x0, 0x0, 0x0,
- 0x57, 0x3, 0x40, 0x44, 0x0, 0x3, 0x65, 0x55,
- 0xd5, 0x55, 0x54, 0x0, 0x0, 0x45, 0x55, 0xd5,
- 0x56, 0xa1, 0x0, 0x0, 0x10, 0x0, 0xc0, 0x0,
- 0x0, 0x0, 0x25, 0x55, 0x55, 0xd5, 0x55, 0x5b,
- 0x70, 0x1, 0x0, 0x0, 0xa2, 0x0, 0x0, 0x0,
- 0x4, 0x55, 0x55, 0xe5, 0x55, 0x98, 0x0, 0x1,
- 0x0, 0x6, 0x76, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0x2, 0x80, 0x0, 0x0, 0x0, 0x1, 0xa3,
- 0x0, 0x3c, 0x61, 0x0, 0x2, 0x67, 0x10, 0x0,
- 0x1, 0x9f, 0x90, 0x11, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+7FA9 "義" */
- 0x0, 0x0, 0x40, 0x0, 0x32, 0x0, 0x0, 0x0,
- 0x0, 0x58, 0x0, 0xa3, 0x12, 0x0, 0x2, 0x65,
- 0x57, 0x95, 0x75, 0x88, 0x0, 0x0, 0x25, 0x55,
- 0xc5, 0x55, 0xb0, 0x0, 0x0, 0x1, 0x0, 0xb0,
- 0x0, 0x5, 0x0, 0x5, 0x55, 0x55, 0x85, 0x55,
- 0x59, 0x30, 0x0, 0x0, 0x38, 0xb5, 0x82, 0x81,
- 0x0, 0x1, 0x45, 0xc3, 0x13, 0x90, 0x57, 0x0,
- 0x16, 0x55, 0xc5, 0x55, 0xc5, 0x59, 0x80, 0x0,
- 0x0, 0xa3, 0x30, 0xb0, 0x68, 0x0, 0xb, 0xa7,
- 0xc0, 0x0, 0x6b, 0x90, 0x20, 0x0, 0x0, 0xa0,
- 0x3, 0xac, 0x50, 0x60, 0x0, 0x29, 0xd2, 0x53,
- 0x0, 0x7c, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+7FD2 "習" */
- 0x0, 0x0, 0x20, 0x0, 0x0, 0x20, 0x26, 0x55,
- 0xd2, 0x55, 0x57, 0xc0, 0x6, 0x70, 0xc0, 0x39,
- 0x12, 0x90, 0x0, 0xb0, 0xc0, 0x6, 0x32, 0x90,
- 0x0, 0x46, 0xd0, 0x3, 0x77, 0x90, 0x5b, 0x40,
- 0xc2, 0x99, 0x12, 0x70, 0x21, 0x0, 0xc, 0x30,
- 0x0, 0x0, 0x0, 0x85, 0x78, 0x55, 0x5a, 0x20,
- 0x0, 0xc0, 0x0, 0x0, 0xc, 0x0, 0x0, 0xc0,
- 0x0, 0x0, 0xc, 0x0, 0x0, 0xd5, 0x55, 0x55,
- 0x5d, 0x0, 0x0, 0xc0, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0xd5, 0x55, 0x55, 0x5d, 0x0, 0x0, 0x10,
- 0x0, 0x0, 0x1, 0x0,
-
- /* U+8001 "老" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb4, 0x0, 0x14, 0x0, 0x0, 0x0,
- 0x0, 0xb2, 0x5, 0x8c, 0x0, 0x0, 0x16, 0x55,
- 0xc6, 0x58, 0xd1, 0x0, 0x0, 0x0, 0x0, 0xb2,
- 0xc, 0x30, 0x0, 0x5, 0x55, 0x55, 0xb6, 0xaa,
- 0x55, 0xc2, 0x0, 0x0, 0x0, 0x9, 0x70, 0x0,
- 0x0, 0x0, 0x0, 0x4, 0xb4, 0x1, 0x40, 0x0,
- 0x0, 0x0, 0x7e, 0x10, 0x3d, 0x90, 0x0, 0x0,
- 0x49, 0x5c, 0x28, 0x71, 0x1, 0x0, 0x5, 0x30,
- 0x1d, 0x40, 0x0, 0x5, 0x0, 0x0, 0x0, 0x1c,
- 0x0, 0x0, 0xa, 0x0, 0x0, 0x0, 0xc, 0xcb,
- 0xbb, 0xbe, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8003 "考" */
- 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x71, 0x0, 0x0, 0x0,
- 0x0, 0xc0, 0x55, 0xc1, 0x0, 0x0, 0x16, 0x55,
- 0xd5, 0x8c, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc2,
- 0xb0, 0x0, 0x60, 0x16, 0x55, 0x55, 0x8c, 0x55,
- 0x55, 0x51, 0x0, 0x0, 0x4, 0xa0, 0x0, 0x15,
- 0x0, 0x0, 0x0, 0x76, 0x99, 0x55, 0x56, 0x0,
- 0x0, 0x48, 0x10, 0xa2, 0x0, 0x20, 0x0, 0x4,
- 0x10, 0x0, 0x95, 0x55, 0xa6, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x16,
- 0xab, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43,
- 0x0, 0x0,
-
- /* U+8005 "者" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0xd0, 0x0, 0x31, 0x0, 0x0, 0x0,
- 0x0, 0xc1, 0x71, 0xd4, 0x0, 0x0, 0x36, 0x55,
- 0xd5, 0x5d, 0x40, 0x0, 0x0, 0x0, 0x0, 0xc0,
- 0xa5, 0x0, 0x50, 0x7, 0x55, 0x55, 0x7c, 0x75,
- 0x56, 0x72, 0x0, 0x0, 0x1, 0xa3, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xbb, 0x65, 0x56, 0xd0, 0x0,
- 0x0, 0x18, 0xe0, 0x0, 0x1, 0xa0, 0x0, 0x4,
- 0x50, 0xc5, 0x55, 0x56, 0xa0, 0x0, 0x0, 0x0,
- 0xc0, 0x0, 0x1, 0xa0, 0x0, 0x0, 0x0, 0xc0,
- 0x0, 0x1, 0xa0, 0x0, 0x0, 0x0, 0xc5, 0x55,
- 0x56, 0xb0, 0x0, 0x0, 0x0, 0x30, 0x0, 0x0,
- 0x10, 0x0,
-
- /* U+800C "而" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x15,
- 0x55, 0x55, 0x55, 0x55, 0x58, 0xb0, 0x1, 0x0,
- 0x0, 0xb4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x90, 0x0, 0x0, 0x0, 0x0, 0x75, 0x57, 0x75,
- 0x55, 0x5a, 0x10, 0x0, 0xc0, 0xb, 0x0, 0xb0,
- 0xd, 0x0, 0x0, 0xc0, 0xb, 0x0, 0xb0, 0xc,
- 0x0, 0x0, 0xc0, 0xb, 0x0, 0xb0, 0xc, 0x0,
- 0x0, 0xc0, 0xb, 0x0, 0xb0, 0xc, 0x0, 0x0,
- 0xc0, 0xb, 0x0, 0xb0, 0xc, 0x0, 0x0, 0xc0,
- 0xb, 0x0, 0xb0, 0xc, 0x0, 0x0, 0xc0, 0xb,
- 0x0, 0xb1, 0x1c, 0x0, 0x0, 0x90, 0x3, 0x0,
- 0x24, 0xd8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8033 "耳" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6,
- 0x57, 0x55, 0x55, 0x57, 0x58, 0x80, 0x0, 0xa,
- 0x20, 0x0, 0xc, 0x0, 0x0, 0x0, 0xa, 0x20,
- 0x0, 0xc, 0x0, 0x0, 0x0, 0xa, 0x65, 0x55,
- 0x5c, 0x0, 0x0, 0x0, 0xa, 0x20, 0x0, 0xc,
- 0x0, 0x0, 0x0, 0xa, 0x20, 0x0, 0xc, 0x0,
- 0x0, 0x0, 0xa, 0x65, 0x55, 0x5c, 0x0, 0x0,
- 0x0, 0xa, 0x20, 0x0, 0xc, 0x0, 0x20, 0x0,
- 0xa, 0x32, 0x34, 0x5d, 0x56, 0x91, 0x26, 0x55,
- 0x42, 0x10, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2,
- 0x0, 0x0,
-
- /* U+805E "聞" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa5, 0x55,
- 0xd0, 0x95, 0x55, 0xc3, 0xb0, 0x0, 0xb0, 0xa0,
- 0x0, 0xa0, 0xb5, 0x55, 0xb0, 0xa5, 0x55, 0xc0,
- 0xb5, 0x55, 0xa0, 0xa5, 0x55, 0xc0, 0xb0, 0x0,
- 0x0, 0x0, 0x40, 0xa0, 0xb0, 0x6a, 0x65, 0x69,
- 0x72, 0xa0, 0xb0, 0xa, 0x65, 0x78, 0x0, 0xa0,
- 0xb0, 0xa, 0x10, 0x28, 0x0, 0xa0, 0xb0, 0xa,
- 0x65, 0x78, 0x0, 0xa0, 0xb0, 0xa, 0x32, 0x5a,
- 0x79, 0xa0, 0xb3, 0x54, 0x32, 0x38, 0x0, 0xb0,
- 0xb0, 0x0, 0x0, 0x25, 0x3a, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x10,
-
- /* U+806F "聯" */
- 0x0, 0x0, 0x0, 0x2, 0x20, 0x3, 0x0, 0x5,
- 0x55, 0x5c, 0x59, 0x30, 0x59, 0x0, 0x1, 0xb0,
- 0x91, 0x54, 0x63, 0x80, 0x82, 0x0, 0xb0, 0x93,
- 0xd7, 0x86, 0x87, 0x80, 0x0, 0xc5, 0xb1, 0x18,
- 0x31, 0x36, 0x30, 0x0, 0xb0, 0x92, 0x93, 0x83,
- 0x84, 0x94, 0x0, 0xb0, 0x93, 0xb5, 0x53, 0x83,
- 0x23, 0x0, 0xc5, 0xb1, 0x1, 0x44, 0xa1, 0x10,
- 0x0, 0xb0, 0x91, 0x1a, 0x44, 0xa0, 0xa0, 0x1,
- 0xc6, 0xc5, 0x29, 0x64, 0xa0, 0xa0, 0xd, 0x71,
- 0x91, 0x2a, 0x83, 0xa5, 0xb0, 0x0, 0x0, 0xa1,
- 0x0, 0xa0, 0xa0, 0x0, 0x0, 0x0, 0xa2, 0x38,
- 0x20, 0xb0, 0x0, 0x0, 0x0, 0x11, 0x10, 0x0,
- 0x20, 0x0,
-
- /* U+8072 "聲" */
- 0x0, 0x0, 0x50, 0x0, 0x10, 0x10, 0x0, 0x4,
- 0x55, 0xc5, 0xa2, 0xb5, 0xc1, 0x0, 0x1, 0x0,
- 0xa0, 0x31, 0x80, 0xa4, 0x50, 0x2, 0x85, 0x55,
- 0x57, 0x10, 0x28, 0x60, 0x0, 0xb5, 0xa6, 0xb2,
- 0x95, 0xa8, 0x0, 0x1, 0xb5, 0xc6, 0x90, 0x1b,
- 0x70, 0x0, 0x3, 0x60, 0x0, 0x2, 0x85, 0x98,
- 0x50, 0x6, 0x35, 0x55, 0x68, 0x55, 0x89, 0x40,
- 0x2, 0x1, 0xb1, 0x11, 0x17, 0x30, 0x0, 0x0,
- 0x0, 0xb4, 0x44, 0x49, 0x30, 0x0, 0x0, 0x0,
- 0xb5, 0x55, 0x5a, 0x30, 0x20, 0x2, 0x44, 0xc5,
- 0x55, 0x5a, 0x76, 0x80, 0x1, 0x10, 0x0, 0x0,
- 0x7, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2,
- 0x0, 0x0,
-
- /* U+8077 "職" */
- 0x0, 0x0, 0x0, 0x1, 0x0, 0x10, 0x0, 0x5,
- 0x55, 0x5a, 0x3b, 0x10, 0xc0, 0x0, 0x0, 0xa0,
- 0xa2, 0x68, 0x67, 0xb5, 0x30, 0x0, 0xa0, 0xa0,
- 0x50, 0x55, 0xa0, 0xc0, 0x0, 0xc5, 0xc0, 0x73,
- 0x70, 0xa0, 0x0, 0x0, 0xa0, 0xa4, 0x75, 0x85,
- 0xc5, 0xb1, 0x0, 0xa0, 0xa0, 0x31, 0x40, 0xa1,
- 0x90, 0x0, 0xc5, 0xc0, 0xb4, 0xa3, 0x94, 0x70,
- 0x0, 0xa0, 0xa0, 0xa0, 0x81, 0x7b, 0x10, 0x0,
- 0xb3, 0xc4, 0xb5, 0xb1, 0x4b, 0x0, 0xc, 0xa4,
- 0xa0, 0xa0, 0x81, 0x8a, 0x3, 0x0, 0x0, 0xa0,
- 0xa5, 0x84, 0x67, 0xa2, 0x0, 0x0, 0xb0, 0x0,
- 0x26, 0x0, 0xc2, 0x0, 0x0, 0x10, 0x0, 0x10,
- 0x0, 0x0,
-
- /* U+807D "聽" */
- 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x5,
- 0x55, 0x57, 0x80, 0xa, 0x10, 0x30, 0x0, 0xa0,
- 0xa, 0x46, 0x5a, 0x55, 0x71, 0x0, 0xc5, 0x5a,
- 0x15, 0x36, 0x33, 0x60, 0x0, 0xc5, 0x5a, 0x1a,
- 0x56, 0xb2, 0xb0, 0x0, 0xa0, 0xa, 0x1a, 0x44,
- 0xa0, 0xa0, 0x6, 0x75, 0x5a, 0x1b, 0x77, 0xb4,
- 0xa0, 0x5, 0x67, 0x5a, 0x15, 0x11, 0x11, 0x50,
- 0x0, 0x83, 0xa, 0x36, 0x55, 0x55, 0x92, 0x5,
- 0xa9, 0x3a, 0x1, 0x47, 0x11, 0x0, 0x0, 0x82,
- 0xa, 0x34, 0xa2, 0x82, 0xa1, 0x6, 0xa6, 0x2a,
- 0xd1, 0xa0, 0x4, 0x63, 0x4, 0x0, 0xb, 0x10,
- 0xc9, 0x9c, 0x40, 0x0, 0x0, 0x3, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8089 "肉" */
- 0x0, 0x0, 0x31, 0x0, 0x0, 0x0, 0x0, 0x8,
- 0x60, 0x0, 0x0, 0x95, 0x55, 0xa8, 0x55, 0x5a,
- 0x2d, 0x0, 0xc, 0x10, 0x0, 0xc1, 0xd0, 0x2,
- 0xb8, 0x50, 0xc, 0x1d, 0x1, 0x92, 0x9, 0xc0,
- 0xc1, 0xd2, 0x60, 0x97, 0x9, 0xc, 0x1d, 0x10,
- 0xe, 0x20, 0x0, 0xc1, 0xd0, 0x7, 0x57, 0x81,
- 0xc, 0x1d, 0x4, 0x60, 0x6, 0xd0, 0xc1, 0xd3,
- 0x30, 0x0, 0x7, 0xc, 0x1d, 0x0, 0x0, 0x0,
- 0x56, 0xe0, 0xc0, 0x0, 0x0, 0x0, 0xa9, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+80A9 "肩" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2, 0xc0, 0x0, 0x0, 0x0, 0x49, 0x55,
- 0x57, 0x55, 0x5c, 0x30, 0x3, 0x90, 0x0, 0x0,
- 0x0, 0xb1, 0x0, 0x3b, 0x55, 0x55, 0x55, 0x5c,
- 0x10, 0x3, 0x90, 0x10, 0x0, 0x0, 0x20, 0x0,
- 0x48, 0xd, 0x55, 0x55, 0x6c, 0x0, 0x4, 0x70,
- 0xc0, 0x0, 0x2, 0xa0, 0x0, 0x75, 0xd, 0x55,
- 0x55, 0x6a, 0x0, 0xa, 0x10, 0xd5, 0x55, 0x56,
- 0xa0, 0x0, 0x90, 0xc, 0x0, 0x0, 0x2a, 0x0,
- 0x62, 0x0, 0xc0, 0x0, 0x2, 0x90, 0x23, 0x0,
- 0xc, 0x0, 0x6, 0xf6, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0x0,
-
- /* U+80AF "肯" */
- 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0,
- 0x5, 0x70, 0xe, 0x0, 0x1, 0x0, 0x0, 0x6,
- 0x70, 0xd, 0x55, 0x6a, 0x0, 0x0, 0x6, 0x70,
- 0xd, 0x0, 0x0, 0x20, 0x17, 0x57, 0x75, 0x5a,
- 0x55, 0x57, 0xa0, 0x0, 0x2, 0x0, 0x0, 0x0,
- 0x40, 0x0, 0x0, 0xd, 0x55, 0x55, 0x55, 0xe1,
- 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0xd, 0x55, 0x55, 0x55, 0xd0, 0x0, 0x0,
- 0xd, 0x55, 0x55, 0x55, 0xd0, 0x0, 0x0, 0xd,
- 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0x0, 0xc0, 0x0, 0x0, 0xe, 0x0, 0x1,
- 0x6d, 0xa0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x2,
- 0x0, 0x0,
-
- /* U+80B2 "育" */
- 0x0, 0x0, 0x1, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb, 0x10, 0x0, 0x20, 0x6, 0x55, 0x58,
- 0x85, 0x55, 0x6a, 0x10, 0x0, 0x6, 0x92, 0x4,
- 0x10, 0x0, 0x0, 0x39, 0x53, 0x33, 0x4c, 0xa0,
- 0x0, 0x2, 0xa7, 0x53, 0x20, 0xa, 0x10, 0x0,
- 0x9, 0x55, 0x55, 0x5b, 0x30, 0x0, 0x0, 0xa1,
- 0x0, 0x0, 0xa2, 0x0, 0x0, 0xa, 0x65, 0x55,
- 0x5c, 0x20, 0x0, 0x0, 0xa1, 0x0, 0x0, 0xa2,
- 0x0, 0x0, 0xa, 0x65, 0x55, 0x5c, 0x20, 0x0,
- 0x0, 0xa1, 0x0, 0x0, 0xa1, 0x0, 0x0, 0xb,
- 0x10, 0x3, 0x9e, 0x0, 0x0, 0x0, 0x20, 0x0,
- 0x0, 0x10, 0x0,
-
- /* U+80CC "背" */
- 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x2, 0xd0, 0x2c, 0x0, 0x60, 0x6, 0x55, 0x6c,
- 0x2, 0xb5, 0x98, 0x10, 0x0, 0x4, 0xc0, 0x2c,
- 0x0, 0x4, 0x3b, 0x96, 0x4c, 0x1, 0xe6, 0x68,
- 0xb0, 0x20, 0x2, 0x80, 0x4, 0x66, 0x52, 0x0,
- 0xb, 0x55, 0x55, 0x55, 0xe1, 0x0, 0x0, 0xd0,
- 0x0, 0x0, 0xc, 0x0, 0x0, 0xd, 0x55, 0x55,
- 0x55, 0xc0, 0x0, 0x0, 0xd0, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0xd, 0x55, 0x55, 0x55, 0xc0, 0x0,
- 0x0, 0xd0, 0x0, 0x0, 0xc, 0x0, 0x0, 0xd,
- 0x0, 0x1, 0x6c, 0xa0, 0x0, 0x0, 0x50, 0x0,
- 0x0, 0x41, 0x0,
-
- /* U+80F8 "胸" */
- 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x65,
- 0x5a, 0x14, 0x90, 0x0, 0x0, 0x9, 0x20, 0xb0,
- 0x92, 0x0, 0x3, 0x10, 0x92, 0xb, 0xa, 0x57,
- 0x65, 0xa3, 0x9, 0x65, 0xc4, 0x12, 0x79, 0x8,
- 0x20, 0x92, 0xb, 0x2, 0x6a, 0x11, 0x82, 0x9,
- 0x20, 0xb0, 0xb3, 0x90, 0xb8, 0x20, 0x96, 0x5c,
- 0xa, 0x4b, 0xa, 0x81, 0xa, 0x10, 0xb0, 0xa7,
- 0x82, 0xa9, 0x10, 0xb0, 0xb, 0xc, 0x23, 0x2a,
- 0x91, 0xa, 0x0, 0xb0, 0xa5, 0x55, 0xaa, 0x1,
- 0x62, 0x3c, 0x0, 0x0, 0x33, 0xc0, 0x40, 0x9,
- 0x70, 0x0, 0x1, 0x89, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+80FD "能" */
- 0x0, 0x6, 0x0, 0x2, 0x0, 0x0, 0x0, 0x7,
- 0x80, 0x0, 0xb2, 0x3, 0x0, 0x4, 0x60, 0x26,
- 0xb, 0x7, 0xb1, 0x5, 0xa5, 0x55, 0xa5, 0xb6,
- 0x20, 0x20, 0x35, 0x20, 0x2, 0x2b, 0x0, 0x6,
- 0x0, 0xa5, 0x55, 0xb0, 0x8a, 0x99, 0xd1, 0xc,
- 0x0, 0x1a, 0x0, 0x0, 0x0, 0x0, 0xd5, 0x55,
- 0xa0, 0xb1, 0x5, 0x0, 0xc, 0x0, 0x1a, 0xb,
- 0x7, 0xb2, 0x0, 0xd5, 0x55, 0xa0, 0xc8, 0x40,
- 0x0, 0xc, 0x0, 0x1a, 0xb, 0x0, 0x4, 0x0,
- 0xc0, 0x1, 0xa0, 0xb0, 0x0, 0x80, 0xc, 0x5,
- 0xc8, 0xa, 0xba, 0xad, 0x30, 0x20, 0x3, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+8131 "脱" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0xa5, 0xa3, 0x8, 0x0, 0xe1, 0x0, 0x0, 0xb0,
- 0x92, 0x9, 0x44, 0x70, 0x0, 0x0, 0xb0, 0x92,
- 0x23, 0x17, 0x4, 0x0, 0x0, 0xc5, 0xb2, 0xb5,
- 0x55, 0x5c, 0x0, 0x0, 0xb0, 0x92, 0xa0, 0x0,
- 0x1b, 0x0, 0x0, 0xb0, 0x92, 0xa0, 0x0, 0x1b,
- 0x0, 0x0, 0xc5, 0xb2, 0xb8, 0x9b, 0x6b, 0x0,
- 0x0, 0xa0, 0x92, 0x24, 0x6a, 0x0, 0x0, 0x1,
- 0x90, 0x92, 0x5, 0x5a, 0x0, 0x0, 0x4, 0x50,
- 0x92, 0x8, 0x2a, 0x0, 0x40, 0x7, 0x11, 0xa1,
- 0x1a, 0xa, 0x10, 0x70, 0x6, 0x5, 0xd2, 0x70,
- 0x7, 0xb9, 0xc2, 0x10, 0x0, 0x2, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+814A "腊" */
- 0x0, 0x0, 0x0, 0x2, 0x0, 0x20, 0x0, 0x0,
- 0x95, 0xa3, 0x7, 0x80, 0xc1, 0x0, 0x0, 0xb0,
- 0xa1, 0x7, 0x50, 0xb2, 0x30, 0x0, 0xb0, 0xa1,
- 0x6a, 0x85, 0xc5, 0x40, 0x0, 0xc5, 0xc1, 0x7,
- 0x50, 0xb0, 0x0, 0x0, 0xb0, 0xa3, 0x5a, 0x85,
- 0xc5, 0xc2, 0x0, 0xb0, 0xa1, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0xc5, 0xc1, 0x65, 0x55, 0x59, 0x20,
- 0x0, 0xb0, 0xa1, 0x92, 0x0, 0xa, 0x10, 0x1,
- 0x90, 0xa1, 0x96, 0x55, 0x5c, 0x10, 0x3, 0x60,
- 0xa1, 0x92, 0x0, 0xa, 0x10, 0x7, 0x11, 0xb0,
- 0x96, 0x55, 0x5c, 0x10, 0x5, 0x6, 0xd0, 0x91,
- 0x0, 0x9, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8155 "腕" */
- 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x1,
- 0x42, 0x61, 0x0, 0x38, 0x0, 0x0, 0x1, 0xb3,
- 0xc0, 0x75, 0x5c, 0x55, 0x80, 0x1, 0xa0, 0xb2,
- 0x95, 0x0, 0x3, 0x50, 0x1, 0xb5, 0xc2, 0x3a,
- 0x0, 0x2, 0x0, 0x1, 0xa0, 0xb0, 0x68, 0x8b,
- 0x5b, 0x20, 0x1, 0xa0, 0xb0, 0x90, 0xba, 0xa,
- 0x0, 0x1, 0xb5, 0xc2, 0xa1, 0xaa, 0xa, 0x0,
- 0x2, 0x90, 0xb4, 0x49, 0x6a, 0xa, 0x0, 0x3,
- 0x70, 0xb0, 0xa, 0x1a, 0x3d, 0x0, 0x5, 0x40,
- 0xb0, 0x18, 0xa, 0x3, 0x40, 0x8, 0x0, 0xb0,
- 0x80, 0xa, 0x0, 0x70, 0x6, 0x18, 0xc5, 0x10,
- 0x7, 0xa9, 0xc2, 0x10, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8166 "腦" */
- 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0xa5, 0xa3, 0x3d, 0xa, 0x50, 0xd1, 0x0, 0xb0,
- 0xa1, 0x82, 0x19, 0x6, 0x60, 0x0, 0xb0, 0xa2,
- 0x60, 0x70, 0x27, 0x0, 0x0, 0xc5, 0xc1, 0x91,
- 0x47, 0x19, 0x30, 0x0, 0xb0, 0xa1, 0x3b, 0x48,
- 0x61, 0xe0, 0x0, 0xb0, 0xa1, 0x4, 0xa1, 0x10,
- 0x30, 0x0, 0xc5, 0xc1, 0xb5, 0x65, 0x55, 0xd0,
- 0x0, 0xb0, 0xa1, 0xb2, 0x0, 0xd2, 0xb0, 0x0,
- 0x90, 0xa1, 0xb0, 0x7b, 0x50, 0xb0, 0x3, 0x60,
- 0xa1, 0xb0, 0x5b, 0x70, 0xb0, 0x6, 0x10, 0xa0,
- 0xb3, 0x50, 0xb1, 0xb0, 0x6, 0x29, 0xd0, 0xb6,
- 0x55, 0x55, 0xb0, 0x11, 0x0, 0x20, 0x50, 0x0,
- 0x0, 0x50,
-
- /* U+8170 "腰" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8,
- 0x65, 0xc4, 0x55, 0x55, 0x58, 0x70, 0x9, 0x20,
- 0xb1, 0xa, 0xa, 0x0, 0x0, 0x9, 0x20, 0xb5,
- 0x6c, 0x5c, 0x5a, 0x10, 0x9, 0x65, 0xb7, 0x3a,
- 0xa, 0xb, 0x0, 0x9, 0x20, 0xb7, 0x3a, 0xa,
- 0xb, 0x0, 0x9, 0x20, 0xb7, 0x79, 0x57, 0x5c,
- 0x0, 0x9, 0x65, 0xb1, 0x9, 0x50, 0x0, 0x0,
- 0x9, 0x10, 0xb6, 0x5d, 0x55, 0x77, 0x90, 0xa,
- 0x0, 0xb0, 0x64, 0x5, 0x60, 0x0, 0x9, 0x0,
- 0xb0, 0xb4, 0x1b, 0x0, 0x0, 0x17, 0x11, 0xb0,
- 0x2, 0xda, 0x61, 0x0, 0x50, 0x2c, 0x71, 0x58,
- 0x20, 0x5d, 0x0, 0x0, 0x0, 0x13, 0x0, 0x0,
- 0x1, 0x0,
-
- /* U+819D "膝" */
- 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x4,
- 0x37, 0x30, 0x0, 0xb1, 0x4, 0x0, 0xa, 0x2a,
- 0x25, 0x59, 0xf5, 0x57, 0x20, 0xa, 0xa, 0x10,
- 0x2a, 0xb6, 0x82, 0x0, 0xa, 0x5c, 0x12, 0x80,
- 0x70, 0x2e, 0x20, 0xa, 0xa, 0x33, 0x6, 0xc2,
- 0x3, 0x10, 0xa, 0xa, 0x10, 0x3a, 0x6, 0x60,
- 0x0, 0xa, 0x5c, 0x14, 0x70, 0xb1, 0x6d, 0x80,
- 0xa, 0xa, 0x33, 0x55, 0xb2, 0xb2, 0x20, 0xa,
- 0xa, 0x10, 0x8, 0xd4, 0x0, 0x0, 0x9, 0xa,
- 0x10, 0x66, 0xb5, 0x93, 0x0, 0x25, 0x1b, 0x1c,
- 0x50, 0xb0, 0x1d, 0x20, 0x50, 0x5b, 0x0, 0x18,
- 0xe0, 0x1, 0x10, 0x0, 0x0, 0x0, 0x0, 0x10,
- 0x0, 0x0,
-
- /* U+81C9 "臉" */
- 0x0, 0x0, 0x0, 0x0, 0x12, 0x0, 0x0, 0x1,
- 0x85, 0xa1, 0x0, 0x8a, 0x0, 0x0, 0x1, 0x90,
- 0xa0, 0x2, 0x91, 0x50, 0x0, 0x1, 0x90, 0xa0,
- 0x9, 0x0, 0x57, 0x0, 0x1, 0xb5, 0xb0, 0x65,
- 0x55, 0x96, 0xc3, 0x1, 0x90, 0xa2, 0x20, 0x21,
- 0x10, 0x40, 0x1, 0x90, 0xa0, 0xb5, 0xb3, 0xa5,
- 0xb0, 0x1, 0xb5, 0xb0, 0x90, 0x92, 0x70, 0x90,
- 0x1, 0x80, 0xa0, 0xb5, 0xa3, 0x95, 0x90, 0x3,
- 0x60, 0xa0, 0x1b, 0x0, 0x38, 0x0, 0x5, 0x30,
- 0xa0, 0x49, 0x0, 0x74, 0x0, 0x7, 0x12, 0xa0,
- 0x82, 0xb0, 0x96, 0x80, 0x4, 0x9, 0x63, 0x30,
- 0x36, 0x10, 0x74, 0x0, 0x0, 0x1, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+81EA "自" */
- 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0xe2, 0x0,
- 0x0, 0x10, 0x44, 0x0, 0x3, 0xd, 0x56, 0x55,
- 0x55, 0xd4, 0xd0, 0x0, 0x0, 0xc, 0xd, 0x0,
- 0x0, 0x0, 0xc0, 0xd5, 0x55, 0x55, 0x5d, 0xd,
- 0x0, 0x0, 0x0, 0xc0, 0xd0, 0x0, 0x0, 0xc,
- 0xd, 0x55, 0x55, 0x55, 0xd0, 0xd0, 0x0, 0x0,
- 0xc, 0xd, 0x0, 0x0, 0x0, 0xc0, 0xe5, 0x55,
- 0x55, 0x5d, 0x14, 0x0, 0x0, 0x0, 0x40,
-
- /* U+81F3 "至" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4,
- 0x55, 0x55, 0x55, 0x55, 0x6d, 0x20, 0x1, 0x0,
- 0xa, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x58,
- 0x1, 0x50, 0x0, 0x0, 0x0, 0x4, 0x80, 0x0,
- 0x2c, 0x50, 0x0, 0x0, 0x89, 0x45, 0x66, 0x67,
- 0xe5, 0x0, 0x0, 0x98, 0x53, 0xb2, 0x0, 0x34,
- 0x0, 0x0, 0x0, 0x0, 0xa2, 0x0, 0x0, 0x0,
- 0x0, 0x55, 0x55, 0xc7, 0x55, 0xd5, 0x0, 0x0,
- 0x10, 0x0, 0xa2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xa2, 0x0, 0x7, 0x50, 0x26, 0x55, 0x55, 0x55,
- 0x55, 0x55, 0x40,
-
- /* U+81FA "臺" */
- 0x0, 0x0, 0x0, 0x13, 0x0, 0x0, 0x10, 0x6,
- 0x55, 0x55, 0x6c, 0x55, 0x58, 0xa0, 0x0, 0x24,
- 0x44, 0x6b, 0x44, 0x94, 0x0, 0x0, 0x8, 0x55,
- 0x55, 0x55, 0xa1, 0x0, 0x0, 0xc, 0x0, 0x0,
- 0x0, 0xc0, 0x0, 0x1, 0xb, 0x55, 0x55, 0x55,
- 0x90, 0x0, 0x8, 0x55, 0x55, 0x55, 0x55, 0x56,
- 0xd1, 0x4b, 0x35, 0x55, 0x65, 0x56, 0xb5, 0x20,
- 0x0, 0x0, 0x48, 0x30, 0x6, 0x30, 0x0, 0x0,
- 0x1d, 0xc8, 0x88, 0x55, 0xc5, 0x0, 0x0, 0x3,
- 0x0, 0x38, 0x0, 0x82, 0x0, 0x0, 0x36, 0x55,
- 0x7b, 0x55, 0x52, 0x0, 0x4, 0x55, 0x55, 0x7b,
- 0x55, 0x5c, 0x70, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8207 "與" */
- 0x0, 0x0, 0x2, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x24, 0xa7, 0x70, 0x1, 0x16, 0x0, 0x0, 0xd2,
- 0x6, 0x85, 0xa6, 0x4d, 0x20, 0x0, 0xc0, 0x26,
- 0x50, 0x0, 0xc, 0x0, 0x0, 0xc5, 0x59, 0x85,
- 0xb3, 0x6c, 0x0, 0x0, 0xb0, 0x3, 0x0, 0xb0,
- 0xb, 0x0, 0x0, 0xc5, 0x99, 0x40, 0xb2, 0x5c,
- 0x0, 0x0, 0xc0, 0x9, 0x20, 0xb0, 0x1b, 0x0,
- 0x0, 0xc0, 0x9, 0x20, 0xb0, 0xb, 0x50, 0x8,
- 0x65, 0x66, 0x55, 0x65, 0x56, 0x61, 0x0, 0x1,
- 0xd5, 0x0, 0x17, 0x50, 0x0, 0x0, 0x1b, 0x40,
- 0x0, 0x0, 0x5d, 0x40, 0x4, 0x81, 0x0, 0x0,
- 0x0, 0x4, 0xb0, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8208 "興" */
- 0x0, 0x38, 0x68, 0x55, 0x85, 0x15, 0x0, 0x0,
- 0xc1, 0x19, 0x2, 0x65, 0x5c, 0x10, 0x0, 0xb2,
- 0x1a, 0x66, 0x84, 0xb, 0x0, 0x0, 0xb5, 0x39,
- 0x67, 0x75, 0x5c, 0x0, 0x0, 0xa0, 0x19, 0x89,
- 0x64, 0xb, 0x0, 0x0, 0xb8, 0x49, 0x89, 0x65,
- 0x4b, 0x0, 0x0, 0xb1, 0x19, 0x89, 0x64, 0x2b,
- 0x0, 0x0, 0xb0, 0x19, 0x0, 0x64, 0x1b, 0x50,
- 0x6, 0x65, 0x57, 0x55, 0x65, 0x56, 0x61, 0x0,
- 0x0, 0x9a, 0x0, 0x18, 0x60, 0x0, 0x0, 0x9,
- 0x70, 0x0, 0x0, 0x7e, 0x50, 0x3, 0x71, 0x0,
- 0x0, 0x0, 0x5, 0x90, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+8209 "舉" */
- 0x0, 0x0, 0x31, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0xa7, 0x85, 0xd5, 0x95, 0x6c, 0x20, 0x0, 0xb0,
- 0x31, 0xa0, 0x0, 0xb, 0x0, 0x0, 0xb5, 0x65,
- 0xb5, 0xa5, 0x6b, 0x0, 0x0, 0xa0, 0x61, 0x50,
- 0xc0, 0xa, 0x0, 0x0, 0xa6, 0x53, 0xb0, 0xc4,
- 0x6b, 0x0, 0x5, 0xb6, 0x56, 0xb5, 0xd5, 0x5d,
- 0xb1, 0x1, 0x0, 0xc4, 0x25, 0x5, 0x0, 0x0,
- 0x0, 0xa, 0x50, 0x37, 0x24, 0x80, 0x0, 0x1,
- 0x93, 0x46, 0x79, 0x54, 0x2b, 0x50, 0x15, 0x25,
- 0x55, 0x79, 0x55, 0xb6, 0x70, 0x0, 0x1, 0x0,
- 0x37, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x37,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0,
- 0x0, 0x0,
-
- /* U+822A "航" */
- 0x0, 0x3, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x9, 0x30, 0x0, 0x45, 0x0, 0x0, 0x0, 0x99,
- 0x5a, 0x0, 0xb, 0x1, 0x0, 0x0, 0xb0, 0xb,
- 0x45, 0x55, 0x59, 0x50, 0x0, 0xb6, 0x2b, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xb2, 0x6b, 0x9, 0x55,
- 0xb2, 0x0, 0x15, 0xc5, 0x5c, 0xa, 0x10, 0xb0,
- 0x0, 0x1, 0xa1, 0xb, 0xa, 0x10, 0xb0, 0x0,
- 0x0, 0xa6, 0x4b, 0xa, 0x0, 0xb0, 0x0, 0x1,
- 0x81, 0x7b, 0xa, 0x0, 0xb0, 0x0, 0x4, 0x40,
- 0xb, 0x9, 0x0, 0xb0, 0x40, 0x7, 0x1, 0xb,
- 0x43, 0x0, 0xb0, 0x80, 0x14, 0x2, 0xc9, 0x60,
- 0x0, 0x8b, 0xe2, 0x10, 0x0, 0x1, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+822C "般" */
- 0x0, 0x3, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x9, 0x30, 0x7, 0x55, 0x82, 0x0, 0x0, 0xa7,
- 0x5b, 0x2a, 0x10, 0xb0, 0x0, 0x0, 0xb3, 0xb,
- 0xb, 0x0, 0xb0, 0x0, 0x0, 0xb4, 0x7b, 0xa,
- 0x0, 0x8b, 0xc2, 0x0, 0xb0, 0x3b, 0x35, 0x0,
- 0x0, 0x0, 0x5, 0xc5, 0x5c, 0x37, 0x55, 0x7c,
- 0x0, 0x0, 0xb2, 0xb, 0x4, 0x10, 0x75, 0x0,
- 0x0, 0xb6, 0x4b, 0x0, 0x60, 0xc0, 0x0, 0x1,
- 0x91, 0x7b, 0x0, 0x79, 0x60, 0x0, 0x4, 0x50,
- 0xb, 0x0, 0x4f, 0x30, 0x0, 0x8, 0x2, 0x3c,
- 0x4, 0x91, 0xc8, 0x10, 0x24, 0x0, 0x78, 0x64,
- 0x0, 0x9, 0xc1, 0x0, 0x0, 0x1, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8239 "船" */
- 0x0, 0x2, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x8, 0x40, 0x0, 0xa5, 0x5b, 0x0, 0x0, 0x98,
- 0x5b, 0x20, 0xa0, 0xb, 0x0, 0x0, 0xb1, 0xb,
- 0x0, 0xa0, 0xb, 0x0, 0x0, 0xb5, 0x5b, 0x2,
- 0x80, 0xb, 0x0, 0x0, 0xb0, 0x4b, 0x7, 0x20,
- 0xb, 0xb6, 0x16, 0xc5, 0x5c, 0x34, 0x0, 0x0,
- 0x0, 0x0, 0xa1, 0xb, 0x11, 0x75, 0x56, 0x60,
- 0x0, 0x96, 0x4b, 0x2, 0x90, 0x5, 0x60, 0x2,
- 0x70, 0x6b, 0x1, 0x90, 0x5, 0x50, 0x5, 0x30,
- 0xb, 0x1, 0x90, 0x5, 0x50, 0x8, 0x1, 0x4b,
- 0x2, 0xb5, 0x59, 0x60, 0x13, 0x0, 0x67, 0x2,
- 0x80, 0x4, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+826F "良" */
- 0x0, 0x1, 0x10, 0x0, 0x0, 0x0, 0x0, 0xc,
- 0x20, 0x0, 0x0, 0x8, 0x55, 0xb6, 0x59, 0x30,
- 0x0, 0xc0, 0x0, 0x0, 0xa2, 0x0, 0xc, 0x0,
- 0x0, 0xa, 0x20, 0x0, 0xd5, 0x55, 0x55, 0xc2,
- 0x0, 0xc, 0x0, 0x0, 0xa, 0x20, 0x0, 0xd5,
- 0x65, 0x55, 0xb2, 0x0, 0xc, 0x2, 0x30, 0x5,
- 0xd1, 0x0, 0xc0, 0x8, 0x37, 0x50, 0x0, 0xc,
- 0x0, 0x3b, 0x10, 0x0, 0x0, 0xc5, 0x71, 0x2b,
- 0x94, 0x10, 0xd, 0x50, 0x0, 0x5, 0xce, 0x40,
- 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+8272 "色" */
- 0x0, 0x0, 0x31, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd5, 0x0, 0x50, 0x0, 0x0, 0x0, 0x7,
- 0x95, 0x58, 0xe3, 0x0, 0x0, 0x0, 0x2a, 0x0,
- 0x9, 0x10, 0x0, 0x0, 0x1, 0xd6, 0x55, 0x86,
- 0x55, 0xa1, 0x0, 0x16, 0x82, 0x0, 0xb0, 0x0,
- 0xb0, 0x0, 0x0, 0x82, 0x0, 0xb0, 0x0, 0xb0,
- 0x0, 0x0, 0x87, 0x55, 0xc5, 0x55, 0xc0, 0x0,
- 0x0, 0x82, 0x0, 0x0, 0x0, 0xa0, 0x0, 0x0,
- 0x82, 0x0, 0x0, 0x0, 0x0, 0x30, 0x0, 0x82,
- 0x0, 0x0, 0x0, 0x0, 0x60, 0x0, 0x83, 0x0,
- 0x0, 0x0, 0x1, 0xa0, 0x0, 0x5d, 0xaa, 0xaa,
- 0xaa, 0xac, 0xa0,
-
- /* U+8282 "节" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0x0, 0xc, 0x1, 0xa0, 0x6, 0x55, 0x5d,
- 0x55, 0x5d, 0x55, 0x52, 0x0, 0x0, 0xb, 0x0,
- 0xa, 0x0, 0x0, 0x0, 0x45, 0x55, 0x55, 0x55,
- 0x5a, 0x0, 0x0, 0x10, 0x0, 0xb0, 0x0, 0x2b,
- 0x0, 0x0, 0x0, 0x0, 0xb0, 0x0, 0x2b, 0x0,
- 0x0, 0x0, 0x0, 0xb0, 0x0, 0x2b, 0x0, 0x0,
- 0x0, 0x0, 0xb0, 0x0, 0x2a, 0x0, 0x0, 0x0,
- 0x0, 0xb0, 0x58, 0xe8, 0x0, 0x0, 0x0, 0x0,
- 0xb0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0xc0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0,
- 0x0, 0x0,
-
- /* U+82B1 "花" */
- 0x0, 0x0, 0x20, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x84, 0x1, 0xc0, 0x0, 0x0, 0x25, 0x55,
- 0xa7, 0x56, 0xd5, 0x5c, 0x80, 0x1, 0x0, 0x73,
- 0x1, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x71, 0x0,
- 0x50, 0x0, 0x0, 0x0, 0x3, 0xb0, 0x7, 0x20,
- 0x2, 0x0, 0x0, 0xb, 0x20, 0xb, 0x10, 0x8c,
- 0x0, 0x0, 0x5f, 0x10, 0xb, 0x2a, 0x80, 0x0,
- 0x1, 0x9c, 0x0, 0xb, 0xb3, 0x0, 0x0, 0x27,
- 0xc, 0x2, 0x7d, 0x10, 0x0, 0x0, 0x10, 0xc,
- 0x12, 0xa, 0x10, 0x0, 0x50, 0x0, 0xc, 0x0,
- 0xa, 0x10, 0x0, 0x80, 0x0, 0xc, 0x0, 0x7,
- 0xca, 0xab, 0xc0, 0x0, 0x3, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+82E5 "若" */
- 0x0, 0x0, 0x21, 0x0, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x68, 0x0, 0xc2, 0x0, 0x0, 0x5, 0x55,
- 0x99, 0x55, 0xd5, 0x5c, 0x30, 0x0, 0x0, 0x56,
- 0x10, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x33, 0xd0,
- 0x20, 0x0, 0x0, 0x0, 0x0, 0x6, 0x70, 0x0,
- 0x3, 0x40, 0x6, 0x55, 0x5d, 0x55, 0x55, 0x56,
- 0x50, 0x0, 0x0, 0x76, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x4, 0xe5, 0x55, 0x57, 0x90, 0x0, 0x0,
- 0x4a, 0xc0, 0x0, 0x4, 0x80, 0x0, 0x5, 0x50,
- 0xc0, 0x0, 0x4, 0x80, 0x0, 0x10, 0x0, 0xc5,
- 0x55, 0x58, 0x80, 0x0, 0x0, 0x0, 0xc0, 0x0,
- 0x4, 0x70, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+82E6 "苦" */
- 0x0, 0x0, 0x20, 0x0, 0x2, 0x0, 0x0, 0x0,
- 0x0, 0x76, 0x0, 0xd, 0x0, 0x10, 0x6, 0x55,
- 0xa8, 0x55, 0x5c, 0x56, 0xc2, 0x0, 0x0, 0x74,
- 0x10, 0xb, 0x0, 0x0, 0x0, 0x0, 0x31, 0xa4,
- 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa1, 0x0,
- 0x1, 0x80, 0x6, 0x55, 0x55, 0xc5, 0x55, 0x55,
- 0x51, 0x0, 0x0, 0x0, 0xb0, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x55, 0x85, 0x55, 0xb3, 0x0, 0x0,
- 0xc, 0x0, 0x0, 0x0, 0xa1, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0x0, 0xa1, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0x0, 0xa1, 0x0, 0x0, 0xd, 0x55, 0x55,
- 0x55, 0xc1, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0,
- 0x10, 0x0,
-
- /* U+82F1 "英" */
- 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x67, 0x0, 0x1c, 0x0, 0x30, 0x6, 0x55,
- 0x88, 0x55, 0x5c, 0x56, 0xb2, 0x0, 0x0, 0x55,
- 0x42, 0xa, 0x0, 0x0, 0x0, 0x0, 0x11, 0x84,
- 0x1, 0x0, 0x0, 0x0, 0xa, 0x55, 0xb7, 0x55,
- 0xc3, 0x0, 0x0, 0xb, 0x0, 0x92, 0x0, 0xa0,
- 0x0, 0x0, 0xb, 0x0, 0xa1, 0x0, 0xa0, 0x0,
- 0x5, 0x5c, 0x55, 0xd5, 0x55, 0xc6, 0xd2, 0x1,
- 0x0, 0x2, 0xb3, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0xb, 0x30, 0x74, 0x0, 0x0, 0x0, 0x1, 0xa5,
- 0x0, 0x8, 0xa3, 0x0, 0x0, 0x57, 0x10, 0x0,
- 0x0, 0x3c, 0xd2, 0x3, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x10,
-
- /* U+8336 "茶" */
- 0x0, 0x0, 0x30, 0x0, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0xb3, 0x0, 0xc1, 0x3, 0x0, 0x6, 0x55,
- 0xc6, 0x55, 0xd5, 0x59, 0x60, 0x0, 0x0, 0xb2,
- 0xc1, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x29, 0x65,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x86, 0x1, 0x81,
- 0x0, 0x0, 0x0, 0x18, 0x40, 0x82, 0x9, 0xa4,
- 0x10, 0x4, 0x50, 0x0, 0xc0, 0x2, 0x8b, 0x60,
- 0x0, 0x55, 0x55, 0xd5, 0x57, 0x70, 0x0, 0x0,
- 0x1, 0xa0, 0xc0, 0x33, 0x0, 0x0, 0x0, 0xa,
- 0x40, 0xc0, 0x5, 0xa1, 0x0, 0x0, 0x82, 0x10,
- 0xc0, 0x0, 0x6c, 0x0, 0x4, 0x0, 0x2b, 0xd0,
- 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8377 "荷" */
- 0x0, 0x0, 0x2, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0x49, 0x0, 0x10, 0x5, 0x55,
- 0x5d, 0x55, 0x79, 0x56, 0xc2, 0x0, 0x0, 0xc,
- 0x0, 0x36, 0x0, 0x0, 0x0, 0x3, 0xa3, 0x0,
- 0x11, 0x0, 0x30, 0x0, 0xa, 0x46, 0x55, 0x55,
- 0x59, 0xa3, 0x0, 0x4b, 0x0, 0x0, 0x10, 0x1a,
- 0x0, 0x1, 0xad, 0x8, 0x65, 0xe1, 0x1a, 0x0,
- 0x7, 0x1b, 0x8, 0x30, 0xb0, 0x1a, 0x0, 0x0,
- 0xb, 0x8, 0x30, 0xb0, 0x1a, 0x0, 0x0, 0xb,
- 0x8, 0x75, 0xb0, 0x1a, 0x0, 0x0, 0xb, 0x6,
- 0x10, 0x0, 0x1a, 0x0, 0x0, 0x1c, 0x0, 0x0,
- 0x5, 0xc8, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0,
- 0x20, 0x0,
-
- /* U+83D3 "菓" */
- 0x0, 0x0, 0x10, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x5a, 0x0, 0x48, 0x0, 0x20, 0x6, 0x55,
- 0x8a, 0x55, 0x89, 0x57, 0xb2, 0x0, 0x0, 0x47,
- 0x0, 0x46, 0x0, 0x0, 0x0, 0xb, 0x55, 0x58,
- 0x55, 0xd4, 0x0, 0x0, 0xb, 0x0, 0x1a, 0x0,
- 0xc0, 0x0, 0x0, 0xc, 0x55, 0x6c, 0x55, 0xd0,
- 0x0, 0x0, 0xc, 0x55, 0x6c, 0x55, 0xd0, 0x0,
- 0x0, 0x4, 0x0, 0x1a, 0x0, 0x38, 0x0, 0x2,
- 0x65, 0x57, 0xdc, 0x85, 0x56, 0x40, 0x0, 0x0,
- 0x2c, 0x4a, 0x36, 0x0, 0x0, 0x0, 0x5, 0x91,
- 0x1a, 0x4, 0xb4, 0x0, 0x4, 0x63, 0x0, 0x2a,
- 0x0, 0x2b, 0xd2, 0x0, 0x0, 0x0, 0x1, 0x0,
- 0x0, 0x0,
-
- /* U+83DC "菜" */
- 0x0, 0x0, 0x4, 0x0, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0xc1, 0x1, 0x40, 0x6, 0x55,
- 0x5d, 0x55, 0xd5, 0x57, 0x90, 0x0, 0x0, 0xa,
- 0x0, 0x73, 0x81, 0x0, 0x0, 0x34, 0x56, 0x78,
- 0x97, 0x62, 0x0, 0x0, 0x11, 0x0, 0x54, 0x0,
- 0xb1, 0x0, 0x0, 0xb, 0x30, 0xb, 0x4, 0x70,
- 0x0, 0x0, 0x3, 0x30, 0x38, 0x7, 0x0, 0x20,
- 0x17, 0x55, 0x55, 0xab, 0x65, 0x58, 0xb1, 0x0,
- 0x0, 0xa, 0x88, 0x60, 0x0, 0x0, 0x0, 0x0,
- 0x95, 0x38, 0x19, 0x10, 0x0, 0x0, 0x29, 0x20,
- 0x38, 0x2, 0xc8, 0x30, 0x5, 0x50, 0x0, 0x38,
- 0x0, 0x7, 0x91, 0x0, 0x0, 0x0, 0x11, 0x0,
- 0x0, 0x0,
-
- /* U+843D "落" */
- 0x0, 0x0, 0x20, 0x0, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0xb2, 0x0, 0xc0, 0x3, 0x20, 0x6, 0x55,
- 0xc5, 0x55, 0xc5, 0x58, 0x70, 0x1, 0x40, 0x60,
- 0x36, 0x50, 0x0, 0x0, 0x0, 0x86, 0x10, 0xa7,
- 0x55, 0x80, 0x0, 0x0, 0x2, 0x42, 0x84, 0x8,
- 0x40, 0x0, 0xa, 0x23, 0x27, 0x5, 0x77, 0x0,
- 0x0, 0x3, 0x47, 0x21, 0x6, 0xc6, 0x0, 0x0,
- 0x0, 0x17, 0x0, 0x76, 0x5, 0xc7, 0x30, 0x3,
- 0xb3, 0x37, 0xa5, 0x55, 0xb7, 0x70, 0x2, 0xd0,
- 0x2, 0x90, 0x0, 0xb0, 0x0, 0x0, 0xd0, 0x2,
- 0x90, 0x0, 0xb0, 0x0, 0x0, 0xb0, 0x2, 0xb5,
- 0x55, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0,
- 0x0, 0x0,
-
- /* U+8449 "葉" */
- 0x0, 0x0, 0x20, 0x0, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x91, 0x0, 0xb1, 0x6, 0x60, 0x16, 0x55,
- 0xb5, 0x55, 0xc5, 0x55, 0x50, 0x0, 0x6, 0x35,
- 0x10, 0x50, 0x0, 0x0, 0x0, 0xa, 0x1b, 0x10,
- 0xa3, 0x16, 0x0, 0x4, 0x5c, 0x5c, 0x55, 0xb6,
- 0x55, 0x10, 0x0, 0xa, 0xb, 0x55, 0xb1, 0x0,
- 0x0, 0x0, 0xc, 0x57, 0x55, 0x75, 0xb1, 0x0,
- 0x0, 0x2, 0x0, 0xc0, 0x0, 0x4, 0x0, 0x5,
- 0x55, 0x5a, 0xe7, 0x55, 0x6a, 0x40, 0x0, 0x0,
- 0x79, 0xc1, 0x60, 0x0, 0x0, 0x0, 0x19, 0x50,
- 0xc0, 0x1a, 0x71, 0x0, 0x14, 0x50, 0x0, 0xd0,
- 0x0, 0x6e, 0x90, 0x0, 0x0, 0x0, 0x30, 0x0,
- 0x0, 0x0,
-
- /* U+8457 "著" */
- 0x0, 0x0, 0x10, 0x0, 0x20, 0x0, 0x0, 0x0,
- 0x6, 0x70, 0xc, 0x10, 0x60, 0x5, 0x55, 0x98,
- 0x55, 0xc5, 0x57, 0x30, 0x0, 0x5, 0x38, 0x27,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xb0, 0x61, 0xb2,
- 0x0, 0x0, 0x65, 0x5c, 0x56, 0xd6, 0x0, 0x4,
- 0x55, 0x55, 0xc5, 0xd8, 0x5b, 0x70, 0x10, 0x0,
- 0x4, 0xa1, 0x0, 0x0, 0x0, 0x0, 0x6a, 0xb5,
- 0x55, 0xa0, 0x0, 0x1, 0x7e, 0x10, 0x0, 0xb,
- 0x0, 0x15, 0x50, 0xb5, 0x55, 0x55, 0xb0, 0x0,
- 0x0, 0xb, 0x0, 0x0, 0xb, 0x0, 0x0, 0x0,
- 0xb5, 0x55, 0x55, 0xc0, 0x0, 0x0, 0x2, 0x0,
- 0x0, 0x2, 0x0,
-
- /* U+8535 "蔵" */
- 0x0, 0x0, 0x1, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x1b, 0x0, 0xa3, 0x2, 0x40, 0x6, 0x55,
- 0x6b, 0x55, 0xb6, 0x57, 0x80, 0x0, 0x0, 0x5,
- 0x0, 0x74, 0x80, 0x0, 0x0, 0x41, 0x11, 0x11,
- 0x97, 0x76, 0x50, 0x0, 0xb4, 0x44, 0x46, 0x88,
- 0x44, 0x30, 0x0, 0xb1, 0xb6, 0x87, 0x56, 0x6,
- 0x20, 0x0, 0xb1, 0x93, 0x54, 0x38, 0xc, 0x30,
- 0x0, 0xb1, 0xb5, 0x5c, 0x1b, 0x39, 0x0, 0x0,
- 0xb1, 0xb5, 0x6b, 0xb, 0xb1, 0x0, 0x0, 0x91,
- 0x93, 0x52, 0x9, 0xa0, 0x40, 0x5, 0x22, 0xa5,
- 0x68, 0x75, 0xa5, 0x70, 0x5, 0x0, 0x0, 0x16,
- 0x20, 0xa, 0xc0, 0x10, 0x0, 0x0, 0x10, 0x0,
- 0x0, 0x20,
-
- /* U+8584 "薄" */
- 0x0, 0x0, 0x3, 0x0, 0x21, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x0, 0x58, 0x1, 0x50, 0x3, 0x65,
- 0x5c, 0x55, 0x8a, 0x85, 0x60, 0x1, 0x81, 0x4,
- 0x0, 0xa1, 0x83, 0x20, 0x0, 0x46, 0x26, 0x55,
- 0xd5, 0x56, 0x70, 0x4, 0x0, 0x47, 0x55, 0xc5,
- 0x5c, 0x0, 0x5, 0x84, 0x9, 0x54, 0xc4, 0x4b,
- 0x0, 0x0, 0x26, 0x9, 0x31, 0xb1, 0x1b, 0x0,
- 0x0, 0x44, 0x9, 0x65, 0xc5, 0x6a, 0x0, 0x5,
- 0xe0, 0x56, 0x55, 0x65, 0xd5, 0xb1, 0x0, 0xc0,
- 0x11, 0x70, 0x0, 0xb0, 0x0, 0x0, 0xe0, 0x0,
- 0x54, 0x0, 0xb0, 0x0, 0x0, 0xa0, 0x0, 0x0,
- 0x5d, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
- 0x0, 0x0,
-
- /* U+85AC "薬" */
- 0x0, 0x0, 0x2, 0x0, 0x11, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x3a, 0x0, 0x81, 0x6, 0x55,
- 0x5c, 0x55, 0x7a, 0x55, 0x52, 0x0, 0x0, 0x2,
- 0x2a, 0x11, 0x0, 0x0, 0x1, 0x72, 0x17, 0x95,
- 0x59, 0x2, 0x60, 0x0, 0x2a, 0x19, 0x0, 0xa,
- 0x58, 0x30, 0x0, 0x0, 0x4b, 0x55, 0x5a, 0x40,
- 0x0, 0x4, 0x96, 0x29, 0x0, 0xa, 0x1a, 0x80,
- 0x3, 0x10, 0x19, 0x57, 0x57, 0x0, 0x60, 0x3,
- 0x55, 0x55, 0x5e, 0x55, 0x57, 0xd1, 0x1, 0x0,
- 0x9, 0x9b, 0x51, 0x0, 0x0, 0x0, 0x2, 0xa5,
- 0xb, 0x7, 0x82, 0x0, 0x3, 0x55, 0x0, 0xb,
- 0x0, 0x3c, 0xd3, 0x0, 0x0, 0x0, 0x2, 0x0,
- 0x0, 0x0,
-
- /* U+85DD "藝" */
- 0x0, 0x0, 0x2, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x0, 0x1b, 0x0, 0x80, 0x5, 0x55,
- 0x5c, 0x55, 0x6a, 0x55, 0x52, 0x0, 0x0, 0xa0,
- 0x10, 0x7, 0x0, 0x0, 0x0, 0x65, 0xb5, 0x73,
- 0x5c, 0x58, 0x0, 0x3, 0x75, 0x96, 0x93, 0xa,
- 0x18, 0x0, 0x1, 0x92, 0xb6, 0x90, 0x5b, 0x19,
- 0x0, 0x3, 0x26, 0xb5, 0x30, 0x95, 0x7b, 0x40,
- 0x0, 0x78, 0xa5, 0x35, 0x21, 0x16, 0xc0, 0x0,
- 0x33, 0x65, 0x55, 0x57, 0x72, 0x20, 0x1, 0x65,
- 0x55, 0x95, 0x55, 0x5a, 0x30, 0x0, 0x0, 0x18,
- 0x71, 0x27, 0x30, 0x0, 0x0, 0x8, 0xea, 0x87,
- 0x54, 0xb4, 0x0, 0x0, 0x2, 0x10, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8607 "蘇" */
- 0x0, 0x0, 0x2, 0x0, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x1b, 0x0, 0xa2, 0x2, 0x50, 0x6, 0x55,
- 0x5b, 0x55, 0xc5, 0x55, 0x50, 0x0, 0x8, 0x24,
- 0x0, 0x40, 0x15, 0x0, 0x0, 0x3c, 0x5a, 0x13,
- 0x5b, 0x86, 0x10, 0x0, 0xa0, 0x44, 0x0, 0xa,
- 0x0, 0x0, 0x6, 0xb5, 0xa5, 0xa5, 0x6d, 0x59,
- 0x50, 0x0, 0x90, 0x91, 0x80, 0x9d, 0x50, 0x0,
- 0x0, 0xb5, 0xb5, 0x80, 0x9a, 0x70, 0x0, 0x0,
- 0x90, 0x91, 0x93, 0x5a, 0x29, 0x0, 0x0, 0x85,
- 0x55, 0x45, 0xb, 0x9, 0xa1, 0x0, 0x43, 0x65,
- 0x60, 0xb, 0x0, 0x20, 0xa, 0x2a, 0x44, 0x70,
- 0xb, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x1,
- 0x0, 0x0,
-
- /* U+8655 "處" */
- 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd1, 0x0, 0x50, 0x0, 0x0, 0x0,
- 0x0, 0xd5, 0x55, 0x61, 0x0, 0x0, 0xb5, 0x55,
- 0xa5, 0x55, 0x59, 0x90, 0x0, 0xb0, 0x0, 0xd1,
- 0x3, 0x16, 0x0, 0x0, 0xb2, 0x34, 0xc4, 0x55,
- 0x32, 0x0, 0x0, 0xb0, 0x20, 0xb9, 0x88, 0x9a,
- 0x0, 0x0, 0xb0, 0xa4, 0x1, 0x20, 0x20, 0x0,
- 0x0, 0xa0, 0xc5, 0x8b, 0x87, 0xc2, 0x0, 0x0,
- 0x95, 0x80, 0x93, 0x91, 0xa0, 0x20, 0x3, 0x57,
- 0x36, 0xa0, 0x90, 0xa0, 0x70, 0x6, 0x10, 0x2c,
- 0x97, 0x10, 0x38, 0x70, 0x13, 0x5, 0x60, 0x17,
- 0xac, 0xdd, 0xb1, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+884C "行" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x8, 0x80, 0x0, 0x0, 0x6, 0x0, 0x0, 0x3a,
- 0x0, 0x55, 0x55, 0x56, 0x10, 0x1, 0x80, 0x50,
- 0x0, 0x0, 0x0, 0x0, 0x4, 0x1, 0xd1, 0x0,
- 0x0, 0x0, 0x20, 0x0, 0xb, 0x34, 0x65, 0x59,
- 0x57, 0x90, 0x0, 0x7e, 0x10, 0x0, 0xc, 0x0,
- 0x0, 0x4, 0x6c, 0x0, 0x0, 0xc, 0x0, 0x0,
- 0x13, 0xc, 0x0, 0x0, 0xc, 0x0, 0x0, 0x0,
- 0xc, 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0xc, 0x0,
- 0x12, 0x2c, 0x0, 0x0, 0x0, 0xc, 0x0, 0x6,
- 0xe8, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x10,
- 0x0, 0x0,
-
- /* U+8853 "術" */
- 0x0, 0x21, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x87, 0x0, 0xd2, 0x2, 0x55, 0x90, 0x1, 0x90,
- 0x0, 0xb5, 0x60, 0x10, 0x0, 0x7, 0x9, 0x0,
- 0xb0, 0x60, 0x0, 0x0, 0x20, 0x5a, 0x33, 0xc6,
- 0x50, 0x0, 0x50, 0x0, 0xd1, 0x2a, 0xc1, 0x15,
- 0x6c, 0x51, 0x7, 0xd2, 0xb, 0xc4, 0x0, 0xb,
- 0x0, 0x32, 0xb0, 0x19, 0xb6, 0x90, 0xb, 0x0,
- 0x0, 0xb0, 0x63, 0xb0, 0x70, 0xb, 0x0, 0x0,
- 0xb0, 0x70, 0xb0, 0x0, 0xb, 0x0, 0x0, 0xb4,
- 0x10, 0xb0, 0x0, 0xb, 0x0, 0x0, 0xb1, 0x0,
- 0xb0, 0x0, 0xb, 0x0, 0x0, 0xb0, 0x0, 0xb0,
- 0x6, 0xd9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x10, 0x0,
-
- /* U+8868 "表" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc1, 0x0, 0x1, 0x0, 0x1, 0x65,
- 0x55, 0xd5, 0x55, 0x6c, 0x10, 0x0, 0x0, 0x0,
- 0xc0, 0x0, 0x20, 0x0, 0x0, 0x26, 0x55, 0xd5,
- 0x55, 0x92, 0x0, 0x0, 0x0, 0x0, 0xc0, 0x0,
- 0x2, 0x30, 0x6, 0x55, 0x57, 0xe5, 0x55, 0x57,
- 0x70, 0x0, 0x0, 0xc, 0x45, 0x0, 0xc3, 0x0,
- 0x0, 0x0, 0xc4, 0x8, 0x28, 0x20, 0x0, 0x0,
- 0x3a, 0xe0, 0x1, 0xb0, 0x0, 0x0, 0x16, 0x50,
- 0xd0, 0x0, 0x4a, 0x10, 0x0, 0x0, 0x0, 0xd2,
- 0x73, 0x3, 0xda, 0x61, 0x0, 0x0, 0xe9, 0x0,
- 0x0, 0x7, 0x40, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+88AB "被" */
- 0x0, 0x20, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
- 0x49, 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0x6,
- 0x0, 0x0, 0xb, 0x0, 0x0, 0x5, 0x55, 0xc1,
- 0xb5, 0x5c, 0x55, 0xe1, 0x0, 0x2, 0xa0, 0xb0,
- 0xb, 0x5, 0x30, 0x0, 0xa, 0x33, 0xb0, 0xb,
- 0x0, 0x0, 0x0, 0x3b, 0x65, 0xc5, 0x5b, 0x5a,
- 0x30, 0x0, 0x8d, 0x60, 0xc1, 0x30, 0xd, 0x0,
- 0x6, 0xb, 0x94, 0xb0, 0x60, 0x66, 0x0, 0x0,
- 0xb, 0x15, 0xa0, 0x55, 0xc0, 0x0, 0x0, 0xb,
- 0x4, 0x50, 0xe, 0x50, 0x0, 0x0, 0xb, 0x8,
- 0x1, 0x94, 0xa6, 0x0, 0x0, 0xc, 0x43, 0x56,
- 0x0, 0x8, 0xd3, 0x0, 0x1, 0x11, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+88CF "裏" */
- 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x3a, 0x0, 0x5, 0x20, 0x5, 0x55,
- 0x55, 0x55, 0x55, 0x65, 0x30, 0x0, 0xc, 0x55,
- 0x69, 0x55, 0xd1, 0x0, 0x0, 0xc, 0x55, 0x6b,
- 0x55, 0xc0, 0x0, 0x0, 0xb, 0x0, 0x19, 0x0,
- 0xb0, 0x0, 0x0, 0x7, 0x55, 0x6b, 0x55, 0x70,
- 0x0, 0x0, 0x36, 0x55, 0x6b, 0x55, 0x74, 0x0,
- 0x4, 0x65, 0x55, 0x8a, 0x55, 0x58, 0x80, 0x0,
- 0x0, 0x7, 0xa5, 0x1, 0xc4, 0x0, 0x0, 0x4,
- 0xba, 0x3, 0x87, 0x20, 0x0, 0x3, 0x64, 0x48,
- 0x15, 0x4a, 0x85, 0x30, 0x0, 0x0, 0x6d, 0x70,
- 0x0, 0x49, 0x40, 0x0, 0x0, 0x1, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+88DC "補" */
- 0x0, 0x20, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0,
- 0x1b, 0x0, 0x0, 0xd, 0x37, 0x0, 0x0, 0x7,
- 0x0, 0x0, 0xb, 0x7, 0x40, 0x6, 0x55, 0xc4,
- 0x65, 0x5c, 0x55, 0xb3, 0x0, 0x3, 0x90, 0x20,
- 0xb, 0x0, 0x30, 0x0, 0xa, 0x23, 0xb5, 0x5c,
- 0x57, 0xb0, 0x0, 0x4c, 0x57, 0xb0, 0xb, 0x2,
- 0x90, 0x1, 0x8c, 0x70, 0xb5, 0x5c, 0x56, 0x90,
- 0x6, 0xb, 0x95, 0xb0, 0xb, 0x2, 0x90, 0x10,
- 0xb, 0x17, 0xb5, 0x5c, 0x56, 0x90, 0x0, 0xb,
- 0x0, 0xb0, 0xb, 0x2, 0x90, 0x0, 0xb, 0x0,
- 0xb0, 0xb, 0x2, 0x90, 0x0, 0xc, 0x0, 0xb0,
- 0xa, 0x3b, 0x60, 0x0, 0x1, 0x0, 0x20, 0x0,
- 0x1, 0x0,
-
- /* U+88E1 "裡" */
- 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1b, 0x0, 0x30, 0x0, 0x4, 0x0, 0x0, 0x7,
- 0x0, 0xb5, 0x5c, 0x5c, 0x20, 0x6, 0x55, 0xc1,
- 0xa0, 0xb, 0xa, 0x0, 0x0, 0x3, 0x90, 0xa5,
- 0x5c, 0x5c, 0x0, 0x0, 0xa, 0x23, 0xa0, 0xb,
- 0xa, 0x0, 0x0, 0x3c, 0x48, 0xa0, 0xb, 0xa,
- 0x0, 0x0, 0x8c, 0x70, 0xb5, 0x5c, 0x5b, 0x0,
- 0x6, 0xb, 0x95, 0x40, 0xb, 0x0, 0x0, 0x10,
- 0xb, 0x17, 0x0, 0xb, 0x6, 0x10, 0x0, 0xb,
- 0x0, 0x75, 0x5c, 0x55, 0x20, 0x0, 0xb, 0x0,
- 0x0, 0xb, 0x0, 0x0, 0x0, 0xc, 0x5, 0x55,
- 0x5c, 0x57, 0xc1, 0x0, 0x3, 0x1, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+88FD "製" */
- 0x0, 0x10, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x84, 0xa3, 0x1, 0x0, 0xb, 0x20, 0x2, 0x95,
- 0xc5, 0x68, 0x8, 0xb, 0x0, 0x7, 0x55, 0xc5,
- 0x5a, 0x1b, 0xb, 0x0, 0x0, 0x75, 0xc5, 0x58,
- 0xb, 0xb, 0x0, 0x0, 0xa0, 0xa0, 0xa, 0xb,
- 0xb, 0x0, 0x0, 0xa0, 0xa1, 0x79, 0x2, 0x1b,
- 0x0, 0x0, 0x60, 0x90, 0x64, 0x0, 0x7a, 0x0,
- 0x4, 0x55, 0x55, 0x5b, 0x55, 0x5d, 0x60, 0x1,
- 0x0, 0x3a, 0x25, 0x0, 0x73, 0x0, 0x0, 0x17,
- 0xd1, 0x0, 0x76, 0x50, 0x0, 0x15, 0x40, 0xa1,
- 0x55, 0x1a, 0x51, 0x0, 0x0, 0x0, 0xbb, 0x30,
- 0x0, 0x6c, 0x80, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8907 "複" */
- 0x0, 0x20, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0,
- 0x57, 0x0, 0xc, 0x40, 0x0, 0x10, 0x0, 0xa,
- 0x0, 0x1d, 0x55, 0x56, 0xa1, 0x5, 0x55, 0xa0,
- 0x76, 0x0, 0x4, 0x0, 0x0, 0x3, 0xa1, 0x6c,
- 0x55, 0x5c, 0x20, 0x0, 0xa, 0x25, 0xc, 0x55,
- 0x5c, 0x0, 0x0, 0x3b, 0x57, 0xb, 0x0, 0xb,
- 0x0, 0x0, 0x9c, 0x70, 0x9, 0xd5, 0x58, 0x0,
- 0x7, 0xa, 0x94, 0x4, 0xa5, 0x5b, 0x0, 0x0,
- 0xa, 0x16, 0x17, 0x50, 0x67, 0x0, 0x0, 0xa,
- 0x0, 0x40, 0x46, 0xa0, 0x0, 0x0, 0xa, 0x0,
- 0x0, 0x6d, 0x60, 0x0, 0x0, 0xa, 0x1, 0x57,
- 0x30, 0x5c, 0xa3, 0x0, 0x1, 0x12, 0x0, 0x0,
- 0x0, 0x10,
-
- /* U+897F "西" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0x20, 0x65,
- 0x55, 0xc5, 0x5c, 0x55, 0x53, 0x0, 0x0, 0xb,
- 0x0, 0xb0, 0x0, 0x0, 0x7, 0x55, 0xc5, 0x5c,
- 0x55, 0x92, 0x0, 0xb0, 0xb, 0x0, 0xb0, 0xb,
- 0x0, 0xb, 0x0, 0xc0, 0xb, 0x0, 0xb0, 0x0,
- 0xb0, 0x1a, 0x0, 0xb0, 0xb, 0x0, 0xb, 0x6,
- 0x40, 0xb, 0x1, 0xb0, 0x0, 0xb1, 0x70, 0x0,
- 0x7a, 0x9b, 0x0, 0xb, 0x30, 0x0, 0x0, 0x0,
- 0xb0, 0x0, 0xc5, 0x55, 0x55, 0x55, 0x5d, 0x0,
- 0xb, 0x0, 0x0, 0x0, 0x0, 0x90, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+8981 "要" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x55,
- 0x55, 0x55, 0x55, 0x56, 0xd2, 0x0, 0x0, 0xb,
- 0x0, 0xb0, 0x0, 0x0, 0x7, 0x55, 0xc5, 0x5c,
- 0x5b, 0x20, 0x0, 0xb0, 0xb, 0x0, 0xb0, 0xb0,
- 0x0, 0xb, 0x0, 0xb0, 0xb, 0xb, 0x0, 0x0,
- 0xa5, 0x5a, 0x65, 0x55, 0x90, 0x0, 0x0, 0x1,
- 0xd1, 0x0, 0x0, 0x61, 0x26, 0x55, 0xc7, 0x55,
- 0x89, 0x57, 0x40, 0x0, 0x39, 0x0, 0xb, 0x10,
- 0x0, 0x0, 0x3, 0x66, 0x7b, 0x90, 0x0, 0x0,
- 0x0, 0x0, 0x4a, 0x66, 0xca, 0x10, 0x3, 0x56,
- 0x74, 0x0, 0x0, 0x59, 0x1, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+898B "見" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb, 0x55, 0x55, 0x55, 0xe1, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0x0, 0xc0, 0x0, 0x0, 0xc, 0x55,
- 0x55, 0x55, 0xc0, 0x0, 0x0, 0xc, 0x0, 0x0,
- 0x0, 0xc0, 0x0, 0x0, 0xc, 0x55, 0x55, 0x55,
- 0xc0, 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0xc0,
- 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0xc0, 0x0,
- 0x0, 0xd, 0x5c, 0x65, 0xd5, 0xb0, 0x0, 0x0,
- 0x3, 0xc, 0x0, 0xc0, 0x0, 0x10, 0x0, 0x0,
- 0x1c, 0x0, 0xc0, 0x0, 0x50, 0x0, 0x0, 0xa4,
- 0x0, 0xc0, 0x0, 0x90, 0x0, 0x48, 0x40, 0x0,
- 0xdb, 0xaa, 0xe2, 0x14, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+898F "規" */
- 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xd, 0x0, 0x85, 0x55, 0x5b, 0x20, 0x0, 0xb,
- 0x0, 0xb0, 0x0, 0xb, 0x0, 0x4, 0x5c, 0x74,
- 0xb5, 0x55, 0x5c, 0x0, 0x1, 0xb, 0x0, 0xb0,
- 0x0, 0xb, 0x0, 0x0, 0xb, 0x0, 0xb5, 0x55,
- 0x5c, 0x0, 0x17, 0x5c, 0x59, 0xb0, 0x0, 0xb,
- 0x0, 0x0, 0xb, 0x0, 0xb0, 0x0, 0xb, 0x0,
- 0x0, 0x1c, 0x10, 0xb5, 0xd7, 0x9a, 0x0, 0x0,
- 0x37, 0x76, 0x10, 0xc3, 0x70, 0x0, 0x0, 0x82,
- 0xc, 0x14, 0x83, 0x70, 0x20, 0x1, 0x70, 0x1,
- 0xb, 0x13, 0x70, 0x60, 0x6, 0x0, 0x3, 0x71,
- 0x2, 0xca, 0xd1, 0x10, 0x0, 0x11, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8996 "視" */
- 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1a, 0x0, 0x85, 0x55, 0x5b, 0x30, 0x0, 0x8,
- 0x20, 0xb0, 0x0, 0xb, 0x0, 0x6, 0x55, 0xb2,
- 0xb5, 0x55, 0x5c, 0x0, 0x0, 0x2, 0xa0, 0xb0,
- 0x0, 0xb, 0x0, 0x0, 0xa, 0x10, 0xb5, 0x55,
- 0x5c, 0x0, 0x0, 0x5d, 0x10, 0xb0, 0x0, 0xb,
- 0x0, 0x2, 0x7b, 0xa5, 0xb0, 0x0, 0xb, 0x0,
- 0x15, 0xb, 0x19, 0xb5, 0xd7, 0x9b, 0x0, 0x0,
- 0xb, 0x0, 0x0, 0xb3, 0x70, 0x0, 0x0, 0xb,
- 0x0, 0x5, 0x73, 0x70, 0x30, 0x0, 0xc, 0x0,
- 0x1a, 0x3, 0x70, 0x70, 0x0, 0xc, 0x3, 0x60,
- 0x1, 0xca, 0xe2, 0x0, 0x1, 0x21, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+899A "覚" */
- 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x72, 0xa, 0x10, 0x97, 0x0, 0x1, 0x1, 0xc0,
- 0x57, 0x19, 0x0, 0x0, 0x75, 0x56, 0x55, 0x58,
- 0x55, 0xa9, 0x3d, 0x1, 0x0, 0x0, 0x2, 0x9,
- 0x1, 0x20, 0xa5, 0x55, 0x55, 0xd4, 0x10, 0x0,
- 0xa, 0x55, 0x55, 0x5c, 0x0, 0x0, 0x0, 0xa0,
- 0x0, 0x0, 0xb0, 0x0, 0x0, 0xa, 0x55, 0x55,
- 0x5c, 0x0, 0x0, 0x0, 0xa5, 0x75, 0x75, 0xc0,
- 0x0, 0x0, 0x3, 0xc, 0xb, 0x3, 0x0, 0x30,
- 0x0, 0x7, 0x60, 0xb0, 0x0, 0x15, 0x0, 0x47,
- 0x50, 0x8, 0xba, 0xac, 0x90, 0x30, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+89AA "親" */
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x5, 0x80, 0x6, 0x55, 0x56, 0x80, 0x2, 0x65,
- 0xa6, 0x89, 0x10, 0x3, 0x60, 0x0, 0x51, 0xb,
- 0x9, 0x65, 0x57, 0x60, 0x0, 0x1a, 0x16, 0x9,
- 0x10, 0x3, 0x60, 0x5, 0x56, 0x85, 0xa9, 0x65,
- 0x57, 0x60, 0x0, 0x1, 0x80, 0x9, 0x10, 0x3,
- 0x60, 0x2, 0x56, 0xb6, 0x69, 0x65, 0x57, 0x60,
- 0x0, 0x1, 0x80, 0x8, 0x47, 0xa2, 0x40, 0x0,
- 0xa4, 0x95, 0x0, 0x55, 0xa0, 0x0, 0x2, 0x81,
- 0x86, 0x80, 0x82, 0xa0, 0x20, 0x7, 0x1, 0x80,
- 0x71, 0x90, 0xa0, 0x40, 0x1, 0x4c, 0x50, 0x26,
- 0x0, 0x7a, 0xc4, 0x0, 0x0, 0x0, 0x20, 0x0,
- 0x0, 0x0,
-
- /* U+89BA "覺" */
- 0x0, 0x0, 0x20, 0x2, 0x0, 0x0, 0x0, 0x0,
- 0x86, 0x71, 0x6a, 0x36, 0x98, 0x0, 0x0, 0xa4,
- 0x63, 0x47, 0x14, 0x94, 0x0, 0x0, 0x92, 0x31,
- 0x4a, 0x12, 0xa2, 0x0, 0x0, 0x87, 0x43, 0x7a,
- 0x16, 0xd0, 0x0, 0x9, 0x76, 0x55, 0x55, 0x55,
- 0x97, 0xb0, 0x58, 0x8, 0x55, 0x55, 0x5a, 0x25,
- 0x0, 0x0, 0xa, 0x55, 0x55, 0x5b, 0x0, 0x0,
- 0x0, 0xa, 0x33, 0x33, 0x3b, 0x0, 0x0, 0x0,
- 0xa, 0x11, 0x11, 0x1a, 0x10, 0x0, 0x0, 0x8,
- 0x5c, 0x5c, 0x58, 0x0, 0x30, 0x0, 0x0, 0x56,
- 0xa, 0x0, 0x0, 0x60, 0x0, 0x36, 0x50, 0x8,
- 0xa9, 0x9a, 0xd0, 0x3, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+89C0 "觀" */
- 0x0, 0x10, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x93, 0x56, 0x6, 0x55, 0x57, 0x60, 0x6, 0xb6,
- 0x99, 0x99, 0x10, 0x5, 0x50, 0x1, 0x53, 0x42,
- 0x28, 0x65, 0x58, 0x50, 0xa, 0x5b, 0xa5, 0xb8,
- 0x10, 0x5, 0x50, 0xa, 0x59, 0xa5, 0x98, 0x65,
- 0x58, 0x50, 0x2, 0xa5, 0x50, 0x8, 0x10, 0x5,
- 0x50, 0x4, 0xa5, 0xa7, 0x78, 0x65, 0x58, 0x50,
- 0xb, 0x52, 0x81, 0x8, 0x57, 0xa4, 0x30, 0x26,
- 0x86, 0xa6, 0x30, 0x55, 0xa0, 0x0, 0x5, 0x86,
- 0xa7, 0x40, 0x82, 0xa0, 0x20, 0x5, 0x52, 0x81,
- 0x21, 0x90, 0xa0, 0x50, 0x6, 0x85, 0x55, 0x66,
- 0x0, 0x9a, 0xd3, 0x0, 0x0, 0x0, 0x20, 0x0,
- 0x0, 0x0,
-
- /* U+89D2 "角" */
- 0x0, 0x0, 0x12, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x8, 0x90, 0x1, 0x0, 0x0, 0x0, 0x1, 0xd5,
- 0x55, 0xc9, 0x0, 0x0, 0x0, 0xa3, 0x0, 0x18,
- 0x0, 0x0, 0x0, 0x7d, 0x55, 0x5a, 0x55, 0x5e,
- 0x0, 0x63, 0xb0, 0x0, 0xc0, 0x0, 0xc0, 0x0,
- 0xb, 0x55, 0x5d, 0x55, 0x5c, 0x0, 0x0, 0xb0,
- 0x0, 0xc0, 0x0, 0xc0, 0x0, 0xc, 0x55, 0x5d,
- 0x55, 0x5c, 0x0, 0x0, 0xb0, 0x0, 0xc0, 0x0,
- 0xc0, 0x0, 0x38, 0x0, 0xc, 0x0, 0xc, 0x0,
- 0xa, 0x10, 0x0, 0xc0, 0x0, 0xc0, 0x7, 0x20,
- 0x0, 0x1a, 0x6, 0xda, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0x2, 0x0,
-
- /* U+89E3 "解" */
- 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb, 0x30, 0x4, 0x56, 0x55, 0xa0, 0x0, 0x2d,
- 0x58, 0x0, 0x1b, 0x0, 0xb0, 0x0, 0x92, 0x58,
- 0x0, 0x75, 0x0, 0xa0, 0x3, 0xc5, 0x97, 0x63,
- 0x90, 0x4a, 0x70, 0x4, 0xa0, 0xa5, 0x74, 0x41,
- 0x93, 0x0, 0x0, 0xc5, 0xc8, 0x50, 0xc2, 0xa0,
- 0x20, 0x0, 0xa0, 0xa5, 0x55, 0x95, 0xc6, 0x70,
- 0x0, 0xb3, 0xb7, 0x67, 0x1, 0xa0, 0x0, 0x0,
- 0xa2, 0xb7, 0x77, 0x55, 0xc5, 0x95, 0x2, 0x70,
- 0xa5, 0x50, 0x1, 0xa0, 0x0, 0x6, 0x20, 0xb5,
- 0x50, 0x1, 0xa0, 0x0, 0x6, 0x0, 0x6b, 0x40,
- 0x1, 0xb0, 0x0, 0x10, 0x0, 0x2, 0x0, 0x0,
- 0x10, 0x0,
-
- /* U+89E6 "触" */
- 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0x40, 0x0, 0x0, 0xc0, 0x0, 0x0, 0x2c,
- 0x5a, 0x20, 0x0, 0xa0, 0x0, 0x0, 0x91, 0x28,
- 0x0, 0x0, 0xa0, 0x10, 0x4, 0xc5, 0x95, 0xa3,
- 0xa5, 0xc5, 0xd0, 0x13, 0xa0, 0x90, 0xa3, 0x70,
- 0xa0, 0xa0, 0x0, 0xc5, 0xb5, 0xa3, 0x70, 0xa0,
- 0xa0, 0x0, 0xa0, 0x90, 0xa3, 0x70, 0xa0, 0xa0,
- 0x0, 0xc5, 0xb5, 0xa3, 0xa5, 0xc5, 0xa0, 0x0,
- 0xa0, 0x90, 0xa1, 0x10, 0xa0, 0x0, 0x2, 0x60,
- 0x90, 0xa0, 0x0, 0xa2, 0x60, 0x6, 0x10, 0xa0,
- 0xa3, 0x56, 0xc4, 0xb3, 0x5, 0x0, 0x47, 0x98,
- 0x62, 0x0, 0x33, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8A00 "言" */
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x35, 0x0, 0x5, 0x20, 0x65, 0x55, 0x55, 0x55,
- 0x55, 0x54, 0x0, 0x0, 0x0, 0x0, 0x2, 0x70,
- 0x0, 0x0, 0x65, 0x55, 0x55, 0x55, 0x10, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x65,
- 0x55, 0x55, 0x56, 0x10, 0x0, 0x3, 0x0, 0x0,
- 0x0, 0x40, 0x0, 0x0, 0xc5, 0x55, 0x55, 0x6c,
- 0x0, 0x0, 0xc, 0x0, 0x0, 0x2, 0xa0, 0x0,
- 0x0, 0xc5, 0x55, 0x55, 0x7a, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0x2, 0xa0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+8A08 "計" */
- 0x0, 0x21, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
- 0x1d, 0x10, 0x0, 0xd, 0x10, 0x0, 0x15, 0x5d,
- 0x67, 0x80, 0xc, 0x0, 0x0, 0x1, 0x0, 0x0,
- 0x0, 0xc, 0x0, 0x0, 0x3, 0x44, 0x49, 0x0,
- 0xc, 0x0, 0x30, 0x2, 0x21, 0x11, 0x36, 0x5d,
- 0x56, 0x80, 0x4, 0x55, 0x5a, 0x10, 0xc, 0x0,
- 0x0, 0x1, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0,
- 0x7, 0x55, 0x59, 0x0, 0xc, 0x0, 0x0, 0xb,
- 0x0, 0xb, 0x0, 0xc, 0x0, 0x0, 0xb, 0x0,
- 0xb, 0x0, 0xc, 0x0, 0x0, 0xb, 0x55, 0x5b,
- 0x0, 0xd, 0x0, 0x0, 0xb, 0x0, 0xb, 0x0,
- 0xd, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1,
- 0x0, 0x0,
-
- /* U+8A0A "訊" */
- 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x39, 0x4, 0x68, 0x55, 0xd0, 0x0, 0x15, 0x5c,
- 0x6a, 0xb, 0x0, 0xc0, 0x0, 0x1, 0x0, 0x0,
- 0xb, 0x0, 0xb0, 0x0, 0x4, 0x55, 0x91, 0xb,
- 0x0, 0xb0, 0x0, 0x1, 0x0, 0x0, 0xb, 0x10,
- 0xb0, 0x0, 0x4, 0x55, 0xa3, 0x6c, 0x74, 0xa0,
- 0x0, 0x1, 0x0, 0x0, 0xb, 0x0, 0xb0, 0x0,
- 0x7, 0x55, 0x92, 0xb, 0x0, 0xb0, 0x0, 0xb,
- 0x0, 0xa1, 0xb, 0x0, 0x93, 0x10, 0xb, 0x0,
- 0xa1, 0xb, 0x0, 0x48, 0x60, 0xb, 0x55, 0xc1,
- 0xc, 0x0, 0xc, 0xb0, 0xb, 0x0, 0xa1, 0xb,
- 0x0, 0x1, 0xd0, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8A0E "討" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x46, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0xa,
- 0x6, 0x0, 0x0, 0xd0, 0x0, 0x26, 0x55, 0x55,
- 0x10, 0x0, 0xd0, 0x10, 0x4, 0x55, 0x93, 0x54,
- 0x44, 0xd5, 0x80, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0xd0, 0x0, 0x0, 0x0, 0x50, 0x8, 0x0, 0xd0,
- 0x0, 0x5, 0x55, 0x50, 0x4, 0xb0, 0xd0, 0x0,
- 0x6, 0x55, 0x82, 0x0, 0x90, 0xd0, 0x0, 0xb,
- 0x0, 0xa1, 0x0, 0x0, 0xd0, 0x0, 0xb, 0x0,
- 0xa1, 0x0, 0x0, 0xd0, 0x0, 0xb, 0x55, 0xc1,
- 0x1, 0x0, 0xd0, 0x0, 0xc, 0x0, 0xa1, 0x1,
- 0x7e, 0xc0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x2,
- 0x10, 0x0,
-
- /* U+8A13 "訓" */
- 0x0, 0x20, 0x0, 0x1, 0x0, 0x0, 0x10, 0x0,
- 0x39, 0x0, 0xc, 0x7, 0x11, 0xc0, 0x25, 0x5b,
- 0x6a, 0xc, 0xb, 0x0, 0xa0, 0x0, 0x0, 0x0,
- 0xc, 0xb, 0x0, 0xa0, 0x5, 0x55, 0x91, 0xb,
- 0xb, 0x0, 0xa0, 0x0, 0x0, 0x10, 0xc, 0xb,
- 0x0, 0xa0, 0x4, 0x55, 0x81, 0xc, 0xb, 0x0,
- 0xa0, 0x0, 0x0, 0x10, 0xc, 0xb, 0x0, 0xa0,
- 0xb, 0x55, 0xc3, 0x1a, 0xb, 0x0, 0xa0, 0xb,
- 0x0, 0xa1, 0x56, 0xb, 0x0, 0xa0, 0xb, 0x0,
- 0xa1, 0xa1, 0xb, 0x0, 0xa0, 0xb, 0x55, 0x94,
- 0x70, 0x7, 0x1, 0xa0, 0x5, 0x0, 0x16, 0x0,
- 0x0, 0x1, 0xa0, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8A18 "記" */
- 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x4a, 0x0, 0x25, 0x55, 0x5a, 0x20, 0x25, 0x5d,
- 0x59, 0x31, 0x0, 0xc, 0x0, 0x1, 0x0, 0x0,
- 0x0, 0x0, 0xc, 0x0, 0x4, 0x55, 0x58, 0x0,
- 0x0, 0xc, 0x0, 0x1, 0x0, 0x0, 0x9, 0x55,
- 0x5d, 0x0, 0x4, 0x55, 0x76, 0xc, 0x0, 0x5,
- 0x0, 0x1, 0x0, 0x0, 0xc, 0x0, 0x0, 0x0,
- 0x7, 0x55, 0x5a, 0xc, 0x0, 0x0, 0x0, 0xb,
- 0x0, 0xc, 0xc, 0x0, 0x0, 0x10, 0xb, 0x0,
- 0xb, 0xc, 0x0, 0x0, 0x50, 0xb, 0x55, 0x5b,
- 0xc, 0x0, 0x0, 0x90, 0xc, 0x0, 0xb, 0x9,
- 0xcb, 0xbc, 0xb0, 0x2, 0x0, 0x1, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8A2A "訪" */
- 0x0, 0x20, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0,
- 0x67, 0x0, 0x0, 0x4b, 0x0, 0x0, 0x25, 0x6b,
- 0x68, 0x0, 0xb, 0x30, 0x10, 0x1, 0x0, 0x0,
- 0x65, 0x85, 0x57, 0x90, 0x4, 0x55, 0x91, 0x0,
- 0xd0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0xd0,
- 0x1, 0x0, 0x3, 0x55, 0x80, 0x0, 0xc5, 0x5c,
- 0x40, 0x1, 0x0, 0x0, 0x2, 0x80, 0xa, 0x10,
- 0x7, 0x55, 0xa2, 0x6, 0x50, 0xb, 0x0, 0xb,
- 0x0, 0xb0, 0xa, 0x0, 0xc, 0x0, 0xb, 0x0,
- 0xb0, 0x27, 0x0, 0xc, 0x0, 0xb, 0x55, 0xc0,
- 0x80, 0x12, 0x2a, 0x0, 0xb, 0x0, 0x95, 0x20,
- 0x5, 0xf3, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0,
- 0x10, 0x0,
-
- /* U+8A2D "設" */
- 0x0, 0x20, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x67, 0x0, 0xb, 0x55, 0xd2, 0x0, 0x25, 0x6b,
- 0x67, 0xc, 0x0, 0xb0, 0x0, 0x0, 0x0, 0x0,
- 0xb, 0x0, 0xb0, 0x0, 0x5, 0x55, 0x91, 0x29,
- 0x0, 0xb2, 0x30, 0x0, 0x0, 0x0, 0x80, 0x0,
- 0x4a, 0x92, 0x4, 0x65, 0x84, 0x46, 0x55, 0x6d,
- 0x10, 0x0, 0x0, 0x0, 0x6, 0x0, 0x88, 0x0,
- 0xa, 0x55, 0xb2, 0x3, 0x41, 0xc0, 0x0, 0xb,
- 0x0, 0xb0, 0x0, 0x9a, 0x30, 0x0, 0xb, 0x0,
- 0xb0, 0x0, 0x9c, 0x0, 0x0, 0xb, 0x55, 0xc0,
- 0x7, 0x46, 0xa0, 0x0, 0xb, 0x0, 0x72, 0x72,
- 0x0, 0x7e, 0x81, 0x1, 0x0, 0x13, 0x0, 0x0,
- 0x3, 0x40,
-
- /* U+8A31 "許" */
- 0x0, 0x20, 0x0, 0x1, 0x20, 0x0, 0x0, 0x0,
- 0x49, 0x0, 0x4, 0xb0, 0x0, 0x0, 0x15, 0x5d,
- 0x59, 0x8, 0x30, 0x1, 0x0, 0x1, 0x0, 0x0,
- 0xc, 0x58, 0x59, 0x40, 0x4, 0x55, 0x91, 0x45,
- 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x70, 0xc,
- 0x0, 0x0, 0x3, 0x55, 0x92, 0x0, 0xc, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x65, 0x5d, 0x55, 0xc1,
- 0x7, 0x55, 0xa2, 0x0, 0xc, 0x0, 0x0, 0xb,
- 0x0, 0xb0, 0x0, 0xc, 0x0, 0x0, 0xb, 0x0,
- 0xb0, 0x0, 0xc, 0x0, 0x0, 0xb, 0x55, 0xc0,
- 0x0, 0xc, 0x0, 0x0, 0xb, 0x0, 0x70, 0x0,
- 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2,
- 0x0, 0x0,
-
- /* U+8A33 "訳" */
- 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x29, 0x0, 0x5, 0x22, 0x22, 0x60, 0x26, 0x59,
- 0x6a, 0x1d, 0x33, 0x34, 0xa0, 0x0, 0x0, 0x10,
- 0xc, 0x0, 0x2, 0x90, 0x4, 0x55, 0x80, 0xc,
- 0x0, 0x2, 0x90, 0x0, 0x0, 0x10, 0xd, 0x56,
- 0x56, 0x90, 0x4, 0x55, 0x70, 0xb, 0x5, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x1a, 0x7, 0x0, 0x0,
- 0xb, 0x55, 0xc4, 0x28, 0x8, 0x0, 0x0, 0xb,
- 0x0, 0xb0, 0x64, 0x4, 0x60, 0x0, 0xb, 0x0,
- 0xb0, 0x90, 0x0, 0xc1, 0x0, 0xb, 0x55, 0xc2,
- 0x80, 0x0, 0x4c, 0x0, 0x6, 0x0, 0x27, 0x0,
- 0x0, 0x9, 0xd4, 0x0, 0x0, 0x31, 0x0, 0x0,
- 0x0, 0x40,
-
- /* U+8A34 "訴" */
- 0x0, 0x30, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0,
- 0x68, 0x0, 0x3, 0x36, 0xac, 0x30, 0x16, 0x6a,
- 0x69, 0xd, 0x31, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0x0, 0x0, 0x0, 0x4, 0x65, 0x81, 0xd,
- 0x55, 0x55, 0xb1, 0x0, 0x0, 0x0, 0xc, 0x0,
- 0xc0, 0x0, 0x3, 0x55, 0x80, 0xc, 0x22, 0xc0,
- 0x0, 0x0, 0x0, 0x0, 0x1b, 0x4, 0xe8, 0x10,
- 0xa, 0x55, 0xc2, 0x38, 0x0, 0xc5, 0xe0, 0xb,
- 0x0, 0xb0, 0x74, 0x0, 0xc0, 0x30, 0xb, 0x0,
- 0xb0, 0xa0, 0x0, 0xc0, 0x0, 0xb, 0x55, 0xc5,
- 0x40, 0x0, 0xd0, 0x0, 0x7, 0x0, 0x36, 0x0,
- 0x0, 0xc0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8A55 "評" */
- 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x59, 0x0, 0x36, 0x59, 0x56, 0x70, 0x15, 0x5d,
- 0x67, 0x20, 0xc, 0x1, 0x30, 0x1, 0x0, 0x0,
- 0x56, 0xc, 0x6, 0xa0, 0x3, 0x55, 0x90, 0xe,
- 0x1c, 0xa, 0x0, 0x1, 0x0, 0x0, 0x8, 0x1c,
- 0x34, 0x0, 0x3, 0x44, 0x70, 0x0, 0xc, 0x10,
- 0x50, 0x1, 0x11, 0x11, 0x65, 0x5d, 0x55, 0x71,
- 0x7, 0x55, 0x92, 0x0, 0xc, 0x0, 0x0, 0xb,
- 0x0, 0xb0, 0x0, 0xc, 0x0, 0x0, 0xb, 0x0,
- 0xb0, 0x0, 0xc, 0x0, 0x0, 0xb, 0x55, 0xc0,
- 0x0, 0xd, 0x0, 0x0, 0xb, 0x0, 0xa0, 0x0,
- 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8A66 "試" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x74, 0x0, 0x0, 0xb, 0x43, 0x0, 0x0, 0x1a,
- 0x4, 0x0, 0xb, 0xc, 0x10, 0x16, 0x55, 0x56,
- 0x11, 0x1b, 0x13, 0x60, 0x3, 0x55, 0x82, 0x32,
- 0x2b, 0x32, 0x20, 0x1, 0x0, 0x0, 0x0, 0x9,
- 0x10, 0x0, 0x0, 0x0, 0x51, 0x67, 0xa9, 0x30,
- 0x0, 0x4, 0x55, 0x50, 0xb, 0x6, 0x50, 0x0,
- 0x6, 0x55, 0x81, 0xb, 0x3, 0x80, 0x0, 0xb,
- 0x0, 0xb0, 0xb, 0x0, 0xb0, 0x10, 0xb, 0x0,
- 0xb0, 0x4d, 0x62, 0x84, 0x50, 0xb, 0x55, 0xc3,
- 0x91, 0x0, 0x1c, 0xa0, 0xb, 0x0, 0xa0, 0x0,
- 0x0, 0x2, 0xb0, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8A71 "話" */
- 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x66, 0x0, 0x0, 0x14, 0x7c, 0xa0, 0x15, 0x5c,
- 0x59, 0x24, 0x5c, 0x31, 0x0, 0x1, 0x0, 0x0,
- 0x0, 0xb, 0x0, 0x0, 0x2, 0x33, 0x80, 0x0,
- 0xb, 0x0, 0x70, 0x2, 0x21, 0x12, 0x65, 0x5c,
- 0x55, 0x51, 0x3, 0x55, 0x80, 0x0, 0xb, 0x0,
- 0x0, 0x1, 0x0, 0x0, 0x43, 0x3c, 0x37, 0x10,
- 0x7, 0x55, 0x91, 0x94, 0x22, 0x2b, 0x10, 0xb,
- 0x0, 0xb0, 0x92, 0x0, 0xb, 0x0, 0xb, 0x0,
- 0xb0, 0x92, 0x0, 0xb, 0x0, 0xb, 0x55, 0xc0,
- 0x96, 0x55, 0x5c, 0x0, 0xb, 0x0, 0x90, 0x91,
- 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8A72 "該" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x73, 0x0, 0x0, 0x85, 0x0, 0x0, 0x0, 0x1a,
- 0x4, 0x0, 0xc, 0x0, 0x0, 0x16, 0x55, 0x55,
- 0x54, 0x54, 0x44, 0xa1, 0x3, 0x55, 0x80, 0x0,
- 0xc4, 0x1, 0x0, 0x1, 0x0, 0x0, 0x8, 0x50,
- 0x2e, 0x10, 0x0, 0x0, 0x40, 0xaa, 0x87, 0xc4,
- 0x0, 0x4, 0x55, 0x50, 0x44, 0x17, 0x52, 0x0,
- 0x6, 0x55, 0x81, 0x0, 0x73, 0x1d, 0x40, 0xb,
- 0x0, 0xb0, 0x45, 0x0, 0xb4, 0x0, 0xb, 0x0,
- 0xb1, 0x0, 0x1c, 0x86, 0x0, 0xb, 0x55, 0xc0,
- 0x3, 0xa2, 0x6, 0xb0, 0xc, 0x0, 0xa2, 0x66,
- 0x0, 0x0, 0xb2, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8A73 "詳" */
- 0x0, 0x10, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0,
- 0x67, 0x0, 0x9, 0x10, 0x2d, 0x10, 0x15, 0x5b,
- 0x6a, 0x6, 0x90, 0x73, 0x0, 0x1, 0x0, 0x1,
- 0x45, 0x84, 0xa4, 0xb1, 0x3, 0x55, 0x91, 0x21,
- 0x1c, 0x11, 0x10, 0x0, 0x0, 0x0, 0x0, 0xc,
- 0x2, 0x0, 0x3, 0x55, 0x90, 0x26, 0x5d, 0x57,
- 0x30, 0x1, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0,
- 0x6, 0x44, 0x81, 0x0, 0xc, 0x0, 0x70, 0xb,
- 0x0, 0xb2, 0x65, 0x5d, 0x55, 0x52, 0xb, 0x0,
- 0xb0, 0x0, 0xc, 0x0, 0x0, 0xb, 0x55, 0xc0,
- 0x0, 0xc, 0x0, 0x0, 0x9, 0x0, 0x70, 0x0,
- 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2,
- 0x0, 0x0,
-
- /* U+8A8C "誌" */
- 0x0, 0x20, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0,
- 0x77, 0x0, 0x0, 0xc, 0x0, 0x0, 0x15, 0x6b,
- 0x68, 0x0, 0xb, 0x0, 0x20, 0x1, 0x0, 0x0,
- 0x65, 0x5c, 0x56, 0xa0, 0x3, 0x55, 0x90, 0x0,
- 0xb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb,
- 0x4, 0x10, 0x3, 0x55, 0x80, 0x26, 0x55, 0x55,
- 0x20, 0x1, 0x0, 0x0, 0x0, 0x43, 0x0, 0x0,
- 0x6, 0x55, 0x91, 0x8, 0x1c, 0x31, 0x0, 0xb,
- 0x0, 0xb0, 0x6b, 0x3, 0x24, 0x90, 0xb, 0x0,
- 0xb3, 0x8b, 0x0, 0x3, 0xa4, 0xb, 0x55, 0xc7,
- 0x2b, 0x10, 0x19, 0x0, 0xb, 0x0, 0xb0, 0x3,
- 0xaa, 0xa5, 0x0, 0x2, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8A8D "認" */
- 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x57, 0x0, 0x14, 0x44, 0x45, 0x70, 0x15, 0x5c,
- 0x68, 0x2, 0x76, 0x14, 0xa0, 0x1, 0x0, 0x0,
- 0x42, 0x93, 0x4, 0x80, 0x3, 0x55, 0x91, 0xc1,
- 0xc0, 0x6, 0x60, 0x1, 0x0, 0x0, 0x27, 0x60,
- 0x9, 0x40, 0x3, 0x55, 0x70, 0x38, 0x3, 0x9d,
- 0x0, 0x1, 0x0, 0x0, 0x40, 0x35, 0x21, 0x0,
- 0x7, 0x55, 0x92, 0x7, 0x1b, 0x21, 0x0, 0xb,
- 0x0, 0xb0, 0x6b, 0x3, 0x5, 0x60, 0xb, 0x0,
- 0xb4, 0x8b, 0x0, 0x4, 0xb1, 0xb, 0x55, 0xc5,
- 0x2b, 0x10, 0x29, 0x10, 0xb, 0x0, 0xa0, 0x3,
- 0xaa, 0xa6, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8A95 "誕" */
- 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x84, 0x1, 0x15, 0x0, 0x16, 0x90, 0x15, 0x8a,
- 0x97, 0x4d, 0x36, 0xb6, 0x20, 0x1, 0x0, 0x0,
- 0x57, 0x0, 0x72, 0x0, 0x4, 0x55, 0x80, 0xb1,
- 0x5, 0x72, 0x0, 0x0, 0x0, 0x3, 0xa2, 0xb,
- 0x77, 0x90, 0x4, 0x55, 0x83, 0x6b, 0x4a, 0x72,
- 0x0, 0x0, 0x0, 0x0, 0xa, 0xa, 0x72, 0x0,
- 0xa, 0x55, 0xc5, 0xa, 0xa, 0x72, 0x0, 0xa,
- 0x0, 0xa1, 0xb6, 0x2c, 0x97, 0x90, 0xa, 0x0,
- 0xa0, 0xb9, 0x2, 0x0, 0x0, 0xa, 0x55, 0xb7,
- 0x34, 0xc8, 0x53, 0x21, 0x5, 0x0, 0x53, 0x0,
- 0x5, 0xac, 0xa1, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8A98 "誘" */
- 0x0, 0x20, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0,
- 0x85, 0x0, 0x35, 0x7a, 0xbb, 0x20, 0x15, 0x79,
- 0x92, 0x0, 0xb, 0x0, 0x0, 0x0, 0x0, 0x2,
- 0x65, 0x7d, 0x65, 0xb1, 0x4, 0x55, 0x80, 0x2,
- 0xbb, 0x60, 0x0, 0x0, 0x0, 0x0, 0x2a, 0x1b,
- 0x2b, 0x10, 0x4, 0x55, 0x74, 0x70, 0xb, 0x3,
- 0xd3, 0x0, 0x0, 0x10, 0x46, 0x95, 0x7a, 0x0,
- 0xb, 0x55, 0xd1, 0x2, 0xb0, 0x85, 0x0, 0xb,
- 0x0, 0xb0, 0x5, 0x70, 0xb5, 0xd1, 0xb, 0x0,
- 0xb0, 0xb, 0x10, 0x0, 0xc0, 0xb, 0x55, 0xc0,
- 0x75, 0x0, 0x4, 0x90, 0x4, 0x0, 0x26, 0x30,
- 0x2, 0xae, 0x20, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x11, 0x0,
-
- /* U+8A9E "語" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x74, 0x0, 0x22, 0x22, 0x28, 0x0, 0x0, 0x1a,
- 0x13, 0x33, 0xb3, 0x33, 0x0, 0x16, 0x55, 0x54,
- 0x12, 0xb2, 0x52, 0x0, 0x3, 0x55, 0x80, 0x3,
- 0xa2, 0xa3, 0x0, 0x1, 0x0, 0x0, 0x1, 0x80,
- 0xa2, 0x0, 0x0, 0x0, 0x41, 0x35, 0x93, 0xc5,
- 0xa0, 0x4, 0x55, 0x51, 0x42, 0x22, 0x22, 0x20,
- 0x6, 0x55, 0x81, 0x1a, 0x44, 0x4d, 0x0, 0xb,
- 0x0, 0xb0, 0xb, 0x0, 0xc, 0x0, 0xb, 0x0,
- 0xb0, 0xb, 0x0, 0xc, 0x0, 0xb, 0x55, 0xc0,
- 0xd, 0x55, 0x5c, 0x0, 0xa, 0x0, 0x80, 0x1a,
- 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8AAA "說" */
- 0x0, 0x20, 0x0, 0x0, 0x30, 0x30, 0x0, 0x0,
- 0x57, 0x0, 0x2, 0xd1, 0x70, 0x0, 0x15, 0x5c,
- 0x68, 0xa, 0x20, 0x64, 0x0, 0x1, 0x0, 0x0,
- 0x65, 0x0, 0xc, 0x40, 0x3, 0x55, 0x94, 0x58,
- 0x55, 0x5c, 0xb2, 0x0, 0x0, 0x0, 0xb, 0x0,
- 0xa, 0x0, 0x3, 0x55, 0x90, 0xb, 0x0, 0xa,
- 0x0, 0x1, 0x0, 0x0, 0xc, 0x33, 0x3b, 0x0,
- 0x7, 0x55, 0x92, 0x7, 0xb3, 0xc5, 0x0, 0xb,
- 0x0, 0xb0, 0x0, 0xb0, 0xb0, 0x0, 0xb, 0x0,
- 0xb0, 0x1, 0xa0, 0xb0, 0x30, 0xb, 0x55, 0xc0,
- 0x8, 0x30, 0xb0, 0x60, 0xb, 0x0, 0xa0, 0x64,
- 0x0, 0xb9, 0xd1, 0x1, 0x0, 0x3, 0x10, 0x0,
- 0x0, 0x0,
-
- /* U+8AAC "説" */
- 0x0, 0x20, 0x0, 0x10, 0x0, 0x23, 0x0, 0x0,
- 0x77, 0x0, 0xa, 0x0, 0x78, 0x0, 0x15, 0x6b,
- 0x75, 0x8, 0x50, 0x90, 0x0, 0x1, 0x0, 0x0,
- 0x44, 0x44, 0x66, 0x0, 0x4, 0x55, 0x91, 0xb3,
- 0x33, 0x3b, 0x10, 0x0, 0x0, 0x0, 0xb0, 0x0,
- 0xa, 0x0, 0x4, 0x55, 0x90, 0xb0, 0x0, 0xa,
- 0x0, 0x0, 0x0, 0x0, 0xb6, 0x85, 0x8b, 0x0,
- 0xa, 0x55, 0xc2, 0x32, 0xa1, 0xa0, 0x0, 0xb,
- 0x0, 0xb0, 0x4, 0x91, 0xa0, 0x0, 0xb, 0x0,
- 0xb0, 0x9, 0x41, 0xa0, 0x50, 0xb, 0x55, 0xc0,
- 0x3a, 0x1, 0xa0, 0x70, 0x9, 0x0, 0x45, 0x80,
- 0x0, 0xc9, 0xd2, 0x0, 0x0, 0x32, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8AAD "読" */
- 0x0, 0x20, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0,
- 0x74, 0x0, 0x0, 0xc, 0x0, 0x0, 0x15, 0x78,
- 0x94, 0x55, 0x5c, 0x56, 0xa0, 0x0, 0x0, 0x0,
- 0x0, 0xa, 0x0, 0x0, 0x4, 0x55, 0x91, 0x16,
- 0x5a, 0x58, 0x30, 0x0, 0x0, 0x0, 0x30, 0x0,
- 0x0, 0x20, 0x4, 0x55, 0x81, 0xb5, 0x55, 0x55,
- 0xe1, 0x0, 0x0, 0x13, 0x52, 0x80, 0x74, 0x10,
- 0xb, 0x55, 0xd1, 0x3, 0xa0, 0xb0, 0x0, 0xb,
- 0x0, 0xb0, 0x5, 0x80, 0xb0, 0x20, 0xb, 0x0,
- 0xb0, 0xa, 0x30, 0xb0, 0x40, 0xb, 0x55, 0xc0,
- 0x4a, 0x0, 0xb0, 0x70, 0x7, 0x0, 0x25, 0x80,
- 0x0, 0xba, 0xd1, 0x0, 0x0, 0x32, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8AB0 "誰" */
- 0x0, 0x10, 0x0, 0x2, 0x10, 0x0, 0x0, 0x0,
- 0x65, 0x0, 0x7, 0x59, 0x40, 0x0, 0x13, 0x3b,
- 0x46, 0xb, 0x1, 0x71, 0x10, 0x3, 0x22, 0x22,
- 0x3d, 0x59, 0x57, 0x60, 0x4, 0x55, 0x80, 0xab,
- 0xa, 0x0, 0x0, 0x1, 0x0, 0x4, 0x5b, 0xa,
- 0x5, 0x10, 0x4, 0x55, 0x93, 0xc, 0x4c, 0x54,
- 0x20, 0x1, 0x0, 0x0, 0xb, 0xa, 0x0, 0x0,
- 0x5, 0x44, 0x81, 0xb, 0xa, 0x4, 0x10, 0xb,
- 0x11, 0xb1, 0xc, 0x5c, 0x55, 0x30, 0xb, 0x0,
- 0xb0, 0xb, 0xa, 0x0, 0x0, 0xb, 0x55, 0xc0,
- 0xb, 0xa, 0x2, 0x50, 0xb, 0x0, 0xa0, 0xd,
- 0x55, 0x55, 0x50, 0x1, 0x0, 0x0, 0x2, 0x0,
- 0x0, 0x0,
-
- /* U+8AB2 "課" */
- 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x84, 0x0, 0xa5, 0x58, 0x5d, 0x20, 0x15, 0x89,
- 0x84, 0xb0, 0xb, 0xb, 0x0, 0x1, 0x0, 0x0,
- 0xb5, 0x5c, 0x5c, 0x0, 0x5, 0x55, 0x90, 0xb0,
- 0xb, 0xb, 0x0, 0x0, 0x0, 0x0, 0xb5, 0x5c,
- 0x5c, 0x0, 0x5, 0x55, 0x80, 0x40, 0xb, 0x3,
- 0x0, 0x0, 0x0, 0x2, 0x55, 0x5c, 0x56, 0xc2,
- 0xa, 0x55, 0xd1, 0x0, 0xec, 0x40, 0x0, 0xb,
- 0x0, 0xb0, 0x8, 0x6b, 0x80, 0x0, 0xb, 0x0,
- 0xb0, 0x3a, 0xb, 0x48, 0x0, 0xb, 0x55, 0xc2,
- 0x90, 0xb, 0xa, 0xa2, 0x5, 0x0, 0x34, 0x0,
- 0xc, 0x0, 0x51, 0x0, 0x0, 0x0, 0x0, 0x1,
- 0x0, 0x0,
-
- /* U+8ABF "調" */
- 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x94, 0x0, 0x95, 0x56, 0x55, 0xd0, 0x14, 0x79,
- 0x64, 0xb0, 0xb, 0x0, 0xb0, 0x2, 0x11, 0x11,
- 0xb2, 0x5c, 0x74, 0xb0, 0x4, 0x54, 0x81, 0xb0,
- 0xa, 0x0, 0xb0, 0x0, 0x0, 0x0, 0xb4, 0x5c,
- 0x57, 0xb0, 0x5, 0x65, 0x91, 0xb1, 0x0, 0x0,
- 0xb0, 0x0, 0x0, 0x0, 0xb2, 0xa5, 0xb3, 0xb0,
- 0x9, 0x55, 0xb2, 0xb1, 0x80, 0x91, 0xb0, 0xb,
- 0x0, 0xb0, 0xb2, 0xb5, 0xb1, 0xb0, 0xb, 0x0,
- 0xb3, 0x71, 0x50, 0x50, 0xb0, 0xb, 0x55, 0xb8,
- 0x10, 0x0, 0x32, 0xb0, 0x4, 0x0, 0x24, 0x0,
- 0x0, 0x1b, 0x70, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8AC7 "談" */
- 0x0, 0x20, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0,
- 0x95, 0x0, 0x1, 0xa2, 0x5, 0x20, 0x15, 0x89,
- 0x85, 0x17, 0xa1, 0x8a, 0x30, 0x1, 0x0, 0x0,
- 0xc3, 0xb8, 0x30, 0x0, 0x5, 0x55, 0x90, 0x21,
- 0xe5, 0x60, 0x0, 0x0, 0x0, 0x0, 0xa, 0x50,
- 0x3d, 0x20, 0x5, 0x55, 0x82, 0x72, 0x94, 0x3,
- 0x30, 0x0, 0x0, 0x0, 0x2, 0xa3, 0x6, 0x0,
- 0x9, 0x55, 0xb2, 0x55, 0xc6, 0x98, 0x20, 0xb,
- 0x0, 0xb1, 0xb1, 0xc8, 0x0, 0x0, 0xb, 0x0,
- 0xb0, 0x7, 0x67, 0x30, 0x0, 0xb, 0x55, 0xc0,
- 0x1b, 0x1, 0xd2, 0x0, 0xb, 0x0, 0x83, 0x80,
- 0x0, 0x4f, 0x91, 0x1, 0x0, 0x34, 0x0, 0x0,
- 0x3, 0x30,
-
- /* U+8ACB "請" */
- 0x0, 0x10, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x57, 0x0, 0x0, 0xc, 0x0, 0x0, 0x14, 0x4c,
- 0x75, 0x55, 0x5c, 0x58, 0x80, 0x2, 0x11, 0x11,
- 0x0, 0xb, 0x5, 0x0, 0x2, 0x44, 0x81, 0x16,
- 0x5c, 0x55, 0x20, 0x1, 0x11, 0x12, 0x65, 0x5b,
- 0x56, 0xa0, 0x2, 0x33, 0x71, 0x2, 0x0, 0x4,
- 0x0, 0x1, 0x21, 0x10, 0xc, 0x55, 0x5c, 0x20,
- 0x6, 0x55, 0x92, 0xc, 0x55, 0x5c, 0x0, 0xb,
- 0x0, 0xb0, 0xb, 0x0, 0xb, 0x0, 0xb, 0x0,
- 0xb0, 0xc, 0x55, 0x5c, 0x0, 0xb, 0x55, 0xc0,
- 0xb, 0x0, 0xb, 0x0, 0x7, 0x0, 0x50, 0xa,
- 0x4, 0xad, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
- 0x1, 0x0,
-
- /* U+8AD6 "論" */
- 0x0, 0x20, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0,
- 0x76, 0x0, 0x0, 0x6d, 0x0, 0x0, 0x15, 0x6b,
- 0x67, 0x0, 0xd5, 0x20, 0x0, 0x1, 0x0, 0x0,
- 0x8, 0x50, 0x90, 0x0, 0x3, 0x44, 0x80, 0x57,
- 0x0, 0x5b, 0x10, 0x1, 0x21, 0x16, 0x56, 0x55,
- 0x95, 0xd4, 0x3, 0x55, 0x90, 0x65, 0x55, 0x55,
- 0x80, 0x1, 0x0, 0x0, 0xa0, 0xa0, 0xa0, 0x90,
- 0x6, 0x55, 0x90, 0xa0, 0xa0, 0xa0, 0x90, 0xa,
- 0x0, 0xb0, 0xb5, 0xc5, 0xc5, 0x90, 0xa, 0x0,
- 0xa0, 0xa0, 0xa0, 0xa0, 0x90, 0xa, 0x55, 0xb0,
- 0xa0, 0xa0, 0x80, 0x90, 0xa, 0x0, 0xa0, 0xa0,
- 0x0, 0x4b, 0x80, 0x1, 0x0, 0x0, 0x10, 0x0,
- 0x2, 0x0,
-
- /* U+8AF8 "諸" */
- 0x0, 0x10, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0,
- 0x84, 0x0, 0x0, 0xb1, 0x2, 0x30, 0x14, 0x69,
- 0x73, 0x0, 0xa0, 0x3a, 0x70, 0x2, 0x0, 0x0,
- 0x45, 0xc5, 0x8a, 0x0, 0x5, 0x55, 0x90, 0x0,
- 0xa0, 0xc1, 0x20, 0x0, 0x0, 0x3, 0x65, 0x8b,
- 0x86, 0x90, 0x5, 0x55, 0x80, 0x0, 0x84, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x1b, 0x85, 0x5b, 0x10,
- 0x9, 0x55, 0xd4, 0x8a, 0x0, 0xb, 0x0, 0xb,
- 0x0, 0xb2, 0x1c, 0x55, 0x5c, 0x0, 0xb, 0x0,
- 0xb0, 0x1a, 0x0, 0xb, 0x0, 0xb, 0x44, 0xc0,
- 0x1c, 0x55, 0x5c, 0x0, 0x7, 0x0, 0x50, 0x17,
- 0x0, 0x8, 0x0,
-
- /* U+8B02 "謂" */
- 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x67, 0x0, 0x95, 0x57, 0x56, 0xb0, 0x25, 0x6b,
- 0x78, 0xb0, 0xb, 0x1, 0x90, 0x0, 0x0, 0x0,
- 0xb5, 0x5c, 0x56, 0x90, 0x5, 0x55, 0x92, 0xb0,
- 0xb, 0x1, 0x90, 0x0, 0x0, 0x0, 0xb5, 0x57,
- 0x56, 0x70, 0x5, 0x55, 0x81, 0x16, 0x55, 0x59,
- 0x20, 0x0, 0x0, 0x0, 0x19, 0x0, 0xb, 0x0,
- 0xa, 0x55, 0xc2, 0x1b, 0x55, 0x5c, 0x0, 0xb,
- 0x0, 0xb0, 0x19, 0x0, 0xb, 0x0, 0xb, 0x0,
- 0xb0, 0x1b, 0x44, 0x4c, 0x0, 0xb, 0x55, 0xc0,
- 0x19, 0x0, 0xb, 0x0, 0x8, 0x0, 0x60, 0x29,
- 0x1, 0x8c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0x0,
-
- /* U+8B1B "講" */
- 0x0, 0x10, 0x0, 0x2, 0x0, 0x20, 0x0, 0x0,
- 0x85, 0x0, 0x9, 0x40, 0xb0, 0x10, 0x12, 0x4a,
- 0x64, 0x6b, 0x65, 0xc5, 0x80, 0x14, 0x33, 0x31,
- 0x9, 0x20, 0xa1, 0x20, 0x3, 0x44, 0x70, 0x6b,
- 0x65, 0xc5, 0x40, 0x0, 0x0, 0x4, 0x57, 0x67,
- 0x85, 0x82, 0x5, 0x55, 0x80, 0x55, 0x5d, 0x58,
- 0x20, 0x0, 0x0, 0x0, 0x91, 0xa, 0xa, 0x0,
- 0x9, 0x55, 0xb0, 0x95, 0x5c, 0x5c, 0x0, 0xa,
- 0x0, 0xa0, 0x91, 0xa, 0xa, 0x10, 0xa, 0x0,
- 0xa4, 0xb5, 0x59, 0x5c, 0x91, 0xb, 0x55, 0xa0,
- 0x91, 0x0, 0xa, 0x0, 0x7, 0x0, 0x40, 0xa0,
- 0x2, 0x8d, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0,
- 0x2, 0x0,
-
- /* U+8B1D "謝" */
- 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0,
- 0x92, 0x0, 0xa, 0x0, 0xa, 0x10, 0x0, 0x57,
- 0x43, 0x86, 0x80, 0xa, 0x0, 0x16, 0x55, 0x57,
- 0x40, 0xa0, 0xa, 0x0, 0x4, 0x56, 0x75, 0x74,
- 0xb4, 0x5c, 0x80, 0x1, 0x0, 0x5, 0x40, 0xa0,
- 0xa, 0x0, 0x3, 0x55, 0x85, 0x75, 0xb6, 0x2a,
- 0x0, 0x1, 0x0, 0x6, 0x41, 0xa0, 0xda, 0x0,
- 0x7, 0x55, 0x95, 0x4c, 0xc0, 0x3a, 0x0, 0xa,
- 0x0, 0xa0, 0x29, 0xa0, 0xa, 0x0, 0xa, 0x0,
- 0xa0, 0x90, 0xa0, 0xa, 0x0, 0xa, 0x55, 0xa7,
- 0x20, 0xa0, 0x1b, 0x0, 0x6, 0x0, 0x51, 0x1a,
- 0xb1, 0x8c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8B58 "識" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x1,
- 0x70, 0x0, 0x83, 0x0, 0xb0, 0x0, 0x0, 0x84,
- 0x25, 0x89, 0x83, 0xa6, 0x30, 0x16, 0x55, 0x35,
- 0x10, 0xa1, 0xa0, 0xa0, 0x3, 0x48, 0x2, 0xa2,
- 0x80, 0xa0, 0x0, 0x1, 0x0, 0x45, 0x79, 0x55,
- 0xc5, 0xb0, 0x4, 0x59, 0x23, 0x0, 0x30, 0xa0,
- 0x70, 0x1, 0x0, 0xb, 0x55, 0xc0, 0xa4, 0x90,
- 0x8, 0x5a, 0x3a, 0x0, 0xa0, 0x9b, 0x20, 0xa,
- 0x9, 0xa, 0x55, 0xa0, 0x6b, 0x0, 0xa, 0x9,
- 0x1a, 0x0, 0xa0, 0xba, 0x4, 0xb, 0x5b, 0x1b,
- 0x55, 0xa7, 0x48, 0xa3, 0x7, 0x6, 0x3, 0x0,
- 0x64, 0x0, 0xa3, 0x0, 0x0, 0x0, 0x0, 0x10,
- 0x0, 0x0,
-
- /* U+8B70 "議" */
- 0x0, 0x10, 0x0, 0x3, 0x0, 0x52, 0x0, 0x0,
- 0xa3, 0x0, 0x4, 0x90, 0xb2, 0x0, 0x25, 0x98,
- 0x93, 0x65, 0x98, 0x68, 0x70, 0x1, 0x0, 0x0,
- 0x1, 0x46, 0x15, 0x0, 0x5, 0x56, 0x60, 0x25,
- 0x78, 0x44, 0x0, 0x0, 0x0, 0x2, 0x65, 0x78,
- 0x56, 0xb0, 0x5, 0x56, 0x70, 0x3, 0x77, 0x25,
- 0x0, 0x0, 0x0, 0x1, 0x6c, 0x39, 0x6, 0x30,
- 0x9, 0x55, 0xc4, 0x5c, 0x5b, 0x65, 0xb2, 0xa,
- 0x0, 0xa0, 0xa, 0x26, 0x46, 0x20, 0xa, 0x0,
- 0xa5, 0x9d, 0x22, 0xc9, 0x0, 0xb, 0x55, 0xa3,
- 0xa, 0x5, 0xd4, 0x21, 0x6, 0x0, 0x51, 0x7c,
- 0x54, 0xa, 0xc1, 0x0, 0x0, 0x0, 0x1, 0x0,
- 0x0, 0x31,
-
- /* U+8B77 "護" */
- 0x0, 0x20, 0x0, 0x3, 0x10, 0x40, 0x0, 0x0,
- 0xa4, 0x0, 0x7, 0x40, 0xb0, 0x40, 0x25, 0x99,
- 0x87, 0x5a, 0x95, 0xc5, 0x52, 0x1, 0x0, 0x0,
- 0x66, 0x1b, 0x20, 0x10, 0x5, 0x55, 0x80, 0xd5,
- 0x5c, 0x57, 0x80, 0x0, 0x0, 0x6, 0xd4, 0x4c,
- 0x58, 0x20, 0x5, 0x55, 0x73, 0xa5, 0x5c, 0x58,
- 0x20, 0x0, 0x0, 0x0, 0xa1, 0x1a, 0x11, 0x80,
- 0xb, 0x55, 0xc0, 0x74, 0x44, 0x47, 0x41, 0xa,
- 0x0, 0xa1, 0x68, 0x55, 0x8d, 0x0, 0xa, 0x0,
- 0xa0, 0x3, 0x53, 0xa1, 0x0, 0xb, 0x55, 0xa0,
- 0x1, 0xbc, 0x10, 0x0, 0x3, 0x0, 0x33, 0x55,
- 0x1, 0x9a, 0x92,
-
- /* U+8B8A "變" */
- 0x0, 0x0, 0x0, 0x40, 0x0, 0x1, 0x0, 0x0,
- 0x85, 0x0, 0x44, 0x30, 0x2a, 0x0, 0x4, 0x77,
- 0x36, 0x55, 0x82, 0x85, 0x70, 0x9, 0x8a, 0x14,
- 0x66, 0x86, 0x9c, 0x30, 0x5, 0x96, 0x74, 0x33,
- 0x51, 0x96, 0x80, 0x4, 0x86, 0x96, 0x75, 0xb0,
- 0xa7, 0x82, 0x6, 0x44, 0x96, 0x75, 0x91, 0x57,
- 0x71, 0x6, 0x15, 0x53, 0x10, 0x35, 0x15, 0x22,
- 0x0, 0x3, 0xf6, 0x55, 0x56, 0x7a, 0x0, 0x0,
- 0x2a, 0x33, 0x0, 0x49, 0x0, 0x0, 0x0, 0x40,
- 0x4, 0x65, 0x90, 0x0, 0x0, 0x0, 0x0, 0x4,
- 0xbc, 0x40, 0x0, 0x0, 0x2, 0x46, 0x74, 0x0,
- 0x5a, 0xbb, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8B93 "讓" */
- 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x1,
- 0x80, 0x0, 0x0, 0x57, 0x0, 0x20, 0x0, 0x75,
- 0x34, 0x55, 0x57, 0x55, 0x91, 0x26, 0x55, 0x50,
- 0x84, 0x95, 0x54, 0x80, 0x5, 0x55, 0x50, 0xb5,
- 0xa6, 0x75, 0x90, 0x0, 0x0, 0x0, 0x34, 0x32,
- 0x50, 0x20, 0x4, 0x57, 0x53, 0x6a, 0x65, 0xc6,
- 0xa0, 0x0, 0x0, 0x0, 0x8, 0x10, 0x91, 0x40,
- 0x8, 0x55, 0x90, 0x6a, 0x65, 0xb5, 0x60, 0x9,
- 0x0, 0x95, 0x59, 0x96, 0x86, 0x92, 0x9, 0x0,
- 0x90, 0x1c, 0x27, 0x38, 0x30, 0xa, 0x55, 0x93,
- 0x8b, 0x3, 0xb3, 0x0, 0x5, 0x0, 0x23, 0xb,
- 0x70, 0x9, 0xc2, 0x0, 0x0, 0x0, 0x1, 0x0,
- 0x0, 0x0,
-
- /* U+8BA1 "计" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x46, 0x0, 0x0, 0xb3, 0x0, 0x0, 0x0, 0xb,
- 0x40, 0x0, 0xb2, 0x0, 0x0, 0x0, 0x1, 0x0,
- 0x0, 0xb2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb2, 0x0, 0x0, 0x16, 0x5c, 0x16, 0x55, 0xc6,
- 0x56, 0xb0, 0x0, 0xb, 0x0, 0x0, 0xb2, 0x0,
- 0x0, 0x0, 0xb, 0x0, 0x0, 0xb2, 0x0, 0x0,
- 0x0, 0xb, 0x0, 0x0, 0xb2, 0x0, 0x0, 0x0,
- 0xb, 0x3, 0x0, 0xb2, 0x0, 0x0, 0x0, 0xb,
- 0x82, 0x0, 0xb2, 0x0, 0x0, 0x0, 0x1f, 0x60,
- 0x0, 0xb2, 0x0, 0x0, 0x0, 0x6, 0x0, 0x0,
- 0xb2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10,
- 0x0, 0x0,
-
- /* U+8BDE "诞" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4,
- 0x20, 0x0, 0x40, 0x0, 0x2a, 0x80, 0x0, 0xd0,
- 0x67, 0xd2, 0x68, 0xd3, 0x0, 0x0, 0x20, 0x7,
- 0x50, 0x0, 0xb0, 0x0, 0x0, 0x0, 0xb, 0x0,
- 0x50, 0xb0, 0x0, 0x26, 0xb2, 0x58, 0x30, 0xc0,
- 0xc6, 0xa0, 0x0, 0xb0, 0x56, 0xc3, 0xa0, 0xb0,
- 0x0, 0x0, 0xb0, 0x20, 0xb0, 0xa0, 0xb0, 0x0,
- 0x0, 0xb0, 0x34, 0xb0, 0xa0, 0xb0, 0x10, 0x0,
- 0xb0, 0x3c, 0x51, 0xc5, 0x85, 0x90, 0x0, 0xb9,
- 0x1b, 0x90, 0x0, 0x0, 0x0, 0x0, 0xa2, 0x81,
- 0x2b, 0x96, 0x43, 0x20, 0x0, 0x16, 0x10, 0x0,
- 0x37, 0xac, 0x90, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8C50 "豐" */
- 0x0, 0x0, 0x30, 0x41, 0x2, 0x0, 0x0, 0x0,
- 0xb0, 0x93, 0xa1, 0xb, 0x1a, 0x0, 0x0, 0xa4,
- 0xc5, 0x93, 0x6b, 0x3a, 0x0, 0x0, 0xa4, 0xb7,
- 0x93, 0x6c, 0x5a, 0x0, 0x0, 0xa3, 0xb7, 0x93,
- 0x5b, 0x4a, 0x0, 0x1, 0xd5, 0xb5, 0xb5, 0x5b,
- 0x5a, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x6,
- 0x0, 0x2, 0x65, 0x55, 0x55, 0x55, 0x57, 0x30,
- 0x0, 0x7, 0x55, 0x55, 0x55, 0xa0, 0x0, 0x0,
- 0xa, 0x0, 0x0, 0x0, 0xb0, 0x0, 0x0, 0xa,
- 0x65, 0x55, 0x56, 0xa0, 0x0, 0x0, 0x1, 0x47,
- 0x0, 0x68, 0x0, 0x0, 0x5, 0x55, 0x5a, 0x55,
- 0xa5, 0x57, 0xd1, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8C61 "象" */
- 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x5d, 0x10, 0x13, 0x0, 0x0, 0x0, 0x4b, 0x55,
- 0x5c, 0x80, 0x0, 0x0, 0x5d, 0x55, 0x58, 0x75,
- 0x58, 0x0, 0x42, 0xb0, 0x3, 0xa0, 0x2, 0xa0,
- 0x0, 0xd, 0x55, 0xa9, 0x55, 0x6a, 0x0, 0x0,
- 0x70, 0x3d, 0x10, 0x2, 0x70, 0x0, 0x0, 0x67,
- 0x3b, 0x6, 0x95, 0x0, 0x3, 0x62, 0x59, 0x79,
- 0x60, 0x0, 0x0, 0x2, 0x85, 0x2b, 0xb3, 0x60,
- 0x0, 0x4, 0x40, 0x59, 0xd, 0x9, 0x80, 0x0,
- 0x3, 0x84, 0x2, 0xc0, 0x8, 0xe4, 0x35, 0x30,
- 0x4b, 0xe4, 0x0, 0x1, 0x0, 0x0, 0x0, 0x12,
- 0x0, 0x0, 0x0,
-
- /* U+8CA0 "負" */
- 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x6c, 0x10, 0x21, 0x0, 0x0, 0x3, 0xc5, 0x55,
- 0xd8, 0x0, 0x0, 0x3a, 0x10, 0x5, 0x60, 0x0,
- 0x5, 0x75, 0x22, 0x38, 0x23, 0x70, 0x1, 0x2b,
- 0x22, 0x22, 0x23, 0xb0, 0x0, 0x1c, 0x55, 0x55,
- 0x56, 0xa0, 0x0, 0x1a, 0x0, 0x0, 0x1, 0xa0,
- 0x0, 0x1c, 0x55, 0x55, 0x56, 0xa0, 0x0, 0x2a,
- 0x0, 0x0, 0x1, 0xa0, 0x0, 0x2a, 0x85, 0x55,
- 0x76, 0x90, 0x0, 0x4, 0xd4, 0x0, 0x4a, 0x60,
- 0x0, 0x77, 0x0, 0x0, 0x0, 0xb6, 0x2, 0x0,
- 0x0, 0x0, 0x0, 0x1,
-
- /* U+8CA1 "財" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x7,
- 0x55, 0x59, 0x0, 0x0, 0xb2, 0x0, 0xb, 0x0,
- 0xb, 0x0, 0x0, 0xb0, 0x0, 0xb, 0x0, 0xb,
- 0x0, 0x0, 0xb0, 0x50, 0xb, 0x55, 0x5b, 0x35,
- 0x59, 0xf5, 0x50, 0xb, 0x0, 0xb, 0x0, 0xc,
- 0xc0, 0x0, 0xb, 0x55, 0x5b, 0x0, 0x49, 0xb0,
- 0x0, 0xb, 0x0, 0xb, 0x0, 0xb1, 0xb0, 0x0,
- 0xb, 0x0, 0xb, 0x7, 0x40, 0xb0, 0x0, 0xb,
- 0x55, 0x5a, 0x36, 0x0, 0xb0, 0x0, 0x1, 0x82,
- 0x52, 0x50, 0x0, 0xb0, 0x0, 0x4, 0x90, 0x1b,
- 0x0, 0x0, 0xb0, 0x0, 0x28, 0x0, 0x8, 0x10,
- 0x4a, 0xe0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x1,
- 0x30, 0x0,
-
- /* U+8CA7 "貧" */
- 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0,
- 0x98, 0x0, 0x61, 0x0, 0x0, 0x0, 0x85, 0x0,
- 0x0, 0x86, 0x0, 0x2, 0x73, 0x6a, 0x75, 0x5c,
- 0x9d, 0x80, 0x0, 0x6, 0x80, 0x0, 0xc0, 0x0,
- 0x0, 0x27, 0x40, 0x2, 0xa8, 0x0, 0x0, 0x12,
- 0x95, 0x55, 0x56, 0x5c, 0x0, 0x0, 0xb, 0x55,
- 0x55, 0x55, 0xb0, 0x0, 0x0, 0xb0, 0x0, 0x0,
- 0xb, 0x0, 0x0, 0xb, 0x55, 0x55, 0x55, 0xc0,
- 0x0, 0x0, 0xb5, 0x55, 0x55, 0x5b, 0x0, 0x0,
- 0x2, 0x5c, 0x0, 0x37, 0x82, 0x0, 0x4, 0x85,
- 0x0, 0x0, 0x2, 0xc3, 0x2, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+8CA9 "販" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7,
- 0x55, 0x59, 0x1, 0x25, 0x9c, 0x70, 0xb, 0x0,
- 0xb, 0xc, 0x31, 0x0, 0x0, 0xb, 0x11, 0x1b,
- 0xa, 0x0, 0x0, 0x0, 0xb, 0x33, 0x3b, 0xc,
- 0x55, 0x58, 0x10, 0xb, 0x0, 0xb, 0xa, 0x50,
- 0xc, 0x0, 0xb, 0x55, 0x5b, 0x19, 0x60, 0x29,
- 0x0, 0xb, 0x0, 0xb, 0x18, 0x43, 0x65, 0x0,
- 0xb, 0x0, 0xb, 0x46, 0x8, 0xb0, 0x0, 0xb,
- 0x55, 0x5b, 0x63, 0x9, 0x80, 0x0, 0x1, 0xb1,
- 0x91, 0x80, 0x1b, 0xa0, 0x0, 0x6, 0x60, 0x57,
- 0x60, 0x91, 0x5b, 0x10, 0x17, 0x0, 0x5, 0x25,
- 0x0, 0x7, 0xa0, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8CAC "責" */
- 0x0, 0x0, 0x1, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2b, 0x0, 0x7, 0x0, 0x6, 0x55, 0x56,
- 0xb5, 0x56, 0x52, 0x0, 0x6, 0x55, 0x6b, 0x55,
- 0x85, 0x0, 0x11, 0x11, 0x13, 0xa1, 0x11, 0x2a,
- 0x4, 0x47, 0x44, 0x44, 0x44, 0x75, 0x41, 0x0,
- 0xc5, 0x55, 0x55, 0x59, 0x60, 0x0, 0xc, 0x44,
- 0x44, 0x44, 0x95, 0x0, 0x0, 0xc5, 0x55, 0x55,
- 0x59, 0x50, 0x0, 0xc, 0x0, 0x0, 0x0, 0x75,
- 0x0, 0x0, 0xb5, 0x75, 0x55, 0x59, 0x40, 0x0,
- 0x0, 0x8c, 0x10, 0x48, 0x82, 0x0, 0x5, 0x94,
- 0x0, 0x0, 0x3, 0xd3, 0x2, 0x10, 0x0, 0x0,
- 0x0, 0x1, 0x0,
-
- /* U+8CB7 "買" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x55,
- 0x85, 0x58, 0x55, 0xc0, 0xc, 0x0, 0xb0, 0xb,
- 0x1, 0xa0, 0xc, 0x0, 0xb0, 0xb, 0x1, 0xa0,
- 0x9, 0x55, 0x55, 0x55, 0x55, 0x70, 0x0, 0x95,
- 0x55, 0x55, 0x5c, 0x0, 0x0, 0xc0, 0x0, 0x0,
- 0xc, 0x0, 0x0, 0xc5, 0x55, 0x55, 0x5c, 0x0,
- 0x0, 0xc5, 0x55, 0x55, 0x5c, 0x0, 0x0, 0xc0,
- 0x0, 0x0, 0xc, 0x0, 0x0, 0xb5, 0x75, 0x55,
- 0x59, 0x0, 0x0, 0x1b, 0x90, 0x3, 0x78, 0x20,
- 0x6, 0x82, 0x0, 0x0, 0x3, 0xd0, 0x20, 0x0,
- 0x0, 0x0, 0x0, 0x0,
-
- /* U+8CB8 "貸" */
- 0x0, 0x0, 0x11, 0x1, 0x11, 0x0, 0x0, 0x0,
- 0xc, 0x60, 0xc0, 0xa5, 0x0, 0x0, 0x1c, 0x40,
- 0xa, 0x12, 0x39, 0x20, 0x48, 0x93, 0x55, 0x7a,
- 0x43, 0x32, 0x11, 0x8, 0x20, 0x0, 0x86, 0x0,
- 0x50, 0x0, 0x71, 0x0, 0x0, 0x7b, 0x78, 0x0,
- 0xb, 0x55, 0x55, 0x55, 0xd5, 0x50, 0x0, 0xc5,
- 0x55, 0x55, 0x5c, 0x0, 0x0, 0xc, 0x0, 0x0,
- 0x0, 0xc0, 0x0, 0x0, 0xc5, 0x55, 0x55, 0x5c,
- 0x0, 0x0, 0xc, 0x55, 0x55, 0x55, 0xc0, 0x0,
- 0x0, 0x19, 0xa0, 0x2, 0x78, 0x20, 0x0, 0x59,
- 0x30, 0x0, 0x0, 0x4d, 0x0, 0x20, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+8CBB "費" */
- 0x0, 0x0, 0x20, 0x2, 0x0, 0x0, 0x0, 0x0,
- 0xa1, 0xc, 0x3, 0x0, 0x4, 0x55, 0xc5, 0x5c,
- 0x5c, 0x20, 0x5, 0x95, 0xc5, 0x5c, 0x5a, 0x0,
- 0x9, 0x95, 0xc5, 0x5c, 0x55, 0x69, 0x0, 0x8,
- 0x20, 0xa, 0x3, 0x84, 0x14, 0x95, 0x44, 0x49,
- 0x48, 0x60, 0x0, 0xb1, 0x11, 0x11, 0x1c, 0x0,
- 0x0, 0xb5, 0x55, 0x55, 0x5b, 0x0, 0x0, 0xb5,
- 0x55, 0x55, 0x5b, 0x0, 0x0, 0xb5, 0x55, 0x55,
- 0x5b, 0x0, 0x0, 0x49, 0x50, 0x4, 0x78, 0x0,
- 0x5, 0x94, 0x0, 0x0, 0x5, 0xd1, 0x21, 0x0,
- 0x0, 0x0, 0x0, 0x20,
-
- /* U+8CBF "貿" */
- 0x0, 0x0, 0x60, 0x0, 0x0, 0x0, 0x5, 0x58,
- 0x63, 0x55, 0x55, 0x93, 0xb, 0x1, 0x50, 0x1c,
- 0x0, 0xb0, 0xb, 0x0, 0xa5, 0x29, 0x0, 0xc0,
- 0xc, 0x87, 0x23, 0xa1, 0x58, 0x90, 0x5, 0x10,
- 0x16, 0x10, 0x7, 0x10, 0x0, 0x95, 0x55, 0x55,
- 0x5d, 0x10, 0x0, 0xb5, 0x55, 0x55, 0x5c, 0x0,
- 0x0, 0xb0, 0x0, 0x0, 0xc, 0x0, 0x0, 0xb5,
- 0x55, 0x55, 0x5d, 0x0, 0x0, 0xb5, 0x65, 0x55,
- 0x5c, 0x0, 0x0, 0x17, 0xc0, 0x2, 0x78, 0x10,
- 0x4, 0x84, 0x0, 0x0, 0x4, 0xd0, 0x21, 0x0,
- 0x0, 0x0, 0x0, 0x0,
-
- /* U+8CC3 "賃" */
- 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5b,
- 0x23, 0x68, 0x9b, 0x70, 0x3, 0xc0, 0x11, 0x1b,
- 0x0, 0x0, 0x37, 0xb3, 0x65, 0x5c, 0x55, 0x86,
- 0x20, 0xb0, 0x0, 0xb, 0x0, 0x20, 0x0, 0x70,
- 0x36, 0x57, 0x57, 0x70, 0x0, 0x95, 0x55, 0x55,
- 0x5d, 0x0, 0x0, 0xb5, 0x55, 0x55, 0x5b, 0x0,
- 0x0, 0xb0, 0x0, 0x0, 0xb, 0x0, 0x0, 0xb5,
- 0x55, 0x55, 0x5c, 0x0, 0x0, 0xb5, 0x55, 0x55,
- 0x5b, 0x0, 0x0, 0x16, 0xb0, 0x2, 0x67, 0x10,
- 0x3, 0x95, 0x0, 0x0, 0x3, 0xd1, 0x11, 0x0,
- 0x0, 0x0, 0x0, 0x0,
-
- /* U+8CC7 "資" */
- 0x0, 0x0, 0x4, 0x10, 0x0, 0x0, 0x8, 0x50,
- 0x1c, 0x10, 0x0, 0x10, 0x0, 0x46, 0x3a, 0x56,
- 0x57, 0xb0, 0x0, 0x80, 0x90, 0x3d, 0x5, 0x0,
- 0x3e, 0x12, 0x10, 0xb4, 0x70, 0x0, 0xc, 0x0,
- 0x9, 0x50, 0x6a, 0x41, 0xa, 0x34, 0x72, 0x11,
- 0x19, 0x94, 0x0, 0xc3, 0x33, 0x33, 0x3d, 0x0,
- 0x0, 0xc5, 0x55, 0x55, 0x5c, 0x0, 0x0, 0xc5,
- 0x55, 0x55, 0x5c, 0x0, 0x0, 0xc5, 0x55, 0x55,
- 0x5c, 0x0, 0x0, 0x3a, 0x80, 0x2, 0x78, 0x0,
- 0x5, 0x94, 0x0, 0x0, 0x5, 0xd0, 0x21, 0x0,
- 0x0, 0x0, 0x0, 0x10,
-
- /* U+8CEA "質" */
- 0x0, 0x0, 0x1, 0x0, 0x0, 0x20, 0x0, 0x7,
- 0x58, 0xa2, 0x66, 0x8a, 0x30, 0x0, 0xb0, 0x2,
- 0xc, 0x0, 0x3, 0x0, 0xc, 0x5b, 0x63, 0xd5,
- 0x97, 0x60, 0x4, 0x70, 0xb0, 0x37, 0x8, 0x30,
- 0x0, 0x90, 0xa, 0x19, 0x0, 0x83, 0x0, 0x40,
- 0x55, 0x68, 0x55, 0x5a, 0x10, 0x0, 0x8, 0x40,
- 0x0, 0x0, 0xc0, 0x0, 0x0, 0x87, 0x55, 0x55,
- 0x5d, 0x0, 0x0, 0x8, 0x75, 0x55, 0x55, 0xd0,
- 0x0, 0x0, 0x87, 0x55, 0x55, 0x5d, 0x0, 0x0,
- 0x2, 0x3b, 0x10, 0x26, 0x60, 0x0, 0x1, 0x77,
- 0x10, 0x0, 0x6, 0xd0, 0x0, 0x30, 0x0, 0x0,
- 0x0, 0x2, 0x0,
-
- /* U+8CFD "賽" */
- 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0,
- 0x10, 0x0, 0x39, 0x0, 0x1, 0x0, 0x0, 0xa5,
- 0x59, 0x55, 0x85, 0x5b, 0x40, 0x1, 0x56, 0x5c,
- 0x55, 0xc5, 0x85, 0x0, 0x0, 0x5, 0x5c, 0x55,
- 0xc5, 0x71, 0x0, 0x1, 0x56, 0x5c, 0x55, 0xc5,
- 0x59, 0x30, 0x0, 0x10, 0x95, 0x0, 0x25, 0x0,
- 0x0, 0x0, 0x19, 0xd5, 0x55, 0x5d, 0xb3, 0x0,
- 0x4, 0x50, 0xc5, 0x55, 0x5b, 0x2a, 0xc1, 0x0,
- 0x0, 0xc3, 0x33, 0x3b, 0x10, 0x0, 0x0, 0x0,
- 0xc1, 0x11, 0x1a, 0x10, 0x0, 0x0, 0x0, 0x9a,
- 0x55, 0xa9, 0x0, 0x0, 0x0, 0x2, 0x96, 0x10,
- 0x6, 0xc1, 0x0, 0x0, 0x23, 0x0, 0x0, 0x0,
- 0x21, 0x0,
-
- /* U+8D39 "费" */
- 0x0, 0x0, 0x40, 0x2, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0x10, 0xd0, 0x1, 0x0, 0x6, 0x55, 0xc5,
- 0x5c, 0x56, 0xc0, 0x0, 0x75, 0x5c, 0x55, 0xc5,
- 0x69, 0x0, 0xc, 0x0, 0xb0, 0xb, 0x0, 0x34,
- 0x1, 0x75, 0xa8, 0x55, 0xd5, 0x57, 0xc0, 0x0,
- 0x66, 0x0, 0xb, 0x4, 0xc3, 0x3, 0x59, 0x55,
- 0x55, 0x55, 0xb2, 0x0, 0x0, 0xc0, 0x6, 0x50,
- 0x1a, 0x0, 0x0, 0xc, 0x0, 0x92, 0x1, 0xb0,
- 0x0, 0x0, 0xb0, 0xb, 0x21, 0x17, 0x0, 0x0,
- 0x0, 0xa, 0x30, 0x5b, 0x81, 0x0, 0x2, 0x67,
- 0x10, 0x0, 0x9, 0xa0, 0x3, 0x20, 0x0, 0x0,
- 0x0, 0x1, 0x0,
-
- /* U+8D64 "赤" */
- 0x0, 0x0, 0x0, 0x21, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x67, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x65, 0x0, 0x52, 0x0, 0x0, 0x16, 0x55,
- 0x99, 0x55, 0x53, 0x0, 0x0, 0x0, 0x0, 0x65,
- 0x0, 0x0, 0x0, 0x4, 0x55, 0x55, 0x99, 0x55,
- 0x56, 0xc1, 0x0, 0x1, 0xa, 0x20, 0xc0, 0x0,
- 0x0, 0x0, 0xd, 0x3b, 0x0, 0xc1, 0x60, 0x0,
- 0x0, 0x57, 0xc, 0x0, 0xc0, 0x2b, 0x10, 0x1,
- 0x70, 0x39, 0x0, 0xc0, 0x7, 0xa0, 0x5, 0x0,
- 0x92, 0x0, 0xc0, 0x0, 0x60, 0x0, 0x6, 0x50,
- 0x0, 0xc0, 0x0, 0x0, 0x0, 0x63, 0x0, 0x5b,
- 0xe0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x1, 0x20,
- 0x0, 0x0,
-
- /* U+8D70 "走" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa4, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa1, 0x1, 0x70, 0x0, 0x0, 0x45, 0x55,
- 0xc6, 0x55, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa1,
- 0x0, 0x0, 0x0, 0x16, 0x55, 0x55, 0xb6, 0x55,
- 0x5c, 0x50, 0x0, 0x1, 0x0, 0xa3, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0x30, 0xa1, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0xa6, 0x55, 0xc4, 0x0, 0x0,
- 0x4b, 0x0, 0xa1, 0x0, 0x0, 0x0, 0x0, 0x92,
- 0x81, 0xa1, 0x0, 0x0, 0x0, 0x2, 0x90, 0xa,
- 0xe6, 0x31, 0x11, 0x20, 0x8, 0x0, 0x0, 0x48,
- 0xbd, 0xff, 0x60, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8D77 "起" */
- 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb0, 0x60, 0x65, 0x5b, 0x10, 0x2, 0x65, 0xc5,
- 0x50, 0x0, 0xb, 0x0, 0x0, 0x0, 0xb0, 0x0,
- 0x0, 0xb, 0x0, 0x6, 0x55, 0xc5, 0xa5, 0x95,
- 0x5c, 0x0, 0x0, 0x0, 0xb2, 0x0, 0xb0, 0x4,
- 0x0, 0x0, 0xc0, 0xb0, 0x0, 0xb0, 0x0, 0x10,
- 0x0, 0xc0, 0xb5, 0xb2, 0xb0, 0x0, 0x50, 0x3,
- 0xa0, 0xb0, 0x0, 0xb0, 0x0, 0xa0, 0x6, 0x75,
- 0xb0, 0x0, 0x89, 0x9a, 0x90, 0x8, 0x3, 0xc7,
- 0x42, 0x0, 0x0, 0x10, 0x23, 0x0, 0x3, 0x8b,
- 0xde, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8D85 "超" */
- 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xa, 0x30, 0x2, 0x22, 0x23, 0x40, 0x0, 0xa,
- 0x4, 0x4, 0xc5, 0x38, 0x60, 0x4, 0x5c, 0x56,
- 0x10, 0xd0, 0x8, 0x40, 0x0, 0xa, 0x0, 0x2,
- 0xa0, 0xa, 0x20, 0x5, 0x5c, 0x5a, 0x3a, 0x11,
- 0x9d, 0x0, 0x1, 0x8, 0x20, 0x63, 0x0, 0x3,
- 0x0, 0x3, 0x78, 0x20, 0xc, 0x55, 0x5d, 0x30,
- 0x5, 0x68, 0x68, 0x5c, 0x0, 0xb, 0x0, 0x6,
- 0x48, 0x20, 0xc, 0x0, 0xb, 0x0, 0x8, 0x5a,
- 0x20, 0xc, 0x55, 0x5d, 0x0, 0x8, 0x6, 0x84,
- 0x15, 0x0, 0x1, 0x0, 0x31, 0x0, 0x5, 0x9b,
- 0xcd, 0xde, 0x90, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8D8A "越" */
- 0x0, 0x2, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0,
- 0xb, 0x10, 0x0, 0xd, 0x33, 0x0, 0x1, 0x1b,
- 0x17, 0x10, 0xb, 0xc, 0x0, 0x4, 0x3c, 0x33,
- 0x17, 0x5d, 0x58, 0xa0, 0x0, 0xb, 0x0, 0xb,
- 0xb, 0x0, 0x0, 0x36, 0x5b, 0x58, 0x6b, 0xb,
- 0xa, 0x30, 0x1, 0x7, 0x40, 0xb, 0xa, 0x1c,
- 0x0, 0x4, 0xa7, 0x31, 0x1b, 0x7, 0xb4, 0x0,
- 0x6, 0x67, 0x76, 0x4c, 0x64, 0xd0, 0x50, 0x8,
- 0x47, 0x30, 0x1c, 0x1a, 0x96, 0x80, 0xa, 0x6a,
- 0x30, 0x1, 0x81, 0x9, 0xc0, 0x8, 0x7, 0xa4,
- 0x14, 0x0, 0x0, 0x30, 0x41, 0x0, 0x17, 0xbc,
- 0xcc, 0xdd, 0xa1, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x11, 0x0,
-
- /* U+8DA3 "趣" */
- 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0xa,
- 0x16, 0xa5, 0xa7, 0x20, 0x0, 0x4, 0x5c, 0x73,
- 0xa0, 0xa2, 0x65, 0xb0, 0x0, 0xa, 0x0, 0xa5,
- 0xc0, 0x2, 0x80, 0x15, 0x5c, 0x5a, 0xa0, 0xa1,
- 0x45, 0x50, 0x1, 0x9, 0x10, 0xa0, 0xa0, 0x5b,
- 0x10, 0x5, 0x4a, 0x0, 0xa5, 0xc0, 0xd, 0x0,
- 0x8, 0x4a, 0x67, 0xa0, 0xa3, 0x68, 0x70, 0x9,
- 0x1a, 0x4, 0xc7, 0xc2, 0x60, 0xb0, 0x9, 0x6b,
- 0x3, 0x10, 0xa3, 0x0, 0x10, 0x7, 0x9, 0x72,
- 0x0, 0x60, 0x0, 0x0, 0x31, 0x0, 0x27, 0xbc,
- 0xcd, 0xde, 0xc1, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8DB3 "足" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x9, 0x55, 0x55, 0x55, 0xd0, 0x0, 0x0, 0xa,
- 0x0, 0x0, 0x0, 0xa0, 0x0, 0x0, 0xa, 0x0,
- 0x0, 0x0, 0xa0, 0x0, 0x0, 0xa, 0x0, 0x0,
- 0x0, 0xa0, 0x0, 0x0, 0xa, 0x55, 0xc5, 0x55,
- 0xa0, 0x0, 0x0, 0x0, 0x0, 0xc0, 0x0, 0x0,
- 0x0, 0x0, 0x9, 0x10, 0xc0, 0x0, 0x34, 0x0,
- 0x0, 0x2d, 0x0, 0xc5, 0x55, 0x55, 0x0, 0x0,
- 0x7a, 0x0, 0xc0, 0x0, 0x0, 0x0, 0x0, 0xc1,
- 0x70, 0xc0, 0x0, 0x0, 0x0, 0x5, 0x40, 0x19,
- 0xe3, 0x21, 0x1, 0x21, 0x16, 0x0, 0x0, 0x49,
- 0xce, 0xef, 0x90, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8DDF "跟" */
- 0x4, 0x55, 0x59, 0x7, 0x55, 0x59, 0x0, 0x7,
- 0x40, 0xb, 0xb, 0x0, 0xc, 0x0, 0x7, 0x40,
- 0xa, 0xb, 0x0, 0xb, 0x0, 0x7, 0x40, 0xa,
- 0xd, 0x55, 0x5b, 0x0, 0x7, 0x7b, 0x57, 0xb,
- 0x0, 0xb, 0x0, 0x1, 0xa, 0x0, 0xc, 0x65,
- 0x5b, 0x0, 0xa, 0x2b, 0x59, 0x1b, 0x41, 0x6,
- 0x40, 0xa, 0xa, 0x0, 0xb, 0x16, 0x59, 0x20,
- 0xa, 0xa, 0x0, 0xb, 0x9, 0x40, 0x0, 0xa,
- 0xb, 0x55, 0x1b, 0x3, 0xb1, 0x0, 0x4d, 0xb7,
- 0x10, 0xd, 0x80, 0x3d, 0x91, 0x35, 0x0, 0x0,
- 0x8, 0x0, 0x1, 0x30,
-
- /* U+8DEF "路" */
- 0x0, 0x0, 0x0, 0x1, 0x20, 0x0, 0x0, 0x3,
- 0x22, 0x25, 0x6, 0xa0, 0x0, 0x0, 0x8, 0x53,
- 0x4a, 0xa, 0x65, 0x5c, 0x0, 0x8, 0x20, 0x19,
- 0x1b, 0x0, 0x66, 0x0, 0x9, 0x20, 0x19, 0x61,
- 0x71, 0xa0, 0x0, 0x8, 0x6b, 0x66, 0x50, 0x4e,
- 0x20, 0x0, 0x0, 0xa, 0x0, 0x0, 0xa9, 0xb2,
- 0x0, 0xa, 0x2b, 0x68, 0x9, 0x30, 0x3d, 0xb1,
- 0xa, 0xa, 0x3, 0x6c, 0x55, 0x5c, 0x20, 0xa,
- 0xa, 0x0, 0xb, 0x0, 0xb, 0x0, 0xa, 0xc,
- 0x64, 0xb, 0x0, 0xb, 0x0, 0x3d, 0x94, 0x0,
- 0xc, 0x55, 0x5b, 0x0, 0x0, 0x0, 0x0, 0xb,
- 0x0, 0x9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8EAB "身" */
- 0x0, 0x0, 0x2, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x93, 0x0, 0x0, 0x0, 0x0, 0xa, 0x58,
- 0x55, 0x5d, 0x0, 0x0, 0x0, 0xc0, 0x0, 0x0,
- 0xc0, 0x0, 0x0, 0xd, 0x55, 0x55, 0x5c, 0x3,
- 0x0, 0x0, 0xc0, 0x0, 0x0, 0xc5, 0xc0, 0x0,
- 0xd, 0x55, 0x55, 0x5e, 0xb0, 0x0, 0x0, 0xc0,
- 0x0, 0x4, 0xe1, 0x0, 0x36, 0x57, 0x55, 0x58,
- 0xbc, 0x0, 0x0, 0x0, 0x0, 0x6, 0x90, 0xc0,
- 0x0, 0x0, 0x0, 0x19, 0x50, 0xc, 0x0, 0x0,
- 0x0, 0x67, 0x10, 0x0, 0xc0, 0x0, 0x24, 0x50,
- 0x0, 0x5, 0xca, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x2, 0x0, 0x0,
-
- /* U+8ECA "車" */
- 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x1, 0xc0, 0x0, 0x0, 0x0, 0x2,
- 0x65, 0x55, 0x5c, 0x55, 0x56, 0xb1, 0x0, 0x0,
- 0x0, 0x0, 0xa0, 0x0, 0x20, 0x0, 0x0, 0x1b,
- 0x55, 0x5c, 0x55, 0x5e, 0x10, 0x0, 0x1, 0x90,
- 0x0, 0xa0, 0x0, 0xb0, 0x0, 0x0, 0x1b, 0x55,
- 0x5c, 0x55, 0x5b, 0x0, 0x0, 0x1, 0x90, 0x0,
- 0xa0, 0x0, 0xb0, 0x0, 0x0, 0x1b, 0x55, 0x5c,
- 0x55, 0x5c, 0x0, 0x0, 0x0, 0x10, 0x0, 0xa0,
- 0x0, 0x2, 0x20, 0x6, 0x55, 0x55, 0x5c, 0x55,
- 0x55, 0x88, 0x0, 0x0, 0x0, 0x0, 0xa0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1b, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x30, 0x0, 0x0,
- 0x0,
-
- /* U+8EDF "軟" */
- 0x0, 0x3, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0,
- 0xb, 0x20, 0x0, 0xc3, 0x0, 0x0, 0x6, 0x5c,
- 0x59, 0x50, 0xb0, 0x0, 0x0, 0x0, 0xa, 0x0,
- 0x5, 0x95, 0x57, 0x90, 0xa, 0x5c, 0x5c, 0x29,
- 0x45, 0x7, 0x30, 0xb, 0xa, 0xa, 0x33, 0x48,
- 0x2, 0x0, 0xb, 0x5c, 0x5b, 0x10, 0x5a, 0x0,
- 0x0, 0xb, 0xa, 0xa, 0x0, 0x7a, 0x0, 0x0,
- 0xb, 0x5c, 0x5b, 0x0, 0xa6, 0x20, 0x0, 0x2,
- 0xa, 0x1, 0x41, 0xb1, 0x90, 0x0, 0x36, 0x5c,
- 0x55, 0x58, 0x30, 0xa3, 0x0, 0x0, 0xa, 0x0,
- 0x55, 0x0, 0x2d, 0x30, 0x0, 0xb, 0x4, 0x40,
- 0x0, 0x4, 0xa1, 0x0, 0x3, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8EE2 "転" */
- 0x0, 0x4, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb, 0x20, 0x0, 0x0, 0x0, 0x0, 0x6, 0x5c,
- 0x5a, 0x45, 0x65, 0x5b, 0x10, 0x0, 0xa, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xa, 0x5c, 0x5c, 0x10,
- 0x0, 0x0, 0x0, 0xb, 0xa, 0xa, 0x0, 0x0,
- 0x0, 0x40, 0xb, 0x5c, 0x5b, 0x46, 0x59, 0x56,
- 0x70, 0xb, 0xa, 0xa, 0x0, 0x4a, 0x0, 0x0,
- 0xb, 0x5c, 0x5b, 0x0, 0xa1, 0x0, 0x0, 0x2,
- 0xa, 0x4, 0x12, 0x70, 0x31, 0x0, 0x36, 0x5c,
- 0x55, 0x38, 0x0, 0xa, 0x20, 0x0, 0xa, 0x0,
- 0x7b, 0x97, 0x67, 0xa0, 0x0, 0xb, 0x0, 0x23,
- 0x0, 0x0, 0x50, 0x0, 0x4, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8EFD "軽" */
- 0x0, 0x4, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb, 0x10, 0x36, 0x55, 0x5b, 0x40, 0x6, 0x5c,
- 0x5a, 0x24, 0x0, 0x2a, 0x0, 0x0, 0xa, 0x0,
- 0x0, 0x70, 0xa1, 0x0, 0xa, 0x5c, 0x5d, 0x10,
- 0x5b, 0x30, 0x0, 0xb, 0xa, 0xa, 0x0, 0x89,
- 0x91, 0x0, 0xb, 0x5c, 0x5b, 0x27, 0x22, 0x4d,
- 0xa1, 0xb, 0xa, 0xb, 0x30, 0xd, 0x10, 0x10,
- 0xb, 0x5c, 0x5b, 0x0, 0xb, 0x5, 0x20, 0x3,
- 0xa, 0x2, 0x46, 0x5c, 0x55, 0x30, 0x26, 0x5c,
- 0x55, 0x40, 0xb, 0x0, 0x0, 0x0, 0xa, 0x0,
- 0x0, 0xb, 0x0, 0x30, 0x0, 0xb, 0x1, 0x65,
- 0x57, 0x56, 0x81, 0x0, 0x4, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8F03 "較" */
- 0x0, 0x4, 0x10, 0x0, 0x11, 0x0, 0x0, 0x0,
- 0xb, 0x10, 0x0, 0xb, 0x30, 0x0, 0x6, 0x5c,
- 0x5b, 0x20, 0x3, 0x20, 0x30, 0x0, 0xa, 0x0,
- 0x26, 0x75, 0x56, 0x70, 0xa, 0x5c, 0x5c, 0x20,
- 0xc3, 0x26, 0x0, 0xb, 0xa, 0xa, 0x6, 0x50,
- 0x3, 0xc0, 0xb, 0x5c, 0x5b, 0x37, 0x20, 0x26,
- 0x62, 0xb, 0xa, 0xa, 0x40, 0x60, 0x69, 0x0,
- 0xb, 0x5c, 0x5b, 0x0, 0x71, 0xb1, 0x0, 0x2,
- 0xa, 0x3, 0x20, 0x1c, 0x80, 0x0, 0x26, 0x5c,
- 0x56, 0x40, 0x2c, 0x80, 0x0, 0x0, 0xa, 0x0,
- 0x4, 0x80, 0x8b, 0x30, 0x0, 0xb, 0x1, 0x64,
- 0x0, 0x5, 0xa2, 0x0, 0x4, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8F09 "載" */
- 0x0, 0x0, 0x41, 0x0, 0x4, 0x0, 0x0, 0x0,
- 0x0, 0xa1, 0x51, 0xd, 0x73, 0x0, 0x0, 0x65,
- 0xc5, 0x53, 0xb, 0x19, 0x0, 0x6, 0x55, 0xb5,
- 0x55, 0x5c, 0x55, 0xb3, 0x0, 0x0, 0x92, 0x21,
- 0xb, 0x0, 0x0, 0x2, 0x65, 0xc5, 0x66, 0xb,
- 0x2, 0x30, 0x0, 0x95, 0xc5, 0xa5, 0xb, 0x7,
- 0x70, 0x0, 0xb0, 0xa0, 0x91, 0xb, 0xb, 0x0,
- 0x0, 0xc5, 0xc5, 0xb1, 0x9, 0x68, 0x0, 0x0,
- 0xd5, 0xc5, 0xb1, 0x5, 0xe1, 0x0, 0x0, 0x20,
- 0xa0, 0x26, 0x9, 0xd0, 0x3, 0x5, 0x55, 0xc5,
- 0x55, 0xa6, 0x59, 0x15, 0x0, 0x0, 0xa0, 0x38,
- 0x20, 0x7, 0xd5, 0x0, 0x0, 0x40, 0x20, 0x0,
- 0x0, 0x34,
-
- /* U+8F15 "輕" */
- 0x0, 0x4, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb, 0x10, 0x12, 0x22, 0x25, 0x60, 0x16, 0x5c,
- 0x5a, 0x36, 0x45, 0x45, 0x40, 0x0, 0xa, 0x0,
- 0x9, 0x3a, 0x3a, 0x30, 0xa, 0x5c, 0x5c, 0x37,
- 0x34, 0x25, 0x0, 0xb, 0xa, 0xa, 0x35, 0x36,
- 0x18, 0x0, 0xb, 0x5c, 0x5b, 0xa, 0x3a, 0x37,
- 0x60, 0xb, 0xa, 0xa, 0x3, 0x43, 0x12, 0x20,
- 0xb, 0x5c, 0x5b, 0x6, 0x58, 0x59, 0x50, 0x3,
- 0xa, 0x1, 0x30, 0xb, 0x0, 0x0, 0x36, 0x5c,
- 0x55, 0x50, 0xb, 0x0, 0x0, 0x0, 0xa, 0x0,
- 0x0, 0xb, 0x0, 0x0, 0x0, 0xb, 0x0, 0x55,
- 0x5c, 0x55, 0xd2, 0x0, 0x8, 0x0, 0x10, 0x0,
- 0x0, 0x0,
-
- /* U+8F2A "輪" */
- 0x0, 0x5, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0,
- 0xb, 0x0, 0x0, 0x2d, 0x0, 0x0, 0x6, 0x5c,
- 0x5a, 0x0, 0x95, 0x50, 0x0, 0x0, 0xa, 0x0,
- 0x2, 0xa0, 0x84, 0x0, 0xb, 0x5c, 0x5d, 0x19,
- 0x0, 0x3d, 0xa2, 0xb, 0xa, 0xb, 0x62, 0x65,
- 0x53, 0x40, 0xb, 0x4c, 0x4a, 0x45, 0x55, 0x55,
- 0x80, 0xb, 0xa, 0xa, 0x64, 0x90, 0x90, 0xa0,
- 0xb, 0x5c, 0x5a, 0x64, 0x90, 0x90, 0xa0, 0x2,
- 0xa, 0x5, 0x68, 0xb5, 0xb5, 0xa0, 0x26, 0x5c,
- 0x55, 0x74, 0x90, 0x90, 0xa0, 0x0, 0xa, 0x0,
- 0x64, 0x90, 0x90, 0xa0, 0x0, 0xb, 0x0, 0x64,
- 0x60, 0x67, 0x90, 0x0, 0x4, 0x0, 0x10, 0x0,
- 0x1, 0x0,
-
- /* U+8F38 "輸" */
- 0x0, 0x1, 0x0, 0x0, 0x11, 0x0, 0x0, 0x0,
- 0xc, 0x10, 0x0, 0x6c, 0x0, 0x0, 0x6, 0x5c,
- 0x5a, 0x0, 0xd4, 0x40, 0x0, 0x0, 0xa, 0x0,
- 0x6, 0x80, 0x84, 0x0, 0x9, 0x5c, 0x5c, 0x39,
- 0x65, 0x8c, 0xa2, 0xb, 0xa, 0xb, 0x60, 0x1,
- 0x4, 0x50, 0xb, 0x5c, 0x5a, 0x68, 0x69, 0x39,
- 0x20, 0xb, 0xa, 0xa, 0x65, 0x29, 0xa8, 0x10,
- 0xc, 0x5c, 0x5a, 0x68, 0x59, 0x98, 0x10, 0x2,
- 0xa, 0x6, 0x67, 0x49, 0x98, 0x10, 0x26, 0x5c,
- 0x55, 0x76, 0x39, 0xa8, 0x10, 0x0, 0xa, 0x0,
- 0x65, 0x18, 0x18, 0x10, 0x0, 0xc, 0x0, 0x66,
- 0xa7, 0x6d, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8F9B "辛" */
- 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x3a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb3, 0x0, 0x71, 0x0, 0x6, 0x57, 0x55, 0x58,
- 0x65, 0x30, 0x0, 0x0, 0x75, 0x0, 0xa6, 0x0,
- 0x0, 0x0, 0x2, 0xd0, 0x9, 0x0, 0x0, 0x6,
- 0x55, 0x57, 0x68, 0x65, 0x5c, 0x60, 0x0, 0x0,
- 0xa, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa2,
- 0x0, 0x30, 0x0, 0x6, 0x55, 0x5c, 0x75, 0x5b,
- 0x30, 0x0, 0x0, 0x0, 0xa2, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
- 0x0, 0x0, 0x0,
-
- /* U+8F9E "辞" */
- 0x0, 0x0, 0x0, 0x0, 0x31, 0x0, 0x0, 0x0,
- 0x0, 0x6c, 0x0, 0x1b, 0x0, 0x0, 0x3, 0x6a,
- 0x93, 0x36, 0x57, 0x56, 0x90, 0x0, 0x4, 0x70,
- 0x2, 0x0, 0x15, 0x0, 0x0, 0x4, 0x72, 0x46,
- 0x50, 0x5b, 0x0, 0x5, 0x57, 0x95, 0x41, 0xa0,
- 0x91, 0x0, 0x0, 0x4, 0x70, 0x45, 0x45, 0x84,
- 0x92, 0x1, 0x77, 0x98, 0x20, 0xb, 0x0, 0x0,
- 0x1, 0xb0, 0xb, 0x0, 0xb, 0x0, 0x0, 0x1,
- 0xb0, 0xb, 0x26, 0x5c, 0x57, 0x70, 0x1, 0xb0,
- 0xb, 0x0, 0xb, 0x0, 0x0, 0x1, 0xc5, 0x5c,
- 0x0, 0xb, 0x0, 0x0, 0x1, 0x80, 0x3, 0x0,
- 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
- 0x0, 0x0,
-
- /* U+8FA6 "辦" */
- 0x0, 0x0, 0x0, 0x10, 0x2, 0x0, 0x0, 0x0,
- 0xa1, 0x0, 0xc0, 0x1, 0xc0, 0x0, 0x3, 0x97,
- 0x40, 0xa0, 0x13, 0x75, 0x40, 0x4, 0x26, 0x35,
- 0xc9, 0x53, 0x25, 0x20, 0x7, 0x2a, 0x20, 0xa7,
- 0x29, 0xb, 0x20, 0x3, 0x57, 0x11, 0x97, 0x17,
- 0x37, 0x0, 0x36, 0xa6, 0x83, 0x78, 0x55, 0x96,
- 0xa0, 0x0, 0xa0, 0x5, 0x49, 0x0, 0xa0, 0x0,
- 0x3, 0xb6, 0x49, 0xa, 0x0, 0xa1, 0x20, 0x3,
- 0xa1, 0x29, 0xa, 0x26, 0xc6, 0x50, 0x0, 0x90,
- 0x81, 0xa, 0x0, 0xa0, 0x0, 0x6, 0x34, 0x43,
- 0xb7, 0x0, 0xa0, 0x0, 0x25, 0x24, 0x0, 0x20,
- 0x0, 0xb0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x30, 0x0,
-
- /* U+8FB2 "農" */
- 0x0, 0x0, 0x16, 0x0, 0x60, 0x0, 0x0, 0x5,
- 0x56, 0xc5, 0x5d, 0x58, 0x20, 0x0, 0x92, 0x1a,
- 0x0, 0xb0, 0xa1, 0x0, 0x9, 0x66, 0xc5, 0x5c,
- 0x5c, 0x0, 0x0, 0x92, 0x1a, 0x0, 0xb0, 0xa1,
- 0x0, 0x7, 0x55, 0x65, 0x56, 0x59, 0x10, 0x0,
- 0x85, 0x55, 0x55, 0x55, 0x87, 0x0, 0x9, 0x33,
- 0x33, 0x33, 0x62, 0x0, 0x0, 0x93, 0x21, 0x11,
- 0x11, 0x15, 0x0, 0xb, 0x5b, 0x57, 0x65, 0x58,
- 0x61, 0x0, 0xb0, 0xa0, 0x7, 0x18, 0x70, 0x0,
- 0x55, 0xa, 0x1, 0x3a, 0xa0, 0x0, 0x17, 0x0,
- 0xda, 0x60, 0x6, 0xdb, 0x52, 0x0, 0x2, 0x0,
- 0x0, 0x0, 0x30,
-
- /* U+8FBA "辺" */
- 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x86, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1e,
- 0x6, 0x57, 0x75, 0x5c, 0x60, 0x0, 0x0, 0x0,
- 0x8, 0x30, 0xa, 0x10, 0x0, 0x6, 0x0, 0xa,
- 0x10, 0xa, 0x0, 0x6, 0x5d, 0x0, 0xc, 0x0,
- 0xb, 0x0, 0x0, 0xa, 0x0, 0x1a, 0x0, 0xb,
- 0x0, 0x0, 0xa, 0x0, 0x74, 0x0, 0xc, 0x0,
- 0x0, 0xa, 0x0, 0xa0, 0x0, 0xb, 0x0, 0x0,
- 0xa, 0x7, 0x20, 0x0, 0x58, 0x0, 0x0, 0x7c,
- 0x32, 0x0, 0x19, 0xe2, 0x0, 0x1d, 0x51, 0xa4,
- 0x0, 0x0, 0x10, 0x0, 0x2, 0x0, 0x6, 0xbc,
- 0xdd, 0xde, 0xc2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8FBC "込" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x92, 0x0, 0x7, 0x0, 0x0, 0x0, 0x0, 0x3d,
- 0x0, 0x3, 0x20, 0x0, 0x0, 0x0, 0x4, 0x0,
- 0x0, 0x60, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0,
- 0xd0, 0x0, 0x0, 0x6, 0x5e, 0x10, 0x5, 0x94,
- 0x0, 0x0, 0x0, 0xb, 0x0, 0xb, 0x9, 0x0,
- 0x0, 0x0, 0xb, 0x0, 0x55, 0x7, 0x30, 0x0,
- 0x0, 0xb, 0x1, 0x80, 0x0, 0xc1, 0x0, 0x0,
- 0xb, 0x17, 0x0, 0x0, 0x5c, 0x20, 0x0, 0x6c,
- 0x40, 0x0, 0x0, 0x8, 0xb1, 0xc, 0x61, 0x94,
- 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x5, 0xbc,
- 0xcc, 0xdd, 0xc3, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8FCE "迎" */
- 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x70, 0x0, 0x7, 0xb1, 0x0, 0x0, 0x0, 0x78,
- 0xa, 0x41, 0x8, 0x55, 0xa0, 0x0, 0x13, 0xb,
- 0x0, 0xb, 0x0, 0xb0, 0x0, 0x0, 0xb, 0x0,
- 0xb, 0x0, 0xb0, 0x6, 0x6c, 0xb, 0x0, 0xb,
- 0x0, 0xb0, 0x0, 0xa, 0xb, 0x0, 0xb, 0x0,
- 0xb0, 0x0, 0xa, 0xb, 0x4, 0x2b, 0x0, 0xb0,
- 0x0, 0xa, 0xc, 0xb3, 0xb, 0x26, 0xa0, 0x0,
- 0xa, 0x5, 0x10, 0xb, 0x5, 0x30, 0x1, 0x89,
- 0x20, 0x0, 0xb, 0x0, 0x0, 0x1d, 0x20, 0x68,
- 0x42, 0x14, 0x11, 0x23, 0x0, 0x0, 0x1, 0x69,
- 0xbc, 0xcd, 0xc1,
-
- /* U+8FD1 "近" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x70, 0x0, 0x10, 0x14, 0x8d, 0x20, 0x0, 0x59,
- 0x0, 0xb5, 0x53, 0x10, 0x0, 0x0, 0x2, 0x0,
- 0xb0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0xb0,
- 0x0, 0x0, 0x40, 0x7, 0x6d, 0x0, 0xb5, 0x55,
- 0xb5, 0x62, 0x0, 0xa, 0x0, 0xb0, 0x0, 0xb0,
- 0x0, 0x0, 0xa, 0x0, 0xa0, 0x0, 0xb0, 0x0,
- 0x0, 0xa, 0x4, 0x60, 0x0, 0xb0, 0x0, 0x0,
- 0xa, 0x8, 0x0, 0x0, 0xb0, 0x0, 0x0, 0x3b,
- 0x21, 0x0, 0x0, 0xc0, 0x0, 0x6, 0x80, 0x74,
- 0x0, 0x0, 0x40, 0x0, 0x9, 0x0, 0x5, 0xbc,
- 0xdd, 0xdd, 0xd5, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8FD4 "返" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x62, 0x1, 0x1, 0x37, 0xca, 0x0, 0x0, 0x1d,
- 0x3, 0xb4, 0x31, 0x0, 0x0, 0x0, 0x5, 0x3,
- 0x90, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xb5,
- 0x55, 0x69, 0x0, 0x7, 0x5c, 0x4, 0x80, 0x0,
- 0x67, 0x0, 0x0, 0xb, 0x5, 0x74, 0x0, 0xc0,
- 0x0, 0x0, 0xb, 0x6, 0x30, 0x89, 0x60, 0x0,
- 0x0, 0xb, 0x9, 0x0, 0x2c, 0xb1, 0x0, 0x0,
- 0xb, 0x26, 0x2, 0xa1, 0x3d, 0x10, 0x0, 0xb,
- 0x40, 0x47, 0x0, 0x5, 0x30, 0x4, 0x83, 0x75,
- 0x10, 0x0, 0x0, 0x0, 0x9, 0x0, 0x6, 0xbc,
- 0xdd, 0xde, 0xc2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+8FEB "迫" */
- 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x40, 0x0, 0x0, 0xd2, 0x0, 0x0, 0x0, 0x87,
- 0x0, 0x1, 0x80, 0x0, 0x0, 0x0, 0x2b, 0x0,
- 0xa7, 0x65, 0x5d, 0x0, 0x0, 0x0, 0x0, 0xc0,
- 0x0, 0x1b, 0x0, 0x5, 0x5a, 0x0, 0xc0, 0x0,
- 0x1b, 0x0, 0x1, 0xc, 0x0, 0xd5, 0x55, 0x5b,
- 0x0, 0x0, 0xc, 0x0, 0xc0, 0x0, 0x1b, 0x0,
- 0x0, 0xc, 0x0, 0xc0, 0x0, 0x1b, 0x0, 0x0,
- 0xc, 0x0, 0xd5, 0x55, 0x5b, 0x0, 0x0, 0x7d,
- 0x10, 0xc0, 0x0, 0x9, 0x0, 0xc, 0x60, 0x86,
- 0x31, 0x0, 0x1, 0x22, 0x3, 0x0, 0x3, 0x8b,
- 0xcd, 0xee, 0xc1,
-
- /* U+8FFD "追" */
- 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0,
- 0x60, 0x0, 0x0, 0xa2, 0x0, 0x0, 0x0, 0x79,
- 0x0, 0x75, 0x95, 0x59, 0x0, 0x0, 0x17, 0x0,
- 0xb0, 0x0, 0x1a, 0x0, 0x0, 0x0, 0x0, 0xb0,
- 0x0, 0x1a, 0x0, 0x6, 0x5b, 0x0, 0xc5, 0x55,
- 0x6a, 0x0, 0x0, 0xb, 0x0, 0xb0, 0x0, 0x0,
- 0x0, 0x0, 0xb, 0x0, 0xc5, 0x55, 0x5b, 0x50,
- 0x0, 0xb, 0x0, 0xb0, 0x0, 0x9, 0x20, 0x0,
- 0xb, 0x0, 0xb0, 0x0, 0x9, 0x20, 0x0, 0x6c,
- 0x10, 0xd5, 0x55, 0x5b, 0x20, 0xb, 0x60, 0x85,
- 0x40, 0x0, 0x1, 0x0, 0x4, 0x0, 0x5, 0xac,
- 0xcc, 0xdd, 0xe4, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x11, 0x10,
-
- /* U+9000 "退" */
- 0x0, 0x60, 0x0, 0x20, 0x0, 0x5, 0x0, 0x0,
- 0x6a, 0x0, 0xd5, 0x55, 0x5d, 0x0, 0x0, 0x6,
- 0x0, 0xc0, 0x0, 0xc, 0x0, 0x0, 0x0, 0x0,
- 0xd5, 0x55, 0x5c, 0x0, 0x5, 0x5b, 0x0, 0xc0,
- 0x0, 0xc, 0x0, 0x0, 0xc, 0x0, 0xd5, 0x55,
- 0x58, 0x30, 0x0, 0xc, 0x0, 0xc1, 0x40, 0x2a,
- 0x40, 0x0, 0xc, 0x0, 0xc0, 0x18, 0xa0, 0x0,
- 0x0, 0xc, 0x0, 0xc2, 0x62, 0x5d, 0x30, 0x0,
- 0x6b, 0x21, 0xf7, 0x0, 0x4, 0x80, 0xc, 0x40,
- 0x67, 0x50, 0x0, 0x0, 0x12, 0x1, 0x0, 0x3,
- 0x9b, 0xde, 0xef, 0xe2,
-
- /* U+9001 "送" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0,
- 0x70, 0x0, 0x81, 0x1, 0xd0, 0x0, 0x0, 0x88,
- 0x0, 0x4a, 0x7, 0x30, 0x0, 0x0, 0x13, 0x3,
- 0x57, 0x59, 0x5b, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0xc0, 0x0, 0x0, 0x7, 0x6b, 0x0, 0x0, 0xc0,
- 0x0, 0x40, 0x0, 0x19, 0x26, 0x55, 0xd5, 0x56,
- 0x80, 0x0, 0x19, 0x0, 0x2, 0xb0, 0x0, 0x0,
- 0x0, 0x19, 0x0, 0x9, 0x69, 0x40, 0x0, 0x0,
- 0x19, 0x0, 0x48, 0x0, 0xa9, 0x0, 0x0, 0x5c,
- 0x4, 0x60, 0x0, 0xc, 0x0, 0xa, 0x61, 0xa6,
- 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x7, 0xbb,
- 0xcc, 0xde, 0xb1, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+9003 "逃" */
- 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0,
- 0x60, 0x0, 0xb, 0x2c, 0x20, 0x0, 0x0, 0x59,
- 0x11, 0xb, 0xb, 0x5, 0x40, 0x0, 0x6, 0xb,
- 0xb, 0xb, 0x39, 0x10, 0x0, 0x0, 0x8, 0x2b,
- 0xb, 0x40, 0x0, 0x6, 0x5c, 0x0, 0xb, 0xb,
- 0x10, 0x0, 0x0, 0xa, 0x1, 0x7d, 0xb, 0x6b,
- 0x10, 0x0, 0xa, 0x5a, 0xc, 0xb, 0x5, 0x60,
- 0x0, 0xa, 0x0, 0x38, 0xb, 0x0, 0x50, 0x0,
- 0xa, 0x0, 0x91, 0xb, 0x20, 0xa1, 0x0, 0x6b,
- 0x15, 0x10, 0x4, 0x99, 0x80, 0xb, 0x60, 0x84,
- 0x0, 0x0, 0x0, 0x11, 0x3, 0x0, 0x5, 0xac,
- 0xde, 0xef, 0xe2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+900F "透" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x1,
- 0x30, 0x0, 0x14, 0x79, 0xb4, 0x0, 0x0, 0xa4,
- 0x1, 0x31, 0xa0, 0x0, 0x20, 0x0, 0x32, 0x36,
- 0x58, 0xd6, 0x56, 0xa0, 0x0, 0x0, 0x0, 0x2a,
- 0xa4, 0x50, 0x0, 0x4, 0x59, 0x3, 0x70, 0xa0,
- 0x5b, 0x61, 0x2, 0x1a, 0x46, 0x67, 0x85, 0x92,
- 0x60, 0x0, 0xa, 0x0, 0xb, 0x4, 0x72, 0x0,
- 0x0, 0xa, 0x0, 0x19, 0x6, 0x5d, 0x0, 0x0,
- 0xa, 0x0, 0x72, 0x0, 0x1a, 0x0, 0x0, 0x3b,
- 0x3, 0x50, 0x16, 0x96, 0x0, 0x9, 0x71, 0x84,
- 0x0, 0x3, 0x80, 0x0, 0x6, 0x0, 0x7, 0xab,
- 0xcc, 0xcd, 0xc2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0x0,
-
- /* U+9010 "逐" */
- 0x0, 0x82, 0x0, 0x0, 0x0, 0x2, 0x60, 0x0,
- 0x3c, 0x6, 0x55, 0xd5, 0x55, 0x50, 0x0, 0x3,
- 0x0, 0x9, 0x40, 0x4, 0x10, 0x0, 0x0, 0x1,
- 0x71, 0x90, 0x3a, 0x20, 0x6, 0x5c, 0x3, 0x5,
- 0xaa, 0x50, 0x0, 0x0, 0xb, 0x0, 0x65, 0xc,
- 0x0, 0x0, 0x0, 0xb, 0x15, 0x20, 0xad, 0x76,
- 0x0, 0x0, 0xb, 0x0, 0x9, 0x4a, 0x19, 0x80,
- 0x0, 0xb, 0x3, 0x81, 0xc, 0x0, 0xb0, 0x0,
- 0x4c, 0x23, 0x5, 0x7c, 0x0, 0x0, 0xa, 0x50,
- 0x94, 0x0, 0x72, 0x0, 0x0, 0x4, 0x0, 0x6,
- 0xbc, 0xcc, 0xcd, 0xa1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x11, 0x0,
-
- /* U+9019 "這" */
- 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x92, 0x0, 0x0, 0xb2, 0x0, 0x0, 0x0, 0x3c,
- 0x0, 0x0, 0x42, 0x4, 0x30, 0x0, 0x1, 0x6,
- 0x55, 0x55, 0x55, 0x40, 0x0, 0x1, 0x0, 0x55,
- 0x55, 0x79, 0x0, 0x6, 0x7d, 0x0, 0x10, 0x0,
- 0x0, 0x0, 0x0, 0x19, 0x0, 0x65, 0x55, 0x77,
- 0x0, 0x0, 0x19, 0x0, 0x20, 0x0, 0x3, 0x0,
- 0x0, 0x19, 0x0, 0xd5, 0x55, 0x5d, 0x0, 0x0,
- 0x19, 0x0, 0xb0, 0x0, 0xb, 0x0, 0x1, 0xab,
- 0x20, 0xc5, 0x55, 0x5b, 0x0, 0x1d, 0x30, 0x86,
- 0x70, 0x0, 0x3, 0x1, 0x2, 0x0, 0x3, 0x9b,
- 0xcd, 0xde, 0xd2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+901A "通" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0,
- 0x60, 0x3, 0x65, 0x55, 0x7e, 0x20, 0x0, 0x87,
- 0x0, 0x5, 0x54, 0x60, 0x0, 0x0, 0x23, 0x4,
- 0x0, 0xc4, 0x0, 0x40, 0x0, 0x0, 0xc, 0x55,
- 0xc5, 0x56, 0xa0, 0x5, 0x4b, 0xb, 0x55, 0xc5,
- 0x56, 0x90, 0x0, 0xa, 0xb, 0x0, 0xb0, 0x2,
- 0x90, 0x0, 0xa, 0xb, 0x55, 0xc5, 0x56, 0x90,
- 0x0, 0xa, 0xb, 0x0, 0xb0, 0x2, 0x90, 0x0,
- 0xa, 0xb, 0x0, 0xb0, 0x2, 0x90, 0x0, 0x3c,
- 0xb, 0x0, 0xa0, 0x4a, 0x80, 0x8, 0x80, 0x75,
- 0x0, 0x0, 0x5, 0x10, 0x6, 0x0, 0x5, 0xac,
- 0xdd, 0xde, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x11, 0x10,
-
- /* U+901F "速" */
- 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x2,
- 0x10, 0x0, 0x0, 0xb2, 0x0, 0x0, 0x0, 0xc2,
- 0x35, 0x55, 0xd5, 0x57, 0x90, 0x0, 0x63, 0x0,
- 0x0, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x6, 0x55,
- 0xc5, 0x5c, 0x0, 0x3, 0x38, 0x9, 0x10, 0xb0,
- 0xb, 0x0, 0x3, 0x1b, 0x9, 0x65, 0xc5, 0x5b,
- 0x0, 0x0, 0xb, 0x6, 0x6, 0xf0, 0x5, 0x0,
- 0x0, 0xb, 0x0, 0x39, 0xb6, 0x71, 0x0, 0x0,
- 0xb, 0x2, 0x80, 0xb0, 0x3d, 0x30, 0x0, 0x4b,
- 0x33, 0x0, 0xc0, 0x2, 0x40, 0xa, 0x60, 0x84,
- 0x0, 0x90, 0x0, 0x0, 0x4, 0x0, 0x5, 0xab,
- 0xcd, 0xde, 0xd2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+9020 "造" */
- 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x1,
- 0x50, 0x0, 0x30, 0xb2, 0x0, 0x0, 0x0, 0xa6,
- 0x0, 0xd2, 0xb0, 0x3, 0x0, 0x0, 0x33, 0x3,
- 0xa5, 0xc5, 0x69, 0x10, 0x0, 0x0, 0x7, 0x0,
- 0xb0, 0x0, 0x0, 0x6, 0x6b, 0x26, 0x55, 0xc5,
- 0x55, 0xc2, 0x0, 0x19, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x19, 0x0, 0xa5, 0x55, 0x5d, 0x0,
- 0x0, 0x19, 0x0, 0xb0, 0x0, 0xb, 0x0, 0x0,
- 0x19, 0x0, 0xb0, 0x0, 0xb, 0x0, 0x1, 0x8b,
- 0x0, 0xc5, 0x55, 0x5b, 0x0, 0x1d, 0x40, 0x95,
- 0x50, 0x0, 0x1, 0x0, 0x3, 0x0, 0x6, 0xbc,
- 0xcd, 0xee, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+9023 "連" */
- 0x0, 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0,
- 0x93, 0x0, 0x0, 0xa2, 0x1, 0x0, 0x0, 0x2c,
- 0x5, 0x55, 0xc5, 0x57, 0x50, 0x0, 0x1, 0x0,
- 0x30, 0xa0, 0x5, 0x0, 0x0, 0x1, 0x0, 0xc5,
- 0xc5, 0x5c, 0x10, 0x16, 0x5e, 0x10, 0xc5, 0xc5,
- 0x5b, 0x0, 0x0, 0xb, 0x0, 0xb0, 0xa0, 0xa,
- 0x0, 0x0, 0xb, 0x0, 0xc5, 0xc5, 0x5b, 0x0,
- 0x0, 0xb, 0x0, 0x10, 0xa0, 0x0, 0x30, 0x0,
- 0xb, 0x46, 0x55, 0xc5, 0x55, 0x71, 0x2, 0xaa,
- 0x20, 0x0, 0xa0, 0x0, 0x0, 0xd, 0x20, 0x78,
- 0x31, 0x70, 0x0, 0x22, 0x1, 0x0, 0x2, 0x7a,
- 0xcc, 0xdd, 0xa1,
-
- /* U+902E "逮" */
- 0x0, 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0,
- 0x71, 0x0, 0x0, 0xc1, 0x1, 0x0, 0x0, 0x2c,
- 0x3, 0x65, 0xc5, 0x5d, 0x0, 0x0, 0x2, 0x0,
- 0x0, 0xb0, 0xc, 0x40, 0x0, 0x0, 0x26, 0x55,
- 0xc5, 0x5d, 0x52, 0x7, 0x6d, 0x2, 0x55, 0xc5,
- 0x5c, 0x0, 0x0, 0xa, 0x4, 0x20, 0xb0, 0x4,
- 0x0, 0x0, 0xa, 0x0, 0xb3, 0xb2, 0xa7, 0x0,
- 0x0, 0xa, 0x0, 0x26, 0xd8, 0x0, 0x0, 0x0,
- 0xa, 0x3a, 0x70, 0xb2, 0x98, 0x0, 0x0, 0x5a,
- 0x13, 0x33, 0xc0, 0x7, 0x40, 0x9, 0x50, 0x83,
- 0x8, 0x90, 0x0, 0x0, 0x4, 0x0, 0x6, 0xab,
- 0xbc, 0xcd, 0xe4, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+9031 "週" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x85, 0x8, 0x55, 0x65, 0x5b, 0x30, 0x0, 0xd,
- 0xb, 0x0, 0xa2, 0xa, 0x0, 0x0, 0x0, 0xa,
- 0x6, 0xc7, 0x4a, 0x0, 0x0, 0x5, 0xa, 0x0,
- 0xa0, 0x3a, 0x0, 0x16, 0x5d, 0xa, 0x36, 0x65,
- 0x7a, 0x0, 0x0, 0xa, 0x9, 0x8, 0x59, 0x4a,
- 0x0, 0x0, 0xa, 0x9, 0xa, 0x8, 0x2a, 0x0,
- 0x0, 0xa, 0x8, 0xc, 0x5a, 0x2a, 0x0, 0x0,
- 0xa, 0x24, 0x7, 0x2, 0xa, 0x0, 0x0, 0x7b,
- 0x50, 0x0, 0x2, 0x7c, 0x0, 0x1c, 0x30, 0x94,
- 0x0, 0x0, 0x3, 0x0, 0x2, 0x0, 0x6, 0xbb,
- 0xcc, 0xde, 0xd2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+9032 "進" */
- 0x0, 0x0, 0x0, 0x10, 0x10, 0x0, 0x0, 0x0,
- 0x84, 0x0, 0xa7, 0x49, 0x0, 0x0, 0x0, 0x1e,
- 0x0, 0xd0, 0x9, 0x2, 0x0, 0x0, 0x1, 0x5,
- 0xc5, 0x59, 0x58, 0x40, 0x0, 0x4, 0xa, 0xa0,
- 0xa, 0x1, 0x0, 0x6, 0x5d, 0x63, 0xc5, 0x5c,
- 0x59, 0x10, 0x0, 0xb, 0x0, 0xa0, 0xa, 0x0,
- 0x0, 0x0, 0xb, 0x0, 0xc5, 0x5c, 0x5b, 0x10,
- 0x0, 0xb, 0x0, 0xa0, 0xa, 0x0, 0x0, 0x0,
- 0xb, 0x0, 0xa0, 0xa, 0x5, 0x30, 0x1, 0x8b,
- 0x10, 0xc5, 0x55, 0x55, 0x30, 0xd, 0x40, 0x96,
- 0x20, 0x0, 0x0, 0x1, 0x3, 0x0, 0x5, 0xbc,
- 0xcd, 0xef, 0xd2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+9045 "遅" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x84, 0x2, 0x95, 0x55, 0x55, 0xc0, 0x0, 0x1d,
- 0x1, 0xa0, 0x0, 0x0, 0xb0, 0x0, 0x1, 0x0,
- 0xc5, 0x55, 0x55, 0xb0, 0x0, 0x4, 0x0, 0xa2,
- 0x70, 0x67, 0x0, 0x6, 0x5d, 0x11, 0xa5, 0xb5,
- 0xb6, 0x90, 0x0, 0xb, 0x3, 0x71, 0xb, 0x1,
- 0x0, 0x0, 0xb, 0x6, 0x36, 0x5c, 0x59, 0x40,
- 0x0, 0xb, 0x8, 0x0, 0xb, 0x0, 0x51, 0x0,
- 0xb, 0x33, 0x55, 0x5d, 0x55, 0x52, 0x0, 0x7c,
- 0x40, 0x0, 0xc, 0x0, 0x0, 0xc, 0x50, 0x95,
- 0x0, 0x8, 0x0, 0x0, 0x4, 0x0, 0x5, 0xab,
- 0xbb, 0xcd, 0xd5, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+904A "遊" */
- 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x85, 0x0, 0x93, 0x0, 0xc1, 0x0, 0x0, 0x1c,
- 0x0, 0x24, 0x5, 0x60, 0x41, 0x0, 0x0, 0x16,
- 0x75, 0x9a, 0x55, 0x53, 0x0, 0x3, 0x1, 0x90,
- 0x44, 0x55, 0xa1, 0x6, 0x6d, 0x2, 0xb6, 0xa0,
- 0x5, 0x50, 0x0, 0x19, 0x4, 0x63, 0x70, 0x1a,
- 0x10, 0x0, 0x19, 0x7, 0x24, 0x77, 0x5b, 0x75,
- 0x0, 0x19, 0x9, 0x6, 0x40, 0x18, 0x0, 0x0,
- 0x19, 0x43, 0x9, 0x10, 0x18, 0x0, 0x0, 0x7b,
- 0x41, 0x9b, 0x3, 0x88, 0x0, 0x1d, 0x31, 0x82,
- 0x0, 0x0, 0x41, 0x0, 0x2, 0x0, 0x6, 0xaa,
- 0xbb, 0xcc, 0xd4, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x11, 0x0,
-
- /* U+904B "運" */
- 0x1, 0x80, 0x5, 0x65, 0x55, 0x56, 0x70, 0x0,
- 0x6a, 0xc, 0x0, 0x72, 0x6, 0x30, 0x0, 0x5,
- 0x6, 0x55, 0xc5, 0x59, 0x20, 0x0, 0x1, 0x0,
- 0x30, 0xa0, 0x4, 0x0, 0x6, 0x6e, 0x10, 0xc5,
- 0xc5, 0x5c, 0x0, 0x0, 0xa, 0x0, 0xc5, 0xc5,
- 0x5b, 0x0, 0x0, 0xa, 0x0, 0xa0, 0xa0, 0xa,
- 0x0, 0x0, 0xa, 0x0, 0xa5, 0xc5, 0x58, 0x0,
- 0x0, 0xa, 0x26, 0x55, 0xc5, 0x55, 0xa0, 0x0,
- 0x7c, 0x0, 0x0, 0xa0, 0x0, 0x0, 0x1d, 0x51,
- 0x93, 0x0, 0xa0, 0x0, 0x0, 0x2, 0x0, 0x6,
- 0xbb, 0xcc, 0xcd, 0xb2, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+904E "過" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x94, 0x0, 0x75, 0x55, 0x69, 0x0, 0x0, 0x2d,
- 0x0, 0x91, 0x3, 0x46, 0x0, 0x0, 0x1, 0x0,
- 0x86, 0x89, 0x46, 0x0, 0x0, 0x3, 0x1, 0x81,
- 0x46, 0x46, 0x20, 0x16, 0x6d, 0xb, 0x65, 0x56,
- 0x56, 0xd0, 0x0, 0x19, 0xa, 0x7, 0x55, 0x90,
- 0xa0, 0x0, 0x19, 0xa, 0xa, 0x0, 0xa0, 0xa0,
- 0x0, 0x19, 0xa, 0xb, 0x55, 0xb0, 0xa0, 0x0,
- 0x19, 0xb, 0x9, 0x0, 0x70, 0xa0, 0x0, 0x7a,
- 0xa, 0x0, 0x0, 0x3a, 0x80, 0x1d, 0x41, 0x84,
- 0x0, 0x0, 0x1, 0x0, 0x2, 0x0, 0x5, 0xac,
- 0xcd, 0xdd, 0xd3, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+9053 "道" */
- 0x0, 0x0, 0x0, 0x10, 0x0, 0x20, 0x0, 0x0,
- 0x84, 0x0, 0x67, 0x0, 0xc4, 0x0, 0x0, 0x2c,
- 0x0, 0xa, 0x4, 0x40, 0x40, 0x0, 0x1, 0x16,
- 0x55, 0xa6, 0x55, 0x82, 0x0, 0x4, 0x0, 0x75,
- 0xa5, 0x59, 0x0, 0x7, 0x6d, 0x0, 0xc0, 0x0,
- 0xc, 0x0, 0x0, 0xa, 0x0, 0xc5, 0x55, 0x5b,
- 0x0, 0x0, 0xa, 0x0, 0xb0, 0x0, 0xb, 0x0,
- 0x0, 0xa, 0x0, 0xc5, 0x55, 0x5b, 0x0, 0x0,
- 0xa, 0x0, 0xb0, 0x0, 0xb, 0x0, 0x1, 0x88,
- 0x20, 0xc5, 0x55, 0x5b, 0x0, 0xc, 0x20, 0x77,
- 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x8b,
- 0xcc, 0xde, 0xd2,
-
- /* U+9054 "達" */
- 0x0, 0x20, 0x0, 0x0, 0x31, 0x0, 0x0, 0x0,
- 0x76, 0x0, 0x0, 0xa3, 0x2, 0x0, 0x0, 0xd,
- 0x2, 0x65, 0xb6, 0x67, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa1, 0x1, 0x70, 0x0, 0x3, 0x26, 0x88,
- 0x55, 0xb5, 0x51, 0x16, 0x6c, 0x0, 0xc, 0x6,
- 0x62, 0x20, 0x0, 0x19, 0x6, 0x55, 0xb6, 0x56,
- 0x50, 0x0, 0x19, 0x1, 0x55, 0xb6, 0x69, 0x0,
- 0x0, 0x19, 0x0, 0x10, 0xa1, 0x0, 0x10, 0x0,
- 0x19, 0x17, 0x55, 0xb6, 0x56, 0x70, 0x2, 0xbb,
- 0x10, 0x0, 0xa1, 0x0, 0x0, 0x1e, 0x20, 0xa6,
- 0x10, 0x81, 0x0, 0x0, 0x1, 0x0, 0x5, 0xbd,
- 0xde, 0xef, 0xa1, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+9055 "違" */
- 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x4,
- 0x90, 0x0, 0xc, 0x10, 0x40, 0x0, 0x0, 0xb5,
- 0x6, 0x8a, 0x55, 0xc0, 0x0, 0x0, 0x20, 0x22,
- 0x77, 0x22, 0xb4, 0x70, 0x0, 0x20, 0x35, 0x22,
- 0x22, 0x43, 0x20, 0x46, 0xc5, 0x9, 0x65, 0x55,
- 0xb4, 0x0, 0x0, 0x92, 0x9, 0x65, 0x75, 0xb1,
- 0x0, 0x0, 0x92, 0x2, 0x0, 0xa0, 0x34, 0x0,
- 0x0, 0x92, 0x4a, 0x55, 0xc5, 0x54, 0x0, 0x0,
- 0x92, 0x4c, 0x55, 0xc5, 0x57, 0x80, 0x5, 0xc6,
- 0x11, 0x0, 0xb0, 0x0, 0x0, 0x8b, 0x5, 0x81,
- 0x0, 0x90, 0x0, 0x0, 0x10, 0x0, 0x3a, 0xcb,
- 0xbc, 0xde, 0xa1, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0x0,
-
- /* U+9060 "遠" */
- 0x0, 0x0, 0x0, 0x0, 0x41, 0x0, 0x0, 0x0,
- 0x74, 0x0, 0x0, 0xb2, 0x2, 0x0, 0x0, 0xe,
- 0x1, 0x75, 0xc5, 0x59, 0x10, 0x0, 0x3, 0x0,
- 0x0, 0xb0, 0x0, 0x60, 0x0, 0x0, 0x26, 0x65,
- 0x55, 0x57, 0x51, 0x16, 0x6c, 0x0, 0xc4, 0x44,
- 0x4d, 0x0, 0x0, 0x19, 0x0, 0xc5, 0x55, 0x5b,
- 0x0, 0x0, 0x19, 0x0, 0x77, 0xb0, 0x6, 0x0,
- 0x0, 0x19, 0x0, 0x78, 0xa4, 0x58, 0x20, 0x0,
- 0x19, 0x27, 0x31, 0x90, 0x79, 0x10, 0x1, 0x8b,
- 0x10, 0x2, 0x90, 0x3, 0x90, 0x1d, 0x40, 0x94,
- 0x1, 0x60, 0x0, 0x0, 0x2, 0x0, 0x5, 0xab,
- 0xcc, 0xdd, 0xd4, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+9069 "適" */
- 0x0, 0x0, 0x0, 0x1, 0x20, 0x0, 0x0, 0x0,
- 0x91, 0x0, 0x0, 0xb0, 0x0, 0x0, 0x0, 0x5a,
- 0x6, 0x55, 0x65, 0x58, 0x80, 0x0, 0x2, 0x0,
- 0x46, 0x6, 0x50, 0x0, 0x0, 0x2, 0x6, 0x5a,
- 0x5a, 0x58, 0x30, 0x16, 0x6d, 0xa, 0x0, 0xa2,
- 0x9, 0x20, 0x0, 0x19, 0xa, 0x26, 0xc5, 0x89,
- 0x10, 0x0, 0x19, 0xa, 0x2, 0xa1, 0x19, 0x10,
- 0x0, 0x19, 0xa, 0xc, 0x59, 0x59, 0x10, 0x0,
- 0x19, 0xa, 0xc, 0x59, 0x49, 0x10, 0x0, 0x7b,
- 0xb, 0x5, 0x3, 0x3a, 0x10, 0x1d, 0x41, 0x94,
- 0x0, 0x0, 0x39, 0x0, 0x2, 0x0, 0x7, 0xbb,
- 0xcc, 0xcd, 0xa2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+9078 "選" */
- 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x95, 0x7, 0x59, 0x48, 0x5a, 0x20, 0x0, 0x1d,
- 0x9, 0x9, 0x19, 0x9, 0x0, 0x0, 0x0, 0x9,
- 0x57, 0x39, 0x57, 0x30, 0x0, 0x2, 0x8, 0x65,
- 0x98, 0x65, 0x90, 0x16, 0x6d, 0x0, 0x3a, 0x11,
- 0x72, 0x0, 0x0, 0x19, 0x4, 0x5c, 0x57, 0xb8,
- 0x50, 0x0, 0x19, 0x1, 0x9, 0x2, 0x70, 0x0,
- 0x0, 0x19, 0x35, 0x5b, 0x56, 0x95, 0xa1, 0x0,
- 0x19, 0x0, 0xa, 0x23, 0x61, 0x0, 0x1, 0xac,
- 0x3, 0x93, 0x0, 0x1c, 0x30, 0x1e, 0x41, 0xa6,
- 0x0, 0x0, 0x1, 0x10, 0x3, 0x0, 0x6, 0xaa,
- 0xbb, 0xbc, 0xa2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x11, 0x0,
-
- /* U+907F "避" */
- 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x3,
- 0x60, 0x32, 0x25, 0x2, 0xa0, 0x0, 0x0, 0xa4,
- 0x94, 0x3c, 0x65, 0x86, 0x70, 0x0, 0x10, 0x91,
- 0xa, 0x31, 0xa, 0x0, 0x0, 0x0, 0x96, 0x5b,
- 0xb, 0x26, 0x0, 0x46, 0xa5, 0x90, 0x3, 0x57,
- 0x95, 0xa0, 0x0, 0x92, 0xa4, 0x25, 0x10, 0xa0,
- 0x0, 0x0, 0x92, 0x8c, 0x3b, 0x0, 0xa0, 0x30,
- 0x0, 0x93, 0x6b, 0xa, 0x55, 0xc5, 0x40, 0x0,
- 0x97, 0xb, 0xa, 0x0, 0xa0, 0x0, 0x1, 0x94,
- 0xc, 0x5a, 0x0, 0xb0, 0x0, 0x3b, 0x4, 0x72,
- 0x0, 0x0, 0x50, 0x0, 0x1, 0x0, 0x18, 0xbc,
- 0xcc, 0xde, 0x81, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+9084 "還" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
- 0xa0, 0xa, 0x58, 0x58, 0x5b, 0x30, 0x0, 0x97,
- 0xb, 0xa, 0xa, 0x9, 0x0, 0x0, 0x11, 0xc,
- 0x59, 0x59, 0x5b, 0x10, 0x0, 0x10, 0x57, 0x55,
- 0x55, 0x56, 0xb0, 0x36, 0xb5, 0x4, 0x55, 0x55,
- 0x58, 0x0, 0x0, 0x92, 0x7, 0x30, 0x0, 0xb,
- 0x0, 0x0, 0x92, 0x7, 0x7c, 0x55, 0x59, 0x0,
- 0x0, 0x92, 0x0, 0xb6, 0x42, 0x96, 0x0, 0x0,
- 0x92, 0x29, 0x94, 0x2a, 0x60, 0x0, 0x1, 0xb5,
- 0x40, 0x79, 0x72, 0x8a, 0x0, 0x3c, 0x15, 0x71,
- 0x35, 0x0, 0x2, 0x0, 0x43, 0x0, 0x29, 0xbc,
- 0xcc, 0xcd, 0x92, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+908A "邊" */
- 0x0, 0x0, 0x0, 0x0, 0x23, 0x0, 0x0, 0x0,
- 0x71, 0x0, 0x55, 0xb7, 0x58, 0x0, 0x0, 0x3d,
- 0x0, 0xb5, 0x55, 0x5b, 0x0, 0x0, 0x7, 0x0,
- 0xa5, 0x55, 0x5b, 0x0, 0x0, 0x0, 0x0, 0xb5,
- 0x55, 0x5c, 0x0, 0x14, 0x5a, 0x2, 0x30, 0x55,
- 0x2, 0x30, 0x1, 0x1a, 0x2a, 0x5a, 0x77, 0x85,
- 0xb1, 0x0, 0x19, 0x12, 0x54, 0x45, 0x35, 0x30,
- 0x0, 0x19, 0x6, 0x58, 0x75, 0x57, 0x70, 0x0,
- 0x19, 0x0, 0xb, 0x55, 0x5d, 0x10, 0x1, 0x9b,
- 0x11, 0x92, 0x3, 0x58, 0x0, 0x1d, 0x31, 0xaa,
- 0x10, 0x1, 0x91, 0x0, 0x2, 0x0, 0x6, 0xbc,
- 0xdd, 0xde, 0xc3, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+90A3 "那" */
- 0x2, 0x55, 0x55, 0x93, 0x75, 0x56, 0x70, 0x0,
- 0x11, 0xa0, 0xa1, 0xb0, 0x7, 0x70, 0x0, 0x1,
- 0xa0, 0xa1, 0xb0, 0xa, 0x0, 0x1, 0x55, 0xc5,
- 0xc1, 0xb0, 0x25, 0x0, 0x0, 0x11, 0xa0, 0xa1,
- 0xb0, 0x50, 0x0, 0x0, 0x2, 0x90, 0xa1, 0xb0,
- 0x7, 0x0, 0x2, 0x67, 0xa5, 0xc1, 0xb0, 0x5,
- 0x40, 0x0, 0x6, 0x30, 0xa1, 0xb0, 0x0, 0xa0,
- 0x0, 0x9, 0x0, 0xa1, 0xb0, 0x13, 0xb0, 0x0,
- 0x27, 0x0, 0xb0, 0xb1, 0x7f, 0x40, 0x0, 0x80,
- 0x5b, 0xc0, 0xb0, 0x0, 0x0, 0x5, 0x0, 0x3,
- 0x10, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x10, 0x0, 0x0,
-
- /* U+90AA "邪" */
- 0x2, 0x55, 0x55, 0x87, 0x75, 0x57, 0x70, 0x1,
- 0x0, 0xb0, 0xb, 0x0, 0x95, 0x0, 0xb2, 0xb,
- 0x0, 0xb0, 0xa, 0x0, 0x1c, 0x0, 0xb0, 0xb,
- 0x4, 0x40, 0x7, 0xa5, 0x5c, 0x7a, 0xb0, 0x60,
- 0x0, 0x10, 0x9, 0xd0, 0xb, 0x4, 0x30, 0x0,
- 0x2, 0xab, 0x0, 0xb0, 0x9, 0x0, 0x0, 0xa1,
- 0xb0, 0xb, 0x0, 0x47, 0x0, 0x64, 0xb, 0x0,
- 0xb0, 0x3, 0xa0, 0x44, 0x0, 0xb0, 0xb, 0x28,
- 0xe6, 0x22, 0x3, 0x3c, 0x0, 0xb0, 0x4, 0x0,
- 0x0, 0x9, 0x90, 0xb, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x10, 0x0, 0x0,
-
- /* U+90E8 "部" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0xa0, 0x0, 0x1, 0x0, 0x10, 0x0, 0x0,
- 0x92, 0x15, 0xc, 0x55, 0xd2, 0x3, 0x75, 0x55,
- 0x75, 0xb, 0x1, 0xa0, 0x0, 0x37, 0x2, 0xc0,
- 0xb, 0x6, 0x30, 0x0, 0xb, 0x7, 0x10, 0xb,
- 0x7, 0x0, 0x6, 0x55, 0x57, 0x58, 0x6b, 0x6,
- 0x0, 0x0, 0x10, 0x0, 0x30, 0xb, 0x3, 0x60,
- 0x0, 0xc5, 0x55, 0xd2, 0xb, 0x0, 0xb0, 0x0,
- 0xb0, 0x0, 0xb0, 0xb, 0x0, 0xa2, 0x0, 0xb0,
- 0x0, 0xb0, 0xb, 0x59, 0xd0, 0x0, 0xb5, 0x55,
- 0xc0, 0xb, 0x6, 0x20, 0x0, 0x90, 0x0, 0x70,
- 0xb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2,
- 0x0, 0x0,
-
- /* U+90F5 "郵" */
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x1,
- 0x47, 0xab, 0xa0, 0x65, 0x58, 0x50, 0x1, 0x10,
- 0xa0, 0x0, 0x82, 0xc, 0x30, 0x5, 0x55, 0xc5,
- 0x5a, 0x92, 0x36, 0x0, 0x0, 0xa0, 0xa0, 0xa0,
- 0x82, 0x70, 0x0, 0x0, 0xa0, 0xa0, 0xa1, 0x82,
- 0x50, 0x0, 0x5, 0xc5, 0xc5, 0xb6, 0x82, 0x33,
- 0x0, 0x0, 0xa0, 0xa0, 0xa0, 0x82, 0x7, 0x30,
- 0x5, 0xc5, 0xc5, 0xc9, 0x92, 0x0, 0xa0, 0x1,
- 0x0, 0xa0, 0x0, 0x82, 0x0, 0xc0, 0x0, 0x0,
- 0xb4, 0x53, 0x85, 0x7e, 0x80, 0x7, 0xca, 0x52,
- 0x0, 0x82, 0x3, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x82, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+90FD "都" */
- 0x0, 0x0, 0x41, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb2, 0x3, 0x6, 0x44, 0x72, 0x0, 0x45,
- 0xc7, 0x8d, 0x3c, 0x11, 0xd1, 0x0, 0x10, 0xb1,
- 0x67, 0xb, 0x3, 0x70, 0x0, 0x0, 0xb3, 0xb0,
- 0x3b, 0x7, 0x10, 0x5, 0x55, 0x7d, 0x65, 0x5b,
- 0x6, 0x0, 0x0, 0x1, 0xa2, 0x3, 0xb, 0x6,
- 0x10, 0x0, 0x4d, 0x55, 0x6c, 0xb, 0x0, 0xa0,
- 0x5, 0x4a, 0x0, 0x19, 0xb, 0x0, 0xa3, 0x0,
- 0xc, 0x55, 0x69, 0xb, 0x0, 0x94, 0x0, 0xa,
- 0x0, 0x1a, 0xb, 0x3b, 0xd0, 0x0, 0x1c, 0x55,
- 0x6a, 0xb, 0x1, 0x0, 0x0, 0x1a, 0x0, 0x16,
- 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
- 0x0, 0x0,
-
- /* U+914D "配" */
- 0x25, 0x55, 0x55, 0xb3, 0x55, 0x58, 0x10, 0x1,
- 0xa, 0x91, 0x0, 0x10, 0xb, 0x0, 0x3, 0xa,
- 0x91, 0x40, 0x0, 0xb, 0x0, 0xb, 0x5b, 0xb6,
- 0xc0, 0x0, 0xb, 0x0, 0xb, 0x18, 0x91, 0xb0,
- 0x75, 0x5c, 0x0, 0xb, 0x44, 0x91, 0xb0, 0xb0,
- 0x7, 0x0, 0xb, 0x70, 0x4a, 0xb0, 0xb0, 0x0,
- 0x0, 0xb, 0x0, 0x0, 0xb0, 0xb0, 0x0, 0x0,
- 0xb, 0x55, 0x55, 0xb0, 0xb0, 0x0, 0x10, 0xb,
- 0x0, 0x0, 0xb0, 0xb0, 0x0, 0x50, 0xb, 0x55,
- 0x55, 0xb0, 0xb0, 0x0, 0x90, 0xb, 0x0, 0x0,
- 0xb0, 0xaa, 0x9b, 0xb0, 0x4, 0x0, 0x0, 0x30,
- 0x0, 0x0, 0x0,
-
- /* U+9152 "酒" */
- 0x1, 0x60, 0x45, 0x55, 0x55, 0x56, 0xa0, 0x0,
- 0x75, 0x10, 0xa, 0xa, 0x0, 0x0, 0x0, 0x1,
- 0x32, 0xa, 0xa, 0x3, 0x0, 0x7, 0x1, 0x4d,
- 0x5c, 0x5c, 0x5c, 0x20, 0x4, 0x95, 0xb, 0xa,
- 0xa, 0xb, 0x0, 0x0, 0x27, 0xb, 0x9, 0xa,
- 0xb, 0x0, 0x0, 0x26, 0xb, 0x53, 0x6, 0x9d,
- 0x0, 0x1, 0x92, 0xb, 0x30, 0x0, 0xb, 0x0,
- 0x4, 0xe0, 0xc, 0x55, 0x55, 0x5c, 0x0, 0x0,
- 0xb0, 0xb, 0x0, 0x0, 0xb, 0x0, 0x0, 0xe0,
- 0xd, 0x55, 0x55, 0x5c, 0x0, 0x0, 0x80, 0xb,
- 0x0, 0x0, 0x9, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+9154 "酔" */
- 0x0, 0x0, 0x0, 0x0, 0x32, 0x0, 0x0, 0x15,
- 0x55, 0x55, 0x90, 0x85, 0x0, 0x0, 0x1, 0x54,
- 0x90, 0x4, 0xa7, 0x58, 0x0, 0x1, 0x54, 0x92,
- 0x1, 0x91, 0xa, 0x0, 0xa, 0x88, 0xba, 0x50,
- 0xa0, 0xa, 0x10, 0x9, 0x53, 0x97, 0x24, 0x60,
- 0x9, 0x50, 0x9, 0x71, 0x97, 0x46, 0x8, 0x4a,
- 0xa3, 0x9, 0x70, 0xac, 0x40, 0xc, 0x10, 0x0,
- 0xa, 0x0, 0x7, 0x43, 0x3c, 0x43, 0x80, 0xa,
- 0x55, 0x5a, 0x43, 0x2c, 0x32, 0x20, 0x9, 0x0,
- 0x7, 0x20, 0xb, 0x10, 0x0, 0xa, 0x55, 0x5a,
- 0x30, 0xc, 0x10, 0x0, 0xa, 0x0, 0x7, 0x20,
- 0xc, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
- 0x0, 0x0,
-
- /* U+9178 "酸" */
- 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x15,
- 0x55, 0x56, 0x80, 0x3a, 0x11, 0x0, 0x1, 0x36,
- 0x90, 0x2, 0x70, 0x8, 0x40, 0x1, 0x36, 0x91,
- 0x2c, 0x86, 0x55, 0xd0, 0xa, 0x79, 0xbb, 0x32,
- 0x51, 0x33, 0x30, 0xa, 0x45, 0x99, 0x13, 0xa1,
- 0x7, 0xb0, 0xa, 0x53, 0x99, 0x45, 0x57, 0x0,
- 0x81, 0xa, 0x70, 0x9c, 0x10, 0xc6, 0x5b, 0x30,
- 0xa, 0x20, 0x9, 0x16, 0x70, 0x1b, 0x0, 0xa,
- 0x55, 0x5b, 0x44, 0x51, 0xa3, 0x0, 0xa, 0x0,
- 0x9, 0x20, 0xc, 0x70, 0x0, 0xa, 0x55, 0x5b,
- 0x10, 0x59, 0xa1, 0x0, 0xb, 0x0, 0x8, 0x27,
- 0x50, 0x3d, 0x92, 0x3, 0x0, 0x1, 0x40, 0x0,
- 0x1, 0x50,
-
- /* U+91AB "醫" */
- 0x0, 0x0, 0x0, 0x10, 0x0, 0x10, 0x0, 0x0,
- 0xb5, 0x85, 0x82, 0x95, 0xb3, 0x0, 0x0, 0xa6,
- 0x96, 0x80, 0x90, 0x86, 0x30, 0x0, 0xa4, 0x27,
- 0x34, 0x30, 0x16, 0x20, 0x0, 0xa5, 0xaa, 0x52,
- 0x75, 0xb7, 0x0, 0x0, 0xa3, 0x51, 0x61, 0x29,
- 0xb1, 0x0, 0x2, 0xa6, 0x55, 0x57, 0x53, 0x29,
- 0x10, 0x5, 0x55, 0x55, 0x95, 0x95, 0x55, 0x91,
- 0x0, 0x17, 0x55, 0xc5, 0xc5, 0x76, 0x0, 0x0,
- 0x1a, 0x5, 0x50, 0xa0, 0x55, 0x0, 0x0, 0x1a,
- 0x44, 0x0, 0x57, 0xa5, 0x0, 0x0, 0x1b, 0x55,
- 0x55, 0x55, 0x85, 0x0, 0x0, 0x1b, 0x55, 0x55,
- 0x55, 0x85, 0x0, 0x0, 0x15, 0x0, 0x0, 0x0,
- 0x22, 0x0,
-
- /* U+91CD "重" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0x23, 0x57, 0x9b, 0x90, 0x0, 0x0, 0x23,
- 0x22, 0xb1, 0x0, 0x2, 0x0, 0x5, 0x65, 0x55,
- 0xc5, 0x55, 0x5a, 0x40, 0x0, 0x2, 0x0, 0xa1,
- 0x0, 0x40, 0x0, 0x0, 0xd, 0x55, 0xc5, 0x55,
- 0xc0, 0x0, 0x0, 0xd, 0x55, 0xc5, 0x55, 0xb0,
- 0x0, 0x0, 0xc, 0x0, 0xa1, 0x0, 0xb0, 0x0,
- 0x0, 0xd, 0x55, 0xc5, 0x55, 0xc0, 0x0, 0x0,
- 0x4, 0x0, 0xa1, 0x0, 0x50, 0x0, 0x0, 0x65,
- 0x55, 0xc5, 0x55, 0x86, 0x0, 0x0, 0x0, 0x0,
- 0xa1, 0x0, 0x1, 0x40, 0x26, 0x55, 0x55, 0x85,
- 0x55, 0x57, 0x91,
-
- /* U+91CE "野" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x95,
- 0x75, 0x5b, 0x45, 0x55, 0xd2, 0xb, 0x9, 0x10,
- 0xb0, 0x0, 0x75, 0x0, 0xb0, 0x91, 0xb, 0x5,
- 0x93, 0x0, 0xb, 0x5b, 0x65, 0xb0, 0x9, 0x60,
- 0x0, 0xb0, 0x91, 0xb, 0x65, 0x86, 0x89, 0xb,
- 0x5b, 0x65, 0xb0, 0xa, 0x8, 0x0, 0x40, 0x91,
- 0x2, 0x0, 0xa1, 0x10, 0x1, 0x19, 0x10, 0x70,
- 0xa, 0x0, 0x0, 0x54, 0xb6, 0x55, 0x0, 0xa0,
- 0x0, 0x0, 0x9, 0x10, 0x11, 0xa, 0x0, 0x1,
- 0x46, 0xb7, 0x53, 0x0, 0xa0, 0x0, 0x59, 0x30,
- 0x0, 0x3, 0x9e, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x20, 0x0,
-
- /* U+91CF "量" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0xb, 0x55, 0x55, 0x55, 0xd0, 0x0, 0x0, 0xb,
- 0x55, 0x55, 0x55, 0xb0, 0x0, 0x0, 0xb, 0x55,
- 0x55, 0x55, 0xb0, 0x0, 0x0, 0x8, 0x0, 0x0,
- 0x0, 0x40, 0x50, 0x17, 0x55, 0x55, 0x55, 0x55,
- 0x55, 0x72, 0x0, 0xa, 0x55, 0x57, 0x55, 0xb0,
- 0x0, 0x0, 0xb, 0x0, 0x19, 0x0, 0xb0, 0x0,
- 0x0, 0xc, 0x55, 0x6b, 0x55, 0xc0, 0x0, 0x0,
- 0xd, 0x55, 0x6b, 0x55, 0xb0, 0x0, 0x0, 0x2,
- 0x0, 0x19, 0x0, 0x34, 0x0, 0x0, 0x56, 0x55,
- 0x6b, 0x55, 0x54, 0x0, 0x5, 0x55, 0x55, 0x6b,
- 0x55, 0x56, 0xc1, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+91D1 "金" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x4, 0xf2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0x37, 0x0, 0x0, 0x0, 0x0, 0x0, 0x78,
- 0x3, 0x80, 0x0, 0x0, 0x0, 0x5, 0x90, 0x0,
- 0x4b, 0x20, 0x0, 0x0, 0x56, 0x0, 0x0, 0x6,
- 0xdb, 0x71, 0x15, 0x21, 0x65, 0xc5, 0x56, 0x5,
- 0x50, 0x0, 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0,
- 0x0, 0x65, 0x55, 0xd5, 0x55, 0x95, 0x0, 0x0,
- 0x4, 0x0, 0xc0, 0x7, 0x10, 0x0, 0x0, 0x3,
- 0xc0, 0xc0, 0x1c, 0x10, 0x0, 0x0, 0x0, 0xb3,
- 0xc0, 0x72, 0x0, 0x0, 0x15, 0x55, 0x65, 0xd5,
- 0x95, 0x58, 0xa0, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+91DD "針" */
- 0x0, 0x3, 0x10, 0x0, 0x6, 0x10, 0x0, 0x0,
- 0xe, 0x50, 0x0, 0xc, 0x10, 0x0, 0x0, 0x58,
- 0x79, 0x0, 0xc, 0x0, 0x0, 0x0, 0xa0, 0x8,
- 0x30, 0xc, 0x0, 0x0, 0x6, 0x30, 0x22, 0x0,
- 0xc, 0x0, 0x0, 0x24, 0x5b, 0x63, 0x35, 0x5d,
- 0x56, 0xb0, 0x0, 0x9, 0x10, 0x1, 0xc, 0x0,
- 0x0, 0x4, 0x6b, 0x6b, 0x10, 0xc, 0x0, 0x0,
- 0x1, 0x9, 0x15, 0x0, 0xc, 0x0, 0x0, 0x0,
- 0xa9, 0x2c, 0x0, 0xc, 0x0, 0x0, 0x0, 0xba,
- 0x62, 0x0, 0xc, 0x0, 0x0, 0x2, 0x5c, 0x85,
- 0x10, 0xc, 0x0, 0x0, 0x9, 0x61, 0x0, 0x0,
- 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4,
- 0x0, 0x0,
-
- /* U+9244 "鉄" */
- 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0xe, 0x30, 0x0, 0xd, 0x0, 0x0, 0x0, 0x59,
- 0x84, 0xd, 0x1b, 0x0, 0x0, 0x0, 0xa0, 0xc,
- 0x5a, 0xb, 0x3, 0x0, 0x6, 0x30, 0x32, 0x77,
- 0x5c, 0x57, 0x30, 0x24, 0x6c, 0x53, 0x90, 0xb,
- 0x0, 0x0, 0x0, 0xb, 0x3, 0x10, 0x1a, 0x0,
- 0x30, 0x5, 0x6c, 0x57, 0x56, 0x7d, 0x55, 0x71,
- 0x3, 0xb, 0x9, 0x10, 0x78, 0x20, 0x0, 0x4,
- 0x7b, 0x29, 0x0, 0xb0, 0x90, 0x0, 0x1, 0x8b,
- 0x42, 0x16, 0x50, 0x75, 0x0, 0x5, 0x8b, 0x73,
- 0x47, 0x0, 0xd, 0x70, 0x7, 0x20, 0x4, 0x40,
- 0x0, 0x1, 0x92, 0x0, 0x0, 0x1, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+925B "鉛" */
- 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xe, 0x30, 0x2, 0x0, 0x3, 0x0, 0x0, 0x59,
- 0x85, 0x7, 0x95, 0x5c, 0x0, 0x0, 0xa0, 0xc,
- 0x27, 0x50, 0xa, 0x0, 0x6, 0x30, 0x32, 0x8,
- 0x30, 0xa, 0x0, 0x24, 0x6c, 0x52, 0xa, 0x0,
- 0xb, 0x0, 0x0, 0xb, 0x0, 0x45, 0x0, 0x7,
- 0x93, 0x5, 0x5c, 0x5b, 0x33, 0x0, 0x4, 0x0,
- 0x2, 0xb, 0x7, 0xc, 0x55, 0x5b, 0x40, 0x4,
- 0x6b, 0x2a, 0xb, 0x0, 0x9, 0x20, 0x1, 0x9b,
- 0x42, 0x1b, 0x0, 0x9, 0x20, 0x5, 0x8c, 0x74,
- 0xc, 0x55, 0x5b, 0x20, 0x7, 0x20, 0x0, 0xb,
- 0x0, 0x5, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+9280 "銀" */
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x2e, 0x10, 0x2, 0x0, 0x3, 0x0, 0x0, 0x97,
- 0x82, 0x1c, 0x55, 0x5d, 0x0, 0x1, 0xa0, 0x2c,
- 0xa, 0x0, 0xb, 0x0, 0x9, 0x10, 0x41, 0xc,
- 0x55, 0x5b, 0x0, 0x23, 0x6c, 0x52, 0xa, 0x0,
- 0xb, 0x0, 0x0, 0xb, 0x0, 0xc, 0x55, 0x5b,
- 0x0, 0x6, 0x5c, 0x6a, 0x1a, 0x40, 0x6, 0x50,
- 0x2, 0xb, 0x7, 0xa, 0x6, 0x19, 0x30, 0x8,
- 0x2b, 0x57, 0xa, 0x8, 0x50, 0x0, 0x5, 0x4b,
- 0x61, 0x1a, 0x2, 0xb2, 0x0, 0x4, 0x7c, 0x74,
- 0x2c, 0x71, 0x2c, 0xa2, 0xa, 0x20, 0x0, 0x19,
- 0x0, 0x0, 0x20,
-
- /* U+9322 "錢" */
- 0x0, 0x6, 0x0, 0x6, 0x33, 0x20, 0x0, 0x0,
- 0x4d, 0x0, 0x6, 0x60, 0xa3, 0x20, 0x0, 0xa2,
- 0xa5, 0x46, 0xc5, 0x55, 0x20, 0x4, 0x60, 0x8,
- 0x0, 0xb1, 0xa7, 0x0, 0x8, 0x55, 0x92, 0x0,
- 0x6e, 0x40, 0x10, 0x10, 0x1b, 0x0, 0x37, 0x77,
- 0xb3, 0x51, 0x0, 0xb, 0x4, 0x27, 0x47, 0x5b,
- 0xe3, 0x5, 0x5c, 0x66, 0x5, 0x73, 0x42, 0x60,
- 0x4, 0xb, 0x1a, 0x56, 0xc5, 0x54, 0x20, 0x5,
- 0x6b, 0x63, 0x0, 0xb1, 0x96, 0x0, 0x2, 0x4b,
- 0x65, 0x0, 0x4d, 0x80, 0x0, 0xb, 0x96, 0x10,
- 0x2, 0x8a, 0x91, 0x41, 0x2, 0x0, 0x1, 0x44,
- 0x0, 0x4b, 0xc3,
-
- /* U+932F "錯" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x3d, 0x0, 0x1, 0xc0, 0xc1, 0x0, 0x0, 0xa7,
- 0x81, 0x0, 0xa0, 0xc4, 0x20, 0x2, 0x90, 0x4b,
- 0x36, 0xc5, 0xd5, 0x30, 0x9, 0x10, 0x42, 0x0,
- 0xa0, 0xc0, 0x0, 0x31, 0x5c, 0x43, 0x55, 0xc5,
- 0xd5, 0xb2, 0x0, 0xb, 0x1, 0x10, 0x0, 0x0,
- 0x0, 0x6, 0x5c, 0x78, 0xa, 0x55, 0x5b, 0x30,
- 0x3, 0xb, 0x9, 0xc, 0x0, 0xb, 0x0, 0x7,
- 0x4b, 0x56, 0xd, 0x55, 0x5d, 0x0, 0x4, 0x4b,
- 0x52, 0x1c, 0x0, 0xb, 0x0, 0x6, 0x9b, 0x73,
- 0xd, 0x55, 0x5d, 0x10, 0x8, 0x10, 0x0, 0xb,
- 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+9332 "録" */
- 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x4c, 0x0, 0x25, 0x55, 0x59, 0x10, 0x0, 0xb5,
- 0x92, 0x1, 0x0, 0xb, 0x0, 0x2, 0x80, 0x3a,
- 0x4, 0x55, 0x5b, 0x0, 0x9, 0x11, 0x60, 0x1,
- 0x0, 0xb, 0x0, 0x32, 0x5c, 0x42, 0x55, 0x55,
- 0x5c, 0xb3, 0x0, 0xb, 0x0, 0x20, 0xb, 0x0,
- 0x20, 0x6, 0x5c, 0x76, 0x39, 0xe, 0x8, 0x80,
- 0x3, 0xb, 0x28, 0x8, 0xc, 0x92, 0x0, 0x8,
- 0x3b, 0x74, 0x1, 0x3b, 0x72, 0x0, 0x5, 0x3b,
- 0x53, 0x47, 0xb, 0xc, 0x30, 0x16, 0x9a, 0x64,
- 0x90, 0xb, 0x2, 0xc2, 0x7, 0x10, 0x0, 0x5,
- 0xd8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10,
- 0x0, 0x0,
-
- /* U+9577 "長" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x6, 0x65, 0x55, 0x55, 0xa2, 0x0, 0x0, 0x8,
- 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x85,
- 0x55, 0x58, 0x50, 0x0, 0x0, 0x8, 0x50, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x8, 0x85, 0x55, 0x58,
- 0x70, 0x0, 0x0, 0x8, 0x50, 0x0, 0x0, 0x0,
- 0x0, 0x16, 0x5b, 0x85, 0x55, 0x55, 0x57, 0x90,
- 0x0, 0xd, 0x0, 0x60, 0x0, 0x60, 0x0, 0x0,
- 0xd, 0x0, 0x17, 0x29, 0x60, 0x0, 0x0, 0xd,
- 0x0, 0x14, 0xb0, 0x0, 0x0, 0x0, 0xd, 0x37,
- 0x10, 0x4c, 0x71, 0x0, 0x0, 0xd, 0x80, 0x0,
- 0x0, 0x8e, 0x80, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+9589 "閉" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0x55,
- 0xd3, 0xa, 0x55, 0xb5, 0xc, 0x0, 0xb0, 0xa,
- 0x0, 0xa2, 0xd, 0x55, 0xc0, 0xb, 0x55, 0xb2,
- 0xd, 0x55, 0xc0, 0xc, 0x55, 0xb2, 0xc, 0x0,
- 0x30, 0x24, 0x0, 0xa2, 0xc, 0x0, 0x0, 0xb1,
- 0x0, 0xa2, 0xc, 0x26, 0x58, 0xe5, 0x83, 0xa2,
- 0xc, 0x0, 0x2b, 0xb0, 0x0, 0xa2, 0xc, 0x2,
- 0x91, 0xb0, 0x0, 0xa2, 0xc, 0x36, 0x0, 0xb0,
- 0x0, 0xa2, 0xc, 0x0, 0x29, 0xd0, 0x0, 0xa2,
- 0xc, 0x0, 0x0, 0x20, 0x3a, 0xe0, 0x2, 0x0,
- 0x0, 0x0, 0x1, 0x10,
-
- /* U+958B "開" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0x55,
- 0xa5, 0xb, 0x55, 0xb4, 0xc, 0x0, 0x83, 0xc,
- 0x0, 0xa2, 0xd, 0x55, 0xa3, 0xc, 0x55, 0xb2,
- 0xd, 0x55, 0xa3, 0xc, 0x55, 0xb2, 0xc, 0x0,
- 0x20, 0x5, 0x0, 0xa2, 0xc, 0x4, 0x65, 0x56,
- 0x80, 0xa2, 0xc, 0x0, 0x55, 0xa, 0x0, 0xa2,
- 0xc, 0x15, 0x88, 0x5c, 0x85, 0xa2, 0xc, 0x1,
- 0x74, 0xa, 0x0, 0xa2, 0xc, 0x0, 0xa0, 0xa,
- 0x0, 0xa2, 0xc, 0x7, 0x30, 0xa, 0x0, 0xa2,
- 0xc, 0x10, 0x0, 0x1, 0x2a, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x10,
-
- /* U+9593 "間" */
- 0x1, 0x0, 0x10, 0x1, 0x0, 0x20, 0xd, 0x55,
- 0x97, 0xb, 0x55, 0xc4, 0xc, 0x0, 0x54, 0xb,
- 0x0, 0xa2, 0xd, 0x55, 0x94, 0xc, 0x55, 0xb2,
- 0xd, 0x55, 0x95, 0xc, 0x55, 0xb2, 0xc, 0x0,
- 0x10, 0x3, 0x0, 0xa2, 0xc, 0x0, 0xa5, 0x59,
- 0x50, 0xa2, 0xc, 0x0, 0xc0, 0x7, 0x30, 0xa2,
- 0xc, 0x0, 0xd5, 0x5a, 0x30, 0xa2, 0xc, 0x0,
- 0xc0, 0x7, 0x30, 0xa2, 0xc, 0x0, 0xd5, 0x5a,
- 0x30, 0xa2, 0xc, 0x0, 0x70, 0x4, 0x20, 0xa2,
- 0xc, 0x0, 0x0, 0x0, 0x2a, 0xe0, 0x2, 0x0,
- 0x0, 0x0, 0x1, 0x10,
-
- /* U+95A2 "関" */
- 0x1, 0x0, 0x10, 0x1, 0x0, 0x1, 0x0, 0xd5,
- 0x5c, 0x30, 0xc5, 0x56, 0xc0, 0xd, 0x55, 0xc0,
- 0xc, 0x55, 0x6a, 0x0, 0xc0, 0xb, 0x0, 0xb0,
- 0x2, 0xa0, 0xd, 0x55, 0xc0, 0xc, 0x55, 0x6a,
- 0x0, 0xc0, 0x6, 0x0, 0x71, 0x2, 0xa0, 0xc,
- 0x0, 0x73, 0x29, 0x0, 0x2a, 0x0, 0xc0, 0x55,
- 0x6a, 0x57, 0x32, 0xa0, 0xc, 0x0, 0x5, 0x70,
- 0x3, 0x2a, 0x0, 0xc1, 0x65, 0xd8, 0x55, 0x42,
- 0xa0, 0xc, 0x0, 0x67, 0x4a, 0x60, 0x2a, 0x0,
- 0xc0, 0x65, 0x0, 0x6, 0x2, 0xa0, 0xc, 0x10,
- 0x0, 0x0, 0x17, 0xc9, 0x0, 0x40, 0x0, 0x0,
- 0x0, 0x4, 0x0,
-
- /* U+95DC "關" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0xb5,
- 0x59, 0x60, 0xc5, 0x56, 0xc0, 0x1b, 0x55, 0x95,
- 0xc, 0x55, 0x6a, 0x1, 0xa0, 0x6, 0x50, 0xb0,
- 0x1, 0xa0, 0x1b, 0x55, 0x92, 0x9, 0x85, 0x6a,
- 0x1, 0xa0, 0x38, 0x21, 0x82, 0x31, 0xa0, 0x1a,
- 0x1a, 0x88, 0x67, 0xa5, 0x1a, 0x1, 0xa0, 0x76,
- 0x84, 0x93, 0x71, 0xa0, 0x1a, 0x8, 0x37, 0x55,
- 0x14, 0x1a, 0x1, 0xa0, 0xa0, 0xb4, 0x70, 0xa1,
- 0xa0, 0x1a, 0x17, 0x59, 0x39, 0x5a, 0x1a, 0x1,
- 0xa0, 0x6, 0x44, 0x60, 0x1, 0xa0, 0x1a, 0x2,
- 0x20, 0x12, 0x5, 0xc7, 0x0, 0x20, 0x0, 0x0,
- 0x0, 0x3, 0x0,
-
- /* U+95F0 "闰" */
- 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb,
- 0x20, 0x55, 0x55, 0x55, 0x90, 0x15, 0x64, 0x1,
- 0x0, 0x0, 0xc, 0x2, 0xb0, 0x0, 0x0, 0x0,
- 0x30, 0xc0, 0x2a, 0x17, 0x55, 0xb5, 0x67, 0xc,
- 0x2, 0xa0, 0x0, 0xc, 0x0, 0x0, 0xc0, 0x2a,
- 0x0, 0x0, 0xc0, 0x42, 0xc, 0x2, 0xa0, 0x36,
- 0x5d, 0x55, 0x30, 0xc0, 0x2a, 0x0, 0x0, 0xc0,
- 0x0, 0xc, 0x2, 0xa0, 0x0, 0xc, 0x0, 0x60,
- 0xc0, 0x2a, 0x46, 0x55, 0x55, 0x55, 0x2c, 0x2,
- 0xa0, 0x0, 0x0, 0x0, 0x0, 0xb0, 0x29, 0x0,
- 0x0, 0x0, 0x5, 0xd8, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0x0,
-
- /* U+9633 "阳" */
- 0x65, 0x58, 0x51, 0x0, 0x0, 0x10, 0x92, 0xb,
- 0x3b, 0x55, 0x55, 0xd0, 0x92, 0x17, 0xb, 0x0,
- 0x0, 0xb0, 0x92, 0x60, 0xb, 0x0, 0x0, 0xb0,
- 0x92, 0x60, 0xb, 0x0, 0x0, 0xb0, 0x92, 0x9,
- 0xb, 0x55, 0x55, 0xb0, 0x92, 0x6, 0x6b, 0x0,
- 0x0, 0xb0, 0x92, 0x7, 0x7b, 0x0, 0x0, 0xb0,
- 0x95, 0xbe, 0x1b, 0x0, 0x0, 0xb0, 0x92, 0x31,
- 0xb, 0x0, 0x0, 0xb0, 0x92, 0x0, 0xb, 0x55,
- 0x55, 0xc0, 0x92, 0x0, 0x8, 0x0, 0x0, 0x70,
- 0x20, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+9644 "附" */
- 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x1, 0x85,
- 0x93, 0xb, 0x40, 0xc, 0x0, 0x1a, 0xa, 0x1,
- 0xb0, 0x0, 0xb0, 0x1, 0xa0, 0x80, 0x73, 0x0,
- 0xb, 0x0, 0x1a, 0x52, 0xd, 0x24, 0x55, 0xc8,
- 0x31, 0xa3, 0x15, 0xa1, 0x10, 0xb, 0x0, 0x1a,
- 0x8, 0x29, 0x14, 0x0, 0xb0, 0x1, 0xa0, 0x72,
- 0x91, 0x3b, 0xb, 0x0, 0x1a, 0x7, 0x49, 0x10,
- 0x50, 0xb0, 0x1, 0xba, 0xc0, 0x91, 0x0, 0xb,
- 0x0, 0x1a, 0x10, 0x9, 0x10, 0x0, 0xb0, 0x1,
- 0xa0, 0x0, 0x91, 0x2, 0x1b, 0x0, 0x19, 0x0,
- 0x8, 0x10, 0x2c, 0x60, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+964D "降" */
- 0x0, 0x0, 0x0, 0x25, 0x0, 0x0, 0x2, 0xa5,
- 0x89, 0x7, 0xa5, 0x59, 0x10, 0x1a, 0xa, 0x20,
- 0xb2, 0x3, 0xb0, 0x1, 0xa0, 0x90, 0x53, 0x71,
- 0xb0, 0x0, 0x1a, 0x32, 0x13, 0x3, 0xe2, 0x0,
- 0x1, 0xa1, 0x40, 0x2, 0x94, 0xa6, 0x20, 0x1a,
- 0x6, 0x35, 0x50, 0xa1, 0x59, 0x11, 0xa0, 0x2a,
- 0x36, 0x5c, 0x58, 0x50, 0x1a, 0x3, 0xa5, 0x30,
- 0xb0, 0x0, 0x1, 0xb9, 0xe3, 0xb1, 0xb, 0x0,
- 0x30, 0x1a, 0x1, 0x28, 0x55, 0xc5, 0x57, 0x21,
- 0xa0, 0x0, 0x0, 0xb, 0x0, 0x0, 0x1a, 0x0,
- 0x0, 0x0, 0xc0, 0x0, 0x0, 0x20, 0x0, 0x0,
- 0x3, 0x0, 0x0,
-
- /* U+9650 "限" */
- 0x75, 0x5a, 0x8, 0x55, 0x5a, 0x40, 0xa, 0x12,
- 0x90, 0xb0, 0x0, 0xa1, 0x0, 0xa1, 0x62, 0xb,
- 0x0, 0xa, 0x10, 0xa, 0x16, 0x0, 0xd5, 0x55,
- 0xc1, 0x0, 0xa1, 0x50, 0xb, 0x0, 0xa, 0x20,
- 0xa, 0x12, 0x50, 0xd6, 0x55, 0xc2, 0x0, 0xa1,
- 0xa, 0xb, 0x14, 0x2, 0x90, 0xa, 0x10, 0xb0,
- 0xb0, 0x71, 0xa5, 0x0, 0xa5, 0xbd, 0xb, 0x7,
- 0x70, 0x0, 0xa, 0x14, 0x10, 0xb0, 0x1b, 0x20,
- 0x0, 0xa1, 0x0, 0xd, 0x82, 0x2d, 0x93, 0xa,
- 0x10, 0x1, 0xc1, 0x0, 0x1a, 0x40, 0x20, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+9662 "院" */
- 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x65, 0x58,
- 0x0, 0xa, 0x10, 0x0, 0xa0, 0x48, 0x55, 0x5b,
- 0x65, 0x83, 0xa0, 0x71, 0xb0, 0x0, 0x0, 0x80,
- 0xa0, 0x60, 0x40, 0x0, 0x5, 0x0, 0xa0, 0x40,
- 0x5, 0x55, 0x55, 0x0, 0xa0, 0x53, 0x0, 0x0,
- 0x0, 0x40, 0xa0, 0xb, 0x56, 0xb5, 0xb5, 0x71,
- 0xa0, 0xc, 0x0, 0xb0, 0xb0, 0x0, 0xa3, 0xbb,
- 0x1, 0xa0, 0xb0, 0x0, 0xa0, 0x30, 0x6, 0x60,
- 0xb0, 0x4, 0xa0, 0x0, 0x1a, 0x0, 0xb0, 0x17,
- 0xa0, 0x3, 0x70, 0x0, 0xaa, 0xba, 0x40, 0x11,
- 0x0, 0x0, 0x0, 0x0,
-
- /* U+9664 "除" */
- 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x6, 0x55,
- 0xa1, 0x4, 0xe1, 0x0, 0x0, 0xa0, 0x2a, 0x0,
- 0xc2, 0x70, 0x0, 0xa, 0x7, 0x20, 0x66, 0x4,
- 0x80, 0x0, 0xa0, 0x60, 0x38, 0x0, 0x6, 0xc5,
- 0xa, 0x4, 0x25, 0x46, 0x85, 0x83, 0x70, 0xa0,
- 0x54, 0x0, 0xb, 0x0, 0x0, 0xa, 0x0, 0xc3,
- 0x55, 0xc5, 0x5b, 0x20, 0xa0, 0x1c, 0x12, 0xb,
- 0x0, 0x0, 0xa, 0x4e, 0x50, 0xd3, 0xb0, 0x61,
- 0x0, 0xa0, 0x0, 0x85, 0xb, 0x1, 0xb2, 0xa,
- 0x0, 0x64, 0x0, 0xb0, 0x5, 0x90, 0xb0, 0x1,
- 0x4, 0xbd, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1,
- 0x0, 0x0, 0x0,
-
- /* U+9678 "陸" */
- 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x7, 0x55,
- 0x91, 0x0, 0xc1, 0x0, 0x0, 0xb0, 0xb, 0x0,
- 0xb, 0x0, 0x60, 0xb, 0x5, 0x32, 0x65, 0xc5,
- 0x55, 0x0, 0xb0, 0x50, 0x0, 0xb, 0x0, 0x3,
- 0xb, 0x5, 0x16, 0x58, 0x65, 0x55, 0x60, 0xb0,
- 0x34, 0x7, 0xa1, 0x6, 0x91, 0xb, 0x0, 0xb5,
- 0x50, 0xb1, 0x5, 0x70, 0xb0, 0x2b, 0x10, 0xb,
- 0x0, 0x0, 0xb, 0x6d, 0x23, 0x65, 0xc5, 0x69,
- 0x0, 0xb0, 0x0, 0x0, 0xb, 0x0, 0x0, 0xb,
- 0x0, 0x0, 0x0, 0xb0, 0x0, 0x20, 0xb0, 0x6,
- 0x55, 0x58, 0x55, 0x77, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+967D "陽" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9, 0x55,
- 0xb2, 0xa5, 0x55, 0x5c, 0x0, 0xb0, 0x1b, 0xb,
- 0x0, 0x0, 0xb0, 0xb, 0x6, 0x20, 0xb5, 0x55,
- 0x5b, 0x0, 0xb0, 0x50, 0xb, 0x55, 0x55, 0xc0,
- 0xb, 0x6, 0x0, 0x50, 0x0, 0x3, 0x10, 0xb0,
- 0x27, 0x65, 0x85, 0x55, 0x59, 0xb, 0x0, 0xb0,
- 0x2b, 0x0, 0x0, 0x30, 0xb1, 0x1d, 0x1a, 0x5d,
- 0x6c, 0x6b, 0xb, 0x4d, 0x67, 0x17, 0x57, 0x53,
- 0x80, 0xb0, 0x2, 0x5, 0x62, 0xa0, 0x56, 0xb,
- 0x0, 0x4, 0x22, 0x91, 0x9, 0x30, 0xa0, 0x0,
- 0x4, 0x60, 0x4b, 0xc0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x30, 0x0,
-
- /* U+968E "階" */
- 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x9, 0x55,
- 0xb5, 0xb0, 0xc, 0x0, 0x0, 0xa0, 0xb, 0x1a,
- 0x1, 0xb0, 0xb5, 0xa, 0x6, 0x21, 0xc6, 0x5c,
- 0x82, 0x0, 0xa0, 0x60, 0x1a, 0x0, 0xb0, 0x4,
- 0xa, 0x6, 0x1, 0xc6, 0x2b, 0x0, 0x90, 0xa0,
- 0x18, 0x19, 0x4, 0x49, 0x97, 0xa, 0x0, 0xb0,
- 0x11, 0x80, 0x2, 0x0, 0xa4, 0x8d, 0xc, 0x55,
- 0x55, 0xd0, 0xa, 0x5, 0x10, 0xb0, 0x0, 0xb,
- 0x0, 0xa0, 0x0, 0xc, 0x55, 0x55, 0xb0, 0xb,
- 0x0, 0x0, 0xb0, 0x0, 0xb, 0x0, 0xa0, 0x0,
- 0xc, 0x55, 0x55, 0xc0, 0x0, 0x0, 0x0, 0x10,
- 0x0, 0x0, 0x0,
-
- /* U+969B "際" */
- 0x0, 0x0, 0x1, 0x10, 0x0, 0x0, 0x7, 0x55,
- 0xa1, 0x86, 0x24, 0x0, 0x20, 0xb0, 0x3a, 0xb,
- 0x5c, 0x85, 0x97, 0xb, 0x8, 0x17, 0x75, 0xa3,
- 0x38, 0x0, 0xb1, 0x53, 0x75, 0x93, 0xb, 0x20,
- 0xb, 0x6, 0x0, 0x57, 0x0, 0x3c, 0x40, 0xb0,
- 0x45, 0x35, 0x55, 0x58, 0x58, 0x1b, 0x0, 0xc1,
- 0x1, 0x0, 0x0, 0x0, 0xb3, 0x5b, 0x26, 0x55,
- 0x75, 0x77, 0xb, 0x8, 0x10, 0x13, 0xb, 0x20,
- 0x0, 0xb0, 0x0, 0xb, 0x60, 0xb1, 0xa2, 0xb,
- 0x0, 0x17, 0x20, 0xb, 0x2, 0xe0, 0xb0, 0x3,
- 0x0, 0x6d, 0x80, 0x3, 0x1, 0x0, 0x0, 0x0,
- 0x20, 0x0, 0x0,
-
- /* U+969C "障" */
- 0x0, 0x0, 0x0, 0x11, 0x0, 0x0, 0x6, 0x45,
- 0x70, 0x0, 0xc0, 0x1, 0x0, 0xc0, 0x77, 0x17,
- 0x57, 0x57, 0x90, 0xb, 0x9, 0x0, 0x19, 0x4,
- 0xa0, 0x0, 0xb0, 0x61, 0x33, 0xa3, 0x83, 0x49,
- 0xb, 0x5, 0x3, 0x42, 0x22, 0x25, 0x20, 0xb0,
- 0x54, 0xc, 0x55, 0x55, 0xd1, 0xb, 0x0, 0xc0,
- 0xc5, 0x55, 0x5c, 0x0, 0xb0, 0xe, 0xb, 0x0,
- 0x0, 0xb0, 0xb, 0x5d, 0x80, 0xa5, 0xc5, 0x59,
- 0x0, 0xb0, 0x12, 0x65, 0x5c, 0x55, 0x5b, 0x1b,
- 0x0, 0x0, 0x0, 0xb0, 0x0, 0x0, 0xc0, 0x0,
- 0x0, 0xc, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x30, 0x0, 0x0,
-
- /* U+96A3 "隣" */
- 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x7, 0x56,
- 0x80, 0x71, 0x94, 0xa, 0x0, 0xb0, 0x74, 0x2,
- 0x89, 0x27, 0x40, 0xb, 0x8, 0x4, 0x66, 0xc8,
- 0x85, 0x70, 0xb3, 0x10, 0x2, 0xaa, 0x65, 0x0,
- 0xb, 0x14, 0x5, 0x60, 0x92, 0x5c, 0x70, 0xb0,
- 0x74, 0x14, 0x6, 0x10, 0x31, 0xb, 0x3, 0x86,
- 0x92, 0x10, 0x19, 0x20, 0xb5, 0x97, 0xa5, 0xc4,
- 0x86, 0xb5, 0xb, 0x6, 0x78, 0x1b, 0x3b, 0x19,
- 0x0, 0xb0, 0x0, 0x49, 0x37, 0x65, 0xb7, 0x1b,
- 0x0, 0x4, 0x70, 0x0, 0x19, 0x0, 0xb0, 0x4,
- 0x50, 0x0, 0x1, 0x90, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0x0,
-
- /* U+96A8 "隨" */
- 0x0, 0x0, 0x0, 0x0, 0x30, 0x0, 0x8, 0x5a,
- 0x40, 0x0, 0xd, 0x0, 0x20, 0xa0, 0xb2, 0x64,
- 0x69, 0x95, 0x55, 0xa, 0x35, 0xb, 0x3, 0xb5,
- 0x78, 0x30, 0xa5, 0x0, 0x13, 0x62, 0x3a, 0x27,
- 0xa, 0x33, 0x2, 0x2, 0x42, 0x24, 0x20, 0xa0,
- 0x95, 0xb5, 0xb, 0x55, 0xa3, 0xa, 0x8, 0x39,
- 0x10, 0xc5, 0x5a, 0x10, 0xb7, 0xc1, 0x91, 0xa,
- 0x0, 0x81, 0xa, 0x33, 0x9, 0x10, 0xc5, 0x5a,
- 0x10, 0xa0, 0x0, 0x91, 0xa, 0x4, 0xa1, 0xa,
- 0x0, 0x83, 0x65, 0x30, 0x17, 0x0, 0xa0, 0x26,
- 0x0, 0x4a, 0xdc, 0xdb, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+96BB "隻" */
- 0x0, 0x0, 0x0, 0x31, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc1, 0x1d, 0x0, 0x0, 0x0, 0x0, 0x8,
- 0x70, 0x4, 0x0, 0x8, 0x0, 0x0, 0x5f, 0x55,
- 0x5d, 0x55, 0x55, 0x10, 0x3, 0x5b, 0x55, 0x5d,
- 0x55, 0x83, 0x0, 0x2, 0xb, 0x0, 0xc, 0x0,
- 0x33, 0x0, 0x0, 0xb, 0x55, 0x5d, 0x55, 0x54,
- 0x0, 0x0, 0xb, 0x44, 0x49, 0x44, 0x49, 0x30,
- 0x0, 0x36, 0x55, 0x55, 0x58, 0x50, 0x0, 0x0,
- 0x10, 0x61, 0x0, 0x3c, 0x30, 0x0, 0x0, 0x0,
- 0x8, 0x57, 0xa0, 0x0, 0x0, 0x0, 0x0, 0x6,
- 0xcc, 0x62, 0x0, 0x0, 0x2, 0x46, 0x72, 0x0,
- 0x49, 0xbc, 0xb1, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+96C6 "集" */
- 0x0, 0x0, 0x50, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x3, 0xc1, 0x1c, 0x0, 0x0, 0x0, 0x0, 0xb,
- 0x75, 0x59, 0x55, 0x5a, 0x40, 0x0, 0x5d, 0x0,
- 0xb, 0x0, 0x0, 0x0, 0x2, 0x7c, 0x55, 0x5c,
- 0x55, 0x77, 0x0, 0x15, 0xb, 0x0, 0xb, 0x0,
- 0x33, 0x0, 0x0, 0xc, 0x55, 0x5c, 0x55, 0x54,
- 0x0, 0x0, 0xc, 0x55, 0x5a, 0x55, 0x5a, 0x20,
- 0x0, 0x7, 0x0, 0x1b, 0x0, 0x0, 0x30, 0x16,
- 0x55, 0x57, 0xbc, 0x85, 0x55, 0x73, 0x0, 0x0,
- 0x3b, 0x2a, 0x35, 0x0, 0x0, 0x0, 0x7, 0x70,
- 0x1a, 0x4, 0xb5, 0x0, 0x4, 0x61, 0x0, 0x1b,
- 0x0, 0x19, 0xe3, 0x10, 0x0, 0x0, 0x2, 0x0,
- 0x0, 0x0,
-
- /* U+96D1 "雑" */
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0x0, 0x0, 0x76, 0x70, 0x0, 0x3, 0x6c,
- 0x6a, 0x0, 0xc1, 0xc0, 0x0, 0x0, 0x28, 0x47,
- 0x1, 0xc5, 0x75, 0xb1, 0x0, 0x83, 0x74, 0x57,
- 0xa0, 0xb0, 0x0, 0x3, 0x61, 0x4a, 0x99, 0xa0,
- 0xb0, 0x0, 0x3, 0x5, 0x70, 0x32, 0xc5, 0xc5,
- 0x80, 0x2, 0x37, 0x83, 0x81, 0xa0, 0xb0, 0x0,
- 0x2, 0x26, 0x72, 0x21, 0xa0, 0xb0, 0x40, 0x0,
- 0xb6, 0x95, 0x1, 0xc5, 0xc5, 0x50, 0x3, 0x65,
- 0x67, 0x71, 0xa0, 0xb0, 0x0, 0x6, 0x5, 0x60,
- 0x51, 0xa0, 0xb0, 0x51, 0x0, 0x3c, 0x50, 0x1,
- 0xc5, 0x55, 0x52, 0x0, 0x2, 0x0, 0x0, 0x20,
- 0x0, 0x0,
-
- /* U+96D6 "雖" */
- 0x1, 0x10, 0x4, 0x1, 0xb2, 0x70, 0x0, 0x2,
- 0xa5, 0x5c, 0x5, 0x90, 0x94, 0x0, 0x1, 0x70,
- 0xa, 0x9, 0x65, 0x65, 0x90, 0x2, 0xa8, 0x5a,
- 0xe, 0x10, 0xa0, 0x0, 0x0, 0x1a, 0x0, 0x5a,
- 0x10, 0xa0, 0x0, 0x9, 0x5b, 0x58, 0x49, 0x65,
- 0xc6, 0x70, 0xa, 0xa, 0x4, 0x29, 0x10, 0xa0,
- 0x0, 0xa, 0xa, 0x4, 0x29, 0x10, 0xa1, 0x30,
- 0x8, 0x5b, 0x56, 0x19, 0x65, 0xc5, 0x40, 0x0,
- 0xa, 0x5, 0x9, 0x10, 0xa0, 0x0, 0x4, 0x6c,
- 0x78, 0x49, 0x10, 0xa0, 0x60, 0x9, 0x52, 0x2,
- 0x6a, 0x65, 0x55, 0x51, 0x0, 0x0, 0x0, 0x1,
- 0x0, 0x0, 0x0,
-
- /* U+96D9 "雙" */
- 0x0, 0x0, 0x20, 0x0, 0x3, 0x0, 0x0, 0x0,
- 0x67, 0x92, 0x5, 0x87, 0x50, 0x0, 0x0, 0xd5,
- 0x67, 0x69, 0x68, 0x69, 0x20, 0x7, 0xb0, 0xa0,
- 0xf, 0xa, 0x1, 0x0, 0x13, 0xc5, 0xc7, 0x6b,
- 0x5c, 0x57, 0x0, 0x0, 0xa0, 0xa2, 0x1a, 0xa,
- 0x3, 0x0, 0x0, 0xc5, 0xc5, 0x2a, 0x5c, 0x55,
- 0x0, 0x0, 0xc5, 0x95, 0x6b, 0x5b, 0x58, 0x30,
- 0x0, 0x40, 0x0, 0x3, 0x0, 0x30, 0x0, 0x0,
- 0x66, 0x95, 0x55, 0x5d, 0x80, 0x0, 0x0, 0x0,
- 0x26, 0x2, 0xa3, 0x0, 0x0, 0x0, 0x0, 0x1,
- 0xcd, 0x20, 0x0, 0x0, 0x0, 0x15, 0x65, 0x12,
- 0x8a, 0x98, 0x72, 0x4, 0x30, 0x0, 0x0, 0x0,
- 0x14, 0x30,
-
- /* U+96E2 "離" */
- 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x4, 0x80, 0x10, 0x84, 0x70, 0x0, 0x6, 0x56,
- 0x85, 0x91, 0xa0, 0x83, 0x0, 0x4, 0x34, 0x85,
- 0x30, 0xc5, 0x66, 0x90, 0x7, 0x26, 0xb1, 0x95,
- 0xb0, 0xb0, 0x0, 0x7, 0x51, 0x52, 0x95, 0xb0,
- 0xb0, 0x0, 0x8, 0x57, 0x85, 0x80, 0xc5, 0xc6,
- 0x60, 0x3, 0x19, 0x51, 0x60, 0xb0, 0xb0, 0x0,
- 0xa, 0x3a, 0x53, 0xc0, 0xb0, 0xb0, 0x20, 0xa,
- 0x65, 0x75, 0xa0, 0xd5, 0xc5, 0x40, 0xa, 0x54,
- 0x13, 0xa0, 0xb0, 0xb0, 0x0, 0xa, 0x0, 0x0,
- 0xa0, 0xb0, 0xb0, 0x40, 0xa, 0x0, 0x3b, 0x80,
- 0xd5, 0x55, 0x50, 0x2, 0x0, 0x0, 0x0, 0x10,
- 0x0, 0x0,
-
- /* U+96E3 "難" */
- 0x0, 0x10, 0x0, 0x0, 0x40, 0x10, 0x0, 0x0,
- 0xa0, 0x74, 0x3, 0xe1, 0x93, 0x0, 0x15, 0xb5,
- 0x97, 0x87, 0x60, 0x35, 0x20, 0x1, 0x90, 0x73,
- 0xb, 0x65, 0xa6, 0x80, 0x0, 0x8a, 0x82, 0x2e,
- 0x20, 0xb0, 0x0, 0x6, 0x5c, 0x5a, 0x69, 0x20,
- 0xb0, 0x0, 0x9, 0x1a, 0xa, 0x9, 0x65, 0xc6,
- 0x40, 0x8, 0x5c, 0x58, 0x9, 0x20, 0xb0, 0x0,
- 0x4, 0x5c, 0x58, 0x19, 0x30, 0xb2, 0x20, 0x15,
- 0x5c, 0x56, 0x79, 0x64, 0xc4, 0x20, 0x1, 0x9,
- 0x11, 0x9, 0x20, 0xb0, 0x0, 0x0, 0x83, 0xa,
- 0x49, 0x20, 0xb0, 0x40, 0x6, 0x30, 0x1, 0x49,
- 0x65, 0x65, 0x60, 0x10, 0x0, 0x0, 0x1, 0x0,
- 0x0, 0x0,
-
- /* U+96E8 "雨" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x44, 0x45, 0x55,
- 0x5c, 0x55, 0x55, 0x54, 0x0, 0x0, 0xb, 0x0,
- 0x0, 0x20, 0xc, 0x55, 0x5c, 0x55, 0x55, 0xe0,
- 0xc, 0x26, 0xb, 0x6, 0x0, 0xc0, 0xc, 0x8,
- 0x7b, 0x4, 0xb0, 0xc0, 0xc, 0x0, 0x2b, 0x0,
- 0x30, 0xc0, 0xc, 0x33, 0xb, 0x3, 0x0, 0xc0,
- 0xc, 0xb, 0x4b, 0x6, 0xa0, 0xc0, 0xc, 0x1,
- 0x2b, 0x0, 0x50, 0xc0, 0xc, 0x0, 0xb, 0x0,
- 0x45, 0xb0, 0xa, 0x0, 0x7, 0x0, 0x1b, 0x60,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+96EA "雪" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x46, 0x55, 0x65, 0x55, 0xc4, 0x0, 0x0, 0x0,
- 0x0, 0x73, 0x0, 0x0, 0x10, 0x4, 0x75, 0x55,
- 0xa7, 0x55, 0x58, 0xb0, 0xb, 0x35, 0x53, 0x73,
- 0x45, 0x44, 0x0, 0x3, 0x0, 0x0, 0x74, 0x0,
- 0x0, 0x0, 0x0, 0x5, 0x53, 0x84, 0x45, 0x50,
- 0x0, 0x0, 0x0, 0x0, 0x30, 0x0, 0x40, 0x0,
- 0x0, 0x46, 0x55, 0x55, 0x55, 0xc2, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xb0, 0x0, 0x0, 0x16,
- 0x55, 0x55, 0x55, 0xc0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb0, 0x0, 0x0, 0x65, 0x55, 0x55,
- 0x55, 0xd1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x20, 0x0,
-
- /* U+96F2 "雲" */
- 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x7,
- 0x55, 0x77, 0x55, 0x83, 0x0, 0x3, 0x0, 0x5,
- 0x60, 0x0, 0x12, 0x2, 0xa5, 0x55, 0x89, 0x55,
- 0x59, 0xb0, 0x93, 0x55, 0x35, 0x63, 0x54, 0x50,
- 0x0, 0x0, 0x0, 0x57, 0x0, 0x0, 0x0, 0x0,
- 0x55, 0x34, 0x44, 0x54, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x70, 0x0, 0x1, 0x65, 0x55, 0x55,
- 0x55, 0x20, 0x3, 0x65, 0x55, 0x65, 0x55, 0x58,
- 0x80, 0x0, 0x0, 0xa8, 0x2, 0x20, 0x0, 0x0,
- 0x5, 0x71, 0x0, 0x6, 0xa1, 0x0, 0x6, 0xeb,
- 0x98, 0x65, 0x57, 0x90, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0x0,
-
- /* U+96FB "電" */
- 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x6,
- 0x55, 0x59, 0x55, 0x91, 0x0, 0x7, 0x55, 0x56,
- 0xc5, 0x55, 0x69, 0x3, 0x90, 0x0, 0x1a, 0x0,
- 0x5, 0x60, 0x32, 0x45, 0x42, 0xa3, 0x55, 0x30,
- 0x0, 0x4, 0x54, 0x29, 0x35, 0x50, 0x0, 0x0,
- 0x20, 0x0, 0x0, 0x3, 0x0, 0x0, 0xc, 0x55,
- 0x6b, 0x55, 0xc3, 0x0, 0x0, 0xc5, 0x56, 0xc5,
- 0x5c, 0x0, 0x0, 0xb, 0x0, 0x1a, 0x0, 0xb0,
- 0x0, 0x0, 0xc5, 0x56, 0xc5, 0x5c, 0x3, 0x0,
- 0x5, 0x0, 0x1a, 0x0, 0x30, 0x70, 0x0, 0x0,
- 0x0, 0xe9, 0x99, 0x9d, 0x10,
-
- /* U+9700 "需" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0,
- 0x36, 0x55, 0x77, 0x55, 0x85, 0x0, 0x1, 0x65,
- 0x55, 0x99, 0x55, 0x56, 0x80, 0x8, 0x40, 0x0,
- 0x66, 0x0, 0x6, 0x50, 0x4, 0x4, 0x52, 0x66,
- 0x45, 0x31, 0x0, 0x0, 0x5, 0x52, 0x66, 0x45,
- 0x30, 0x0, 0x3, 0x55, 0x55, 0x55, 0x55, 0x5b,
- 0x40, 0x1, 0x0, 0x3, 0x80, 0x0, 0x0, 0x0,
- 0x0, 0x85, 0x59, 0x55, 0x75, 0x5b, 0x0, 0x0,
- 0xb1, 0xb, 0x0, 0xb0, 0x1a, 0x0, 0x0, 0xb1,
- 0xb, 0x0, 0xb0, 0x1a, 0x0, 0x0, 0xb1, 0xb,
- 0x0, 0xb0, 0x1a, 0x0, 0x0, 0xb0, 0x7, 0x0,
- 0x52, 0xb8, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0,
- 0x10, 0x0,
-
- /* U+9707 "震" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0,
- 0x26, 0x55, 0x95, 0x56, 0x80, 0x0, 0x0, 0x85,
- 0x55, 0xc5, 0x55, 0x59, 0x40, 0x8, 0x50, 0x0,
- 0xb0, 0x0, 0x9, 0x10, 0x3, 0x5, 0x52, 0xb0,
- 0x55, 0x30, 0x0, 0x0, 0x24, 0x42, 0x80, 0x44,
- 0x52, 0x0, 0x0, 0xb5, 0x55, 0x55, 0x55, 0x65,
- 0x0, 0x0, 0xb0, 0x65, 0x55, 0x55, 0x90, 0x0,
- 0x0, 0xc5, 0x55, 0x55, 0x55, 0x5a, 0x50, 0x0,
- 0xb0, 0xb0, 0x42, 0x2, 0x80, 0x0, 0x0, 0xa0,
- 0xb0, 0x8, 0x57, 0x20, 0x0, 0x6, 0x30, 0xb3,
- 0x51, 0x99, 0x30, 0x0, 0x15, 0x0, 0xb6, 0x0,
- 0x3, 0xaf, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+9752 "青" */
- 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x1, 0x20, 0x6, 0x55, 0x55,
- 0xd5, 0x55, 0x88, 0x0, 0x4, 0x55, 0x5d, 0x55,
- 0x6a, 0x0, 0x0, 0x10, 0x0, 0xc0, 0x0, 0x2,
- 0x3, 0x65, 0x55, 0x59, 0x55, 0x55, 0x96, 0x0,
- 0x7, 0x55, 0x55, 0x58, 0x20, 0x0, 0x0, 0xc0,
- 0x0, 0x0, 0xb1, 0x0, 0x0, 0xc, 0x55, 0x55,
- 0x5c, 0x10, 0x0, 0x0, 0xc0, 0x0, 0x0, 0xb1,
- 0x0, 0x0, 0xc, 0x55, 0x55, 0x5c, 0x10, 0x0,
- 0x0, 0xc0, 0x0, 0x0, 0xb0, 0x0, 0x0, 0xc,
- 0x0, 0x3, 0xae, 0x0, 0x0, 0x0, 0x30, 0x0,
- 0x1, 0x10, 0x0,
-
- /* U+9759 "静" */
- 0x0, 0x3, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0,
- 0xb, 0x11, 0x1, 0xc1, 0x10, 0x0, 0x7, 0x5c,
- 0x57, 0x48, 0x75, 0xd2, 0x0, 0x4, 0x5c, 0x58,
- 0x36, 0x2, 0x50, 0x0, 0x1, 0xa, 0x0, 0x36,
- 0x69, 0x5c, 0x10, 0x26, 0x58, 0x57, 0x80, 0xa,
- 0xa, 0x0, 0x5, 0x55, 0x59, 0x35, 0x5b, 0x5c,
- 0x90, 0x9, 0x10, 0xa, 0x1, 0xa, 0xa, 0x0,
- 0x9, 0x65, 0x5a, 0x1, 0x1a, 0x1b, 0x0, 0x9,
- 0x65, 0x5a, 0x5, 0x4b, 0x36, 0x0, 0x9, 0x10,
- 0xa, 0x0, 0xa, 0x0, 0x0, 0x9, 0x10, 0xa,
- 0x0, 0x9, 0x0, 0x0, 0x9, 0x14, 0xc7, 0x5,
- 0xc7, 0x0, 0x0, 0x1, 0x0, 0x10, 0x0, 0x20,
- 0x0, 0x0,
-
- /* U+975E "非" */
- 0x0, 0x0, 0x1, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x10, 0xe0, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0x0, 0xc0, 0x0, 0x0, 0x4, 0x55, 0x5d,
- 0x0, 0xd5, 0x57, 0x80, 0x0, 0x0, 0xc, 0x0,
- 0xc0, 0x0, 0x0, 0x0, 0x0, 0xc, 0x0, 0xc0,
- 0x0, 0x0, 0x1, 0x75, 0x5d, 0x0, 0xd5, 0x58,
- 0x40, 0x0, 0x0, 0xc, 0x0, 0xc0, 0x0, 0x0,
- 0x0, 0x0, 0xc, 0x0, 0xc0, 0x0, 0x0, 0x6,
- 0x55, 0x5d, 0x0, 0xd5, 0x55, 0xb1, 0x0, 0x0,
- 0xc, 0x0, 0xc0, 0x0, 0x0, 0x0, 0x0, 0xc,
- 0x0, 0xc0, 0x0, 0x0, 0x0, 0x0, 0xc, 0x0,
- 0xd0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x10,
- 0x0, 0x0,
-
- /* U+9762 "面" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x6,
- 0x55, 0x55, 0x75, 0x55, 0x56, 0xc1, 0x0, 0x0,
- 0x0, 0xd1, 0x0, 0x0, 0x0, 0x0, 0x10, 0x4,
- 0x30, 0x0, 0x2, 0x0, 0x0, 0xd5, 0x5b, 0x55,
- 0xb5, 0x5d, 0x10, 0x0, 0xc0, 0xb, 0x0, 0xb0,
- 0xc, 0x0, 0x0, 0xc0, 0xb, 0x55, 0xc0, 0xc,
- 0x0, 0x0, 0xc0, 0xb, 0x0, 0xb0, 0xc, 0x0,
- 0x0, 0xc0, 0xb, 0x0, 0xb0, 0xc, 0x0, 0x0,
- 0xc0, 0xb, 0x55, 0xc0, 0xc, 0x0, 0x0, 0xc0,
- 0xb, 0x0, 0xb0, 0xc, 0x0, 0x0, 0xd5, 0x5c,
- 0x55, 0xd5, 0x5d, 0x0, 0x0, 0xb0, 0x0, 0x0,
- 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+9769 "革" */
- 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1d, 0x0, 0x38, 0x1, 0x0, 0x1, 0x65,
- 0x5c, 0x55, 0x6a, 0x59, 0x50, 0x0, 0x0, 0x1b,
- 0x0, 0x27, 0x0, 0x0, 0x0, 0x0, 0x1c, 0x5a,
- 0x65, 0x0, 0x0, 0x0, 0x3, 0x0, 0xc, 0x0,
- 0x30, 0x0, 0x0, 0xd, 0x55, 0x5d, 0x55, 0xb4,
- 0x0, 0x0, 0xc, 0x0, 0xc, 0x0, 0x92, 0x0,
- 0x0, 0xc, 0x55, 0x5d, 0x55, 0x91, 0x0, 0x0,
- 0x0, 0x0, 0xc, 0x0, 0x0, 0x50, 0x6, 0x55,
- 0x55, 0x5d, 0x55, 0x56, 0x71, 0x0, 0x0, 0x0,
- 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0,
- 0x0, 0x0,
-
- /* U+9774 "靴" */
- 0x0, 0x20, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb0, 0x84, 0x5, 0x8a, 0x10, 0x0, 0x16, 0xb5,
- 0xa9, 0x49, 0x3b, 0x0, 0x0, 0x0, 0xa0, 0x82,
- 0xb, 0xa, 0x4, 0x50, 0x1, 0xaa, 0x82, 0x28,
- 0xa, 0xb, 0x20, 0x5, 0x5c, 0x57, 0x7b, 0xa,
- 0x55, 0x0, 0x9, 0x1a, 0xb, 0x4a, 0xa, 0x80,
- 0x0, 0x9, 0x1a, 0xb, 0xa, 0xd, 0x10, 0x0,
- 0x8, 0x5c, 0x57, 0xa, 0x5a, 0x10, 0x0, 0x0,
- 0xa, 0x4, 0x1a, 0x9, 0x10, 0x0, 0x26, 0x5c,
- 0x55, 0x2a, 0x9, 0x10, 0x40, 0x0, 0xb, 0x0,
- 0xa, 0x9, 0x10, 0x70, 0x0, 0xb, 0x0, 0xb,
- 0x6, 0xba, 0xc0, 0x0, 0x4, 0x0, 0x2, 0x0,
- 0x0, 0x0,
-
- /* U+97F3 "音" */
- 0x0, 0x0, 0x1, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb4, 0x0, 0x0, 0x0, 0x0, 0x65,
- 0x55, 0x87, 0x55, 0x98, 0x0, 0x0, 0x0, 0x53,
- 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x1e, 0x0,
- 0x84, 0x0, 0x0, 0x0, 0x0, 0x6, 0x0, 0x70,
- 0x5, 0x70, 0x26, 0x55, 0x55, 0x55, 0x55, 0x55,
- 0x50, 0x0, 0x7, 0x55, 0x55, 0x56, 0xa0, 0x0,
- 0x0, 0x9, 0x20, 0x0, 0x2, 0x90, 0x0, 0x0,
- 0x9, 0x65, 0x55, 0x56, 0x90, 0x0, 0x0, 0x9,
- 0x20, 0x0, 0x2, 0x90, 0x0, 0x0, 0xa, 0x65,
- 0x55, 0x56, 0xa0, 0x0, 0x0, 0x9, 0x20, 0x0,
- 0x2, 0x90, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+97FF "響" */
- 0x0, 0x0, 0x0, 0x31, 0x0, 0x0, 0x0, 0x2,
- 0xa0, 0x66, 0x76, 0x54, 0x71, 0x1, 0x71, 0x49,
- 0x0, 0xa9, 0x18, 0x0, 0xa6, 0x93, 0xa5, 0x5a,
- 0x95, 0x0, 0x2, 0x62, 0x9a, 0x57, 0x59, 0x8,
- 0x0, 0x46, 0x93, 0xa6, 0x67, 0x94, 0xa1, 0x0,
- 0x67, 0x4, 0x71, 0x18, 0x14, 0x0, 0x46, 0x55,
- 0x57, 0x76, 0x5a, 0x0, 0x0, 0x0, 0x47, 0x2,
- 0xa0, 0x1, 0x0, 0x65, 0x55, 0x65, 0x75, 0x55,
- 0x91, 0x0, 0xa, 0x55, 0x55, 0x5b, 0x20, 0x0,
- 0x0, 0xa5, 0x55, 0x55, 0xc0, 0x0, 0x0, 0xa,
- 0x55, 0x55, 0x5c, 0x0, 0x0, 0x0, 0x20, 0x0,
- 0x0, 0x20, 0x0,
-
- /* U+9803 "頃" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x30,
- 0x0, 0x46, 0x57, 0x55, 0xa3, 0xd, 0x0, 0x0,
- 0x0, 0xb0, 0x0, 0x0, 0xb0, 0x0, 0x8, 0x67,
- 0x55, 0xb0, 0xb, 0x0, 0x10, 0xb0, 0x0, 0xb,
- 0x0, 0xc5, 0x65, 0xc, 0x55, 0x55, 0xb0, 0xb,
- 0x0, 0x0, 0xb0, 0x0, 0xb, 0x0, 0xb0, 0x0,
- 0xc, 0x55, 0x55, 0xb0, 0xb, 0x0, 0x20, 0xb0,
- 0x0, 0xb, 0x0, 0xb2, 0x82, 0xd, 0x55, 0x55,
- 0xb0, 0x1f, 0xa0, 0x0, 0x1a, 0x23, 0x20, 0x0,
- 0x40, 0x0, 0x7, 0x70, 0xa, 0x50, 0x0, 0x0,
- 0x5, 0x30, 0x0, 0x1c, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+9805 "項" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x46, 0x56, 0x55, 0xb3, 0x5, 0x67,
- 0x77, 0x0, 0xc, 0x0, 0x0, 0x0, 0xb, 0x0,
- 0x7, 0x68, 0x55, 0x90, 0x0, 0xb, 0x0, 0xc,
- 0x0, 0x0, 0xb0, 0x0, 0xb, 0x0, 0xd, 0x55,
- 0x55, 0xb0, 0x0, 0xb, 0x0, 0xb, 0x0, 0x0,
- 0xb0, 0x0, 0xb, 0x0, 0xc, 0x55, 0x55, 0xb0,
- 0x0, 0xb, 0x3, 0xb, 0x0, 0x0, 0xb0, 0x0,
- 0x5d, 0x61, 0xd, 0x55, 0x55, 0xb0, 0x1e, 0x70,
- 0x0, 0x2, 0x82, 0x31, 0x10, 0x0, 0x0, 0x0,
- 0x6, 0x80, 0xa, 0x40, 0x0, 0x0, 0x0, 0x54,
- 0x0, 0x1, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+9808 "須" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa1, 0x45, 0x56, 0x55, 0xb3, 0x0, 0x8,
- 0x70, 0x0, 0xc, 0x0, 0x0, 0x0, 0x66, 0x0,
- 0x7, 0x68, 0x55, 0x90, 0x5, 0x20, 0x10, 0xb,
- 0x0, 0x0, 0xb0, 0x0, 0x0, 0x98, 0xc, 0x55,
- 0x55, 0xb0, 0x0, 0x7, 0x80, 0xb, 0x0, 0x0,
- 0xb0, 0x0, 0x64, 0x0, 0xc, 0x55, 0x55, 0xb0,
- 0x3, 0x0, 0x7, 0xb, 0x0, 0x0, 0xb0, 0x0,
- 0x0, 0x6b, 0x1d, 0x55, 0x55, 0xb0, 0x0, 0x6,
- 0x80, 0x2, 0x61, 0x31, 0x10, 0x0, 0x64, 0x0,
- 0x5, 0xa1, 0xa, 0x40, 0x2, 0x0, 0x0, 0x56,
- 0x0, 0x1, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+9817 "頗" */
- 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc0, 0x26, 0x55, 0x55, 0xb3, 0x0, 0x0,
- 0xa0, 0x0, 0xc, 0x10, 0x0, 0x2, 0xa4, 0xc5,
- 0xa5, 0x5a, 0x55, 0x91, 0x1, 0x90, 0xa5, 0x2b,
- 0x0, 0x0, 0xb0, 0x1, 0x90, 0xa2, 0xb, 0x55,
- 0x55, 0xc0, 0x1, 0xb5, 0x98, 0x6a, 0x0, 0x0,
- 0xb0, 0x2, 0x80, 0x8, 0x1a, 0x55, 0x55, 0xc0,
- 0x4, 0x65, 0x1a, 0xa, 0x0, 0x0, 0xb0, 0x5,
- 0x30, 0xb6, 0xb, 0x55, 0x55, 0xc0, 0x7, 0x3,
- 0x9c, 0x3, 0x63, 0x21, 0x20, 0x6, 0x27, 0x7,
- 0x13, 0xb1, 0x9, 0x50, 0x12, 0x30, 0x0, 0x37,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0x0, 0x10, 0x0,
- 0x0, 0x10,
-
- /* U+9818 "領" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0x10, 0x56, 0x56, 0x55, 0xb3, 0x0, 0x2c,
- 0x50, 0x0, 0xc, 0x0, 0x0, 0x0, 0x83, 0x68,
- 0x7, 0x68, 0x55, 0x90, 0x1, 0x92, 0xa, 0x4b,
- 0x0, 0x0, 0xb0, 0x7, 0x16, 0x51, 0xc, 0x55,
- 0x55, 0xb0, 0x22, 0x0, 0x70, 0xb, 0x0, 0x0,
- 0xb0, 0x2, 0x65, 0x5d, 0x2b, 0x55, 0x55, 0xb0,
- 0x0, 0x0, 0x47, 0xb, 0x0, 0x0, 0xb0, 0x1,
- 0x20, 0x80, 0xc, 0x55, 0x55, 0xb0, 0x0, 0x6a,
- 0x20, 0x2, 0x82, 0x22, 0x10, 0x0, 0x9, 0x80,
- 0x6, 0x80, 0x8, 0x60, 0x0, 0x0, 0x60, 0x54,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+982D "頭" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x4, 0x36, 0x55, 0x55, 0xb1, 0x16, 0x55,
- 0x55, 0x20, 0xc, 0x0, 0x0, 0x2, 0x0, 0x4,
- 0x6, 0x57, 0x44, 0x80, 0xa, 0x65, 0x5d, 0xc,
- 0x0, 0x0, 0xb0, 0xa, 0x10, 0xb, 0xc, 0x55,
- 0x55, 0xb0, 0xa, 0x55, 0x5b, 0xb, 0x0, 0x0,
- 0xb0, 0x4, 0x0, 0x12, 0xb, 0x55, 0x55, 0xb0,
- 0x3, 0x20, 0x67, 0xb, 0x0, 0x0, 0xb0, 0x0,
- 0xc0, 0x90, 0xc, 0x55, 0x55, 0xb0, 0x0, 0x60,
- 0x73, 0x12, 0x82, 0x13, 0x10, 0x2c, 0xa8, 0x41,
- 0x6, 0x90, 0x6, 0x80, 0x2, 0x0, 0x0, 0x55,
- 0x0, 0x0, 0xc2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+983C "頼" */
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb, 0x20, 0x36, 0x56, 0x55, 0xb1, 0x1, 0x1b,
- 0x16, 0x10, 0xc, 0x10, 0x0, 0x5, 0x3b, 0x33,
- 0x26, 0x59, 0x55, 0x90, 0x3, 0x1a, 0x14, 0xc,
- 0x0, 0x0, 0xb0, 0xa, 0x4b, 0x4c, 0x1b, 0x55,
- 0x55, 0xb0, 0xa, 0xa, 0xb, 0xb, 0x0, 0x0,
- 0xb0, 0xa, 0x5d, 0x5c, 0xb, 0x55, 0x55, 0xb0,
- 0x2, 0x5f, 0x41, 0xb, 0x0, 0x0, 0xb0, 0x0,
- 0xab, 0x3b, 0xb, 0x55, 0x55, 0xb0, 0x6, 0x3a,
- 0x6, 0x52, 0x83, 0x14, 0x10, 0x24, 0xa, 0x0,
- 0x5, 0x90, 0x6, 0x90, 0x0, 0xa, 0x0, 0x45,
- 0x0, 0x0, 0xb2, 0x0, 0x1, 0x0, 0x10, 0x0,
- 0x0, 0x0,
-
- /* U+984C "題" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4,
- 0x75, 0x5b, 0x36, 0x55, 0x57, 0x90, 0x4, 0x50,
- 0xa, 0x0, 0x9, 0x0, 0x0, 0x4, 0x85, 0x5a,
- 0x7, 0x67, 0x5b, 0x0, 0x5, 0x51, 0x1a, 0xa,
- 0x0, 0xa, 0x0, 0x4, 0x64, 0x46, 0xa, 0x55,
- 0x5a, 0x0, 0x5, 0x55, 0x57, 0x7a, 0x55, 0x5a,
- 0x0, 0x3, 0xa, 0x0, 0xa, 0x0, 0xa, 0x0,
- 0x8, 0x3a, 0x3, 0x1a, 0x55, 0x58, 0x0, 0x9,
- 0x1a, 0x55, 0x21, 0xc0, 0x44, 0x0, 0x9, 0x5a,
- 0x0, 0x8, 0x20, 0xa, 0x40, 0x7, 0xb, 0x30,
- 0x30, 0x0, 0x1, 0x20, 0x41, 0x0, 0x7b, 0xbb,
- 0xcc, 0xde, 0x80, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+9854 "顔" */
- 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x8, 0x40, 0x36, 0x56, 0x55, 0xb1, 0x5, 0x66,
- 0x79, 0x60, 0xc, 0x10, 0x0, 0x0, 0x71, 0x39,
- 0x7, 0x59, 0x55, 0xa0, 0x1, 0x36, 0x60, 0x1c,
- 0x0, 0x0, 0xa0, 0xa, 0x55, 0x66, 0x6b, 0x55,
- 0x55, 0xa0, 0xa, 0x0, 0x2a, 0xb, 0x0, 0x0,
- 0xa0, 0xa, 0x5, 0x71, 0xb, 0x55, 0x55, 0xa0,
- 0xa, 0x20, 0x1b, 0x4b, 0x0, 0x0, 0xa0, 0x9,
- 0x3, 0x82, 0xb, 0x55, 0x55, 0xa0, 0x8, 0x22,
- 0x6, 0xb1, 0x93, 0x24, 0x0, 0x15, 0x1, 0x87,
- 0x5, 0x90, 0x7, 0x80, 0x40, 0x45, 0x0, 0x45,
- 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0, 0x10, 0x0,
- 0x0, 0x0,
-
- /* U+9858 "願" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6,
- 0x55, 0x59, 0x76, 0x57, 0x55, 0xb1, 0xa, 0x0,
- 0x90, 0x0, 0xc, 0x10, 0x0, 0xa, 0x23, 0x32,
- 0x15, 0x48, 0x44, 0x90, 0xa, 0x58, 0x59, 0x4b,
- 0x11, 0x11, 0xc0, 0xa, 0x57, 0x59, 0x2b, 0x55,
- 0x55, 0xb0, 0xa, 0x54, 0x7, 0x2b, 0x0, 0x0,
- 0xb0, 0xa, 0x57, 0x99, 0x2b, 0x55, 0x55, 0xb0,
- 0x8, 0x10, 0xa0, 0xb, 0x0, 0x0, 0xb0, 0x7,
- 0x85, 0xa6, 0x1b, 0x55, 0x55, 0xb0, 0x33, 0x70,
- 0xa2, 0xa1, 0x83, 0x14, 0x10, 0x24, 0x22, 0xb0,
- 0x54, 0x90, 0x6, 0x90, 0x0, 0xa, 0x70, 0x36,
- 0x0, 0x0, 0xc1, 0x0, 0x0, 0x0, 0x10, 0x0,
- 0x0, 0x0,
-
- /* U+985E "類" */
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
- 0x9, 0x35, 0x26, 0x56, 0x55, 0xb1, 0x2, 0xa9,
- 0x2a, 0x0, 0xc, 0x20, 0x0, 0x0, 0x39, 0x73,
- 0x45, 0x49, 0x44, 0x90, 0x26, 0xaf, 0xb6, 0x4b,
- 0x10, 0x0, 0xb0, 0x3, 0x89, 0x3b, 0x3b, 0x55,
- 0x55, 0xb0, 0x34, 0x9, 0x32, 0x3a, 0x0, 0x0,
- 0xb0, 0x0, 0x6, 0x4b, 0xa, 0x55, 0x55, 0xb0,
- 0x12, 0x29, 0x55, 0x6a, 0x0, 0x0, 0xb0, 0x14,
- 0x3d, 0x33, 0x3b, 0x55, 0x55, 0xb0, 0x0, 0x2a,
- 0x78, 0x1, 0x84, 0x14, 0x10, 0x0, 0xa1, 0x7,
- 0x54, 0xa0, 0x6, 0x90, 0x6, 0x10, 0x0, 0x36,
- 0x0, 0x0, 0xb1, 0x10, 0x0, 0x0, 0x10, 0x0,
- 0x0, 0x0,
-
- /* U+986F "顯" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6,
- 0x55, 0x59, 0x56, 0x57, 0x58, 0x70, 0xa, 0x0,
- 0xa, 0x0, 0xc, 0x0, 0x0, 0xa, 0x55, 0x5c,
- 0x6, 0x68, 0x59, 0x30, 0xa, 0x55, 0x5a, 0xb,
- 0x0, 0x9, 0x10, 0x2, 0x80, 0x17, 0xa, 0x55,
- 0x5b, 0x10, 0x6, 0x34, 0x74, 0x5a, 0x0, 0x9,
- 0x10, 0x28, 0x91, 0x8a, 0x1a, 0x55, 0x5b, 0x10,
- 0x27, 0x54, 0x64, 0x4a, 0x0, 0x9, 0x10, 0x36,
- 0x39, 0x63, 0x7a, 0x55, 0x5b, 0x10, 0x3, 0x31,
- 0x54, 0x21, 0x92, 0x24, 0x0, 0x19, 0x37, 0xa2,
- 0xa3, 0x90, 0x8, 0x60, 0x33, 0x2, 0x10, 0x36,
- 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0, 0x10, 0x0,
- 0x0, 0x0,
-
- /* U+98A8 "風" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x86, 0x55, 0x55, 0x55, 0xd0, 0x0, 0x0, 0x82,
- 0x0, 0x4, 0x92, 0xb0, 0x0, 0x0, 0x84, 0x57,
- 0xd5, 0x20, 0xb0, 0x0, 0x0, 0x82, 0x0, 0xb0,
- 0x0, 0xb0, 0x0, 0x0, 0x82, 0xa5, 0xc5, 0xc1,
- 0xb0, 0x0, 0x0, 0x82, 0xb0, 0xb0, 0xb0, 0xb0,
- 0x0, 0x0, 0x82, 0xb0, 0xb0, 0xb0, 0xb0, 0x0,
- 0x0, 0x91, 0xa5, 0xc5, 0x90, 0xb0, 0x0, 0x0,
- 0xb0, 0x0, 0xb0, 0x60, 0xc0, 0x0, 0x0, 0xa0,
- 0x0, 0xb4, 0x7a, 0x93, 0x50, 0x6, 0x49, 0xc9,
- 0x63, 0xb, 0x3c, 0x90, 0x16, 0x0, 0x0, 0x0,
- 0x0, 0x5, 0xd0, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x10,
-
- /* U+98DB "飛" */
- 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x65, 0x55, 0x55, 0xc6, 0x3, 0x0, 0x0, 0x0,
- 0x73, 0x90, 0xa4, 0x88, 0x0, 0x0, 0x2b, 0x51,
- 0xa0, 0x98, 0x52, 0x0, 0x3, 0x3a, 0x0, 0xa0,
- 0x5a, 0xa, 0x31, 0x0, 0xa, 0x0, 0xa0, 0xb,
- 0x50, 0x61, 0x15, 0x5c, 0x55, 0xb5, 0xa2, 0x78,
- 0xc5, 0x1, 0xa, 0x0, 0xa0, 0xb0, 0x12, 0x11,
- 0x0, 0xb, 0x0, 0xa0, 0xb6, 0x73, 0x0, 0x0,
- 0xa, 0x0, 0xa0, 0xb1, 0xa6, 0x0, 0x0, 0x45,
- 0x0, 0xa0, 0x76, 0x5, 0x13, 0x0, 0x80, 0x0,
- 0xa0, 0xb, 0x60, 0x53, 0x15, 0x0, 0x1, 0x50,
- 0x0, 0x6b, 0xd5,
-
- /* U+98DF "食" */
- 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x7, 0xd1, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x4c, 0x7, 0x10, 0x0, 0x0, 0x0, 0x3, 0xb1,
- 0x71, 0x96, 0x0, 0x0, 0x0, 0x59, 0x0, 0x58,
- 0x8, 0xd9, 0x60, 0x16, 0x39, 0x65, 0x56, 0x5d,
- 0x28, 0x40, 0x0, 0x9, 0x20, 0x0, 0xc, 0x0,
- 0x0, 0x0, 0x9, 0x65, 0x55, 0x5c, 0x0, 0x0,
- 0x0, 0x9, 0x65, 0x55, 0x5c, 0x0, 0x0, 0x0,
- 0x9, 0x22, 0x0, 0x7, 0xb0, 0x0, 0x0, 0x9,
- 0x20, 0x68, 0x66, 0x0, 0x0, 0x0, 0xa, 0x34,
- 0x52, 0x8c, 0x50, 0x0, 0x0, 0xb, 0xb3, 0x0,
- 0x3, 0xe2, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x10, 0x0,
-
- /* U+98EF "飯" */
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x8, 0x60, 0x1, 0x1, 0x5b, 0x60, 0x0, 0x1b,
- 0x66, 0xb, 0x54, 0x31, 0x0, 0x0, 0x84, 0x6,
- 0x8b, 0x0, 0x0, 0x0, 0x4, 0x41, 0xa0, 0x2b,
- 0x0, 0x0, 0x0, 0x13, 0xa5, 0x6a, 0x2b, 0x65,
- 0x58, 0x90, 0x0, 0xa0, 0xa, 0xb, 0x30, 0x7,
- 0x30, 0x0, 0xc5, 0x5c, 0xb, 0x4, 0xa, 0x0,
- 0x0, 0xc5, 0x5c, 0xb, 0x6, 0x27, 0x0, 0x0,
- 0xa0, 0x42, 0xa, 0x5, 0xb0, 0x0, 0x0, 0xa0,
- 0x4a, 0x18, 0x6, 0xb0, 0x0, 0x0, 0xc9, 0x4a,
- 0x51, 0x37, 0x49, 0x0, 0x0, 0xa1, 0x0, 0x52,
- 0x50, 0x8, 0xb1, 0x0, 0x0, 0x2, 0x2, 0x0,
- 0x0, 0x30,
-
- /* U+98F2 "飲" */
- 0x0, 0x1, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x8, 0x70, 0x0, 0xc2, 0x0, 0x0, 0x0, 0xb,
- 0x65, 0x0, 0xb0, 0x0, 0x0, 0x0, 0x84, 0x7,
- 0x85, 0x95, 0x58, 0x60, 0x3, 0x41, 0xa0, 0x29,
- 0x10, 0x9, 0x30, 0x13, 0x95, 0x7a, 0x44, 0x4a,
- 0x7, 0x0, 0x0, 0xa0, 0xa, 0x20, 0x59, 0x11,
- 0x0, 0x0, 0xc5, 0x5c, 0x0, 0x69, 0x0, 0x0,
- 0x0, 0xc5, 0x5c, 0x0, 0x97, 0x0, 0x0, 0x0,
- 0xa0, 0x42, 0x0, 0xb1, 0x60, 0x0, 0x0, 0xa0,
- 0x5b, 0x3, 0x80, 0xa1, 0x0, 0x1, 0xe9, 0x18,
- 0x8, 0x0, 0x3c, 0x10, 0x0, 0x50, 0x0, 0x50,
- 0x0, 0x5, 0xc1, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+9928 "館" */
- 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0,
- 0x8, 0x70, 0x0, 0x7, 0x60, 0x0, 0x0, 0xc,
- 0x74, 0x8, 0x56, 0xa5, 0x93, 0x0, 0x85, 0xa,
- 0xb6, 0x0, 0x0, 0x90, 0x3, 0x53, 0x80, 0x23,
- 0x11, 0x16, 0x10, 0x14, 0x85, 0x79, 0x19, 0x64,
- 0x4c, 0x10, 0x0, 0xa0, 0xa, 0x9, 0x20, 0xb,
- 0x0, 0x0, 0xb5, 0x5b, 0x9, 0x65, 0x59, 0x0,
- 0x0, 0xa1, 0x1b, 0x9, 0x20, 0x2, 0x30, 0x0,
- 0xb3, 0x65, 0x9, 0x65, 0x58, 0x80, 0x0, 0xa0,
- 0x4a, 0x9, 0x20, 0x5, 0x50, 0x1, 0xd9, 0x4a,
- 0x9, 0x65, 0x58, 0x60, 0x0, 0x80, 0x0, 0x9,
- 0x20, 0x4, 0x30, 0x0, 0x0, 0x0, 0x1, 0x0,
- 0x0, 0x0,
-
- /* U+9996 "首" */
- 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0,
- 0x0, 0x84, 0x0, 0x4c, 0x0, 0x0, 0x0, 0x0,
- 0x1e, 0x0, 0x81, 0x0, 0x30, 0x16, 0x55, 0x58,
- 0xb5, 0x75, 0x57, 0x91, 0x0, 0x0, 0x2, 0x80,
- 0x0, 0x0, 0x0, 0x0, 0xa, 0x57, 0x65, 0x56,
- 0xc0, 0x0, 0x0, 0xc, 0x0, 0x0, 0x1, 0xa0,
- 0x0, 0x0, 0xc, 0x55, 0x55, 0x56, 0xa0, 0x0,
- 0x0, 0xc, 0x0, 0x0, 0x1, 0xa0, 0x0, 0x0,
- 0xc, 0x55, 0x55, 0x56, 0xa0, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0x1, 0xa0, 0x0, 0x0, 0xc, 0x55,
- 0x55, 0x56, 0xa0, 0x0, 0x0, 0xc, 0x0, 0x0,
- 0x1, 0xa0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+9999 "香" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x35, 0x8b, 0xc3, 0x0, 0x0, 0x4,
- 0x55, 0x4c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0x0, 0x1, 0x80, 0x4, 0x55, 0x58, 0xdd,
- 0x95, 0x55, 0x51, 0x0, 0x0, 0x2b, 0x1c, 0x18,
- 0x10, 0x0, 0x0, 0x5, 0x90, 0xd, 0x1, 0xb9,
- 0x30, 0x1, 0x64, 0x75, 0x57, 0x55, 0xa6, 0xc4,
- 0x3, 0x0, 0xb0, 0x0, 0x0, 0xb0, 0x0, 0x0,
- 0x0, 0xb0, 0x0, 0x0, 0xa0, 0x0, 0x0, 0x0,
- 0xc5, 0x55, 0x55, 0xa0, 0x0, 0x0, 0x0, 0xb0,
- 0x0, 0x0, 0xa0, 0x0, 0x0, 0x0, 0xc5, 0x55,
- 0x55, 0xb0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+99C4 "駄" */
- 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x2,
- 0xa5, 0x85, 0x80, 0xb, 0x20, 0x0, 0x1, 0xa0,
- 0xa0, 0x0, 0xa, 0x0, 0x0, 0x1, 0xb5, 0xc6,
- 0x60, 0xa, 0x0, 0x10, 0x1, 0xa0, 0xa0, 0x26,
- 0x5c, 0x65, 0x91, 0x1, 0xb5, 0xc5, 0x40, 0xa,
- 0x50, 0x0, 0x1, 0xa0, 0xa0, 0x30, 0x9, 0x60,
- 0x0, 0x1, 0xb4, 0x54, 0xd1, 0x37, 0x70, 0x0,
- 0x0, 0x21, 0x40, 0xb0, 0x72, 0x81, 0x0, 0x4,
- 0x66, 0x85, 0xb0, 0xa0, 0x47, 0x0, 0xa, 0x82,
- 0x42, 0x93, 0x82, 0xc, 0x0, 0x14, 0x1, 0x8,
- 0x69, 0xa, 0x27, 0x90, 0x0, 0x0, 0x8c, 0x61,
- 0x3, 0x10, 0xc4, 0x0, 0x0, 0x0, 0x10, 0x0,
- 0x0, 0x0,
-
- /* U+99C5 "駅" */
- 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x2,
- 0xa5, 0x95, 0x86, 0x65, 0x55, 0xc0, 0x1, 0x90,
- 0xb0, 0x16, 0x40, 0x0, 0xb0, 0x1, 0xb5, 0xc6,
- 0x56, 0x40, 0x0, 0xb0, 0x1, 0x90, 0xb0, 0x16,
- 0x40, 0x0, 0xb0, 0x1, 0xb5, 0xc5, 0x46, 0x88,
- 0x55, 0xa0, 0x1, 0x90, 0xb0, 0x26, 0x45, 0x0,
- 0x0, 0x1, 0xb4, 0x54, 0xd7, 0x34, 0x30, 0x0,
- 0x0, 0x11, 0x40, 0xb8, 0x10, 0x80, 0x0, 0x4,
- 0x64, 0x77, 0xb9, 0x0, 0xa0, 0x0, 0xa, 0x73,
- 0x53, 0x98, 0x0, 0x49, 0x0, 0x14, 0x0, 0x8,
- 0x83, 0x0, 0xb, 0x80, 0x0, 0x0, 0x7c, 0x60,
- 0x0, 0x0, 0x93, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+9A12 "騒" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
- 0x85, 0x76, 0x74, 0x65, 0x56, 0xb0, 0x1, 0xa0,
- 0xb0, 0x0, 0x51, 0x9, 0x40, 0x1, 0xb5, 0xc7,
- 0x40, 0x9, 0x3a, 0x0, 0x1, 0xa0, 0xb0, 0x0,
- 0x4, 0xf2, 0x0, 0x1, 0xb5, 0xc7, 0x40, 0x58,
- 0x5c, 0x83, 0x1, 0xa0, 0xb0, 0x14, 0x20, 0xc0,
- 0x51, 0x2, 0xb4, 0x74, 0xd6, 0x85, 0xc5, 0xc0,
- 0x0, 0x1, 0x30, 0xb5, 0x60, 0xb0, 0xb0, 0x3,
- 0x66, 0x85, 0xa5, 0x95, 0xc5, 0xc0, 0xa, 0x65,
- 0x43, 0x82, 0x20, 0xb2, 0x30, 0x14, 0x0, 0x6,
- 0x50, 0x0, 0xb3, 0xb2, 0x0, 0x3, 0x9c, 0x1c,
- 0xb8, 0x63, 0x28, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+9A13 "験" */
- 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x1,
- 0x85, 0x77, 0x50, 0x1e, 0x10, 0x0, 0x1, 0x90,
- 0xb0, 0x0, 0x93, 0x70, 0x0, 0x1, 0xb5, 0xc7,
- 0x24, 0x70, 0x2b, 0x51, 0x1, 0x90, 0xb0, 0x37,
- 0x68, 0x6a, 0x82, 0x1, 0xb5, 0xc7, 0x20, 0xa,
- 0x11, 0x0, 0x1, 0x90, 0xb0, 0x1b, 0x5c, 0x5b,
- 0x40, 0x2, 0xa4, 0x66, 0x9b, 0xa, 0x19, 0x10,
- 0x0, 0x1, 0x43, 0x7b, 0x5c, 0x5b, 0x10, 0x7,
- 0x66, 0x88, 0x66, 0xb, 0x14, 0x0, 0x2b, 0x73,
- 0x36, 0x40, 0x28, 0x70, 0x0, 0x11, 0x0, 0x9,
- 0x21, 0xa0, 0x59, 0x0, 0x0, 0x2, 0xaa, 0x37,
- 0x0, 0x6, 0xd3, 0x0, 0x0, 0x0, 0x10, 0x0,
- 0x0, 0x0,
-
- /* U+9A57 "驗" */
- 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x1,
- 0x85, 0x68, 0x40, 0xd, 0x30, 0x0, 0x1, 0x90,
- 0xa0, 0x0, 0x64, 0x80, 0x0, 0x1, 0xb5, 0xc8,
- 0x12, 0x80, 0x2a, 0x10, 0x1, 0x90, 0xa0, 0x18,
- 0x65, 0x5b, 0xc5, 0x1, 0xb5, 0xc7, 0x31, 0x1,
- 0x10, 0x20, 0x1, 0x90, 0xa0, 0xc, 0x77, 0xb5,
- 0xc0, 0x1, 0xb4, 0x77, 0x8a, 0x35, 0xa0, 0xa0,
- 0x0, 0x20, 0x34, 0x5c, 0x76, 0xb5, 0xb0, 0x4,
- 0x56, 0x4b, 0x56, 0x81, 0x46, 0x40, 0xa, 0x82,
- 0x37, 0x44, 0x80, 0xc, 0x0, 0x14, 0x0, 0xa,
- 0x19, 0x63, 0x48, 0x60, 0x0, 0x2, 0x9a, 0x53,
- 0x8, 0x70, 0x81, 0x0, 0x0, 0x0, 0x10, 0x2,
- 0x0, 0x0,
-
- /* U+9AD4 "體" */
- 0x0, 0x0, 0x0, 0x0, 0x11, 0x20, 0x0, 0x0,
- 0x85, 0x5a, 0x0, 0x46, 0xb1, 0x0, 0x0, 0xa2,
- 0x1a, 0x7, 0x89, 0xc6, 0xa0, 0x0, 0xca, 0x5a,
- 0xb, 0x46, 0xa2, 0x90, 0x2, 0xa7, 0x3a, 0x1b,
- 0x78, 0xc6, 0x90, 0xb, 0x66, 0x57, 0x9b, 0x78,
- 0xc6, 0x90, 0x25, 0x85, 0x5b, 0x5, 0x0, 0x1,
- 0x60, 0x0, 0xb0, 0xa, 0x26, 0x55, 0x56, 0x51,
- 0x0, 0xc5, 0x5a, 0x7, 0x75, 0x5a, 0x60, 0x0,
- 0xb0, 0xa, 0x6, 0x52, 0x28, 0x40, 0x0, 0xc5,
- 0x5a, 0x5, 0x73, 0x59, 0x20, 0x0, 0xb0, 0xa,
- 0x0, 0x83, 0x64, 0x0, 0x0, 0xb2, 0x99, 0x45,
- 0x66, 0x95, 0xb2, 0x0, 0x20, 0x0, 0x10, 0x0,
- 0x0, 0x0,
-
- /* U+9AD8 "高" */
- 0x0, 0x0, 0x24, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa2, 0x0, 0x0, 0x20, 0x55, 0x55, 0x55,
- 0x55, 0x55, 0x69, 0x0, 0x3, 0x65, 0x55, 0x59,
- 0x0, 0x0, 0x0, 0x46, 0x0, 0x0, 0xb0, 0x0,
- 0x0, 0x4, 0x95, 0x55, 0x5c, 0x0, 0x0, 0x0,
- 0x32, 0x0, 0x0, 0x50, 0x10, 0x0, 0xc5, 0x55,
- 0x55, 0x55, 0x5d, 0x30, 0xb, 0x6, 0x55, 0x59,
- 0x30, 0xc0, 0x0, 0xb0, 0x91, 0x0, 0x91, 0xc,
- 0x0, 0xb, 0x9, 0x65, 0x5b, 0x20, 0xc0, 0x0,
- 0xb0, 0x70, 0x0, 0x61, 0xc, 0x0, 0xb, 0x0,
- 0x0, 0x0, 0x39, 0xd0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2, 0x0,
-
- /* U+9AEA "髪" */
- 0x0, 0x20, 0x0, 0x30, 0x0, 0x20, 0x0, 0x0,
- 0xa5, 0x55, 0x50, 0x5, 0xb3, 0x0, 0x0, 0xa5,
- 0x56, 0x44, 0x73, 0x4, 0x0, 0x0, 0xa5, 0x56,
- 0x50, 0x3, 0xa6, 0x0, 0x6, 0xa8, 0x55, 0x86,
- 0x53, 0x3, 0x40, 0x0, 0x58, 0x16, 0x20, 0x3,
- 0x98, 0x30, 0x6, 0xc7, 0x55, 0x84, 0x64, 0x0,
- 0x0, 0x0, 0x0, 0xa, 0x40, 0x0, 0x7, 0x20,
- 0x16, 0x55, 0x8b, 0x55, 0x55, 0x55, 0x30, 0x0,
- 0x1, 0xb8, 0x55, 0x5d, 0x40, 0x0, 0x0, 0x1a,
- 0x23, 0x42, 0xb4, 0x0, 0x0, 0x3, 0x70, 0x1,
- 0xad, 0x50, 0x0, 0x0, 0x22, 0x4, 0x66, 0x10,
- 0x5b, 0xa8, 0x60, 0x1, 0x30, 0x0, 0x0, 0x0,
- 0x3, 0x0,
-
- /* U+9B5A "魚" */
- 0x0, 0x0, 0x4, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0xd5, 0x0, 0x10, 0x0, 0x0, 0x0, 0xa7,
- 0x55, 0xab, 0x0, 0x0, 0x0, 0x83, 0x0, 0x19,
- 0x0, 0x0, 0x0, 0x7b, 0x55, 0x5a, 0x55, 0x6d,
- 0x1, 0x50, 0xb0, 0x0, 0xc0, 0x2, 0xa0, 0x0,
- 0xb, 0x55, 0x5d, 0x55, 0x7a, 0x0, 0x0, 0xb0,
- 0x0, 0xc0, 0x2, 0xa0, 0x0, 0xb, 0x0, 0xc,
- 0x0, 0x2a, 0x0, 0x0, 0xb5, 0x55, 0x55, 0x56,
- 0x70, 0x0, 0x12, 0x22, 0x4, 0x20, 0x53, 0x0,
- 0xb, 0x0, 0xc0, 0xd, 0x10, 0xc6, 0x9, 0x80,
- 0xb, 0x10, 0x82, 0x2, 0xa0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+9CE5 "鳥" */
- 0x0, 0x0, 0x1, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x7, 0x50, 0x0, 0x0, 0x0, 0x0, 0xa,
- 0x58, 0x55, 0x5b, 0x20, 0x0, 0x0, 0xb, 0x0,
- 0x0, 0xb, 0x0, 0x0, 0x0, 0xc, 0x55, 0x55,
- 0x5c, 0x0, 0x0, 0x0, 0xc, 0x55, 0x55, 0x5c,
- 0x0, 0x0, 0x0, 0xc, 0x55, 0x55, 0x55, 0x56,
- 0xa0, 0x0, 0xb, 0x0, 0x0, 0x0, 0x2, 0x0,
- 0x0, 0xb, 0x55, 0x55, 0x55, 0x5b, 0x50, 0x0,
- 0x11, 0x2, 0x30, 0x73, 0xb, 0x10, 0x0, 0x60,
- 0xa0, 0xa4, 0x1d, 0xc, 0x0, 0x5, 0x80, 0xa1,
- 0x24, 0x13, 0x1c, 0x0, 0x6, 0x10, 0x10, 0x0,
- 0x29, 0xe6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x30, 0x0,
-
- /* U+9E97 "麗" */
- 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x4,
- 0x65, 0x56, 0x64, 0x65, 0x56, 0x40, 0x0, 0xb5,
- 0x5c, 0x10, 0xb5, 0x5b, 0x0, 0x0, 0xb2, 0x5b,
- 0x0, 0xb8, 0x1a, 0x0, 0x0, 0x90, 0x28, 0x56,
- 0x92, 0xa, 0x0, 0x0, 0x96, 0x59, 0x56, 0x95,
- 0x57, 0x50, 0x0, 0x96, 0x5b, 0x65, 0xb5, 0x58,
- 0x10, 0x0, 0x92, 0x9, 0x10, 0x90, 0xa, 0x0,
- 0x0, 0xa6, 0x86, 0x55, 0xa7, 0x59, 0x0, 0x0,
- 0xc0, 0xa1, 0x2, 0x90, 0x18, 0x0, 0x0, 0xa0,
- 0xa5, 0x55, 0x96, 0x74, 0x30, 0x2, 0x60, 0xa1,
- 0x43, 0x90, 0x0, 0x60, 0x7, 0x0, 0xb9, 0x20,
- 0x6b, 0xaa, 0xd1, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+9EBC "麼" */
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x1,
- 0x0, 0x1, 0xc0, 0x0, 0x21, 0x0, 0xc5, 0x56,
- 0x57, 0x56, 0x58, 0x60, 0xb, 0x0, 0xa1, 0x0,
- 0xa2, 0x0, 0x0, 0xb5, 0x6d, 0x74, 0x6d, 0x67,
- 0x40, 0xb, 0x4, 0xf6, 0x14, 0xf6, 0x10, 0x0,
- 0xa2, 0x7a, 0x16, 0x7a, 0x1b, 0x60, 0xa, 0x40,
- 0x81, 0x50, 0x60, 0x12, 0x0, 0x90, 0x3, 0x95,
- 0x5, 0x20, 0x0, 0x27, 0x1b, 0x96, 0x49, 0xa3,
- 0x0, 0x4, 0x30, 0x41, 0x37, 0x20, 0x50, 0x0,
- 0x70, 0x5, 0x75, 0x34, 0x59, 0x70, 0x4, 0x0,
- 0xc9, 0x64, 0x20, 0xa, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+9EC4 "黄" */
- 0x0, 0x0, 0x21, 0x0, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x56, 0x0, 0xb2, 0x1, 0x0, 0x0, 0x65,
- 0x98, 0x55, 0xc5, 0x5a, 0x20, 0x0, 0x0, 0x54,
- 0x0, 0xb0, 0x0, 0x20, 0x26, 0x55, 0x77, 0x75,
- 0x95, 0x56, 0xa1, 0x0, 0x2, 0x0, 0x91, 0x0,
- 0x30, 0x0, 0x0, 0xd, 0x55, 0xb6, 0x55, 0xc2,
- 0x0, 0x0, 0xc, 0x0, 0x91, 0x0, 0xb0, 0x0,
- 0x0, 0xd, 0x55, 0xb6, 0x55, 0xc0, 0x0, 0x0,
- 0xc, 0x0, 0x91, 0x0, 0xb0, 0x0, 0x0, 0xb,
- 0x88, 0x55, 0x96, 0x90, 0x0, 0x0, 0x4, 0xd5,
- 0x0, 0x7, 0xa3, 0x0, 0x0, 0x77, 0x0, 0x0,
- 0x0, 0x3e, 0x20, 0x4, 0x10, 0x0, 0x0, 0x0,
- 0x1, 0x0,
-
- /* U+9ED2 "黒" */
- 0x1, 0x95, 0x55, 0x65, 0x55, 0xa0, 0x0, 0x1a,
- 0x0, 0xb, 0x0, 0xb, 0x0, 0x1, 0xc5, 0x55,
- 0xc5, 0x55, 0xb0, 0x0, 0x1a, 0x0, 0xb, 0x0,
- 0xb, 0x0, 0x1, 0xc5, 0x55, 0xc5, 0x55, 0xb0,
- 0x0, 0x3, 0x0, 0xb, 0x0, 0x2, 0x0, 0x5,
- 0x65, 0x55, 0xc5, 0x55, 0xb2, 0x0, 0x0, 0x0,
- 0xb, 0x0, 0x1, 0x40, 0x46, 0x55, 0x55, 0x85,
- 0x55, 0x79, 0x10, 0x4, 0x6, 0x0, 0x70, 0x8,
- 0x0, 0x4, 0x60, 0x74, 0x8, 0x40, 0x86, 0x0,
- 0xc1, 0x4, 0x30, 0x33, 0x3, 0x50, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+9EDE "點" */
- 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x7,
- 0x57, 0x59, 0x30, 0xd, 0x0, 0x0, 0x9, 0x1a,
- 0x3a, 0x0, 0xb, 0x0, 0x0, 0x9, 0x8a, 0x6a,
- 0x0, 0xc, 0x44, 0x80, 0x9, 0x6c, 0x5b, 0x10,
- 0xb, 0x0, 0x0, 0x6, 0xa, 0x4, 0x0, 0xb,
- 0x0, 0x0, 0x2, 0x3b, 0x38, 0x10, 0xb, 0x0,
- 0x0, 0x2, 0x3b, 0x22, 0x19, 0x5a, 0x5b, 0x20,
- 0x0, 0xa, 0x54, 0x1a, 0x0, 0xb, 0x0, 0xb,
- 0xa5, 0x1, 0xa, 0x0, 0xb, 0x0, 0x2, 0x20,
- 0x62, 0x7a, 0x0, 0xb, 0x0, 0x7, 0x27, 0x71,
- 0x8b, 0x55, 0x5c, 0x0, 0x19, 0x2, 0x0, 0xb,
- 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0,
- 0x0, 0x0,
-
- /* U+9EE8 "黨" */
- 0x0, 0x0, 0x0, 0x5, 0x0, 0x10, 0x0, 0x0,
- 0x6, 0x70, 0xb, 0x6, 0x80, 0x0, 0x0, 0x53,
- 0xa3, 0x3b, 0x38, 0x33, 0x70, 0x3, 0x82, 0x52,
- 0x22, 0x25, 0x26, 0x91, 0x8, 0x10, 0x96, 0x55,
- 0x5c, 0x12, 0x0, 0x0, 0x0, 0x96, 0x55, 0x5a,
- 0x0, 0x0, 0x0, 0x29, 0x65, 0x58, 0x55, 0x6a,
- 0x0, 0x0, 0x29, 0x37, 0xa, 0x19, 0x18, 0x0,
- 0x0, 0x2b, 0x56, 0x5b, 0x65, 0x68, 0x0, 0x0,
- 0x47, 0x55, 0x5b, 0x55, 0x5a, 0x10, 0x4, 0x55,
- 0x55, 0x5b, 0x55, 0x55, 0xb1, 0x1, 0x30, 0x4,
- 0x0, 0x40, 0x4, 0x10, 0x2, 0xa0, 0x2, 0x70,
- 0x35, 0x1, 0x80, 0x2, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+9F13 "鼓" */
- 0x0, 0x0, 0x40, 0x0, 0x2, 0x0, 0x0, 0x0,
- 0x0, 0xd0, 0x0, 0x9, 0x40, 0x0, 0x6, 0x55,
- 0xd5, 0x75, 0x9, 0x20, 0x0, 0x0, 0x0, 0xb0,
- 0x5, 0x5b, 0x65, 0xa0, 0x1, 0x75, 0xb5, 0x91,
- 0x9, 0x20, 0x0, 0x0, 0x10, 0x0, 0x20, 0x9,
- 0x21, 0x10, 0x0, 0xd5, 0x55, 0xd3, 0x86, 0x5b,
- 0x70, 0x0, 0xd0, 0x0, 0xb0, 0x50, 0xc, 0x0,
- 0x0, 0xd5, 0x55, 0xa0, 0x43, 0x66, 0x0, 0x0,
- 0x40, 0x9, 0x10, 0xa, 0xb0, 0x0, 0x0, 0x19,
- 0x9, 0x0, 0xb, 0x90, 0x0, 0x0, 0x15, 0x78,
- 0x53, 0x82, 0x7a, 0x10, 0xc, 0x95, 0x20, 0x36,
- 0x0, 0x6, 0xc1, 0x0, 0x0, 0x1, 0x10, 0x0,
- 0x0, 0x0,
-
- /* U+9F3B "鼻" */
- 0x0, 0x0, 0x3, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x5, 0x5a, 0x65, 0x58, 0x10, 0x0, 0x0, 0xa,
- 0x22, 0x22, 0x2a, 0x0, 0x0, 0x0, 0xa, 0x33,
- 0x33, 0x3a, 0x0, 0x0, 0x0, 0xa, 0x55, 0x55,
- 0x5b, 0x0, 0x0, 0x0, 0x9, 0x55, 0x55, 0x5a,
- 0x0, 0x0, 0x0, 0xa5, 0x55, 0x95, 0x55, 0xc2,
- 0x0, 0x0, 0xa5, 0x55, 0xc5, 0x55, 0xc0, 0x0,
- 0x0, 0xb5, 0x55, 0xc5, 0x55, 0xc0, 0x0, 0x0,
- 0x40, 0x0, 0x0, 0x0, 0x42, 0x40, 0x17, 0x55,
- 0xc6, 0x55, 0xd5, 0x55, 0x40, 0x0, 0x1, 0xa0,
- 0x0, 0xb0, 0x0, 0x0, 0x0, 0x29, 0x10, 0x0,
- 0xb0, 0x0, 0x0, 0x1, 0x30, 0x0, 0x0, 0x30,
- 0x0, 0x0,
-
- /* U+F001 "" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x2, 0x7b, 0xfb, 0x0,
- 0x0, 0x0, 0x4, 0x9d, 0xff, 0xff, 0xd0, 0x0,
- 0x3, 0xaf, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x0,
- 0xaf, 0xff, 0xff, 0xff, 0xdf, 0xd0, 0x0, 0xa,
- 0xff, 0xff, 0xb6, 0x10, 0xed, 0x0, 0x0, 0xaf,
- 0x94, 0x0, 0x0, 0xe, 0xd0, 0x0, 0xa, 0xf1,
- 0x0, 0x0, 0x0, 0xed, 0x0, 0x0, 0xaf, 0x10,
- 0x0, 0x0, 0xe, 0xd0, 0x0, 0xa, 0xf1, 0x0,
- 0x0, 0x45, 0xfd, 0x0, 0x0, 0xaf, 0x10, 0x1,
- 0xef, 0xff, 0xd0, 0x17, 0x9d, 0xf1, 0x0, 0x5f,
- 0xff, 0xfc, 0xe, 0xff, 0xff, 0x10, 0x0, 0xaf,
- 0xfd, 0x31, 0xff, 0xff, 0xe0, 0x0, 0x0, 0x1,
- 0x0, 0x3, 0xbd, 0xa3, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+F008 "" */
- 0x50, 0x18, 0x88, 0x88, 0x88, 0x84, 0x5, 0xfa,
- 0xbf, 0xdd, 0xdd, 0xdd, 0xfd, 0xaf, 0xe4, 0x7f,
- 0x10, 0x0, 0x0, 0xca, 0x4e, 0xe0, 0x4f, 0x10,
- 0x0, 0x0, 0xc8, 0xe, 0xfe, 0xef, 0x10, 0x0,
- 0x0, 0xcf, 0xef, 0xe0, 0x3f, 0xee, 0xee, 0xee,
- 0xf8, 0xe, 0xf6, 0x8f, 0x76, 0x66, 0x66, 0xeb,
- 0x6f, 0xf8, 0xaf, 0x10, 0x0, 0x0, 0xcc, 0x8f,
- 0xe0, 0x3f, 0x10, 0x0, 0x0, 0xc8, 0xe, 0xfc,
- 0xdf, 0x65, 0x55, 0x55, 0xee, 0xcf, 0xc2, 0x5f,
- 0xff, 0xff, 0xff, 0xf9, 0x2c,
-
- /* U+F00B "" */
- 0x57, 0x75, 0x5, 0x77, 0x77, 0x77, 0x75, 0xff,
- 0xff, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x2f, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, 0xe,
- 0xff, 0xff, 0xff, 0xfe, 0x1, 0x10, 0x0, 0x11,
- 0x11, 0x11, 0x10, 0xef, 0xfe, 0xe, 0xff, 0xff,
- 0xff, 0xfe, 0xff, 0xff, 0x2f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xff,
- 0x68, 0x87, 0x7, 0x88, 0x88, 0x88, 0x86, 0x68,
- 0x87, 0x7, 0x88, 0x88, 0x88, 0x86, 0xff, 0xff,
- 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x2f,
- 0xff, 0xff, 0xff, 0xff, 0xdf, 0xfd, 0xd, 0xff,
- 0xff, 0xff, 0xfd,
-
- /* U+F00C "" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x50, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x1d, 0xf8, 0x0, 0x0,
- 0x0, 0x0, 0x1, 0xdf, 0xfd, 0x0, 0x0, 0x0,
- 0x0, 0x1d, 0xff, 0xe2, 0x2d, 0x60, 0x0, 0x1,
- 0xdf, 0xfe, 0x20, 0xdf, 0xf7, 0x0, 0x1d, 0xff,
- 0xe2, 0x0, 0x8f, 0xff, 0x71, 0xdf, 0xfe, 0x20,
- 0x0, 0x8, 0xff, 0xfe, 0xff, 0xe2, 0x0, 0x0,
- 0x0, 0x8f, 0xff, 0xfe, 0x20, 0x0, 0x0, 0x0,
- 0x8, 0xff, 0xe2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x7d, 0x20, 0x0, 0x0, 0x0,
-
- /* U+F00D "" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x60, 0x0,
- 0xb, 0xe2, 0xef, 0xf6, 0x0, 0xbf, 0xf8, 0x4f,
- 0xff, 0x6b, 0xff, 0xd1, 0x4, 0xff, 0xff, 0xfd,
- 0x10, 0x0, 0x5f, 0xff, 0xe1, 0x0, 0x0, 0xbf,
- 0xff, 0xf6, 0x0, 0xb, 0xff, 0xdf, 0xff, 0x60,
- 0xbf, 0xfd, 0x14, 0xff, 0xf5, 0xcf, 0xd1, 0x0,
- 0x4f, 0xf6, 0x17, 0x10, 0x0, 0x3, 0x60,
-
- /* U+F011 "" */
- 0x0, 0x0, 0x0, 0x11, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x6f,
- 0x21, 0xff, 0x12, 0xf7, 0x0, 0x6, 0xff, 0x61,
- 0xff, 0x16, 0xff, 0x60, 0x1f, 0xf9, 0x1, 0xff,
- 0x10, 0x9f, 0xf1, 0x6f, 0xe0, 0x1, 0xff, 0x10,
- 0xe, 0xf6, 0xaf, 0x80, 0x1, 0xff, 0x10, 0x8,
- 0xfa, 0xcf, 0x60, 0x1, 0xff, 0x10, 0x6, 0xfc,
- 0xaf, 0x80, 0x0, 0xaa, 0x0, 0x8, 0xfb, 0x7f,
- 0xd0, 0x0, 0x0, 0x0, 0xd, 0xf7, 0x1f, 0xf8,
- 0x0, 0x0, 0x0, 0x8f, 0xf1, 0x7, 0xff, 0x91,
- 0x0, 0x2a, 0xff, 0x70, 0x0, 0x9f, 0xff, 0xee,
- 0xff, 0xf9, 0x0, 0x0, 0x5, 0xcf, 0xff, 0xfd,
- 0x50, 0x0, 0x0, 0x0, 0x2, 0x44, 0x20, 0x0,
- 0x0,
-
- /* U+F013 "" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa, 0xff, 0xa0, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0xff, 0xc0, 0x0, 0x0, 0x3, 0xd6, 0xdf,
- 0xff, 0xfd, 0x6d, 0x30, 0xe, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xe0, 0x5f, 0xff, 0xff, 0xaa, 0xff,
- 0xff, 0xf5, 0x1a, 0xff, 0xf4, 0x0, 0x4f, 0xff,
- 0xa1, 0x3, 0xff, 0xd0, 0x0, 0xd, 0xff, 0x30,
- 0x4, 0xff, 0xf0, 0x0, 0xf, 0xff, 0x40, 0x4f,
- 0xff, 0xfb, 0x22, 0xbf, 0xff, 0xf4, 0x2f, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf2, 0x9, 0xfe, 0xff,
- 0xff, 0xff, 0xef, 0x90, 0x0, 0x50, 0x5e, 0xff,
- 0xe5, 0x5, 0x0, 0x0, 0x0, 0xc, 0xff, 0xc0,
- 0x0, 0x0, 0x0, 0x0, 0x4, 0x77, 0x40, 0x0,
- 0x0,
-
- /* U+F015 "" */
- 0x0, 0x0, 0x0, 0x3, 0x10, 0x3, 0x41, 0x0,
- 0x0, 0x0, 0x0, 0x9f, 0xf5, 0xd, 0xf5, 0x0,
- 0x0, 0x0, 0x1b, 0xfd, 0xff, 0x8d, 0xf5, 0x0,
- 0x0, 0x2, 0xdf, 0xb1, 0x2d, 0xff, 0xf5, 0x0,
- 0x0, 0x4f, 0xf8, 0x3e, 0xc2, 0xbf, 0xf5, 0x0,
- 0x7, 0xff, 0x55, 0xff, 0xfe, 0x39, 0xfe, 0x40,
- 0x9f, 0xe3, 0x8f, 0xff, 0xff, 0xf5, 0x6f, 0xf6,
- 0xac, 0x2a, 0xff, 0xff, 0xff, 0xff, 0x73, 0xe6,
- 0x0, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xf1, 0x0,
- 0x0, 0x6f, 0xff, 0xd7, 0x7f, 0xff, 0xf2, 0x0,
- 0x0, 0x6f, 0xff, 0x90, 0xd, 0xff, 0xf2, 0x0,
- 0x0, 0x6f, 0xff, 0x90, 0xd, 0xff, 0xf2, 0x0,
- 0x0, 0x4f, 0xff, 0x70, 0xb, 0xff, 0xe1, 0x0,
-
- /* U+F019 "" */
- 0x0, 0x0, 0x0, 0x33, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb, 0xff, 0xb0, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0xff, 0xc0, 0x0, 0x0, 0x0, 0x0, 0xc,
- 0xff, 0xc0, 0x0, 0x0, 0x0, 0x0, 0xc, 0xff,
- 0xc0, 0x0, 0x0, 0x0, 0x0, 0xc, 0xff, 0xc0,
- 0x0, 0x0, 0x0, 0x8f, 0xff, 0xff, 0xff, 0xf8,
- 0x0, 0x0, 0x2e, 0xff, 0xff, 0xff, 0xe2, 0x0,
- 0x0, 0x2, 0xef, 0xff, 0xfe, 0x20, 0x0, 0x0,
- 0x0, 0x2d, 0xff, 0xe2, 0x0, 0x0, 0x79, 0x99,
- 0x82, 0xde, 0x28, 0x99, 0x97, 0xff, 0xff, 0xfb,
- 0x22, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa,
- 0xb3, 0xcf, 0xac, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xca,
-
- /* U+F01C "" */
- 0x0, 0x6, 0xbb, 0xbb, 0xbb, 0xba, 0x30, 0x0,
- 0x0, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xe1, 0x0,
- 0x0, 0xef, 0x30, 0x0, 0x0, 0x6, 0xfb, 0x0,
- 0x9, 0xf8, 0x0, 0x0, 0x0, 0x0, 0xcf, 0x50,
- 0x4f, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x2f, 0xe1,
- 0xdf, 0x84, 0x42, 0x0, 0x0, 0x34, 0x4b, 0xf9,
- 0xff, 0xff, 0xfd, 0x0, 0x1, 0xff, 0xff, 0xfb,
- 0xff, 0xff, 0xff, 0x98, 0x8b, 0xff, 0xff, 0xfc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb,
- 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6,
-
- /* U+F021 "" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x33, 0x0,
- 0x1, 0x8d, 0xff, 0xc6, 0x0, 0xef, 0x0, 0x4e,
- 0xff, 0xff, 0xff, 0xe4, 0xdf, 0x4, 0xff, 0xb3,
- 0x0, 0x4c, 0xff, 0xff, 0xe, 0xf9, 0x0, 0x0,
- 0x0, 0x8f, 0xff, 0x6f, 0xc0, 0x0, 0x1, 0xff,
- 0xff, 0xff, 0x8e, 0x50, 0x0, 0x1, 0xde, 0xee,
- 0xed, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x22, 0x22, 0x22, 0x0, 0x0, 0x0, 0x21, 0xff,
- 0xff, 0xff, 0x10, 0x0, 0x8, 0xf8, 0xff, 0xfb,
- 0xbc, 0x10, 0x0, 0x1e, 0xf4, 0xff, 0xfc, 0x10,
- 0x0, 0x1, 0xdf, 0xc0, 0xfe, 0xef, 0xe8, 0x44,
- 0x8e, 0xfe, 0x10, 0xfe, 0x1a, 0xff, 0xff, 0xff,
- 0xc1, 0x0, 0xfd, 0x0, 0x28, 0xbb, 0x94, 0x0,
- 0x0,
-
- /* U+F026 "" */
- 0x0, 0x0, 0x2, 0x70, 0x0, 0x2, 0xef, 0x0,
- 0x2, 0xef, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0x34, 0x47, 0xff, 0xf0,
- 0x0, 0x5, 0xff, 0x0, 0x0, 0x5, 0xc0, 0x0,
- 0x0, 0x0,
-
- /* U+F027 "" */
- 0x0, 0x0, 0x2, 0x70, 0x0, 0x0, 0x0, 0x2,
- 0xef, 0x0, 0x0, 0x0, 0x2, 0xef, 0xf0, 0x0,
- 0xd, 0xff, 0xff, 0xff, 0x2, 0x20, 0xff, 0xff,
- 0xff, 0xf0, 0x8e, 0x1f, 0xff, 0xff, 0xff, 0x0,
- 0xe7, 0xff, 0xff, 0xff, 0xf0, 0x3f, 0x5f, 0xff,
- 0xff, 0xff, 0x8, 0x90, 0x34, 0x47, 0xff, 0xf0,
- 0x0, 0x0, 0x0, 0x5, 0xff, 0x0, 0x0, 0x0,
- 0x0, 0x5, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+F028 "" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x70, 0x0,
- 0x0, 0x0, 0x2, 0x70, 0x0, 0x5, 0xfa, 0x0,
- 0x0, 0x0, 0x2e, 0xf0, 0x0, 0x81, 0x4f, 0x60,
- 0x0, 0x2, 0xef, 0xf0, 0x1, 0xdd, 0x7, 0xf0,
- 0xdf, 0xff, 0xff, 0xf0, 0x32, 0x1e, 0x80, 0xf6,
- 0xff, 0xff, 0xff, 0xf0, 0x8e, 0x27, 0xe0, 0xb9,
- 0xff, 0xff, 0xff, 0xf0, 0xe, 0x73, 0xf1, 0x9b,
- 0xff, 0xff, 0xff, 0xf0, 0x3f, 0x54, 0xf0, 0x9a,
- 0xff, 0xff, 0xff, 0xf0, 0x89, 0xa, 0xc0, 0xd8,
- 0x34, 0x47, 0xff, 0xf0, 0x0, 0x7f, 0x43, 0xf3,
- 0x0, 0x0, 0x5f, 0xf0, 0x2, 0xf6, 0xc, 0xb0,
- 0x0, 0x0, 0x5, 0xc0, 0x0, 0x0, 0xbf, 0x10,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x9, 0xe3, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x10, 0x0,
-
- /* U+F03E "" */
- 0x37, 0x88, 0x88, 0x88, 0x88, 0x88, 0x73, 0xef,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0x32,
- 0xdf, 0xff, 0xff, 0xff, 0xff, 0xf9, 0x0, 0x7f,
- 0xff, 0xfd, 0xff, 0xff, 0xfd, 0x10, 0xcf, 0xff,
- 0xa0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x0,
- 0x7, 0xff, 0xff, 0xf3, 0x5f, 0xa0, 0x0, 0x0,
- 0xcf, 0xff, 0x30, 0x3, 0x0, 0x0, 0x0, 0xcf,
- 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0xcf, 0xff,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xff, 0xaf, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf9,
-
- /* U+F043 "" */
- 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x1, 0xfa,
- 0x0, 0x0, 0x0, 0x6, 0xff, 0x10, 0x0, 0x0,
- 0xd, 0xff, 0x70, 0x0, 0x0, 0x6f, 0xff, 0xf1,
- 0x0, 0x1, 0xef, 0xff, 0xfa, 0x0, 0xb, 0xff,
- 0xff, 0xff, 0x60, 0x5f, 0xff, 0xff, 0xff, 0xe0,
- 0xcf, 0xff, 0xff, 0xff, 0xf6, 0xfe, 0xbf, 0xff,
- 0xff, 0xf9, 0xfd, 0x4f, 0xff, 0xff, 0xf9, 0xbf,
- 0x49, 0xff, 0xff, 0xf5, 0x3f, 0xe5, 0x2e, 0xff,
- 0xd0, 0x6, 0xff, 0xff, 0xfd, 0x20, 0x0, 0x28,
- 0xba, 0x60, 0x0,
-
- /* U+F048 "" */
- 0x4, 0x30, 0x0, 0x0, 0x31, 0x1f, 0xe0, 0x0,
- 0x6, 0xf9, 0x1f, 0xe0, 0x0, 0x7f, 0xfa, 0x1f,
- 0xe0, 0x9, 0xff, 0xfa, 0x1f, 0xe0, 0xaf, 0xff,
- 0xfa, 0x1f, 0xeb, 0xff, 0xff, 0xfa, 0x1f, 0xff,
- 0xff, 0xff, 0xfa, 0x1f, 0xff, 0xff, 0xff, 0xfa,
- 0x1f, 0xe6, 0xff, 0xff, 0xfa, 0x1f, 0xe0, 0x5f,
- 0xff, 0xfa, 0x1f, 0xe0, 0x4, 0xff, 0xfa, 0x1f,
- 0xe0, 0x0, 0x3e, 0xfa, 0xf, 0xd0, 0x0, 0x2,
- 0xd7, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+F04B "" */
- 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0xfb,
- 0x20, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, 0x90,
- 0x0, 0x0, 0x0, 0xf, 0xff, 0xff, 0xe6, 0x0,
- 0x0, 0x0, 0xff, 0xff, 0xff, 0xfc, 0x30, 0x0,
- 0xf, 0xff, 0xff, 0xff, 0xff, 0x91, 0x0, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xe6, 0xf, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xf2, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xfd, 0xf, 0xff, 0xff, 0xff, 0xff, 0xf8,
- 0x0, 0xff, 0xff, 0xff, 0xff, 0xb2, 0x0, 0xf,
- 0xff, 0xff, 0xfd, 0x40, 0x0, 0x0, 0xff, 0xff,
- 0xf7, 0x0, 0x0, 0x0, 0xf, 0xff, 0xa1, 0x0,
- 0x0, 0x0, 0x0, 0x6a, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+F04C "" */
- 0x14, 0x44, 0x20, 0x1, 0x44, 0x42, 0xd, 0xff,
- 0xff, 0x10, 0xdf, 0xff, 0xf1, 0xff, 0xff, 0xf3,
- 0xf, 0xff, 0xff, 0x3f, 0xff, 0xff, 0x40, 0xff,
- 0xff, 0xf4, 0xff, 0xff, 0xf4, 0xf, 0xff, 0xff,
- 0x4f, 0xff, 0xff, 0x40, 0xff, 0xff, 0xf4, 0xff,
- 0xff, 0xf4, 0xf, 0xff, 0xff, 0x4f, 0xff, 0xff,
- 0x40, 0xff, 0xff, 0xf4, 0xff, 0xff, 0xf4, 0xf,
- 0xff, 0xff, 0x4f, 0xff, 0xff, 0x40, 0xff, 0xff,
- 0xf4, 0xff, 0xff, 0xf4, 0xf, 0xff, 0xff, 0x4f,
- 0xff, 0xff, 0x30, 0xff, 0xff, 0xf3, 0x9f, 0xff,
- 0xc0, 0x9, 0xff, 0xfc, 0x0,
-
- /* U+F04D "" */
- 0x14, 0x44, 0x44, 0x44, 0x44, 0x42, 0xd, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xf4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x4f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf4, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x4f, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xf4, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xf4, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x4f,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0x9f, 0xff,
- 0xff, 0xff, 0xff, 0xfc, 0x0,
-
- /* U+F051 "" */
- 0x2, 0x10, 0x0, 0x0, 0x42, 0xf, 0xe2, 0x0,
- 0x3, 0xfb, 0xf, 0xfe, 0x30, 0x4, 0xfb, 0xf,
- 0xff, 0xf4, 0x4, 0xfb, 0xf, 0xff, 0xff, 0x54,
- 0xfb, 0xf, 0xff, 0xff, 0xfa, 0xfb, 0xf, 0xff,
- 0xff, 0xff, 0xfb, 0xf, 0xff, 0xff, 0xff, 0xfb,
- 0xf, 0xff, 0xff, 0xd6, 0xfb, 0xf, 0xff, 0xfd,
- 0x14, 0xfb, 0xf, 0xff, 0xc1, 0x4, 0xfb, 0xf,
- 0xfb, 0x0, 0x4, 0xfb, 0xc, 0xa0, 0x0, 0x3,
- 0xfa, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+F052 "" */
- 0x0, 0x0, 0x0, 0x12, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x3, 0xff, 0x60, 0x0, 0x0, 0x0, 0x0,
- 0x2e, 0xff, 0xf5, 0x0, 0x0, 0x0, 0x1, 0xef,
- 0xff, 0xff, 0x40, 0x0, 0x0, 0x1d, 0xff, 0xff,
- 0xff, 0xf3, 0x0, 0x0, 0xcf, 0xff, 0xff, 0xff,
- 0xfe, 0x20, 0xa, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xe0, 0xe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf2,
- 0x3, 0x99, 0x99, 0x99, 0x99, 0x99, 0x50, 0x5,
- 0x88, 0x88, 0x88, 0x88, 0x88, 0x70, 0xf, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf3, 0xf, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xf4, 0xb, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xd1,
-
- /* U+F053 "" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f,
- 0x90, 0x0, 0x0, 0x3f, 0xfc, 0x0, 0x0, 0x3f,
- 0xfd, 0x10, 0x0, 0x3f, 0xfd, 0x10, 0x0, 0x3f,
- 0xfd, 0x10, 0x0, 0x1f, 0xfd, 0x10, 0x0, 0x0,
- 0xcf, 0xf4, 0x0, 0x0, 0x0, 0xcf, 0xf4, 0x0,
- 0x0, 0x0, 0xcf, 0xf4, 0x0, 0x0, 0x0, 0xcf,
- 0xf4, 0x0, 0x0, 0x0, 0xcf, 0xe0, 0x0, 0x0,
- 0x0, 0xa4, 0x0,
-
- /* U+F054 "" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xcd, 0x10, 0x0,
- 0x0, 0x1f, 0xfd, 0x10, 0x0, 0x0, 0x3f, 0xfd,
- 0x10, 0x0, 0x0, 0x3f, 0xfd, 0x10, 0x0, 0x0,
- 0x3f, 0xfd, 0x10, 0x0, 0x0, 0x3f, 0xfd, 0x0,
- 0x0, 0x8, 0xff, 0x90, 0x0, 0x8, 0xff, 0x90,
- 0x0, 0x8, 0xff, 0x90, 0x0, 0x8, 0xff, 0x90,
- 0x0, 0x2, 0xff, 0x90, 0x0, 0x0, 0x7, 0x80,
- 0x0, 0x0, 0x0,
-
- /* U+F067 "" */
- 0x0, 0x0, 0x4, 0x50, 0x0, 0x0, 0x0, 0x0,
- 0x2, 0xff, 0x60, 0x0, 0x0, 0x0, 0x0, 0x3f,
- 0xf7, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0x70,
- 0x0, 0x0, 0x0, 0x0, 0x3f, 0xf7, 0x0, 0x0,
- 0x6, 0x99, 0x9a, 0xff, 0xc9, 0x99, 0x80, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x3d, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xf2, 0x1, 0x11, 0x3f, 0xf7,
- 0x11, 0x10, 0x0, 0x0, 0x3, 0xff, 0x70, 0x0,
- 0x0, 0x0, 0x0, 0x3f, 0xf7, 0x0, 0x0, 0x0,
- 0x0, 0x3, 0xff, 0x70, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0xd3, 0x0, 0x0, 0x0,
-
- /* U+F068 "" */
- 0x69, 0x99, 0x99, 0x99, 0x99, 0x98, 0xf, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf3, 0xdf, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+F06E "" */
- 0x0, 0x0, 0x1, 0x56, 0x64, 0x0, 0x0, 0x0,
- 0x0, 0x3, 0xbf, 0xfe, 0xef, 0xf9, 0x10, 0x0,
- 0x0, 0x7f, 0xfa, 0x10, 0x3, 0xdf, 0xe4, 0x0,
- 0x8, 0xff, 0xa0, 0x9, 0xb4, 0x1e, 0xff, 0x50,
- 0x4f, 0xff, 0x20, 0xb, 0xff, 0x26, 0xff, 0xe1,
- 0xef, 0xff, 0x9, 0xcf, 0xff, 0x63, 0xff, 0xfa,
- 0xbf, 0xff, 0x9, 0xff, 0xff, 0x54, 0xff, 0xf6,
- 0x1e, 0xff, 0x51, 0xdf, 0xfb, 0x9, 0xff, 0xb0,
- 0x3, 0xef, 0xe2, 0x4, 0x30, 0x5f, 0xfc, 0x10,
- 0x0, 0x2c, 0xff, 0x95, 0x6a, 0xff, 0x90, 0x0,
- 0x0, 0x0, 0x49, 0xdf, 0xfd, 0x92, 0x0, 0x0,
-
- /* U+F070 "" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xcd, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x8f, 0xf5, 0x0, 0x14, 0x66, 0x40,
- 0x0, 0x0, 0x0, 0x4, 0xef, 0xac, 0xff, 0xef,
- 0xff, 0x91, 0x0, 0x0, 0x0, 0x1c, 0xff, 0xa1,
- 0x0, 0x4d, 0xfe, 0x30, 0x0, 0x0, 0x0, 0x9f,
- 0xf5, 0xab, 0x31, 0xef, 0xf4, 0x0, 0x7, 0xb1,
- 0x5, 0xff, 0xff, 0xe1, 0x7f, 0xfe, 0x10, 0xf,
- 0xfe, 0x30, 0x2d, 0xff, 0xf5, 0x4f, 0xff, 0x90,
- 0xc, 0xff, 0xe0, 0x0, 0xaf, 0xf6, 0x5f, 0xff,
- 0x60, 0x2, 0xff, 0xf4, 0x0, 0x6, 0xff, 0xef,
- 0xfb, 0x0, 0x0, 0x4f, 0xfd, 0x10, 0x0, 0x3e,
- 0xff, 0xc0, 0x0, 0x0, 0x2, 0xdf, 0xe8, 0x54,
- 0x1, 0xbf, 0xe3, 0x0, 0x0, 0x0, 0x5, 0xae,
- 0xff, 0x60, 0x7, 0xff, 0x60, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x4e, 0xf6, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xa1,
-
- /* U+F071 "" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x3e, 0xd0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xc, 0xff, 0x80, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x6, 0xff, 0xff, 0x20,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xef, 0xff, 0xfb,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x8f, 0xfc, 0xcf,
- 0xf4, 0x0, 0x0, 0x0, 0x0, 0x2f, 0xfb, 0x0,
- 0xff, 0xd0, 0x0, 0x0, 0x0, 0xb, 0xff, 0xc0,
- 0xf, 0xff, 0x70, 0x0, 0x0, 0x4, 0xff, 0xfd,
- 0x1, 0xff, 0xff, 0x10, 0x0, 0x0, 0xdf, 0xff,
- 0xe0, 0x2f, 0xff, 0xfa, 0x0, 0x0, 0x7f, 0xff,
- 0xff, 0x9b, 0xff, 0xff, 0xf3, 0x0, 0x1f, 0xff,
- 0xff, 0xb0, 0xe, 0xff, 0xff, 0xc0, 0xa, 0xff,
- 0xff, 0xfe, 0x24, 0xff, 0xff, 0xff, 0x60, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x6,
- 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcb, 0x30,
-
- /* U+F074 "" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x36, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x7f, 0x80, 0xdd, 0xdb,
- 0x0, 0x0, 0x8d, 0xef, 0xf8, 0xff, 0xff, 0xb0,
- 0x7, 0xff, 0xff, 0xfd, 0x55, 0x6f, 0xf4, 0x6f,
- 0xf8, 0xaf, 0xe2, 0x0, 0x5, 0x74, 0xff, 0x90,
- 0x7e, 0x20, 0x0, 0x0, 0x3f, 0xfa, 0x0, 0x0,
- 0x0, 0x0, 0x2, 0xef, 0xb2, 0x50, 0x4a, 0x0,
- 0x1, 0x2e, 0xfd, 0x1d, 0xf4, 0x8f, 0xb0, 0xff,
- 0xff, 0xd1, 0xb, 0xff, 0xff, 0xfb, 0xff, 0xfe,
- 0x20, 0x0, 0xcf, 0xff, 0xfb, 0x12, 0x21, 0x0,
- 0x0, 0x2, 0x9f, 0xc0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x5b, 0x0,
-
- /* U+F077 "" */
- 0x0, 0x0, 0x7, 0xa0, 0x0, 0x0, 0x0, 0x0,
- 0x8, 0xff, 0xb0, 0x0, 0x0, 0x0, 0x8, 0xff,
- 0xff, 0xb0, 0x0, 0x0, 0x8, 0xff, 0x95, 0xff,
- 0xb0, 0x0, 0x8, 0xff, 0x90, 0x5, 0xff, 0xb0,
- 0x7, 0xff, 0x90, 0x0, 0x5, 0xff, 0xb0, 0x9f,
- 0x90, 0x0, 0x0, 0x5, 0xfd, 0x0, 0x40, 0x0,
- 0x0, 0x0, 0x3, 0x10,
-
- /* U+F078 "" */
- 0x4c, 0x20, 0x0, 0x0, 0x0, 0xb6, 0xb, 0xfe,
- 0x20, 0x0, 0x0, 0xcf, 0xf0, 0x2e, 0xfe, 0x20,
- 0x0, 0xcf, 0xf4, 0x0, 0x2e, 0xfe, 0x20, 0xcf,
- 0xf4, 0x0, 0x0, 0x2e, 0xfe, 0xcf, 0xf4, 0x0,
- 0x0, 0x0, 0x2e, 0xff, 0xf4, 0x0, 0x0, 0x0,
- 0x0, 0x2e, 0xf4, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x13, 0x0, 0x0, 0x0,
-
- /* U+F079 "" */
- 0x0, 0x8, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xbf, 0xf3, 0x8, 0xbb, 0xbb, 0xbb,
- 0x90, 0x0, 0xb, 0xff, 0xff, 0x39, 0xff, 0xff,
- 0xff, 0xf1, 0x0, 0x8f, 0xcf, 0xcf, 0xf0, 0x0,
- 0x0, 0xa, 0xf1, 0x0, 0x38, 0x2f, 0x94, 0x80,
- 0x0, 0x0, 0xa, 0xf1, 0x0, 0x0, 0x2f, 0x90,
- 0x0, 0x0, 0x0, 0xa, 0xf1, 0x0, 0x0, 0x2f,
- 0x90, 0x0, 0x0, 0x3, 0xa, 0xf1, 0x30, 0x0,
- 0x2f, 0x90, 0x0, 0x0, 0x1f, 0xcb, 0xf8, 0xf8,
- 0x0, 0x2f, 0xeb, 0xbb, 0xbb, 0x39, 0xff, 0xff,
- 0xe2, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xb0, 0x9f,
- 0xfd, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x8, 0xd1, 0x0,
-
- /* U+F07B "" */
- 0x37, 0x88, 0x87, 0x0, 0x0, 0x0, 0x0, 0xef,
- 0xff, 0xff, 0xa0, 0x0, 0x0, 0x0, 0xff, 0xff,
- 0xff, 0xfd, 0xcc, 0xcc, 0xb6, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf9,
-
- /* U+F093 "" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0xdd, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x1d, 0xff, 0xd1, 0x0, 0x0, 0x0, 0x1, 0xdf,
- 0xff, 0xfd, 0x10, 0x0, 0x0, 0x1d, 0xff, 0xff,
- 0xff, 0xd1, 0x0, 0x0, 0x9f, 0xff, 0xff, 0xff,
- 0xf9, 0x0, 0x0, 0x1, 0x1c, 0xff, 0xc1, 0x10,
- 0x0, 0x0, 0x0, 0xc, 0xff, 0xc0, 0x0, 0x0,
- 0x0, 0x0, 0xc, 0xff, 0xc0, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0xff, 0xc0, 0x0, 0x0, 0x79, 0x99,
- 0x3b, 0xff, 0xb3, 0x99, 0x97, 0xff, 0xff, 0xb2,
- 0x44, 0x2b, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xdd,
- 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa,
- 0xb3, 0xcf, 0xac, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xca,
-
- /* U+F095 "" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x4, 0xff, 0xc7, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xaf, 0xff, 0xf0, 0x0,
- 0x0, 0x0, 0x0, 0x1f, 0xff, 0xfd, 0x0, 0x0,
- 0x0, 0x0, 0x6, 0xff, 0xff, 0xc0, 0x0, 0x0,
- 0x0, 0x0, 0x8, 0xff, 0xf7, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc, 0xff, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x4, 0xff, 0xc0, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0xef, 0xf3, 0x0, 0x0, 0x4a, 0x30, 0x2,
- 0xdf, 0xf8, 0x0, 0x5, 0xdf, 0xfe, 0x15, 0xef,
- 0xfb, 0x0, 0x0, 0xef, 0xff, 0xff, 0xff, 0xfa,
- 0x0, 0x0, 0xb, 0xff, 0xff, 0xff, 0xf7, 0x0,
- 0x0, 0x0, 0x7f, 0xff, 0xff, 0xa2, 0x0, 0x0,
- 0x0, 0x2, 0xba, 0x85, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+F0C4 "" */
- 0x4, 0x86, 0x0, 0x0, 0x0, 0x10, 0x6, 0xff,
- 0xfa, 0x0, 0x2, 0xdf, 0xd1, 0xef, 0x3c, 0xf1,
- 0x1, 0xdf, 0xfa, 0xe, 0xe0, 0xaf, 0x21, 0xdf,
- 0xfa, 0x0, 0x9f, 0xef, 0xf6, 0xdf, 0xfa, 0x0,
- 0x0, 0x8d, 0xff, 0xff, 0xfb, 0x0, 0x0, 0x0,
- 0x6, 0xff, 0xfd, 0x0, 0x0, 0x0, 0x48, 0xef,
- 0xff, 0xf6, 0x0, 0x0, 0x6f, 0xff, 0xfb, 0xff,
- 0xf6, 0x0, 0xe, 0xf3, 0xcf, 0x23, 0xff, 0xf6,
- 0x0, 0xee, 0xa, 0xf2, 0x4, 0xff, 0xf6, 0x9,
- 0xfe, 0xfc, 0x0, 0x4, 0xff, 0xf1, 0x8, 0xda,
- 0x10, 0x0, 0x2, 0x62, 0x0,
-
- /* U+F0C5 "" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x6f, 0xff, 0xf9, 0x87, 0x0, 0x0, 0x8, 0xff,
- 0xff, 0x98, 0xf7, 0x8, 0xa6, 0x8f, 0xff, 0xf9,
- 0x59, 0x90, 0xff, 0xa8, 0xff, 0xff, 0xfc, 0xcc,
- 0xf, 0xfa, 0x8f, 0xff, 0xff, 0xff, 0xf1, 0xff,
- 0xa8, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xfa, 0x8f,
- 0xff, 0xff, 0xff, 0xf1, 0xff, 0xa8, 0xff, 0xff,
- 0xff, 0xff, 0x1f, 0xfa, 0x8f, 0xff, 0xff, 0xff,
- 0xf1, 0xff, 0xa8, 0xff, 0xff, 0xff, 0xff, 0x1f,
- 0xfa, 0x7f, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xe3,
- 0x12, 0x22, 0x22, 0x21, 0xf, 0xff, 0xff, 0xff,
- 0xf9, 0x0, 0x0, 0xac, 0xcc, 0xcc, 0xcb, 0x50,
- 0x0, 0x0,
-
- /* U+F0C7 "" */
- 0x49, 0x99, 0x99, 0x99, 0x95, 0x0, 0xe, 0xff,
- 0xff, 0xff, 0xff, 0xf6, 0x0, 0xfd, 0x22, 0x22,
- 0x22, 0x4f, 0xf6, 0xf, 0xc0, 0x0, 0x0, 0x1,
- 0xff, 0xf3, 0xfc, 0x0, 0x0, 0x0, 0x1f, 0xff,
- 0x6f, 0xc0, 0x0, 0x0, 0x2, 0xff, 0xf6, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x6f, 0xff, 0xff,
- 0xdc, 0xff, 0xff, 0xf6, 0xff, 0xff, 0xb0, 0x5,
- 0xff, 0xff, 0x6f, 0xff, 0xf6, 0x0, 0xf, 0xff,
- 0xf6, 0xff, 0xff, 0xc0, 0x6, 0xff, 0xff, 0x6f,
- 0xff, 0xff, 0xed, 0xff, 0xff, 0xf6, 0x9f, 0xff,
- 0xff, 0xff, 0xff, 0xfd, 0x10,
-
- /* U+F0C9 "" */
- 0xcd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0x2f, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf3, 0x12, 0x22, 0x22,
- 0x22, 0x22, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf3, 0xde,
- 0xee, 0xee, 0xee, 0xee, 0xee, 0x20, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0xee, 0xee, 0xee, 0xee, 0xee,
- 0xe2, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x30,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+F0E0 "" */
- 0x37, 0x88, 0x88, 0x88, 0x88, 0x88, 0x73, 0xef,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xef, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0x1c, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xc1, 0xd2, 0x8f, 0xff, 0xff,
- 0xff, 0xf8, 0x2d, 0xff, 0x64, 0xef, 0xff, 0xfe,
- 0x45, 0xff, 0xff, 0xfa, 0x2b, 0xff, 0xb2, 0xaf,
- 0xff, 0xff, 0xff, 0xd3, 0x55, 0x3d, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xbb, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf9,
-
- /* U+F0E7 "" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xff, 0xff,
- 0xf0, 0x0, 0x4, 0xff, 0xff, 0xd0, 0x0, 0x6,
- 0xff, 0xff, 0x80, 0x0, 0x8, 0xff, 0xff, 0x30,
- 0x0, 0xa, 0xff, 0xff, 0xaa, 0xa6, 0xc, 0xff,
- 0xff, 0xff, 0xf8, 0xe, 0xff, 0xff, 0xff, 0xe1,
- 0xb, 0xdd, 0xdf, 0xff, 0x60, 0x0, 0x0, 0x4f,
- 0xfd, 0x0, 0x0, 0x0, 0x7f, 0xf3, 0x0, 0x0,
- 0x0, 0xbf, 0xa0, 0x0, 0x0, 0x0, 0xff, 0x10,
- 0x0, 0x0, 0x3, 0xf8, 0x0, 0x0, 0x0, 0x3,
- 0xc0, 0x0, 0x0,
-
- /* U+F0EA "" */
- 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x4, 0x55,
- 0xef, 0xb5, 0x52, 0x0, 0x0, 0xff, 0xfd, 0x1f,
- 0xff, 0xb0, 0x0, 0xf, 0xff, 0xff, 0xff, 0xfc,
- 0x0, 0x0, 0xff, 0xff, 0x53, 0x33, 0x20, 0x0,
- 0xf, 0xff, 0x97, 0xff, 0xfb, 0x57, 0x0, 0xff,
- 0xf8, 0xaf, 0xff, 0xc6, 0xf8, 0xf, 0xff, 0x8a,
- 0xff, 0xfc, 0x4a, 0xa1, 0xff, 0xf8, 0xaf, 0xff,
- 0xe3, 0x22, 0xf, 0xff, 0x8a, 0xff, 0xff, 0xff,
- 0xf4, 0xff, 0xf8, 0xaf, 0xff, 0xff, 0xff, 0x4f,
- 0xff, 0x8a, 0xff, 0xff, 0xff, 0xf4, 0x35, 0x52,
- 0xaf, 0xff, 0xff, 0xff, 0x40, 0x0, 0xa, 0xff,
- 0xff, 0xff, 0xf4, 0x0, 0x0, 0x7f, 0xff, 0xff,
- 0xfe, 0x20,
-
- /* U+F0F3 "" */
- 0x0, 0x0, 0x1, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xaf, 0x0, 0x0, 0x0, 0x0, 0x1, 0x8f,
- 0xfa, 0x30, 0x0, 0x0, 0x2, 0xef, 0xff, 0xff,
- 0x50, 0x0, 0x0, 0xbf, 0xff, 0xff, 0xff, 0x10,
- 0x0, 0x1f, 0xff, 0xff, 0xff, 0xf5, 0x0, 0x3,
- 0xff, 0xff, 0xff, 0xff, 0x70, 0x0, 0x5f, 0xff,
- 0xff, 0xff, 0xf9, 0x0, 0x8, 0xff, 0xff, 0xff,
- 0xff, 0xc0, 0x0, 0xdf, 0xff, 0xff, 0xff, 0xff,
- 0x20, 0x9f, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xe,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xf2, 0x2, 0x22,
- 0x22, 0x22, 0x22, 0x21, 0x0, 0x0, 0x8, 0xff,
- 0xc0, 0x0, 0x0, 0x0, 0x0, 0x9, 0xa2, 0x0,
- 0x0, 0x0,
-
- /* U+F11C "" */
- 0x5b, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xa3,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfb,
- 0xfc, 0xc, 0x30, 0xe1, 0x1d, 0xd, 0x11, 0xfc,
- 0xfc, 0xb, 0x30, 0xe0, 0x1d, 0xd, 0x10, 0xfc,
- 0xff, 0xfe, 0xff, 0xef, 0xfe, 0xfe, 0xef, 0xfc,
- 0xff, 0xf1, 0x5a, 0x8, 0x70, 0xa0, 0x5f, 0xfc,
- 0xff, 0xf3, 0x7b, 0x29, 0x92, 0xc2, 0x7f, 0xfc,
- 0xff, 0xbf, 0xcb, 0xbb, 0xbb, 0xbf, 0xcb, 0xfc,
- 0xfc, 0xb, 0x20, 0x0, 0x0, 0xd, 0x0, 0xfc,
- 0xff, 0xcf, 0xcc, 0xcc, 0xcc, 0xcf, 0xcc, 0xfb,
- 0x9f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf6,
-
- /* U+F124 "" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0xdf, 0xb0,
- 0x0, 0x0, 0x0, 0x0, 0x7, 0xef, 0xff, 0xd0,
- 0x0, 0x0, 0x0, 0x18, 0xff, 0xff, 0xff, 0x70,
- 0x0, 0x0, 0x29, 0xff, 0xff, 0xff, 0xff, 0x0,
- 0x0, 0x3b, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0,
- 0xa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf1, 0x0,
- 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xa0, 0x0,
- 0x4, 0x9a, 0xaa, 0xaf, 0xff, 0xff, 0x20, 0x0,
- 0x0, 0x0, 0x0, 0xe, 0xff, 0xfb, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe, 0xff, 0xf4, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe, 0xff, 0xc0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe, 0xff, 0x50, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0xfd, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x4, 0xb3, 0x0, 0x0, 0x0,
-
- /* U+F15B "" */
- 0x35, 0x55, 0x55, 0x2, 0x0, 0xf, 0xff, 0xff,
- 0xf2, 0xf4, 0x0, 0xff, 0xff, 0xff, 0x2f, 0xf4,
- 0xf, 0xff, 0xff, 0xf2, 0xff, 0xf3, 0xff, 0xff,
- 0xff, 0x32, 0x22, 0x1f, 0xff, 0xff, 0xff, 0xff,
- 0xf7, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xff,
- 0xff, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff,
- 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x8f,
- 0xff, 0xff, 0xff, 0xff, 0xf8, 0x8a, 0xaa, 0xaa,
- 0xaa, 0xaa, 0x30,
-
- /* U+F1EB "" */
- 0x0, 0x0, 0x0, 0x24, 0x55, 0x31, 0x0, 0x0,
- 0x0, 0x0, 0x3, 0xaf, 0xff, 0xff, 0xff, 0xc7,
- 0x0, 0x0, 0x2, 0xbf, 0xff, 0xfe, 0xde, 0xff,
- 0xff, 0xf6, 0x0, 0x5f, 0xff, 0xb5, 0x10, 0x0,
- 0x3, 0x8e, 0xff, 0xb0, 0xdf, 0xd3, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x8f, 0xf5, 0x18, 0x0, 0x5,
- 0xae, 0xfe, 0xc8, 0x10, 0x4, 0x60, 0x0, 0x2,
- 0xdf, 0xff, 0xff, 0xff, 0xf8, 0x0, 0x0, 0x0,
- 0xc, 0xff, 0x95, 0x34, 0x7d, 0xff, 0x40, 0x0,
- 0x0, 0x2, 0xa2, 0x0, 0x0, 0x0, 0x77, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x2, 0x96, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0xff, 0x50,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe, 0xff,
- 0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5,
- 0xda, 0x0, 0x0, 0x0, 0x0,
-
- /* U+F240 "" */
- 0x5b, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xba,
- 0x20, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0x90, 0xfc, 0x12, 0x22, 0x22, 0x22, 0x22,
- 0x22, 0xf, 0xf7, 0xfc, 0x5f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0x2c, 0xfa, 0xfc, 0x5f, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0x21, 0xfa, 0xfc, 0x5f, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0x27, 0xfa, 0xfc, 0x26,
- 0x66, 0x66, 0x66, 0x66, 0x66, 0x1f, 0xfa, 0xfe,
- 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbf, 0xb1,
- 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+F241 "" */
- 0x5b, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xba,
- 0x20, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0x90, 0xfc, 0x12, 0x22, 0x22, 0x22, 0x21,
- 0x0, 0xf, 0xf7, 0xfc, 0x5f, 0xff, 0xff, 0xff,
- 0xf8, 0x0, 0xc, 0xfa, 0xfc, 0x5f, 0xff, 0xff,
- 0xff, 0xf8, 0x0, 0x1, 0xfa, 0xfc, 0x5f, 0xff,
- 0xff, 0xff, 0xf8, 0x0, 0x7, 0xfa, 0xfc, 0x26,
- 0x66, 0x66, 0x66, 0x63, 0x0, 0xf, 0xfa, 0xfe,
- 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbf, 0xb1,
- 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+F242 "" */
- 0x5b, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xba,
- 0x20, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0x90, 0xfc, 0x12, 0x22, 0x22, 0x10, 0x0,
- 0x0, 0xf, 0xf7, 0xfc, 0x5f, 0xff, 0xff, 0xd0,
- 0x0, 0x0, 0xc, 0xfa, 0xfc, 0x5f, 0xff, 0xff,
- 0xd0, 0x0, 0x0, 0x1, 0xfa, 0xfc, 0x5f, 0xff,
- 0xff, 0xd0, 0x0, 0x0, 0x7, 0xfa, 0xfc, 0x26,
- 0x66, 0x66, 0x50, 0x0, 0x0, 0xf, 0xfa, 0xfe,
- 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbf, 0xb1,
- 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+F243 "" */
- 0x5b, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xba,
- 0x20, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0x90, 0xfc, 0x12, 0x22, 0x0, 0x0, 0x0,
- 0x0, 0xf, 0xf7, 0xfc, 0x5f, 0xff, 0x30, 0x0,
- 0x0, 0x0, 0xc, 0xfa, 0xfc, 0x5f, 0xff, 0x30,
- 0x0, 0x0, 0x0, 0x1, 0xfa, 0xfc, 0x5f, 0xff,
- 0x30, 0x0, 0x0, 0x0, 0x7, 0xfa, 0xfc, 0x26,
- 0x66, 0x10, 0x0, 0x0, 0x0, 0xf, 0xfa, 0xfe,
- 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbf, 0xb1,
- 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+F244 "" */
- 0x5b, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xba,
- 0x20, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0x90, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xf, 0xf7, 0xfc, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc, 0xfa, 0xfc, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1, 0xfa, 0xfc, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x7, 0xfa, 0xfc, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xfa, 0xfe,
- 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbf, 0xb1,
- 0xaf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+F287 "" */
- 0x0, 0x0, 0x0, 0x0, 0x7, 0xb2, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xa, 0xdf, 0xfa, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xa9, 0x3d, 0xf5,
- 0x0, 0x0, 0x0, 0x4, 0x40, 0x2, 0xe0, 0x0,
- 0x10, 0x0, 0x0, 0x0, 0xaf, 0xf8, 0xb, 0x60,
- 0x0, 0x0, 0x0, 0x6c, 0x30, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xf4, 0xaf, 0xf9,
- 0x0, 0xc, 0x50, 0x0, 0x0, 0x6d, 0x40, 0x5,
- 0x50, 0x0, 0x4, 0xc0, 0x0, 0x0, 0x10, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xc4, 0x3e, 0xe8, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x2e, 0xef, 0xfa,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4f,
- 0xfa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0,
-
- /* U+F293 "" */
- 0x0, 0x0, 0x1, 0x10, 0x0, 0x0, 0x0, 0x7,
- 0xef, 0xff, 0xb3, 0x0, 0x0, 0xaf, 0xfd, 0x8f,
- 0xff, 0x20, 0x4, 0xff, 0xfd, 0x9, 0xff, 0xb0,
- 0xa, 0xfe, 0xfd, 0x12, 0xaf, 0xf0, 0xe, 0xf5,
- 0x5d, 0x2c, 0xe, 0xf3, 0xf, 0xff, 0x33, 0x12,
- 0x9f, 0xf5, 0xf, 0xff, 0xf3, 0x7, 0xff, 0xf6,
- 0xf, 0xff, 0xe2, 0x6, 0xff, 0xf6, 0xf, 0xfe,
- 0x24, 0x13, 0x7f, 0xf5, 0xd, 0xf5, 0x7d, 0x2c,
- 0xd, 0xf3, 0xa, 0xff, 0xfd, 0x11, 0xbf, 0xf0,
- 0x3, 0xff, 0xfe, 0xb, 0xff, 0xa0, 0x0, 0x7f,
- 0xfe, 0xbf, 0xfe, 0x10, 0x0, 0x3, 0xac, 0xdc,
- 0x81, 0x0,
-
- /* U+F2ED "" */
- 0x0, 0x0, 0x34, 0x43, 0x0, 0x0, 0x5, 0x66,
- 0x7f, 0xff, 0xf9, 0x66, 0x50, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0x35, 0x66, 0x66, 0x66, 0x66,
- 0x66, 0x50, 0x1c, 0xcc, 0xcc, 0xcc, 0xcc, 0xc4,
- 0x2, 0xff, 0xff, 0xff, 0xff, 0xff, 0x60, 0x2f,
- 0xf3, 0xfb, 0x7f, 0x6d, 0xf6, 0x2, 0xff, 0x2f,
- 0xb7, 0xf5, 0xdf, 0x60, 0x2f, 0xf2, 0xfb, 0x7f,
- 0x5d, 0xf6, 0x2, 0xff, 0x2f, 0xb7, 0xf5, 0xdf,
- 0x60, 0x2f, 0xf2, 0xfb, 0x7f, 0x5d, 0xf6, 0x2,
- 0xff, 0x2f, 0xb7, 0xf5, 0xdf, 0x60, 0x2f, 0xf3,
- 0xfb, 0x7f, 0x6d, 0xf6, 0x1, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0x50, 0x7, 0xbc, 0xcc, 0xcc, 0xcc,
- 0x90, 0x0,
-
- /* U+F304 "" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x20, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x4, 0xff, 0x50, 0x0,
- 0x0, 0x0, 0x0, 0x2, 0xff, 0xff, 0x50, 0x0,
- 0x0, 0x0, 0x4, 0x39, 0xff, 0xfe, 0x0, 0x0,
- 0x0, 0x4, 0xff, 0x39, 0xff, 0xa0, 0x0, 0x0,
- 0x4, 0xff, 0xff, 0x39, 0xb0, 0x0, 0x0, 0x4,
- 0xff, 0xff, 0xff, 0x20, 0x0, 0x0, 0x4, 0xff,
- 0xff, 0xff, 0xb0, 0x0, 0x0, 0x4, 0xff, 0xff,
- 0xff, 0xb0, 0x0, 0x0, 0x4, 0xff, 0xff, 0xff,
- 0xb0, 0x0, 0x0, 0x4, 0xff, 0xff, 0xff, 0xb0,
- 0x0, 0x0, 0x0, 0xbf, 0xff, 0xff, 0xb0, 0x0,
- 0x0, 0x0, 0xd, 0xff, 0xff, 0xb0, 0x0, 0x0,
- 0x0, 0x0, 0xff, 0xff, 0xb0, 0x0, 0x0, 0x0,
- 0x0, 0x9, 0xa8, 0x60, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+F55A "" */
- 0x0, 0x0, 0x17, 0x88, 0x88, 0x88, 0x88, 0x87,
- 0x40, 0x0, 0x2, 0xef, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xf4, 0x0, 0x3e, 0xff, 0xff, 0xcf, 0xff,
- 0xcf, 0xff, 0xf7, 0x3, 0xef, 0xff, 0xf9, 0x8,
- 0xf8, 0x9, 0xff, 0xf8, 0x3e, 0xff, 0xff, 0xfe,
- 0x20, 0x40, 0x2e, 0xff, 0xf8, 0xdf, 0xff, 0xff,
- 0xff, 0xe1, 0x1, 0xef, 0xff, 0xf8, 0x9f, 0xff,
- 0xff, 0xff, 0x80, 0x0, 0x8f, 0xff, 0xf8, 0x9,
- 0xff, 0xff, 0xf9, 0x2, 0xc2, 0x9, 0xff, 0xf8,
- 0x0, 0x9f, 0xff, 0xfe, 0x4e, 0xfe, 0x4e, 0xff,
- 0xf8, 0x0, 0x9, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xf7, 0x0, 0x0, 0x8f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xc1,
-
- /* U+F7C2 "" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xef,
- 0xff, 0xff, 0xe2, 0x3, 0xfb, 0xfb, 0xce, 0xbf,
- 0xa4, 0xff, 0x1d, 0x3, 0xa1, 0xfa, 0xff, 0xf1,
- 0xd0, 0x3a, 0x1f, 0xaf, 0xff, 0xff, 0xff, 0xff,
- 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xff,
- 0xff, 0xff, 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xfa, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xaf, 0xff, 0xff, 0xff,
- 0xff, 0xfa, 0xff, 0xff, 0xff, 0xff, 0xff, 0xad,
- 0xff, 0xff, 0xff, 0xff, 0xf8, 0x29, 0xaa, 0xaa,
- 0xaa, 0xa8, 0x0,
-
- /* U+F8A2 "" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0xf1, 0x0,
- 0x8, 0x20, 0x0, 0x0, 0x1, 0xff, 0x10, 0xb,
- 0xf7, 0x0, 0x0, 0x0, 0x2f, 0xf1, 0xc, 0xff,
- 0x94, 0x44, 0x44, 0x45, 0xff, 0x1b, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf1, 0x8f, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfd, 0x0, 0x7f, 0xf7, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x6f, 0x60, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x30, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+FF08 "(" */
- 0x0, 0x0, 0x20, 0x0, 0x61, 0x0, 0x81, 0x0,
- 0x46, 0x0, 0xb, 0x10, 0x0, 0xc0, 0x0, 0xc,
- 0x0, 0x0, 0xb0, 0x0, 0x4, 0x60, 0x0, 0x8,
- 0x20, 0x0, 0x6, 0x20, 0x0, 0x1,
-
- /* U+FF09 ")" */
- 0x30, 0x0, 0x1, 0x70, 0x0, 0x1, 0x90, 0x0,
- 0x6, 0x60, 0x0, 0xc, 0x0, 0x0, 0xd0, 0x0,
- 0xd, 0x0, 0x0, 0xc0, 0x0, 0x66, 0x0, 0x2a,
- 0x0, 0x27, 0x0, 0x2, 0x0, 0x0,
-
- /* U+FF0C "," */
- 0x1, 0x0, 0xfc, 0x7, 0xb0, 0x63, 0x3, 0x0,
-
- /* U+FF11 "1" */
- 0x0, 0x23, 0x0, 0x5, 0xd6, 0x0, 0x0, 0x86,
- 0x0, 0x0, 0x86, 0x0, 0x0, 0x86, 0x0, 0x0,
- 0x86, 0x0, 0x0, 0x86, 0x0, 0x0, 0x86, 0x0,
- 0x0, 0x96, 0x0, 0x14, 0x66, 0x40,
-
- /* U+FF12 "2" */
- 0x0, 0x0, 0x0, 0x7, 0x67, 0x91, 0x87, 0x0,
- 0x99, 0x69, 0x0, 0x8b, 0x0, 0x0, 0xd5, 0x0,
- 0x6, 0x80, 0x0, 0x39, 0x0, 0x2, 0x90, 0x0,
- 0x19, 0x0, 0x3, 0xab, 0xaa, 0xb4, 0x12, 0x22,
- 0x20
-};
-
-/*---------------------
- * GLYPH DESCRIPTION
- *--------------------*/
-
-static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
- {.bitmap_index = 0, .adv_w = 0, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0} /* id = 0 reserved */,
- {.bitmap_index = 0, .adv_w = 112, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 0, .adv_w = 112, .box_w = 3, .box_h = 10, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 15, .adv_w = 112, .box_w = 6, .box_h = 4, .ofs_x = 0, .ofs_y = 8},
- {.bitmap_index = 27, .adv_w = 112, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 62, .adv_w = 112, .box_w = 6, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 104, .adv_w = 112, .box_w = 7, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 143, .adv_w = 112, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 178, .adv_w = 112, .box_w = 3, .box_h = 4, .ofs_x = 0, .ofs_y = 8},
- {.bitmap_index = 184, .adv_w = 112, .box_w = 4, .box_h = 15, .ofs_x = 3, .ofs_y = -2},
- {.bitmap_index = 214, .adv_w = 112, .box_w = 4, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 244, .adv_w = 112, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 2},
- {.bitmap_index = 272, .adv_w = 112, .box_w = 7, .box_h = 9, .ofs_x = 0, .ofs_y = 1},
- {.bitmap_index = 304, .adv_w = 112, .box_w = 3, .box_h = 4, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 310, .adv_w = 112, .box_w = 7, .box_h = 1, .ofs_x = 0, .ofs_y = 5},
- {.bitmap_index = 314, .adv_w = 112, .box_w = 3, .box_h = 2, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 317, .adv_w = 112, .box_w = 7, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 366, .adv_w = 112, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 401, .adv_w = 112, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 426, .adv_w = 112, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 461, .adv_w = 112, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 496, .adv_w = 112, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 531, .adv_w = 112, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 566, .adv_w = 112, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 601, .adv_w = 112, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 636, .adv_w = 112, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 671, .adv_w = 112, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 706, .adv_w = 112, .box_w = 3, .box_h = 7, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 717, .adv_w = 112, .box_w = 3, .box_h = 9, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 731, .adv_w = 112, .box_w = 7, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 770, .adv_w = 112, .box_w = 7, .box_h = 4, .ofs_x = 0, .ofs_y = 3},
- {.bitmap_index = 784, .adv_w = 112, .box_w = 7, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 823, .adv_w = 112, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 858, .adv_w = 112, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 893, .adv_w = 112, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 928, .adv_w = 112, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 963, .adv_w = 112, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 998, .adv_w = 112, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 1033, .adv_w = 112, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 1068, .adv_w = 112, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 1103, .adv_w = 112, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 1138, .adv_w = 112, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 1173, .adv_w = 112, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 1198, .adv_w = 112, .box_w = 7, .box_h = 12, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 1240, .adv_w = 112, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 1275, .adv_w = 112, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 1310, .adv_w = 112, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 1345, .adv_w = 112, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 1380, .adv_w = 112, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 1415, .adv_w = 112, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 1450, .adv_w = 112, .box_w = 7, .box_h = 11, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 1489, .adv_w = 112, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 1524, .adv_w = 112, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 1559, .adv_w = 112, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 1594, .adv_w = 112, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 1629, .adv_w = 112, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 1664, .adv_w = 112, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 1699, .adv_w = 112, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 1734, .adv_w = 112, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 1769, .adv_w = 112, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 1804, .adv_w = 112, .box_w = 5, .box_h = 14, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 1839, .adv_w = 112, .box_w = 6, .box_h = 13, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 1878, .adv_w = 112, .box_w = 5, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 1913, .adv_w = 112, .box_w = 5, .box_h = 2, .ofs_x = 1, .ofs_y = 10},
- {.bitmap_index = 1918, .adv_w = 112, .box_w = 7, .box_h = 1, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 1922, .adv_w = 112, .box_w = 3, .box_h = 2, .ofs_x = 1, .ofs_y = 10},
- {.bitmap_index = 1925, .adv_w = 112, .box_w = 7, .box_h = 7, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 1950, .adv_w = 112, .box_w = 7, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 1989, .adv_w = 112, .box_w = 7, .box_h = 7, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 2014, .adv_w = 112, .box_w = 7, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 2053, .adv_w = 112, .box_w = 7, .box_h = 7, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 2078, .adv_w = 112, .box_w = 7, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 2113, .adv_w = 112, .box_w = 7, .box_h = 9, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 2145, .adv_w = 112, .box_w = 7, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 2184, .adv_w = 112, .box_w = 5, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 2209, .adv_w = 112, .box_w = 5, .box_h = 12, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 2239, .adv_w = 112, .box_w = 7, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 2278, .adv_w = 112, .box_w = 5, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 2306, .adv_w = 112, .box_w = 7, .box_h = 7, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 2331, .adv_w = 112, .box_w = 7, .box_h = 7, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 2356, .adv_w = 112, .box_w = 7, .box_h = 7, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 2381, .adv_w = 112, .box_w = 7, .box_h = 9, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 2413, .adv_w = 112, .box_w = 7, .box_h = 9, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 2445, .adv_w = 112, .box_w = 7, .box_h = 7, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 2470, .adv_w = 112, .box_w = 5, .box_h = 7, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 2488, .adv_w = 112, .box_w = 6, .box_h = 9, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 2515, .adv_w = 112, .box_w = 7, .box_h = 7, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 2540, .adv_w = 112, .box_w = 7, .box_h = 7, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 2565, .adv_w = 112, .box_w = 7, .box_h = 7, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 2590, .adv_w = 112, .box_w = 7, .box_h = 7, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 2615, .adv_w = 112, .box_w = 7, .box_h = 9, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 2647, .adv_w = 112, .box_w = 7, .box_h = 7, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 2672, .adv_w = 112, .box_w = 4, .box_h = 14, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 2700, .adv_w = 112, .box_w = 1, .box_h = 15, .ofs_x = 3, .ofs_y = -2},
- {.bitmap_index = 2708, .adv_w = 112, .box_w = 4, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 2736, .adv_w = 112, .box_w = 7, .box_h = 3, .ofs_x = 0, .ofs_y = 10},
- {.bitmap_index = 2747, .adv_w = 112, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 2747, .adv_w = 224, .box_w = 4, .box_h = 5, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 2757, .adv_w = 224, .box_w = 4, .box_h = 5, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 2767, .adv_w = 224, .box_w = 8, .box_h = 11, .ofs_x = 3, .ofs_y = 0},
- {.bitmap_index = 2811, .adv_w = 224, .box_w = 4, .box_h = 12, .ofs_x = 8, .ofs_y = -1},
- {.bitmap_index = 2835, .adv_w = 224, .box_w = 4, .box_h = 12, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 2859, .adv_w = 224, .box_w = 8, .box_h = 9, .ofs_x = 3, .ofs_y = -1},
- {.bitmap_index = 2895, .adv_w = 224, .box_w = 10, .box_h = 12, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 2955, .adv_w = 224, .box_w = 8, .box_h = 7, .ofs_x = 3, .ofs_y = 0},
- {.bitmap_index = 2983, .adv_w = 224, .box_w = 10, .box_h = 9, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 3028, .adv_w = 224, .box_w = 8, .box_h = 12, .ofs_x = 3, .ofs_y = -1},
- {.bitmap_index = 3076, .adv_w = 224, .box_w = 8, .box_h = 9, .ofs_x = 3, .ofs_y = -2},
- {.bitmap_index = 3112, .adv_w = 224, .box_w = 10, .box_h = 12, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 3172, .adv_w = 224, .box_w = 11, .box_h = 12, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 3238, .adv_w = 224, .box_w = 12, .box_h = 11, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 3304, .adv_w = 224, .box_w = 12, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 3370, .adv_w = 224, .box_w = 8, .box_h = 12, .ofs_x = 3, .ofs_y = -1},
- {.bitmap_index = 3418, .adv_w = 224, .box_w = 11, .box_h = 12, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 3484, .adv_w = 224, .box_w = 6, .box_h = 12, .ofs_x = 4, .ofs_y = -1},
- {.bitmap_index = 3520, .adv_w = 224, .box_w = 9, .box_h = 12, .ofs_x = 3, .ofs_y = -1},
- {.bitmap_index = 3574, .adv_w = 224, .box_w = 12, .box_h = 12, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 3646, .adv_w = 224, .box_w = 13, .box_h = 13, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 3731, .adv_w = 224, .box_w = 9, .box_h = 10, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 3776, .adv_w = 224, .box_w = 11, .box_h = 11, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 3837, .adv_w = 224, .box_w = 8, .box_h = 11, .ofs_x = 3, .ofs_y = 0},
- {.bitmap_index = 3881, .adv_w = 224, .box_w = 11, .box_h = 13, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 3953, .adv_w = 224, .box_w = 8, .box_h = 12, .ofs_x = 3, .ofs_y = -1},
- {.bitmap_index = 4001, .adv_w = 224, .box_w = 8, .box_h = 12, .ofs_x = 3, .ofs_y = -1},
- {.bitmap_index = 4049, .adv_w = 224, .box_w = 12, .box_h = 12, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 4121, .adv_w = 224, .box_w = 14, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 4205, .adv_w = 224, .box_w = 11, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 4260, .adv_w = 224, .box_w = 13, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 4332, .adv_w = 224, .box_w = 10, .box_h = 12, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 4392, .adv_w = 224, .box_w = 12, .box_h = 12, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 4464, .adv_w = 224, .box_w = 10, .box_h = 12, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 4524, .adv_w = 224, .box_w = 12, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 4590, .adv_w = 224, .box_w = 10, .box_h = 11, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 4645, .adv_w = 224, .box_w = 9, .box_h = 7, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 4677, .adv_w = 224, .box_w = 11, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 4727, .adv_w = 224, .box_w = 12, .box_h = 10, .ofs_x = 1, .ofs_y = 1},
- {.bitmap_index = 4787, .adv_w = 224, .box_w = 10, .box_h = 10, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 4837, .adv_w = 224, .box_w = 12, .box_h = 11, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 4903, .adv_w = 224, .box_w = 8, .box_h = 12, .ofs_x = 3, .ofs_y = -1},
- {.bitmap_index = 4951, .adv_w = 224, .box_w = 11, .box_h = 11, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 5012, .adv_w = 224, .box_w = 11, .box_h = 12, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 5078, .adv_w = 224, .box_w = 10, .box_h = 9, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 5123, .adv_w = 224, .box_w = 12, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 5183, .adv_w = 224, .box_w = 12, .box_h = 12, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 5255, .adv_w = 224, .box_w = 11, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 5316, .adv_w = 224, .box_w = 11, .box_h = 12, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 5382, .adv_w = 224, .box_w = 12, .box_h = 12, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 5454, .adv_w = 224, .box_w = 13, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 5526, .adv_w = 224, .box_w = 12, .box_h = 11, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 5592, .adv_w = 224, .box_w = 12, .box_h = 12, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 5664, .adv_w = 224, .box_w = 12, .box_h = 12, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 5736, .adv_w = 224, .box_w = 10, .box_h = 10, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 5786, .adv_w = 224, .box_w = 12, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 5846, .adv_w = 224, .box_w = 11, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 5901, .adv_w = 224, .box_w = 12, .box_h = 8, .ofs_x = 1, .ofs_y = 1},
- {.bitmap_index = 5949, .adv_w = 224, .box_w = 12, .box_h = 9, .ofs_x = 1, .ofs_y = 1},
- {.bitmap_index = 6003, .adv_w = 224, .box_w = 12, .box_h = 9, .ofs_x = 1, .ofs_y = 1},
- {.bitmap_index = 6057, .adv_w = 224, .box_w = 10, .box_h = 11, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 6112, .adv_w = 224, .box_w = 13, .box_h = 11, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 6184, .adv_w = 224, .box_w = 12, .box_h = 11, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 6250, .adv_w = 224, .box_w = 8, .box_h = 12, .ofs_x = 3, .ofs_y = -1},
- {.bitmap_index = 6298, .adv_w = 224, .box_w = 11, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 6359, .adv_w = 224, .box_w = 11, .box_h = 11, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 6420, .adv_w = 224, .box_w = 11, .box_h = 11, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 6481, .adv_w = 224, .box_w = 8, .box_h = 12, .ofs_x = 3, .ofs_y = -1},
- {.bitmap_index = 6529, .adv_w = 224, .box_w = 10, .box_h = 9, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 6574, .adv_w = 224, .box_w = 12, .box_h = 11, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 6640, .adv_w = 224, .box_w = 8, .box_h = 8, .ofs_x = 3, .ofs_y = -1},
- {.bitmap_index = 6672, .adv_w = 224, .box_w = 11, .box_h = 11, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 6733, .adv_w = 224, .box_w = 7, .box_h = 8, .ofs_x = 3, .ofs_y = -1},
- {.bitmap_index = 6761, .adv_w = 224, .box_w = 8, .box_h = 10, .ofs_x = 3, .ofs_y = 0},
- {.bitmap_index = 6801, .adv_w = 224, .box_w = 8, .box_h = 12, .ofs_x = 3, .ofs_y = -1},
- {.bitmap_index = 6849, .adv_w = 224, .box_w = 7, .box_h = 12, .ofs_x = 4, .ofs_y = -1},
- {.bitmap_index = 6891, .adv_w = 224, .box_w = 9, .box_h = 11, .ofs_x = 3, .ofs_y = -1},
- {.bitmap_index = 6941, .adv_w = 224, .box_w = 12, .box_h = 12, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 7013, .adv_w = 224, .box_w = 10, .box_h = 11, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 7068, .adv_w = 224, .box_w = 12, .box_h = 12, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 7140, .adv_w = 224, .box_w = 10, .box_h = 12, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 7200, .adv_w = 224, .box_w = 11, .box_h = 11, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 7261, .adv_w = 224, .box_w = 8, .box_h = 9, .ofs_x = 3, .ofs_y = -1},
- {.bitmap_index = 7297, .adv_w = 224, .box_w = 10, .box_h = 12, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 7357, .adv_w = 224, .box_w = 8, .box_h = 10, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 7397, .adv_w = 224, .box_w = 9, .box_h = 12, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 7451, .adv_w = 224, .box_w = 10, .box_h = 12, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 7511, .adv_w = 224, .box_w = 9, .box_h = 6, .ofs_x = 2, .ofs_y = 1},
- {.bitmap_index = 7538, .adv_w = 224, .box_w = 11, .box_h = 8, .ofs_x = 1, .ofs_y = 1},
- {.bitmap_index = 7582, .adv_w = 224, .box_w = 11, .box_h = 12, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 7648, .adv_w = 224, .box_w = 10, .box_h = 11, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 7703, .adv_w = 224, .box_w = 12, .box_h = 12, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 7775, .adv_w = 224, .box_w = 10, .box_h = 12, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 7835, .adv_w = 224, .box_w = 11, .box_h = 12, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 7901, .adv_w = 224, .box_w = 9, .box_h = 12, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 7955, .adv_w = 224, .box_w = 11, .box_h = 12, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 8021, .adv_w = 224, .box_w = 10, .box_h = 11, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 8076, .adv_w = 224, .box_w = 11, .box_h = 12, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 8142, .adv_w = 224, .box_w = 9, .box_h = 8, .ofs_x = 2, .ofs_y = 1},
- {.bitmap_index = 8178, .adv_w = 224, .box_w = 12, .box_h = 10, .ofs_x = 1, .ofs_y = 1},
- {.bitmap_index = 8238, .adv_w = 224, .box_w = 12, .box_h = 11, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 8304, .adv_w = 224, .box_w = 13, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 8382, .adv_w = 224, .box_w = 11, .box_h = 10, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 8437, .adv_w = 224, .box_w = 11, .box_h = 11, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 8498, .adv_w = 224, .box_w = 11, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 8553, .adv_w = 224, .box_w = 12, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 8619, .adv_w = 224, .box_w = 11, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 8674, .adv_w = 224, .box_w = 13, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 8746, .adv_w = 224, .box_w = 8, .box_h = 11, .ofs_x = 3, .ofs_y = -1},
- {.bitmap_index = 8790, .adv_w = 224, .box_w = 10, .box_h = 12, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 8850, .adv_w = 224, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 8935, .adv_w = 224, .box_w = 12, .box_h = 11, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 9001, .adv_w = 224, .box_w = 8, .box_h = 8, .ofs_x = 3, .ofs_y = -1},
- {.bitmap_index = 9033, .adv_w = 224, .box_w = 10, .box_h = 11, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 9088, .adv_w = 224, .box_w = 10, .box_h = 11, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 9143, .adv_w = 224, .box_w = 12, .box_h = 12, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 9215, .adv_w = 224, .box_w = 6, .box_h = 11, .ofs_x = 5, .ofs_y = -1},
- {.bitmap_index = 9248, .adv_w = 224, .box_w = 8, .box_h = 11, .ofs_x = 5, .ofs_y = -1},
- {.bitmap_index = 9292, .adv_w = 224, .box_w = 10, .box_h = 11, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 9347, .adv_w = 224, .box_w = 12, .box_h = 7, .ofs_x = 1, .ofs_y = 1},
- {.bitmap_index = 9389, .adv_w = 224, .box_w = 10, .box_h = 12, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 9449, .adv_w = 224, .box_w = 10, .box_h = 10, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 9499, .adv_w = 224, .box_w = 12, .box_h = 7, .ofs_x = 1, .ofs_y = 1},
- {.bitmap_index = 9541, .adv_w = 224, .box_w = 12, .box_h = 10, .ofs_x = 1, .ofs_y = 1},
- {.bitmap_index = 9601, .adv_w = 224, .box_w = 12, .box_h = 10, .ofs_x = 1, .ofs_y = 1},
- {.bitmap_index = 9661, .adv_w = 224, .box_w = 8, .box_h = 10, .ofs_x = 3, .ofs_y = 0},
- {.bitmap_index = 9701, .adv_w = 224, .box_w = 9, .box_h = 10, .ofs_x = 3, .ofs_y = 0},
- {.bitmap_index = 9746, .adv_w = 224, .box_w = 10, .box_h = 10, .ofs_x = 3, .ofs_y = 0},
- {.bitmap_index = 9796, .adv_w = 224, .box_w = 10, .box_h = 10, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 9846, .adv_w = 224, .box_w = 13, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 9924, .adv_w = 224, .box_w = 13, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 10002, .adv_w = 224, .box_w = 12, .box_h = 9, .ofs_x = 1, .ofs_y = 1},
- {.bitmap_index = 10056, .adv_w = 224, .box_w = 12, .box_h = 10, .ofs_x = 1, .ofs_y = 1},
- {.bitmap_index = 10116, .adv_w = 224, .box_w = 10, .box_h = 10, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 10166, .adv_w = 224, .box_w = 11, .box_h = 12, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 10232, .adv_w = 224, .box_w = 10, .box_h = 11, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 10287, .adv_w = 224, .box_w = 10, .box_h = 8, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 10327, .adv_w = 224, .box_w = 6, .box_h = 11, .ofs_x = 4, .ofs_y = -1},
- {.bitmap_index = 10360, .adv_w = 224, .box_w = 10, .box_h = 10, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 10410, .adv_w = 224, .box_w = 10, .box_h = 11, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 10465, .adv_w = 224, .box_w = 11, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 10515, .adv_w = 224, .box_w = 10, .box_h = 8, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 10555, .adv_w = 224, .box_w = 11, .box_h = 11, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 10616, .adv_w = 224, .box_w = 10, .box_h = 6, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 10646, .adv_w = 224, .box_w = 8, .box_h = 7, .ofs_x = 3, .ofs_y = 0},
- {.bitmap_index = 10674, .adv_w = 224, .box_w = 9, .box_h = 10, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 10719, .adv_w = 224, .box_w = 10, .box_h = 11, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 10774, .adv_w = 224, .box_w = 7, .box_h = 11, .ofs_x = 3, .ofs_y = -1},
- {.bitmap_index = 10813, .adv_w = 224, .box_w = 12, .box_h = 9, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 10867, .adv_w = 224, .box_w = 8, .box_h = 9, .ofs_x = 3, .ofs_y = 0},
- {.bitmap_index = 10903, .adv_w = 224, .box_w = 9, .box_h = 8, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 10939, .adv_w = 224, .box_w = 10, .box_h = 11, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 10994, .adv_w = 224, .box_w = 10, .box_h = 9, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 11039, .adv_w = 224, .box_w = 8, .box_h = 8, .ofs_x = 3, .ofs_y = -1},
- {.bitmap_index = 11071, .adv_w = 224, .box_w = 14, .box_h = 3, .ofs_x = 0, .ofs_y = 4},
- {.bitmap_index = 11092, .adv_w = 224, .box_w = 14, .box_h = 2, .ofs_x = 0, .ofs_y = 5},
- {.bitmap_index = 11106, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 11197, .adv_w = 224, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 11282, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 11380, .adv_w = 224, .box_w = 14, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 11464, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 11555, .adv_w = 224, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 11640, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 11738, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 11836, .adv_w = 224, .box_w = 14, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 11920, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 12018, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 12116, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 12207, .adv_w = 224, .box_w = 11, .box_h = 14, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 12284, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 12375, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 12473, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 12564, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 12662, .adv_w = 224, .box_w = 13, .box_h = 13, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 12747, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 12845, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 12943, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 13034, .adv_w = 224, .box_w = 11, .box_h = 14, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 13111, .adv_w = 224, .box_w = 13, .box_h = 13, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 13196, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 13294, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 13392, .adv_w = 224, .box_w = 14, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 13462, .adv_w = 224, .box_w = 14, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 13546, .adv_w = 224, .box_w = 14, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 13630, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 13721, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 13819, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 13910, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 14008, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 14106, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 14204, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 14302, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 14400, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 14498, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 14596, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 14694, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 14792, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 14890, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 14988, .adv_w = 224, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 15072, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 15170, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 15268, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 15366, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 15464, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 15555, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 15653, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 15751, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 15849, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 15947, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 16045, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 16143, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 16241, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 16339, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 16430, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 16528, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 16626, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 16724, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 16822, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 16920, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 17018, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 17116, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 17214, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 17305, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 17403, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 17501, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 17599, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 17697, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 17795, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 17893, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 17991, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 18089, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 18180, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 18278, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 18376, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 18474, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 18572, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 18670, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 18768, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 18866, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 18964, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 19062, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 19160, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 19258, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 19356, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 19454, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 19552, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 19650, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 19748, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 19846, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 19944, .adv_w = 224, .box_w = 13, .box_h = 13, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 20029, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 20120, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 20211, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 20309, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 20407, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 20505, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 20603, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 20701, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 20792, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 20890, .adv_w = 224, .box_w = 14, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 20974, .adv_w = 224, .box_w = 11, .box_h = 14, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 21051, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 21149, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 21240, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 21338, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 21436, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 21534, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 21632, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 21730, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 21828, .adv_w = 224, .box_w = 11, .box_h = 14, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 21905, .adv_w = 224, .box_w = 11, .box_h = 13, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 21977, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 22068, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 22166, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 22257, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 22348, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 22446, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 22544, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 22642, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 22740, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 22838, .adv_w = 224, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 22922, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 23020, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 23118, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 23216, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 23314, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 23412, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 23510, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 23608, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 23699, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 23797, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 23888, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 23986, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 24084, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 24182, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 24273, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 24371, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 24462, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 24560, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 24658, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 24756, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 24847, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 24938, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 25036, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 25134, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 25232, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 25330, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 25421, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 25519, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 25617, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 25715, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 25813, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 25911, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 26009, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 26100, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 26198, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 26296, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 26394, .adv_w = 224, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 26478, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 26576, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 26674, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 26772, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 26870, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 26968, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 27066, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 27164, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 27262, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 27360, .adv_w = 224, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 27444, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 27542, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 27640, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 27731, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 27822, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 27913, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 28011, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 28109, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 28200, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 28291, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 28389, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 28487, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 28585, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 28683, .adv_w = 224, .box_w = 11, .box_h = 11, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 28744, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 28842, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 28940, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 29031, .adv_w = 224, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 29115, .adv_w = 224, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 29199, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 29290, .adv_w = 224, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 29374, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 29465, .adv_w = 224, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 29550, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 29641, .adv_w = 224, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 29719, .adv_w = 224, .box_w = 13, .box_h = 13, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 29804, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 29902, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 30000, .adv_w = 224, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 30084, .adv_w = 224, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 30169, .adv_w = 224, .box_w = 11, .box_h = 14, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 30246, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 30337, .adv_w = 224, .box_w = 13, .box_h = 12, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 30415, .adv_w = 224, .box_w = 13, .box_h = 13, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 30500, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 30591, .adv_w = 224, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 30669, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 30760, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 30851, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 30942, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 31040, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 31138, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 31229, .adv_w = 224, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 31313, .adv_w = 224, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 31397, .adv_w = 224, .box_w = 13, .box_h = 13, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 31482, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 31580, .adv_w = 224, .box_w = 13, .box_h = 13, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 31665, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 31756, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 31847, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 31938, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 32029, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 32120, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 32211, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 32309, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 32400, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 32491, .adv_w = 224, .box_w = 13, .box_h = 12, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 32569, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 32660, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 32758, .adv_w = 224, .box_w = 11, .box_h = 14, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 32835, .adv_w = 224, .box_w = 11, .box_h = 13, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 32907, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 32998, .adv_w = 224, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 33082, .adv_w = 224, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 33166, .adv_w = 224, .box_w = 11, .box_h = 14, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 33243, .adv_w = 224, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 33327, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 33418, .adv_w = 224, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 33502, .adv_w = 224, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 33586, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 33677, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 33768, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 33866, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 33957, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 34055, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 34153, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 34244, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 34335, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 34433, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 34531, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 34629, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 34727, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 34825, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 34923, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 35021, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 35119, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 35217, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 35315, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 35413, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 35504, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 35595, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 35686, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 35777, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 35875, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 35973, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 36064, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 36155, .adv_w = 224, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 36239, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 36337, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 36435, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 36533, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 36631, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 36729, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 36827, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 36925, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 37023, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 37121, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 37219, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 37317, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 37415, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 37513, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 37611, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 37709, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 37807, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 37905, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 38003, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 38101, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 38192, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 38290, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 38388, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 38486, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 38584, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 38682, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 38780, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 38878, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 38976, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 39074, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 39172, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 39270, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 39368, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 39466, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 39564, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 39655, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 39753, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 39851, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 39949, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 40040, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 40131, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 40222, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 40313, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 40411, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 40509, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 40600, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 40691, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 40782, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 40880, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 40971, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 41069, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 41167, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 41265, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 41356, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 41454, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 41552, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 41650, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 41741, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 41839, .adv_w = 224, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 41923, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 42021, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 42112, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 42210, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 42308, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 42399, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 42497, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 42595, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 42693, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 42791, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 42882, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 42980, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 43078, .adv_w = 224, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 43162, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 43253, .adv_w = 224, .box_w = 12, .box_h = 14, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 43337, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 43435, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 43533, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 43624, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 43715, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 43806, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 43897, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 43995, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 44093, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 44191, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 44282, .adv_w = 224, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 44360, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 44451, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 44549, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 44640, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 44731, .adv_w = 224, .box_w = 14, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 44815, .adv_w = 224, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 44900, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 44998, .adv_w = 224, .box_w = 13, .box_h = 12, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 45076, .adv_w = 224, .box_w = 12, .box_h = 12, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 45148, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 45239, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 45337, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 45428, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 45526, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 45617, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 45715, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 45813, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 45911, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 46009, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 46107, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 46198, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 46289, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 46387, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 46485, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 46583, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 46681, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 46772, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 46870, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 46968, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 47066, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 47164, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 47262, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 47360, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 47451, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 47549, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 47647, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 47745, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 47843, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 47941, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 48039, .adv_w = 224, .box_w = 11, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 48116, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 48207, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 48298, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 48396, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 48487, .adv_w = 224, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 48571, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 48669, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 48767, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 48865, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 48963, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 49061, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 49159, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 49257, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 49355, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 49453, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 49551, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 49649, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 49747, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 49845, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 49943, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 50041, .adv_w = 224, .box_w = 14, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 50125, .adv_w = 224, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 50210, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 50301, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 50399, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 50497, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 50595, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 50693, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 50784, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 50875, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 50973, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 51064, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 51162, .adv_w = 224, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 51247, .adv_w = 224, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 51332, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 51423, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 51521, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 51612, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 51703, .adv_w = 224, .box_w = 13, .box_h = 13, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 51788, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 51879, .adv_w = 224, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 51957, .adv_w = 224, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 52041, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 52139, .adv_w = 224, .box_w = 13, .box_h = 13, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 52224, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 52322, .adv_w = 224, .box_w = 13, .box_h = 13, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 52407, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 52505, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 52603, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 52694, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 52792, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 52890, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 52988, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 53086, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 53184, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 53282, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 53380, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 53478, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 53576, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 53674, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 53772, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 53863, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 53961, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 54059, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 54157, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 54255, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 54353, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 54451, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 54549, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 54640, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 54738, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 54836, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 54934, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 55032, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 55130, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 55221, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 55319, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 55417, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 55515, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 55613, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 55711, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 55809, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 55907, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 56005, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 56103, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 56201, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 56299, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 56397, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 56495, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 56593, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 56691, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 56789, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 56887, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 56985, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 57083, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 57181, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 57279, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 57377, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 57468, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 57566, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 57664, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 57762, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 57860, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 57958, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 58056, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 58154, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 58252, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 58350, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 58448, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 58546, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 58644, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 58742, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 58840, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 58938, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 59036, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 59134, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 59232, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 59330, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 59428, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 59519, .adv_w = 224, .box_w = 9, .box_h = 13, .ofs_x = 3, .ofs_y = -2},
- {.bitmap_index = 59578, .adv_w = 224, .box_w = 13, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 59656, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 59747, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 59838, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 59936, .adv_w = 224, .box_w = 11, .box_h = 14, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 60013, .adv_w = 224, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 60097, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 60195, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 60286, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 60377, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 60475, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 60566, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 60664, .adv_w = 224, .box_w = 14, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 60748, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 60839, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 60930, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 61021, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 61119, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 61210, .adv_w = 224, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 61294, .adv_w = 224, .box_w = 13, .box_h = 13, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 61379, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 61477, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 61568, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 61659, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 61750, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 61841, .adv_w = 224, .box_w = 11, .box_h = 14, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 61918, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 62016, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 62107, .adv_w = 224, .box_w = 10, .box_h = 14, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 62177, .adv_w = 224, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 62261, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 62359, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 62457, .adv_w = 224, .box_w = 11, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 62534, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 62632, .adv_w = 224, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 62717, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 62808, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 62906, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 63004, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 63102, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 63200, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 63298, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 63396, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 63494, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 63592, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 63690, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 63788, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 63886, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 63984, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 64082, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 64180, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 64271, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 64369, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 64467, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 64565, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 64663, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 64761, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 64852, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 64950, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 65048, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 65146, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 65244, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 65342, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 65440, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 65538, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 65636, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 65734, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 65832, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 65930, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 66028, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 66126, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 66224, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 66322, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 66420, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 66518, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 66616, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 66714, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 66812, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 66910, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 67008, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 67106, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 67204, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 67302, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 67400, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 67498, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 67596, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 67694, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 67792, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 67890, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 67988, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 68086, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 68184, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 68282, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 68373, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 68464, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 68555, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 68653, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 68744, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 68842, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 68940, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 69038, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 69136, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 69234, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 69332, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 69430, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 69528, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 69626, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 69724, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 69822, .adv_w = 224, .box_w = 12, .box_h = 13, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 69900, .adv_w = 224, .box_w = 14, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 69984, .adv_w = 224, .box_w = 12, .box_h = 14, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 70068, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 70159, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 70257, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 70355, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 70453, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 70551, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 70649, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 70747, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 70845, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 70936, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 71034, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 71132, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 71230, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 71321, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 71419, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 71517, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 71608, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 71706, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 71804, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 71895, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 71993, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 72091, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 72189, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 72287, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 72385, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 72483, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 72581, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 72679, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 72777, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 72875, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 72973, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 73064, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 73162, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 73253, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 73344, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 73442, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 73540, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 73638, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 73736, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 73834, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 73932, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 74023, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 74114, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 74212, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 74310, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 74408, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 74506, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 74604, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 74702, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 74800, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 74898, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 74996, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 75094, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 75192, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 75290, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 75381, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 75479, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 75570, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 75668, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 75766, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 75864, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 75955, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 76046, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 76137, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 76228, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 76319, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 76410, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 76508, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 76606, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 76704, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 76802, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 76893, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 76991, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 77089, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 77187, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 77285, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 77383, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 77481, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 77579, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 77677, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 77768, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 77866, .adv_w = 224, .box_w = 14, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 77950, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 78041, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 78139, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 78237, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 78328, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 78419, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 78510, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 78601, .adv_w = 224, .box_w = 10, .box_h = 12, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 78661, .adv_w = 224, .box_w = 11, .box_h = 14, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 78738, .adv_w = 224, .box_w = 10, .box_h = 14, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 78808, .adv_w = 224, .box_w = 12, .box_h = 13, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 78886, .adv_w = 224, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 78970, .adv_w = 224, .box_w = 13, .box_h = 13, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 79055, .adv_w = 224, .box_w = 13, .box_h = 13, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 79140, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 79238, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 79329, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 79420, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 79518, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 79609, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 79700, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 79798, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 79889, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 79987, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 80085, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 80176, .adv_w = 224, .box_w = 11, .box_h = 14, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 80253, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 80344, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 80435, .adv_w = 224, .box_w = 12, .box_h = 14, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 80519, .adv_w = 224, .box_w = 14, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 80589, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 80680, .adv_w = 224, .box_w = 9, .box_h = 13, .ofs_x = 3, .ofs_y = -2},
- {.bitmap_index = 80739, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 80830, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 80921, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 81019, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 81117, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 81208, .adv_w = 224, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 81292, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 81390, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 81488, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 81586, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 81677, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 81775, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 81873, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 81971, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 82069, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 82167, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 82265, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 82363, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 82461, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 82559, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 82657, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 82755, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 82853, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 82951, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 83049, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 83147, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 83245, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 83343, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 83441, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 83539, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 83637, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 83735, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 83833, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 83931, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 84029, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 84120, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 84211, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 84309, .adv_w = 224, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 84394, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 84492, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 84590, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 84688, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 84786, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 84884, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 84982, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 85080, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 85178, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 85276, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 85374, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 85472, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 85570, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 85661, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 85759, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 85857, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 85955, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 86046, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 86137, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 86235, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 86333, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 86431, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 86529, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 86627, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 86725, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 86823, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 86914, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 87012, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 87110, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 87208, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 87306, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 87404, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 87502, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 87600, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 87698, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 87796, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 87894, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 87992, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 88090, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 88188, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 88286, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 88384, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 88475, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 88573, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 88671, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 88769, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 88867, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 88965, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 89056, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 89154, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 89252, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 89350, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 89448, .adv_w = 224, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 89532, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 89630, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 89728, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 89826, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 89924, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 90022, .adv_w = 224, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 90106, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 90204, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 90302, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 90400, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 90498, .adv_w = 224, .box_w = 11, .box_h = 14, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 90575, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 90666, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 90764, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 90855, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 90946, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 91037, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 91128, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 91226, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 91324, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 91422, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 91520, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 91618, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 91716, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 91814, .adv_w = 224, .box_w = 9, .box_h = 14, .ofs_x = 3, .ofs_y = -2},
- {.bitmap_index = 91877, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 91968, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 92066, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 92164, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 92255, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 92353, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 92451, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 92549, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 92647, .adv_w = 224, .box_w = 11, .box_h = 14, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 92724, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 92815, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 92913, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 93011, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 93109, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 93207, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 93305, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 93403, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 93501, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 93599, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 93697, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 93795, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 93893, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 93984, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 94082, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 94180, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 94278, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 94376, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 94474, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 94572, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 94670, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 94768, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 94866, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 94964, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 95062, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 95160, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 95258, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 95356, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 95454, .adv_w = 224, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 95539, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 95630, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 95728, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 95826, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 95924, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 96015, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 96113, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 96211, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 96309, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 96400, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 96498, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 96596, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 96687, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 96785, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 96883, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 96981, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 97079, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 97177, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 97275, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 97373, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 97471, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 97569, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 97667, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 97765, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 97863, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 97961, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 98059, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 98157, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 98255, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 98353, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 98451, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 98549, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 98647, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 98745, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 98843, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 98941, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 99039, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 99137, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 99235, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 99333, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 99431, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 99529, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 99620, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 99718, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 99816, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 99914, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 100012, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 100110, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 100201, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 100299, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 100397, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 100495, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 100593, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 100691, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 100782, .adv_w = 224, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 100866, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 100964, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 101055, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 101153, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 101244, .adv_w = 224, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 101328, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 101419, .adv_w = 224, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 101503, .adv_w = 224, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 101587, .adv_w = 224, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 101671, .adv_w = 224, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 101755, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 101846, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 101944, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 102035, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 102133, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 102231, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 102329, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 102427, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 102525, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 102623, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 102721, .adv_w = 224, .box_w = 14, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 102805, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 102903, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 102994, .adv_w = 224, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 103099, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 103197, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 103295, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 103393, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 103491, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 103589, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 103687, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 103785, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 103883, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 103974, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 104072, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 104170, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 104261, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 104359, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 104457, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 104548, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 104646, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 104744, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 104835, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 104933, .adv_w = 224, .box_w = 14, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 105017, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 105115, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 105213, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 105311, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 105402, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 105500, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 105598, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 105696, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 105794, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 105885, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 105983, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 106081, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 106179, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 106277, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 106375, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 106466, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 106564, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 106655, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 106753, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 106851, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 106949, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 107047, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 107145, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 107243, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 107341, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 107439, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 107530, .adv_w = 224, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 107615, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 107713, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 107811, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 107909, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 108000, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 108091, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 108189, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 108287, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 108385, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 108476, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 108567, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 108665, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 108763, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 108861, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 108959, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 109057, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 109148, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 109239, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 109337, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 109435, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 109533, .adv_w = 224, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 109617, .adv_w = 224, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 109701, .adv_w = 224, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 109785, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 109876, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 109967, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 110058, .adv_w = 224, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 110136, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 110227, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 110318, .adv_w = 224, .box_w = 13, .box_h = 13, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 110403, .adv_w = 224, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 110487, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 110578, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 110669, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 110760, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 110851, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 110942, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 111033, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 111124, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 111215, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 111313, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 111411, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 111509, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 111600, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 111698, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 111796, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 111894, .adv_w = 224, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 111972, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 112070, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 112161, .adv_w = 224, .box_w = 13, .box_h = 13, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 112246, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 112344, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 112442, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 112533, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 112631, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 112729, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 112827, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 112925, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 113023, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 113121, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 113212, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 113303, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 113401, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 113499, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 113597, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 113695, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 113793, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 113891, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 113989, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 114087, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 114185, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 114283, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 114381, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 114479, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 114570, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 114668, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 114766, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 114864, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 114962, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 115060, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 115158, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 115256, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 115354, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 115452, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 115550, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 115648, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 115746, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 115837, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 115935, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 116026, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 116124, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 116222, .adv_w = 224, .box_w = 13, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 116313, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 116411, .adv_w = 224, .box_w = 13, .box_h = 13, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 116496, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 116594, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 116692, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 116790, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 116888, .adv_w = 224, .box_w = 15, .box_h = 15, .ofs_x = -1, .ofs_y = -2},
- {.bitmap_index = 117001, .adv_w = 224, .box_w = 14, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 117078, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 117169, .adv_w = 224, .box_w = 14, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 117246, .adv_w = 154, .box_w = 10, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 117301, .adv_w = 224, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 117406, .adv_w = 224, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 117511, .adv_w = 252, .box_w = 16, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 117615, .adv_w = 224, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 117720, .adv_w = 252, .box_w = 16, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 117808, .adv_w = 224, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 117913, .adv_w = 112, .box_w = 7, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 117955, .adv_w = 168, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 118021, .adv_w = 252, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 118133, .adv_w = 224, .box_w = 14, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 118210, .adv_w = 154, .box_w = 10, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 118285, .adv_w = 196, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 118355, .adv_w = 196, .box_w = 13, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 118453, .adv_w = 196, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 118538, .adv_w = 196, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 118623, .adv_w = 196, .box_w = 10, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 118693, .adv_w = 196, .box_w = 14, .box_h = 13, .ofs_x = -1, .ofs_y = -1},
- {.bitmap_index = 118784, .adv_w = 140, .box_w = 9, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 118843, .adv_w = 140, .box_w = 9, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 118902, .adv_w = 196, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 118987, .adv_w = 196, .box_w = 13, .box_h = 4, .ofs_x = 0, .ofs_y = 3},
- {.bitmap_index = 119013, .adv_w = 252, .box_w = 16, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 119101, .adv_w = 280, .box_w = 18, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 119236, .adv_w = 252, .box_w = 17, .box_h = 15, .ofs_x = -1, .ofs_y = -2},
- {.bitmap_index = 119364, .adv_w = 224, .box_w = 14, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 119455, .adv_w = 196, .box_w = 13, .box_h = 8, .ofs_x = 0, .ofs_y = 1},
- {.bitmap_index = 119507, .adv_w = 196, .box_w = 13, .box_h = 8, .ofs_x = 0, .ofs_y = 1},
- {.bitmap_index = 119559, .adv_w = 280, .box_w = 18, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 119658, .adv_w = 224, .box_w = 14, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 119735, .adv_w = 224, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 119840, .adv_w = 224, .box_w = 15, .box_h = 15, .ofs_x = -1, .ofs_y = -2},
- {.bitmap_index = 119953, .adv_w = 196, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 120038, .adv_w = 196, .box_w = 13, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 120136, .adv_w = 196, .box_w = 13, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 120221, .adv_w = 196, .box_w = 13, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 120299, .adv_w = 224, .box_w = 14, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 120376, .adv_w = 140, .box_w = 10, .box_h = 15, .ofs_x = -1, .ofs_y = -2},
- {.bitmap_index = 120451, .adv_w = 196, .box_w = 13, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 120549, .adv_w = 196, .box_w = 13, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 120647, .adv_w = 252, .box_w = 16, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 120735, .adv_w = 224, .box_w = 16, .box_h = 15, .ofs_x = -1, .ofs_y = -2},
- {.bitmap_index = 120855, .adv_w = 168, .box_w = 11, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 120938, .adv_w = 280, .box_w = 18, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 121055, .adv_w = 280, .box_w = 18, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 121145, .adv_w = 280, .box_w = 18, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 121235, .adv_w = 280, .box_w = 18, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 121325, .adv_w = 280, .box_w = 18, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 121415, .adv_w = 280, .box_w = 18, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 121505, .adv_w = 280, .box_w = 18, .box_h = 12, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 121613, .adv_w = 196, .box_w = 12, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 121703, .adv_w = 196, .box_w = 13, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 121801, .adv_w = 224, .box_w = 15, .box_h = 15, .ofs_x = -1, .ofs_y = -2},
- {.bitmap_index = 121914, .adv_w = 280, .box_w = 18, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 122013, .adv_w = 168, .box_w = 11, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 122096, .adv_w = 225, .box_w = 15, .box_h = 10, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 122171, .adv_w = 224, .box_w = 5, .box_h = 12, .ofs_x = 7, .ofs_y = -1},
- {.bitmap_index = 122201, .adv_w = 224, .box_w = 5, .box_h = 12, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 122231, .adv_w = 224, .box_w = 3, .box_h = 5, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 122239, .adv_w = 224, .box_w = 6, .box_h = 10, .ofs_x = 4, .ofs_y = 0},
- {.bitmap_index = 122269, .adv_w = 224, .box_w = 6, .box_h = 11, .ofs_x = 4, .ofs_y = 0}
-};
-
-/*---------------------
- * CHARACTER MAPPING
- *--------------------*/
-
-static const uint16_t unicode_list_1[] = {
- 0x0, 0x1, 0x4, 0xb, 0xc, 0x40, 0x41, 0x42,
- 0x43, 0x45, 0x46, 0x47
-};
-
-static const uint8_t glyph_id_ofs_list_4[] = {
- 0, 0, 0, 1, 2, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 3, 4, 5, 6, 0, 7,
- 8, 9, 0, 10, 11, 12, 13, 14,
- 15, 16, 17, 18, 19, 20, 21, 22,
- 23, 24, 25, 26, 27, 28, 29, 0,
- 30, 31, 32, 0, 33, 34, 0, 35,
- 36, 37, 38, 39, 40, 0, 41, 42,
- 43, 44, 45, 46, 47, 48, 49, 50,
- 51, 0, 52, 53, 54, 55, 56, 57,
- 58, 59, 60, 61, 62, 63, 64, 0,
- 65, 66, 67, 68, 69, 70, 71
-};
-
-static const uint16_t unicode_list_5[] = {
- 0x0, 0x4, 0x7, 0xd, 0x1d11, 0x1d14, 0x1d18, 0x1d19,
- 0x1d1a, 0x1d1b, 0x1d1c, 0x1d1e, 0x1d24, 0x1d25, 0x1d27, 0x1d32,
- 0x1d37, 0x1d3e, 0x1d4c, 0x1d56, 0x1d5c, 0x1d5f, 0x1d60, 0x1d68,
- 0x1d6e, 0x1d70, 0x1d97, 0x1d99, 0x1d9a, 0x1d9c, 0x1d9d, 0x1da5,
- 0x1dac, 0x1db2, 0x1db5, 0x1db7, 0x1dbd, 0x1dcb, 0x1dd1, 0x1ddb,
- 0x1ddc, 0x1dde, 0x1de6, 0x1de7, 0x1de9, 0x1df4, 0x1df5, 0x1df6,
- 0x1dff, 0x1e07, 0x1e0c, 0x1e0e, 0x1e12, 0x1e1b, 0x1e22, 0x1e2b,
- 0x1e2e, 0x1e49, 0x1e4d, 0x1e57, 0x1e5e, 0x1e5f, 0x1e60, 0x1e64,
- 0x1e66, 0x1e6a, 0x1e6d, 0x1e71, 0x1e90, 0x1e97, 0x1e9c, 0x1eac,
- 0x1eae, 0x1eb2, 0x1ed0, 0x1ed3, 0x1eee, 0x1ef2, 0x1eff, 0x1f1c,
- 0x1f22, 0x1f2a, 0x1f30, 0x1f35, 0x1f4d, 0x1f6b, 0x1f6d, 0x1f76,
- 0x1f85, 0x1faa, 0x1fc4, 0x1fd6, 0x1fde, 0x1fe0, 0x1fe6, 0x200a,
- 0x2015, 0x203b, 0x2050, 0x2054, 0x2055, 0x2056, 0x2059, 0x205a,
- 0x205c, 0x205e, 0x2063, 0x206b, 0x2076, 0x2078, 0x2079, 0x207a,
- 0x207c, 0x207d, 0x207e, 0x2082, 0x2087, 0x2088, 0x2096, 0x2097,
- 0x209b, 0x209e, 0x20aa, 0x20ac, 0x20bd, 0x20c8, 0x20de, 0x20ee,
- 0x20f7, 0x210b, 0x2117, 0x2118, 0x211b, 0x2128, 0x212e, 0x2135,
- 0x2136, 0x213a, 0x2141, 0x2147, 0x2149, 0x214c, 0x2158, 0x215b,
- 0x215e, 0x216c, 0x2183, 0x2186, 0x2194, 0x21ac, 0x21b0, 0x21b1,
- 0x21b9, 0x21ba, 0x21bb, 0x21c4, 0x21da, 0x21e6, 0x21ea, 0x21ee,
- 0x21f5, 0x2206, 0x2216, 0x2227, 0x2228, 0x224c, 0x2251, 0x2252,
- 0x2254, 0x2259, 0x225b, 0x2263, 0x2265, 0x2268, 0x2269, 0x2282,
- 0x2284, 0x228c, 0x22ab, 0x22b0, 0x22c4, 0x22cc, 0x22d3, 0x22d4,
- 0x22d9, 0x22db, 0x22dc, 0x22de, 0x22e7, 0x22e8, 0x22f4, 0x22f5,
- 0x22f6, 0x22f7, 0x22fb, 0x22fc, 0x2300, 0x2301, 0x2303, 0x2304,
- 0x2308, 0x2309, 0x2314, 0x2315, 0x2319, 0x231d, 0x231e, 0x2322,
- 0x2337, 0x2338, 0x2351, 0x235b, 0x2373, 0x2379, 0x2384, 0x238d,
- 0x238e, 0x239d, 0x23c3, 0x23d2, 0x23f2, 0x23fb, 0x2457, 0x245b,
- 0x2460, 0x2477, 0x2495, 0x249a, 0x24ad, 0x24ae, 0x24bf, 0x24c7,
- 0x24df, 0x2500, 0x252c, 0x25c5, 0x25ec, 0x25ef, 0x25f1, 0x2601,
- 0x2604, 0x260e, 0x261c, 0x261e, 0x2623, 0x2629, 0x2630, 0x2634,
- 0x2639, 0x2641, 0x2658, 0x265b, 0x2661, 0x269c, 0x26f0, 0x2708,
- 0x270b, 0x2742, 0x2745, 0x275b, 0x277a, 0x2794, 0x27a8, 0x27af,
- 0x27db, 0x27e4, 0x27fc, 0x2801, 0x2803, 0x281a, 0x2820, 0x2826,
- 0x2827, 0x282b, 0x282d, 0x2831, 0x2838, 0x283a, 0x283b, 0x283c,
- 0x283f, 0x2842, 0x2858, 0x2862, 0x2868, 0x2884, 0x288a, 0x288e,
- 0x2893, 0x2898, 0x28c4, 0x28ca, 0x28cc, 0x28da, 0x28dc, 0x28e1,
- 0x28e5, 0x2929, 0x296b, 0x2977, 0x29a3, 0x29ce, 0x29dd, 0x2a1a,
- 0x2a61, 0x2a68, 0x2a69, 0x2a74, 0x2a77, 0x2a7a, 0x2a7c, 0x2a89,
- 0x2a94, 0x2a96, 0x2a98, 0x2a99, 0x2a9a, 0x2a9d, 0x2aa9, 0x2aaa,
- 0x2aab, 0x2aaf, 0x2ab0, 0x2ab3, 0x2ab5, 0x2ac4, 0x2ac6, 0x2ac7,
- 0x2aca, 0x2ad0, 0x2ad5, 0x2ad7, 0x2add, 0x2ae3, 0x2aee, 0x2af0,
- 0x2af7, 0x2afc, 0x2b0b, 0x2b0f, 0x2b15, 0x2b18, 0x2b19, 0x2b1e,
- 0x2b1f, 0x2b20, 0x2b22, 0x2b2b, 0x2b35, 0x2b42, 0x2b4b, 0x2b51,
- 0x2b56, 0x2b5b, 0x2b5c, 0x2b66, 0x2b76, 0x2b7d, 0x2b82, 0x2c07,
- 0x2c5d, 0x2cee, 0x2cef, 0x2cf6, 0x2cf7, 0x2cff, 0x2d02, 0x2d03,
- 0x2d13, 0x2d14, 0x2d19, 0x2d1d, 0x2d3c, 0x2d3e, 0x2d40, 0x2d41,
- 0x2d44, 0x2d47, 0x2d49, 0x2d56, 0x2d84, 0x2d85, 0x2d89, 0x2d8f,
- 0x2d94, 0x2d97, 0x2da6, 0x2da8, 0x2dad, 0x2db7, 0x2db8, 0x2dbc,
- 0x2dbe, 0x2dc8, 0x2df1, 0x2e0b, 0x2e10, 0x2e20, 0x2e26, 0x2e30,
- 0x2e42, 0x2e46, 0x2e48, 0x2e64, 0x2e73, 0x2e82, 0x2e8a, 0x2e8d,
- 0x2e91, 0x2e96, 0x2e99, 0x2e9c, 0x2e9d, 0x2ea3, 0x2ea4, 0x2ea8,
- 0x2eaf, 0x2eb2, 0x2eba, 0x2ed4, 0x2ed6, 0x2ee9, 0x2eea, 0x2efc,
- 0x2f06, 0x2f1f, 0x2f23, 0x2f26, 0x2f2e, 0x2f36, 0x2f38, 0x2f80,
- 0x2fb9, 0x2fbb, 0x2fc3, 0x2fd6, 0x3004, 0x3019, 0x3020, 0x302b,
- 0x302c, 0x3030, 0x305c, 0x3074, 0x3078, 0x307f, 0x30da, 0x3109,
- 0x3121, 0x3122, 0x3127, 0x3137, 0x3141, 0x314c, 0x3150, 0x3151,
- 0x315c, 0x315e, 0x3164, 0x3166, 0x318f, 0x3191, 0x319b, 0x31a6,
- 0x31cd, 0x31d6, 0x31da, 0x31ec, 0x31f2, 0x31fd, 0x31fe, 0x3210,
- 0x3212, 0x3218, 0x322a, 0x3266, 0x3279, 0x3299, 0x32a3, 0x32ac,
- 0x32b2, 0x32b3, 0x32b6, 0x32b8, 0x32b9, 0x32e0, 0x32e1, 0x32ec,
- 0x32ff, 0x330b, 0x334b, 0x33d2, 0x33d8, 0x33e5, 0x33eb, 0x3440,
- 0x344a, 0x344f, 0x3450, 0x3456, 0x3459, 0x3468, 0x346a, 0x3473,
- 0x3481, 0x3485, 0x3498, 0x34aa, 0x34be, 0x34c1, 0x34c8, 0x34ca,
- 0x34cd, 0x34ce, 0x34d2, 0x34d6, 0x34e0, 0x34f3, 0x34f6, 0x34f7,
- 0x34fa, 0x3507, 0x3518, 0x351f, 0x3524, 0x3525, 0x3530, 0x3531,
- 0x3536, 0x3539, 0x3540, 0x354d, 0x3553, 0x357a, 0x357f, 0x3580,
- 0x3585, 0x358b, 0x3598, 0x35a2, 0x35a7, 0x35a8, 0x35d8, 0x35ed,
- 0x3603, 0x3605, 0x3609, 0x360f, 0x3610, 0x3611, 0x3614, 0x3619,
- 0x361a, 0x361c, 0x361e, 0x362c, 0x362e, 0x3630, 0x3639, 0x363b,
- 0x363c, 0x363d, 0x363e, 0x364b, 0x3661, 0x3662, 0x3670, 0x3672,
- 0x3676, 0x3680, 0x3682, 0x36a1, 0x36a8, 0x36ad, 0x36e1, 0x36f6,
- 0x3702, 0x370c, 0x3710, 0x3722, 0x3732, 0x373b, 0x374a, 0x374d,
- 0x3754, 0x3759, 0x37ae, 0x37c1, 0x37ff, 0x381e, 0x382d, 0x386b,
- 0x387e, 0x3886, 0x388e, 0x3893, 0x38dc, 0x38e9, 0x3913, 0x392a,
- 0x3932, 0x3934, 0x393b, 0x394a, 0x395c, 0x3970, 0x3a32, 0x3a43,
- 0x3a5d, 0x3a61, 0x3a72, 0x3a73, 0x3a74, 0x3a75, 0x3a76, 0x3a7a,
- 0x3a80, 0x3a83, 0x3a84, 0x3a88, 0x3a8c, 0x3a9b, 0x3a9c, 0x3ac6,
- 0x3ade, 0x3adf, 0x3ae0, 0x3ae5, 0x3aec, 0x3b20, 0x3b22, 0x3b25,
- 0x3b28, 0x3b45, 0x3b48, 0x3b49, 0x3b53, 0x3b6b, 0x3b71, 0x3b8b,
- 0x3b99, 0x3ba3, 0x3bca, 0x3bcc, 0x3bd2, 0x3bdb, 0x3be6, 0x3bf3,
- 0x3bf4, 0x3bf9, 0x3c04, 0x3c1c, 0x3c28, 0x3c43, 0x3c4c, 0x3c4f,
- 0x3c52, 0x3c56, 0x3c85, 0x3c88, 0x3c99, 0x3ccd, 0x3d02, 0x3d08,
- 0x3d16, 0x3d18, 0x3d19, 0x3d1a, 0x3d2c, 0x3d32, 0x3d3a, 0x3d40,
- 0x3d67, 0x3da1, 0x3da7, 0x3dae, 0x3e10, 0x3e33, 0x3e49, 0x3ed4,
- 0x3ef0, 0x3f74, 0x3f7c, 0x3f8e, 0x3fca, 0x3fcb, 0x4032, 0x4047,
- 0x406a, 0x40c2, 0x40f0, 0x413e, 0x4147, 0x4149, 0x4158, 0x416c,
- 0x4171, 0x417a, 0x418a, 0x41bd, 0x41c0, 0x41c7, 0x41d1, 0x41fd,
- 0x41fe, 0x423c, 0x4250, 0x4283, 0x42ba, 0x430f, 0x4314, 0x4317,
- 0x43c1, 0x4429, 0x442b, 0x4430, 0x4433, 0x4434, 0x4439, 0x4441,
- 0x4442, 0x4444, 0x4446, 0x4448, 0x444b, 0x444c, 0x445d, 0x446a,
- 0x447b, 0x447c, 0x4481, 0x4487, 0x44c3, 0x44d6, 0x44ec, 0x458b,
- 0x458d, 0x458e, 0x458f, 0x4595, 0x4597, 0x45d0, 0x45e8, 0x45ff,
- 0x4605, 0x4609, 0x461c, 0x4630, 0x4631, 0x464f, 0x4651, 0x46f6,
- 0x46fe, 0x4704, 0x4713, 0x4725, 0x4745, 0x47cb, 0x484b, 0x484d,
- 0x484f, 0x4867, 0x486e, 0x486f, 0x487e, 0x4892, 0x48d1, 0x48d2,
- 0x48dc, 0x48de, 0x48e2, 0x48e9, 0x490c, 0x491c, 0x493f, 0x495e,
- 0x4987, 0x498b, 0x49a4, 0x49dc, 0x49ea, 0x49f6, 0x4a00, 0x4a22,
- 0x4a37, 0x4a3d, 0x4a57, 0x4a5a, 0x4a65, 0x4a67, 0x4aa8, 0x4ab2,
- 0x4ad1, 0x4ad5, 0x4b32, 0x4b84, 0x4bcf, 0x4be7, 0x4c0c, 0x4c11,
- 0x4c15, 0x4c2a, 0x4c31, 0x4c41, 0x4c4a, 0x4c53, 0x4c55, 0x4c5d,
- 0x4c61, 0x4c72, 0x4c77, 0x4c82, 0x4c86, 0x4ca4, 0x4cab, 0x4cbe,
- 0x4cc3, 0x4ce2, 0x4ce3, 0x4ceb, 0x4cf1, 0x4cfa, 0x4d05, 0x4d4e,
- 0x4d4f, 0x4d65, 0x4d81, 0x4d8d, 0x4d9d, 0x4df0, 0x4e4b, 0x4e7f,
- 0x4e9f, 0x4eba, 0x4ee3, 0x4f12, 0x4f14, 0x4f16, 0x4f1d, 0x4f44,
- 0x4f6f, 0x4f80, 0x4f83, 0x4f88, 0x4f8e, 0x4f9a, 0x4fba, 0x4fc0,
- 0x4fc3, 0x4fdd, 0x5009, 0x500e, 0x5042, 0x505b, 0x5066, 0x5077,
- 0x5081, 0x50ae, 0x50da, 0x50fb, 0x5104, 0x510b, 0x5118, 0x5119,
- 0x511a, 0x513b, 0x513d, 0x514a, 0x5180, 0x5183, 0x5193, 0x51c2,
- 0x51f6, 0x51f7, 0x5202, 0x5247, 0x5288, 0x52e4, 0x52ed, 0x534e,
- 0x535a, 0x5368, 0x5446, 0x5495, 0x54bd, 0x54ee, 0x5518, 0x5566,
- 0x575d, 0x5764, 0x5779, 0x57bc, 0x57e0, 0x57ed, 0x57f2, 0x580e,
- 0x5818, 0x5890, 0x5892, 0x589c, 0x58a0, 0x58a7, 0x58ab, 0x58bb,
- 0x58cb, 0x58d1, 0x58e3, 0x58f4, 0x58f7, 0x5911, 0x5919, 0x591b,
- 0x591f, 0x5924, 0x5929, 0x593b, 0x593e, 0x5942, 0x5944, 0x5945,
- 0x5966, 0x5977, 0x5982, 0x5983, 0x5984, 0x599d, 0x599e, 0x59a6,
- 0x59a9, 0x59af, 0x59bb, 0x59bd, 0x59be, 0x59c1, 0x59c3, 0x59d0,
- 0x59d8, 0x59dc, 0x59e7, 0x5a09, 0x5a13, 0x5a2c, 0x5a2e, 0x5a69,
- 0x5a81, 0x5a88, 0x5a9b, 0x5aa4, 0x5ab2, 0x5aef, 0x5b61, 0x5b72,
- 0x5bb1, 0x5bb2, 0x5bb8, 0x5bba, 0x5bbd, 0x5bc8, 0x5bc9, 0x5bcc,
- 0x5bd0, 0x5bd4, 0x5bd8, 0x5bfb, 0x5c0e, 0x5c4a, 0x5c75, 0x5c81,
- 0x5c88, 0x5c96, 0x5c9b, 0x5cb4, 0x5cc4, 0x5cf0, 0x5d00, 0x5dbc,
- 0x5ddb, 0x5df0, 0x5df3, 0x5e0e, 0x5e14, 0x5e1a, 0x5e26, 0x5e3b,
- 0x5e49, 0x5eac, 0x5eaf, 0x5eb7, 0x5ec3, 0x5ecb, 0x5ecd, 0x5edf,
- 0x5ee2, 0x5ee5, 0x5efc, 0x5f0e, 0x5f11, 0x5f12, 0x5f14, 0x5f20,
- 0x5f21, 0x5f2a, 0x5f2b, 0x5f30, 0x5f31, 0x5f34, 0x5f3f, 0x5f42,
- 0x5f43, 0x5f56, 0x5f5b, 0x5f5c, 0x5f5f, 0x5f64, 0x5f65, 0x5f66,
- 0x5f71, 0x5f7a, 0x5f89, 0x5f90, 0x5f95, 0x5f9b, 0x5fb4, 0x5fbb,
- 0x5ff9, 0x6006, 0x600e, 0x605e, 0x6063, 0x6065, 0x6089, 0x60bc,
- 0x60de, 0x60df, 0x60e0, 0x60e2, 0x60ee, 0x6155, 0x616c, 0x6191,
- 0x6233, 0x6240, 0x6243, 0x6488, 0x649a, 0x649c, 0x64a4, 0x64b3,
- 0x64ed, 0x6501, 0x6544, 0x6555, 0x655e, 0x6561, 0x6573, 0x6575,
- 0x6589, 0x658e, 0x659f, 0x65ac, 0x65ad, 0x65b4, 0x65b9, 0x65cc,
- 0x65d7, 0x65e2, 0x65e7, 0x65ea, 0x65f3, 0x65f4, 0x65f9, 0x65fb,
- 0x6603, 0x660c, 0x6611, 0x6618, 0x6663, 0x666a, 0x666f, 0x6673,
- 0x667a, 0x6685, 0x6704, 0x6710, 0x6714, 0x6716, 0x6719, 0x6728,
- 0x6729, 0x673e, 0x674d, 0x675d, 0x6765, 0x6769, 0x676f, 0x6780,
- 0x67b9, 0x67ec, 0x67f0, 0x6800, 0x6803, 0x6839, 0x68a7, 0x68aa,
- 0x68d5, 0x68d6, 0x6923, 0x6924, 0x6968, 0x69e5, 0x69e9, 0x69fb,
- 0x6a6b, 0x6bf6, 0x6da8, 0x6dcd, 0x6dd5, 0x6de3, 0x6def, 0x6df9,
- 0x6e24, 0x6e4c, 0xbf12, 0xbf19, 0xbf1c, 0xbf1d, 0xbf1e, 0xbf22,
- 0xbf24, 0xbf26, 0xbf2a, 0xbf2d, 0xbf32, 0xbf37, 0xbf38, 0xbf39,
- 0xbf4f, 0xbf54, 0xbf59, 0xbf5c, 0xbf5d, 0xbf5e, 0xbf62, 0xbf63,
- 0xbf64, 0xbf65, 0xbf78, 0xbf79, 0xbf7f, 0xbf81, 0xbf82, 0xbf85,
- 0xbf88, 0xbf89, 0xbf8a, 0xbf8c, 0xbfa4, 0xbfa6, 0xbfd5, 0xbfd6,
- 0xbfd8, 0xbfda, 0xbff1, 0xbff8, 0xbffb, 0xc004, 0xc02d, 0xc035,
- 0xc06c, 0xc0fc, 0xc151, 0xc152, 0xc153, 0xc154, 0xc155, 0xc198,
- 0xc1a4, 0xc1fe, 0xc215, 0xc46b, 0xc6d3, 0xc7b3, 0xce19, 0xce1a,
- 0xce1d, 0xce22, 0xce23
-};
-
-/*Collect the unicode lists and glyph_id offsets*/
-static const lv_font_fmt_txt_cmap_t cmaps[] = {
- {
- .range_start = 32, .range_length = 96, .glyph_id_start = 1,
- .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
- },
- {
- .range_start = 12289, .range_length = 72, .glyph_id_start = 97,
- .unicode_list = unicode_list_1, .glyph_id_ofs_list = NULL, .list_length = 12, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
- },
- {
- .range_start = 12362, .range_length = 24, .glyph_id_start = 109,
- .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
- },
- {
- .range_start = 12387, .range_length = 43, .glyph_id_start = 133,
- .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
- },
- {
- .range_start = 12431, .range_length = 95, .glyph_id_start = 176,
- .unicode_list = NULL, .glyph_id_ofs_list = glyph_id_ofs_list_4, .list_length = 95, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL
- },
- {
- .range_start = 12527, .range_length = 52772, .glyph_id_start = 248,
- .unicode_list = unicode_list_5, .glyph_id_ofs_list = NULL, .list_length = 1187, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
- }
-};
-
-/*--------------------
- * ALL CUSTOM DATA
- *--------------------*/
-
-#if LVGL_VERSION_MAJOR >= 8
-/*Store all the custom data of the font*/
-
-static const lv_font_fmt_txt_dsc_t font_dsc = {
-#else
-static lv_font_fmt_txt_dsc_t font_dsc = {
-#endif
- .glyph_bitmap = glyph_bitmap,
- .glyph_dsc = glyph_dsc,
- .cmaps = cmaps,
- .kern_dsc = NULL,
- .kern_scale = 0,
- .cmap_num = 6,
- .bpp = 4,
- .kern_classes = 0,
- .bitmap_format = 0,
-
-};
-
-/*-----------------
- * PUBLIC FONT
- *----------------*/
-
-#ifdef _MSC_VER
- #pragma deprecated(lv_font_simsun_14_cjk)
-#else
- #warning "LV_FONT_SIMSUN_14_CJK is deprecated, use LV_FONT_SOURCE_HAN_SANS_SC_14_CJK instead."
-#endif
-
-/*Initialize a public general font descriptor*/
-#if LVGL_VERSION_MAJOR >= 8
-const lv_font_t lv_font_simsun_14_cjk = {
-#else
-lv_font_t lv_font_simsun_14_cjk = {
-#endif
- .get_glyph_dsc = lv_font_get_glyph_dsc_fmt_txt, /*Function pointer to get glyph's data*/
- .get_glyph_bitmap = lv_font_get_bitmap_fmt_txt, /*Function pointer to get glyph's bitmap*/
- .line_height = 15, /*The maximum line height required by the font*/
- .base_line = 2, /*Baseline measured from the bottom of the line*/
-#if !(LVGL_VERSION_MAJOR == 6 && LVGL_VERSION_MINOR == 0)
- .subpx = LV_FONT_SUBPX_NONE,
-#endif
-#if LV_VERSION_CHECK(7, 4, 0) || LVGL_VERSION_MAJOR >= 8
- .underline_position = -2,
- .underline_thickness = 1,
-#endif
- .dsc = &font_dsc /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */
-};
-
-#endif /*#if LV_FONT_SIMSUN_14_CJK*/
diff --git a/lib/libesp32_lvgl/lvgl/src/font/lv_font_simsun_16_cjk.c b/lib/libesp32_lvgl/lvgl/src/font/lv_font_simsun_16_cjk.c
deleted file mode 100644
index 041f30e9e..000000000
--- a/lib/libesp32_lvgl/lvgl/src/font/lv_font_simsun_16_cjk.c
+++ /dev/null
@@ -1,24154 +0,0 @@
-/*******************************************************************************
- * Size: 16 px
- * Bpp: 4
- * Opts: --no-compress --no-prefilter --bpp 4 --size 16 --font SimSun.woff -r 0x20-0x7f --symbols (),盗提陽帯鼻画輕ッ冊ェル写父ぁフ結想正四O夫源庭場天續鳥れ講猿苦階給了製守8祝己妳薄泣塩帰ぺ吃変輪那着仍嗯爭熱創味保字宿捨準查達肯ァ薬得査障該降察ね網加昼料等図邪秋コ態品屬久原殊候路願楽確針上被怕悲風份重歡っ附ぷ既4黨價娘朝凍僅際洋止右航よ专角應酸師個比則響健昇豐筆歷適修據細忙跟管長令家ザ期般花越ミ域泳通些油乏ラ。營ス返調農叫樹刊愛間包知把ヤ貧橋拡普聞前ジ建当繰ネ送習渇用補ィ覺體法遊宙ョ酔余利壊語くつ払皆時辺追奇そ們只胸械勝住全沈力光ん深溝二類北面社值試9和五勵ゃ貿幾逐打課ゲて領3鼓辦発評1渉詳暇込计駄供嘛郵頃腦反構絵お容規借身妻国慮剛急乗静必議置克土オ乎荷更肉還混古渡授合主離條値決季晴東大尚央州が嗎験流先医亦林田星晩拿60旅婦量為痛テ孫う環友況玩務其ぼち揺坐一肩腰犯タょ希即果ぶ物練待み高九找やヶ都グ去」サ、气仮雑酒許終企笑録形リ銀切ギ快問滿役単黄集森毎實研喜蘇司鉛洲川条媽ノ才兩話言雖媒出客づ卻現異故り誌逮同訊已視本題ぞを横開音第席費持眾怎選元退限ー賽処喝就残無いガ多ケ沒義遠歌隣錢某雪析嬉採自透き側員予ゼ白婚电へ顯呀始均畫似懸格車騒度わ親店週維億締慣免帳電甚來園浴ゅ愈京と杯各海怒ぜ排敗挙老買7極模実紀ヒ携隻告シ並屋這孩讓質ワブ富賃争康由辞マ火於短樣削弟材注節另室ダ招擁ぃ若套底波行勤關著泊背疲狭作念推ぐ民貸祖介說ビ代温契你我レ入描變再札ソ派頭智遅私聽舉灣山伸放直安ト誕煙付符幅ふ絡她届耳飲忘参革團仕様載ど歩獲嫌息の汚交興魚指資雙與館初学年幸史位柱族走括び考青也共腕Lで販擔理病イ今逃當寺猫邊菓係ム秘示解池影ド文例斷曾事茶寫明科桃藝売便え導禁財飛替而亡到し具空寝辛業ウ府セ國何基菜厳市努張缺雲根外だ断万砂ゴ超使台实ぽ礼最慧算軟界段律像夕丈窓助刻月夏政呼ぴざ擇趣除動従涼方勉名線対存請子氏將5少否諸論美感或西者定食御表は參歳緑命進易性錯房も捕皿判中觀戦ニ緩町ピ番ず金千ろ?不た象治関ャ每看徒卒統じ手範訪押座步号ベ旁以母すほ密減成往歲件緒読歯效院种七謂凝濃嵌震喉繼クュ拭死円2積水欲如ポにさ寒道區精啦姐ア聯能足及停思壓2春且メ裏株官答概黒過氷柿戻厚ぱ党祭織引計け委暗複誘港バ失下村較続神ぇ尤強秀膝兒来績十書済化服破新廠1紹您情半式產系好教暑早め樂地休協良な哪常要揮周かエ麗境働避護ンツ香夜太見設非改広聲他検求危清彼經未在起葉控靴所差內造寄南望尺換向展備眠點完約ぎ裡分説申童優伝島机須塊日立拉,鉄軽單気信很転識支布数紙此迎受心輸坊モ處「訳三曇兄野顔戰增ナ伊列又髪両有取左毛至困吧昔赤狀相夠整別士経頼然簡ホ会發隨営需脱ヨば接永居冬迫圍甘醫誰部充消連弱宇會咲覚姉麼的増首统帶糖朋術商担移景功育庫曲總劃牛程駅犬報ロ學責因パ嚴八世後平負公げ曜陸專午之閉ぬ談ご災昨冷職悪謝對它近射敢意運船臉局難什産頗!球真記ま但蔵究制機案湖臺ひ害券男留内木驗雨施種特復句末濟キ色訴依せ百型る石牠討呢时任執飯歐宅組傳配小活ゆべ暖ズ漸站素らボ束価チ浅回女片独妹英目從認生違策僕楚ペ米こ掛む爸六状落漢プ投カ校做啊洗声探あ割体項履触々訓技ハ低工映是標速善点人デ口次可廿节宵植树端阳旦腊妇费愚劳动儿军师庆圣诞闰 --font FontAwesome5-Solid+Brands+Regular.woff -r 61441,61448,61451,61452,61452,61453,61457,61459,61461,61465,61468,61473,61478,61479,61480,61502,61507,61512,61515,61516,61517,61521,61522,61523,61524,61543,61544,61550,61552,61553,61556,61559,61560,61561,61563,61587,61589,61636,61637,61639,61641,61664,61671,61674,61683,61724,61732,61787,61931,62016,62017,62018,62019,62020,62087,62099,62212,62189,62810,63426,63650 --format lvgl -o lv_font_simsun_16_cjk.c --force-fast-kern-format
- ******************************************************************************/
-
-#ifdef LV_LVGL_H_INCLUDE_SIMPLE
- #include "lvgl.h"
-#else
- #include "../../lvgl.h"
-#endif
-
-#ifndef LV_FONT_SIMSUN_16_CJK
- #define LV_FONT_SIMSUN_16_CJK 1
-#endif
-
-#if LV_FONT_SIMSUN_16_CJK
-
-/*-----------------
- * BITMAPS
- *----------------*/
-
-/*Store the image of the glyphs*/
-static LV_ATTRIBUTE_LARGE_CONST const uint8_t glyph_bitmap[] = {
- /* U+0020 " " */
-
- /* U+0021 "!" */
- 0x97, 0xb9, 0xa8, 0x97, 0x75, 0x64, 0x53, 0x53,
- 0x0, 0x0, 0xa8, 0xb9,
-
- /* U+0022 "\"" */
- 0x2, 0xe1, 0x98, 0xa, 0xc3, 0xf4, 0x2c, 0xa,
- 0x60, 0x81, 0x27, 0x0, 0x0, 0x0, 0x0,
-
- /* U+0023 "#" */
- 0x0, 0x90, 0x3, 0x50, 0x0, 0x90, 0x4, 0x40,
- 0x0, 0x90, 0x6, 0x40, 0x7f, 0xff, 0xff, 0xf6,
- 0x13, 0xa3, 0x39, 0x41, 0x0, 0x80, 0x8, 0x0,
- 0x1, 0x70, 0x9, 0x0, 0x3, 0x70, 0x9, 0x0,
- 0x7f, 0xff, 0xff, 0xf6, 0x17, 0x73, 0x3a, 0x31,
- 0x5, 0x30, 0x9, 0x0, 0x6, 0x20, 0x9, 0x0,
-
- /* U+0024 "$" */
- 0x0, 0x45, 0x0, 0x6, 0xaa, 0x80, 0x48, 0x45,
- 0x86, 0x95, 0x45, 0xc7, 0x7b, 0x45, 0x20, 0x1e,
- 0xc5, 0x0, 0x2, 0xec, 0x0, 0x0, 0x4f, 0xb0,
- 0x0, 0x45, 0xd5, 0x52, 0x45, 0x6a, 0xe7, 0x45,
- 0x49, 0xa4, 0x45, 0x74, 0x18, 0x9a, 0x60, 0x0,
- 0x45, 0x0, 0x0, 0x45, 0x0,
-
- /* U+0025 "%" */
- 0x19, 0x80, 0x3, 0x20, 0x82, 0x64, 0x8, 0x0,
- 0xb0, 0x47, 0x7, 0x0, 0xc0, 0x48, 0x61, 0x0,
- 0xb0, 0x47, 0x70, 0x0, 0x73, 0x76, 0x50, 0x0,
- 0x7, 0x67, 0x7, 0x60, 0x0, 0x7, 0x64, 0x64,
- 0x0, 0x42, 0xa1, 0x38, 0x0, 0x70, 0xb1, 0x39,
- 0x1, 0x50, 0x82, 0x47, 0x5, 0x0, 0x19, 0x91,
-
- /* U+0026 "&" */
- 0x0, 0x88, 0x50, 0x0, 0x6, 0x40, 0xc0, 0x0,
- 0x9, 0x30, 0xd0, 0x0, 0x8, 0x53, 0x90, 0x0,
- 0x6, 0x99, 0x10, 0x0, 0x5, 0xf0, 0x2a, 0x80,
- 0x18, 0xd4, 0x9, 0x10, 0x84, 0x6a, 0x8, 0x0,
- 0xc2, 0xe, 0x38, 0x0, 0xb3, 0x6, 0xe5, 0x0,
- 0x6a, 0x0, 0xe9, 0x5, 0x9, 0xc9, 0x2b, 0xc3,
-
- /* U+0027 "'" */
- 0xb, 0xb0, 0x7, 0xf0, 0x0, 0xc0, 0x8, 0x30,
- 0x1, 0x0,
-
- /* U+0028 "(" */
- 0x0, 0x6, 0x10, 0x4, 0x60, 0x0, 0xb0, 0x0,
- 0x84, 0x0, 0xd, 0x0, 0x4, 0xa0, 0x0, 0x67,
- 0x0, 0x8, 0x60, 0x0, 0x77, 0x0, 0x6, 0x80,
- 0x0, 0x2c, 0x0, 0x0, 0xc1, 0x0, 0x5, 0x70,
- 0x0, 0xa, 0x10, 0x0, 0x19, 0x0, 0x0, 0x21,
-
- /* U+0029 ")" */
- 0x16, 0x0, 0x0, 0x74, 0x0, 0x0, 0xb0, 0x0,
- 0x5, 0x70, 0x0, 0xd, 0x0, 0x0, 0xb3, 0x0,
- 0x8, 0x50, 0x0, 0x77, 0x0, 0x8, 0x60, 0x0,
- 0x95, 0x0, 0xc, 0x10, 0x1, 0xb0, 0x0, 0x84,
- 0x0, 0x29, 0x0, 0x9, 0x0, 0x1, 0x10, 0x0,
-
- /* U+002A "*" */
- 0x0, 0x7, 0x80, 0x0, 0x0, 0x8, 0x80, 0x0,
- 0x5d, 0x26, 0x52, 0xd4, 0x18, 0xd6, 0x6d, 0x80,
- 0x0, 0x1b, 0xa1, 0x0, 0x8, 0xd6, 0x6d, 0x80,
- 0x5d, 0x27, 0x52, 0xd4, 0x0, 0x9, 0x70, 0x0,
- 0x0, 0x9, 0x70, 0x0,
-
- /* U+002B "+" */
- 0x0, 0x2, 0x40, 0x0, 0x0, 0x3, 0x60, 0x0,
- 0x0, 0x3, 0x60, 0x0, 0x0, 0x3, 0x60, 0x0,
- 0x39, 0x9a, 0xc9, 0x94, 0x0, 0x3, 0x60, 0x0,
- 0x0, 0x3, 0x60, 0x0, 0x0, 0x3, 0x60, 0x0,
- 0x0, 0x2, 0x40, 0x0,
-
- /* U+002C "," */
- 0xb, 0xb0, 0x7, 0xf0, 0x0, 0xc0, 0x8, 0x40,
- 0x2, 0x0,
-
- /* U+002D "-" */
- 0x49, 0x99, 0x99, 0x94,
-
- /* U+002E "." */
- 0x0, 0xcb, 0xbb,
-
- /* U+002F "/" */
- 0x0, 0x0, 0x0, 0x11, 0x0, 0x0, 0x0, 0x71,
- 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0x5, 0x20,
- 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x44, 0x0,
- 0x0, 0x0, 0x80, 0x0, 0x0, 0x2, 0x60, 0x0,
- 0x0, 0x8, 0x0, 0x0, 0x0, 0x7, 0x0, 0x0,
- 0x0, 0x71, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0,
- 0x5, 0x30, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0,
- 0x35, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
-
- /* U+0030 "0" */
- 0x0, 0x6a, 0x95, 0x0, 0x3, 0xc0, 0xb, 0x30,
- 0xb, 0x60, 0x6, 0xa0, 0xf, 0x20, 0x2, 0xf0,
- 0x2f, 0x0, 0x1, 0xf1, 0x3f, 0x0, 0x0, 0xf2,
- 0x3f, 0x0, 0x0, 0xf2, 0x2f, 0x0, 0x1, 0xf1,
- 0xf, 0x20, 0x2, 0xe0, 0xb, 0x50, 0x6, 0xa0,
- 0x3, 0xc0, 0xb, 0x30, 0x0, 0x6a, 0x95, 0x0,
-
- /* U+0031 "1" */
- 0x0, 0x17, 0x0, 0x16, 0xd9, 0x0, 0x0, 0x79,
- 0x0, 0x0, 0x79, 0x0, 0x0, 0x79, 0x0, 0x0,
- 0x79, 0x0, 0x0, 0x79, 0x0, 0x0, 0x79, 0x0,
- 0x0, 0x79, 0x0, 0x0, 0x79, 0x0, 0x0, 0x79,
- 0x0, 0x16, 0xde, 0x72,
-
- /* U+0032 "2" */
- 0x0, 0x77, 0x89, 0x0, 0x92, 0x0, 0x88, 0xe,
- 0x20, 0x4, 0xc0, 0xd5, 0x0, 0x3c, 0x0, 0x0,
- 0x8, 0x80, 0x0, 0x1, 0xd1, 0x0, 0x0, 0x93,
- 0x0, 0x0, 0x74, 0x0, 0x0, 0x55, 0x0, 0x0,
- 0x28, 0x0, 0x6, 0x9, 0x0, 0x1, 0xa2, 0xff,
- 0xff, 0xfb,
-
- /* U+0033 "3" */
- 0x1, 0x77, 0xa5, 0x0, 0xa2, 0x0, 0xd3, 0xd,
- 0x40, 0x8, 0x80, 0x10, 0x0, 0x96, 0x0, 0x0,
- 0x2c, 0x10, 0x0, 0x8d, 0x20, 0x0, 0x0, 0xb,
- 0x30, 0x0, 0x0, 0x4c, 0x3, 0x0, 0x2, 0xf0,
- 0xf4, 0x0, 0x3d, 0xd, 0x30, 0x9, 0x60, 0x28,
- 0x78, 0x70,
-
- /* U+0034 "4" */
- 0x0, 0x0, 0x2b, 0x0, 0x0, 0x0, 0xac, 0x0,
- 0x0, 0x3, 0x8c, 0x0, 0x0, 0x8, 0x4c, 0x0,
- 0x0, 0x53, 0x4c, 0x0, 0x0, 0x80, 0x4c, 0x0,
- 0x6, 0x20, 0x4c, 0x0, 0x7, 0x0, 0x4c, 0x0,
- 0x47, 0x66, 0x8d, 0x62, 0x0, 0x0, 0x4c, 0x0,
- 0x0, 0x0, 0x4c, 0x0, 0x0, 0x5, 0xaf, 0x71,
-
- /* U+0035 "5" */
- 0x5, 0xff, 0xff, 0xb0, 0x61, 0x0, 0x0, 0x7,
- 0x0, 0x0, 0x0, 0x70, 0x0, 0x0, 0x7, 0x5a,
- 0xca, 0x0, 0x85, 0x0, 0xa7, 0x1, 0x0, 0x3,
- 0xd0, 0x0, 0x0, 0x1f, 0x7, 0x20, 0x1, 0xe0,
- 0xf4, 0x0, 0x3c, 0xb, 0x10, 0x9, 0x50, 0x17,
- 0x79, 0x80,
-
- /* U+0036 "6" */
- 0x0, 0x28, 0x7b, 0x20, 0x1, 0xa0, 0xa, 0x80,
- 0x9, 0x40, 0x0, 0x0, 0xe, 0x10, 0x0, 0x0,
- 0x1f, 0x2a, 0xbb, 0x10, 0x3f, 0x90, 0x7, 0xa0,
- 0x3f, 0x20, 0x0, 0xf0, 0x3f, 0x0, 0x0, 0xe2,
- 0x1f, 0x10, 0x0, 0xe2, 0xd, 0x40, 0x0, 0xe0,
- 0x6, 0xb0, 0x4, 0x90, 0x0, 0x79, 0x88, 0x0,
-
- /* U+0037 "7" */
- 0xaf, 0xff, 0xff, 0xb, 0x30, 0x1, 0x80, 0x60,
- 0x0, 0x71, 0x0, 0x0, 0x8, 0x0, 0x0, 0x7,
- 0x30, 0x0, 0x0, 0xb0, 0x0, 0x0, 0x49, 0x0,
- 0x0, 0x9, 0x50, 0x0, 0x0, 0xd3, 0x0, 0x0,
- 0xf, 0x30, 0x0, 0x2, 0xf3, 0x0, 0x0, 0x1e,
- 0x20, 0x0,
-
- /* U+0038 "8" */
- 0x1, 0x87, 0x78, 0x0, 0xa, 0x20, 0x4, 0x80,
- 0xd, 0x0, 0x0, 0xd0, 0xe, 0x20, 0x0, 0xc0,
- 0x7, 0xd3, 0x7, 0x50, 0x0, 0x9f, 0xc6, 0x0,
- 0x5, 0x72, 0xbe, 0x10, 0xc, 0x0, 0x9, 0xb0,
- 0x39, 0x0, 0x0, 0xf0, 0x3a, 0x0, 0x0, 0xe0,
- 0xb, 0x10, 0x3, 0x90, 0x1, 0x87, 0x78, 0x0,
-
- /* U+0039 "9" */
- 0x1, 0x98, 0x86, 0x0, 0xa, 0x40, 0x9, 0x40,
- 0x1e, 0x0, 0x4, 0xb0, 0x3c, 0x0, 0x2, 0xf0,
- 0x4c, 0x0, 0x1, 0xf1, 0x2e, 0x0, 0x6, 0xf1,
- 0xc, 0x70, 0x29, 0xf1, 0x1, 0x99, 0x73, 0xf0,
- 0x0, 0x0, 0x5, 0xb0, 0x0, 0x0, 0x9, 0x50,
- 0xa, 0x80, 0x1c, 0x0, 0x4, 0xb7, 0x91, 0x0,
-
- /* U+003A ":" */
- 0xc8, 0xb7, 0x0, 0x0, 0x0, 0x0, 0xb7, 0xc8,
-
- /* U+003B ";" */
- 0xda, 0x64, 0x0, 0x0, 0x0, 0x0, 0x65, 0xda,
- 0x56, 0x90,
-
- /* U+003C "<" */
- 0x0, 0x0, 0x1, 0x0, 0x0, 0x38, 0x0, 0x2,
- 0x90, 0x0, 0x19, 0x0, 0x1, 0xa0, 0x0, 0xa,
- 0x10, 0x0, 0xa1, 0x0, 0x0, 0x56, 0x0, 0x0,
- 0x6, 0x50, 0x0, 0x0, 0x74, 0x0, 0x0, 0x8,
- 0x30, 0x0, 0x0, 0x92, 0x0, 0x0, 0x6,
-
- /* U+003D "=" */
- 0x49, 0x99, 0x99, 0x94, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x49, 0x99, 0x99, 0x94,
-
- /* U+003E ">" */
- 0x10, 0x0, 0x0, 0x83, 0x0, 0x0, 0x9, 0x20,
- 0x0, 0x0, 0x91, 0x0, 0x0, 0xa, 0x10, 0x0,
- 0x1, 0xa0, 0x0, 0x0, 0x1a, 0x0, 0x0, 0x65,
- 0x0, 0x5, 0x60, 0x0, 0x47, 0x0, 0x3, 0x80,
- 0x0, 0x29, 0x0, 0x0, 0x60, 0x0, 0x0,
-
- /* U+003F "?" */
- 0x0, 0x79, 0xa9, 0x10, 0x8, 0x10, 0x5, 0xb0,
- 0x1a, 0x0, 0x0, 0xf1, 0x2f, 0x40, 0x0, 0xf1,
- 0x5, 0x10, 0x5, 0xe0, 0x0, 0x0, 0x5d, 0x20,
- 0x0, 0x3, 0xa0, 0x0, 0x0, 0x6, 0x10, 0x0,
- 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb, 0x70, 0x0, 0x0, 0xc, 0x80, 0x0,
-
- /* U+0040 "@" */
- 0x0, 0x38, 0x78, 0x10, 0x2, 0x90, 0x0, 0x90,
- 0xa, 0x10, 0x79, 0x64, 0x1b, 0x8, 0x2b, 0x27,
- 0x49, 0xa, 0xc, 0x9, 0x58, 0x57, 0xc, 0x8,
- 0x58, 0x84, 0xb, 0x8, 0x39, 0x93, 0x39, 0x25,
- 0x1b, 0x73, 0x78, 0x70, 0xa, 0x29, 0x3a, 0x41,
- 0x3, 0x80, 0x0, 0x72, 0x0, 0x59, 0x88, 0x30,
-
- /* U+0041 "A" */
- 0x0, 0x5, 0x50, 0x0, 0x0, 0xc, 0xa0, 0x0,
- 0x0, 0x8, 0xe0, 0x0, 0x0, 0x44, 0xd1, 0x0,
- 0x0, 0x70, 0x95, 0x0, 0x0, 0x80, 0x68, 0x0,
- 0x0, 0x80, 0x2c, 0x0, 0x3, 0x96, 0x6f, 0x0,
- 0x7, 0x10, 0xc, 0x30, 0x8, 0x0, 0x8, 0x70,
- 0x9, 0x0, 0x5, 0xa0, 0x8d, 0x20, 0x9, 0xf5,
-
- /* U+0042 "B" */
- 0x4e, 0xa6, 0x8a, 0x20, 0xb, 0x50, 0x6, 0xb0,
- 0xb, 0x50, 0x2, 0xe0, 0xb, 0x50, 0x3, 0xd0,
- 0xb, 0x50, 0xa, 0x50, 0xb, 0x96, 0xb7, 0x0,
- 0xb, 0x50, 0x7, 0x90, 0xb, 0x50, 0x0, 0xe2,
- 0xb, 0x50, 0x0, 0xc6, 0xb, 0x50, 0x0, 0xd5,
- 0xb, 0x50, 0x3, 0xe1, 0x5e, 0xa6, 0x7a, 0x30,
-
- /* U+0043 "C" */
- 0x0, 0x49, 0x7c, 0xf0, 0x3, 0xb0, 0x0, 0xb2,
- 0xc, 0x40, 0x0, 0x25, 0x2f, 0x0, 0x0, 0x0,
- 0x6c, 0x0, 0x0, 0x0, 0x7b, 0x0, 0x0, 0x0,
- 0x7b, 0x0, 0x0, 0x0, 0x6c, 0x0, 0x0, 0x0,
- 0x4e, 0x0, 0x0, 0x2, 0xf, 0x20, 0x0, 0x42,
- 0x7, 0xa0, 0x1, 0x70, 0x0, 0x7b, 0x98, 0x0,
-
- /* U+0044 "D" */
- 0x4e, 0xb6, 0x84, 0x0, 0xb, 0x50, 0xa, 0x50,
- 0xb, 0x50, 0x3, 0xe0, 0xb, 0x50, 0x0, 0xe3,
- 0xb, 0x50, 0x0, 0xd5, 0xb, 0x50, 0x0, 0xc6,
- 0xb, 0x50, 0x0, 0xc6, 0xb, 0x50, 0x0, 0xd5,
- 0xb, 0x50, 0x0, 0xf2, 0xb, 0x50, 0x3, 0xd0,
- 0xb, 0x50, 0xb, 0x40, 0x4e, 0xb6, 0x94, 0x0,
-
- /* U+0045 "E" */
- 0x3d, 0xb6, 0x6b, 0xc0, 0xa, 0x60, 0x0, 0xb0,
- 0xa, 0x60, 0x0, 0x22, 0xa, 0x60, 0x0, 0x0,
- 0xa, 0x60, 0x6, 0x0, 0xa, 0xa6, 0x8b, 0x0,
- 0xa, 0x60, 0x9, 0x0, 0xa, 0x60, 0x6, 0x0,
- 0xa, 0x60, 0x0, 0x0, 0xa, 0x60, 0x0, 0x3,
- 0xa, 0x60, 0x0, 0x63, 0x3d, 0xb6, 0x69, 0xe0,
-
- /* U+0046 "F" */
- 0x3d, 0xb6, 0x69, 0xf1, 0xa, 0x60, 0x0, 0x65,
- 0xa, 0x60, 0x0, 0x5, 0xa, 0x60, 0x0, 0x0,
- 0xa, 0x60, 0x6, 0x0, 0xa, 0xa6, 0x7e, 0x0,
- 0xa, 0x60, 0x9, 0x0, 0xa, 0x60, 0x5, 0x0,
- 0xa, 0x60, 0x0, 0x0, 0xa, 0x60, 0x0, 0x0,
- 0xa, 0x60, 0x0, 0x0, 0x4d, 0xb2, 0x0, 0x0,
-
- /* U+0047 "G" */
- 0x0, 0x68, 0x9f, 0x50, 0x4, 0x90, 0x4, 0x80,
- 0xd, 0x10, 0x0, 0x70, 0x3c, 0x0, 0x0, 0x0,
- 0x6a, 0x0, 0x0, 0x0, 0x89, 0x0, 0x0, 0x0,
- 0x89, 0x0, 0x29, 0xb4, 0x6a, 0x0, 0x5, 0xb0,
- 0x4d, 0x0, 0x5, 0xb0, 0xe, 0x10, 0x5, 0xb0,
- 0x7, 0x80, 0x6, 0xb0, 0x0, 0x88, 0x77, 0x20,
-
- /* U+0048 "H" */
- 0x4f, 0x80, 0x9, 0xf4, 0xe, 0x20, 0x3, 0xd0,
- 0xe, 0x20, 0x3, 0xd0, 0xe, 0x20, 0x3, 0xd0,
- 0xe, 0x20, 0x3, 0xd0, 0xe, 0x76, 0x68, 0xd0,
- 0xe, 0x20, 0x3, 0xd0, 0xe, 0x20, 0x3, 0xd0,
- 0xe, 0x20, 0x3, 0xd0, 0xe, 0x20, 0x3, 0xd0,
- 0xe, 0x20, 0x3, 0xd0, 0x5f, 0x90, 0x9, 0xf4,
-
- /* U+0049 "I" */
- 0x36, 0xcc, 0x63, 0x0, 0x88, 0x0, 0x0, 0x88,
- 0x0, 0x0, 0x88, 0x0, 0x0, 0x88, 0x0, 0x0,
- 0x88, 0x0, 0x0, 0x88, 0x0, 0x0, 0x88, 0x0,
- 0x0, 0x88, 0x0, 0x0, 0x88, 0x0, 0x0, 0x88,
- 0x0, 0x36, 0xcc, 0x63,
-
- /* U+004A "J" */
- 0x0, 0x36, 0xbd, 0x64, 0x0, 0x0, 0x79, 0x0,
- 0x0, 0x0, 0x79, 0x0, 0x0, 0x0, 0x79, 0x0,
- 0x0, 0x0, 0x79, 0x0, 0x0, 0x0, 0x79, 0x0,
- 0x0, 0x0, 0x79, 0x0, 0x0, 0x0, 0x79, 0x0,
- 0x0, 0x0, 0x79, 0x0, 0x0, 0x0, 0x79, 0x0,
- 0x0, 0x0, 0x78, 0x0, 0x1, 0x0, 0x87, 0x0,
- 0x5d, 0x0, 0xb2, 0x0, 0x1b, 0x77, 0x40, 0x0,
-
- /* U+004B "K" */
- 0x4e, 0xa1, 0x2c, 0xb2, 0xb, 0x50, 0x9, 0x0,
- 0xb, 0x50, 0x62, 0x0, 0xb, 0x51, 0x60, 0x0,
- 0xb, 0x5a, 0x10, 0x0, 0xb, 0x9d, 0x60, 0x0,
- 0xb, 0xa3, 0xd0, 0x0, 0xb, 0x50, 0xd3, 0x0,
- 0xb, 0x50, 0x6a, 0x0, 0xb, 0x50, 0xe, 0x10,
- 0xb, 0x50, 0x9, 0x70, 0x4e, 0xa1, 0xa, 0xf5,
-
- /* U+004C "L" */
- 0x2c, 0xc3, 0x0, 0x0, 0x8, 0x80, 0x0, 0x0,
- 0x8, 0x80, 0x0, 0x0, 0x8, 0x80, 0x0, 0x0,
- 0x8, 0x80, 0x0, 0x0, 0x8, 0x80, 0x0, 0x0,
- 0x8, 0x80, 0x0, 0x0, 0x8, 0x80, 0x0, 0x0,
- 0x8, 0x80, 0x0, 0x0, 0x8, 0x80, 0x0, 0x4,
- 0x8, 0x80, 0x0, 0x63, 0x3c, 0xc6, 0x69, 0xf0,
-
- /* U+004D "M" */
- 0x7f, 0x0, 0x4, 0xf6, 0x1f, 0x30, 0x7, 0xf0,
- 0x1c, 0x60, 0x6, 0xf0, 0x19, 0x90, 0x6, 0xf0,
- 0x16, 0xc0, 0x14, 0xf0, 0x15, 0xd0, 0x51, 0xf0,
- 0x15, 0xb3, 0x60, 0xf0, 0x15, 0x86, 0x60, 0xf0,
- 0x15, 0x49, 0x60, 0xf0, 0x15, 0x1e, 0x40, 0xf0,
- 0x15, 0xe, 0x10, 0xf0, 0x7a, 0x9, 0x6, 0xf6,
-
- /* U+004E "N" */
- 0x5f, 0x40, 0x4, 0xc6, 0xb, 0xc0, 0x0, 0x60,
- 0x6, 0xd3, 0x0, 0x60, 0x6, 0x6a, 0x0, 0x60,
- 0x6, 0xe, 0x20, 0x60, 0x6, 0x8, 0x90, 0x60,
- 0x6, 0x1, 0xe1, 0x60, 0x6, 0x0, 0x98, 0x60,
- 0x6, 0x0, 0x2e, 0x60, 0x6, 0x0, 0xb, 0xc0,
- 0x6, 0x0, 0x3, 0xd0, 0x6c, 0x40, 0x0, 0x90,
-
- /* U+004F "O" */
- 0x0, 0x68, 0x87, 0x0, 0x5, 0x90, 0x6, 0x70,
- 0xd, 0x20, 0x0, 0xe0, 0x2e, 0x0, 0x0, 0xd3,
- 0x5c, 0x0, 0x0, 0xb6, 0x6c, 0x0, 0x0, 0xa8,
- 0x6c, 0x0, 0x0, 0xa8, 0x5c, 0x0, 0x0, 0xa7,
- 0x2e, 0x0, 0x0, 0xc4, 0xd, 0x20, 0x0, 0xe0,
- 0x4, 0x80, 0x5, 0x70, 0x0, 0x57, 0x77, 0x0,
-
- /* U+0050 "P" */
- 0x3d, 0xb6, 0x79, 0x20, 0xa, 0x60, 0x1, 0xd0,
- 0xa, 0x60, 0x0, 0xc4, 0xa, 0x60, 0x0, 0xb5,
- 0xa, 0x60, 0x0, 0xd2, 0xa, 0x60, 0x6, 0xa0,
- 0xa, 0xa6, 0x76, 0x0, 0xa, 0x60, 0x0, 0x0,
- 0xa, 0x60, 0x0, 0x0, 0xa, 0x60, 0x0, 0x0,
- 0xa, 0x60, 0x0, 0x0, 0x4d, 0xb2, 0x0, 0x0,
-
- /* U+0051 "Q" */
- 0x0, 0x88, 0x87, 0x0, 0x7, 0x80, 0x6, 0x60,
- 0xe, 0x10, 0x0, 0xe0, 0x3d, 0x0, 0x0, 0xd3,
- 0x6b, 0x0, 0x0, 0xb6, 0x7b, 0x0, 0x0, 0xb7,
- 0x7b, 0x0, 0x0, 0xb7, 0x6b, 0x0, 0x0, 0xb6,
- 0x4d, 0x5b, 0x60, 0xd4, 0xf, 0x90, 0xd1, 0xe0,
- 0x7, 0x90, 0x9c, 0x80, 0x0, 0x78, 0xbe, 0x0,
- 0x0, 0x0, 0xd, 0xe1, 0x0, 0x0, 0x0, 0x0,
-
- /* U+0052 "R" */
- 0x3c, 0xb6, 0x7a, 0x20, 0x9, 0x70, 0x5, 0xc0,
- 0x9, 0x70, 0x0, 0xf0, 0x9, 0x70, 0x1, 0xf0,
- 0x9, 0x70, 0x8, 0x80, 0x9, 0xa6, 0xc5, 0x0,
- 0x9, 0x70, 0xd1, 0x0, 0x9, 0x70, 0x87, 0x0,
- 0x9, 0x70, 0x3c, 0x0, 0x9, 0x70, 0xe, 0x20,
- 0x9, 0x70, 0x8, 0x70, 0x3c, 0xc2, 0x3, 0xe4,
-
- /* U+0053 "S" */
- 0x1, 0x77, 0x9f, 0x70, 0xa, 0x0, 0x5, 0x90,
- 0x1a, 0x0, 0x0, 0x40, 0x1c, 0x0, 0x0, 0x0,
- 0xb, 0xb2, 0x0, 0x0, 0x0, 0x9f, 0x91, 0x0,
- 0x0, 0x2, 0xae, 0x20, 0x0, 0x0, 0x7, 0xb0,
- 0x0, 0x0, 0x0, 0xe0, 0x35, 0x0, 0x0, 0xd0,
- 0xd, 0x10, 0x3, 0x90, 0xe, 0xe8, 0x78, 0x0,
-
- /* U+0054 "T" */
- 0x1e, 0x8c, 0xb8, 0xe0, 0x54, 0x9, 0x70, 0x53,
- 0x40, 0x9, 0x70, 0x3, 0x0, 0x9, 0x70, 0x0,
- 0x0, 0x9, 0x70, 0x0, 0x0, 0x9, 0x70, 0x0,
- 0x0, 0x9, 0x70, 0x0, 0x0, 0x9, 0x70, 0x0,
- 0x0, 0x9, 0x70, 0x0, 0x0, 0x9, 0x70, 0x0,
- 0x0, 0x9, 0x70, 0x0, 0x0, 0x4c, 0xb3, 0x0,
-
- /* U+0055 "U" */
- 0x5f, 0x90, 0x4, 0xc4, 0xe, 0x20, 0x0, 0x60,
- 0xe, 0x20, 0x0, 0x60, 0xe, 0x20, 0x0, 0x60,
- 0xe, 0x20, 0x0, 0x60, 0xe, 0x20, 0x0, 0x60,
- 0xe, 0x20, 0x0, 0x60, 0xe, 0x20, 0x0, 0x60,
- 0xe, 0x20, 0x0, 0x60, 0xc, 0x20, 0x0, 0x50,
- 0x8, 0x60, 0x3, 0x40, 0x0, 0x98, 0x86, 0x0,
-
- /* U+0056 "V" */
- 0x5f, 0x90, 0x5, 0xe4, 0xb, 0x50, 0x0, 0x70,
- 0x8, 0x80, 0x4, 0x30, 0x4, 0xb0, 0x7, 0x0,
- 0x1, 0xf0, 0x7, 0x0, 0x0, 0xd2, 0x7, 0x0,
- 0x0, 0xa6, 0x34, 0x0, 0x0, 0x69, 0x60, 0x0,
- 0x0, 0x3c, 0x70, 0x0, 0x0, 0xf, 0x70, 0x0,
- 0x0, 0xc, 0x40, 0x0, 0x0, 0x8, 0x10, 0x0,
-
- /* U+0057 "W" */
- 0x8d, 0x2b, 0xc0, 0xa8, 0x2b, 0x5, 0x90, 0x50,
- 0xd, 0x3, 0xb0, 0x60, 0xd, 0x4, 0xd0, 0x60,
- 0xc, 0x17, 0xe0, 0x60, 0xa, 0x37, 0xd1, 0x60,
- 0x8, 0x57, 0xa5, 0x40, 0x5, 0x86, 0x89, 0x20,
- 0x3, 0xd3, 0x6d, 0x0, 0x1, 0xf1, 0x4d, 0x0,
- 0x0, 0xd0, 0x2a, 0x0, 0x0, 0x80, 0x7, 0x0,
-
- /* U+0058 "X" */
- 0x2c, 0xc1, 0x9, 0xb2, 0x4, 0xb0, 0x6, 0x10,
- 0x0, 0xd2, 0x7, 0x0, 0x0, 0x78, 0x43, 0x0,
- 0x0, 0x1d, 0x80, 0x0, 0x0, 0xa, 0x70, 0x0,
- 0x0, 0x8, 0xc0, 0x0, 0x0, 0x8, 0xd2, 0x0,
- 0x0, 0x62, 0x79, 0x0, 0x0, 0x80, 0x1e, 0x0,
- 0x3, 0x50, 0xa, 0x60, 0x3d, 0x70, 0xb, 0xe4,
-
- /* U+0059 "Y" */
- 0x4f, 0xa0, 0x7, 0xe4, 0x9, 0x70, 0x2, 0x50,
- 0x3, 0xc0, 0x6, 0x0, 0x0, 0xe1, 0x7, 0x0,
- 0x0, 0x86, 0x24, 0x0, 0x0, 0x3c, 0x60, 0x0,
- 0x0, 0xd, 0x70, 0x0, 0x0, 0x9, 0x70, 0x0,
- 0x0, 0x9, 0x70, 0x0, 0x0, 0x9, 0x70, 0x0,
- 0x0, 0x9, 0x70, 0x0, 0x0, 0x4c, 0xb3, 0x0,
-
- /* U+005A "Z" */
- 0x8, 0xd7, 0x67, 0xf1, 0xb, 0x10, 0x7, 0x90,
- 0x3, 0x0, 0xe, 0x20, 0x0, 0x0, 0x6a, 0x0,
- 0x0, 0x0, 0xd2, 0x0, 0x0, 0x5, 0xb0, 0x0,
- 0x0, 0xd, 0x30, 0x0, 0x0, 0x4c, 0x0, 0x0,
- 0x0, 0xc4, 0x0, 0x0, 0x4, 0xc0, 0x0, 0x31,
- 0xb, 0x50, 0x0, 0xa0, 0x3f, 0x66, 0x6b, 0xb0,
-
- /* U+005B "[" */
- 0xa9, 0x98, 0xa0, 0x0, 0xa0, 0x0, 0xa0, 0x0,
- 0xa0, 0x0, 0xa0, 0x0, 0xa0, 0x0, 0xa0, 0x0,
- 0xa0, 0x0, 0xa0, 0x0, 0xa0, 0x0, 0xa0, 0x0,
- 0xa0, 0x0, 0xa0, 0x0, 0xa9, 0x98,
-
- /* U+005C "\\" */
- 0xa1, 0x0, 0x0, 0x4, 0x70, 0x0, 0x0, 0xb,
- 0x0, 0x0, 0x0, 0x83, 0x0, 0x0, 0x2, 0x90,
- 0x0, 0x0, 0xb, 0x0, 0x0, 0x0, 0x65, 0x0,
- 0x0, 0x1, 0xa0, 0x0, 0x0, 0xa, 0x10, 0x0,
- 0x0, 0x56, 0x0, 0x0, 0x0, 0xb0, 0x0, 0x0,
- 0x9, 0x20, 0x0, 0x0, 0x38, 0x0, 0x0, 0x0,
- 0xb0, 0x0, 0x0, 0x4, 0x10,
-
- /* U+005D "]" */
- 0x89, 0x99, 0x0, 0xa, 0x0, 0xa, 0x0, 0xa,
- 0x0, 0xa, 0x0, 0xa, 0x0, 0xa, 0x0, 0xa,
- 0x0, 0xa, 0x0, 0xa, 0x0, 0xa, 0x0, 0xa,
- 0x0, 0xa, 0x0, 0xa, 0x99, 0x99,
-
- /* U+005E "^" */
- 0x2, 0xdd, 0x20, 0x7, 0x1, 0x70,
-
- /* U+005F "_" */
- 0x66, 0x66, 0x66, 0x66,
-
- /* U+0060 "`" */
- 0x3c, 0x90, 0x0, 0x43,
-
- /* U+0061 "a" */
- 0x2, 0x86, 0x68, 0x0, 0xd, 0x20, 0x9, 0x40,
- 0x5, 0x0, 0x8, 0x50, 0x0, 0x68, 0x6a, 0x60,
- 0xb, 0x50, 0x8, 0x60, 0x3d, 0x0, 0x8, 0x60,
- 0x3e, 0x0, 0x9, 0x63, 0x7, 0x97, 0x76, 0xb4,
-
- /* U+0062 "b" */
- 0x2, 0x10, 0x0, 0x0, 0x4e, 0x30, 0x0, 0x0,
- 0xb, 0x30, 0x0, 0x0, 0xb, 0x30, 0x0, 0x0,
- 0xb, 0x30, 0x0, 0x0, 0xb, 0x48, 0x9b, 0x10,
- 0xb, 0xa0, 0x5, 0xa0, 0xb, 0x40, 0x0, 0xf0,
- 0xb, 0x30, 0x0, 0xe1, 0xb, 0x30, 0x0, 0xe1,
- 0xb, 0x30, 0x0, 0xe0, 0xb, 0x60, 0x5, 0x80,
- 0x8, 0x57, 0x89, 0x0,
-
- /* U+0063 "c" */
- 0x0, 0x67, 0x69, 0x0, 0x59, 0x0, 0x87, 0xc,
- 0x20, 0x4, 0x30, 0xf0, 0x0, 0x0, 0xf, 0x0,
- 0x0, 0x0, 0xd2, 0x0, 0x3, 0x6, 0x80, 0x0,
- 0x60, 0x8, 0xa8, 0x80,
-
- /* U+0064 "d" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x2a, 0xa0,
- 0x0, 0x0, 0x4, 0xa0, 0x0, 0x0, 0x4, 0xa0,
- 0x0, 0x0, 0x4, 0xa0, 0x0, 0x89, 0x87, 0xa0,
- 0x6, 0x80, 0x6, 0xa0, 0xd, 0x20, 0x4, 0xa0,
- 0xf, 0x0, 0x4, 0xa0, 0xf, 0x0, 0x4, 0xa0,
- 0xe, 0x10, 0x4, 0xa0, 0x7, 0x60, 0x9, 0xa0,
- 0x0, 0x99, 0x86, 0xc3,
-
- /* U+0065 "e" */
- 0x6, 0x87, 0x90, 0x4, 0x70, 0x5, 0xa0, 0xb1,
- 0x0, 0xf, 0xe, 0x66, 0x66, 0xb0, 0xe0, 0x0,
- 0x0, 0xc, 0x30, 0x0, 0x20, 0x5a, 0x0, 0x16,
- 0x0, 0x7a, 0x87, 0x0,
-
- /* U+0066 "f" */
- 0x0, 0x2, 0x76, 0xa2, 0x0, 0xb, 0x0, 0x87,
- 0x0, 0x2b, 0x0, 0x0, 0x0, 0x3b, 0x0, 0x0,
- 0x6, 0x8d, 0x66, 0x20, 0x0, 0x3b, 0x0, 0x0,
- 0x0, 0x3b, 0x0, 0x0, 0x0, 0x3b, 0x0, 0x0,
- 0x0, 0x3b, 0x0, 0x0, 0x0, 0x3b, 0x0, 0x0,
- 0x0, 0x3b, 0x0, 0x0, 0x5, 0x9e, 0x64, 0x0,
-
- /* U+0067 "g" */
- 0x0, 0x86, 0x88, 0xb6, 0x7, 0x50, 0xb, 0x21,
- 0xa, 0x30, 0x9, 0x40, 0x4, 0x80, 0xb, 0x10,
- 0x3, 0x86, 0x72, 0x0, 0x8, 0x84, 0x10, 0x0,
- 0x3, 0xaa, 0xde, 0x70, 0xc, 0x0, 0x0, 0xe0,
- 0xc, 0x0, 0x0, 0xb0, 0x3, 0x86, 0x68, 0x30,
-
- /* U+0068 "h" */
- 0x3d, 0x40, 0x0, 0x0, 0xa, 0x40, 0x0, 0x0,
- 0xa, 0x40, 0x0, 0x0, 0xa, 0x40, 0x0, 0x0,
- 0xa, 0x59, 0x9b, 0x10, 0xa, 0xb0, 0x6, 0x70,
- 0xa, 0x40, 0x4, 0x90, 0xa, 0x40, 0x4, 0xa0,
- 0xa, 0x40, 0x4, 0xa0, 0xa, 0x40, 0x4, 0xa0,
- 0xa, 0x40, 0x4, 0xa0, 0x3d, 0xa0, 0xa, 0xd3,
-
- /* U+0069 "i" */
- 0x0, 0x8a, 0x0, 0x0, 0x56, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x22, 0x0, 0x26, 0xc7, 0x0, 0x0,
- 0x77, 0x0, 0x0, 0x77, 0x0, 0x0, 0x77, 0x0,
- 0x0, 0x77, 0x0, 0x0, 0x77, 0x0, 0x0, 0x77,
- 0x0, 0x26, 0xbc, 0x62,
-
- /* U+006A "j" */
- 0x0, 0x0, 0xd5, 0x0, 0x0, 0x92, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x31, 0x0, 0x36, 0xe3, 0x0,
- 0x0, 0xb3, 0x0, 0x0, 0xb3, 0x0, 0x0, 0xb3,
- 0x0, 0x0, 0xb3, 0x0, 0x0, 0xb3, 0x0, 0x0,
- 0xb2, 0x0, 0x0, 0xb1, 0x73, 0x0, 0xb0, 0x6c,
- 0x88, 0x10,
-
- /* U+006B "k" */
- 0x3c, 0x50, 0x0, 0x0, 0x9, 0x50, 0x0, 0x0,
- 0x9, 0x50, 0x0, 0x0, 0x9, 0x50, 0x0, 0x0,
- 0x9, 0x50, 0x4e, 0x70, 0x9, 0x50, 0x63, 0x0,
- 0x9, 0x54, 0x70, 0x0, 0x9, 0x7c, 0x80, 0x0,
- 0x9, 0xb0, 0xd2, 0x0, 0x9, 0x50, 0x5a, 0x0,
- 0x9, 0x50, 0xc, 0x30, 0x2c, 0xa1, 0xb, 0xd3,
-
- /* U+006C "l" */
- 0x26, 0xb7, 0x0, 0x0, 0x77, 0x0, 0x0, 0x77,
- 0x0, 0x0, 0x77, 0x0, 0x0, 0x77, 0x0, 0x0,
- 0x77, 0x0, 0x0, 0x77, 0x0, 0x0, 0x77, 0x0,
- 0x0, 0x77, 0x0, 0x0, 0x77, 0x0, 0x0, 0x77,
- 0x0, 0x26, 0xbb, 0x62,
-
- /* U+006D "m" */
- 0x8b, 0x7b, 0x68, 0xc1, 0x3d, 0x6, 0xa0, 0x94,
- 0x3b, 0x6, 0x80, 0x95, 0x3b, 0x6, 0x80, 0x95,
- 0x3b, 0x6, 0x80, 0x95, 0x3b, 0x6, 0x80, 0x95,
- 0x3b, 0x6, 0x80, 0x95, 0x8d, 0x2b, 0xc2, 0xc9,
-
- /* U+006E "n" */
- 0x3d, 0x58, 0x8a, 0x10, 0xa, 0xa0, 0x6, 0x70,
- 0xa, 0x40, 0x4, 0x90, 0xa, 0x40, 0x4, 0xa0,
- 0xa, 0x40, 0x4, 0xa0, 0xa, 0x40, 0x4, 0xa0,
- 0xa, 0x40, 0x4, 0xa0, 0x3d, 0xa0, 0xa, 0xd3,
-
- /* U+006F "o" */
- 0x0, 0x87, 0x78, 0x0, 0x7, 0x60, 0x6, 0x70,
- 0xd, 0x0, 0x0, 0xd0, 0x2c, 0x0, 0x0, 0xd2,
- 0x2c, 0x0, 0x0, 0xc2, 0xd, 0x0, 0x0, 0xd0,
- 0x8, 0x50, 0x4, 0x80, 0x0, 0x87, 0x77, 0x0,
-
- /* U+0070 "p" */
- 0x5e, 0x59, 0x89, 0x10, 0xa, 0xa0, 0x3, 0xc0,
- 0xa, 0x40, 0x0, 0xe1, 0xa, 0x40, 0x0, 0xc3,
- 0xa, 0x40, 0x0, 0xc2, 0xa, 0x40, 0x0, 0xe0,
- 0xa, 0x70, 0x5, 0x90, 0xa, 0x87, 0x8a, 0x0,
- 0xa, 0x40, 0x0, 0x0, 0x3d, 0xa2, 0x0, 0x0,
-
- /* U+0071 "q" */
- 0x0, 0x88, 0x74, 0x70, 0x7, 0x60, 0x8, 0x90,
- 0xe, 0x0, 0x5, 0x90, 0x1d, 0x0, 0x5, 0x90,
- 0x2d, 0x0, 0x5, 0x90, 0xe, 0x0, 0x5, 0x90,
- 0x9, 0x40, 0x9, 0x90, 0x1, 0xa9, 0x87, 0x90,
- 0x0, 0x0, 0x5, 0x90, 0x0, 0x0, 0x2a, 0xd3,
-
- /* U+0072 "r" */
- 0x38, 0xe3, 0x58, 0xd2, 0x0, 0xb7, 0x40, 0x82,
- 0x0, 0xb8, 0x0, 0x0, 0x0, 0xb3, 0x0, 0x0,
- 0x0, 0xb3, 0x0, 0x0, 0x0, 0xb3, 0x0, 0x0,
- 0x0, 0xb3, 0x0, 0x0, 0x36, 0xe9, 0x60, 0x0,
-
- /* U+0073 "s" */
- 0x6, 0x68, 0xe6, 0x46, 0x0, 0x28, 0x59, 0x0,
- 0x2, 0xa, 0xd7, 0x10, 0x0, 0x29, 0xe3, 0x40,
- 0x0, 0x3b, 0x92, 0x0, 0xa, 0x8e, 0x86, 0x72,
-
- /* U+0074 "t" */
- 0x0, 0x30, 0x0, 0x0, 0x80, 0x0, 0x5, 0xb0,
- 0x0, 0x67, 0xd6, 0x61, 0x2, 0xc0, 0x0, 0x2,
- 0xc0, 0x0, 0x2, 0xc0, 0x0, 0x2, 0xc0, 0x0,
- 0x1, 0xc0, 0x1, 0x0, 0xd0, 0x6, 0x0, 0x7a,
- 0x81,
-
- /* U+0075 "u" */
- 0x4e, 0x30, 0x1a, 0x90, 0xb, 0x30, 0x5, 0x90,
- 0xb, 0x30, 0x5, 0x90, 0xb, 0x30, 0x5, 0x90,
- 0xb, 0x30, 0x5, 0x90, 0xa, 0x30, 0x5, 0x90,
- 0x8, 0x50, 0xa, 0x90, 0x1, 0xca, 0x96, 0xb3,
-
- /* U+0076 "v" */
- 0x2c, 0xb1, 0x9, 0xc2, 0x4, 0x90, 0x5, 0x20,
- 0x0, 0xd0, 0x7, 0x0, 0x0, 0xb3, 0x7, 0x0,
- 0x0, 0x68, 0x42, 0x0, 0x0, 0x1c, 0x60, 0x0,
- 0x0, 0xc, 0x70, 0x0, 0x0, 0x7, 0x30, 0x0,
-
- /* U+0077 "w" */
- 0x9e, 0x2b, 0xb1, 0xb8, 0x1c, 0x4, 0x80, 0x70,
- 0xc, 0x6, 0xb0, 0x60, 0x9, 0x26, 0xc0, 0x60,
- 0x6, 0x66, 0xa4, 0x30, 0x2, 0xa4, 0x7b, 0x0,
- 0x0, 0xf1, 0x4c, 0x0, 0x0, 0x90, 0x8, 0x0,
-
- /* U+0078 "x" */
- 0x8, 0xf5, 0x2c, 0x80, 0x0, 0xa5, 0x8, 0x0,
- 0x0, 0x2e, 0x81, 0x0, 0x0, 0x9, 0x90, 0x0,
- 0x0, 0x9, 0xd0, 0x0, 0x0, 0x44, 0x77, 0x0,
- 0x0, 0x80, 0xd, 0x10, 0x2b, 0xb0, 0x2d, 0xc2,
-
- /* U+0079 "y" */
- 0x2b, 0xd2, 0x1a, 0xb2, 0x2, 0xc0, 0x7, 0x10,
- 0x0, 0xc1, 0x8, 0x0, 0x0, 0x66, 0x16, 0x0,
- 0x0, 0x1b, 0x61, 0x0, 0x0, 0xb, 0x90, 0x0,
- 0x0, 0x5, 0x70, 0x0, 0x0, 0x5, 0x20, 0x0,
- 0x2, 0x8, 0x0, 0x0, 0xb, 0xc3, 0x0, 0x0,
-
- /* U+007A "z" */
- 0xaa, 0x66, 0xe4, 0x90, 0x4, 0xb0, 0x30, 0xd,
- 0x20, 0x0, 0x78, 0x0, 0x1, 0xd0, 0x0, 0xa,
- 0x50, 0x5, 0x4c, 0x0, 0x9, 0xc9, 0x66, 0xc8,
-
- /* U+007B "{" */
- 0x0, 0x46, 0x1, 0x80, 0x3, 0x50, 0x4, 0x50,
- 0x4, 0x50, 0x4, 0x50, 0x5, 0x40, 0x38, 0x0,
- 0x27, 0x0, 0x5, 0x30, 0x4, 0x50, 0x4, 0x50,
- 0x4, 0x50, 0x3, 0x50, 0x1, 0x80, 0x0, 0x46,
-
- /* U+007C "|" */
- 0x21, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42,
- 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42, 0x42,
- 0x42, 0x42,
-
- /* U+007D "}" */
- 0x64, 0x0, 0x8, 0x10, 0x5, 0x30, 0x5, 0x40,
- 0x5, 0x40, 0x5, 0x40, 0x4, 0x50, 0x0, 0x83,
- 0x0, 0x72, 0x3, 0x50, 0x5, 0x40, 0x5, 0x40,
- 0x5, 0x40, 0x5, 0x30, 0x8, 0x10, 0x64, 0x0,
-
- /* U+007E "~" */
- 0x4, 0x95, 0x0, 0x0, 0x5, 0xb, 0x30, 0x4,
- 0x30, 0x1, 0xc1, 0x41, 0x0, 0x0, 0x3a, 0x50,
-
- /* U+007F "" */
-
- /* U+3001 "、" */
- 0x3, 0x0, 0x0, 0x4d, 0x50, 0x0, 0x4f, 0x40,
- 0x0, 0xa8, 0x0, 0x1, 0x0,
-
- /* U+3002 "。" */
- 0x4, 0x40, 0x74, 0x56, 0x80, 0x8, 0x48, 0x93,
- 0x0, 0x0,
-
- /* U+3005 "々" */
- 0x0, 0x56, 0x0, 0x0, 0x0, 0x8, 0x60, 0x0,
- 0x0, 0x0, 0xb0, 0x0, 0x15, 0x0, 0x5b, 0x86,
- 0x58, 0xf1, 0x9, 0x21, 0x0, 0x85, 0x4, 0x0,
- 0x0, 0xb, 0x0, 0x0, 0x0, 0x7, 0x30, 0x0,
- 0x1, 0x0, 0x80, 0x0, 0x0, 0x9, 0xb1, 0x0,
- 0x0, 0x0, 0xb, 0xa0, 0x0, 0x0, 0x0, 0x1e,
- 0x20, 0x0, 0x0, 0x0, 0x20, 0x0,
-
- /* U+300C "「" */
- 0xda, 0xa8, 0xa0, 0x0, 0xa0, 0x0, 0xa0, 0x0,
- 0xa0, 0x0, 0xa0, 0x0, 0xa0, 0x0, 0xa0, 0x0,
- 0xa0, 0x0, 0xa0, 0x0, 0xa0, 0x0, 0xa0, 0x0,
- 0xa0, 0x0, 0xa0, 0x0,
-
- /* U+300D "」" */
- 0x0, 0xa, 0x0, 0xa, 0x0, 0xa, 0x0, 0xa,
- 0x0, 0xa, 0x0, 0xa, 0x0, 0xa, 0x0, 0xa,
- 0x0, 0xa, 0x0, 0xa, 0x0, 0xa, 0x0, 0xa,
- 0x0, 0xa, 0x8a, 0xad,
-
- /* U+3041 "ぁ" */
- 0x0, 0x3, 0x30, 0x0, 0x0, 0x0, 0x5, 0x61,
- 0x50, 0x0, 0x2, 0x6b, 0xa8, 0x30, 0x0, 0x0,
- 0x7, 0x3, 0x0, 0x0, 0x0, 0x8, 0x7c, 0x78,
- 0x20, 0x0, 0x6c, 0x18, 0x0, 0xb0, 0x5, 0x56,
- 0x92, 0x0, 0xb0, 0x8, 0x6, 0x80, 0x0, 0xa0,
- 0xb, 0x87, 0xa0, 0xa, 0x20, 0x1, 0x20, 0x5,
- 0x71, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+3042 "あ" */
- 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc3, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb1, 0x6b,
- 0x40, 0x0, 0x4, 0x8a, 0xea, 0x51, 0x0, 0x0,
- 0x0, 0x0, 0xb0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0xa2, 0xca, 0x73, 0x0, 0x0, 0x4, 0xe6, 0xc1,
- 0x29, 0x80, 0x0, 0x6a, 0xa2, 0xa0, 0x0, 0xc1,
- 0x6, 0x90, 0xaa, 0x20, 0x0, 0x94, 0xb, 0x0,
- 0xd8, 0x0, 0x0, 0xb1, 0x47, 0x3, 0xf3, 0x0,
- 0x2, 0xa0, 0x2b, 0x89, 0x4a, 0x0, 0x2b, 0x10,
- 0x3, 0x20, 0x0, 0x17, 0x80, 0x0, 0x0, 0x0,
- 0x1, 0x40, 0x0, 0x0,
-
- /* U+3043 "ぃ" */
- 0xa, 0x0, 0x0, 0x0, 0x0, 0xb, 0x0, 0x0,
- 0x34, 0x0, 0x9, 0x0, 0x0, 0x7, 0x40, 0x9,
- 0x0, 0x0, 0x0, 0xb0, 0xa, 0x3, 0x0, 0x5,
- 0xd0, 0x9, 0x93, 0x0, 0x2, 0x60, 0x1, 0xa0,
- 0x0, 0x0, 0x0,
-
- /* U+3044 "い" */
- 0x29, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1e, 0x0,
- 0x0, 0x0, 0x60, 0x0, 0x49, 0x0, 0x0, 0x0,
- 0x1a, 0x10, 0x66, 0x0, 0x0, 0x0, 0x2, 0xb0,
- 0x75, 0x0, 0x0, 0x0, 0x0, 0xc1, 0x76, 0x3,
- 0x0, 0x0, 0x20, 0xa3, 0x3c, 0x9, 0x0, 0x0,
- 0x1b, 0xf1, 0xa, 0xd7, 0x0, 0x0, 0x0, 0x50,
- 0x0, 0xa4, 0x0, 0x0, 0x0, 0x0,
-
- /* U+3046 "う" */
- 0x0, 0x5, 0x86, 0x30, 0x0, 0x0, 0x1, 0xce,
- 0x30, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x3,
- 0x9a, 0x50, 0x0, 0x4a, 0x71, 0xa, 0x41, 0xb9,
- 0x10, 0x0, 0x49, 0x0, 0x0, 0x0, 0x3, 0x90,
- 0x0, 0x0, 0x0, 0x67, 0x0, 0x0, 0x0, 0xa,
- 0x30, 0x0, 0x0, 0x3, 0xb0, 0x0, 0x0, 0x1,
- 0xc1, 0x0, 0x0, 0x5, 0xa1, 0x0, 0x0, 0x6,
- 0x30, 0x0, 0x0,
-
- /* U+3047 "ぇ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x81, 0x0,
- 0x0, 0x2, 0x71, 0x0, 0x0, 0x5, 0xb6, 0x0,
- 0x9, 0x93, 0x93, 0x0, 0x0, 0x5, 0x60, 0x0,
- 0x0, 0x39, 0x0, 0x0, 0x3, 0x96, 0x80, 0x0,
- 0x4b, 0x0, 0xa0, 0x0, 0x90, 0x0, 0x99, 0xa6,
- 0x0, 0x0, 0x0, 0x0,
-
- /* U+3048 "え" */
- 0x0, 0x0, 0x23, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x5e, 0x60, 0x0, 0x0, 0x0, 0x6, 0x84, 0x0,
- 0x0, 0x0, 0x0, 0x6, 0x60, 0x0, 0x0, 0x3,
- 0x78, 0x6d, 0x0, 0x0, 0x2c, 0x81, 0xb, 0x20,
- 0x0, 0x0, 0x0, 0x9, 0x40, 0x0, 0x0, 0x0,
- 0x5, 0x60, 0x0, 0x0, 0x0, 0x3, 0xd8, 0x10,
- 0x0, 0x0, 0x1, 0xb1, 0x3a, 0x0, 0x0, 0x1,
- 0xc2, 0x0, 0xc0, 0x0, 0x0, 0xe4, 0x0, 0xb,
- 0x44, 0x88, 0x6, 0x0, 0x0, 0x17, 0x75, 0x10,
-
- /* U+304A "お" */
- 0x0, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f,
- 0x20, 0x0, 0x10, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x4b, 0x90, 0x0, 0xc, 0x7d, 0x40, 0x6, 0xb4,
- 0x29, 0xbe, 0x50, 0x0, 0x0, 0x0, 0x0, 0xc,
- 0x4, 0x9a, 0x70, 0x0, 0x0, 0xd, 0xa5, 0x0,
- 0x4b, 0x0, 0x0, 0x9d, 0x0, 0x0, 0x8, 0x50,
- 0xa, 0x3c, 0x0, 0x0, 0x7, 0x70, 0x9, 0xc,
- 0x5, 0x0, 0xc, 0x20, 0x1, 0xbf, 0x5, 0x86,
- 0xb7, 0x0, 0x0, 0x4c, 0x0, 0x25, 0x10, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+304B "か" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xf, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4a,
- 0x0, 0x0, 0x0, 0x0, 0x1, 0x25, 0xcb, 0xac,
- 0x20, 0x53, 0x0, 0xb, 0xb6, 0xd0, 0x6, 0x90,
- 0x9, 0x50, 0x0, 0x6, 0x60, 0x5, 0x80, 0x0,
- 0xe2, 0x0, 0xc, 0x0, 0x8, 0x50, 0x22, 0xb7,
- 0x0, 0x66, 0x0, 0xc, 0x10, 0x9, 0xf4, 0x1,
- 0xc0, 0x0, 0x2c, 0x0, 0x0, 0x20, 0xc, 0x40,
- 0x86, 0xc5, 0x0, 0x0, 0x0, 0x6, 0x0, 0x3f,
- 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+304C "が" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x50, 0x0,
- 0x0, 0x8, 0x0, 0x3, 0x11, 0x80, 0x0, 0x0,
- 0xe, 0x30, 0x1, 0xd2, 0x0, 0x0, 0x0, 0x2c,
- 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x9a, 0x98,
- 0x1, 0x10, 0x0, 0xb, 0xdb, 0xe2, 0x9, 0x70,
- 0x84, 0x0, 0x0, 0x5, 0x70, 0x7, 0x60, 0xb,
- 0x50, 0x0, 0xc, 0x10, 0xa, 0x30, 0x2, 0xe0,
- 0x0, 0x48, 0x0, 0xd, 0x0, 0x43, 0xe3, 0x0,
- 0xc1, 0x0, 0x3a, 0x0, 0x1b, 0xf1, 0x9, 0x71,
- 0x60, 0xb4, 0x0, 0x0, 0x30, 0xb, 0x0, 0x6f,
- 0xb0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+304D "き" */
- 0x0, 0x47, 0x0, 0x0, 0x0, 0x0, 0x1e, 0x10,
- 0x25, 0x0, 0x0, 0x5, 0x99, 0xa1, 0x0, 0x4,
- 0x9a, 0xd4, 0x0, 0x10, 0x0, 0x0, 0x3a, 0x2a,
- 0x70, 0x0, 0x2, 0x5e, 0xb2, 0x0, 0x0, 0x67,
- 0x53, 0xc0, 0x0, 0x0, 0x0, 0x10, 0x5a, 0x0,
- 0x7, 0xb9, 0x9b, 0xbe, 0x70, 0x4b, 0x0, 0x0,
- 0x18, 0xb0, 0x4a, 0x0, 0x0, 0x0, 0x0, 0xc,
- 0x70, 0x0, 0x21, 0x0, 0x0, 0x8d, 0xed, 0xa2,
- 0x0,
-
- /* U+304E "ぎ" */
- 0x0, 0x33, 0x0, 0x0, 0x1, 0x78, 0x0, 0x5,
- 0xd0, 0x1, 0x20, 0xb5, 0x90, 0x0, 0xa, 0x47,
- 0xc4, 0x1, 0x70, 0x0, 0x56, 0xae, 0x40, 0x0,
- 0x0, 0x0, 0x1, 0x20, 0x84, 0x3c, 0x60, 0x0,
- 0x0, 0x0, 0x16, 0xf9, 0x10, 0x0, 0x0, 0x1,
- 0x77, 0x54, 0x90, 0x0, 0x0, 0x0, 0x0, 0x11,
- 0x7, 0x70, 0x0, 0x0, 0x7, 0xca, 0x9b, 0xbf,
- 0x50, 0x0, 0x4, 0xa0, 0x0, 0x0, 0x78, 0x0,
- 0x0, 0x58, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc8, 0x32, 0x58, 0x40, 0x0, 0x0, 0x0, 0x7b,
- 0xb9, 0x50, 0x0, 0x0, 0x0,
-
- /* U+304F "く" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xe2, 0x0,
- 0x0, 0x7d, 0x10, 0x0, 0x3d, 0x10, 0x0, 0x2b,
- 0x10, 0x0, 0x2a, 0x0, 0x0, 0x9, 0x0, 0x0,
- 0x0, 0x80, 0x0, 0x0, 0x1, 0xa3, 0x0, 0x0,
- 0x0, 0xb6, 0x0, 0x0, 0x0, 0xd8, 0x0, 0x0,
- 0x4, 0xf4, 0x0, 0x0, 0xc, 0x80, 0x0, 0x0,
- 0x22,
-
- /* U+3050 "ぐ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6,
- 0x90, 0x0, 0x0, 0x0, 0x0, 0xcb, 0x0, 0x22,
- 0x0, 0x0, 0x8a, 0x0, 0x10, 0xc4, 0x0, 0x59,
- 0x0, 0x6, 0xa1, 0x10, 0x39, 0x0, 0x0, 0x7,
- 0x0, 0x18, 0x0, 0x0, 0x0, 0x0, 0x3, 0x70,
- 0x0, 0x0, 0x0, 0x0, 0x3, 0xa1, 0x0, 0x0,
- 0x0, 0x0, 0x2, 0xd2, 0x0, 0x0, 0x0, 0x0,
- 0x3, 0xe3, 0x0, 0x0, 0x0, 0x0, 0x9, 0xd0,
- 0x0, 0x0, 0x0, 0x0, 0x1f, 0x20, 0x0, 0x0,
- 0x0, 0x0, 0x50, 0x0, 0x0,
-
- /* U+3051 "け" */
- 0x6, 0x10, 0x0, 0x0, 0xb2, 0x0, 0xb, 0x60,
- 0x0, 0x0, 0xc4, 0x0, 0xc, 0x20, 0x0, 0x0,
- 0xa3, 0x23, 0xc, 0x0, 0x6, 0x9a, 0xec, 0x95,
- 0x48, 0x0, 0x0, 0x0, 0xa2, 0x0, 0x84, 0x0,
- 0x0, 0x0, 0xa2, 0x0, 0xa2, 0x10, 0x0, 0x0,
- 0xb1, 0x0, 0xa3, 0x60, 0x0, 0x0, 0xc0, 0x0,
- 0x87, 0x90, 0x0, 0x1, 0xc0, 0x0, 0x2f, 0x80,
- 0x0, 0x8, 0x60, 0x0, 0x8, 0x50, 0x0, 0x4a,
- 0x0, 0x0, 0x0, 0x0, 0x6, 0x70, 0x0, 0x0,
- 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
-
- /* U+3052 "げ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x50, 0x1,
- 0x0, 0x0, 0x0, 0x30, 0x34, 0x5b, 0xc, 0x40,
- 0x0, 0x0, 0xe4, 0x9, 0x63, 0xc, 0x30, 0x0,
- 0x0, 0xb3, 0x0, 0x20, 0xd, 0x0, 0x0, 0x2,
- 0xba, 0xc6, 0x0, 0x48, 0x0, 0x7, 0x98, 0xc5,
- 0x0, 0x0, 0x75, 0x0, 0x0, 0x0, 0x93, 0x0,
- 0x0, 0x84, 0x0, 0x0, 0x0, 0xa2, 0x0, 0x0,
- 0x84, 0x10, 0x0, 0x0, 0xb1, 0x0, 0x0, 0x76,
- 0x70, 0x0, 0x0, 0xd0, 0x0, 0x0, 0x3c, 0x90,
- 0x0, 0x5, 0x80, 0x0, 0x0, 0xd, 0x70, 0x0,
- 0x1c, 0x10, 0x0, 0x0, 0x2, 0x10, 0x2, 0xa2,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x15, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+3053 "こ" */
- 0x0, 0x58, 0x9a, 0xc7, 0x0, 0x0, 0x0, 0x3c,
- 0x71, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0,
- 0x0, 0x0, 0x0, 0x90, 0x0, 0x0, 0x0, 0x0,
- 0x59, 0x0, 0x0, 0x3, 0x70, 0x6, 0xcc, 0xcd,
- 0xfd, 0x70, 0x0, 0x0, 0x11, 0x0, 0x0,
-
- /* U+3054 "ご" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0,
- 0x0, 0x0, 0x1, 0x16, 0xa0, 0x0, 0x32, 0x1,
- 0x31, 0xb, 0x56, 0x0, 0x1, 0x7a, 0xdf, 0x90,
- 0x16, 0x0, 0x0, 0x0, 0x58, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x4, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x36, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x98, 0x42, 0x34, 0x8d, 0x20, 0x0, 0x0, 0x49,
- 0xbc, 0xb8, 0x30, 0x0, 0x0,
-
- /* U+3055 "さ" */
- 0x0, 0x24, 0x0, 0x0, 0x0, 0x4, 0xc0, 0x0,
- 0x0, 0x0, 0x5, 0xb0, 0x7, 0x40, 0x0, 0x9,
- 0xcc, 0x70, 0x3, 0xaa, 0x8b, 0x50, 0x0, 0x0,
- 0x0, 0xd, 0x20, 0x0, 0x1, 0x20, 0x3d, 0x0,
- 0x7b, 0x99, 0xbb, 0xd7, 0x4a, 0x0, 0x0, 0x1b,
- 0x96, 0x70, 0x0, 0x0, 0x1, 0x1d, 0x30, 0x0,
- 0x0, 0x0, 0x2a, 0xdc, 0xcd, 0x0, 0x0, 0x0,
- 0x22, 0x0, 0x0,
-
- /* U+3056 "ざ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x60, 0x0, 0x25,
- 0x0, 0x0, 0x16, 0x5b, 0x0, 0x2d, 0x20, 0x0,
- 0x7, 0x81, 0x0, 0x2, 0xc1, 0x6, 0xb0, 0x10,
- 0x0, 0x1, 0x6d, 0xb7, 0x0, 0x0, 0x1, 0x67,
- 0x77, 0xa0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x96,
- 0x0, 0x0, 0x0, 0x1, 0x10, 0xd, 0x20, 0x0,
- 0x6, 0xba, 0xac, 0xbb, 0xa0, 0x0, 0x2c, 0x0,
- 0x0, 0x19, 0xd0, 0x0, 0x3a, 0x0, 0x0, 0x0,
- 0x10, 0x0, 0xb, 0x70, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x8d, 0xee, 0xe2, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0,
-
- /* U+3057 "し" */
- 0x7, 0x10, 0x0, 0x0, 0x0, 0xf, 0x40, 0x0,
- 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x0, 0xd,
- 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0x0,
- 0xd, 0x0, 0x0, 0x0, 0x1, 0xe, 0x0, 0x0,
- 0x2, 0x90, 0xb, 0x40, 0x0, 0x7a, 0x0, 0x2,
- 0xda, 0xad, 0x70, 0x0, 0x0, 0x2, 0x20, 0x0,
- 0x0,
-
- /* U+3058 "じ" */
- 0x1a, 0x10, 0x0, 0x0, 0x0, 0xf, 0x10, 0x0,
- 0x86, 0x0, 0xe, 0x0, 0x2a, 0x3c, 0x0, 0x1d,
- 0x0, 0x4, 0x90, 0x0, 0x1c, 0x0, 0x0, 0x0,
- 0x0, 0x2b, 0x0, 0x0, 0x0, 0x0, 0x2b, 0x0,
- 0x0, 0x0, 0x0, 0x2b, 0x0, 0x0, 0x0, 0x0,
- 0x2b, 0x0, 0x0, 0x0, 0x11, 0xd, 0x0, 0x0,
- 0x4, 0x80, 0xb, 0x50, 0x1, 0x99, 0x0, 0x2,
- 0xcc, 0xcb, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+3059 "す" */
- 0x0, 0x0, 0x0, 0x3b, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x13, 0x57, 0x40, 0x5, 0x57, 0x99,
- 0x9e, 0x87, 0x65, 0x50, 0x3, 0x74, 0x10, 0xb,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0xae, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x56, 0xc, 0x20, 0x0,
- 0x0, 0x0, 0x0, 0x74, 0xd, 0x30, 0x0, 0x0,
- 0x0, 0x0, 0x3b, 0x8f, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x3, 0x5c, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8,
- 0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x62, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+305A "ず" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x0,
- 0x0, 0x0, 0x1, 0x40, 0x0, 0x31, 0x6a, 0x0,
- 0x0, 0x0, 0x1f, 0x20, 0x0, 0xc3, 0x40, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x1, 0x20, 0x0, 0x0,
- 0x24, 0x7e, 0xaa, 0xbc, 0x80, 0x0, 0x7d, 0xb8,
- 0x52, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5,
- 0x7c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0x81,
- 0xd2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x92, 0xb,
- 0x50, 0x0, 0x0, 0x0, 0x0, 0x7, 0x60, 0xd4,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0xbf, 0x10,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x90, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x3, 0xb0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x5, 0x80, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+305B "せ" */
- 0x0, 0x0, 0x0, 0x0, 0x69, 0x0, 0x0, 0x0,
- 0xe, 0x20, 0x3, 0xc0, 0x0, 0x0, 0x0, 0xb1,
- 0x0, 0x2a, 0x0, 0x0, 0x0, 0xb, 0x12, 0x58,
- 0xec, 0xd8, 0x7, 0x8a, 0xe9, 0x74, 0x49, 0x0,
- 0x0, 0x33, 0xb, 0x10, 0x3, 0x80, 0x0, 0x0,
- 0x0, 0xa1, 0x5, 0x96, 0x0, 0x0, 0x0, 0xa,
- 0x20, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x74, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x2, 0xc2, 0x0, 0x13,
- 0x0, 0x0, 0x0, 0x3, 0xac, 0xcb, 0x90, 0x0,
-
- /* U+305C "ぜ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x11, 0xa2, 0x0,
- 0x0, 0x0, 0x0, 0x29, 0x4, 0xa3, 0x70, 0x0,
- 0xc, 0x40, 0x0, 0xf0, 0x7, 0x10, 0x0, 0x0,
- 0xa4, 0x0, 0xc, 0x0, 0x0, 0x0, 0x0, 0x9,
- 0x21, 0x46, 0xeb, 0xc8, 0x0, 0x5, 0x69, 0xdb,
- 0x96, 0x4b, 0x0, 0x0, 0x0, 0x55, 0x29, 0x20,
- 0x1, 0xa0, 0x0, 0x0, 0x0, 0x0, 0x92, 0x4,
- 0x87, 0x0, 0x0, 0x0, 0x0, 0x8, 0x30, 0x1c,
- 0x10, 0x0, 0x0, 0x0, 0x0, 0x75, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x2, 0xd3, 0x0, 0x2,
- 0x10, 0x0, 0x0, 0x0, 0x3, 0xad, 0xdd, 0xc4,
- 0x0, 0x0,
-
- /* U+305D "そ" */
- 0x0, 0x0, 0x0, 0x5, 0x10, 0x0, 0x1, 0x56,
- 0x98, 0x9e, 0x0, 0x0, 0x8, 0x60, 0x3d, 0x40,
- 0x0, 0x0, 0x0, 0x5a, 0x10, 0x0, 0x0, 0x0,
- 0x86, 0x0, 0x2, 0x0, 0x4, 0x82, 0x48, 0xcc,
- 0xa6, 0x2c, 0xe9, 0x85, 0xa4, 0x0, 0x1, 0x62,
- 0x0, 0xa1, 0x0, 0x0, 0x0, 0x0, 0x74, 0x0,
- 0x0, 0x0, 0x0, 0xa, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x85, 0x0, 0x0, 0x0, 0x0, 0x1, 0xd9,
- 0x63, 0x0, 0x0, 0x0, 0x0, 0x7b, 0x80, 0x0,
-
- /* U+305E "ぞ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x4a, 0x30, 0x17, 0x90, 0x0, 0x57,
- 0x88, 0x5d, 0x90, 0x96, 0x52, 0x0, 0x15, 0x11,
- 0xb4, 0x0, 0x9, 0x0, 0x0, 0x0, 0x3a, 0x10,
- 0x0, 0x0, 0x0, 0x0, 0x5, 0x70, 0x0, 0x35,
- 0x30, 0x0, 0x1, 0x85, 0x58, 0xbd, 0x97, 0x50,
- 0x0, 0x4e, 0xc8, 0x35, 0x80, 0x0, 0x0, 0x0,
- 0x1, 0x0, 0x49, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x97,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0xda,
- 0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x37, 0x30,
- 0x0, 0x0,
-
- /* U+305F "た" */
- 0x0, 0x4, 0x20, 0x0, 0x0, 0x0, 0x0, 0x9,
- 0x90, 0x0, 0x0, 0x0, 0x0, 0xa, 0x34, 0x70,
- 0x0, 0x0, 0x14, 0x5d, 0xc9, 0x20, 0x1, 0x0,
- 0x4, 0x5c, 0x0, 0x38, 0x8c, 0xd1, 0x0, 0x39,
- 0x0, 0x0, 0x68, 0x30, 0x0, 0x75, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb0, 0x0, 0x0, 0x0, 0x0,
- 0x2, 0xa0, 0x3, 0x0, 0x0, 0x0, 0x9, 0x50,
- 0x8, 0x0, 0x0, 0x0, 0x2d, 0x0, 0xa, 0x10,
- 0x0, 0x0, 0x64, 0x0, 0x2, 0xab, 0xce, 0xd1,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+3060 "だ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x40, 0x0, 0x0, 0x8, 0x40, 0x0, 0x0,
- 0xc5, 0x0, 0x1, 0x92, 0xc0, 0x0, 0x0, 0xc1,
- 0x64, 0x0, 0x29, 0x0, 0x3, 0x35, 0xeb, 0x50,
- 0x0, 0x10, 0x0, 0x1, 0x57, 0x90, 0x5, 0x98,
- 0xd8, 0x0, 0x0, 0x6, 0x50, 0x0, 0x7, 0x84,
- 0x0, 0x0, 0xb, 0x10, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x58, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0, 0xb2,
- 0x2, 0x50, 0x0, 0x0, 0x0, 0x4, 0xb0, 0x2,
- 0xa1, 0x0, 0x11, 0x0, 0x7, 0x30, 0x0, 0x4a,
- 0xbc, 0xd9, 0x0,
-
- /* U+3061 "ち" */
- 0x0, 0x0, 0xb1, 0x0, 0x0, 0x0, 0x0, 0xe,
- 0x0, 0x0, 0x0, 0x0, 0x2, 0xa3, 0x6a, 0x40,
- 0x0, 0x7a, 0xdb, 0x75, 0x20, 0x0, 0x0, 0xa,
- 0x10, 0x0, 0x0, 0x0, 0x0, 0xb0, 0x16, 0x98,
- 0x30, 0x0, 0x58, 0x88, 0x30, 0x4d, 0x40, 0xa,
- 0xd2, 0x0, 0x0, 0x5b, 0x0, 0x63, 0x0, 0x0,
- 0x5, 0xa0, 0x0, 0x0, 0x0, 0x0, 0xc4, 0x0,
- 0x0, 0x0, 0x4, 0xb5, 0x0, 0x0, 0x1, 0x56,
- 0x40, 0x0,
-
- /* U+3063 "っ" */
- 0x0, 0x5, 0x99, 0x99, 0x10, 0x6b, 0xa5, 0x0,
- 0x4, 0xa0, 0x2, 0x0, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0, 0x0, 0x6,
- 0x80, 0x0, 0x0, 0x2, 0x99, 0x0, 0x0, 0x16,
- 0x87, 0x10, 0x0,
-
- /* U+3064 "つ" */
- 0x0, 0x0, 0x5, 0xaa, 0xab, 0x70, 0x0, 0x25,
- 0x9b, 0x50, 0x0, 0x6, 0xc0, 0x9, 0xc3, 0x0,
- 0x0, 0x0, 0xb, 0x50, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x78, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9,
- 0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe1, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xb6, 0x0, 0x0, 0x0,
- 0x0, 0x5, 0xc5, 0x0, 0x0, 0x0, 0x36, 0x79,
- 0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+3065 "づ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x31, 0xb6, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x2c, 0x24, 0x0, 0x0, 0x26,
- 0x99, 0xaa, 0x44, 0x20, 0x4, 0x7b, 0x93, 0x0,
- 0x0, 0xb4, 0x0, 0xb, 0x81, 0x0, 0x0, 0x0,
- 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1d,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3b, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xa5, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x8, 0x90, 0x0, 0x0, 0x0,
- 0x0, 0x5, 0xb6, 0x0, 0x0, 0x0, 0x1, 0x68,
- 0x84, 0x0, 0x0, 0x0,
-
- /* U+3066 "て" */
- 0x0, 0x0, 0x1, 0x48, 0xbd, 0xd1, 0x37, 0x8a,
- 0xa8, 0x49, 0xb6, 0x30, 0x15, 0x30, 0x1, 0xb4,
- 0x0, 0x0, 0x0, 0x0, 0xb, 0x20, 0x0, 0x0,
- 0x0, 0x0, 0x67, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x95, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1c, 0x61, 0x0, 0x0, 0x0, 0x0, 0x1, 0x8d,
- 0xc0, 0x0,
-
- /* U+3067 "で" */
- 0x0, 0x0, 0x0, 0x37, 0xad, 0xfb, 0x0, 0x66,
- 0x8a, 0xa6, 0x4a, 0x82, 0x0, 0x4, 0x74, 0x0,
- 0x2c, 0x20, 0x11, 0x0, 0x0, 0x0, 0x1c, 0x10,
- 0x20, 0x95, 0x0, 0x0, 0xb, 0x30, 0x2, 0xc2,
- 0x60, 0x0, 0x2, 0xc0, 0x0, 0x5, 0x20, 0x0,
- 0x0, 0x58, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5,
- 0x90, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1d, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x7c, 0x41, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x5c, 0xf9, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+3068 "と" */
- 0x0, 0x24, 0x0, 0x0, 0x0, 0x3, 0xe0, 0x0,
- 0x0, 0x0, 0x3a, 0x0, 0x0, 0x0, 0x2, 0xa0,
- 0x0, 0x20, 0x0, 0xc, 0x0, 0x6e, 0x50, 0x0,
- 0x7b, 0xc7, 0x20, 0x0, 0x5c, 0x50, 0x0, 0x0,
- 0x7a, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0, 0x0,
- 0x2, 0xa0, 0x0, 0x0, 0x0, 0xd, 0x30, 0x0,
- 0x1, 0x20, 0x2b, 0xdc, 0xce, 0xf9, 0x0, 0x0,
- 0x12, 0x10, 0x0,
-
- /* U+3069 "ど" */
- 0x0, 0x8, 0x10, 0x0, 0x1, 0x70, 0x0, 0xd,
- 0x30, 0x0, 0x46, 0x4b, 0x0, 0xb, 0x10, 0x0,
- 0xb, 0x32, 0x0, 0xa, 0x10, 0x1, 0x40, 0x0,
- 0x0, 0x8, 0x40, 0x7e, 0x90, 0x0, 0x0, 0x2,
- 0xdc, 0x71, 0x0, 0x0, 0x0, 0x3c, 0x60, 0x0,
- 0x0, 0x0, 0x3, 0xc1, 0x0, 0x0, 0x0, 0x0,
- 0xa, 0x20, 0x0, 0x0, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x7, 0x91, 0x0, 0x0,
- 0x40, 0x0, 0x0, 0x6c, 0xcc, 0xde, 0xc2, 0x0,
-
- /* U+306A "な" */
- 0x0, 0x0, 0x41, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x97, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb1, 0x73,
- 0x0, 0x0, 0x3, 0x8b, 0xca, 0x60, 0x47, 0x10,
- 0x0, 0xa, 0x0, 0x0, 0x4, 0xd1, 0x0, 0x74,
- 0x0, 0x4, 0xb7, 0xa5, 0x3, 0xa0, 0x0, 0xc,
- 0x0, 0x0, 0x2e, 0x20, 0x0, 0xc, 0x0, 0x0,
- 0x95, 0x0, 0x0, 0xb, 0x0, 0x0, 0x0, 0x5,
- 0x99, 0x9d, 0x0, 0x0, 0x0, 0x1a, 0x0, 0xe,
- 0xc2, 0x0, 0x0, 0xc, 0x42, 0x96, 0x5d, 0x0,
- 0x0, 0x1, 0x78, 0x40, 0x3, 0x0,
-
- /* U+306B "に" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb3, 0x0,
- 0x46, 0x7c, 0xd1, 0xc, 0x40, 0x1, 0x24, 0xa3,
- 0x0, 0xd0, 0x0, 0x1, 0x40, 0x0, 0x48, 0x0,
- 0x0, 0x0, 0x0, 0x7, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0x84, 0x0, 0x10, 0x0, 0x0, 0x8, 0x35,
- 0x6, 0x0, 0x0, 0x0, 0x58, 0x80, 0x90, 0x0,
- 0x0, 0x1, 0xf6, 0x8, 0x81, 0x1, 0x45, 0x6,
- 0x30, 0x5, 0xac, 0xcb, 0x40,
-
- /* U+306C "ぬ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2d, 0x0, 0x0, 0x0, 0x2, 0x10, 0x0,
- 0xc2, 0x30, 0x0, 0x0, 0x4a, 0x1, 0x9c, 0x66,
- 0xa7, 0x0, 0x0, 0xa4, 0x97, 0x50, 0x0, 0x95,
- 0x0, 0xc, 0x80, 0xa1, 0x0, 0x2, 0xa0, 0x3,
- 0xd4, 0x19, 0x0, 0x0, 0xc, 0x0, 0xa1, 0xb9,
- 0x20, 0x0, 0x1, 0xa0, 0x19, 0x7, 0xb0, 0x7,
- 0xa8, 0x96, 0x2, 0x80, 0xbb, 0x67, 0x60, 0x2f,
- 0xa0, 0xc, 0xb4, 0x0, 0x76, 0x1a, 0x68, 0xa0,
- 0x11, 0x0, 0x0, 0x79, 0x40, 0x3,
-
- /* U+306D "ね" */
- 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xd, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb,
- 0x0, 0x0, 0x21, 0x0, 0x0, 0x0, 0xb, 0x40,
- 0x89, 0x79, 0x80, 0x0, 0x18, 0xad, 0x2a, 0x20,
- 0x0, 0x85, 0x0, 0x3, 0x3f, 0x80, 0x0, 0x0,
- 0x3a, 0x0, 0x0, 0xae, 0x0, 0x0, 0x0, 0x2b,
- 0x0, 0x1, 0xca, 0x0, 0x0, 0x0, 0x39, 0x0,
- 0xa, 0x3a, 0x0, 0x6, 0x86, 0x86, 0x0, 0x4c,
- 0x1a, 0x0, 0xa6, 0x25, 0xfb, 0x30, 0x81, 0xae,
- 0x0, 0xc2, 0x29, 0x73, 0xd2, 0x0, 0x3c, 0x0,
- 0x29, 0x94, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+306E "の" */
- 0x0, 0x0, 0x0, 0x45, 0x51, 0x0, 0x0, 0x0,
- 0x8, 0xba, 0x56, 0xab, 0x10, 0x0, 0x1c, 0x30,
- 0x80, 0x0, 0x4c, 0x0, 0xb, 0x20, 0x8, 0x10,
- 0x0, 0xa5, 0x5, 0x80, 0x0, 0x81, 0x0, 0x6,
- 0x90, 0xa2, 0x0, 0xa, 0x0, 0x0, 0x3a, 0xc,
- 0x0, 0x0, 0xb0, 0x0, 0x4, 0x90, 0xb0, 0x0,
- 0x57, 0x0, 0x0, 0x86, 0xa, 0x20, 0xc, 0x0,
- 0x0, 0x1d, 0x10, 0x4b, 0x5c, 0x30, 0x0, 0x1c,
- 0x40, 0x0, 0x48, 0x20, 0x0, 0x6a, 0x30, 0x0,
- 0x0, 0x0, 0x1, 0x52, 0x0, 0x0,
-
- /* U+306F "は" */
- 0x0, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0, 0xc1,
- 0x0, 0x0, 0xe2, 0x0, 0x0, 0xd1, 0x0, 0x0,
- 0xc0, 0x0, 0x1, 0xb0, 0x0, 0x0, 0xc7, 0xc5,
- 0x4, 0x70, 0x3, 0x89, 0xe3, 0x0, 0x8, 0x30,
- 0x0, 0x0, 0xb0, 0x0, 0xb, 0x0, 0x0, 0x0,
- 0xb0, 0x0, 0xb, 0x0, 0x0, 0x0, 0xb0, 0x0,
- 0xc, 0x60, 0x4, 0x65, 0xb0, 0x0, 0xd, 0xa0,
- 0x77, 0x35, 0xea, 0x20, 0x8, 0xa0, 0xb1, 0x1,
- 0xc3, 0xe2, 0x0, 0x30, 0x3c, 0xab, 0x20, 0x31,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+3070 "ば" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0,
- 0x0, 0x0, 0x1, 0x0, 0x11, 0xb2, 0x9, 0x20,
- 0x0, 0xd, 0x30, 0x3a, 0x45, 0xc, 0x10, 0x0,
- 0xb, 0x10, 0x6, 0x10, 0xc, 0x0, 0x0, 0xb,
- 0x49, 0x60, 0x0, 0x29, 0x0, 0x38, 0xae, 0x73,
- 0x0, 0x0, 0x55, 0x0, 0x0, 0xb, 0x0, 0x0,
- 0x0, 0x73, 0x0, 0x0, 0xb, 0x0, 0x0, 0x0,
- 0xa1, 0x10, 0x0, 0xb, 0x0, 0x0, 0x0, 0xb4,
- 0x10, 0x2, 0x1b, 0x0, 0x0, 0x0, 0xba, 0x3,
- 0xc6, 0x7e, 0x70, 0x0, 0x0, 0x7a, 0x7, 0x70,
- 0xa, 0x6d, 0x10, 0x0, 0x15, 0x2, 0xd9, 0xb4,
- 0x5, 0x30, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+3071 "ぱ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x30, 0x6, 0x75, 0xa, 0x10, 0x0,
- 0xd, 0x30, 0x90, 0x60, 0xd1, 0x0, 0x0, 0xb0,
- 0x1, 0x73, 0xb, 0x0, 0x0, 0xb, 0x5a, 0x60,
- 0x3, 0x70, 0x3, 0x8a, 0xd5, 0x10, 0x0, 0x64,
- 0x0, 0x0, 0xb, 0x0, 0x0, 0x9, 0x10, 0x0,
- 0x0, 0xb0, 0x0, 0x0, 0xa0, 0x0, 0x0, 0xb,
- 0x0, 0x0, 0xb, 0x50, 0x2, 0x43, 0xb0, 0x0,
- 0x0, 0xba, 0x5, 0xa4, 0x5e, 0x80, 0x0, 0x7,
- 0x90, 0x93, 0x1, 0xb4, 0xd1, 0x0, 0x3, 0x2,
- 0xba, 0xb2, 0x3, 0x10, 0x0,
-
- /* U+3072 "ひ" */
- 0x0, 0x4a, 0xd1, 0x0, 0x82, 0x0, 0x6, 0xc6,
- 0x99, 0x0, 0xd, 0x90, 0x0, 0x0, 0x49, 0x0,
- 0x0, 0xac, 0x0, 0x0, 0xc, 0x0, 0x0, 0x9,
- 0x86, 0x0, 0x7, 0x50, 0x0, 0x0, 0xa2, 0xd2,
- 0x0, 0xc0, 0x0, 0x0, 0xc, 0x5, 0xd0, 0xc,
- 0x0, 0x0, 0x1, 0xc0, 0x1, 0x0, 0xc0, 0x0,
- 0x0, 0x67, 0x0, 0x0, 0xc, 0x10, 0x0, 0xd,
- 0x10, 0x0, 0x0, 0x5a, 0x0, 0x1b, 0x50, 0x0,
- 0x0, 0x0, 0x6c, 0xbb, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+3073 "び" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x10, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x30, 0x95, 0x0, 0x16,
- 0xc7, 0x0, 0x27, 0x1c, 0x14, 0xc, 0x94, 0xd4,
- 0x0, 0x4f, 0x14, 0x10, 0x0, 0xb, 0x40, 0x0,
- 0x2d, 0x60, 0x0, 0x0, 0x59, 0x0, 0x0, 0x29,
- 0xc0, 0x0, 0x0, 0xc1, 0x0, 0x0, 0x29, 0x79,
- 0x0, 0x3, 0xa0, 0x0, 0x0, 0x48, 0xc, 0x60,
- 0x5, 0x60, 0x0, 0x0, 0x75, 0x0, 0x10, 0x6,
- 0x50, 0x0, 0x0, 0xd1, 0x0, 0x0, 0x4, 0x80,
- 0x0, 0x6, 0x90, 0x0, 0x0, 0x0, 0xc3, 0x0,
- 0x5c, 0x10, 0x0, 0x0, 0x0, 0x2c, 0xcc, 0x91,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+3074 "ぴ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x7, 0x70, 0x1, 0x38,
- 0xc4, 0x0, 0x45, 0x16, 0x61, 0x2c, 0x75, 0xc2,
- 0x0, 0x7e, 0x3, 0x30, 0x0, 0xc, 0x10, 0x0,
- 0x4d, 0x30, 0x0, 0x0, 0x94, 0x0, 0x0, 0x49,
- 0xa0, 0x0, 0x1, 0xb0, 0x0, 0x0, 0x46, 0xa4,
- 0x0, 0x7, 0x60, 0x0, 0x0, 0x75, 0x1e, 0x20,
- 0xa, 0x20, 0x0, 0x0, 0xa2, 0x1, 0x0, 0xb,
- 0x10, 0x0, 0x0, 0xd0, 0x0, 0x0, 0x8, 0x40,
- 0x0, 0x8, 0x70, 0x0, 0x0, 0x2, 0xc1, 0x0,
- 0x6b, 0x0, 0x0, 0x0, 0x0, 0x5d, 0xbc, 0x80,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+3075 "ふ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x44, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9, 0x70,
- 0x0, 0x0, 0x0, 0x0, 0x4, 0xf5, 0x0, 0x0,
- 0x0, 0x0, 0x3a, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x82, 0x0, 0x0, 0x0, 0x0, 0x0, 0x36, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x9, 0x20, 0x14, 0x0,
- 0x0, 0x2, 0x1, 0xb0, 0x6, 0x90, 0x41, 0x83,
- 0x0, 0xb1, 0x0, 0xc6, 0x8d, 0x24, 0x20, 0xc0,
- 0x0, 0x35, 0x10, 0x0, 0x7a, 0x40, 0x0, 0x0,
-
- /* U+3076 "ぶ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x52, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0,
- 0xb7, 0x0, 0x53, 0xc0, 0x0, 0x0, 0x6, 0xf3,
- 0x5, 0x92, 0x0, 0x0, 0x8, 0x71, 0x0, 0x2,
- 0x0, 0x0, 0x0, 0xb0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x6, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb, 0x10, 0x31, 0x0, 0x0, 0x0, 0x30, 0x3a,
- 0x0, 0xa4, 0x0, 0x33, 0x80, 0x0, 0xc0, 0x1,
- 0xe2, 0xe, 0xb0, 0x13, 0x1c, 0x0, 0x6, 0x30,
- 0x30, 0x0, 0x38, 0x20, 0x0, 0x0,
-
- /* U+3077 "ぷ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x62, 0x0, 0x4, 0x61, 0x0, 0x0, 0x0,
- 0xb7, 0x0, 0x60, 0x60, 0x0, 0x0, 0x8, 0xf2,
- 0x3, 0x61, 0x0, 0x0, 0x9, 0x60, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x7, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb, 0x10, 0x32, 0x0, 0x0, 0x0, 0x20, 0x3a,
- 0x0, 0xa5, 0x0, 0x43, 0x80, 0x0, 0xc0, 0x1,
- 0xe1, 0xf, 0xa0, 0x51, 0x2c, 0x0, 0x7, 0x10,
- 0x50, 0x1, 0x99, 0x20, 0x0, 0x0,
-
- /* U+3078 "へ" */
- 0x0, 0x0, 0x17, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1b, 0x4a, 0x0, 0x0, 0x0, 0x0, 0x1b, 0x10,
- 0x39, 0x0, 0x0, 0x0, 0x4d, 0x30, 0x0, 0x67,
- 0x0, 0x0, 0x19, 0x30, 0x0, 0x0, 0xa5, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xb6, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xcb, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x67,
-
- /* U+3079 "べ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x24, 0xa1, 0x0, 0x0, 0x15,
- 0x0, 0x6, 0x95, 0x30, 0x0, 0x29, 0x4a, 0x0,
- 0x8, 0x0, 0x0, 0x1a, 0x0, 0x39, 0x0, 0x0,
- 0x0, 0x3c, 0x20, 0x0, 0x66, 0x0, 0x0, 0x1b,
- 0x40, 0x0, 0x0, 0xa5, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc6, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0xcb, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x78,
-
- /* U+307A "ぺ" */
- 0x0, 0x0, 0x0, 0x0, 0x1, 0x63, 0x0, 0x0,
- 0x1, 0x50, 0x0, 0x60, 0x60, 0x0, 0x1, 0xb4,
- 0xa0, 0x1, 0x64, 0x0, 0x1, 0xb1, 0x2, 0xa0,
- 0x0, 0x0, 0x3, 0xc3, 0x0, 0x6, 0x70, 0x0,
- 0x0, 0xa4, 0x0, 0x0, 0xa, 0x40, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x1c, 0x91, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x8, 0x70,
-
- /* U+307B "ほ" */
- 0x5, 0x20, 0x0, 0x2, 0x48, 0x10, 0x9, 0x60,
- 0x7, 0x9d, 0x63, 0x0, 0xa, 0x10, 0x0, 0xb,
- 0x20, 0x0, 0xb, 0x0, 0x0, 0xa, 0x0, 0x0,
- 0x1a, 0x0, 0x0, 0xb, 0x49, 0x70, 0x46, 0x0,
- 0x7, 0x9e, 0x72, 0x0, 0x64, 0x0, 0x0, 0xb,
- 0x0, 0x0, 0x82, 0x40, 0x0, 0xb, 0x0, 0x0,
- 0x88, 0x30, 0x35, 0x4b, 0x0, 0x0, 0x5f, 0x6,
- 0x63, 0x5e, 0x91, 0x0, 0x9, 0xa, 0x0, 0x2a,
- 0x4d, 0x20, 0x0, 0x2, 0xaa, 0xa1, 0x2, 0x20,
-
- /* U+307C "ぼ" */
- 0x2, 0x40, 0x0, 0x1, 0x36, 0x50, 0x0, 0x3,
- 0xa0, 0x2, 0x8b, 0xb4, 0x11, 0x60, 0x7, 0x40,
- 0x0, 0x3, 0xb0, 0x36, 0x49, 0xa, 0x0, 0x0,
- 0x2, 0xa0, 0x8, 0x40, 0xa, 0x0, 0x0, 0x2,
- 0xb6, 0xa2, 0x0, 0xa, 0x0, 0x3, 0x8a, 0xc5,
- 0x10, 0x0, 0xa, 0x0, 0x0, 0x2, 0xa0, 0x0,
- 0x0, 0x19, 0x50, 0x0, 0x2, 0xa0, 0x0, 0x0,
- 0x1b, 0x70, 0x4, 0x54, 0xa0, 0x0, 0x0, 0xd,
- 0x50, 0xa4, 0x38, 0xd5, 0x0, 0x0, 0x5, 0x21,
- 0x90, 0x6, 0x79, 0xa0, 0x0, 0x0, 0x0, 0x7a,
- 0xa9, 0x0, 0x50, 0x0,
-
- /* U+307D "ぽ" */
- 0x2, 0x40, 0x0, 0x1, 0x36, 0x40, 0x0, 0x3,
- 0xa0, 0x2, 0x8b, 0xb4, 0x5, 0x85, 0x7, 0x40,
- 0x0, 0x3, 0xb0, 0x5, 0x7, 0xa, 0x0, 0x0,
- 0x2, 0xa0, 0x0, 0x51, 0xa, 0x0, 0x0, 0x2,
- 0xb6, 0xa2, 0x0, 0xa, 0x0, 0x3, 0x8a, 0xc5,
- 0x10, 0x0, 0xa, 0x0, 0x0, 0x2, 0xa0, 0x0,
- 0x0, 0x19, 0x40, 0x0, 0x2, 0xa0, 0x0, 0x0,
- 0x1b, 0x70, 0x4, 0x54, 0xa0, 0x0, 0x0, 0xd,
- 0x50, 0xa4, 0x38, 0xd4, 0x0, 0x0, 0x6, 0x21,
- 0x90, 0x6, 0x7b, 0x90, 0x0, 0x0, 0x0, 0x7a,
- 0xa9, 0x0, 0x50, 0x0,
-
- /* U+307E "ま" */
- 0x0, 0x0, 0x3b, 0x0, 0x0, 0x0, 0x0, 0xd0,
- 0x0, 0x0, 0x0, 0xc, 0x38, 0x80, 0x5, 0x9a,
- 0xe7, 0x30, 0x0, 0x0, 0xc, 0x0, 0x0, 0x0,
- 0x0, 0xd6, 0xb4, 0x0, 0x69, 0xad, 0x40, 0x0,
- 0x0, 0x0, 0xc0, 0x0, 0x0, 0x56, 0x4c, 0x0,
- 0x0, 0xb5, 0x27, 0xf8, 0x0, 0x1a, 0x0, 0x67,
- 0x6d, 0x30, 0x8b, 0xba, 0x0, 0x3d, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+307F "み" */
- 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x26, 0x7a, 0xd9, 0x0, 0x0, 0x0, 0x0, 0x42,
- 0xc, 0x20, 0x0, 0x0, 0x0, 0x0, 0x5, 0x80,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xc1, 0x0, 0x20,
- 0x0, 0x0, 0x0, 0x67, 0x0, 0x1f, 0x0, 0x0,
- 0x59, 0x9e, 0xa9, 0x43, 0xa0, 0x0, 0x85, 0x9,
- 0x40, 0x17, 0xe7, 0x0, 0x1a, 0x4, 0x90, 0x0,
- 0x2b, 0xb9, 0x2, 0x93, 0xb0, 0x0, 0xb, 0x10,
- 0xa1, 0x8, 0x80, 0x0, 0xa, 0x20, 0x0, 0x0,
- 0x0, 0x0, 0x27, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+3080 "む" */
- 0x0, 0x49, 0x0, 0x0, 0x0, 0x0, 0x2, 0xb0,
- 0x0, 0x0, 0x0, 0x1, 0x3c, 0x8b, 0x0, 0x46,
- 0x0, 0x69, 0xc2, 0x0, 0x0, 0xa6, 0x0, 0x2a,
- 0x0, 0x0, 0x2, 0xb2, 0x76, 0xa0, 0x0, 0x0,
- 0x0, 0x90, 0x3c, 0x0, 0x0, 0x0, 0xa, 0x38,
- 0xa0, 0x0, 0x1, 0x0, 0x3b, 0xd4, 0x0, 0x0,
- 0x8, 0x0, 0xc, 0x0, 0x0, 0x0, 0xd3, 0x0,
- 0xd4, 0x1, 0x35, 0xbb, 0x0, 0x1, 0x79, 0xa9,
- 0x61, 0x0,
-
- /* U+3081 "め" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x10,
- 0x0, 0xa6, 0x0, 0x0, 0x9, 0x70, 0x0, 0xa2,
- 0x0, 0x0, 0x2, 0xa0, 0x49, 0xe9, 0x60, 0x0,
- 0x0, 0xca, 0x53, 0x90, 0x6c, 0x10, 0x2, 0xd4,
- 0x7, 0x40, 0x3, 0xb0, 0xb, 0x29, 0xb, 0x0,
- 0x0, 0xc0, 0x64, 0xa, 0x95, 0x0, 0x0, 0xc0,
- 0xb0, 0x4, 0xf1, 0x0, 0x2, 0xb0, 0xb0, 0x3b,
- 0x55, 0x0, 0xa, 0x30, 0x4b, 0x81, 0x0, 0x1,
- 0xa4, 0x0, 0x0, 0x0, 0x2, 0x67, 0x10, 0x0,
- 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
-
- /* U+3082 "も" */
- 0x0, 0x2, 0x60, 0x0, 0x0, 0x0, 0x3d, 0x0,
- 0x0, 0x0, 0x4, 0x80, 0x0, 0x0, 0x32, 0x74,
- 0x0, 0x0, 0x0, 0x6e, 0xba, 0x10, 0x0, 0x0,
- 0xc0, 0x0, 0x0, 0x0, 0xb, 0x0, 0x0, 0x11,
- 0x88, 0xa2, 0x20, 0x5, 0x0, 0x8a, 0x88, 0x0,
- 0x80, 0x6, 0x50, 0x0, 0xa, 0x0, 0x48, 0x0,
- 0x2, 0x90, 0x0, 0xc4, 0x13, 0xc2, 0x0, 0x1,
- 0x8a, 0x92, 0x0,
-
- /* U+3083 "ゃ" */
- 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x20,
- 0x39, 0x0, 0x0, 0x0, 0x57, 0x1, 0xa4, 0x51,
- 0x0, 0x1, 0xa2, 0x99, 0x55, 0xc4, 0x0, 0x2d,
- 0x91, 0x0, 0x4, 0x80, 0xa9, 0x49, 0x7, 0x65,
- 0xc3, 0x0, 0x0, 0xb2, 0x3, 0x52, 0x0, 0x0,
- 0x4, 0x90, 0x0, 0x0, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x61, 0x0, 0x0,
-
- /* U+3084 "や" */
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x4, 0x10, 0x1a, 0x20, 0x0, 0x0, 0x0, 0x3a,
- 0x0, 0x4c, 0x52, 0x31, 0x0, 0x0, 0xc, 0x0,
- 0x4b, 0xb8, 0x7a, 0x80, 0x0, 0x7, 0xab, 0x71,
- 0x0, 0x0, 0xd1, 0x0, 0x3b, 0xe1, 0x0, 0x0,
- 0x0, 0xd0, 0x2c, 0x91, 0x77, 0x5, 0x40, 0x6,
- 0xa0, 0x0, 0x0, 0xd, 0x0, 0x38, 0xa7, 0x0,
- 0x0, 0x0, 0x8, 0x60, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x85, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x11,
- 0x0, 0x0, 0x0,
-
- /* U+3085 "ゅ" */
- 0x0, 0x0, 0x48, 0x0, 0x0, 0xd, 0x0, 0x3c,
- 0xa5, 0x0, 0x1b, 0x9, 0x87, 0x56, 0x80, 0x47,
- 0x76, 0x6, 0x50, 0xc0, 0x56, 0xa1, 0x7, 0x40,
- 0xa2, 0x4d, 0x46, 0x19, 0x10, 0xd0, 0xe, 0x0,
- 0xab, 0x18, 0x80, 0x2, 0x0, 0x8a, 0x94, 0x0,
- 0x0, 0x6, 0x40, 0x0, 0x0,
-
- /* U+3086 "ゆ" */
- 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x4, 0xa6, 0x0, 0x0, 0x8, 0x10, 0x0, 0x3e,
- 0x51, 0x0, 0xb, 0x30, 0x3b, 0x8d, 0x5a, 0x70,
- 0xc, 0x4, 0xb1, 0xb, 0x0, 0x95, 0x1a, 0x1c,
- 0x0, 0xb, 0x0, 0x3b, 0x47, 0x94, 0x10, 0xc,
- 0x0, 0xd, 0x47, 0xb0, 0x60, 0xc, 0x0, 0x2b,
- 0x3d, 0x70, 0x72, 0x2a, 0x0, 0x77, 0xf, 0x40,
- 0xb, 0x95, 0x17, 0xb0, 0x5, 0x10, 0x2, 0xda,
- 0x95, 0x0, 0x0, 0x0, 0x3b, 0x20, 0x0, 0x0,
- 0x0, 0x4, 0x50, 0x0, 0x0, 0x0,
-
- /* U+3087 "ょ" */
- 0x0, 0x9, 0x30, 0x0, 0x0, 0xa, 0x40, 0x0,
- 0x0, 0x9, 0xab, 0x80, 0x0, 0x9, 0x30, 0x0,
- 0x0, 0xa, 0x20, 0x0, 0x0, 0xa, 0x20, 0x0,
- 0x29, 0x9e, 0xb8, 0x0, 0x83, 0x2d, 0x8, 0x40,
- 0x2d, 0xd5, 0x0, 0x0,
-
- /* U+3088 "よ" */
- 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0xe, 0x40,
- 0x0, 0x0, 0x0, 0xb2, 0x1, 0x0, 0x0, 0xb,
- 0x9c, 0xa2, 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0,
- 0xc, 0x0, 0x0, 0x0, 0x0, 0xc0, 0x0, 0x0,
- 0x4, 0x4d, 0x0, 0x0, 0x2b, 0x65, 0xec, 0x80,
- 0x6, 0x50, 0x49, 0x9, 0x70, 0x1b, 0xbb, 0x10,
- 0x1, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+3089 "ら" */
- 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0, 0x75,
- 0x0, 0x0, 0x0, 0x2, 0x5c, 0xd0, 0x0, 0x0,
- 0x67, 0x13, 0x90, 0x0, 0x1, 0xa0, 0x0, 0x0,
- 0x0, 0x6, 0x40, 0x0, 0x0, 0x0, 0xb, 0x16,
- 0xba, 0xba, 0x20, 0xe, 0xb5, 0x0, 0x3, 0xd0,
- 0x3e, 0x20, 0x0, 0x0, 0xb2, 0x0, 0x0, 0x0,
- 0x0, 0xc1, 0x0, 0x0, 0x0, 0x7, 0xa0, 0x0,
- 0x1, 0x37, 0xb7, 0x0, 0x0, 0x24, 0x31, 0x0,
- 0x0,
-
- /* U+308A "り" */
- 0x5, 0x0, 0x0, 0x0, 0x1f, 0x4, 0xbb, 0x40,
- 0x3a, 0x3a, 0x1, 0xc0, 0x66, 0xc0, 0x0, 0xd0,
- 0x98, 0x70, 0x0, 0xb1, 0xac, 0x10, 0x0, 0xb1,
- 0x9b, 0x0, 0x0, 0xc0, 0x58, 0x0, 0x1, 0xb0,
- 0x1, 0x0, 0x6, 0x60, 0x0, 0x0, 0xb, 0x0,
- 0x0, 0x0, 0x84, 0x0, 0x0, 0x6, 0x50, 0x0,
- 0x0, 0x53, 0x0, 0x0,
-
- /* U+308B "る" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x48,
- 0xca, 0x0, 0x1, 0xcb, 0x50, 0xb7, 0x0, 0x0,
- 0x0, 0x8, 0x60, 0x0, 0x0, 0x0, 0x76, 0x0,
- 0x0, 0x0, 0x6, 0x80, 0x0, 0x0, 0x0, 0x6d,
- 0x9a, 0xab, 0x70, 0x8, 0xe6, 0x0, 0x0, 0x96,
- 0x6d, 0x10, 0x0, 0x0, 0x3b, 0x21, 0x1a, 0x92,
- 0x0, 0x49, 0x0, 0x85, 0x9, 0x10, 0xc3, 0x0,
- 0x3b, 0x45, 0xbc, 0x40, 0x0, 0x2, 0x66, 0x40,
- 0x0,
-
- /* U+308C "れ" */
- 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa,
- 0x0, 0x18, 0x91, 0x0, 0x0, 0x0, 0xb, 0x63,
- 0xb3, 0x57, 0x0, 0x0, 0x17, 0x9d, 0x88, 0x0,
- 0x47, 0x0, 0x0, 0x3, 0x1f, 0x60, 0x0, 0x65,
- 0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x82, 0x0,
- 0x0, 0x0, 0xda, 0x0, 0x0, 0xa0, 0x0, 0x0,
- 0x7, 0x6a, 0x0, 0x0, 0xb0, 0x0, 0x0, 0x1d,
- 0x2a, 0x0, 0x0, 0xb0, 0x1, 0x60, 0x75, 0x9e,
- 0x10, 0x0, 0x97, 0x79, 0x0, 0x0, 0x2d, 0x0,
- 0x0, 0x4, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+308D "ろ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x34, 0x88,
- 0xe4, 0x0, 0x1, 0x96, 0x3, 0xd2, 0x0, 0x0,
- 0x0, 0x2b, 0x10, 0x0, 0x0, 0x1, 0xa1, 0x0,
- 0x0, 0x0, 0x1a, 0x23, 0x42, 0x0, 0x2, 0xda,
- 0x85, 0x58, 0xb1, 0x5e, 0x80, 0x0, 0x0, 0x4a,
- 0xb3, 0x0, 0x0, 0x0, 0x1c, 0x0, 0x0, 0x0,
- 0x0, 0x49, 0x0, 0x0, 0x0, 0x2, 0xc1, 0x0,
- 0x4, 0x67, 0x99, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+308F "わ" */
- 0x0, 0x2, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x2e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x20, 0x35,
- 0x41, 0x0, 0x1, 0x69, 0xf5, 0xa7, 0x56, 0xb7,
- 0x0, 0x46, 0x4e, 0x90, 0x0, 0x0, 0x95, 0x0,
- 0xc, 0xb0, 0x0, 0x0, 0x2, 0xa0, 0x5, 0xbb,
- 0x0, 0x0, 0x0, 0x1b, 0x0, 0xd2, 0xb0, 0x0,
- 0x0, 0x3, 0x80, 0x89, 0x1b, 0x0, 0x0, 0x0,
- 0xa1, 0xc, 0x49, 0xb0, 0x0, 0x1, 0x93, 0x0,
- 0x0, 0x79, 0x0, 0x4, 0x50, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+3092 "を" */
- 0x0, 0x0, 0x60, 0x0, 0x0, 0x0, 0x0, 0xd,
- 0x10, 0x0, 0x0, 0x3, 0x5, 0x83, 0x99, 0x0,
- 0x0, 0x59, 0xea, 0x73, 0x0, 0x0, 0x0, 0x84,
- 0x0, 0x0, 0x0, 0x0, 0x4b, 0x89, 0x10, 0x1,
- 0xa1, 0x4e, 0x70, 0x2a, 0x18, 0xc8, 0x1c, 0x40,
- 0x2, 0xeb, 0x40, 0x0, 0x0, 0x8, 0xac, 0x0,
- 0x0, 0x0, 0xb, 0x41, 0xb0, 0x0, 0x0, 0x2,
- 0xa0, 0x14, 0x0, 0x0, 0x0, 0x1d, 0x10, 0x0,
- 0x0, 0x0, 0x0, 0x4c, 0xcc, 0xdd, 0x20, 0x0,
-
- /* U+3093 "ん" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x68, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa,
- 0x60, 0x0, 0x0, 0x0, 0x0, 0x2, 0xc0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x94, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x1b, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x8, 0x47, 0x91, 0x0, 0x0, 0x0, 0x1, 0xcb,
- 0x46, 0x80, 0x0, 0x0, 0x0, 0x8e, 0x20, 0x39,
- 0x0, 0x1, 0x30, 0x1f, 0x50, 0x3, 0x90, 0x0,
- 0x80, 0xa, 0xa0, 0x0, 0x2a, 0x0, 0x55, 0x0,
- 0xe1, 0x0, 0x0, 0xd5, 0x88, 0x0, 0x1, 0x0,
- 0x0, 0x1, 0x62, 0x0, 0x0,
-
- /* U+30A1 "ァ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x23, 0x57, 0x8a,
- 0xc0, 0x4b, 0x84, 0x0, 0xb8, 0x0, 0x0, 0x23,
- 0x92, 0x0, 0x0, 0x7, 0xa0, 0x0, 0x0, 0x0,
- 0x95, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0,
- 0x5, 0x80, 0x0, 0x0, 0x1, 0xa0, 0x0, 0x0,
- 0x0, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+30A2 "ア" */
- 0x0, 0x0, 0x0, 0x0, 0x15, 0x60, 0x0, 0x1,
- 0x36, 0x88, 0x89, 0xf3, 0x9, 0xfa, 0x62, 0x0,
- 0x2e, 0x60, 0x0, 0x0, 0x0, 0x1, 0xb2, 0x0,
- 0x0, 0x0, 0x6, 0x98, 0x0, 0x0, 0x0, 0x0,
- 0x7, 0x80, 0x0, 0x0, 0x0, 0x0, 0xb, 0x30,
- 0x0, 0x0, 0x0, 0x0, 0x1d, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x96, 0x0, 0x0, 0x0, 0x0, 0x2,
- 0xc0, 0x0, 0x0, 0x0, 0x0, 0xb, 0x30, 0x0,
- 0x0, 0x0, 0x0, 0x75, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0x20, 0x0, 0x0, 0x0, 0x0,
-
- /* U+30A3 "ィ" */
- 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0xa7,
- 0x0, 0x0, 0x4, 0xd1, 0x0, 0x0, 0x4c, 0x10,
- 0x0, 0x6, 0xc9, 0x0, 0x0, 0x86, 0xc, 0x0,
- 0x15, 0x10, 0xb, 0x0, 0x0, 0x0, 0xb, 0x0,
- 0x0, 0x0, 0x1b, 0x0, 0x0, 0x0, 0x2a, 0x0,
- 0x0, 0x0, 0x2, 0x0,
-
- /* U+30A4 "イ" */
- 0x0, 0x0, 0x0, 0x0, 0x70, 0x0, 0x0, 0x0,
- 0x3, 0xf3, 0x0, 0x0, 0x0, 0x1d, 0x40, 0x0,
- 0x0, 0x0, 0xb5, 0x0, 0x0, 0x0, 0xb, 0x70,
- 0x0, 0x0, 0x2, 0xb8, 0xc0, 0x0, 0x0, 0x69,
- 0x13, 0xa0, 0x0, 0x27, 0x30, 0x2, 0xa0, 0x0,
- 0x0, 0x0, 0x2, 0xa0, 0x0, 0x0, 0x0, 0x2,
- 0xa0, 0x0, 0x0, 0x0, 0x3, 0xa0, 0x0, 0x0,
- 0x0, 0x4, 0xa0, 0x0, 0x0, 0x0, 0x1, 0x70,
- 0x0,
-
- /* U+30A6 "ウ" */
- 0x0, 0x0, 0x60, 0x0, 0x0, 0x0, 0x0, 0xd,
- 0x30, 0x0, 0x0, 0x0, 0x0, 0xa4, 0x47, 0xb8,
- 0x9, 0x9a, 0xaa, 0x85, 0x27, 0xc0, 0x94, 0x0,
- 0x0, 0x0, 0xd3, 0x8, 0x50, 0x0, 0x0, 0x59,
- 0x0, 0x86, 0x0, 0x0, 0xc, 0x10, 0x4, 0x40,
- 0x0, 0x9, 0x50, 0x0, 0x0, 0x0, 0x5, 0xa0,
- 0x0, 0x0, 0x0, 0x2, 0xb0, 0x0, 0x0, 0x0,
- 0x2, 0xa1, 0x0, 0x0, 0x0, 0x3, 0x70, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+30A7 "ェ" */
- 0x0, 0x1, 0x25, 0x94, 0x0, 0x3, 0xb9, 0xd5,
- 0x20, 0x0, 0x0, 0x0, 0xa3, 0x0, 0x0, 0x0,
- 0x0, 0xa2, 0x0, 0x0, 0x0, 0x0, 0xa1, 0x0,
- 0x0, 0x25, 0x78, 0xdb, 0xbc, 0xd1, 0x17, 0x42,
- 0x0, 0x0, 0x0,
-
- /* U+30A8 "エ" */
- 0x0, 0x0, 0x0, 0x2, 0x51, 0x0, 0x2, 0x99,
- 0xac, 0xa9, 0x73, 0x0, 0x0, 0x33, 0xc, 0x40,
- 0x0, 0x0, 0x0, 0x0, 0xa, 0x30, 0x0, 0x0,
- 0x0, 0x0, 0xa, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0xa, 0x20, 0x0, 0x0, 0x0, 0x0, 0xa, 0x43,
- 0x56, 0x72, 0x6c, 0xca, 0xa9, 0x76, 0x55, 0x64,
- 0x2, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+30AA "オ" */
- 0x0, 0x0, 0x0, 0x2, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x3e, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x4c,
- 0x8a, 0xc4, 0x0, 0x8d, 0xb9, 0x7e, 0xb2, 0x0,
- 0x0, 0x0, 0x0, 0x7, 0x9a, 0x0, 0x0, 0x0,
- 0x0, 0x4, 0xb0, 0xb0, 0x0, 0x0, 0x0, 0x3,
- 0xb0, 0xb, 0x0, 0x0, 0x0, 0x3, 0xb1, 0x0,
- 0xb0, 0x0, 0x0, 0x5, 0x90, 0x0, 0xb, 0x0,
- 0x0, 0x4, 0x40, 0x0, 0x52, 0xc0, 0x0, 0x0,
- 0x0, 0x0, 0x2, 0xf9, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x4, 0x10, 0x0, 0x0,
-
- /* U+30AB "カ" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0xf, 0x30, 0x0, 0x0, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0x0, 0x0, 0x2b, 0x37, 0xb5, 0x3, 0x88,
- 0xac, 0xb6, 0x38, 0xb0, 0x6, 0x30, 0xb1, 0x0,
- 0xa4, 0x0, 0x0, 0x2b, 0x0, 0xe, 0x0, 0x0,
- 0xb, 0x30, 0x3, 0xb0, 0x0, 0x4, 0x90, 0x0,
- 0x86, 0x0, 0x1, 0xb0, 0x0, 0xd, 0x10, 0x1,
- 0x91, 0x0, 0xac, 0xb0, 0x0, 0x50, 0x0, 0x2,
- 0xc2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+30AC "ガ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0x20, 0x1, 0x6, 0x90, 0x0, 0x0, 0xc,
- 0x60, 0x1b, 0x28, 0x0, 0x0, 0x0, 0xd2, 0x0,
- 0x36, 0x0, 0x0, 0x0, 0xd, 0x4, 0x85, 0x0,
- 0x0, 0x55, 0x8a, 0xd9, 0x67, 0xe0, 0x0, 0x6,
- 0x62, 0x76, 0x0, 0x69, 0x0, 0x0, 0x0, 0xc,
- 0x10, 0xa, 0x40, 0x0, 0x0, 0x4, 0x90, 0x0,
- 0xd0, 0x0, 0x0, 0x0, 0xc1, 0x0, 0x3a, 0x0,
- 0x0, 0x0, 0x85, 0x0, 0x8, 0x50, 0x0, 0x0,
- 0x66, 0x0, 0x88, 0xe1, 0x0, 0x0, 0x32, 0x0,
- 0x0, 0xe7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+30AD "キ" */
- 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x0, 0x4,
- 0xb0, 0x0, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0,
- 0x0, 0x0, 0x1, 0xc7, 0x9a, 0x90, 0x3, 0xca,
- 0x7b, 0x30, 0x0, 0x0, 0x0, 0x0, 0x64, 0x0,
- 0x0, 0x0, 0x0, 0x28, 0xba, 0xbb, 0x83, 0xcb,
- 0xa7, 0x5a, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb0,
- 0x0, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb2, 0x0, 0x0, 0x0, 0x0, 0x8,
- 0x30, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
-
- /* U+30AE "ギ" */
- 0x0, 0x0, 0x23, 0x0, 0x1, 0x83, 0x0, 0x0,
- 0x3d, 0x0, 0x27, 0x29, 0x0, 0x0, 0xc, 0x0,
- 0x5, 0x80, 0x0, 0x0, 0x2c, 0x8a, 0xb3, 0x0,
- 0x2, 0xca, 0x6a, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x5, 0x50, 0x1, 0x0, 0x0, 0x1, 0x38, 0xca,
- 0xba, 0x80, 0x2c, 0xb9, 0x64, 0xb0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa3,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x64, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+30AF "ク" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x67,
- 0x0, 0x0, 0x0, 0x0, 0xc6, 0x0, 0x0, 0x0,
- 0x4, 0xe4, 0x46, 0x70, 0x0, 0xc, 0x56, 0x34,
- 0xf4, 0x0, 0x94, 0x0, 0x9, 0x90, 0x7, 0x30,
- 0x0, 0x3d, 0x0, 0x0, 0x0, 0x0, 0xc2, 0x0,
- 0x0, 0x0, 0x9, 0x60, 0x0, 0x0, 0x0, 0x5a,
- 0x0, 0x0, 0x0, 0x4, 0xb0, 0x0, 0x0, 0x0,
- 0x5a, 0x0, 0x0, 0x0, 0x7, 0x50, 0x0, 0x0,
- 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
-
- /* U+30B0 "グ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xa, 0x40, 0x2, 0x93, 0x0, 0x0, 0x1e, 0x20,
- 0x2a, 0x57, 0x0, 0x0, 0x9b, 0x55, 0x87, 0x60,
- 0x0, 0x3, 0xb4, 0x42, 0x6f, 0x0, 0x0, 0x1b,
- 0x10, 0x0, 0xd4, 0x0, 0x1, 0x70, 0x0, 0x7,
- 0x80, 0x0, 0x0, 0x0, 0x0, 0x2c, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc2, 0x0, 0x0, 0x0, 0x0,
- 0xa, 0x50, 0x0, 0x0, 0x0, 0x0, 0x87, 0x0,
- 0x0, 0x0, 0x0, 0x9, 0x60, 0x0, 0x0, 0x0,
- 0x2, 0x82, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
- 0x0, 0x0, 0x0, 0x0,
-
- /* U+30B1 "ケ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xe2, 0x0, 0x0, 0x0, 0x0, 0x4, 0xe1, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x31, 0x36, 0x9c, 0xb1,
- 0x0, 0x7b, 0xca, 0x9b, 0x10, 0x0, 0x3, 0x90,
- 0x0, 0x5c, 0x0, 0x0, 0x15, 0x0, 0x0, 0x95,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0x0, 0x7, 0x60, 0x0, 0x0, 0x0, 0x0,
- 0x1a, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa1, 0x0,
- 0x0, 0x0, 0x0, 0x7, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+30B2 "ゲ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x30, 0x0, 0x0,
- 0x1b, 0x0, 0x0, 0x21, 0xc2, 0x0, 0x6, 0xc0,
- 0x0, 0x2, 0xc4, 0x30, 0x0, 0xc1, 0x1, 0x36,
- 0x96, 0x20, 0x0, 0x8b, 0xb9, 0xba, 0x43, 0x0,
- 0x0, 0x48, 0x0, 0x6, 0xb0, 0x0, 0x0, 0x25,
- 0x0, 0x0, 0xb4, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x2b, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0x30,
- 0x0, 0x0, 0x0, 0x0, 0x5, 0x80, 0x0, 0x0,
- 0x0, 0x0, 0x2, 0x90, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+30B3 "コ" */
- 0x0, 0x0, 0x0, 0x1, 0x10, 0x7, 0x78, 0x9a,
- 0xab, 0xe1, 0x4, 0x53, 0x0, 0x3, 0xc0, 0x0,
- 0x0, 0x0, 0x5, 0x80, 0x0, 0x0, 0x0, 0x7,
- 0x50, 0x0, 0x0, 0x0, 0xa, 0x20, 0x0, 0x0,
- 0x0, 0xc, 0x0, 0x2, 0x34, 0x68, 0xaf, 0x20,
- 0x2b, 0x96, 0x42, 0x11, 0x0,
-
- /* U+30B4 "ゴ" */
- 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x20, 0xa5, 0x0, 0x0, 0x0, 0x0,
- 0x4a, 0x18, 0x0, 0x0, 0x0, 0x2, 0x26, 0x30,
- 0x15, 0x57, 0x99, 0x9b, 0xe0, 0x0, 0x7, 0x73,
- 0x0, 0x4, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x6,
- 0x70, 0x0, 0x0, 0x0, 0x0, 0x9, 0x40, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0x23, 0x45, 0x78, 0xae,
- 0x0, 0x0, 0x29, 0x75, 0x32, 0x11, 0x0, 0x0,
-
- /* U+30B5 "サ" */
- 0x0, 0x0, 0x30, 0x0, 0xa2, 0x0, 0x0, 0x0,
- 0x0, 0xf1, 0x0, 0xb4, 0x0, 0x0, 0x0, 0x0,
- 0xc0, 0x0, 0xa2, 0x0, 0x0, 0x0, 0x1, 0xc4,
- 0x68, 0xdb, 0xbc, 0xb0, 0x1c, 0xb8, 0xd4, 0x21,
- 0xb1, 0x0, 0x0, 0x0, 0x0, 0xc0, 0x0, 0xc0,
- 0x0, 0x0, 0x0, 0x0, 0xe0, 0x0, 0xd0, 0x0,
- 0x0, 0x0, 0x0, 0x70, 0x2, 0xb0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x8, 0x50, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2b, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x2, 0xb1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x16,
- 0x0, 0x0, 0x0, 0x0,
-
- /* U+30B6 "ザ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0x70, 0x0,
- 0x0, 0x30, 0x0, 0xa1, 0x19, 0x28, 0x30, 0x0,
- 0xd, 0x30, 0xc, 0x10, 0x2a, 0x0, 0x0, 0x0,
- 0xa1, 0x0, 0xc0, 0x0, 0x0, 0x0, 0x0, 0xb,
- 0x56, 0x8e, 0x99, 0xb9, 0x0, 0xb, 0xb9, 0xd5,
- 0x20, 0xc0, 0x0, 0x0, 0x0, 0x0, 0xb, 0x10,
- 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd1, 0x0,
- 0xb0, 0x0, 0x0, 0x0, 0x0, 0x6, 0x0, 0x38,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x20,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x80, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x3, 0x70, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1, 0x40, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+30B7 "シ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x69,
- 0x20, 0x0, 0x0, 0x0, 0x0, 0x4, 0xe0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x15,
- 0x28, 0x40, 0x0, 0x0, 0x1, 0x90, 0x1, 0xc9,
- 0x0, 0x0, 0x2b, 0x10, 0x0, 0x3, 0x0, 0x3,
- 0xb1, 0x0, 0x0, 0x0, 0x0, 0x5a, 0x0, 0x0,
- 0x0, 0x0, 0x2b, 0x90, 0x0, 0x0, 0x2, 0x6b,
- 0xd4, 0x0, 0x0, 0x0, 0x3, 0xe6, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+30B8 "ジ" */
- 0x0, 0x0, 0x0, 0x0, 0x23, 0x0, 0x0, 0x0,
- 0x0, 0x3, 0x29, 0x60, 0x0, 0x69, 0x20, 0x0,
- 0xc3, 0x20, 0x0, 0x3, 0xe1, 0x0, 0x21, 0x0,
- 0x0, 0x0, 0x20, 0x0, 0x0, 0x24, 0x7, 0x80,
- 0x0, 0x0, 0x2, 0x90, 0x0, 0x7d, 0x0, 0x0,
- 0x2b, 0x10, 0x0, 0x5, 0x0, 0x3, 0xc1, 0x0,
- 0x0, 0x0, 0x0, 0x6b, 0x10, 0x0, 0x0, 0x0,
- 0x1b, 0x80, 0x0, 0x0, 0x1, 0x6a, 0xc3, 0x0,
- 0x0, 0x0, 0x1, 0xb7, 0x0, 0x0, 0x0, 0x0,
-
- /* U+30B9 "ス" */
- 0x0, 0x0, 0x0, 0x16, 0x90, 0x0, 0x5, 0x68,
- 0xaa, 0x6f, 0x40, 0x0, 0x68, 0x30, 0x7, 0x90,
- 0x0, 0x0, 0x0, 0x1, 0xd1, 0x0, 0x0, 0x0,
- 0x0, 0xa6, 0x0, 0x0, 0x0, 0x0, 0x4d, 0x40,
- 0x0, 0x0, 0x0, 0x2d, 0x16, 0x60, 0x0, 0x0,
- 0x2d, 0x20, 0xa, 0x60, 0x0, 0x3c, 0x20, 0x0,
- 0xe, 0x40, 0x68, 0x0, 0x0, 0x0, 0x6c, 0x21,
- 0x0, 0x0, 0x0, 0x0, 0x60,
-
- /* U+30BA "ズ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x2, 0x12, 0xc2, 0x0, 0x0,
- 0x0, 0x5, 0x60, 0xa5, 0x22, 0x0, 0x55, 0x8a,
- 0x99, 0xf1, 0x14, 0x0, 0x0, 0x97, 0x20, 0xa,
- 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2c, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xb3, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x5, 0xd1, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2c, 0x19, 0x30, 0x0, 0x0, 0x0,
- 0x2, 0xb1, 0x0, 0xc5, 0x0, 0x0, 0x0, 0x3a,
- 0x10, 0x0, 0x1e, 0x30, 0x0, 0x6, 0x60, 0x0,
- 0x0, 0x7, 0x90, 0x0, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x20, 0x0,
-
- /* U+30BB "セ" */
- 0x0, 0x2, 0x20, 0x0, 0x0, 0x0, 0x0, 0x4,
- 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe0, 0x0,
- 0x19, 0x60, 0x0, 0x0, 0xd0, 0x49, 0x9a, 0xe0,
- 0x0, 0x3, 0xe9, 0x60, 0x1c, 0x10, 0x39, 0xc8,
- 0xd0, 0x0, 0x91, 0x0, 0x4, 0x0, 0xd0, 0x3,
- 0x20, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb6, 0x22, 0x36, 0x70, 0x0, 0x0, 0x19, 0xbb,
- 0x98, 0x30,
-
- /* U+30BC "ゼ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x96, 0x0, 0x1, 0x10,
- 0x0, 0x0, 0xa5, 0x80, 0x0, 0x4e, 0x0, 0x0,
- 0x1, 0x90, 0x0, 0x1, 0xd0, 0x0, 0x6, 0x40,
- 0x0, 0x0, 0x1c, 0x2, 0x8a, 0xce, 0x0, 0x0,
- 0x3, 0xea, 0x71, 0x2c, 0x10, 0x2, 0x7b, 0x9c,
- 0x0, 0xa, 0x10, 0x0, 0x16, 0x1, 0xc0, 0x6,
- 0x10, 0x0, 0x0, 0x0, 0x1c, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x40, 0x12, 0x57, 0x0, 0x0, 0x0,
- 0x3a, 0xbc, 0xba, 0x50, 0x0,
-
- /* U+30BD "ソ" */
- 0x0, 0x0, 0x0, 0x0, 0x40, 0x35, 0x0, 0x0,
- 0x0, 0xf5, 0xb, 0x50, 0x0, 0x2, 0xe0, 0x4,
- 0xe0, 0x0, 0x8, 0x80, 0x0, 0xa0, 0x0, 0x1e,
- 0x10, 0x0, 0x0, 0x0, 0x97, 0x0, 0x0, 0x0,
- 0x3, 0xc0, 0x0, 0x0, 0x0, 0x1c, 0x20, 0x0,
- 0x0, 0x0, 0xb3, 0x0, 0x0, 0x0, 0xa, 0x30,
- 0x0, 0x0, 0x2, 0x81, 0x0, 0x0, 0x0, 0x3,
- 0x0, 0x0, 0x0, 0x0,
-
- /* U+30BF "タ" */
- 0x0, 0x0, 0x2, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0xaa, 0x0, 0x51, 0x0, 0x0, 0x2f, 0xaa, 0xaf,
- 0x80, 0x0, 0xc, 0x42, 0x12, 0xe1, 0x0, 0xa,
- 0xa0, 0x0, 0xa6, 0x0, 0xa, 0x43, 0xc3, 0x3c,
- 0x0, 0x6, 0x10, 0x4, 0xed, 0x20, 0x0, 0x0,
- 0x0, 0xc, 0x60, 0x0, 0x0, 0x0, 0x7, 0x90,
- 0x0, 0x0, 0x0, 0x7, 0x90, 0x0, 0x0, 0x0,
- 0x1a, 0x60, 0x0, 0x0, 0x0, 0x58, 0x20, 0x0,
- 0x0, 0x0, 0x21, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+30C0 "ダ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x10, 0x0,
- 0x0, 0x2, 0x0, 0x0, 0x52, 0xc2, 0x0, 0x0,
- 0x1f, 0x20, 0x35, 0x2d, 0x31, 0x0, 0x0, 0x9d,
- 0x8a, 0xaf, 0x13, 0x0, 0x0, 0x4, 0xc3, 0x20,
- 0x97, 0x0, 0x0, 0x0, 0x3d, 0x30, 0x2, 0xd0,
- 0x0, 0x0, 0x4, 0xa0, 0x98, 0xb, 0x40, 0x0,
- 0x0, 0x24, 0x0, 0xb, 0xa9, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x4, 0xd0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1d, 0x20, 0x0, 0x0, 0x0, 0x0, 0x1,
- 0xb2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3a, 0x20,
- 0x0, 0x0, 0x0, 0x0, 0x6, 0x70, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+30C1 "チ" */
- 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x3b, 0xe1, 0x0, 0x0, 0x4, 0x8b, 0xc3,
- 0x0, 0x0, 0x0, 0x22, 0x1, 0xf1, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe2, 0x35, 0x61, 0x49, 0x9a,
- 0xaa, 0xe8, 0x77, 0x75, 0x3, 0x20, 0x3, 0xa0,
- 0x0, 0x0, 0x0, 0x0, 0x7, 0x60, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x76, 0x0, 0x0, 0x0, 0x0, 0x4, 0x90, 0x0,
- 0x0, 0x0, 0x0, 0x47, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
-
- /* U+30C3 "ッ" */
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x20, 0x73, 0x0,
- 0xe3, 0x9, 0x41, 0xc0, 0x1f, 0x10, 0x39, 0x2,
- 0x7, 0x80, 0x0, 0x0, 0x0, 0xd1, 0x0, 0x0,
- 0x0, 0x94, 0x0, 0x0, 0x0, 0x68, 0x0, 0x0,
- 0x0, 0x67, 0x0, 0x0, 0x0, 0x33, 0x0, 0x0,
- 0x0,
-
- /* U+30C4 "ツ" */
- 0x0, 0x2, 0x0, 0x0, 0x0, 0x10, 0x9, 0x20,
- 0x0, 0x75, 0x81, 0x2, 0xe0, 0x0, 0xa8, 0x3d,
- 0x0, 0xc0, 0x1, 0xd0, 0xd, 0x10, 0x0, 0x9,
- 0x50, 0x1, 0x0, 0x0, 0x2b, 0x0, 0x0, 0x0,
- 0x0, 0xc2, 0x0, 0x0, 0x0, 0x8, 0x60, 0x0,
- 0x0, 0x0, 0x59, 0x0, 0x0, 0x0, 0x5, 0x80,
- 0x0, 0x0, 0x0, 0x55, 0x0, 0x0, 0x0, 0x1,
- 0x0, 0x0, 0x0, 0x0,
-
- /* U+30C6 "テ" */
- 0x0, 0x2, 0x35, 0x7b, 0x70, 0x0, 0x0, 0x77,
- 0x53, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0x23, 0x45, 0x78, 0x9b, 0xda, 0x2a, 0x85,
- 0x38, 0x90, 0x0, 0x0, 0x0, 0x0, 0x98, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x10, 0x0, 0x0, 0x0,
- 0x5, 0x80, 0x0, 0x0, 0x0, 0x0, 0xc0, 0x0,
- 0x0, 0x0, 0x0, 0x94, 0x0, 0x0, 0x0, 0x0,
- 0x74, 0x0, 0x0, 0x0, 0x0, 0x11, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+30C7 "デ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x7, 0x80, 0x0, 0x3,
- 0x35, 0x7a, 0x70, 0x95, 0x90, 0x0, 0x6, 0x64,
- 0x21, 0x0, 0x7, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1, 0x24, 0x68, 0x9a, 0xbc,
- 0x80, 0x0, 0x29, 0x75, 0x25, 0xb0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x8, 0x70, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x67, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
- 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x20,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x73, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x2, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+30C8 "ト" */
- 0x0, 0x0, 0x0, 0x5, 0xb0, 0x0, 0x0, 0x3a,
- 0x0, 0x0, 0x3, 0x90, 0x0, 0x0, 0x2b, 0x0,
- 0x0, 0x2, 0x97, 0x81, 0x0, 0x29, 0x4, 0xe6,
- 0x2, 0x90, 0x2, 0xd0, 0x29, 0x0, 0x0, 0x3,
- 0x90, 0x0, 0x0, 0x49, 0x0, 0x0, 0x4, 0xa0,
- 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
-
- /* U+30C9 "ド" */
- 0x0, 0x0, 0x0, 0x0, 0x1, 0xe1, 0x0, 0x2,
- 0x50, 0xe, 0x0, 0x7, 0x36, 0x90, 0xc0, 0x0,
- 0x1d, 0x2, 0xc, 0x10, 0x0, 0x10, 0x0, 0xc5,
- 0x93, 0x0, 0x0, 0xc, 0x2, 0xd8, 0x0, 0x0,
- 0xc0, 0x1, 0xd1, 0x0, 0xc, 0x0, 0x0, 0x0,
- 0x0, 0xc0, 0x0, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0x0, 0x3, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+30CA "ナ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x7, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x4, 0xb0,
- 0x0, 0x0, 0x0, 0x0, 0x3, 0xa0, 0x0, 0x0,
- 0x0, 0x0, 0x27, 0xc8, 0xac, 0xc1, 0x5d, 0xca,
- 0x78, 0x91, 0x0, 0x0, 0x0, 0x0, 0x6, 0x50,
- 0x0, 0x0, 0x0, 0x0, 0xa, 0x20, 0x0, 0x0,
- 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x75, 0x0, 0x0, 0x0, 0x0, 0x1, 0xa0, 0x0,
- 0x0, 0x0, 0x0, 0x9, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
-
- /* U+30CB "ニ" */
- 0x0, 0x0, 0x0, 0x1, 0x23, 0x0, 0x0, 0x0,
- 0x2c, 0xa9, 0x98, 0x83, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1, 0x23, 0x45, 0x62, 0xb,
- 0xca, 0x99, 0x87, 0x65, 0x55, 0x40, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0,
-
- /* U+30CD "ネ" */
- 0x0, 0x0, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x8, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x30,
- 0x0, 0x0, 0x0, 0x0, 0x4, 0x8c, 0xd0, 0x0,
- 0x0, 0x6b, 0xa5, 0x1d, 0x40, 0x0, 0x0, 0x1,
- 0x0, 0xb4, 0x0, 0x0, 0x0, 0x0, 0xc, 0x60,
- 0x0, 0x0, 0x0, 0x1, 0xb6, 0xc0, 0x87, 0x0,
- 0x0, 0x49, 0x11, 0xa0, 0x9, 0xb0, 0x6, 0x40,
- 0x1, 0xa0, 0x0, 0x90, 0x0, 0x0, 0x1, 0xb0,
- 0x0, 0x0, 0x0, 0x0, 0x3, 0xb0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x60, 0x0, 0x0,
-
- /* U+30CE "ノ" */
- 0x0, 0x0, 0x0, 0x0, 0x3, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0xb9, 0x0, 0x0, 0x0, 0x0, 0x2e,
- 0x10, 0x0, 0x0, 0x0, 0xc, 0x50, 0x0, 0x0,
- 0x0, 0x8, 0x90, 0x0, 0x0, 0x0, 0x4, 0xb0,
- 0x0, 0x0, 0x0, 0x3, 0xc1, 0x0, 0x0, 0x0,
- 0x3, 0xb1, 0x0, 0x0, 0x0, 0x5, 0xa0, 0x0,
- 0x0, 0x0, 0x8, 0x60, 0x0, 0x0, 0x0, 0x15,
- 0x10, 0x0, 0x0, 0x0, 0x0,
-
- /* U+30CF "ハ" */
- 0x0, 0x0, 0x17, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x5, 0xf1, 0x0, 0x81, 0x0, 0x0, 0x0, 0xc5,
- 0x0, 0x1, 0xb1, 0x0, 0x0, 0x79, 0x0, 0x0,
- 0x5, 0xc0, 0x0, 0x2b, 0x0, 0x0, 0x0, 0xc,
- 0x70, 0x1a, 0x10, 0x0, 0x0, 0x0, 0x4d, 0x6,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x60,
-
- /* U+30D0 "バ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x3, 0x34, 0xb0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb4, 0x40, 0x0, 0x0, 0x5,
- 0x0, 0x2, 0x11, 0x0, 0x0, 0x0, 0x5e, 0x0,
- 0x6, 0x20, 0x0, 0x0, 0x0, 0xc4, 0x0, 0x0,
- 0xa1, 0x0, 0x0, 0x5, 0x80, 0x0, 0x0, 0x4c,
- 0x0, 0x0, 0x2a, 0x0, 0x0, 0x0, 0xb, 0x60,
- 0x1, 0x91, 0x0, 0x0, 0x0, 0x4, 0xd0, 0x5,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x70,
-
- /* U+30D1 "パ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x67, 0x10, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x61, 0x60, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x46, 0x10, 0x0, 0x0, 0x6,
- 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x30,
- 0x3, 0x60, 0x0, 0x0, 0x0, 0x88, 0x0, 0x0,
- 0x94, 0x0, 0x0, 0x2, 0xb0, 0x0, 0x0, 0x1e,
- 0x10, 0x0, 0xb, 0x10, 0x0, 0x0, 0x8, 0xa0,
- 0x0, 0x83, 0x0, 0x0, 0x0, 0x1, 0xf1, 0x4,
- 0x10, 0x0, 0x0, 0x0, 0x0, 0x70,
-
- /* U+30D2 "ヒ" */
- 0x11, 0x0, 0x0, 0x0, 0x2, 0xf0, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0xd0, 0x1,
- 0x5c, 0xc0, 0xe, 0x67, 0x75, 0x32, 0x0, 0xc0,
- 0x0, 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0x0,
- 0xc0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0,
- 0x0, 0xc6, 0x21, 0x23, 0x65, 0x1, 0x7a, 0xaa,
- 0x98, 0x40,
-
- /* U+30D3 "ビ" */
- 0x30, 0x0, 0x0, 0x5, 0x10, 0xd5, 0x0, 0x0,
- 0x42, 0xd1, 0xb2, 0x0, 0x0, 0x4d, 0x30, 0xb2,
- 0x0, 0x1, 0x82, 0x0, 0xb2, 0x1, 0x8d, 0xb3,
- 0x0, 0xb6, 0x78, 0x30, 0x0, 0x0, 0xb3, 0x0,
- 0x0, 0x0, 0x0, 0xb1, 0x0, 0x0, 0x0, 0x0,
- 0xb2, 0x0, 0x0, 0x0, 0x0, 0x7a, 0x42, 0x23,
- 0x68, 0x0, 0x5, 0x89, 0x99, 0x75, 0x0,
-
- /* U+30D4 "ピ" */
- 0x0, 0x0, 0x0, 0x0, 0x10, 0x3, 0x40, 0x0,
- 0x0, 0x32, 0x60, 0x4d, 0x0, 0x0, 0x3, 0x9a,
- 0x3, 0xa0, 0x0, 0x0, 0x1, 0x10, 0x2a, 0x0,
- 0x4, 0xdb, 0x0, 0x2, 0xa0, 0x6a, 0x84, 0x0,
- 0x0, 0x2c, 0x61, 0x0, 0x0, 0x0, 0x3, 0x90,
- 0x0, 0x0, 0x0, 0x0, 0x39, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x7,
- 0xdc, 0xbc, 0xdd, 0x60, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+30D5 "フ" */
- 0x0, 0x0, 0x0, 0x0, 0x25, 0x30, 0x7, 0x78,
- 0x9a, 0xa9, 0x7a, 0xe0, 0x3, 0x63, 0x10, 0x0,
- 0xd, 0x50, 0x0, 0x0, 0x0, 0x0, 0x6a, 0x0,
- 0x0, 0x0, 0x0, 0x1, 0xd1, 0x0, 0x0, 0x0,
- 0x0, 0xb, 0x40, 0x0, 0x0, 0x0, 0x0, 0x97,
- 0x0, 0x0, 0x0, 0x0, 0x9, 0x70, 0x0, 0x0,
- 0x0, 0x0, 0x95, 0x0, 0x0, 0x0, 0x0, 0x29,
- 0x20, 0x0, 0x0, 0x0, 0x1, 0x40, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+30D6 "ブ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x10, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x30, 0xa4, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x3c, 0x17, 0x0, 0x2, 0x36,
- 0x8a, 0xbe, 0x25, 0x0, 0x5d, 0xb8, 0x64, 0x10,
- 0x4e, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc4,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0x90, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x2c, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x1, 0xc2, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb, 0x40, 0x0, 0x0, 0x0, 0x0, 0x1,
- 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3a, 0x20,
- 0x0, 0x0, 0x0, 0x0, 0x5, 0x50, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+30D7 "プ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x40, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x7, 0x34, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x7, 0x73, 0x0, 0x0, 0x24,
- 0x69, 0xbc, 0x10, 0x0, 0x7d, 0xca, 0x86, 0x31,
- 0x4e, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc4,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0x90, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x2d, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc3, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2a, 0x20,
- 0x0, 0x0, 0x0, 0x0, 0x5, 0x60, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+30D9 "ベ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x75, 0x0, 0x0, 0x0,
- 0x12, 0x0, 0x2a, 0x1c, 0x0, 0x0, 0x3, 0xcb,
- 0x50, 0x4, 0x60, 0x0, 0x0, 0x3c, 0x10, 0xb4,
- 0x0, 0x0, 0x0, 0x4, 0xd1, 0x0, 0x1c, 0x40,
- 0x0, 0x0, 0x3c, 0x20, 0x0, 0x1, 0xd4, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x2d, 0x50, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x2, 0xd8, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x1b, 0xd0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x10,
-
- /* U+30DA "ペ" */
- 0x0, 0x0, 0x0, 0x0, 0x42, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x4, 0x37, 0x0, 0x0, 0x0, 0x0,
- 0x35, 0x2, 0x78, 0x0, 0x0, 0x0, 0x5, 0xb9,
- 0x80, 0x0, 0x0, 0x0, 0x0, 0x5b, 0x0, 0x97,
- 0x0, 0x0, 0x0, 0x7, 0xc0, 0x0, 0xb, 0x60,
- 0x0, 0x0, 0x29, 0x10, 0x0, 0x0, 0xc6, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0x80, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xbb, 0x20, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x8, 0xd0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+30DB "ホ" */
- 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc6, 0x0, 0x0, 0x0, 0x0, 0x9, 0x40, 0x0,
- 0x0, 0x0, 0x0, 0x93, 0x13, 0x52, 0x9, 0xaa,
- 0xad, 0xb9, 0x88, 0x70, 0x11, 0x0, 0x93, 0x0,
- 0x0, 0x0, 0x0, 0x9, 0x30, 0x20, 0x0, 0x7,
- 0x0, 0x93, 0x2, 0x80, 0x3, 0x90, 0x9, 0x30,
- 0x9, 0x61, 0xd3, 0x0, 0x83, 0x0, 0x2d, 0x13,
- 0x0, 0x8d, 0x40, 0x0, 0x30, 0x0, 0x1, 0xc1,
- 0x0, 0x0,
-
- /* U+30DC "ボ" */
- 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x20, 0xb3, 0x0, 0x0, 0xe, 0x20,
- 0x5a, 0x37, 0x0, 0x0, 0xc, 0x10, 0x7, 0x0,
- 0x0, 0x0, 0xb, 0x0, 0x24, 0x10, 0x19, 0x99,
- 0x9e, 0x99, 0x88, 0x50, 0x2, 0x20, 0xb, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xb, 0x0, 0x10, 0x0,
- 0x0, 0x70, 0xb, 0x10, 0x27, 0x0, 0x2, 0x90,
- 0xb, 0x10, 0x9, 0x60, 0xd, 0x40, 0xb, 0x10,
- 0x2, 0xd0, 0x24, 0x1, 0x8d, 0x10, 0x0, 0x30,
- 0x0, 0x0, 0x4c, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0,
-
- /* U+30DD "ポ" */
- 0x0, 0x0, 0x1, 0x2, 0x76, 0x0, 0x0, 0x0,
- 0xe2, 0x42, 0x60, 0x0, 0x0, 0xc, 0x10, 0x64,
- 0x0, 0x0, 0x0, 0xb0, 0x13, 0x51, 0x1a, 0xaa,
- 0x9e, 0x98, 0x77, 0x50, 0x11, 0x0, 0xb0, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x0, 0x20, 0x0, 0x7,
- 0x0, 0xb1, 0x2, 0x80, 0x3, 0x90, 0xb, 0x10,
- 0x9, 0x61, 0xd3, 0x0, 0xb1, 0x0, 0x2d, 0x13,
- 0x1, 0x9e, 0x10, 0x0, 0x30, 0x0, 0x3, 0xb0,
- 0x0, 0x0,
-
- /* U+30DE "マ" */
- 0x0, 0x0, 0x0, 0x1, 0x36, 0x60, 0x4c, 0xba,
- 0x99, 0x98, 0x65, 0xf4, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0x70, 0x0, 0x0, 0x10, 0x1, 0xa3, 0x0,
- 0x0, 0x0, 0x83, 0x18, 0x10, 0x0, 0x0, 0x0,
- 0xc, 0x70, 0x0, 0x0, 0x0, 0x0, 0x4, 0xd0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xc5, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x32, 0x0, 0x0,
-
- /* U+30DF "ミ" */
- 0x1, 0x67, 0x20, 0x0, 0x0, 0x3, 0xcc, 0x30,
- 0x0, 0x0, 0x6, 0xb0, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0x78, 0x30, 0x0, 0x0, 0x2, 0xcc, 0x0,
- 0x0, 0x0, 0x7, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x5, 0x85, 0x0, 0x0, 0x0, 0x6, 0xd9, 0x10,
- 0x0, 0x0, 0x9, 0xc0, 0x0, 0x0, 0x0, 0x40,
-
- /* U+30E0 "ム" */
- 0x0, 0x0, 0x4, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0xaa, 0x0, 0x0, 0x0, 0x0, 0xe, 0x20, 0x0,
- 0x0, 0x0, 0x5, 0x90, 0x0, 0x0, 0x0, 0x0,
- 0xc2, 0x0, 0x0, 0x0, 0x0, 0x49, 0x0, 0x20,
- 0x0, 0x0, 0xb, 0x10, 0x3, 0x80, 0x0, 0x4,
- 0x70, 0x0, 0x8, 0x90, 0x0, 0xb0, 0x26, 0x98,
- 0x5d, 0x50, 0xbe, 0xd9, 0x40, 0x0, 0x6a, 0x5,
- 0x50, 0x0, 0x0, 0x0, 0x30,
-
- /* U+30E1 "メ" */
- 0x0, 0x0, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xf5, 0x0, 0x0, 0x0, 0x0, 0x5c,
- 0x0, 0x0, 0x4, 0x10, 0xd, 0x20, 0x0, 0x0,
- 0x6, 0x88, 0x80, 0x0, 0x0, 0x0, 0x5, 0xf7,
- 0x0, 0x0, 0x0, 0x0, 0xc3, 0xca, 0x0, 0x0,
- 0x0, 0xa5, 0x1, 0xd1, 0x0, 0x0, 0x96, 0x0,
- 0x1, 0x0, 0x0, 0x95, 0x0, 0x0, 0x0, 0x2,
- 0x82, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+30E2 "モ" */
- 0x0, 0x0, 0x3, 0x59, 0xc7, 0x0, 0x2, 0xba,
- 0xac, 0x31, 0x0, 0x0, 0x0, 0x0, 0xf, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xc, 0x0, 0x13, 0x10,
- 0x14, 0x57, 0x9e, 0x9a, 0xa9, 0x90, 0x17, 0x52,
- 0xc, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb, 0x42, 0x24, 0x20, 0x0, 0x0,
- 0x1, 0x8a, 0xa9, 0x20,
-
- /* U+30E3 "ャ" */
- 0x0, 0xc, 0x40, 0x0, 0x0, 0x0, 0x0, 0x77,
- 0x0, 0x5, 0x10, 0x0, 0x1, 0xc6, 0x98, 0xca,
- 0x2, 0x7a, 0x9d, 0x30, 0xa, 0x0, 0x3, 0x0,
- 0x75, 0x5, 0x10, 0x0, 0x0, 0x2, 0xa0, 0x10,
- 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x95, 0x0, 0x0, 0x0, 0x0, 0x3, 0x70,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+30E4 "ヤ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4a,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd0, 0x0,
- 0x49, 0xd3, 0x0, 0x0, 0xc, 0x7a, 0x96, 0x2e,
- 0x30, 0x68, 0xaa, 0xa8, 0x0, 0x7, 0x50, 0x3,
- 0x40, 0x2, 0xa0, 0x1, 0x80, 0x0, 0x0, 0x0,
- 0xc, 0x0, 0x60, 0x0, 0x0, 0x0, 0x0, 0x83,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x70, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x1c, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2, 0x0, 0x0, 0x0,
-
- /* U+30E5 "ュ" */
- 0x0, 0x0, 0x1, 0x20, 0x0, 0x2, 0xba, 0x99,
- 0xf0, 0x0, 0x0, 0x0, 0x4, 0xa0, 0x0, 0x0,
- 0x0, 0x9, 0x40, 0x0, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0x3c, 0xba, 0xac, 0xbc, 0xd5, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+30E7 "ョ" */
- 0x0, 0x0, 0x0, 0x10, 0x7, 0xcb, 0xbb, 0xf3,
- 0x0, 0x0, 0x0, 0xd2, 0x0, 0x0, 0x0, 0xd0,
- 0x5, 0xcb, 0xaa, 0xb0, 0x0, 0x0, 0x3, 0x90,
- 0x0, 0x0, 0x6, 0x70, 0x2c, 0xba, 0xaa, 0x70,
-
- /* U+30E8 "ヨ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0xaa,
- 0xbb, 0xbd, 0xd0, 0x0, 0x2, 0x10, 0x0, 0x2f,
- 0x0, 0x0, 0x0, 0x0, 0x3, 0xb0, 0x0, 0x0,
- 0x0, 0x0, 0x58, 0x0, 0x8, 0xdc, 0xaa, 0xad,
- 0x50, 0x0, 0x0, 0x0, 0x0, 0x93, 0x0, 0x0,
- 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0x0, 0x1,
- 0xc0, 0x0, 0x7e, 0xcb, 0xaa, 0xab, 0x20, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+30E9 "ラ" */
- 0x1, 0x43, 0x45, 0x7a, 0x60, 0x0, 0x78, 0x64,
- 0x32, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x11,
- 0x23, 0x58, 0xab, 0xe8, 0x5c, 0x97, 0x53, 0x10,
- 0xb6, 0x0, 0x0, 0x0, 0x4, 0xc0, 0x0, 0x0,
- 0x0, 0x1d, 0x20, 0x0, 0x0, 0x0, 0xb4, 0x0,
- 0x0, 0x0, 0xb, 0x50, 0x0, 0x0, 0x1, 0xb4,
- 0x0, 0x0, 0x0, 0x59, 0x10, 0x0, 0x0, 0x2,
- 0x20, 0x0, 0x0, 0x0,
-
- /* U+30EA "リ" */
- 0x0, 0x0, 0x1, 0x2, 0x90, 0x0, 0xc6, 0xf,
- 0x0, 0x9, 0x60, 0xd0, 0x0, 0x94, 0xd, 0x0,
- 0x9, 0x40, 0xd0, 0x0, 0xa3, 0xe, 0x0, 0xb,
- 0x20, 0xa0, 0x0, 0xd0, 0x0, 0x0, 0x2b, 0x0,
- 0x0, 0x9, 0x40, 0x0, 0x5, 0x90, 0x0, 0x4,
- 0x80, 0x0, 0x3, 0x30, 0x0, 0x0,
-
- /* U+30EB "ル" */
- 0x0, 0x0, 0x0, 0x91, 0x0, 0x0, 0x0, 0x0,
- 0x2, 0x0, 0xc5, 0x0, 0x0, 0x0, 0x0, 0x2f,
- 0x0, 0xa3, 0x0, 0x0, 0x0, 0x0, 0xe, 0x0,
- 0xa3, 0x0, 0x0, 0x50, 0x0, 0xd, 0x0, 0xa3,
- 0x0, 0x4, 0x40, 0x0, 0x1b, 0x0, 0xa3, 0x0,
- 0x48, 0x0, 0x0, 0x48, 0x0, 0xa3, 0x6, 0x90,
- 0x0, 0x0, 0xa2, 0x0, 0xa5, 0xb8, 0x0, 0x0,
- 0x4, 0x70, 0x0, 0xbf, 0x40, 0x0, 0x0, 0x5,
- 0x0, 0x0, 0x12, 0x0, 0x0, 0x0,
-
- /* U+30EC "レ" */
- 0x9, 0x20, 0x0, 0x0, 0x0, 0xc, 0x60, 0x0,
- 0x0, 0x0, 0xb, 0x40, 0x0, 0x0, 0x0, 0xb,
- 0x30, 0x0, 0x0, 0x0, 0xb, 0x20, 0x0, 0x2,
- 0x50, 0xb, 0x20, 0x0, 0x78, 0x0, 0xb, 0x20,
- 0x5b, 0x40, 0x0, 0xb, 0x7c, 0x90, 0x0, 0x0,
- 0xa, 0xd3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+30ED "ロ" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x36, 0x55, 0x79,
- 0xbc, 0xe2, 0x4d, 0x64, 0x31, 0x0, 0xf4, 0xc,
- 0x0, 0x0, 0x2, 0xc0, 0xd, 0x0, 0x0, 0x5,
- 0x70, 0xc, 0x0, 0x0, 0x8, 0x30, 0xd, 0x0,
- 0x0, 0xc, 0x0, 0xe, 0x67, 0x9b, 0xcf, 0x20,
- 0xc, 0x43, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+30EF "ワ" */
- 0x0, 0x0, 0x0, 0x0, 0x41, 0x9, 0x98, 0x9b,
- 0xbb, 0xbc, 0xd0, 0x97, 0x21, 0x0, 0x0, 0x8a,
- 0x8, 0x60, 0x0, 0x0, 0xd, 0x10, 0x86, 0x0,
- 0x0, 0x6, 0x80, 0x7, 0x70, 0x0, 0x1, 0xc0,
- 0x0, 0x1, 0x0, 0x0, 0xa4, 0x0, 0x0, 0x0,
- 0x0, 0x68, 0x0, 0x0, 0x0, 0x0, 0x49, 0x0,
- 0x0, 0x0, 0x0, 0x48, 0x0, 0x0, 0x0, 0x0,
- 0x65, 0x0, 0x0, 0x0, 0x0, 0x31, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+30F3 "ン" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0x60,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x7d, 0x20, 0x0,
- 0x0, 0x2, 0x0, 0x7, 0x80, 0x0, 0x0, 0x90,
- 0x0, 0x0, 0x0, 0x0, 0xa, 0x20, 0x0, 0x0,
- 0x0, 0x0, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x2b,
- 0x20, 0x0, 0x0, 0x0, 0x5, 0xc1, 0x0, 0x0,
- 0x0, 0x1, 0xa9, 0x0, 0x0, 0x0, 0x4, 0xbd,
- 0x40, 0x0, 0x0, 0x0, 0x1, 0x70, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+30F6 "ヶ" */
- 0x0, 0xa, 0x10, 0x0, 0x0, 0x0, 0x2d, 0x10,
- 0x1, 0x0, 0x0, 0xba, 0x8a, 0xbb, 0x80, 0x5,
- 0x72, 0x1a, 0x50, 0x0, 0x15, 0x0, 0xd, 0x10,
- 0x0, 0x0, 0x0, 0x58, 0x0, 0x0, 0x0, 0x0,
- 0xc0, 0x0, 0x0, 0x0, 0x7, 0x30, 0x0, 0x0,
- 0x0, 0x13, 0x0, 0x0, 0x0,
-
- /* U+30FC "ー" */
- 0x0, 0x0, 0x0, 0x0, 0x2, 0x46, 0x81, 0x8,
- 0xfe, 0xee, 0xdc, 0xcc, 0xbb, 0xbb, 0xa0, 0x4,
- 0x42, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+4E00 "一" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x10,
- 0x7, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7c, 0x80,
-
- /* U+4E03 "七" */
- 0x0, 0x0, 0x0, 0x7, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xf, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe, 0x0, 0x0, 0x1, 0x0,
- 0x0, 0x0, 0x0, 0xe, 0x0, 0x0, 0x2c, 0x80,
- 0x0, 0x0, 0x0, 0xe, 0x15, 0x66, 0x40, 0x0,
- 0x0, 0x0, 0x15, 0x6f, 0x40, 0x0, 0x0, 0x0,
- 0x6, 0x66, 0x40, 0xe, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x30,
- 0x0, 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x70,
- 0x0, 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0xa0,
- 0x0, 0x0, 0x0, 0xf, 0x20, 0x0, 0x3, 0xf2,
- 0x0, 0x0, 0x0, 0x6, 0xbc, 0xcc, 0xcc, 0xa1,
-
- /* U+4E07 "万" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x46,
- 0x66, 0x66, 0x66, 0x66, 0x66, 0xe8, 0x11, 0x0,
- 0xc, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd,
- 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe, 0x30,
- 0x0, 0x2, 0x0, 0x0, 0x0, 0x1f, 0x66, 0x66,
- 0x6e, 0x60, 0x0, 0x0, 0x3e, 0x0, 0x0, 0xe,
- 0x10, 0x0, 0x0, 0x7a, 0x0, 0x0, 0xf, 0x0,
- 0x0, 0x0, 0xc5, 0x0, 0x0, 0xf, 0x0, 0x0,
- 0x2, 0xe0, 0x0, 0x0, 0x1e, 0x0, 0x0, 0xa,
- 0x60, 0x0, 0x0, 0x3d, 0x0, 0x0, 0x4a, 0x0,
- 0x0, 0x0, 0x6b, 0x0, 0x1, 0xa0, 0x0, 0x4,
- 0x87, 0xd7, 0x0, 0x17, 0x0, 0x0, 0x0, 0x2d,
- 0x90, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+4E08 "丈" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa, 0x50, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb3, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb, 0x30, 0x0, 0x60, 0x5, 0x76,
- 0x66, 0x66, 0xd8, 0x66, 0x7b, 0x60, 0x0, 0x10,
- 0x0, 0xc, 0x30, 0x0, 0x0, 0x0, 0x2, 0x30,
- 0x0, 0xc2, 0x0, 0x0, 0x0, 0x0, 0x9, 0x0,
- 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38, 0x1,
- 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa4, 0x4b,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xdb, 0x70,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0xf7, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x1, 0xd7, 0xdb, 0x30,
- 0x0, 0x0, 0x0, 0x4, 0xc3, 0x1, 0x9f, 0xc8,
- 0x42, 0x0, 0x39, 0x70, 0x0, 0x0, 0x2a, 0xfc,
- 0x20, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10,
-
- /* U+4E09 "三" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x25, 0x0,
- 0x0, 0x76, 0x66, 0x66, 0x66, 0x66, 0x89, 0x10,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x20, 0x0,
- 0x0, 0x7, 0x66, 0x66, 0x66, 0x69, 0x80, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x10,
- 0x16, 0x66, 0x66, 0x66, 0x66, 0x66, 0x6c, 0xc1,
- 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+4E0A "上" */
- 0x0, 0x0, 0x0, 0xa, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe, 0x0, 0x0, 0x30, 0x0,
- 0x0, 0x0, 0x0, 0xf, 0x66, 0x67, 0xd5, 0x0,
- 0x0, 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe, 0x0, 0x0, 0x7, 0x80,
- 0x7, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x61,
-
- /* U+4E0B "下" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x46,
- 0x66, 0x66, 0x66, 0x66, 0x67, 0xe6, 0x0, 0x0,
- 0x0, 0xd1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xd1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd1,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd7, 0x50,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xd1, 0x5d, 0x91,
- 0x0, 0x0, 0x0, 0x0, 0xd1, 0x1, 0xdc, 0x0,
- 0x0, 0x0, 0x0, 0xd1, 0x0, 0x1b, 0x0, 0x0,
- 0x0, 0x0, 0xd1, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xd1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe1,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe1, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0,
- 0x0,
-
- /* U+4E0D "不" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x10,
- 0x76, 0x66, 0x66, 0x9c, 0x66, 0x66, 0x85, 0x0,
- 0x0, 0x0, 0xc, 0x70, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x3, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xcf, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x7b, 0xb3, 0x6, 0x0, 0x0, 0x0, 0x0, 0x2d,
- 0x1b, 0x30, 0x1a, 0x30, 0x0, 0x0, 0x1c, 0x20,
- 0xb3, 0x0, 0x1d, 0x60, 0x0, 0x1b, 0x20, 0xb,
- 0x30, 0x0, 0x2f, 0x60, 0x29, 0x10, 0x0, 0xb3,
- 0x0, 0x0, 0x6a, 0x15, 0x0, 0x0, 0xb, 0x30,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb3, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0x30, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xc4, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+4E13 "专" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x5a, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x36, 0x66, 0xaa, 0x66, 0x6a, 0xb0, 0x0,
- 0x0, 0x1, 0x0, 0xa4, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd1, 0x0, 0x0, 0x0, 0x0,
- 0x5, 0x66, 0x66, 0xf6, 0x66, 0x66, 0x6c, 0xa0,
- 0x2, 0x0, 0x3, 0xb0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x7, 0x70, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xe, 0x86, 0x66, 0x6a, 0x80, 0x0,
- 0x0, 0x0, 0x2, 0x0, 0x0, 0x1d, 0x60, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xa2, 0x0, 0x0,
- 0x0, 0x0, 0x3, 0x85, 0x7, 0x20, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x6, 0xda, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x1b, 0xa0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0,
-
- /* U+4E14 "且" */
- 0x0, 0x0, 0x30, 0x0, 0x0, 0x4, 0x0, 0x0,
- 0x0, 0x0, 0xe6, 0x66, 0x66, 0x6f, 0x10, 0x0,
- 0x0, 0x0, 0xd1, 0x0, 0x0, 0x1d, 0x0, 0x0,
- 0x0, 0x0, 0xd1, 0x0, 0x0, 0x1d, 0x0, 0x0,
- 0x0, 0x0, 0xd1, 0x0, 0x0, 0x1d, 0x0, 0x0,
- 0x0, 0x0, 0xd6, 0x66, 0x66, 0x6d, 0x0, 0x0,
- 0x0, 0x0, 0xd1, 0x0, 0x0, 0x1d, 0x0, 0x0,
- 0x0, 0x0, 0xd1, 0x0, 0x0, 0x1d, 0x0, 0x0,
- 0x0, 0x0, 0xd1, 0x0, 0x0, 0x1d, 0x0, 0x0,
- 0x0, 0x0, 0xd6, 0x66, 0x66, 0x6d, 0x0, 0x0,
- 0x0, 0x0, 0xd1, 0x0, 0x0, 0x1d, 0x0, 0x0,
- 0x0, 0x0, 0xd1, 0x0, 0x0, 0x1d, 0x0, 0x0,
- 0x0, 0x0, 0xd1, 0x0, 0x0, 0x1d, 0x7, 0x40,
- 0x28, 0x66, 0x86, 0x66, 0x66, 0x68, 0x69, 0x80,
-
- /* U+4E16 "世" */
- 0x0, 0x0, 0x0, 0x6, 0x0, 0x8, 0x20, 0x0,
- 0x0, 0x6, 0x0, 0xe, 0x0, 0xe, 0x10, 0x0,
- 0x0, 0xe, 0x20, 0xd, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0xd, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0xd, 0x0, 0xe, 0x7, 0x70,
- 0x18, 0x6e, 0x66, 0x6e, 0x66, 0x6e, 0x66, 0x50,
- 0x0, 0xe, 0x0, 0xd, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0xd, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0xd, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0xd, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0xe, 0x66, 0x6e, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0x7, 0x0, 0x5, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0x0, 0x0, 0x0, 0x3, 0x20,
- 0x0, 0x2e, 0x66, 0x66, 0x66, 0x66, 0x6a, 0x90,
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+4E21 "両" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9, 0x40,
- 0x7, 0x66, 0x66, 0x6d, 0x66, 0x66, 0x66, 0x50,
- 0x0, 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x20, 0x0, 0xc, 0x0, 0x0, 0x3, 0x0,
- 0x0, 0xd6, 0x66, 0x6d, 0x66, 0x66, 0x6e, 0x10,
- 0x0, 0xd0, 0x0, 0xc, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0xd0, 0x2b, 0xc, 0x0, 0xc4, 0xd, 0x0,
- 0x0, 0xd0, 0x1b, 0xc, 0x0, 0xc1, 0xd, 0x0,
- 0x0, 0xd0, 0x1b, 0xc, 0x0, 0xc1, 0xd, 0x0,
- 0x0, 0xd0, 0x1b, 0xc, 0x0, 0xc1, 0xd, 0x0,
- 0x0, 0xd0, 0x3c, 0x69, 0x66, 0xd1, 0xd, 0x0,
- 0x0, 0xd0, 0x0, 0x0, 0x0, 0x30, 0xd, 0x0,
- 0x0, 0xd0, 0x0, 0x0, 0x0, 0x43, 0x4c, 0x0,
- 0x0, 0xc0, 0x0, 0x0, 0x0, 0x6, 0xf8, 0x0,
- 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0,
-
- /* U+4E26 "並" */
- 0x0, 0x4, 0x10, 0x0, 0x0, 0x82, 0x0, 0x0,
- 0x0, 0xb, 0x30, 0x0, 0x2e, 0x30, 0x0, 0x0,
- 0x0, 0x3f, 0x10, 0x9, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0xc2, 0x2, 0x50, 0x39, 0x0, 0x7, 0x66,
- 0x6e, 0x66, 0xc7, 0x66, 0x61, 0x0, 0x10, 0x0,
- 0xd0, 0xb, 0x30, 0x3, 0x0, 0x6, 0x20, 0xd,
- 0x0, 0xb3, 0x2, 0xf3, 0x0, 0x1a, 0x0, 0xd0,
- 0xb, 0x30, 0xa7, 0x0, 0x0, 0xc3, 0xd, 0x0,
- 0xb3, 0x3a, 0x0, 0x0, 0x8, 0x90, 0xd0, 0xb,
- 0x3a, 0x10, 0x0, 0x0, 0x68, 0xd, 0x0, 0xb8,
- 0x20, 0x0, 0x0, 0x0, 0x0, 0xd0, 0xb, 0x50,
- 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0xb3, 0x0,
- 0x72, 0x5, 0x76, 0x66, 0x96, 0x68, 0x66, 0x6a,
- 0x80,
-
- /* U+4E2D "中" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc4, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd,
- 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd1, 0x0,
- 0x0, 0x0, 0xa6, 0x66, 0x6e, 0x66, 0x66, 0x6e,
- 0x2d, 0x10, 0x0, 0xd1, 0x0, 0x0, 0xe0, 0xd1,
- 0x0, 0xd, 0x10, 0x0, 0xe, 0xd, 0x10, 0x0,
- 0xd1, 0x0, 0x0, 0xe0, 0xd1, 0x0, 0xd, 0x10,
- 0x0, 0xe, 0xd, 0x66, 0x66, 0xe6, 0x66, 0x66,
- 0xe0, 0x60, 0x0, 0xd, 0x10, 0x0, 0x5, 0x0,
- 0x0, 0x0, 0xd1, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xd, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd1,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xe, 0x20, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0,
-
- /* U+4E3B "主" */
- 0x0, 0x0, 0x0, 0x60, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2, 0xd3, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x7, 0xd0, 0x0, 0x0, 0x0, 0x26,
- 0x66, 0x66, 0x6a, 0x66, 0x6c, 0xb0, 0x0, 0x20,
- 0x0, 0xb, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb3, 0x0, 0x33, 0x0, 0x0, 0x28, 0x66, 0x6d,
- 0x86, 0x69, 0x80, 0x0, 0x0, 0x0, 0x0, 0xb3,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0x30,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb3, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0x30, 0x0,
- 0x7, 0x1, 0x86, 0x66, 0x66, 0x86, 0x66, 0x67,
- 0xa5,
-
- /* U+4E45 "久" */
- 0x0, 0x0, 0x0, 0xc3, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x3, 0xe0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x8, 0x70, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xe, 0x66, 0x6d, 0x60, 0x0, 0x0,
- 0x0, 0x0, 0x67, 0x0, 0x2e, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb0, 0x0, 0x88, 0x0, 0x0, 0x0,
- 0x0, 0x8, 0x20, 0x0, 0xe6, 0x0, 0x0, 0x0,
- 0x0, 0x43, 0x0, 0x6, 0x97, 0x0, 0x0, 0x0,
- 0x0, 0x20, 0x0, 0x1d, 0x13, 0x50, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa5, 0x0, 0xb0, 0x0, 0x0,
- 0x0, 0x0, 0x7, 0x80, 0x0, 0x59, 0x0, 0x0,
- 0x0, 0x0, 0x69, 0x0, 0x0, 0xb, 0x80, 0x0,
- 0x0, 0x7, 0x60, 0x0, 0x0, 0x1, 0xeb, 0x30,
- 0x2, 0x62, 0x0, 0x0, 0x0, 0x0, 0x2c, 0x60,
- 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+4E4B "之" */
- 0x0, 0x0, 0x0, 0x81, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x3e, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa, 0x30, 0x0, 0x0, 0x0,
- 0x2, 0x76, 0x66, 0x66, 0x66, 0x8d, 0x10, 0x0,
- 0x0, 0x10, 0x0, 0x0, 0x1, 0xd8, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xc, 0x60, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xb6, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x50, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa4, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x7b, 0x91, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xe, 0x90, 0x1b, 0x95, 0x32, 0x22, 0x34, 0x51,
- 0x3, 0x0, 0x0, 0x5a, 0xce, 0xef, 0xff, 0x30,
-
- /* U+4E4E "乎" */
- 0x0, 0x0, 0x0, 0x0, 0x2, 0x6c, 0x20, 0x0,
- 0x0, 0x23, 0x68, 0xab, 0xa8, 0x62, 0x0, 0x4,
- 0x54, 0x32, 0x4b, 0x0, 0x2, 0x0, 0x0, 0x3,
- 0x30, 0x3, 0xb0, 0x3, 0xd1, 0x0, 0x0, 0xb,
- 0x40, 0x3b, 0x0, 0xa3, 0x0, 0x0, 0x0, 0x4e,
- 0x3, 0xb0, 0x37, 0x0, 0x0, 0x0, 0x0, 0x60,
- 0x3b, 0x5, 0x0, 0x14, 0x6, 0x76, 0x66, 0x68,
- 0xd6, 0x66, 0x69, 0xa1, 0x0, 0x0, 0x0, 0x3b,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xb0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3b, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xb0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x41, 0x6b, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x2, 0xaf, 0x80, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+4E4F "乏" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x36, 0x0, 0x0,
- 0x0, 0x0, 0x24, 0x7a, 0xed, 0xc3, 0x0, 0x5,
- 0x66, 0x78, 0x42, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x3c, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x8a, 0x0, 0x0, 0x0, 0x0, 0x36, 0x66,
- 0x66, 0x86, 0x6a, 0x70, 0x0, 0x0, 0x10, 0x0,
- 0x0, 0x8, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1b, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5a,
- 0x20, 0x0, 0x0, 0x0, 0x0, 0x1, 0x96, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x6, 0x81, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x4a, 0x92, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x5d, 0x0, 0x7a, 0x63, 0x22, 0x23,
- 0x45, 0x10, 0x20, 0x0, 0x16, 0xac, 0xde, 0xff,
- 0x40,
-
- /* U+4E57 "乗" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x36, 0xa7, 0x0,
- 0x0, 0x45, 0x55, 0x67, 0xd9, 0x87, 0x66, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0, 0x0,
- 0x0, 0x46, 0x66, 0x66, 0xe6, 0x66, 0xab, 0x0,
- 0x0, 0x11, 0x6, 0x0, 0xd0, 0x16, 0x0, 0x0,
- 0x0, 0x0, 0x1c, 0x0, 0xd0, 0x3b, 0x2, 0x30,
- 0x6, 0x76, 0x6d, 0x66, 0xe6, 0x7c, 0x68, 0x80,
- 0x0, 0x0, 0x1c, 0x0, 0xd0, 0x3b, 0x0, 0x0,
- 0x0, 0x46, 0x6d, 0x66, 0xe6, 0x7c, 0x9c, 0x10,
- 0x0, 0x11, 0x0, 0x7b, 0xd6, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x4, 0xc1, 0xd1, 0x90, 0x0, 0x0,
- 0x0, 0x0, 0x5b, 0x10, 0xd0, 0x4c, 0x10, 0x0,
- 0x0, 0x8, 0x70, 0x0, 0xd0, 0x5, 0xe9, 0x30,
- 0x5, 0x61, 0x0, 0x0, 0xe0, 0x0, 0x2c, 0xc3,
- 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0,
-
- /* U+4E5D "九" */
- 0x0, 0x0, 0xa, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0xc0, 0x0, 0x40, 0x0, 0x0, 0x5, 0x65,
- 0x6d, 0x66, 0x6e, 0x20, 0x0, 0x0, 0x0, 0x2,
- 0xa0, 0x0, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x48,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x8, 0x50,
- 0x0, 0xd0, 0x0, 0x0, 0x0, 0x0, 0xc1, 0x0,
- 0xd, 0x0, 0x0, 0x0, 0x0, 0x2b, 0x0, 0x0,
- 0xd0, 0x0, 0x0, 0x0, 0x9, 0x30, 0x0, 0xd,
- 0x0, 0x3, 0x0, 0x4, 0x90, 0x0, 0x0, 0xd0,
- 0x0, 0x70, 0x1, 0x90, 0x0, 0x0, 0xe, 0x0,
- 0xb, 0x2, 0x70, 0x0, 0x0, 0x0, 0xbd, 0xcc,
- 0xd2, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+4E5F "也" */
- 0x0, 0x0, 0x0, 0x7, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd2, 0x0, 0x0, 0x0, 0x0,
- 0x7, 0x30, 0xc, 0x10, 0x0, 0x20, 0x0, 0x0,
- 0xa3, 0x0, 0xc1, 0x1, 0x6f, 0x20, 0x0, 0xa,
- 0x30, 0xc, 0x67, 0x61, 0xd0, 0x0, 0x0, 0xa4,
- 0x57, 0xe2, 0x0, 0xd, 0x0, 0x0, 0x5c, 0x81,
- 0xc, 0x10, 0x2, 0xb0, 0x0, 0x61, 0xa3, 0x0,
- 0xc1, 0x0, 0x3a, 0x0, 0x0, 0xa, 0x30, 0xc,
- 0x12, 0x18, 0x70, 0x0, 0x0, 0xa3, 0x0, 0xc1,
- 0x4d, 0xe1, 0x0, 0x0, 0xa, 0x30, 0xd, 0x10,
- 0x10, 0x5, 0x0, 0x0, 0xa3, 0x0, 0x50, 0x0,
- 0x0, 0x70, 0x0, 0xa, 0x40, 0x0, 0x0, 0x0,
- 0xa, 0x30, 0x0, 0x6e, 0xcc, 0xcc, 0xcc, 0xcc,
- 0xe6,
-
- /* U+4E86 "了" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x32, 0x3, 0x76,
- 0x66, 0x66, 0x66, 0x7f, 0xb0, 0x0, 0x0, 0x0,
- 0x0, 0x2b, 0x40, 0x0, 0x0, 0x0, 0x0, 0x47,
- 0x0, 0x0, 0x0, 0x0, 0x3, 0x94, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x3, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x3b, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xb0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x3b, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x3, 0xb0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x3b, 0x0, 0x0, 0x0, 0x0, 0x2,
- 0x5, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x4c, 0xf8,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+4E88 "予" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x12, 0x0, 0x0,
- 0x6, 0x76, 0x66, 0x66, 0x7e, 0xc0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x3b, 0x50, 0x0, 0x0, 0x0,
- 0x1, 0x76, 0x56, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x7e, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb5, 0x0, 0x5, 0x20, 0x47, 0x66, 0x66,
- 0x6e, 0x66, 0x66, 0xfa, 0x0, 0x0, 0x0, 0x1,
- 0xd0, 0x0, 0x85, 0x0, 0x0, 0x0, 0x0, 0x1d,
- 0x0, 0x13, 0x0, 0x0, 0x0, 0x0, 0x1, 0xd0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1d, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xd0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x21, 0x3d, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x2, 0x8f, 0xa0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+4E89 "争" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa, 0x80, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x4f, 0x76, 0x6b, 0x80, 0x0, 0x0,
- 0x0, 0x1, 0xc2, 0x0, 0x3c, 0x20, 0x0, 0x0,
- 0x0, 0xa, 0x10, 0x0, 0x90, 0x0, 0x20, 0x0,
- 0x1, 0x75, 0x76, 0x6b, 0x76, 0x67, 0xd0, 0x0,
- 0x4, 0x0, 0x0, 0xb, 0x20, 0x3, 0xa0, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x20, 0x3, 0xa5, 0x60,
- 0x7, 0x66, 0x66, 0x6d, 0x76, 0x67, 0xc6, 0x50,
- 0x0, 0x0, 0x0, 0xb, 0x20, 0x3, 0xa0, 0x0,
- 0x0, 0x26, 0x66, 0x6d, 0x76, 0x67, 0xa0, 0x0,
- 0x0, 0x1, 0x0, 0xb, 0x20, 0x1, 0x40, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x10, 0xd, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x17, 0xef, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x32, 0x0, 0x0, 0x0, 0x0,
-
- /* U+4E8B "事" */
- 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd3, 0x0, 0x0, 0x10, 0x5,
- 0x66, 0x66, 0x6e, 0x66, 0x66, 0xae, 0x20, 0x10,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x8,
- 0x66, 0x6e, 0x66, 0x6c, 0x40, 0x0, 0x0, 0xa2,
- 0x0, 0xe0, 0x0, 0xc2, 0x0, 0x0, 0xa, 0x76,
- 0x6e, 0x66, 0x6d, 0x20, 0x0, 0x0, 0x40, 0x0,
- 0xe0, 0x0, 0x50, 0x0, 0x0, 0x27, 0x66, 0x6e,
- 0x66, 0x6d, 0x50, 0x0, 0x0, 0x0, 0x0, 0xe0,
- 0x0, 0xc2, 0x81, 0x27, 0x66, 0x66, 0x6e, 0x66,
- 0x6d, 0x77, 0x40, 0x0, 0x0, 0x0, 0xe0, 0x0,
- 0xc2, 0x0, 0x0, 0x37, 0x66, 0x6e, 0x66, 0x6d,
- 0x20, 0x0, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x10,
- 0x0, 0x0, 0x0, 0x28, 0xed, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x4, 0x10, 0x0, 0x0, 0x0,
-
- /* U+4E8C "二" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x60, 0x0,
- 0x0, 0x27, 0x66, 0x66, 0x66, 0x67, 0xa4, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2d, 0x40,
- 0x7, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x50,
-
- /* U+4E94 "五" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x11, 0x0,
- 0x0, 0x76, 0x66, 0x68, 0x66, 0x66, 0xab, 0x0,
- 0x0, 0x0, 0x0, 0x1d, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x3a, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x68, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x85, 0x0, 0x2, 0x0, 0x0,
- 0x0, 0x37, 0x66, 0xc8, 0x66, 0x6e, 0x40, 0x0,
- 0x0, 0x0, 0x0, 0xd0, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd0, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0x0, 0x1, 0xc0, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0x0, 0x4, 0x90, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x0, 0x6, 0x70, 0x0, 0x1d, 0x0, 0x0,
- 0x0, 0x0, 0x9, 0x40, 0x0, 0x1c, 0x6, 0x40,
- 0x7, 0x66, 0x68, 0x66, 0x66, 0x68, 0x68, 0x80,
-
- /* U+4E9B "些" */
- 0x0, 0x0, 0x8, 0x0, 0x8, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0xe, 0x0, 0xd, 0x0, 0x0, 0x0,
- 0x0, 0x50, 0xd, 0x0, 0xd, 0x0, 0x2b, 0x10,
- 0x0, 0xd2, 0xe, 0x6c, 0x2d, 0x2, 0xc5, 0x0,
- 0x0, 0xd0, 0xd, 0x0, 0xd, 0x47, 0x0, 0x0,
- 0x0, 0xd0, 0xd, 0x0, 0xd, 0x20, 0x0, 0x40,
- 0x0, 0xd0, 0xd, 0x0, 0xd, 0x0, 0x0, 0x70,
- 0x0, 0xd0, 0xd, 0x55, 0x2d, 0x20, 0x5, 0xc0,
- 0xa, 0xe9, 0x74, 0x0, 0x4, 0xaa, 0xaa, 0x50,
- 0x3, 0x0, 0x0, 0x0, 0x0, 0x3, 0x10, 0x0,
- 0x0, 0x7, 0x66, 0x66, 0x66, 0x6a, 0x80, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1b, 0x20,
- 0x6, 0x66, 0x66, 0x66, 0x66, 0x66, 0x78, 0x60,
-
- /* U+4EA1 "亡" */
- 0x0, 0x0, 0x0, 0x17, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x8, 0xc0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1, 0xf1, 0x0, 0x0, 0x10,
- 0x5, 0x66, 0x66, 0x66, 0x86, 0x66, 0x6b, 0xe2,
- 0x1, 0x11, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0xd0, 0x0, 0x0, 0x0, 0x3, 0x0,
- 0x0, 0x4, 0xe6, 0x66, 0x66, 0x66, 0xad, 0x20,
- 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+4EA4 "交" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x2a, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x7, 0xb0, 0x0, 0x2, 0x0,
- 0x5, 0x66, 0x66, 0x66, 0x96, 0x66, 0x6f, 0x80,
- 0x1, 0x0, 0x5, 0x0, 0x2, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x6d, 0x20, 0x0, 0x78, 0x10, 0x0,
- 0x0, 0x5, 0xb1, 0x0, 0x0, 0x15, 0xe4, 0x0,
- 0x0, 0x67, 0x5, 0x0, 0x5, 0xd1, 0x7b, 0x0,
- 0x4, 0x20, 0x5, 0x20, 0xa, 0x60, 0x1, 0x0,
- 0x0, 0x0, 0x0, 0x90, 0x1d, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x65, 0xa5, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x90, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x7a, 0xc5, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x3a, 0x50, 0x1a, 0xc6, 0x20, 0x0,
- 0x0, 0x47, 0x60, 0x0, 0x0, 0x3a, 0xff, 0xb1,
- 0x4, 0x10, 0x0, 0x0, 0x0, 0x0, 0x2, 0x10,
-
- /* U+4EA6 "亦" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x19, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2f, 0x20, 0x0, 0x10, 0x4, 0x66,
- 0x66, 0x66, 0xd6, 0x66, 0x6d, 0xb0, 0x11, 0x0,
- 0xe, 0x0, 0x1c, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xe0, 0x1, 0xc0, 0x0, 0x0, 0x0, 0xa6, 0xe,
- 0x0, 0x1c, 0x21, 0x0, 0x0, 0xe, 0x10, 0xe0,
- 0x1, 0xc0, 0x91, 0x0, 0x4, 0x80, 0x2c, 0x0,
- 0x1c, 0x2, 0xc1, 0x0, 0xa1, 0x4, 0x90, 0x1,
- 0xc0, 0x9, 0xa0, 0x26, 0x0, 0xa5, 0x0, 0x1c,
- 0x0, 0x2f, 0x4, 0x0, 0x1c, 0x0, 0x1, 0xc0,
- 0x0, 0x50, 0x0, 0xa, 0x30, 0x0, 0x1c, 0x0,
- 0x0, 0x0, 0x8, 0x30, 0x3, 0x79, 0xc0, 0x0,
- 0x0, 0x17, 0x10, 0x0, 0x2, 0xd5, 0x0, 0x0,
- 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+4EAC "京" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x8, 0x60, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xe, 0x10, 0x0, 0x50, 0x5, 0x76,
- 0x66, 0x66, 0x86, 0x66, 0x6b, 0x80, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa6,
- 0x66, 0x66, 0x6b, 0x40, 0x0, 0x0, 0xe, 0x0,
- 0x0, 0x0, 0xd2, 0x0, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0xd, 0x10, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0xd1, 0x0, 0x0, 0x0, 0xf6, 0x66, 0xc6,
- 0x6d, 0x10, 0x0, 0x0, 0x2, 0x20, 0x1d, 0x1,
- 0x0, 0x0, 0x0, 0x0, 0x3e, 0x31, 0xd0, 0x38,
- 0x0, 0x0, 0x0, 0x2c, 0x30, 0x1d, 0x0, 0x5c,
- 0x10, 0x0, 0x3a, 0x10, 0x2, 0xd0, 0x0, 0x9b,
- 0x0, 0x45, 0x0, 0x29, 0xeb, 0x0, 0x1, 0x80,
- 0x0, 0x0, 0x0, 0x6, 0x10, 0x0, 0x0, 0x0,
-
- /* U+4EBA "人" */
- 0x0, 0x0, 0x0, 0x1b, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1f, 0x50, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1f, 0x50, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x3e, 0x70, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x5c, 0x80, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x6a, 0x90, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa7, 0x64, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe3, 0x1a, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x3, 0xd0, 0xb, 0x30, 0x0, 0x0,
- 0x0, 0x0, 0xa, 0x60, 0x4, 0xc0, 0x0, 0x0,
- 0x0, 0x0, 0x3c, 0x0, 0x0, 0xb8, 0x0, 0x0,
- 0x0, 0x1, 0xc2, 0x0, 0x0, 0x1e, 0x70, 0x0,
- 0x0, 0x2b, 0x20, 0x0, 0x0, 0x3, 0xfc, 0x50,
- 0x4, 0x70, 0x0, 0x0, 0x0, 0x0, 0x3d, 0x61,
- 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+4EC0 "什" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x40, 0x0, 0xb3, 0x0, 0x0, 0x0,
- 0x2, 0xf1, 0x0, 0xc, 0x10, 0x0, 0x0, 0x0,
- 0x79, 0x0, 0x0, 0xc1, 0x0, 0x0, 0x0, 0xd,
- 0x20, 0x0, 0xc, 0x10, 0x0, 0x0, 0x4, 0xf3,
- 0x0, 0x0, 0xc1, 0x0, 0x20, 0x0, 0xac, 0x47,
- 0x66, 0x6d, 0x66, 0x6d, 0x60, 0x37, 0xa3, 0x0,
- 0x0, 0xc1, 0x0, 0x0, 0x8, 0xa, 0x30, 0x0,
- 0xc, 0x10, 0x0, 0x4, 0x10, 0xa3, 0x0, 0x0,
- 0xc1, 0x0, 0x0, 0x0, 0xa, 0x30, 0x0, 0xc,
- 0x10, 0x0, 0x0, 0x0, 0xa3, 0x0, 0x0, 0xc1,
- 0x0, 0x0, 0x0, 0xa, 0x30, 0x0, 0xc, 0x10,
- 0x0, 0x0, 0x0, 0xa3, 0x0, 0x0, 0xc1, 0x0,
- 0x0, 0x0, 0xa, 0x40, 0x0, 0xd, 0x10, 0x0,
- 0x0, 0x0, 0x40, 0x0, 0x0, 0x50, 0x0, 0x0,
-
- /* U+4ECA "今" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x6c, 0x60, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x1, 0xe2, 0x54, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb, 0x60, 0x9, 0x40, 0x0, 0x0,
- 0x0, 0x0, 0x79, 0x10, 0x0, 0xc6, 0x0, 0x0,
- 0x0, 0x6, 0x90, 0x3a, 0x10, 0xb, 0xc4, 0x0,
- 0x0, 0x76, 0x0, 0x6, 0xc0, 0x0, 0x7f, 0xc1,
- 0x16, 0x20, 0x0, 0x0, 0x60, 0x0, 0x2, 0x10,
- 0x0, 0x5, 0x66, 0x66, 0x66, 0x6a, 0x50, 0x0,
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x2e, 0x10, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xd4, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x8, 0x80, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xd2, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x2, 0x40, 0x0, 0x0, 0x0,
-
- /* U+4ECB "介" */
- 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2, 0xe3, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x8b, 0x50, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1e, 0x16, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0xa, 0x60, 0xa, 0x10, 0x0, 0x0, 0x0, 0x6,
- 0xa0, 0x0, 0x1c, 0x30, 0x0, 0x0, 0x5, 0x82,
- 0x0, 0x3, 0x2d, 0xa3, 0x0, 0x6, 0x50, 0xb6,
- 0x0, 0xb6, 0x1a, 0xf6, 0x15, 0x10, 0xb, 0x20,
- 0xb, 0x30, 0x1, 0x0, 0x0, 0x0, 0xb2, 0x0,
- 0xa3, 0x0, 0x0, 0x0, 0x0, 0xc, 0x0, 0xa,
- 0x30, 0x0, 0x0, 0x0, 0x1, 0xd0, 0x0, 0xa3,
- 0x0, 0x0, 0x0, 0x0, 0x76, 0x0, 0xa, 0x30,
- 0x0, 0x0, 0x0, 0x3a, 0x0, 0x0, 0xa3, 0x0,
- 0x0, 0x0, 0x57, 0x0, 0x0, 0xa, 0x40, 0x0,
- 0x0, 0x22, 0x0, 0x0, 0x0, 0x51, 0x0, 0x0,
-
- /* U+4ECD "仍" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x4, 0xc2, 0x76, 0x66, 0x66, 0xc2, 0x0,
- 0x0, 0x9, 0x50, 0x13, 0xa0, 0x1, 0xd0, 0x0,
- 0x0, 0xc, 0x0, 0x4, 0x90, 0x5, 0x90, 0x0,
- 0x0, 0x7e, 0x30, 0x4, 0x90, 0x8, 0x50, 0x0,
- 0x0, 0xac, 0x10, 0x5, 0x80, 0xc, 0x21, 0x20,
- 0x7, 0x2c, 0x10, 0x6, 0x70, 0x1c, 0x69, 0xb0,
- 0x25, 0xc, 0x10, 0x8, 0x50, 0x0, 0x7, 0x70,
- 0x0, 0xc, 0x10, 0xa, 0x20, 0x0, 0x8, 0x50,
- 0x0, 0xc, 0x10, 0xd, 0x0, 0x0, 0xa, 0x30,
- 0x0, 0xc, 0x10, 0x48, 0x0, 0x0, 0xd, 0x10,
- 0x0, 0xc, 0x10, 0xa1, 0x0, 0x0, 0xe, 0x0,
- 0x0, 0xc, 0x14, 0x60, 0x0, 0x43, 0x8b, 0x0,
- 0x0, 0xd, 0x46, 0x0, 0x0, 0x1a, 0xe3, 0x0,
- 0x0, 0x6, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+4ED5 "仕" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb, 0x50, 0x0, 0x93, 0x0, 0x0, 0x0,
- 0x1, 0xf2, 0x0, 0xe, 0x20, 0x0, 0x0, 0x0,
- 0x6b, 0x0, 0x0, 0xd1, 0x0, 0x0, 0x0, 0xc,
- 0x30, 0x0, 0xd, 0x10, 0x0, 0x0, 0x2, 0xf3,
- 0x0, 0x0, 0xd1, 0x0, 0x30, 0x0, 0xae, 0x47,
- 0x66, 0x6e, 0x66, 0x6b, 0x60, 0x28, 0xb3, 0x0,
- 0x0, 0xd1, 0x0, 0x0, 0x8, 0xb, 0x30, 0x0,
- 0xd, 0x10, 0x0, 0x3, 0x10, 0xb3, 0x0, 0x0,
- 0xd1, 0x0, 0x0, 0x0, 0xb, 0x30, 0x0, 0xd,
- 0x10, 0x0, 0x0, 0x0, 0xb3, 0x0, 0x0, 0xd1,
- 0x0, 0x0, 0x0, 0xb, 0x30, 0x0, 0xd, 0x10,
- 0x0, 0x0, 0x0, 0xb3, 0x0, 0x0, 0xd1, 0x4,
- 0x80, 0x0, 0xb, 0x43, 0x76, 0x66, 0x66, 0x66,
- 0x10, 0x0, 0x51, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+4ED6 "他" */
- 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0xe2, 0x0, 0xc, 0x30, 0x0, 0x0,
- 0x0, 0x5, 0xa0, 0x0, 0xd, 0x0, 0x0, 0x0,
- 0x0, 0xb, 0x30, 0x0, 0xd, 0x0, 0x0, 0x0,
- 0x0, 0x1c, 0x0, 0xd3, 0xd, 0x0, 0x26, 0x0,
- 0x0, 0x7d, 0x20, 0xd0, 0xd, 0x66, 0x7b, 0x0,
- 0x0, 0xbd, 0x24, 0xe6, 0x5d, 0x0, 0x3a, 0x0,
- 0x6, 0x4c, 0x22, 0xd0, 0xd, 0x0, 0x3a, 0x0,
- 0x7, 0xc, 0x10, 0xd0, 0xd, 0x0, 0x49, 0x0,
- 0x20, 0xc, 0x10, 0xd0, 0xd, 0x2, 0x88, 0x0,
- 0x0, 0xc, 0x10, 0xd0, 0xd, 0x5, 0xe3, 0x0,
- 0x0, 0xc, 0x10, 0xd0, 0xd, 0x0, 0x0, 0x30,
- 0x0, 0xc, 0x10, 0xd0, 0x4, 0x0, 0x0, 0x60,
- 0x0, 0xc, 0x10, 0xc0, 0x0, 0x0, 0x0, 0xc0,
- 0x0, 0xd, 0x10, 0x7c, 0xbb, 0xbb, 0xbc, 0xb1,
- 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+4ED8 "付" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x9, 0x70, 0x0, 0x0, 0xa3, 0x0, 0x0,
- 0x0, 0xe2, 0x0, 0x0, 0xd, 0x20, 0x0, 0x0,
- 0x4b, 0x0, 0x0, 0x0, 0xd2, 0x0, 0x0, 0xa,
- 0x30, 0x0, 0x0, 0xd, 0x23, 0x0, 0x1, 0xf3,
- 0x27, 0x66, 0x66, 0xe7, 0x96, 0x0, 0x9d, 0x30,
- 0x0, 0x0, 0xd, 0x20, 0x0, 0x28, 0xa3, 0x1,
- 0x20, 0x0, 0xd2, 0x0, 0x8, 0xa, 0x30, 0x9,
- 0x30, 0xd, 0x20, 0x3, 0x10, 0xa3, 0x0, 0x2f,
- 0x10, 0xd2, 0x0, 0x0, 0xa, 0x30, 0x0, 0xb1,
- 0xd, 0x20, 0x0, 0x0, 0xa3, 0x0, 0x0, 0x0,
- 0xd2, 0x0, 0x0, 0xa, 0x30, 0x0, 0x0, 0xd,
- 0x20, 0x0, 0x0, 0xa3, 0x0, 0x0, 0x0, 0xd2,
- 0x0, 0x0, 0xb, 0x40, 0x0, 0x16, 0xdf, 0x0,
- 0x0, 0x0, 0x50, 0x0, 0x0, 0x3, 0x30, 0x0,
-
- /* U+4EE3 "代" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2c, 0x10, 0x15, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x7b, 0x0, 0x1e, 0x13, 0x92, 0x0,
- 0x0, 0x0, 0xd2, 0x0, 0xd, 0x0, 0x4f, 0x20,
- 0x0, 0x3, 0xa0, 0x0, 0xe, 0x0, 0x6, 0x10,
- 0x0, 0xb, 0xa0, 0x0, 0xd, 0x0, 0x7, 0x50,
- 0x0, 0x3c, 0xc1, 0x65, 0x6d, 0x76, 0x54, 0x30,
- 0x0, 0xa3, 0xb0, 0x0, 0xa, 0x30, 0x0, 0x0,
- 0x6, 0x32, 0xb0, 0x0, 0x7, 0x60, 0x0, 0x0,
- 0x4, 0x2, 0xb0, 0x0, 0x4, 0x90, 0x0, 0x0,
- 0x0, 0x2, 0xb0, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x2, 0xb0, 0x0, 0x0, 0xa6, 0x0, 0x11,
- 0x0, 0x2, 0xb0, 0x0, 0x0, 0x2e, 0x30, 0x60,
- 0x0, 0x2, 0xb0, 0x0, 0x0, 0x6, 0xe3, 0xb0,
- 0x0, 0x2, 0xc0, 0x0, 0x0, 0x0, 0x5e, 0xf1,
- 0x0, 0x1, 0x40, 0x0, 0x0, 0x0, 0x1, 0x72,
-
- /* U+4EE4 "令" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x80, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x2f, 0x80, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb6, 0x27, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x6, 0xb0, 0x8, 0x40, 0x0, 0x0,
- 0x0, 0x0, 0x3d, 0x32, 0x0, 0xc4, 0x0, 0x0,
- 0x0, 0x2, 0xc2, 0xa, 0x70, 0x1d, 0x70, 0x0,
- 0x0, 0x39, 0x10, 0x1, 0xf2, 0x1, 0xce, 0x81,
- 0x5, 0x40, 0x0, 0x0, 0x40, 0x7, 0x16, 0x30,
- 0x0, 0x4, 0x76, 0x66, 0x66, 0x9f, 0x70, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xc4, 0x0, 0x0,
- 0x0, 0x0, 0x11, 0x0, 0x8, 0x30, 0x0, 0x0,
- 0x0, 0x0, 0x5, 0x94, 0x44, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1a, 0xd3, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x8f, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0,
-
- /* U+4EE5 "以" */
- 0x0, 0x0, 0x0, 0x0, 0x3, 0x60, 0x1, 0xe2,
- 0x1, 0x0, 0x0, 0x4d, 0x0, 0xe, 0x0, 0x57,
- 0x0, 0x4, 0xb0, 0x0, 0xe0, 0x0, 0xc8, 0x0,
- 0x4b, 0x0, 0xe, 0x0, 0x5, 0xc0, 0x5, 0xa0,
- 0x0, 0xe0, 0x0, 0x2, 0x0, 0x59, 0x0, 0xe,
- 0x0, 0x0, 0x0, 0x6, 0x80, 0x0, 0xe0, 0x0,
- 0x1, 0x0, 0x96, 0x0, 0xe, 0x0, 0x37, 0x0,
- 0xd, 0x30, 0x0, 0xe0, 0x87, 0x0, 0x4, 0xf1,
- 0x0, 0x1f, 0xe5, 0x0, 0x0, 0xc4, 0xa4, 0x2,
- 0xe4, 0x0, 0x1, 0xb6, 0x1, 0xe5, 0x1, 0x0,
- 0x4, 0xb3, 0x0, 0x6, 0xc0, 0x2, 0x67, 0x40,
- 0x0, 0x0, 0x5, 0x2, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+4EEE "仮" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb5, 0x0, 0x0, 0x0, 0x5a, 0x0,
- 0x0, 0x0, 0xe0, 0x36, 0x56, 0x89, 0x86, 0x20,
- 0x0, 0x6, 0x80, 0x49, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x10, 0x49, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x4f, 0x10, 0x4b, 0x66, 0x66, 0x7a, 0x0,
- 0x0, 0xad, 0x0, 0x48, 0x50, 0x0, 0x88, 0x0,
- 0x5, 0x3d, 0x0, 0x58, 0x60, 0x0, 0xb1, 0x0,
- 0x14, 0xd, 0x0, 0x67, 0x34, 0x1, 0xc0, 0x0,
- 0x0, 0xd, 0x0, 0x85, 0x9, 0x7, 0x60, 0x0,
- 0x0, 0xd, 0x0, 0xa2, 0x8, 0x2c, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0xc0, 0x1, 0xe7, 0x0, 0x0,
- 0x0, 0xd, 0x3, 0x70, 0x4, 0xdb, 0x0, 0x0,
- 0x0, 0xd, 0x7, 0x0, 0x69, 0x8, 0xc3, 0x0,
- 0x0, 0xd, 0x34, 0x38, 0x40, 0x0, 0x5f, 0xa0,
- 0x0, 0x2, 0x12, 0x30, 0x0, 0x0, 0x1, 0x0,
-
- /* U+4EF6 "件" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa6, 0x0, 0x1, 0xd1, 0x0, 0x0,
- 0x0, 0x1, 0xf2, 0x6, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0x7, 0x90, 0x2e, 0x10, 0xd0, 0x0, 0x0,
- 0x0, 0xc, 0x10, 0x59, 0x0, 0xd0, 0x5, 0x0,
- 0x0, 0x5f, 0x40, 0x97, 0x66, 0xe6, 0x68, 0x30,
- 0x0, 0xad, 0x10, 0x90, 0x0, 0xd0, 0x0, 0x0,
- 0x6, 0x3c, 0x14, 0x20, 0x0, 0xd0, 0x0, 0x0,
- 0x25, 0xc, 0x12, 0x0, 0x0, 0xd0, 0x1, 0x50,
- 0x10, 0xc, 0x15, 0x76, 0x66, 0xe6, 0x66, 0x71,
- 0x0, 0xc, 0x10, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0xc, 0x10, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0xc, 0x10, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0xc, 0x10, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0xd, 0x10, 0x0, 0x1, 0xe0, 0x0, 0x0,
- 0x0, 0x5, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0,
-
- /* U+4EFB "任" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xe2, 0x0, 0x0, 0x27, 0xd5, 0x0, 0x0,
- 0x59, 0x25, 0x67, 0xd8, 0x53, 0x10, 0x0, 0xc,
- 0x20, 0x0, 0xc, 0x10, 0x0, 0x0, 0x3, 0xe1,
- 0x0, 0x0, 0xc1, 0x0, 0x0, 0x0, 0xae, 0x20,
- 0x0, 0xc, 0x10, 0x0, 0x0, 0x46, 0xc1, 0x0,
- 0x0, 0xc1, 0x0, 0x40, 0x7, 0xc, 0x17, 0x66,
- 0x6d, 0x76, 0x6a, 0x43, 0x0, 0xc1, 0x0, 0x0,
- 0xc1, 0x0, 0x0, 0x0, 0xc, 0x10, 0x0, 0xc,
- 0x10, 0x0, 0x0, 0x0, 0xc1, 0x0, 0x0, 0xc1,
- 0x0, 0x0, 0x0, 0xc, 0x10, 0x0, 0xc, 0x10,
- 0x0, 0x0, 0x0, 0xc1, 0x0, 0x0, 0xc1, 0x0,
- 0x40, 0x0, 0xd, 0x27, 0x66, 0x69, 0x66, 0x69,
- 0x60, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+4EFD "份" */
- 0x0, 0x0, 0x32, 0x0, 0x0, 0x43, 0x0, 0x0,
- 0x0, 0x0, 0xb9, 0x0, 0xd3, 0x24, 0x0, 0x0,
- 0x0, 0x1, 0xe0, 0x4, 0xb0, 0x8, 0x0, 0x0,
- 0x0, 0x8, 0x60, 0xb, 0x30, 0x8, 0x10, 0x0,
- 0x0, 0x1d, 0x0, 0x3a, 0x0, 0x2, 0xb0, 0x0,
- 0x0, 0x8f, 0x30, 0xa1, 0x0, 0x0, 0x8b, 0x10,
- 0x3, 0x6d, 0x16, 0x30, 0x0, 0x0, 0x4a, 0xc1,
- 0x16, 0xd, 0x43, 0x16, 0xe6, 0x67, 0xd0, 0x0,
- 0x10, 0xd, 0x10, 0x0, 0xe0, 0x2, 0xa0, 0x0,
- 0x0, 0xd, 0x10, 0x1, 0xd0, 0x3, 0xa0, 0x0,
- 0x0, 0xd, 0x10, 0x5, 0x90, 0x3, 0x90, 0x0,
- 0x0, 0xd, 0x10, 0xb, 0x20, 0x4, 0x80, 0x0,
- 0x0, 0xd, 0x10, 0x57, 0x1, 0x7, 0x70, 0x0,
- 0x0, 0xd, 0x15, 0x60, 0x3, 0xcf, 0x20, 0x0,
- 0x0, 0x6, 0x41, 0x0, 0x0, 0x1, 0x0, 0x0,
-
- /* U+4F01 "企" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x9, 0x90, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x2f, 0x80, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb8, 0x17, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x7, 0xb0, 0x4, 0x80, 0x0, 0x0,
- 0x0, 0x0, 0x4c, 0x0, 0x20, 0x7a, 0x0, 0x0,
- 0x0, 0x4, 0xa0, 0x1, 0xe1, 0x6, 0xe6, 0x10,
- 0x0, 0x66, 0x0, 0x1, 0xd0, 0x0, 0x4e, 0xa1,
- 0x15, 0x10, 0x85, 0x1, 0xd0, 0x1, 0x0, 0x0,
- 0x0, 0x0, 0xa4, 0x1, 0xe6, 0x6c, 0x70, 0x0,
- 0x0, 0x0, 0xa3, 0x1, 0xd0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa3, 0x1, 0xd0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa3, 0x1, 0xd0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa3, 0x1, 0xd0, 0x0, 0x7, 0x20,
- 0x7, 0x66, 0x76, 0x66, 0x86, 0x66, 0x69, 0x70,
-
- /* U+4F0A "伊" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0xe2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x6, 0xb3, 0x66, 0x66, 0x66, 0xc3, 0x0,
- 0x0, 0xb, 0x30, 0x10, 0xe0, 0x0, 0xe0, 0x0,
- 0x0, 0x2b, 0x0, 0x0, 0xe0, 0x0, 0xe0, 0x0,
- 0x0, 0x9e, 0x30, 0x0, 0xe0, 0x0, 0xe0, 0x30,
- 0x1, 0x9d, 0x38, 0x66, 0xe6, 0x66, 0xe7, 0x90,
- 0x7, 0xd, 0x10, 0x0, 0xe0, 0x0, 0xe0, 0x0,
- 0x22, 0xd, 0x10, 0x0, 0xd0, 0x0, 0xe0, 0x0,
- 0x0, 0xd, 0x10, 0x0, 0xd0, 0x0, 0xe0, 0x0,
- 0x0, 0xd, 0x15, 0x78, 0xc6, 0x66, 0xe0, 0x0,
- 0x0, 0xd, 0x10, 0x7, 0x60, 0x0, 0x20, 0x0,
- 0x0, 0xd, 0x10, 0xc, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x10, 0x84, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x16, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x5, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+4F11 "休" */
- 0x0, 0x0, 0x84, 0x0, 0xb, 0x30, 0x0, 0x0,
- 0x0, 0x0, 0xe1, 0x0, 0xe, 0x0, 0x0, 0x0,
- 0x0, 0x6, 0x80, 0x0, 0xd, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x10, 0x0, 0xd, 0x0, 0x8, 0x0,
- 0x0, 0x4d, 0x37, 0x66, 0xcf, 0x96, 0x66, 0x30,
- 0x0, 0xbe, 0x20, 0x0, 0xee, 0x60, 0x0, 0x0,
- 0x5, 0x5c, 0x10, 0x4, 0xad, 0x35, 0x0, 0x0,
- 0x7, 0xc, 0x10, 0xb, 0x2d, 0xa, 0x0, 0x0,
- 0x20, 0xc, 0x10, 0x49, 0xd, 0x7, 0x60, 0x0,
- 0x0, 0xc, 0x10, 0xb1, 0xd, 0x0, 0xe3, 0x0,
- 0x0, 0xc, 0x17, 0x30, 0xd, 0x0, 0x5e, 0x50,
- 0x0, 0xc, 0x44, 0x0, 0xd, 0x0, 0x7, 0x50,
- 0x0, 0xc, 0x20, 0x0, 0xe, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x10, 0x0, 0xe, 0x0, 0x0, 0x0,
- 0x0, 0x7, 0x0, 0x0, 0x7, 0x0, 0x0, 0x0,
-
- /* U+4F1A "会" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x7d, 0x50, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x1, 0xd2, 0x63, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc, 0x50, 0xa, 0x40, 0x0, 0x0,
- 0x0, 0x0, 0x96, 0x0, 0x0, 0xa9, 0x10, 0x0,
- 0x0, 0x8, 0x50, 0x0, 0x1, 0x78, 0xfa, 0x61,
- 0x0, 0x73, 0x66, 0x66, 0x66, 0x61, 0x2a, 0x50,
- 0x15, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0x66, 0x66, 0x66, 0x66, 0x66, 0x9d, 0x10,
- 0x0, 0x20, 0x0, 0xc8, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x5, 0xc0, 0x3, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2c, 0x10, 0x2, 0xa2, 0x0, 0x0,
- 0x0, 0x2, 0xa1, 0x0, 0x0, 0x2e, 0x50, 0x0,
- 0x0, 0xe, 0xcc, 0xba, 0x87, 0x67, 0xf0, 0x0,
- 0x0, 0x4, 0x30, 0x0, 0x0, 0x0, 0x60, 0x0,
-
- /* U+4F1D "伝" */
- 0x0, 0x0, 0x64, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd8, 0x0, 0x0, 0x0, 0x60, 0x0,
- 0x0, 0x2, 0xd0, 0x18, 0x66, 0x66, 0x62, 0x0,
- 0x0, 0x9, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xae, 0x40, 0x0, 0x0, 0x0, 0x8, 0x30,
- 0x6, 0x4c, 0x14, 0x76, 0x6e, 0x76, 0x66, 0x50,
- 0x25, 0xc, 0x10, 0x0, 0x3e, 0x20, 0x0, 0x0,
- 0x0, 0xc, 0x10, 0x0, 0x86, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x10, 0x0, 0xc0, 0x2, 0x0, 0x0,
- 0x0, 0xc, 0x10, 0x7, 0x50, 0x2, 0x70, 0x0,
- 0x0, 0xc, 0x10, 0x29, 0x0, 0x0, 0x96, 0x0,
- 0x0, 0xc, 0x12, 0xc5, 0x55, 0x66, 0x7f, 0x0,
- 0x0, 0xc, 0x21, 0xd9, 0x53, 0x10, 0xe, 0x10,
- 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
-
- /* U+4F38 "伸" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa, 0x10, 0x0, 0x3a, 0x0, 0x0, 0x0,
- 0x4, 0xc0, 0x0, 0x2, 0xb0, 0x0, 0x0, 0x0,
- 0xa4, 0x2, 0x0, 0x2b, 0x0, 0x50, 0x0, 0x1c,
- 0x0, 0xe6, 0x67, 0xd6, 0x6e, 0x20, 0x9, 0xf1,
- 0xe, 0x0, 0x2b, 0x0, 0xe0, 0x1, 0x9e, 0x0,
- 0xe0, 0x2, 0xb0, 0xe, 0x0, 0x81, 0xe0, 0xe,
- 0x66, 0x7d, 0x66, 0xe0, 0x22, 0xe, 0x0, 0xe0,
- 0x2, 0xb0, 0xe, 0x0, 0x0, 0xe0, 0xe, 0x0,
- 0x2b, 0x0, 0xe0, 0x0, 0xe, 0x0, 0xe6, 0x67,
- 0xd6, 0x6e, 0x0, 0x0, 0xe0, 0x5, 0x0, 0x2b,
- 0x0, 0x50, 0x0, 0xe, 0x0, 0x0, 0x2, 0xb0,
- 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x2b, 0x0,
- 0x0, 0x0, 0xf, 0x0, 0x0, 0x3, 0xc0, 0x0,
- 0x0, 0x0, 0x40, 0x0, 0x0, 0x14, 0x0, 0x0,
-
- /* U+4F3C "似" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2, 0xd2, 0x0, 0x0, 0x0, 0x20, 0x0,
- 0x0, 0x7, 0xb0, 0x0, 0x0, 0x0, 0xa8, 0x0,
- 0x0, 0xc, 0x20, 0x91, 0x40, 0x0, 0xa5, 0x0,
- 0x0, 0x3a, 0x0, 0xd0, 0x1b, 0x0, 0xa4, 0x0,
- 0x0, 0x9e, 0x20, 0xd0, 0xb, 0x60, 0xb4, 0x0,
- 0x2, 0x9e, 0x0, 0xd0, 0x6, 0x30, 0xc3, 0x0,
- 0x8, 0xe, 0x0, 0xd0, 0x0, 0x0, 0xe1, 0x0,
- 0x22, 0xe, 0x0, 0xd0, 0x0, 0x1, 0xf0, 0x0,
- 0x0, 0xe, 0x0, 0xd0, 0x0, 0x4, 0xc0, 0x0,
- 0x0, 0xe, 0x0, 0xd0, 0x46, 0x9, 0x70, 0x0,
- 0x0, 0xe, 0x0, 0xda, 0x50, 0x2e, 0x83, 0x0,
- 0x0, 0xe, 0x0, 0xe5, 0x0, 0xc4, 0xc, 0x50,
- 0x0, 0xe, 0x0, 0x10, 0x1b, 0x30, 0x4, 0xe0,
- 0x0, 0xe, 0x0, 0x16, 0x60, 0x0, 0x0, 0x70,
- 0x0, 0x5, 0x2, 0x30, 0x0, 0x0, 0x0, 0x0,
-
- /* U+4F46 "但" */
- 0x0, 0x0, 0xa2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2, 0xe1, 0x86, 0x66, 0x66, 0x6c, 0x10,
- 0x0, 0x8, 0x70, 0xb3, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0xd, 0x10, 0xa3, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0x6d, 0x0, 0xa3, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0xce, 0x0, 0xa3, 0x0, 0x0, 0xd, 0x0,
- 0x7, 0x4d, 0x0, 0xa8, 0x66, 0x66, 0x6d, 0x0,
- 0x15, 0xd, 0x0, 0xa3, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0xd, 0x0, 0xa3, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0xd, 0x0, 0xb8, 0x66, 0x66, 0x6d, 0x0,
- 0x0, 0xd, 0x0, 0xb3, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0xd, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x60,
- 0x0, 0xe, 0x27, 0x66, 0x66, 0x66, 0x66, 0x93,
- 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+4F4D "位" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd4, 0x0, 0x62, 0x0, 0x0, 0x0,
- 0x0, 0x3, 0xd0, 0x0, 0x1e, 0x10, 0x0, 0x0,
- 0x0, 0x8, 0x60, 0x0, 0xc, 0x20, 0x1, 0x0,
- 0x0, 0xd, 0x4, 0x66, 0x66, 0x66, 0x7f, 0x40,
- 0x0, 0x4e, 0x21, 0x10, 0x0, 0x1, 0x10, 0x0,
- 0x0, 0xbe, 0x0, 0x20, 0x0, 0x4, 0xe1, 0x0,
- 0x4, 0x5d, 0x0, 0x25, 0x0, 0x7, 0x90, 0x0,
- 0x7, 0xd, 0x0, 0xc, 0x0, 0xa, 0x30, 0x0,
- 0x10, 0xd, 0x0, 0xa, 0x60, 0xc, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x7, 0xa0, 0x19, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x5, 0x90, 0x54, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x1, 0x10, 0x80, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0x70, 0x3, 0x60,
- 0x0, 0xd, 0x17, 0x66, 0x66, 0x66, 0x66, 0x61,
- 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+4F4E "低" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc3, 0x0, 0x0, 0x0, 0x40, 0x0,
- 0x0, 0x3, 0xd0, 0x0, 0x0, 0x5c, 0xd6, 0x0,
- 0x0, 0xa, 0x40, 0x96, 0x68, 0xd1, 0x0, 0x0,
- 0x0, 0x1c, 0x0, 0xd0, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0x9e, 0x0, 0xd0, 0x0, 0xd0, 0x0, 0x0,
- 0x2, 0x9d, 0x0, 0xd0, 0x0, 0xd0, 0x1, 0x0,
- 0x8, 0xd, 0x0, 0xd6, 0x66, 0xe6, 0x6a, 0x60,
- 0x11, 0xd, 0x0, 0xd0, 0x0, 0xa2, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0xd0, 0x0, 0x85, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0xd0, 0x0, 0x4a, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0xd0, 0x2, 0xd, 0x10, 0x40,
- 0x0, 0xd, 0x0, 0xd3, 0x83, 0x6, 0xb0, 0x80,
- 0x0, 0xd, 0x0, 0xfb, 0x75, 0x0, 0xbb, 0xb0,
- 0x0, 0xe, 0x0, 0x40, 0xc, 0x30, 0x8, 0xd0,
- 0x0, 0x4, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0,
-
- /* U+4F4F "住" */
- 0x0, 0x0, 0x57, 0x0, 0x72, 0x0, 0x0, 0x0,
- 0x0, 0xb, 0x70, 0x1, 0xe4, 0x0, 0x0, 0x0,
- 0x2, 0xd0, 0x0, 0x8, 0x50, 0x1, 0x0, 0x0,
- 0xa4, 0x36, 0x66, 0x66, 0x67, 0xe3, 0x0, 0x3e,
- 0x10, 0x10, 0xe, 0x0, 0x0, 0x0, 0xa, 0xe2,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0x6, 0x4c, 0x10,
- 0x0, 0xe, 0x0, 0x0, 0x2, 0x50, 0xc1, 0x0,
- 0x0, 0xe0, 0x6, 0x10, 0x0, 0xc, 0x11, 0x86,
- 0x6e, 0x66, 0x75, 0x0, 0x0, 0xc1, 0x0, 0x0,
- 0xe0, 0x0, 0x0, 0x0, 0xc, 0x10, 0x0, 0xe,
- 0x0, 0x0, 0x0, 0x0, 0xc1, 0x0, 0x0, 0xe0,
- 0x0, 0x0, 0x0, 0xd, 0x10, 0x0, 0xe, 0x0,
- 0x4, 0x0, 0x0, 0xd3, 0x86, 0x66, 0xa6, 0x66,
- 0xa5, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+4F53 "体" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc2, 0x0, 0xb, 0x30, 0x0, 0x0,
- 0x0, 0x3, 0xc0, 0x0, 0xc, 0x10, 0x0, 0x0,
- 0x0, 0x9, 0x50, 0x0, 0xc, 0x10, 0x0, 0x0,
- 0x0, 0x1c, 0x4, 0x66, 0x6d, 0x66, 0x6d, 0x60,
- 0x0, 0x7c, 0x21, 0x10, 0xcf, 0x60, 0x0, 0x0,
- 0x0, 0xad, 0x0, 0x2, 0xbc, 0x43, 0x0, 0x0,
- 0x7, 0x1d, 0x0, 0xa, 0x4c, 0x18, 0x0, 0x0,
- 0x23, 0xd, 0x0, 0x2a, 0xc, 0x17, 0x40, 0x0,
- 0x0, 0xd, 0x0, 0xa1, 0xc, 0x10, 0xd1, 0x0,
- 0x0, 0xd, 0x6, 0x40, 0xc, 0x10, 0x7d, 0x20,
- 0x0, 0xd, 0x35, 0x46, 0x6d, 0x69, 0xab, 0x90,
- 0x0, 0xd, 0x10, 0x0, 0xc, 0x10, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0xc, 0x10, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0xd, 0x20, 0x0, 0x0,
- 0x0, 0x3, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0,
-
- /* U+4F55 "何" */
- 0x0, 0x0, 0x83, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xe2, 0x0, 0x0, 0x0, 0x3, 0x50,
- 0x0, 0x5, 0x92, 0x76, 0x66, 0x66, 0xe6, 0x50,
- 0x0, 0xb, 0x20, 0x0, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0x3f, 0x20, 0x30, 0x0, 0x40, 0xd0, 0x0,
- 0x0, 0xae, 0x0, 0xe6, 0x68, 0xc0, 0xd0, 0x0,
- 0x4, 0x5d, 0x0, 0xd0, 0x3, 0xa0, 0xd0, 0x0,
- 0x5, 0xd, 0x0, 0xd0, 0x3, 0xa0, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0xd0, 0x3, 0xa0, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0xe6, 0x68, 0xb0, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0x80, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0x5b, 0xe0, 0x0,
- 0x0, 0x5, 0x0, 0x0, 0x0, 0x3, 0x30, 0x0,
-
- /* U+4F59 "余" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x8b, 0x60, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x3, 0xd1, 0x46, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x1d, 0x20, 0x6, 0x80, 0x0, 0x0,
- 0x0, 0x1, 0xc3, 0x0, 0x0, 0x7c, 0x30, 0x0,
- 0x0, 0x1a, 0x76, 0x66, 0x66, 0xd8, 0xfc, 0x60,
- 0x5, 0x60, 0x10, 0xc, 0x10, 0x0, 0x2a, 0x30,
- 0x21, 0x0, 0x0, 0xc, 0x10, 0x2, 0x50, 0x0,
- 0x0, 0x67, 0x66, 0x6d, 0x66, 0x67, 0x70, 0x0,
- 0x0, 0x0, 0x31, 0xc, 0x12, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0xe7, 0xc, 0x11, 0x95, 0x0, 0x0,
- 0x0, 0xb, 0x50, 0xc, 0x10, 0xa, 0xb1, 0x0,
- 0x0, 0xa4, 0x0, 0xd, 0x10, 0x0, 0xbb, 0x0,
- 0x17, 0x10, 0x17, 0xcf, 0x0, 0x0, 0x17, 0x0,
- 0x0, 0x0, 0x0, 0x33, 0x0, 0x0, 0x0, 0x0,
-
- /* U+4F5C "作" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb5, 0x0, 0xb5, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0xe1, 0x2, 0xd0, 0x0, 0x0, 0x0,
- 0x0, 0x6, 0x80, 0x9, 0x50, 0x0, 0x5, 0x30,
- 0x0, 0xc, 0x10, 0x1c, 0x7c, 0x66, 0x66, 0x60,
- 0x0, 0x4d, 0x20, 0x83, 0x2b, 0x0, 0x0, 0x0,
- 0x0, 0xbd, 0x13, 0x60, 0x2b, 0x0, 0x0, 0x0,
- 0x7, 0x3c, 0x15, 0x0, 0x2d, 0x66, 0x7d, 0x10,
- 0x14, 0xc, 0x10, 0x0, 0x2b, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x10, 0x0, 0x2b, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x10, 0x0, 0x2b, 0x0, 0x4, 0x0,
- 0x0, 0xc, 0x10, 0x0, 0x2d, 0x66, 0x69, 0x60,
- 0x0, 0xc, 0x10, 0x0, 0x2b, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x10, 0x0, 0x2b, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x10, 0x0, 0x2c, 0x0, 0x0, 0x0,
- 0x0, 0x4, 0x0, 0x0, 0x14, 0x0, 0x0, 0x0,
-
- /* U+4F60 "你" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa8, 0x0, 0xa4, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xf3, 0x1, 0xf2, 0x0, 0x0, 0x0,
- 0x0, 0x6, 0x90, 0x7, 0x80, 0x0, 0x1, 0x0,
- 0x0, 0xc, 0x10, 0xd, 0x76, 0x66, 0x6b, 0xb0,
- 0x0, 0x5e, 0x20, 0x66, 0x1, 0x30, 0xb, 0x10,
- 0x0, 0xbd, 0x11, 0x80, 0x3, 0xc0, 0x21, 0x0,
- 0x7, 0x2c, 0x14, 0x3, 0x3, 0xb0, 0x0, 0x0,
- 0x23, 0xc, 0x10, 0xd, 0x53, 0xb0, 0x60, 0x0,
- 0x0, 0xc, 0x10, 0x3b, 0x3, 0xb0, 0x48, 0x0,
- 0x0, 0xc, 0x10, 0x93, 0x3, 0xb0, 0xb, 0x60,
- 0x0, 0xc, 0x12, 0x80, 0x3, 0xb0, 0x3, 0xe0,
- 0x0, 0xc, 0x17, 0x0, 0x3, 0xb0, 0x0, 0xb0,
- 0x0, 0xc, 0x31, 0x1, 0x4, 0xa0, 0x0, 0x0,
- 0x0, 0xd, 0x20, 0x2, 0x9f, 0x80, 0x0, 0x0,
- 0x0, 0x3, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0,
-
- /* U+4F7F "使" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x30, 0x0, 0xb3, 0x0, 0x0, 0x0,
- 0x3, 0xd0, 0x0, 0xc, 0x10, 0x0, 0x0, 0x0,
- 0x96, 0x46, 0x66, 0xd6, 0x66, 0xa8, 0x0, 0xd,
- 0x0, 0x0, 0xc, 0x10, 0x0, 0x0, 0x7, 0xe2,
- 0x8, 0x66, 0xd6, 0x66, 0x90, 0x0, 0xad, 0x0,
- 0xd0, 0xc, 0x0, 0x1b, 0x0, 0x71, 0xd0, 0xd,
- 0x0, 0xc0, 0x1, 0xb0, 0x23, 0xd, 0x0, 0xd6,
- 0x6e, 0x66, 0x6b, 0x0, 0x0, 0xd0, 0x7, 0x10,
- 0xc0, 0x1, 0x60, 0x0, 0xd, 0x0, 0x6, 0xc,
- 0x0, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x39, 0x90,
- 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xc9, 0x0,
- 0x0, 0x0, 0x0, 0xd0, 0x0, 0x86, 0x6c, 0x72,
- 0x0, 0x0, 0xd, 0x4, 0x72, 0x0, 0x18, 0xee,
- 0x80, 0x0, 0x32, 0x10, 0x0, 0x0, 0x0, 0x20,
-
- /* U+4F86 "來" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x95, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa, 0x40, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa4, 0x0, 0x5, 0x40, 0x2, 0x76,
- 0x76, 0x6c, 0x86, 0x67, 0x66, 0x0, 0x0, 0x3e,
- 0x10, 0xa4, 0x2, 0xe1, 0x0, 0x0, 0x7, 0x80,
- 0xa, 0x40, 0x59, 0x0, 0x0, 0x0, 0xc7, 0x70,
- 0xa4, 0xa, 0x79, 0x10, 0x0, 0x84, 0xb, 0x4f,
- 0x93, 0x70, 0x5a, 0x0, 0x43, 0x0, 0x1b, 0xe8,
- 0x80, 0x0, 0x20, 0x0, 0x0, 0x8, 0x9a, 0x48,
- 0x40, 0x0, 0x0, 0x0, 0x6, 0xa0, 0xa4, 0xb,
- 0x50, 0x0, 0x0, 0x8, 0x80, 0xa, 0x40, 0xc,
- 0xa2, 0x0, 0x18, 0x30, 0x0, 0xa4, 0x0, 0x9,
- 0xf8, 0x14, 0x0, 0x0, 0xb, 0x50, 0x0, 0x2,
- 0x0, 0x0, 0x0, 0x0, 0x61, 0x0, 0x0, 0x0,
-
- /* U+4F8B "例" */
- 0x0, 0x3, 0xa0, 0x0, 0x0, 0x0, 0x6, 0x30,
- 0x0, 0x79, 0x0, 0x0, 0x42, 0x0, 0xa3, 0x0,
- 0xc, 0x36, 0x7e, 0x66, 0x40, 0xa, 0x30, 0x1,
- 0xc0, 0x5, 0x80, 0x0, 0xc2, 0xa3, 0x0, 0x8d,
- 0x10, 0x93, 0x6, 0xd, 0xa, 0x30, 0xb, 0xd0,
- 0xc, 0x66, 0xe2, 0xd0, 0xa3, 0x6, 0x2d, 0x4,
- 0x60, 0x3b, 0xd, 0xa, 0x30, 0x50, 0xd0, 0x88,
- 0x17, 0x60, 0xd0, 0xa3, 0x0, 0xd, 0x43, 0x48,
- 0xd1, 0xd, 0xa, 0x30, 0x0, 0xd0, 0x0, 0x5a,
- 0x0, 0xd0, 0xa3, 0x0, 0xd, 0x0, 0xb, 0x10,
- 0xb, 0xa, 0x30, 0x0, 0xd0, 0x6, 0x60, 0x0,
- 0x0, 0xa3, 0x0, 0xd, 0x4, 0x70, 0x0, 0x0,
- 0xa, 0x30, 0x0, 0xe4, 0x40, 0x0, 0x0, 0x4a,
- 0xf1, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x14,
- 0x0,
-
- /* U+4F9B "供" */
- 0x0, 0x0, 0x86, 0x2, 0x80, 0x9, 0x10, 0x0,
- 0x0, 0x0, 0xe4, 0x2, 0xa0, 0xd, 0x0, 0x0,
- 0x0, 0x5, 0xa0, 0x2, 0xa0, 0xd, 0x0, 0x0,
- 0x0, 0xc, 0x20, 0x2, 0xa0, 0xd, 0x7, 0x20,
- 0x0, 0x4e, 0x23, 0x77, 0xc6, 0x6e, 0x66, 0x40,
- 0x0, 0xbd, 0x0, 0x2, 0xa0, 0xd, 0x0, 0x0,
- 0x6, 0x2d, 0x0, 0x2, 0xa0, 0xd, 0x0, 0x0,
- 0x23, 0xd, 0x0, 0x2, 0xa0, 0xd, 0x0, 0x0,
- 0x0, 0xd, 0x26, 0x67, 0xc6, 0x6e, 0x68, 0xd1,
- 0x0, 0xd, 0x2, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x5, 0xd0, 0x15, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x1d, 0x20, 0x3, 0xb2, 0x0,
- 0x0, 0xd, 0x0, 0xb3, 0x0, 0x0, 0x4f, 0x30,
- 0x0, 0xe, 0x8, 0x20, 0x0, 0x0, 0x7, 0x70,
- 0x0, 0x6, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+4F9D "依" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2, 0xd1, 0x0, 0x55, 0x0, 0x0, 0x0,
- 0x0, 0x7, 0x90, 0x0, 0xd, 0x40, 0x0, 0x0,
- 0x0, 0xc, 0x25, 0x66, 0x6c, 0x76, 0x6d, 0x60,
- 0x0, 0x2d, 0x11, 0x0, 0x2e, 0x10, 0x0, 0x0,
- 0x0, 0x9e, 0x0, 0x0, 0xa9, 0x0, 0x0, 0x0,
- 0x1, 0x8d, 0x0, 0x4, 0x95, 0x0, 0x27, 0x0,
- 0x7, 0x1d, 0x0, 0x1b, 0x3, 0x40, 0xc7, 0x0,
- 0x13, 0xd, 0x0, 0xae, 0x10, 0x98, 0x20, 0x0,
- 0x0, 0xd, 0x8, 0x3d, 0x0, 0xa1, 0x0, 0x0,
- 0x0, 0xd, 0x41, 0xd, 0x0, 0x58, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0xd, 0x0, 0x2d, 0x30, 0x0,
- 0x0, 0xd, 0x0, 0xd, 0x17, 0x14, 0xe3, 0x0,
- 0x0, 0xd, 0x0, 0xe, 0xb0, 0x0, 0x7f, 0x90,
- 0x0, 0xd, 0x0, 0xb, 0x0, 0x0, 0x6, 0x10,
- 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+4FA1 "価" */
- 0x0, 0x0, 0x95, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xe, 0x10, 0x0, 0x0, 0x0, 0x73, 0x0,
- 0x5, 0x94, 0x76, 0xd6, 0x6d, 0x66, 0x40, 0x0,
- 0xc1, 0x0, 0xc, 0x0, 0xb0, 0x0, 0x0, 0x4f,
- 0x30, 0x0, 0xc0, 0xb, 0x0, 0x0, 0xa, 0xc0,
- 0xc, 0x6d, 0x66, 0xd6, 0xd3, 0x5, 0x3c, 0x0,
- 0xd0, 0xc0, 0xb, 0xd, 0x1, 0x40, 0xc0, 0xd,
- 0xc, 0x0, 0xb0, 0xd0, 0x0, 0xc, 0x0, 0xd0,
- 0xc0, 0xb, 0xd, 0x0, 0x0, 0xc0, 0xd, 0xc,
- 0x0, 0xb0, 0xd0, 0x0, 0xc, 0x0, 0xd0, 0xc0,
- 0xb, 0xd, 0x0, 0x0, 0xc0, 0xd, 0xc, 0x0,
- 0xb0, 0xd0, 0x0, 0xc, 0x0, 0xd6, 0x86, 0x68,
- 0x6e, 0x0, 0x0, 0xc0, 0xd, 0x0, 0x0, 0x0,
- 0xc0, 0x0, 0x4, 0x0, 0x30, 0x0, 0x0, 0x1,
- 0x0,
-
- /* U+4FBF "便" */
- 0x0, 0x0, 0x91, 0x0, 0x0, 0x0, 0x0, 0x10,
- 0x0, 0x2, 0xf7, 0x76, 0x67, 0x66, 0x69, 0xa0,
- 0x0, 0x8, 0x70, 0x0, 0xa, 0x20, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0xa6, 0x6c, 0x76, 0x6d, 0x20,
- 0x0, 0x6b, 0x0, 0xd0, 0xa, 0x20, 0xd, 0x0,
- 0x0, 0xbe, 0x0, 0xd0, 0xa, 0x20, 0xd, 0x0,
- 0x6, 0x3d, 0x0, 0xd6, 0x6c, 0x76, 0x6d, 0x0,
- 0x6, 0xd, 0x0, 0xd0, 0xa, 0x20, 0xd, 0x0,
- 0x0, 0xd, 0x0, 0xd6, 0x6c, 0x76, 0x6d, 0x0,
- 0x0, 0xd, 0x0, 0x50, 0xc, 0x0, 0x1, 0x0,
- 0x0, 0xd, 0x0, 0x6, 0xd, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x2, 0xa9, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x1, 0xcc, 0x40, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0x59, 0x21, 0x9e, 0xb9, 0x81,
- 0x0, 0x6, 0x35, 0x20, 0x0, 0x0, 0x37, 0x40,
-
- /* U+4FC2 "係" */
- 0x0, 0x0, 0x96, 0x0, 0x0, 0x0, 0x14, 0x0,
- 0x0, 0x0, 0xf3, 0x2, 0x46, 0x9b, 0xdc, 0x40,
- 0x0, 0x5, 0xa1, 0x43, 0x2b, 0x80, 0x0, 0x0,
- 0x0, 0xc, 0x30, 0x0, 0x89, 0x20, 0x90, 0x0,
- 0x0, 0x3e, 0x20, 0x39, 0x40, 0xb, 0xb2, 0x0,
- 0x0, 0xae, 0x0, 0xcb, 0x97, 0xd7, 0x0, 0x0,
- 0x4, 0x6d, 0x0, 0x0, 0x29, 0x20, 0x44, 0x0,
- 0x7, 0xd, 0x0, 0x17, 0x60, 0x0, 0xb, 0x20,
- 0x0, 0xd, 0x0, 0xac, 0xa8, 0xd5, 0x48, 0xa0,
- 0x0, 0xd, 0x0, 0x1, 0x0, 0xc1, 0x1, 0x30,
- 0x0, 0xd, 0x0, 0x9, 0xa0, 0xc1, 0x92, 0x0,
- 0x0, 0xd, 0x0, 0x3b, 0x0, 0xc0, 0x1d, 0x40,
- 0x0, 0xd, 0x1, 0xa0, 0x0, 0xc0, 0x4, 0xd0,
- 0x0, 0xd, 0x6, 0x1, 0x8a, 0xb0, 0x0, 0x30,
- 0x0, 0x6, 0x0, 0x0, 0x8, 0x20, 0x0, 0x0,
-
- /* U+4FDD "保" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb7, 0x11, 0x0, 0x0, 0x30, 0x0,
- 0x0, 0x1, 0xe1, 0x3d, 0x66, 0x66, 0xd4, 0x0,
- 0x0, 0x6, 0x80, 0x2b, 0x0, 0x0, 0xc0, 0x0,
- 0x0, 0xc, 0x10, 0x2b, 0x0, 0x0, 0xc0, 0x0,
- 0x0, 0x5e, 0x10, 0x2b, 0x0, 0x0, 0xc0, 0x0,
- 0x0, 0xad, 0x0, 0x3d, 0x6b, 0x66, 0xd0, 0x0,
- 0x7, 0x2d, 0x0, 0x11, 0xb, 0x10, 0x0, 0x0,
- 0x12, 0xd, 0x16, 0x66, 0x6d, 0x66, 0x69, 0xa0,
- 0x0, 0xd, 0x1, 0x0, 0x8e, 0x51, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x1, 0xab, 0x18, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0xa, 0x2b, 0x16, 0x60, 0x0,
- 0x0, 0xd, 0x0, 0x74, 0xb, 0x10, 0xb7, 0x0,
- 0x0, 0xd, 0x4, 0x50, 0xb, 0x10, 0x1c, 0xb0,
- 0x0, 0xe, 0x23, 0x0, 0xc, 0x20, 0x0, 0x0,
- 0x0, 0x3, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0,
-
- /* U+4FE1 "信" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa5, 0x0, 0x8, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xe1, 0x0, 0x6, 0xa0, 0x0, 0x0,
- 0x0, 0x6, 0x93, 0x66, 0x67, 0xb6, 0x6a, 0x90,
- 0x0, 0xc, 0x11, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x4d, 0x10, 0x0, 0x0, 0x0, 0x26, 0x0,
- 0x0, 0xbd, 0x0, 0x27, 0x66, 0x66, 0x65, 0x0,
- 0x5, 0x5d, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0,
- 0x16, 0xd, 0x0, 0x47, 0x66, 0x66, 0x78, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
- 0x0, 0xd, 0x0, 0x2b, 0x66, 0x66, 0x7d, 0x0,
- 0x0, 0xd, 0x0, 0x1b, 0x0, 0x0, 0x2a, 0x0,
- 0x0, 0xd, 0x0, 0x1b, 0x0, 0x0, 0x2a, 0x0,
- 0x0, 0xd, 0x0, 0x1d, 0x66, 0x66, 0x7a, 0x0,
- 0x0, 0xd, 0x0, 0x2b, 0x0, 0x0, 0x2a, 0x0,
- 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+4FEE "修" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0xd0, 0x0, 0xe, 0x20, 0x0, 0x0,
- 0x0, 0x6, 0x80, 0x0, 0x59, 0x0, 0x0, 0x0,
- 0x0, 0xb, 0x20, 0x0, 0xb8, 0x66, 0x7e, 0x20,
- 0x0, 0x2b, 0x7, 0x5, 0x57, 0x0, 0xb5, 0x0,
- 0x0, 0x9e, 0xc, 0x16, 0x1, 0xab, 0x50, 0x0,
- 0x1, 0x9c, 0xc, 0x10, 0x2, 0xbc, 0x30, 0x0,
- 0x8, 0x1c, 0xc, 0x0, 0x67, 0x3, 0xac, 0x82,
- 0x12, 0xc, 0xc, 0x34, 0x0, 0x7c, 0x12, 0x30,
- 0x0, 0xc, 0xc, 0x0, 0x19, 0x60, 0x41, 0x0,
- 0x0, 0xc, 0xc, 0x4, 0x61, 0x6, 0xd4, 0x0,
- 0x0, 0xc, 0xc, 0x0, 0x2, 0xa7, 0x2, 0x80,
- 0x0, 0xc, 0xa, 0x2, 0x77, 0x10, 0x6d, 0x70,
- 0x0, 0xc, 0x0, 0x13, 0x0, 0x5b, 0x80, 0x0,
- 0x0, 0xc, 0x0, 0x3, 0x79, 0x50, 0x0, 0x0,
- 0x0, 0x5, 0x2, 0x53, 0x0, 0x0, 0x0, 0x0,
-
- /* U+500B "個" */
- 0x0, 0x0, 0xb5, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0xf3, 0xb6, 0x66, 0x66, 0x66, 0xb0,
- 0x0, 0x7, 0x80, 0xd0, 0x3, 0x30, 0x3, 0xa0,
- 0x0, 0xd, 0x10, 0xd0, 0x5, 0x70, 0x3, 0xa0,
- 0x0, 0x5e, 0x10, 0xd3, 0x69, 0xa7, 0x93, 0xa0,
- 0x0, 0xbd, 0x0, 0xd0, 0x5, 0x60, 0x3, 0xa0,
- 0x4, 0x4d, 0x0, 0xd0, 0x5, 0x60, 0x3, 0xa0,
- 0x5, 0xd, 0x0, 0xd0, 0xa8, 0x8d, 0x33, 0xa0,
- 0x0, 0xd, 0x0, 0xd0, 0xc0, 0xc, 0x3, 0xa0,
- 0x0, 0xd, 0x0, 0xd0, 0xc0, 0xc, 0x3, 0xa0,
- 0x0, 0xd, 0x0, 0xd0, 0xc6, 0x6d, 0x3, 0xa0,
- 0x0, 0xd, 0x0, 0xd0, 0x70, 0x5, 0x3, 0xa0,
- 0x0, 0xd, 0x0, 0xd6, 0x66, 0x66, 0x67, 0xa0,
- 0x0, 0xe, 0x0, 0xd0, 0x0, 0x0, 0x3, 0xa0,
- 0x0, 0x4, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5011 "們" */
- 0x0, 0x1, 0xc2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x5, 0xc1, 0xa6, 0x6c, 0x39, 0x66, 0xd0,
- 0x0, 0xa, 0x51, 0xd0, 0x2b, 0x3a, 0x1, 0xc0,
- 0x0, 0xd, 0x1, 0xe6, 0x7b, 0x3c, 0x66, 0xc0,
- 0x0, 0x5e, 0x11, 0xd0, 0x2b, 0x3a, 0x1, 0xc0,
- 0x0, 0xad, 0x1, 0xd0, 0x2b, 0x3a, 0x1, 0xc0,
- 0x2, 0x6d, 0x1, 0xe6, 0x79, 0x3a, 0x66, 0xc0,
- 0x6, 0xd, 0x1, 0xd0, 0x0, 0x0, 0x1, 0xc0,
- 0x0, 0xd, 0x1, 0xd0, 0x0, 0x0, 0x1, 0xc0,
- 0x0, 0xd, 0x1, 0xd0, 0x0, 0x0, 0x1, 0xc0,
- 0x0, 0xd, 0x1, 0xd0, 0x0, 0x0, 0x1, 0xc0,
- 0x0, 0xd, 0x1, 0xd0, 0x0, 0x0, 0x1, 0xc0,
- 0x0, 0xd, 0x1, 0xd0, 0x0, 0x0, 0x1, 0xc0,
- 0x0, 0xe, 0x1, 0xd0, 0x0, 0x1, 0x7d, 0xa0,
- 0x0, 0x4, 0x1, 0x30, 0x0, 0x0, 0x4, 0x10,
-
- /* U+5019 "候" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc1, 0x0, 0x0, 0x0, 0x30, 0x0,
- 0x0, 0x4, 0xb0, 0x2, 0x86, 0x67, 0xd1, 0x0,
- 0x0, 0x9, 0x50, 0x0, 0x0, 0x4, 0x80, 0x0,
- 0x0, 0xd, 0x9, 0x40, 0x0, 0x6, 0x60, 0x50,
- 0x0, 0x4d, 0xa, 0x27, 0xb7, 0x66, 0x66, 0x50,
- 0x0, 0xad, 0xa, 0x20, 0xc2, 0x0, 0x1, 0x0,
- 0x4, 0x5d, 0xa, 0x22, 0xb6, 0xa6, 0x78, 0x0,
- 0x5, 0xd, 0xa, 0x27, 0x10, 0xd0, 0x0, 0x0,
- 0x0, 0xd, 0xa, 0x21, 0x0, 0xe0, 0x2, 0x50,
- 0x0, 0xd, 0xa, 0x27, 0x67, 0xd9, 0x66, 0x50,
- 0x0, 0xd, 0xa, 0x20, 0x6, 0x77, 0x0, 0x0,
- 0x0, 0xd, 0xa, 0x20, 0xc, 0x13, 0x80, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0x95, 0x0, 0x98, 0x0,
- 0x0, 0xe, 0x0, 0x8, 0x40, 0x0, 0xb, 0xd3,
- 0x0, 0x7, 0x1, 0x50, 0x0, 0x0, 0x0, 0x20,
-
- /* U+501F "借" */
- 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0,
- 0x0, 0x0, 0xa3, 0x6, 0xa0, 0xd, 0x20, 0x0,
- 0x0, 0x1, 0xd0, 0x6, 0x70, 0xd, 0x0, 0x0,
- 0x0, 0x6, 0x73, 0x69, 0xa6, 0x6e, 0x69, 0x70,
- 0x0, 0xc, 0x10, 0x6, 0x70, 0xd, 0x0, 0x0,
- 0x0, 0x59, 0x0, 0x6, 0x70, 0xd, 0x0, 0x0,
- 0x0, 0xbe, 0x0, 0x6, 0x70, 0xd, 0x1, 0x60,
- 0x7, 0x3d, 0x18, 0x66, 0x66, 0x66, 0x66, 0x71,
- 0x24, 0xd, 0x0, 0x20, 0x0, 0x0, 0x30, 0x0,
- 0x0, 0xd, 0x0, 0xd6, 0x66, 0x66, 0xd5, 0x0,
- 0x0, 0xd, 0x0, 0xc1, 0x0, 0x0, 0xc1, 0x0,
- 0x0, 0xd, 0x0, 0xc6, 0x66, 0x66, 0xd1, 0x0,
- 0x0, 0xd, 0x0, 0xc1, 0x0, 0x0, 0xc1, 0x0,
- 0x0, 0xd, 0x0, 0xc1, 0x0, 0x0, 0xc1, 0x0,
- 0x0, 0xe, 0x0, 0xd6, 0x66, 0x66, 0xd1, 0x0,
- 0x0, 0x7, 0x0, 0x40, 0x0, 0x0, 0x30, 0x0,
-
- /* U+5024 "値" */
- 0x0, 0x0, 0xa3, 0x0, 0x4, 0x90, 0x0, 0x0,
- 0x0, 0x1, 0xd0, 0x0, 0x5, 0x90, 0x0, 0x10,
- 0x0, 0x7, 0x76, 0x76, 0x6a, 0xb6, 0x67, 0xc1,
- 0x0, 0xc, 0x10, 0x0, 0x9, 0x50, 0x0, 0x0,
- 0x0, 0x4e, 0x10, 0x8, 0x6c, 0x86, 0x6b, 0x0,
- 0x0, 0xbd, 0x4, 0xd, 0x0, 0x0, 0x2a, 0x0,
- 0x5, 0x3d, 0xd, 0x2d, 0x0, 0x0, 0x2a, 0x0,
- 0x15, 0xd, 0xd, 0xd, 0x66, 0x66, 0x7a, 0x0,
- 0x0, 0xd, 0xd, 0xd, 0x0, 0x0, 0x2a, 0x0,
- 0x0, 0xd, 0xd, 0xd, 0x66, 0x66, 0x7a, 0x0,
- 0x0, 0xd, 0xd, 0xd, 0x0, 0x0, 0x2a, 0x0,
- 0x0, 0xd, 0xd, 0xd, 0x66, 0x66, 0x7b, 0x0,
- 0x0, 0xd, 0xd, 0x9, 0x0, 0x0, 0x16, 0x20,
- 0x0, 0xe, 0xe, 0x66, 0x66, 0x66, 0x67, 0xf4,
- 0x0, 0x8, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+503C "值" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb1, 0x0, 0xc, 0x10, 0x0, 0x0,
- 0x0, 0x3, 0xb0, 0x0, 0xe, 0x0, 0x3, 0x0,
- 0x0, 0x9, 0x57, 0x76, 0x6e, 0x66, 0x7b, 0x30,
- 0x0, 0xd, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0,
- 0x0, 0x6d, 0x10, 0x96, 0x6d, 0x66, 0xc2, 0x0,
- 0x0, 0xbd, 0x0, 0xc0, 0x0, 0x0, 0xd0, 0x0,
- 0x5, 0x4d, 0x0, 0xc6, 0x66, 0x66, 0xd0, 0x0,
- 0x6, 0xd, 0x0, 0xc0, 0x0, 0x0, 0xd0, 0x0,
- 0x10, 0xd, 0x0, 0xc0, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0xc6, 0x66, 0x66, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0xc0, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0xc6, 0x66, 0x66, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0xc0, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0xd, 0x46, 0xd6, 0x66, 0x66, 0xe8, 0xd1,
- 0x0, 0x7, 0x11, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+505A "做" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0xb0, 0x24, 0x0, 0xb, 0x10, 0x0,
- 0x0, 0x5, 0xa0, 0x48, 0x0, 0x2c, 0x0, 0x0,
- 0x0, 0xa, 0x30, 0x37, 0x0, 0x57, 0x0, 0x0,
- 0x0, 0xc, 0x0, 0x37, 0x33, 0x83, 0x11, 0x60,
- 0x0, 0x6c, 0x28, 0x8a, 0x65, 0xa5, 0x5e, 0x50,
- 0x0, 0xba, 0x0, 0x37, 0x0, 0xa0, 0xc, 0x0,
- 0x4, 0x7a, 0x0, 0x37, 0x5, 0x60, 0xb, 0x0,
- 0x6, 0x2a, 0x9, 0x8a, 0xa4, 0x51, 0x39, 0x0,
- 0x0, 0x2a, 0xc, 0x0, 0xb1, 0x25, 0x75, 0x0,
- 0x0, 0x2a, 0xc, 0x0, 0xb1, 0x8, 0xb1, 0x0,
- 0x0, 0x2a, 0xc, 0x0, 0xb1, 0x8, 0xa0, 0x0,
- 0x0, 0x2a, 0xd, 0x66, 0xc1, 0x1c, 0xb0, 0x0,
- 0x0, 0x2a, 0xc, 0x0, 0x82, 0xa2, 0x5b, 0x10,
- 0x0, 0x3a, 0x6, 0x0, 0x47, 0x0, 0x6, 0xd2,
- 0x0, 0x24, 0x0, 0x2, 0x10, 0x0, 0x0, 0x0,
-
- /* U+505C "停" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2, 0xb0, 0x0, 0x19, 0x20, 0x0, 0x0,
- 0x0, 0x6, 0x90, 0x0, 0x5, 0x90, 0x2, 0x50,
- 0x0, 0xb, 0x24, 0x76, 0x66, 0x66, 0x66, 0x60,
- 0x0, 0x1b, 0x0, 0xa, 0x66, 0x66, 0xb2, 0x0,
- 0x0, 0x8d, 0x0, 0xd, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0xbc, 0x0, 0xe, 0x66, 0x66, 0xe0, 0x0,
- 0x6, 0x3c, 0x2, 0x4, 0x0, 0x0, 0x20, 0x20,
- 0x3, 0xc, 0xa, 0x66, 0x66, 0x66, 0x66, 0xe3,
- 0x0, 0xc, 0x4a, 0x0, 0x0, 0x0, 0x25, 0x10,
- 0x0, 0xc, 0x0, 0x67, 0x66, 0xb6, 0x77, 0x0,
- 0x0, 0xc, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0xc, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0xc, 0x0, 0x0, 0x0, 0xc0, 0x0, 0x0,
- 0x0, 0xc, 0x0, 0x0, 0x7c, 0xb0, 0x0, 0x0,
- 0x0, 0x4, 0x0, 0x0, 0x5, 0x10, 0x0, 0x0,
-
- /* U+5065 "健" */
- 0x0, 0x0, 0xa3, 0x0, 0x0, 0x8, 0x0, 0x0,
- 0x0, 0x1, 0xe0, 0x1, 0x0, 0xc, 0x1, 0x0,
- 0x0, 0x6, 0x85, 0x7e, 0x6, 0x6d, 0x6d, 0x20,
- 0x0, 0xb, 0x10, 0x66, 0x0, 0xc, 0xc, 0x30,
- 0x0, 0x3b, 0x0, 0xc1, 0x46, 0x6d, 0x6d, 0x62,
- 0x0, 0x9e, 0x3, 0xa1, 0x0, 0xc, 0xc, 0x0,
- 0x4, 0x5d, 0xa, 0x8b, 0x64, 0x6d, 0x69, 0x0,
- 0x5, 0xd, 0x0, 0xa, 0x10, 0xc, 0x6, 0x0,
- 0x0, 0xd, 0x3, 0xc, 0x6, 0x6d, 0x66, 0x20,
- 0x0, 0xd, 0x6, 0xb, 0x0, 0xc, 0x1, 0x50,
- 0x0, 0xd, 0x4, 0x87, 0x46, 0x6d, 0x66, 0x50,
- 0x0, 0xd, 0x0, 0xd4, 0x0, 0xc, 0x0, 0x0,
- 0x0, 0xd, 0x4, 0x7a, 0x82, 0x4, 0x0, 0x0,
- 0x0, 0xd, 0x35, 0x0, 0x4a, 0xcc, 0xcd, 0xb1,
- 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5074 "側" */
- 0x0, 0x0, 0xc2, 0x0, 0x0, 0x0, 0x1, 0x70,
- 0x0, 0x4, 0xc1, 0xb6, 0x6d, 0x10, 0x1, 0xc0,
- 0x0, 0x9, 0x51, 0xb0, 0xc, 0xa, 0x31, 0xb0,
- 0x0, 0xc, 0x1, 0xb0, 0xc, 0xc, 0x1, 0xb0,
- 0x0, 0x4d, 0x1, 0xc6, 0x6c, 0xc, 0x1, 0xb0,
- 0x0, 0xaa, 0x1, 0xb0, 0xc, 0xc, 0x1, 0xb0,
- 0x3, 0x6a, 0x1, 0xb0, 0xc, 0xc, 0x1, 0xb0,
- 0x5, 0x1a, 0x1, 0xc6, 0x6c, 0xc, 0x1, 0xb0,
- 0x0, 0x1a, 0x1, 0xb0, 0xc, 0xc, 0x1, 0xb0,
- 0x0, 0x1a, 0x1, 0xb0, 0xc, 0xc, 0x1, 0xb0,
- 0x0, 0x1a, 0x1, 0xb6, 0x6a, 0x9, 0x1, 0xb0,
- 0x0, 0x1a, 0x0, 0x75, 0x42, 0x0, 0x1, 0xb0,
- 0x0, 0x1a, 0x2, 0xb1, 0xc, 0x20, 0x1, 0xa0,
- 0x0, 0x2b, 0x8, 0x0, 0x7, 0x93, 0x8c, 0x90,
- 0x0, 0x13, 0x20, 0x0, 0x1, 0x30, 0x6, 0x0,
-
- /* U+5099 "備" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x95, 0x2, 0xc0, 0xb, 0x40, 0x0,
- 0x0, 0x1, 0xf3, 0x2, 0xb0, 0xb, 0x14, 0x0,
- 0x0, 0x6, 0x91, 0x87, 0xc6, 0x6d, 0x68, 0x50,
- 0x0, 0xc, 0x20, 0x2, 0xb0, 0xb, 0x10, 0x30,
- 0x0, 0x3e, 0x17, 0x67, 0xc6, 0x6a, 0x67, 0xc3,
- 0x0, 0xad, 0x0, 0x8, 0xa0, 0x0, 0x0, 0x0,
- 0x4, 0x4d, 0x0, 0x4e, 0x66, 0x86, 0x6d, 0x10,
- 0x4, 0xd, 0x3, 0xbb, 0x1, 0xc0, 0xd, 0x0,
- 0x0, 0xd, 0x46, 0x2c, 0x66, 0xd6, 0x6d, 0x0,
- 0x0, 0xd, 0x0, 0x2b, 0x1, 0xc0, 0xd, 0x0,
- 0x0, 0xd, 0x0, 0x2c, 0x66, 0xd6, 0x6d, 0x0,
- 0x0, 0xd, 0x0, 0x2b, 0x1, 0xc0, 0xd, 0x0,
- 0x0, 0xd, 0x0, 0x2b, 0x1, 0xc0, 0xc, 0x0,
- 0x0, 0xe, 0x0, 0x2b, 0x1, 0xb5, 0xaa, 0x0,
- 0x0, 0x4, 0x0, 0x13, 0x0, 0x0, 0x41, 0x0,
-
- /* U+50B3 "傳" */
- 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb3, 0x0, 0xe, 0x10, 0x0, 0x0,
- 0x0, 0x3, 0xd4, 0x66, 0x6e, 0x66, 0x7e, 0x30,
- 0x0, 0x9, 0x51, 0x30, 0xd, 0x0, 0x40, 0x0,
- 0x0, 0xd, 0x0, 0xd6, 0x6e, 0x66, 0xd3, 0x0,
- 0x0, 0x6e, 0x10, 0xd6, 0x6e, 0x66, 0xd1, 0x0,
- 0x0, 0xad, 0x0, 0xd0, 0xd, 0x0, 0xc1, 0x0,
- 0x6, 0x1d, 0x0, 0xd6, 0x6e, 0x66, 0xa1, 0x0,
- 0x13, 0xd, 0x0, 0x0, 0xd, 0x1, 0x95, 0x0,
- 0x0, 0xd, 0x9, 0xca, 0x88, 0x67, 0x3c, 0x0,
- 0x0, 0xd, 0x1, 0x0, 0x0, 0xd, 0x14, 0x20,
- 0x0, 0xd, 0x37, 0x86, 0x66, 0x6e, 0x67, 0x60,
- 0x0, 0xd, 0x0, 0x5b, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x7, 0x10, 0xd, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0x0, 0x27, 0xbc, 0x0, 0x0,
- 0x0, 0x5, 0x0, 0x0, 0x0, 0x42, 0x0, 0x0,
-
- /* U+50C5 "僅" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb2, 0x8, 0x40, 0xa, 0x40, 0x0,
- 0x0, 0x4, 0xb0, 0x9, 0x30, 0xb, 0x21, 0x20,
- 0x0, 0xa, 0x57, 0x6b, 0x76, 0x6c, 0x79, 0x90,
- 0x0, 0xd, 0x0, 0x9, 0x30, 0xb, 0x20, 0x0,
- 0x0, 0x6d, 0x10, 0x9, 0x7c, 0x7b, 0x10, 0x0,
- 0x0, 0xcd, 0x0, 0x30, 0xb, 0x20, 0x23, 0x0,
- 0x4, 0x5d, 0x0, 0xd6, 0x6c, 0x76, 0xa8, 0x0,
- 0x6, 0xd, 0x0, 0xd0, 0xb, 0x20, 0x76, 0x0,
- 0x0, 0xd, 0x0, 0xc6, 0x6c, 0x76, 0x83, 0x0,
- 0x0, 0xd, 0x0, 0x66, 0x6c, 0x76, 0xb6, 0x0,
- 0x0, 0xd, 0x0, 0x20, 0xb, 0x20, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x56, 0x6c, 0x76, 0xd5, 0x0,
- 0x0, 0xd, 0x0, 0x10, 0xb, 0x20, 0x0, 0x0,
- 0x0, 0xe, 0x16, 0x66, 0x6c, 0x76, 0x6a, 0xc0,
- 0x0, 0x4, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+50CD "働" */
- 0x0, 0xb, 0x40, 0x1, 0x50, 0x7, 0x30, 0x0,
- 0x1, 0xf5, 0x6a, 0x97, 0x10, 0xb2, 0x0, 0x0,
- 0x69, 0x0, 0xa2, 0x12, 0xa, 0x20, 0x0, 0xb,
- 0x48, 0x6c, 0x77, 0x70, 0xa2, 0x20, 0x1, 0xf2,
- 0x12, 0xa2, 0x42, 0x8c, 0x7c, 0x60, 0x8f, 0x2,
- 0xcc, 0x7c, 0x50, 0xb2, 0xa2, 0xa, 0xb0, 0x2a,
- 0xa2, 0xa2, 0xb, 0x1a, 0x15, 0x1b, 0x2, 0xcc,
- 0x7c, 0x20, 0xc0, 0xb1, 0x0, 0xb0, 0x2c, 0xc7,
- 0xc2, 0xc, 0xb, 0x0, 0xb, 0x1, 0x4a, 0x24,
- 0x1, 0xa0, 0xc0, 0x0, 0xb0, 0x46, 0xc7, 0xb4,
- 0x55, 0xc, 0x0, 0xb, 0x1, 0x1a, 0x20, 0x9,
- 0x0, 0xc0, 0x0, 0xb1, 0x46, 0xc8, 0x54, 0x60,
- 0xb, 0x0, 0xc, 0x1b, 0x61, 0x1, 0x70, 0x5d,
- 0x80, 0x0, 0x40, 0x0, 0x0, 0x30, 0x0, 0x30,
- 0x0,
-
- /* U+50CF "像" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc1, 0x6, 0xc0, 0x0, 0x0, 0x0,
- 0x0, 0x4, 0xb0, 0xd, 0x86, 0x6c, 0x60, 0x0,
- 0x0, 0xa, 0x40, 0x84, 0x0, 0x47, 0x0, 0x0,
- 0x0, 0x1d, 0x4, 0xd6, 0x67, 0xa6, 0x6e, 0x10,
- 0x0, 0x8f, 0x23, 0xd0, 0x7, 0x50, 0xe, 0x0,
- 0x1, 0x9e, 0x0, 0xd6, 0x6c, 0x86, 0x6e, 0x0,
- 0x7, 0xe, 0x0, 0x60, 0x3a, 0x0, 0x15, 0x0,
- 0x22, 0xe, 0x0, 0x3, 0xa7, 0x2, 0xd6, 0x0,
- 0x0, 0xe, 0x1, 0x76, 0x1c, 0xaa, 0x10, 0x0,
- 0x0, 0xe, 0x3, 0x3, 0xb2, 0xd4, 0x30, 0x0,
- 0x0, 0xe, 0x1, 0x76, 0xa, 0xd5, 0xa0, 0x0,
- 0x0, 0xe, 0x4, 0x2, 0xb4, 0x77, 0x6a, 0x0,
- 0x0, 0xe, 0x0, 0x79, 0x10, 0x86, 0xc, 0xb1,
- 0x0, 0xe, 0x36, 0x12, 0x7c, 0xe1, 0x1, 0x30,
- 0x0, 0x4, 0x0, 0x0, 0x6, 0x20, 0x0, 0x0,
-
- /* U+50D5 "僕" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc2, 0x0, 0xc1, 0xb3, 0x0, 0x0,
- 0x0, 0x3, 0xb1, 0x30, 0xd0, 0xc0, 0x34, 0x0,
- 0x0, 0x8, 0x50, 0xb1, 0xd0, 0xc0, 0xb7, 0x0,
- 0x0, 0xc, 0x0, 0x62, 0xd0, 0xc5, 0x51, 0x10,
- 0x0, 0x4e, 0x17, 0x66, 0xa6, 0xa8, 0x69, 0x90,
- 0x0, 0xad, 0x0, 0x9, 0x30, 0xc, 0x10, 0x0,
- 0x3, 0x6d, 0x0, 0x2, 0x80, 0x53, 0x34, 0x0,
- 0x7, 0xd, 0x2, 0x66, 0x6c, 0x66, 0x66, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0xb, 0x1, 0x70, 0x0,
- 0x0, 0xd, 0x0, 0x47, 0x6c, 0x66, 0x62, 0x0,
- 0x0, 0xd, 0x7, 0x66, 0x7b, 0x66, 0x6b, 0x60,
- 0x0, 0xd, 0x0, 0x0, 0xa1, 0x60, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x9, 0x30, 0x1a, 0x20, 0x0,
- 0x0, 0xe, 0x3, 0x82, 0x0, 0x1, 0xbc, 0x80,
- 0x0, 0x3, 0x33, 0x0, 0x0, 0x0, 0x4, 0x10,
-
- /* U+50F9 "價" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x7, 0xa0, 0x0, 0x0, 0x0, 0x4, 0x40,
- 0x0, 0xb, 0x54, 0x76, 0xd6, 0x6d, 0x66, 0x50,
- 0x0, 0xe, 0x0, 0x86, 0xd6, 0x6d, 0x6a, 0x10,
- 0x0, 0x4c, 0x10, 0xb0, 0xc0, 0xb, 0xc, 0x0,
- 0x0, 0xad, 0x0, 0xd6, 0xd6, 0x6d, 0x6d, 0x0,
- 0x0, 0x9c, 0x0, 0x50, 0x0, 0x0, 0x4, 0x0,
- 0x6, 0x2c, 0x0, 0x68, 0x66, 0x66, 0x96, 0x0,
- 0x6, 0xc, 0x0, 0x65, 0x0, 0x0, 0x64, 0x0,
- 0x10, 0xc, 0x0, 0x59, 0x66, 0x66, 0xa4, 0x0,
- 0x0, 0xc, 0x0, 0x59, 0x66, 0x66, 0xa4, 0x0,
- 0x0, 0xc, 0x0, 0x55, 0x0, 0x0, 0x64, 0x0,
- 0x0, 0xc, 0x0, 0x58, 0x76, 0x67, 0x93, 0x0,
- 0x0, 0xc, 0x0, 0x1b, 0x70, 0x3, 0x98, 0x20,
- 0x0, 0xd, 0x3, 0x92, 0x0, 0x0, 0x6, 0xe1,
- 0x0, 0x4, 0x12, 0x0, 0x0, 0x0, 0x0, 0x20,
-
- /* U+5104 "億" */
- 0x0, 0x3, 0xb0, 0x0, 0x64, 0x0, 0x0, 0x0,
- 0x0, 0x89, 0x0, 0x0, 0xd0, 0x1, 0x30, 0x0,
- 0xd, 0x21, 0x88, 0x67, 0x6b, 0x67, 0x0, 0x3,
- 0xc0, 0x0, 0x58, 0x3, 0xa0, 0x0, 0x0, 0x9e,
- 0x25, 0x66, 0xa6, 0xa6, 0x6b, 0x70, 0x19, 0xd0,
- 0x22, 0x0, 0x0, 0x2, 0x0, 0x7, 0x1d, 0x0,
- 0xb6, 0x66, 0x66, 0xe0, 0x1, 0x40, 0xd0, 0xb,
- 0x66, 0x66, 0x6d, 0x0, 0x0, 0xd, 0x0, 0xb1,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0xd0, 0xa, 0x66,
- 0x76, 0x6a, 0x0, 0x0, 0xd, 0x0, 0x18, 0x38,
- 0x40, 0x61, 0x0, 0x0, 0xd0, 0x53, 0xb2, 0x17,
- 0x42, 0xd1, 0x0, 0xd, 0xd, 0x1b, 0x30, 0x9,
- 0x17, 0x40, 0x0, 0xe1, 0x40, 0x7d, 0xcc, 0xd4,
- 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+512A "優" */
- 0x0, 0x2, 0x80, 0x0, 0x0, 0x0, 0x6, 0x0,
- 0x0, 0x6, 0xa1, 0x78, 0x6b, 0x66, 0x96, 0x20,
- 0x0, 0xb, 0x30, 0xe, 0x55, 0x55, 0xe1, 0x0,
- 0x0, 0xc, 0x0, 0xd, 0x66, 0x66, 0xd0, 0x0,
- 0x0, 0x5c, 0x0, 0xd, 0x66, 0x66, 0xd0, 0x0,
- 0x0, 0xbb, 0x8, 0x6d, 0x66, 0x66, 0xd6, 0xb0,
- 0x3, 0x6b, 0x2b, 0x14, 0x49, 0x30, 0x14, 0x70,
- 0x6, 0x1b, 0x12, 0x97, 0x51, 0x66, 0x67, 0x0,
- 0x0, 0x1b, 0x8, 0x54, 0xca, 0xad, 0x5b, 0x0,
- 0x0, 0x1b, 0x0, 0x6, 0x80, 0x0, 0x10, 0x0,
- 0x0, 0x1b, 0x0, 0x2e, 0x86, 0x69, 0xe2, 0x0,
- 0x0, 0x1b, 0x2, 0x91, 0x84, 0x6b, 0x10, 0x0,
- 0x0, 0x1b, 0x3, 0x0, 0x2e, 0xd3, 0x0, 0x0,
- 0x0, 0x2c, 0x0, 0x38, 0x81, 0x3a, 0xda, 0x60,
- 0x0, 0x13, 0x15, 0x30, 0x0, 0x0, 0x15, 0x10,
-
- /* U+513F "儿" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa, 0x30, 0xb, 0x30, 0x0, 0x0,
- 0x0, 0x0, 0xc, 0x20, 0xc, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0xc, 0x20, 0xc, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0xc, 0x10, 0xc, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0xc, 0x10, 0xc, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0x0, 0xc, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0xe, 0x0, 0xc, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x1c, 0x0, 0xc, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x59, 0x0, 0xc, 0x10, 0x0, 0x20,
- 0x0, 0x0, 0xb2, 0x0, 0xc, 0x10, 0x0, 0x60,
- 0x0, 0x3, 0xa0, 0x0, 0xc, 0x10, 0x0, 0x80,
- 0x0, 0x1b, 0x10, 0x0, 0xc, 0x20, 0x1, 0xe1,
- 0x2, 0x81, 0x0, 0x0, 0x6, 0xed, 0xde, 0xc1,
- 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5143 "元" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0,
- 0x0, 0x5, 0x76, 0x66, 0x66, 0x69, 0xb1, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0,
- 0x3, 0x76, 0x66, 0x86, 0x68, 0x66, 0x7c, 0x40,
- 0x0, 0x0, 0x4, 0xb0, 0xf, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x6, 0x90, 0xf, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x8, 0x60, 0xf, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0x30, 0xf, 0x0, 0x0, 0x10,
- 0x0, 0x0, 0x2d, 0x0, 0xf, 0x0, 0x0, 0x60,
- 0x0, 0x0, 0xb5, 0x0, 0xf, 0x0, 0x0, 0x80,
- 0x0, 0x8, 0x80, 0x0, 0xe, 0x20, 0x4, 0xc0,
- 0x0, 0x95, 0x0, 0x0, 0x8, 0xdd, 0xde, 0xa0,
- 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5144 "兄" */
- 0x0, 0x40, 0x0, 0x0, 0x0, 0x51, 0x0, 0x0,
- 0xe6, 0x66, 0x66, 0x66, 0xe4, 0x0, 0x0, 0xd1,
- 0x0, 0x0, 0x0, 0xd1, 0x0, 0x0, 0xd1, 0x0,
- 0x0, 0x0, 0xd1, 0x0, 0x0, 0xd1, 0x0, 0x0,
- 0x0, 0xd1, 0x0, 0x0, 0xd1, 0x0, 0x0, 0x0,
- 0xd1, 0x0, 0x0, 0xe6, 0x6d, 0x67, 0xc6, 0xe1,
- 0x0, 0x0, 0x70, 0x2c, 0x3, 0xc0, 0x10, 0x0,
- 0x0, 0x0, 0x5a, 0x3, 0xc0, 0x0, 0x0, 0x0,
- 0x0, 0x87, 0x3, 0xc0, 0x0, 0x20, 0x0, 0x0,
- 0xc3, 0x3, 0xc0, 0x0, 0x50, 0x0, 0x3, 0xc0,
- 0x3, 0xc0, 0x0, 0x71, 0x0, 0x2c, 0x20, 0x2,
- 0xc0, 0x0, 0xb7, 0x4, 0x91, 0x0, 0x0, 0xcd,
- 0xdd, 0xf8, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+5145 "充" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x5b, 0x0, 0x0, 0x30, 0x6, 0x76,
- 0x66, 0x68, 0x96, 0x66, 0x6b, 0x60, 0x0, 0x0,
- 0x9, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6,
- 0xb1, 0x2, 0x50, 0x0, 0x0, 0x0, 0x6, 0x80,
- 0x0, 0x3, 0xb3, 0x0, 0x0, 0xc, 0xb8, 0x88,
- 0x87, 0x68, 0xf4, 0x0, 0x0, 0x65, 0x6c, 0x10,
- 0xe0, 0x8, 0x80, 0x0, 0x0, 0x5, 0x90, 0xe,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x86, 0x0, 0xe0,
- 0x0, 0x0, 0x0, 0x0, 0xe, 0x10, 0xe, 0x0,
- 0x0, 0x60, 0x0, 0x5, 0x90, 0x0, 0xe0, 0x0,
- 0x8, 0x0, 0x4, 0xa0, 0x0, 0xe, 0x0, 0x2,
- 0xc0, 0x6, 0x60, 0x0, 0x0, 0x9d, 0xdd, 0xea,
- 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5148 "先" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x95, 0x0, 0x0, 0x0, 0x0,
- 0x3, 0x90, 0xa, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x89, 0x0, 0xa3, 0x0, 0x10, 0x0, 0x0, 0xd,
- 0x86, 0x6c, 0x86, 0x6b, 0xa0, 0x0, 0x4, 0x90,
- 0x0, 0xa3, 0x0, 0x0, 0x0, 0x0, 0x90, 0x0,
- 0xa, 0x30, 0x0, 0x0, 0x0, 0x11, 0x0, 0x0,
- 0xa3, 0x0, 0x0, 0x50, 0x7, 0x66, 0x69, 0x88,
- 0x89, 0x66, 0x7a, 0x30, 0x0, 0x0, 0x95, 0x4,
- 0x90, 0x0, 0x0, 0x0, 0x0, 0xc, 0x20, 0x49,
- 0x0, 0x0, 0x0, 0x0, 0x1, 0xd0, 0x4, 0x90,
- 0x0, 0x40, 0x0, 0x0, 0x85, 0x0, 0x49, 0x0,
- 0x6, 0x10, 0x0, 0x5a, 0x0, 0x4, 0xa0, 0x0,
- 0x85, 0x1, 0x86, 0x0, 0x0, 0xc, 0xcc, 0xcd,
- 0x60, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5149 "光" */
- 0x0, 0x0, 0x0, 0x3, 0x80, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0x0, 0x4, 0xa0, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0x90, 0x3, 0xa0, 0x8, 0xa0, 0x0,
- 0x0, 0x0, 0x6c, 0x3, 0xa0, 0xe, 0x20, 0x0,
- 0x0, 0x0, 0xe, 0x13, 0xa0, 0x66, 0x0, 0x0,
- 0x0, 0x0, 0x3, 0x3, 0xa0, 0x80, 0x3, 0x20,
- 0x5, 0x76, 0x67, 0xa6, 0x8b, 0x66, 0x69, 0x80,
- 0x0, 0x0, 0x3, 0xa0, 0xd, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x5, 0x90, 0xd, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x8, 0x50, 0xd, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0x10, 0xd, 0x0, 0x0, 0x50,
- 0x0, 0x0, 0x59, 0x0, 0xd, 0x0, 0x0, 0x70,
- 0x0, 0x3, 0xa0, 0x0, 0xc, 0x10, 0x0, 0xd1,
- 0x0, 0x67, 0x0, 0x0, 0x6, 0xdc, 0xcd, 0xc1,
- 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+514B "克" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe2, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0x0, 0x0, 0x31, 0x3, 0x76,
- 0x66, 0x66, 0xd6, 0x66, 0x6a, 0x80, 0x0, 0x0,
- 0x0, 0x1b, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa6,
- 0x67, 0xc6, 0x6c, 0x40, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0xc, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0xc0, 0x0, 0x0, 0x0, 0xe6, 0x88, 0x6a,
- 0x6d, 0x10, 0x0, 0x0, 0x6, 0x9, 0x50, 0xb0,
- 0x20, 0x0, 0x0, 0x0, 0x0, 0xd1, 0xb, 0x0,
- 0x0, 0x20, 0x0, 0x0, 0x4a, 0x0, 0xb0, 0x0,
- 0x6, 0x0, 0x0, 0x2c, 0x10, 0xb, 0x0, 0x1,
- 0xa0, 0x2, 0x77, 0x0, 0x0, 0x9b, 0xbb, 0xdc,
- 0x13, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+514D "免" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0x50, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x4d, 0x0, 0x3, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd8, 0x66, 0x6e, 0x80, 0x0, 0x0,
- 0x0, 0x7, 0x80, 0x0, 0x3a, 0x0, 0x0, 0x0,
- 0x0, 0x3d, 0x0, 0x0, 0x80, 0x0, 0x60, 0x0,
- 0x2, 0xab, 0x86, 0x6c, 0xa6, 0x66, 0xf2, 0x0,
- 0x5, 0xa, 0x30, 0xa, 0x60, 0x0, 0xe0, 0x0,
- 0x0, 0xa, 0x30, 0xc, 0x40, 0x0, 0xe0, 0x0,
- 0x0, 0xb, 0x86, 0x6f, 0x8a, 0x66, 0xe0, 0x0,
- 0x0, 0x3, 0x0, 0x2e, 0x3b, 0x0, 0x10, 0x0,
- 0x0, 0x0, 0x0, 0x88, 0x3b, 0x0, 0x0, 0x60,
- 0x0, 0x0, 0x3, 0xe1, 0x3b, 0x0, 0x0, 0x80,
- 0x0, 0x0, 0x4d, 0x30, 0x2b, 0x0, 0x3, 0xc0,
- 0x0, 0x39, 0x70, 0x0, 0xe, 0xcc, 0xce, 0xb1,
- 0x4, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5152 "兒" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x8a, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x85, 0x74, 0x14, 0x76, 0x6e, 0x10, 0x0, 0xd,
- 0x10, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0xd1,
- 0x5, 0x0, 0x0, 0xe, 0x0, 0x0, 0xd, 0x66,
- 0x82, 0x18, 0x66, 0xe0, 0x0, 0x0, 0xd1, 0x0,
- 0x0, 0x0, 0xe, 0x0, 0x0, 0xd, 0x10, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0xd6, 0x7d, 0x66,
- 0xe6, 0x6c, 0x0, 0x0, 0x1, 0x3, 0xa0, 0xe,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x67, 0x0, 0xe0,
- 0x0, 0x0, 0x0, 0x0, 0xc, 0x10, 0xe, 0x0,
- 0x0, 0x50, 0x0, 0x4, 0xa0, 0x0, 0xe0, 0x0,
- 0x8, 0x0, 0x3, 0xa0, 0x0, 0xf, 0x21, 0x15,
- 0xe1, 0x6, 0x70, 0x0, 0x0, 0x7a, 0xbb, 0xa7,
- 0x3, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+515A "党" */
- 0x0, 0x0, 0x0, 0xa, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x19, 0x30, 0xd0, 0xb, 0x80, 0x0, 0x0,
- 0x0, 0x2f, 0xd, 0x3, 0xb0, 0x0, 0x0, 0x4,
- 0x0, 0x40, 0xd0, 0x80, 0x0, 0x60, 0x2, 0xb6,
- 0x66, 0x66, 0x66, 0x66, 0x8d, 0x40, 0xd5, 0x3,
- 0x0, 0x0, 0x4, 0x5, 0x0, 0x1, 0x0, 0xc6,
- 0x66, 0x66, 0xe3, 0x0, 0x0, 0x0, 0xb, 0x10,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0xb6, 0x66,
- 0x66, 0xe0, 0x0, 0x0, 0x0, 0x9, 0x1c, 0xb,
- 0x15, 0x0, 0x0, 0x0, 0x0, 0x4, 0x90, 0xb1,
- 0x0, 0x3, 0x0, 0x0, 0x0, 0xb2, 0xb, 0x10,
- 0x0, 0x61, 0x0, 0x0, 0x88, 0x0, 0xb1, 0x0,
- 0x7, 0x60, 0x16, 0x83, 0x0, 0x6, 0xdc, 0xcc,
- 0xe7, 0x23, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+5165 "入" */
- 0x0, 0x0, 0x15, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x6, 0xc4, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x70, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xf, 0xb0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x4b, 0x92, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa5, 0x49, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2, 0xd0, 0xd, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0xa, 0x40, 0x6, 0xb0, 0x0, 0x0,
- 0x0, 0x0, 0x4b, 0x0, 0x0, 0xd6, 0x0, 0x0,
- 0x0, 0x1, 0xc1, 0x0, 0x0, 0x3f, 0x40, 0x0,
- 0x0, 0x1a, 0x10, 0x0, 0x0, 0x6, 0xf7, 0x0,
- 0x1, 0x91, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xc1,
- 0x26, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5167 "內" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc1, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa,
- 0x10, 0x0, 0x0, 0x1, 0x0, 0x0, 0x64, 0x0,
- 0x0, 0x20, 0xa7, 0x66, 0x68, 0xb6, 0x66, 0x7e,
- 0xa, 0x30, 0x0, 0x4d, 0x0, 0x2, 0xc0, 0xa3,
- 0x0, 0x8, 0xc3, 0x0, 0x2c, 0xa, 0x30, 0x0,
- 0xc2, 0x90, 0x2, 0xc0, 0xa3, 0x0, 0x57, 0xb,
- 0x20, 0x2c, 0xa, 0x30, 0xb, 0x0, 0x5c, 0x2,
- 0xc0, 0xa3, 0x8, 0x10, 0x0, 0xbb, 0x3c, 0xa,
- 0x36, 0x20, 0x0, 0x1, 0xa5, 0xc0, 0xa3, 0x10,
- 0x0, 0x0, 0x0, 0x2b, 0xa, 0x30, 0x0, 0x0,
- 0x1, 0x13, 0xb0, 0xa2, 0x0, 0x0, 0x0, 0x28,
- 0xf7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0,
-
- /* U+5168 "全" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x4d, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc9, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x6, 0xb0, 0x62, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2d, 0x10, 0xb, 0x20, 0x0, 0x0,
- 0x0, 0x1, 0xc3, 0x0, 0x0, 0xb6, 0x0, 0x0,
- 0x0, 0x1b, 0x30, 0x0, 0x0, 0x4e, 0xd7, 0x30,
- 0x3, 0x95, 0x76, 0x6d, 0x76, 0x65, 0x5d, 0x60,
- 0x23, 0x0, 0x0, 0xb, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x20, 0x1, 0x0, 0x0,
- 0x0, 0x7, 0x76, 0x6d, 0x76, 0x6c, 0x30, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x20, 0x0, 0x2, 0x0,
- 0x4, 0x66, 0x66, 0x6d, 0x76, 0x66, 0x8f, 0x30,
- 0x1, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5169 "兩" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x82, 0x5,
- 0x76, 0x66, 0x6a, 0x76, 0x66, 0x69, 0x70, 0x0,
- 0x0, 0x0, 0xa2, 0x0, 0x0, 0x0, 0x0, 0x20,
- 0x0, 0xa, 0x20, 0x0, 0x2, 0x0, 0xe, 0x66,
- 0x66, 0xc7, 0x66, 0x66, 0xe2, 0x0, 0xd0, 0x20,
- 0xa, 0x22, 0x0, 0xd, 0x0, 0xd, 0x6, 0x10,
- 0xa2, 0x16, 0x0, 0xd0, 0x0, 0xd0, 0xb, 0xa,
- 0x20, 0x75, 0xd, 0x0, 0xd, 0x2, 0xe7, 0xa2,
- 0xa, 0xd1, 0xd0, 0x0, 0xd0, 0x92, 0xea, 0x22,
- 0x87, 0x9d, 0x0, 0xd, 0x35, 0xb, 0xb2, 0x80,
- 0x2b, 0xd0, 0x0, 0xd5, 0x0, 0x1a, 0x60, 0x0,
- 0x2d, 0x0, 0xd, 0x0, 0x0, 0xa2, 0x0, 0x0,
- 0xe0, 0x0, 0xd0, 0x0, 0xa, 0x20, 0x16, 0xec,
- 0x0, 0x2, 0x0, 0x0, 0x20, 0x0, 0x3, 0x10,
- 0x0,
-
- /* U+516B "八" */
- 0x0, 0x0, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x3, 0x60, 0x9, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x6, 0xc0, 0x9, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x7, 0x80, 0xa, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x8, 0x60, 0x8, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0xa, 0x30, 0x5, 0x50, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0x10, 0x2, 0x90, 0x0, 0x0,
- 0x0, 0x0, 0x1d, 0x0, 0x0, 0xc0, 0x0, 0x0,
- 0x0, 0x0, 0x68, 0x0, 0x0, 0x84, 0x0, 0x0,
- 0x0, 0x0, 0xb2, 0x0, 0x0, 0x2c, 0x0, 0x0,
- 0x0, 0x2, 0xa0, 0x0, 0x0, 0xb, 0x70, 0x0,
- 0x0, 0xa, 0x10, 0x0, 0x0, 0x2, 0xf5, 0x0,
- 0x0, 0x64, 0x0, 0x0, 0x0, 0x0, 0x6f, 0x70,
- 0x4, 0x50, 0x0, 0x0, 0x0, 0x0, 0x8, 0x71,
- 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+516C "公" */
- 0x0, 0x0, 0x12, 0x0, 0x90, 0x0, 0x0, 0x0,
- 0x0, 0x5, 0xe1, 0x9, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb5, 0x0, 0x73, 0x0, 0x0, 0x0, 0x0,
- 0x3c, 0x0, 0x1, 0xb0, 0x0, 0x0, 0x0, 0xb,
- 0x20, 0x0, 0x8, 0x70, 0x0, 0x0, 0x7, 0x60,
- 0x2, 0x0, 0xc, 0x50, 0x0, 0x4, 0x70, 0x0,
- 0xba, 0x0, 0x2e, 0x81, 0x3, 0x60, 0x0, 0x2e,
- 0x10, 0x0, 0x2d, 0x70, 0x20, 0x0, 0xb, 0x40,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x80, 0x3,
- 0x0, 0x0, 0x0, 0x0, 0x2, 0xb0, 0x0, 0x1a,
- 0x0, 0x0, 0x0, 0x0, 0xa1, 0x0, 0x0, 0x4c,
- 0x0, 0x0, 0x1, 0xd8, 0x77, 0x77, 0x65, 0xc9,
- 0x0, 0x0, 0xa, 0x64, 0x20, 0x0, 0x4, 0xd0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
- 0x0,
-
- /* U+516D "六" */
- 0x0, 0x0, 0x0, 0x64, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x60, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x7, 0xe0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1, 0x70, 0x0, 0x2, 0x10,
- 0x7, 0x66, 0x66, 0x66, 0x66, 0x66, 0x6c, 0xb0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x6, 0x70, 0x4, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0x90, 0x2, 0x80, 0x0, 0x0,
- 0x0, 0x0, 0x4e, 0x0, 0x0, 0x59, 0x0, 0x0,
- 0x0, 0x0, 0xc5, 0x0, 0x0, 0xa, 0x80, 0x0,
- 0x0, 0x6, 0x90, 0x0, 0x0, 0x1, 0xf6, 0x0,
- 0x0, 0x2b, 0x0, 0x0, 0x0, 0x0, 0x8f, 0x0,
- 0x0, 0xa1, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x10,
- 0x7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5171 "共" */
- 0x0, 0x0, 0x8, 0x10, 0x0, 0x91, 0x0, 0x0,
- 0x0, 0x0, 0xe, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0xe, 0x0, 0x0, 0xe0, 0x2, 0x0,
- 0x3, 0x76, 0x6e, 0x66, 0x66, 0xe6, 0x6b, 0x60,
- 0x0, 0x0, 0xe, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0xe, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0xe, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0xe, 0x0, 0x0, 0xe0, 0x0, 0x20,
- 0x17, 0x66, 0x6d, 0x66, 0x66, 0xd6, 0x6b, 0xd2,
- 0x1, 0x0, 0x4, 0x20, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x1e, 0x90, 0x4, 0x82, 0x0, 0x0,
- 0x0, 0x1, 0xc6, 0x0, 0x0, 0x1b, 0x91, 0x0,
- 0x0, 0x1b, 0x40, 0x0, 0x0, 0x0, 0xae, 0x0,
- 0x3, 0x81, 0x0, 0x0, 0x0, 0x0, 0xb, 0x20,
- 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5176 "其" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc, 0x10, 0x0, 0xd2, 0x0, 0x0,
- 0x0, 0x0, 0xe, 0x0, 0x0, 0xe0, 0x4, 0x0,
- 0x1, 0x86, 0x6e, 0x66, 0x66, 0xe6, 0x7a, 0x30,
- 0x0, 0x0, 0xe, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0xe, 0x66, 0x66, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0xe, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0xe, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0xe, 0x66, 0x66, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0xe, 0x0, 0x0, 0xe0, 0x1, 0x0,
- 0x5, 0x66, 0x6e, 0x66, 0x66, 0xe6, 0x6d, 0xc1,
- 0x1, 0x0, 0x5, 0x40, 0x2, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x4e, 0x80, 0x0, 0x97, 0x0, 0x0,
- 0x0, 0x6, 0xc2, 0x0, 0x0, 0x9, 0xe4, 0x0,
- 0x1, 0x86, 0x0, 0x0, 0x0, 0x0, 0x8d, 0x0,
- 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0,
-
- /* U+5177 "具" */
- 0x0, 0x0, 0x86, 0x66, 0x66, 0x6b, 0x10, 0x0,
- 0x0, 0x0, 0xb1, 0x0, 0x0, 0x1c, 0x0, 0x0,
- 0x0, 0x0, 0xb1, 0x0, 0x0, 0x1c, 0x0, 0x0,
- 0x0, 0x0, 0xb6, 0x66, 0x66, 0x6c, 0x0, 0x0,
- 0x0, 0x0, 0xb1, 0x0, 0x0, 0x1c, 0x0, 0x0,
- 0x0, 0x0, 0xb6, 0x66, 0x66, 0x6c, 0x0, 0x0,
- 0x0, 0x0, 0xb1, 0x0, 0x0, 0x1c, 0x0, 0x0,
- 0x0, 0x0, 0xb6, 0x66, 0x66, 0x6c, 0x0, 0x0,
- 0x0, 0x0, 0xb1, 0x0, 0x0, 0x1c, 0x0, 0x0,
- 0x0, 0x0, 0xb1, 0x0, 0x0, 0x1c, 0xb, 0x40,
- 0x7, 0x66, 0x68, 0x66, 0x66, 0x66, 0x66, 0x50,
- 0x0, 0x0, 0x5e, 0x20, 0x0, 0x66, 0x0, 0x0,
- 0x0, 0x8, 0xa1, 0x0, 0x0, 0x5, 0xd4, 0x0,
- 0x2, 0x94, 0x0, 0x0, 0x0, 0x0, 0x3f, 0x0,
- 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0,
-
- /* U+5185 "内" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2d, 0x20, 0x0, 0x0, 0x0, 0x0, 0x2,
- 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2d, 0x0,
- 0x0, 0x0, 0x39, 0x66, 0x67, 0xe6, 0x66, 0x7d,
- 0x2, 0xb0, 0x0, 0x3b, 0x0, 0x3, 0xb0, 0x2b,
- 0x0, 0x6, 0x90, 0x0, 0x3b, 0x2, 0xb0, 0x0,
- 0xb9, 0x20, 0x3, 0xb0, 0x2b, 0x0, 0x2c, 0xb,
- 0x70, 0x3b, 0x2, 0xb0, 0xb, 0x20, 0xc, 0x93,
- 0xb0, 0x2b, 0x19, 0x20, 0x0, 0x2e, 0x3b, 0x2,
- 0xd6, 0x0, 0x0, 0x0, 0x33, 0xb0, 0x2b, 0x0,
- 0x0, 0x0, 0x0, 0x3b, 0x2, 0xb0, 0x0, 0x0,
- 0x2, 0x15, 0xa0, 0x2b, 0x0, 0x0, 0x0, 0x39,
- 0xf6, 0x1, 0x30, 0x0, 0x0, 0x0, 0x4, 0x0,
-
- /* U+5186 "円" */
- 0x10, 0x0, 0x0, 0x0, 0x0, 0x2, 0xd, 0x66,
- 0x66, 0xa6, 0x66, 0x68, 0xe0, 0xd1, 0x0, 0xd,
- 0x0, 0x0, 0x3a, 0xc, 0x10, 0x0, 0xd0, 0x0,
- 0x3, 0xa0, 0xc1, 0x0, 0xd, 0x0, 0x0, 0x3a,
- 0xc, 0x10, 0x0, 0xd0, 0x0, 0x3, 0xa0, 0xc6,
- 0x66, 0x6e, 0x66, 0x66, 0x8a, 0xc, 0x10, 0x0,
- 0x0, 0x0, 0x3, 0xa0, 0xc1, 0x0, 0x0, 0x0,
- 0x0, 0x3a, 0xc, 0x10, 0x0, 0x0, 0x0, 0x3,
- 0xa0, 0xc1, 0x0, 0x0, 0x0, 0x0, 0x3a, 0xc,
- 0x10, 0x0, 0x0, 0x0, 0x3, 0xa0, 0xd1, 0x0,
- 0x0, 0x0, 0x0, 0x4a, 0xd, 0x10, 0x0, 0x0,
- 0x5, 0xaf, 0x70, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x40, 0x0,
-
- /* U+518A "冊" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x66, 0x96, 0x69, 0x66, 0xe3, 0x0,
- 0x0, 0xd, 0x0, 0xd0, 0xd, 0x0, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0xd0, 0xd, 0x0, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0xd0, 0xd, 0x0, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0xd0, 0xd, 0x0, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0xd0, 0xd, 0x0, 0xd6, 0x40,
- 0x7, 0x6e, 0x66, 0xe6, 0x6e, 0x66, 0xe6, 0x60,
- 0x0, 0xd, 0x0, 0xd0, 0xd, 0x0, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0xd0, 0xd, 0x0, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0xd0, 0xd, 0x0, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0xd0, 0xd, 0x0, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0xc0, 0xc, 0x0, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0x10, 0x0, 0x6b, 0xd0, 0x0,
- 0x0, 0x3, 0x0, 0x0, 0x0, 0x3, 0x20, 0x0,
-
- /* U+518D "再" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x82, 0x0,
- 0x28, 0x66, 0x66, 0xc6, 0x66, 0x68, 0x60, 0x0,
- 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x86, 0x66, 0xe6, 0x66, 0xb4, 0x0, 0x0, 0xd,
- 0x10, 0xd, 0x0, 0xc, 0x20, 0x0, 0x0, 0xc1,
- 0x0, 0xd0, 0x0, 0xc1, 0x0, 0x0, 0xc, 0x66,
- 0x6e, 0x66, 0x6d, 0x10, 0x0, 0x0, 0xc1, 0x0,
- 0xd0, 0x0, 0xc1, 0x0, 0x0, 0xc, 0x10, 0xd,
- 0x0, 0xc, 0x11, 0x1, 0x66, 0xd6, 0x66, 0xe6,
- 0x66, 0xd7, 0xf6, 0x2, 0xc, 0x10, 0x0, 0x0,
- 0xc, 0x10, 0x0, 0x0, 0xc1, 0x0, 0x0, 0x0,
- 0xc1, 0x0, 0x0, 0xc, 0x10, 0x0, 0x0, 0xc,
- 0x10, 0x0, 0x0, 0xd1, 0x0, 0x1, 0x7d, 0xf0,
- 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x33, 0x0,
- 0x0,
-
- /* U+5199 "写" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4,
- 0x20, 0x0, 0x0, 0x0, 0x0, 0x91, 0x8, 0x86,
- 0x66, 0x66, 0x66, 0x66, 0xf6, 0xe, 0x32, 0x30,
- 0x0, 0x0, 0x6, 0x30, 0x25, 0x5, 0xb0, 0x0,
- 0x0, 0x2, 0x0, 0x0, 0x7, 0xa6, 0x66, 0x66,
- 0x7d, 0x20, 0x0, 0xa, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0x10, 0x0, 0x0, 0x0, 0x10,
- 0x0, 0x2f, 0x66, 0x66, 0x66, 0x68, 0xc0, 0x0,
- 0x1, 0x0, 0x0, 0x0, 0x5, 0x80, 0x0, 0x0,
- 0x0, 0x0, 0x3, 0x7, 0x60, 0x57, 0x66, 0x66,
- 0x66, 0x8b, 0x29, 0x40, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x20, 0x0, 0x0, 0x0, 0x0, 0x31,
- 0x3e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3b, 0xf7,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x30, 0x0,
-
- /* U+519B "军" */
- 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x91, 0x0,
- 0xb6, 0x66, 0x66, 0x66, 0x66, 0x6e, 0x60, 0x5c,
- 0x0, 0x6, 0xb0, 0x0, 0x4, 0x10, 0x0, 0x0,
- 0x0, 0xd2, 0x0, 0x0, 0x40, 0x0, 0x1, 0x66,
- 0x9b, 0x66, 0x66, 0x67, 0x0, 0x0, 0x0, 0xc,
- 0x10, 0x80, 0x0, 0x0, 0x0, 0x0, 0x7, 0x60,
- 0xd, 0x0, 0x0, 0x0, 0x0, 0x3, 0xb0, 0x0,
- 0xd0, 0x3, 0x50, 0x0, 0x0, 0x56, 0x66, 0x6e,
- 0x66, 0x65, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd0,
- 0x0, 0x0, 0x0, 0x67, 0x66, 0x66, 0x6e, 0x66,
- 0x66, 0xa9, 0x0, 0x0, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+51AC "冬" */
- 0x0, 0x0, 0x3a, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa, 0x80, 0x0, 0x3, 0x0, 0x0, 0x0,
- 0x3, 0xd6, 0x66, 0x6a, 0xe1, 0x0, 0x0, 0x0,
- 0xb6, 0x30, 0x2, 0xe3, 0x0, 0x0, 0x0, 0x74,
- 0x8, 0x21, 0xc4, 0x0, 0x0, 0x0, 0x54, 0x0,
- 0xb, 0xc4, 0x0, 0x0, 0x0, 0x12, 0x0, 0x4,
- 0xcc, 0x80, 0x0, 0x0, 0x0, 0x0, 0x19, 0x91,
- 0x8, 0xd7, 0x10, 0x0, 0x1, 0x78, 0x21, 0x73,
- 0x3, 0xaf, 0xb7, 0x5, 0x50, 0x0, 0x1, 0xca,
- 0x0, 0x28, 0x10, 0x0, 0x0, 0x0, 0x0, 0x90,
- 0x0, 0x0, 0x0, 0x0, 0x27, 0x97, 0x30, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x4d, 0xd2, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x9, 0xb0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0,
- 0x0,
-
- /* U+51B7 "冷" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x5c, 0x10, 0x0, 0x0,
- 0x6, 0x10, 0x0, 0x0, 0xac, 0x10, 0x0, 0x0,
- 0x2, 0xe2, 0x2, 0x0, 0xe1, 0x80, 0x0, 0x0,
- 0x0, 0xa7, 0x5, 0x7, 0x80, 0x74, 0x0, 0x0,
- 0x0, 0x20, 0x41, 0xc, 0x30, 0xc, 0x30, 0x0,
- 0x0, 0x0, 0x70, 0x93, 0x1c, 0x12, 0xe7, 0x0,
- 0x0, 0x3, 0x46, 0x40, 0x9, 0x70, 0x3e, 0xb2,
- 0x0, 0xa, 0x42, 0x0, 0x1, 0x11, 0x21, 0x0,
- 0x0, 0x69, 0x0, 0x76, 0x66, 0x6c, 0xc0, 0x0,
- 0x7, 0xf4, 0x0, 0x0, 0x0, 0x2c, 0x10, 0x0,
- 0x0, 0xd1, 0x0, 0x2, 0x10, 0x92, 0x0, 0x0,
- 0x1, 0xf1, 0x0, 0x0, 0x99, 0x30, 0x0, 0x0,
- 0x1, 0xe0, 0x0, 0x0, 0xd, 0x80, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x4, 0xc0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
-
- /* U+51CD "凍" */
- 0x0, 0x0, 0x0, 0x0, 0xa4, 0x0, 0x0, 0x2,
- 0x70, 0x0, 0x0, 0xb, 0x10, 0x2, 0x20, 0x7,
- 0xc0, 0x76, 0x66, 0xd6, 0x66, 0x87, 0x0, 0xb,
- 0x10, 0x30, 0xb, 0x10, 0x3, 0x0, 0x0, 0x5,
- 0xe, 0x66, 0xd6, 0x66, 0xe0, 0x0, 0x0, 0x50,
- 0xd0, 0xb, 0x10, 0xd, 0x0, 0x0, 0x42, 0xd,
- 0x66, 0xd6, 0x66, 0xd0, 0x0, 0x9, 0x0, 0xd0,
- 0xb, 0x10, 0xd, 0x0, 0x15, 0x90, 0xe, 0x69,
- 0xe9, 0x66, 0xc0, 0x4, 0xe5, 0x0, 0x21, 0xcb,
- 0x71, 0x0, 0x0, 0xa, 0x30, 0x0, 0x94, 0xb2,
- 0x90, 0x0, 0x0, 0xd3, 0x0, 0x57, 0xb, 0x15,
- 0x80, 0x0, 0xf, 0x30, 0x47, 0x0, 0xb1, 0x9,
- 0xb2, 0x0, 0x41, 0x34, 0x0, 0xb, 0x10, 0x9,
- 0x80, 0x0, 0x1, 0x0, 0x0, 0x50, 0x0, 0x0,
- 0x0,
-
- /* U+51DD "凝" */
- 0x0, 0x0, 0xc, 0x11, 0x0, 0x0, 0x5, 0x10,
- 0x6, 0x70, 0xc, 0x1b, 0x31, 0x76, 0x6e, 0x50,
- 0x0, 0xd5, 0xc, 0x50, 0x30, 0x3, 0x53, 0x0,
- 0x0, 0x41, 0x3c, 0x0, 0x90, 0x6, 0xb0, 0x0,
- 0x0, 0x2, 0x28, 0xaa, 0x91, 0x0, 0xc0, 0x0,
- 0x0, 0x6, 0xb, 0x20, 0x5, 0x76, 0x86, 0xc5,
- 0x0, 0x7, 0x1c, 0x2, 0x40, 0x1, 0xb0, 0x80,
- 0x0, 0x45, 0x76, 0xb7, 0x50, 0x91, 0xb0, 0x0,
- 0x5, 0xd1, 0x40, 0x92, 0x10, 0xc1, 0xc6, 0xc1,
- 0x3, 0xe1, 0x86, 0xb7, 0xb4, 0xc1, 0xb0, 0x0,
- 0x2, 0xc0, 0x0, 0xc2, 0x0, 0xd1, 0xb0, 0x0,
- 0x6, 0xb0, 0x2, 0xa8, 0x64, 0x88, 0xb0, 0x0,
- 0x3, 0x70, 0xa, 0x11, 0xa8, 0x12, 0xc5, 0x10,
- 0x0, 0x0, 0x72, 0x0, 0x26, 0x0, 0x19, 0xf5,
- 0x0, 0x1, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0,
-
- /* U+51E6 "処" */
- 0x0, 0x4, 0xa0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x7, 0x80, 0x0, 0x2, 0x0, 0x40, 0x0,
- 0x0, 0xb, 0x20, 0x10, 0xe, 0x67, 0xd0, 0x0,
- 0x0, 0xe, 0x66, 0xb8, 0xd, 0x2, 0xb0, 0x0,
- 0x0, 0x67, 0x0, 0xa2, 0xc, 0x2, 0xb0, 0x0,
- 0x0, 0xb3, 0x0, 0xc0, 0x1b, 0x2, 0xb0, 0x0,
- 0x4, 0x55, 0x1, 0xb0, 0x39, 0x2, 0xb0, 0x0,
- 0x7, 0x6, 0x15, 0x70, 0x74, 0x2, 0xb0, 0x0,
- 0x0, 0x1, 0x7b, 0x20, 0xb0, 0x2, 0xb0, 0x40,
- 0x0, 0x0, 0x9b, 0x7, 0x40, 0x2, 0xb0, 0x80,
- 0x0, 0x0, 0xac, 0x34, 0x0, 0x0, 0xdb, 0xe3,
- 0x0, 0x7, 0x53, 0xc4, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x56, 0x0, 0x2b, 0xd8, 0x53, 0x33, 0x42,
- 0x6, 0x30, 0x0, 0x0, 0x27, 0xbd, 0xef, 0xb0,
- 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+51FA "出" */
- 0x0, 0x0, 0x0, 0x82, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xe, 0x10, 0x0, 0x0, 0x4, 0x70, 0x0,
- 0xe0, 0x0, 0xc, 0x10, 0x49, 0x0, 0xe, 0x0,
- 0x0, 0xe0, 0x4, 0x90, 0x0, 0xe0, 0x0, 0xe,
- 0x0, 0x49, 0x0, 0xe, 0x0, 0x0, 0xe0, 0x7,
- 0xb6, 0x66, 0xe6, 0x66, 0x6e, 0x0, 0x1, 0x0,
- 0xe, 0x0, 0x0, 0x60, 0x8, 0x20, 0x0, 0xe0,
- 0x0, 0x4, 0x30, 0xc2, 0x0, 0xe, 0x0, 0x0,
- 0x6a, 0xc, 0x10, 0x0, 0xe0, 0x0, 0x6, 0x80,
- 0xc1, 0x0, 0xe, 0x0, 0x0, 0x68, 0xd, 0x10,
- 0x0, 0xe0, 0x0, 0x6, 0x80, 0x96, 0x66, 0x66,
- 0x66, 0x66, 0x98, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0x10,
-
- /* U+5206 "分" */
- 0x0, 0x0, 0x4, 0x0, 0x71, 0x0, 0x0, 0x0,
- 0x0, 0x6, 0xd1, 0x5, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0xd4, 0x0, 0x18, 0x0, 0x0, 0x0, 0x0,
- 0x6a, 0x0, 0x0, 0x82, 0x0, 0x0, 0x0, 0x1c,
- 0x0, 0x0, 0x1, 0xc1, 0x0, 0x0, 0xb, 0x20,
- 0x0, 0x0, 0x4, 0xe5, 0x0, 0x8, 0x46, 0x67,
- 0x76, 0x66, 0xe4, 0xec, 0x25, 0x10, 0x0, 0x77,
- 0x0, 0x2b, 0x0, 0x20, 0x0, 0x0, 0xa, 0x40,
- 0x3, 0xb0, 0x0, 0x0, 0x0, 0x0, 0xd0, 0x0,
- 0x4a, 0x0, 0x0, 0x0, 0x0, 0x58, 0x0, 0x5,
- 0x90, 0x0, 0x0, 0x0, 0xc, 0x10, 0x0, 0x77,
- 0x0, 0x0, 0x0, 0x9, 0x30, 0x0, 0xb, 0x40,
- 0x0, 0x0, 0x28, 0x10, 0x0, 0x7f, 0xc0, 0x0,
- 0x0, 0x13, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0,
- 0x0,
-
- /* U+5207 "切" */
- 0x0, 0x7, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd2, 0x0, 0x0, 0x0, 0x0, 0x52, 0x0,
- 0xc, 0x10, 0x28, 0x68, 0xd6, 0x6c, 0x60, 0x0,
- 0xc1, 0x1, 0x10, 0x4b, 0x0, 0xb3, 0x0, 0xc,
- 0x55, 0xa8, 0x5, 0xa0, 0xb, 0x31, 0x66, 0xd2,
- 0x0, 0x0, 0x78, 0x0, 0xc3, 0x0, 0xc, 0x10,
- 0x0, 0x9, 0x60, 0xc, 0x20, 0x0, 0xc1, 0x0,
- 0x0, 0xc3, 0x0, 0xd1, 0x0, 0xc, 0x10, 0x2,
- 0xe, 0x0, 0xe, 0x10, 0x0, 0xc1, 0x17, 0x16,
- 0x90, 0x0, 0xe0, 0x0, 0xd, 0x79, 0x0, 0xd1,
- 0x0, 0xe, 0x0, 0x0, 0xe9, 0x0, 0x87, 0x0,
- 0x2, 0xd0, 0x0, 0x3, 0x0, 0x68, 0x0, 0x42,
- 0x8a, 0x0, 0x0, 0x0, 0x65, 0x0, 0x2, 0xbf,
- 0x30, 0x0, 0x0, 0x20, 0x0, 0x0, 0x1, 0x20,
- 0x0,
-
- /* U+520A "刊" */
- 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0xa, 0x20,
- 0x67, 0x69, 0x66, 0xa3, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0xb2, 0x0, 0x2, 0xb0, 0xe, 0x0, 0x0,
- 0xb, 0x20, 0x0, 0x2c, 0x0, 0xe0, 0x0, 0x0,
- 0xb2, 0x0, 0x2, 0xc0, 0xe, 0x0, 0x0, 0xb,
- 0x20, 0x46, 0x2c, 0x0, 0xe0, 0x18, 0x66, 0xd7,
- 0x66, 0x52, 0xc0, 0xe, 0x0, 0x0, 0xb, 0x20,
- 0x0, 0x2c, 0x0, 0xe0, 0x0, 0x0, 0xb2, 0x0,
- 0x2, 0xc0, 0xe, 0x0, 0x0, 0xb, 0x20, 0x0,
- 0x2c, 0x0, 0xe0, 0x0, 0x0, 0xb2, 0x0, 0x2,
- 0x60, 0xe, 0x0, 0x0, 0xb, 0x20, 0x0, 0x0,
- 0x0, 0xe0, 0x0, 0x0, 0xb2, 0x0, 0x0, 0x24,
- 0x4d, 0x0, 0x0, 0xc, 0x30, 0x0, 0x0, 0x5e,
- 0x90, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x20,
- 0x0,
-
- /* U+5217 "列" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9, 0x20,
- 0x36, 0x66, 0x66, 0x6e, 0x50, 0x0, 0xe0, 0x0,
- 0x10, 0x98, 0x0, 0x0, 0x10, 0xe, 0x0, 0x0,
- 0xd, 0x20, 0x0, 0xd, 0x20, 0xe0, 0x0, 0x3,
- 0xe6, 0x6a, 0x50, 0xd0, 0xe, 0x0, 0x0, 0xa4,
- 0x0, 0xd3, 0xd, 0x0, 0xe0, 0x0, 0x2d, 0x30,
- 0x1d, 0x0, 0xd0, 0xe, 0x0, 0x9, 0x1c, 0x17,
- 0x80, 0xd, 0x0, 0xe0, 0x5, 0x20, 0x95, 0xd2,
- 0x0, 0xd0, 0xe, 0x0, 0x20, 0x2, 0x69, 0x0,
- 0xd, 0x0, 0xe0, 0x0, 0x0, 0x1c, 0x0, 0x0,
- 0xd0, 0xe, 0x0, 0x0, 0x1b, 0x20, 0x0, 0x1,
- 0x0, 0xe0, 0x0, 0x2a, 0x20, 0x0, 0x0, 0x33,
- 0x3f, 0x0, 0x46, 0x0, 0x0, 0x0, 0x0, 0x5f,
- 0xb0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x30,
- 0x0,
-
- /* U+521D "初" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x5, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd4, 0x0, 0x0, 0x0, 0x0, 0x10,
- 0x0, 0x0, 0x33, 0x24, 0x68, 0x76, 0x66, 0xe3,
- 0x6, 0x76, 0x6d, 0x70, 0x9, 0x40, 0x0, 0xe0,
- 0x0, 0x0, 0x3b, 0x0, 0xa, 0x30, 0x0, 0xd0,
- 0x0, 0x0, 0xc1, 0x46, 0xb, 0x20, 0x1, 0xc0,
- 0x0, 0x9, 0xd0, 0xb2, 0xd, 0x0, 0x2, 0xb0,
- 0x0, 0x65, 0xd9, 0x20, 0xd, 0x0, 0x3, 0xa0,
- 0x5, 0x40, 0xd4, 0xd2, 0x2a, 0x0, 0x4, 0x90,
- 0x1, 0x0, 0xd0, 0x54, 0x66, 0x0, 0x6, 0x80,
- 0x0, 0x0, 0xd0, 0x0, 0xb0, 0x0, 0x7, 0x60,
- 0x0, 0x0, 0xd0, 0x5, 0x60, 0x0, 0x9, 0x50,
- 0x0, 0x0, 0xd0, 0x19, 0x0, 0x31, 0x1c, 0x20,
- 0x0, 0x0, 0xe1, 0x70, 0x0, 0x3a, 0xfb, 0x0,
- 0x0, 0x0, 0x41, 0x0, 0x0, 0x0, 0x40, 0x0,
-
- /* U+5224 "判" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xe2, 0x0, 0x0, 0x0, 0xb4, 0x0,
- 0x20, 0xd, 0x0, 0x81, 0x0, 0xb, 0x10, 0x9,
- 0x30, 0xd0, 0x3d, 0x21, 0x70, 0xb1, 0x0, 0x4e,
- 0xd, 0xa, 0x10, 0x1b, 0xb, 0x10, 0x0, 0x90,
- 0xd3, 0x30, 0x1, 0xb0, 0xb1, 0x1, 0x66, 0x6e,
- 0x66, 0xd4, 0x1b, 0xb, 0x10, 0x2, 0x0, 0xc0,
- 0x0, 0x1, 0xb0, 0xb1, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0x1b, 0xb, 0x10, 0x56, 0x67, 0xd6, 0x6b,
- 0xb2, 0xb0, 0xb1, 0x1, 0x0, 0x67, 0x0, 0x0,
- 0x1b, 0xb, 0x10, 0x0, 0xb, 0x10, 0x0, 0x2,
- 0xc0, 0xb1, 0x0, 0x6, 0x70, 0x0, 0x0, 0x2,
- 0xb, 0x10, 0x3, 0x80, 0x0, 0x0, 0x0, 0x21,
- 0xc1, 0x4, 0x60, 0x0, 0x0, 0x0, 0x4, 0xdd,
- 0x1, 0x10, 0x0, 0x0, 0x0, 0x0, 0x1, 0x10,
-
- /* U+5225 "別" */
- 0x0, 0x10, 0x0, 0x3, 0x0, 0x0, 0x6, 0x10,
- 0xd, 0x66, 0x66, 0xd5, 0x0, 0x0, 0xc1, 0x0,
- 0xd0, 0x0, 0xb, 0x10, 0x0, 0xc, 0x0, 0xd,
- 0x0, 0x0, 0xb1, 0xc, 0x10, 0xc0, 0x0, 0xd6,
- 0x66, 0x6d, 0x20, 0xd0, 0xc, 0x0, 0x8, 0x62,
- 0x0, 0x50, 0xd, 0x0, 0xc0, 0x0, 0xc, 0x20,
- 0x0, 0x0, 0xd0, 0xc, 0x0, 0x0, 0xc6, 0x66,
- 0xa3, 0xd, 0x0, 0xc0, 0x0, 0xd, 0x0, 0xd,
- 0x0, 0xd0, 0xc, 0x0, 0x1, 0xb0, 0x0, 0xe0,
- 0xd, 0x0, 0xc0, 0x0, 0x66, 0x0, 0x2c, 0x0,
- 0x70, 0xc, 0x0, 0xb, 0x0, 0x5, 0x90, 0x0,
- 0x0, 0xc0, 0x4, 0x60, 0x22, 0xa5, 0x0, 0x1,
- 0x2e, 0x0, 0x80, 0x0, 0xbc, 0x0, 0x1, 0x6e,
- 0xc0, 0x20, 0x0, 0x1, 0x0, 0x0, 0x0, 0x21,
- 0x0,
-
- /* U+5229 "利" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x27, 0xe5, 0x0, 0x0, 0xc3, 0x2,
- 0x56, 0x8f, 0x53, 0x10, 0x0, 0xc, 0x10, 0x0,
- 0x0, 0xe0, 0x0, 0xb, 0x20, 0xc1, 0x0, 0x0,
- 0xe, 0x0, 0x0, 0xd0, 0xc, 0x10, 0x56, 0x66,
- 0xe6, 0x7e, 0x2d, 0x0, 0xc1, 0x1, 0x0, 0x3f,
- 0x0, 0x0, 0xd0, 0xc, 0x10, 0x0, 0xa, 0xf4,
- 0x0, 0xd, 0x0, 0xc1, 0x0, 0x3, 0xce, 0x5c,
- 0x30, 0xd0, 0xc, 0x10, 0x0, 0xb2, 0xe0, 0x5d,
- 0xd, 0x0, 0xc1, 0x0, 0x84, 0xe, 0x0, 0x30,
- 0xd0, 0xc, 0x10, 0x64, 0x0, 0xe0, 0x0, 0x6,
- 0x0, 0xc1, 0x13, 0x0, 0xe, 0x0, 0x0, 0x0,
- 0xc, 0x10, 0x0, 0x0, 0xe0, 0x0, 0x3, 0x55,
- 0xe1, 0x0, 0x0, 0xf, 0x0, 0x0, 0x2, 0xcd,
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x1, 0x0,
-
- /* U+5230 "到" */
- 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x29, 0x3,
- 0x76, 0x69, 0x66, 0x95, 0x0, 0x2, 0xa0, 0x0,
- 0x6, 0xd1, 0x0, 0x2, 0x90, 0x2a, 0x0, 0x1,
- 0xa0, 0x24, 0x0, 0x3b, 0x2, 0xa0, 0x1, 0x80,
- 0x0, 0x78, 0x2, 0xa0, 0x2a, 0x1, 0xeb, 0x8b,
- 0x65, 0xd7, 0x2a, 0x2, 0xa0, 0x2, 0x0, 0xf1,
- 0x4, 0x42, 0xa0, 0x2a, 0x0, 0x0, 0xe, 0x0,
- 0x0, 0x2a, 0x2, 0xa0, 0x26, 0x66, 0xe6, 0x6d,
- 0x22, 0xa0, 0x2a, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x3a, 0x2, 0xa0, 0x0, 0x0, 0xe0, 0x0, 0x3,
- 0x90, 0x2a, 0x0, 0x0, 0xe, 0x14, 0x63, 0x0,
- 0x2, 0xa0, 0x46, 0x9b, 0xb7, 0x20, 0x0, 0x10,
- 0x4a, 0x7, 0xa4, 0x0, 0x0, 0x0, 0x3, 0x9f,
- 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40,
- 0x0,
-
- /* U+5236 "制" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb0, 0x0, 0x0, 0x0, 0x93, 0x0,
- 0x43, 0xc, 0x0, 0x0, 0x0, 0xa, 0x20, 0x9,
- 0x50, 0xc0, 0x21, 0x0, 0x60, 0xa2, 0x0, 0xc6,
- 0x6d, 0x68, 0x70, 0x1c, 0xa, 0x20, 0x43, 0x0,
- 0xc0, 0x0, 0x0, 0xb0, 0xa2, 0x8, 0x66, 0x6d,
- 0x66, 0xb7, 0xb, 0xa, 0x20, 0x0, 0x0, 0xc0,
- 0x0, 0x0, 0xb0, 0xa2, 0x0, 0xa6, 0x6d, 0x66,
- 0xc1, 0xb, 0xa, 0x20, 0xc, 0x0, 0xc0, 0xc,
- 0x0, 0xb0, 0xa2, 0x0, 0xc0, 0xc, 0x0, 0xc0,
- 0xb, 0xa, 0x20, 0xc, 0x0, 0xc0, 0xc, 0x1,
- 0x70, 0xa2, 0x0, 0xc0, 0xc, 0x49, 0xa0, 0x0,
- 0xa, 0x20, 0x7, 0x0, 0xc0, 0x52, 0x0, 0x0,
- 0xb2, 0x0, 0x0, 0xc, 0x0, 0x0, 0x5, 0xcf,
- 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x30,
-
- /* U+5238 "券" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x5, 0x0, 0xe, 0x30, 0x33, 0x0, 0x0,
- 0x0, 0x4, 0xc1, 0x2e, 0x0, 0xb7, 0x0, 0x0,
- 0x0, 0x0, 0xc3, 0x69, 0x5, 0x40, 0x10, 0x0,
- 0x1, 0x66, 0x76, 0xc9, 0x68, 0x67, 0xf4, 0x0,
- 0x0, 0x20, 0x0, 0xd0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x5, 0xa0, 0x0, 0x0, 0x1b, 0x20,
- 0x17, 0x66, 0x6e, 0x66, 0x6a, 0x76, 0x66, 0x40,
- 0x0, 0x0, 0x96, 0x0, 0x0, 0x94, 0x0, 0x0,
- 0x0, 0x9, 0x96, 0x66, 0x66, 0x9e, 0xc7, 0x40,
- 0x4, 0x71, 0x1, 0xd0, 0x0, 0xa4, 0x3c, 0x80,
- 0x11, 0x0, 0x6, 0x80, 0x0, 0xc2, 0x0, 0x0,
- 0x0, 0x0, 0xc, 0x10, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0x0, 0xa5, 0x1, 0x1, 0xd0, 0x0, 0x0,
- 0x0, 0x49, 0x30, 0x1, 0x9f, 0x80, 0x0, 0x0,
- 0x3, 0x30, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
-
- /* U+523B "刻" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x55, 0x0, 0x0, 0x0, 0x1, 0xd0,
- 0x0, 0x0, 0xe, 0x20, 0x0, 0x0, 0x0, 0xc0,
- 0x5, 0x66, 0x6b, 0x66, 0xb9, 0xa, 0x20, 0xc0,
- 0x1, 0x10, 0x7a, 0x0, 0x0, 0xd, 0x0, 0xc0,
- 0x0, 0x1, 0xc1, 0x7, 0x10, 0xd, 0x0, 0xc0,
- 0x0, 0x9, 0x20, 0x2e, 0x30, 0xd, 0x0, 0xc0,
- 0x0, 0xab, 0x75, 0xc4, 0x0, 0xd, 0x0, 0xc0,
- 0x0, 0x21, 0x7, 0x80, 0xc3, 0xd, 0x0, 0xc0,
- 0x0, 0x0, 0x68, 0x8, 0xa0, 0xd, 0x0, 0xc0,
- 0x0, 0x7, 0x60, 0x5c, 0x0, 0xd, 0x0, 0xc0,
- 0x2, 0x72, 0x3, 0xe3, 0x0, 0xb, 0x0, 0xc0,
- 0x3, 0x0, 0x4b, 0x1a, 0x60, 0x0, 0x0, 0xc0,
- 0x0, 0x7, 0x70, 0x1, 0xf1, 0x0, 0x1, 0xc0,
- 0x4, 0x71, 0x0, 0x0, 0x50, 0x2, 0x8f, 0x90,
- 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x10,
-
- /* U+5247 "則" */
- 0x0, 0x20, 0x0, 0x4, 0x0, 0x0, 0x9, 0x20,
- 0xe, 0x66, 0x66, 0xe2, 0x0, 0x0, 0xc0, 0x0,
- 0xd0, 0x0, 0xd, 0x0, 0x60, 0xc, 0x0, 0xd,
- 0x66, 0x66, 0xd0, 0xd, 0x0, 0xc0, 0x0, 0xd0,
- 0x0, 0xd, 0x0, 0xd0, 0xc, 0x0, 0xd, 0x0,
- 0x0, 0xd0, 0xd, 0x0, 0xc0, 0x0, 0xd6, 0x66,
- 0x6d, 0x0, 0xd0, 0xc, 0x0, 0xd, 0x0, 0x0,
- 0xd0, 0xd, 0x0, 0xc0, 0x0, 0xd6, 0x66, 0x6e,
- 0x0, 0xd0, 0xc, 0x0, 0xd, 0x0, 0x0, 0xc0,
- 0xd, 0x0, 0xc0, 0x0, 0x19, 0x22, 0x40, 0x0,
- 0x40, 0xc, 0x0, 0x4, 0xb1, 0x8, 0x60, 0x0,
- 0x0, 0xc0, 0x0, 0x90, 0x0, 0xd, 0x60, 0x0,
- 0xd, 0x0, 0x70, 0x0, 0x0, 0x49, 0x1, 0x7e,
- 0xd0, 0x11, 0x0, 0x0, 0x0, 0x10, 0x0, 0x21,
- 0x0,
-
- /* U+524A "削" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0xd1, 0x0, 0x0, 0x0, 0x82, 0x26, 0x0,
- 0xd0, 0x1d, 0x0, 0x0, 0xd0, 0x9, 0x80, 0xd0,
- 0x83, 0x1, 0x0, 0xd0, 0x1, 0xb0, 0xd2, 0x40,
- 0xd, 0x20, 0xd0, 0x9, 0x66, 0xe6, 0x6a, 0xd,
- 0x0, 0xd0, 0xe, 0x0, 0x0, 0x3a, 0xd, 0x0,
- 0xd0, 0xe, 0x0, 0x0, 0x3a, 0xd, 0x0, 0xd0,
- 0xe, 0x66, 0x66, 0x8a, 0xd, 0x0, 0xd0, 0xe,
- 0x0, 0x0, 0x3a, 0xd, 0x0, 0xd0, 0xe, 0x66,
- 0x66, 0x8a, 0xd, 0x0, 0xd0, 0xe, 0x0, 0x0,
- 0x3a, 0xd, 0x0, 0xd0, 0xe, 0x0, 0x0, 0x3a,
- 0x3, 0x0, 0xd0, 0xe, 0x0, 0x12, 0x6a, 0x0,
- 0x21, 0xe0, 0xe, 0x0, 0x16, 0xf5, 0x0, 0x5e,
- 0xc0, 0x3, 0x0, 0x0, 0x20, 0x0, 0x2, 0x10,
-
- /* U+524D "前" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x27, 0x0, 0x0, 0x56, 0x0, 0x0, 0x0,
- 0x0, 0xa8, 0x0, 0xa, 0x10, 0x0, 0x0, 0x0,
- 0x3, 0x60, 0x4, 0x30, 0x8, 0x50, 0x57, 0x66,
- 0x66, 0x66, 0x66, 0x66, 0x65, 0x0, 0x12, 0x0,
- 0x5, 0x0, 0x0, 0xa4, 0x0, 0x2, 0xc6, 0x67,
- 0xc0, 0x1b, 0xc, 0x10, 0x0, 0x2a, 0x0, 0x2b,
- 0x1, 0xc0, 0xc1, 0x0, 0x2, 0xc6, 0x67, 0xb0,
- 0x1c, 0xc, 0x10, 0x0, 0x2a, 0x0, 0x2b, 0x1,
- 0xc0, 0xc1, 0x0, 0x2, 0xc6, 0x67, 0xb0, 0x1c,
- 0xc, 0x10, 0x0, 0x2a, 0x0, 0x2b, 0x1, 0xc0,
- 0xc1, 0x0, 0x2, 0xa0, 0x2, 0xb0, 0x18, 0xc,
- 0x10, 0x0, 0x2a, 0x0, 0x3a, 0x1, 0x54, 0xe0,
- 0x0, 0x3, 0xa0, 0x3d, 0x70, 0x2, 0xda, 0x0,
- 0x0, 0x0, 0x0, 0x10, 0x0, 0x1, 0x0, 0x0,
-
- /* U+525B "剛" */
- 0x30, 0x0, 0x0, 0x5, 0x0, 0x0, 0x81, 0xd6,
- 0x66, 0x66, 0x6e, 0x30, 0x0, 0xd0, 0xd0, 0x81,
- 0xb, 0xd, 0x0, 0x30, 0xd0, 0xd0, 0x4a, 0x36,
- 0xd, 0x0, 0xd0, 0xd0, 0xd2, 0x47, 0x78, 0x4d,
- 0x0, 0xc0, 0xd0, 0xd1, 0x32, 0xb2, 0x1d, 0x0,
- 0xc0, 0xd0, 0xd0, 0x10, 0xa2, 0xd, 0x0, 0xc0,
- 0xd0, 0xd0, 0xc0, 0xaa, 0x2d, 0x0, 0xc0, 0xd0,
- 0xd0, 0xb0, 0xaa, 0x1d, 0x0, 0xc0, 0xd0, 0xd0,
- 0xb0, 0xaa, 0x1d, 0x0, 0xc0, 0xd0, 0xd1, 0xb6,
- 0x8c, 0xd, 0x0, 0x50, 0xd0, 0xd0, 0x0, 0x0,
- 0xd, 0x0, 0x0, 0xd0, 0xd0, 0x0, 0x0, 0xd,
- 0x0, 0x10, 0xe0, 0xc0, 0x0, 0x6, 0xcd, 0x0,
- 0x5d, 0xc0, 0x10, 0x0, 0x0, 0x42, 0x0, 0x1,
- 0x20,
-
- /* U+5272 "割" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x9, 0x30, 0x0, 0x0, 0x0, 0x92, 0x2,
- 0x10, 0x37, 0x0, 0x30, 0x0, 0xc, 0x0, 0x86,
- 0x67, 0x86, 0x6d, 0x50, 0x40, 0xc0, 0x2b, 0x0,
- 0x2d, 0x2, 0x20, 0x1d, 0xc, 0x0, 0x36, 0x67,
- 0xd6, 0x88, 0x0, 0xc0, 0xc0, 0x0, 0x0, 0x1b,
- 0x0, 0x0, 0xc, 0xc, 0x0, 0x16, 0x66, 0xd6,
- 0xa3, 0x0, 0xc0, 0xc0, 0x0, 0x0, 0x1b, 0x0,
- 0x11, 0xc, 0xc, 0x1, 0x86, 0x67, 0xd6, 0x68,
- 0x80, 0xc0, 0xc0, 0x0, 0x10, 0x17, 0x3, 0x0,
- 0x1c, 0xc, 0x0, 0xd, 0x66, 0x66, 0xe1, 0x1,
- 0x70, 0xc0, 0x0, 0xd0, 0x0, 0xd, 0x0, 0x0,
- 0xc, 0x0, 0xd, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0xc0, 0x0, 0xd6, 0x66, 0x6d, 0x0, 0x17, 0xbe,
- 0x0, 0x4, 0x0, 0x0, 0x10, 0x0, 0x2, 0x30,
-
- /* U+5275 "創" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc, 0x20, 0x0, 0x0, 0x1, 0x90,
- 0x0, 0x0, 0x5b, 0x62, 0x0, 0x0, 0x0, 0xb0,
- 0x0, 0x0, 0xc3, 0xa, 0xa0, 0x1, 0x0, 0xb0,
- 0x0, 0x9, 0x35, 0x70, 0xb2, 0x2c, 0x0, 0xb0,
- 0x0, 0x65, 0x0, 0xb0, 0x0, 0x1a, 0x0, 0xb0,
- 0x5, 0x3b, 0x66, 0x66, 0xd0, 0x1a, 0x0, 0xb0,
- 0x1, 0xc, 0x0, 0x0, 0xc0, 0x1a, 0x0, 0xb0,
- 0x0, 0xd, 0x66, 0x66, 0xc0, 0x1a, 0x0, 0xb0,
- 0x0, 0xd, 0x66, 0x66, 0xc0, 0x1a, 0x0, 0xb0,
- 0x0, 0x1c, 0x0, 0x0, 0x20, 0x1a, 0x0, 0xb0,
- 0x0, 0x4e, 0x76, 0x66, 0xc2, 0x13, 0x0, 0xb0,
- 0x0, 0x99, 0x50, 0x0, 0xc0, 0x0, 0x0, 0xb0,
- 0x1, 0x97, 0x50, 0x0, 0xc0, 0x0, 0x2, 0xb0,
- 0x7, 0x17, 0x96, 0x66, 0xd0, 0x3, 0x9f, 0x80,
- 0x12, 0x2, 0x0, 0x0, 0x10, 0x0, 0x3, 0x0,
-
- /* U+5283 "劃" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0x1, 0x80,
- 0x0, 0x46, 0x6d, 0x66, 0xa0, 0x0, 0x1, 0xa0,
- 0x0, 0x11, 0xc, 0x0, 0xc2, 0x1, 0x1, 0xa0,
- 0x6, 0x76, 0x6d, 0x66, 0xd8, 0x2d, 0x1, 0xa0,
- 0x0, 0x35, 0x5d, 0x55, 0xc0, 0xc, 0x1, 0xa0,
- 0x0, 0x12, 0x1c, 0x12, 0x50, 0xc, 0x1, 0xa0,
- 0x0, 0x47, 0x6d, 0x66, 0x52, 0xc, 0x1, 0xa0,
- 0x6, 0x76, 0x69, 0x66, 0x69, 0x1c, 0x1, 0xa0,
- 0x0, 0x96, 0x68, 0x66, 0xb0, 0xc, 0x1, 0xa0,
- 0x0, 0xc0, 0xc, 0x0, 0xc0, 0xd, 0x1, 0xa0,
- 0x0, 0xc6, 0x6d, 0x66, 0xc0, 0x5, 0x1, 0xa0,
- 0x0, 0xc6, 0x6d, 0x66, 0xc0, 0x0, 0x1, 0xa0,
- 0x0, 0x50, 0x0, 0x0, 0x62, 0x0, 0x2, 0xa0,
- 0x5, 0x9a, 0x98, 0x75, 0x31, 0x4, 0xaf, 0x80,
- 0x3, 0x40, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0,
-
- /* U+529B "力" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb7, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x20, 0x0, 0x3, 0x0, 0x6, 0x66,
- 0x66, 0xf6, 0x66, 0x66, 0xf4, 0x0, 0x0, 0x0,
- 0x1d, 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x4,
- 0xa0, 0x0, 0x2, 0xd0, 0x0, 0x0, 0x0, 0x95,
- 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0, 0x1d, 0x0,
- 0x0, 0x5, 0xa0, 0x0, 0x0, 0x8, 0x70, 0x0,
- 0x0, 0x69, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x0,
- 0x9, 0x70, 0x0, 0x1, 0xc1, 0x0, 0x0, 0x0,
- 0xc4, 0x0, 0x1, 0xb2, 0x0, 0x2, 0x74, 0x6e,
- 0x0, 0x3, 0x81, 0x0, 0x0, 0x1, 0xdf, 0x50,
- 0x1, 0x30, 0x0, 0x0, 0x0, 0x2, 0x10, 0x0,
-
- /* U+529F "功" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xd, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0, 0x46,
- 0x66, 0x6a, 0x70, 0xd, 0x0, 0x0, 0x1, 0x10,
- 0xd0, 0x0, 0x0, 0xd0, 0x1, 0x0, 0x0, 0xd,
- 0x0, 0x56, 0x6e, 0x66, 0xb8, 0x0, 0x0, 0xd0,
- 0x0, 0x2, 0xb0, 0x8, 0x50, 0x0, 0xd, 0x0,
- 0x0, 0x49, 0x0, 0x94, 0x0, 0x0, 0xd0, 0x0,
- 0x7, 0x60, 0xa, 0x30, 0x0, 0xd, 0x0, 0x0,
- 0xb3, 0x0, 0xb2, 0x0, 0x0, 0xd5, 0x64, 0x1c,
- 0x0, 0xc, 0x10, 0x59, 0xc8, 0x20, 0x8, 0x50,
- 0x0, 0xd0, 0x8, 0x60, 0x0, 0x4, 0xa0, 0x0,
- 0xe, 0x0, 0x0, 0x0, 0x3, 0xa0, 0x24, 0x24,
- 0xc0, 0x0, 0x0, 0x6, 0x60, 0x0, 0x3c, 0xf6,
- 0x0, 0x0, 0x2, 0x10, 0x0, 0x0, 0x4, 0x0,
-
- /* U+52A0 "加" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x3, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x2b, 0x0, 0x0, 0x20, 0x0, 0x20, 0x6, 0x67,
- 0xd6, 0x6d, 0x1c, 0x66, 0x6c, 0x50, 0x0, 0x3a,
- 0x0, 0xd0, 0xc0, 0x0, 0xa2, 0x0, 0x4, 0xa0,
- 0xc, 0xc, 0x0, 0xa, 0x20, 0x0, 0x48, 0x0,
- 0xc0, 0xc0, 0x0, 0xa2, 0x0, 0x6, 0x70, 0xb,
- 0xc, 0x0, 0xa, 0x20, 0x0, 0x84, 0x1, 0xb0,
- 0xc0, 0x0, 0xa2, 0x0, 0xb, 0x0, 0x29, 0xc,
- 0x0, 0xa, 0x20, 0x2, 0xa0, 0x4, 0x80, 0xc0,
- 0x0, 0xa2, 0x0, 0x92, 0x0, 0x76, 0xc, 0x66,
- 0x6c, 0x30, 0x36, 0x18, 0xbe, 0x10, 0xc0, 0x0,
- 0xa3, 0x6, 0x0, 0x6, 0x30, 0xb, 0x0, 0x5,
- 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+52A8 "动" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xa1, 0x0, 0x0,
- 0x0, 0x0, 0x4, 0x0, 0xd, 0x0, 0x0, 0x4,
- 0x76, 0x66, 0x92, 0x0, 0xd0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x0, 0x21, 0x0, 0x0,
- 0x0, 0x2, 0x66, 0xe6, 0x6b, 0x70, 0x66, 0x67,
- 0x67, 0xb1, 0xc, 0x0, 0x84, 0x0, 0x6, 0xd0,
- 0x0, 0x0, 0xc0, 0x9, 0x40, 0x0, 0xc3, 0x0,
- 0x0, 0x29, 0x0, 0x93, 0x0, 0x47, 0x5, 0x40,
- 0x6, 0x60, 0xa, 0x30, 0x9, 0x0, 0xc, 0x30,
- 0xa1, 0x0, 0xb2, 0x9, 0x56, 0x76, 0x8b, 0x2a,
- 0x0, 0xb, 0x20, 0xc9, 0x40, 0x0, 0x7a, 0x10,
- 0x0, 0xd0, 0x0, 0x0, 0x0, 0x6, 0x30, 0x31,
- 0x2e, 0x0, 0x0, 0x0, 0x6, 0x30, 0x1, 0xaf,
- 0x70, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x30,
- 0x0,
-
- /* U+52A9 "助" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xa3, 0x0, 0x0,
- 0x0, 0xa6, 0x66, 0xc2, 0x0, 0xd1, 0x0, 0x0,
- 0x0, 0xd0, 0x0, 0xd0, 0x0, 0xd1, 0x0, 0x0,
- 0x0, 0xd0, 0x0, 0xd0, 0x0, 0xd1, 0x0, 0x0,
- 0x0, 0xd0, 0x0, 0xd2, 0x86, 0xe6, 0x67, 0xd0,
- 0x0, 0xd6, 0x66, 0xd0, 0x0, 0xd0, 0x1, 0xb0,
- 0x0, 0xd0, 0x0, 0xd0, 0x0, 0xe0, 0x2, 0xb0,
- 0x0, 0xd0, 0x0, 0xd0, 0x0, 0xe0, 0x2, 0xa0,
- 0x0, 0xd6, 0x66, 0xd0, 0x2, 0xc0, 0x3, 0xa0,
- 0x0, 0xd0, 0x0, 0xd0, 0x6, 0x80, 0x3, 0x90,
- 0x0, 0xd0, 0x0, 0xd1, 0x2c, 0x10, 0x4, 0x80,
- 0x0, 0xd5, 0x87, 0x73, 0x76, 0x0, 0x6, 0x70,
- 0x1f, 0xb6, 0x10, 0x5, 0x70, 0x35, 0x5d, 0x30,
- 0x2, 0x0, 0x0, 0x64, 0x0, 0x3, 0xd8, 0x0,
- 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+52AA "努" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc1, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2, 0xb0, 0x11, 0x76, 0x66, 0x98, 0x0,
- 0x7, 0x6a, 0x96, 0xc6, 0x24, 0x0, 0xb5, 0x0,
- 0x0, 0xb, 0x0, 0xd0, 0x7, 0x3, 0xb0, 0x0,
- 0x0, 0x48, 0x4, 0x90, 0x2, 0x9c, 0x10, 0x0,
- 0x0, 0x15, 0x8e, 0x60, 0x0, 0xbc, 0x10, 0x0,
- 0x0, 0x1, 0xa5, 0xb7, 0x1a, 0x43, 0xd7, 0x30,
- 0x0, 0x57, 0x10, 0x28, 0x60, 0x0, 0x18, 0x80,
- 0x15, 0x10, 0x0, 0x1b, 0x70, 0x0, 0x10, 0x0,
- 0x0, 0x37, 0x66, 0x6e, 0x76, 0x66, 0xe3, 0x0,
- 0x0, 0x0, 0x0, 0x4b, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0x0, 0x0, 0xc3, 0x0, 0x3, 0xc0, 0x0,
- 0x0, 0x0, 0x1b, 0x60, 0x11, 0x7, 0x90, 0x0,
- 0x0, 0x16, 0x92, 0x0, 0x7, 0xef, 0x20, 0x0,
- 0x3, 0x41, 0x0, 0x0, 0x0, 0x41, 0x0, 0x0,
-
- /* U+52B3 "劳" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa, 0x50, 0x1, 0xc0, 0x0, 0x0,
- 0x0, 0x0, 0xa, 0x20, 0x1, 0xc0, 0x4, 0x10,
- 0x7, 0x66, 0x6c, 0x76, 0x66, 0xd6, 0x6a, 0x80,
- 0x0, 0x0, 0xa, 0x20, 0x1, 0xc0, 0x0, 0x0,
- 0x0, 0x30, 0x5, 0x10, 0x0, 0x30, 0x2, 0x0,
- 0x0, 0xa6, 0x66, 0x66, 0x66, 0x66, 0x6e, 0x70,
- 0x5, 0xb0, 0x0, 0x4b, 0x0, 0x0, 0x26, 0x0,
- 0x2, 0x10, 0x0, 0x5b, 0x0, 0x0, 0x10, 0x0,
- 0x0, 0x67, 0x66, 0x9b, 0x66, 0x6a, 0xb0, 0x0,
- 0x0, 0x0, 0x0, 0x95, 0x0, 0x8, 0x60, 0x0,
- 0x0, 0x0, 0x0, 0xe1, 0x0, 0xa, 0x50, 0x0,
- 0x0, 0x0, 0x8, 0x90, 0x0, 0xc, 0x20, 0x0,
- 0x0, 0x0, 0x7a, 0x0, 0x32, 0x2e, 0x0, 0x0,
- 0x0, 0x39, 0x50, 0x0, 0x19, 0xf7, 0x0, 0x0,
- 0x5, 0x30, 0x0, 0x0, 0x0, 0x30, 0x0, 0x0,
-
- /* U+52C9 "勉" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb3, 0x0, 0x0, 0x9, 0x40, 0x0, 0x0,
- 0x2b, 0x1, 0x30, 0x0, 0xc0, 0x0, 0x0, 0xa,
- 0x76, 0xbc, 0x0, 0xc, 0x0, 0x0, 0x3, 0x90,
- 0x9, 0x0, 0x0, 0xc0, 0x5, 0x0, 0x8b, 0x69,
- 0x86, 0xd5, 0x5d, 0x55, 0xd1, 0x20, 0xc0, 0x94,
- 0xc, 0x0, 0xb0, 0xc, 0x0, 0xc, 0x9, 0x30,
- 0xc0, 0xb, 0x0, 0xc0, 0x0, 0xc5, 0xc6, 0x5d,
- 0x2, 0x90, 0xc, 0x0, 0x8, 0x1c, 0xd1, 0x70,
- 0x74, 0x0, 0xc0, 0x0, 0x2, 0xac, 0x0, 0xb,
- 0x0, 0xb, 0x0, 0x0, 0x74, 0xc0, 0x7, 0x40,
- 0x79, 0xa1, 0x0, 0x1b, 0xc, 0x3, 0x50, 0x0,
- 0xa5, 0x20, 0x9, 0x10, 0xc0, 0x20, 0x0, 0x0,
- 0x57, 0x7, 0x20, 0x8, 0xba, 0xaa, 0xaa, 0xac,
- 0x72, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+52D5 "動" */
- 0x0, 0x0, 0x0, 0x25, 0x0, 0x17, 0x0, 0x0,
- 0x0, 0x46, 0x9a, 0xa8, 0x0, 0x1c, 0x0, 0x0,
- 0x0, 0x0, 0xb1, 0x0, 0x0, 0x1c, 0x0, 0x0,
- 0x7, 0x66, 0xc6, 0x69, 0x81, 0x2b, 0x11, 0x61,
- 0x0, 0x10, 0xb1, 0x3, 0x7, 0x6c, 0x55, 0xd3,
- 0x2, 0xc6, 0xc6, 0x6d, 0x10, 0x2a, 0x0, 0xc0,
- 0x1, 0xc6, 0xc6, 0x6d, 0x0, 0x48, 0x0, 0xc0,
- 0x1, 0xa0, 0xb1, 0xc, 0x0, 0x66, 0x0, 0xc0,
- 0x1, 0xc6, 0xc6, 0x6d, 0x0, 0xa2, 0x0, 0xc0,
- 0x1, 0x40, 0xb1, 0x5, 0x0, 0xc0, 0x0, 0xc0,
- 0x3, 0x66, 0xc6, 0x6c, 0x24, 0x70, 0x2, 0xa0,
- 0x0, 0x10, 0xb1, 0x0, 0xa, 0x0, 0x5, 0x80,
- 0x0, 0x13, 0xc8, 0x65, 0x74, 0x15, 0x3b, 0x40,
- 0x9, 0xc7, 0x20, 0x3, 0x50, 0x2, 0xdb, 0x0,
- 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x20, 0x0,
-
- /* U+52D9 "務" */
- 0x0, 0x0, 0x0, 0x20, 0xb, 0x0, 0x0, 0x0,
- 0x5, 0x76, 0x68, 0xe1, 0x5d, 0x66, 0x86, 0x0,
- 0x0, 0x14, 0x18, 0x10, 0xa4, 0x0, 0xb4, 0x0,
- 0x0, 0x6, 0xd0, 0x4, 0x37, 0x3, 0xa0, 0x0,
- 0x0, 0x0, 0x95, 0x2, 0x1, 0xac, 0x10, 0x0,
- 0x6, 0x76, 0x86, 0xa2, 0x1, 0xbc, 0x20, 0x0,
- 0x0, 0x8, 0xf1, 0x91, 0x3a, 0x12, 0xda, 0x51,
- 0x0, 0xc, 0xc1, 0x27, 0x58, 0x50, 0x6, 0x60,
- 0x0, 0x56, 0xc1, 0x35, 0x6c, 0x86, 0x76, 0x0,
- 0x0, 0xa0, 0xc1, 0x1, 0xc, 0x0, 0x76, 0x0,
- 0x6, 0x20, 0xc1, 0x0, 0x49, 0x0, 0x84, 0x0,
- 0x13, 0x0, 0xc1, 0x0, 0xb2, 0x0, 0xa2, 0x0,
- 0x0, 0x32, 0xd0, 0x7, 0x60, 0x10, 0xd0, 0x0,
- 0x0, 0x3b, 0xc0, 0x74, 0x0, 0x7e, 0xa0, 0x0,
- 0x0, 0x1, 0x2, 0x0, 0x0, 0x3, 0x0, 0x0,
-
- /* U+52DD "勝" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x96, 0x6a, 0x13, 0x3, 0xc0, 0x45, 0x0,
- 0x0, 0xc0, 0xc, 0x9, 0x53, 0xa0, 0xb4, 0x0,
- 0x0, 0xc0, 0xc, 0x1, 0xa4, 0x86, 0x10, 0x0,
- 0x0, 0xc0, 0xc, 0x7, 0x69, 0xa6, 0x8a, 0x0,
- 0x0, 0xd6, 0x6c, 0x0, 0xa, 0x20, 0x1, 0x10,
- 0x0, 0xc0, 0xc, 0x76, 0x6d, 0x76, 0x69, 0x80,
- 0x0, 0xc0, 0xc, 0x0, 0x76, 0x7, 0x10, 0x0,
- 0x0, 0xc3, 0x3c, 0x4, 0x88, 0x51, 0xb6, 0x10,
- 0x0, 0xc3, 0x3c, 0x46, 0xa, 0x20, 0x4a, 0xc2,
- 0x0, 0xa0, 0xc, 0x17, 0x6d, 0x66, 0xc3, 0x0,
- 0x3, 0x80, 0xc, 0x0, 0x1a, 0x0, 0xb0, 0x0,
- 0x5, 0x40, 0xc, 0x0, 0x93, 0x0, 0xc0, 0x0,
- 0x7, 0x0, 0xc, 0x4, 0x70, 0x0, 0xc0, 0x0,
- 0x6, 0x6, 0xe9, 0x46, 0x1, 0x8d, 0x80, 0x0,
- 0x10, 0x0, 0x32, 0x20, 0x0, 0x5, 0x0, 0x0,
-
- /* U+52E4 "勤" */
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x10, 0xa0, 0x0, 0x3c, 0x0, 0x0,
- 0x5, 0x6e, 0x66, 0xc7, 0xd2, 0x3a, 0x0, 0x0,
- 0x1, 0xd, 0x0, 0x90, 0x0, 0x39, 0x0, 0x0,
- 0x0, 0xe, 0x67, 0xb0, 0x0, 0x39, 0x0, 0x20,
- 0x0, 0x14, 0x1a, 0x22, 0x28, 0x8b, 0x66, 0xe0,
- 0x0, 0xd6, 0x6c, 0x6d, 0x40, 0x48, 0x1, 0xb0,
- 0x0, 0xd0, 0x1a, 0xc, 0x0, 0x48, 0x1, 0xb0,
- 0x0, 0xe6, 0x6c, 0x6d, 0x0, 0x56, 0x2, 0xb0,
- 0x0, 0x40, 0x1a, 0x6, 0x20, 0x75, 0x2, 0xa0,
- 0x1, 0x76, 0x6c, 0x66, 0x50, 0xb1, 0x3, 0x90,
- 0x0, 0x56, 0x6c, 0x6b, 0x41, 0xb0, 0x4, 0x80,
- 0x0, 0x10, 0x1a, 0x0, 0x8, 0x40, 0x6, 0x70,
- 0x0, 0x13, 0x6c, 0x65, 0x78, 0x5, 0x5d, 0x40,
- 0xb, 0xb7, 0x30, 0x3, 0x60, 0x1, 0xc9, 0x0,
- 0x0, 0x0, 0x0, 0x12, 0x0, 0x0, 0x0, 0x0,
-
- /* U+52F5 "勵" */
- 0x2, 0x0, 0x0, 0x1, 0x50, 0x38, 0x0, 0x0,
- 0x9, 0x76, 0x76, 0x66, 0x61, 0x3a, 0x0, 0x0,
- 0x9, 0x20, 0xb0, 0x44, 0x10, 0x39, 0x0, 0x0,
- 0x8, 0x77, 0xc6, 0x88, 0x80, 0x29, 0x0, 0x30,
- 0x8, 0x20, 0x30, 0x22, 0x28, 0x8b, 0x66, 0xd0,
- 0x8, 0x2b, 0x6a, 0x6c, 0x20, 0x48, 0x0, 0xc0,
- 0x8, 0x1b, 0x6c, 0x6c, 0x0, 0x56, 0x0, 0xc0,
- 0x9, 0x1b, 0xb, 0xa, 0x0, 0x74, 0x0, 0xc0,
- 0xa, 0x9, 0x6c, 0x69, 0x0, 0xa2, 0x0, 0xb0,
- 0xa, 0x36, 0x6c, 0x66, 0x60, 0xc0, 0x1, 0xa0,
- 0x9, 0x55, 0xb, 0x12, 0xa1, 0xa0, 0x2, 0x90,
- 0x7, 0x56, 0x5c, 0x68, 0x97, 0x40, 0x4, 0x80,
- 0x31, 0x55, 0x50, 0x6, 0x99, 0x4, 0x2a, 0x40,
- 0x30, 0x55, 0x0, 0x1c, 0xa1, 0x1, 0xcb, 0x0,
- 0x0, 0x11, 0x0, 0x0, 0x30, 0x0, 0x10, 0x0,
-
- /* U+5305 "包" */
- 0x0, 0x0, 0xb, 0x40, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x4d, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc9, 0x66, 0x66, 0x66, 0xc3, 0x0,
- 0x0, 0x5, 0x80, 0x0, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0x1b, 0x10, 0x0, 0x1, 0x0, 0xd0, 0x0,
- 0x0, 0x94, 0xc6, 0x66, 0x6d, 0x0, 0xd0, 0x0,
- 0x6, 0x21, 0xb0, 0x0, 0xc, 0x0, 0xe0, 0x0,
- 0x1, 0x1, 0xb0, 0x0, 0xc, 0x0, 0xe0, 0x0,
- 0x0, 0x1, 0xd6, 0x66, 0x6a, 0x0, 0xd0, 0x0,
- 0x0, 0x1, 0xb0, 0x0, 0x5, 0x25, 0xb0, 0x10,
- 0x0, 0x1, 0xb0, 0x0, 0x0, 0x6e, 0x40, 0x60,
- 0x0, 0x1, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x80,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0x0, 0x2, 0xe1,
- 0x0, 0x0, 0x7c, 0xbb, 0xcc, 0xcc, 0xde, 0xa0,
-
- /* U+5316 "化" */
- 0x0, 0x0, 0x63, 0x0, 0x82, 0x0, 0x0, 0x0,
- 0x0, 0xe, 0x30, 0xd, 0x20, 0x0, 0x0, 0x0,
- 0x4, 0xb0, 0x0, 0xc1, 0x0, 0x0, 0x0, 0x0,
- 0xb4, 0x0, 0xc, 0x10, 0x9, 0x10, 0x0, 0x3e,
- 0x10, 0x0, 0xc1, 0x8, 0xb2, 0x0, 0xb, 0xe4,
- 0x0, 0xc, 0x15, 0xc0, 0x0, 0x3, 0x7b, 0x20,
- 0x0, 0xc5, 0xc1, 0x0, 0x0, 0x80, 0xb2, 0x0,
- 0xc, 0xb0, 0x0, 0x0, 0x30, 0xb, 0x20, 0x8,
- 0xf1, 0x0, 0x0, 0x0, 0x0, 0xb2, 0x19, 0x3c,
- 0x10, 0x0, 0x0, 0x0, 0xb, 0x45, 0x0, 0xc1,
- 0x0, 0x6, 0x0, 0x0, 0xb2, 0x0, 0xc, 0x10,
- 0x0, 0x71, 0x0, 0xb, 0x20, 0x0, 0xc2, 0x0,
- 0x9, 0x70, 0x0, 0xc2, 0x0, 0x6, 0xed, 0xdd,
- 0xe6, 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+5317 "北" */
- 0x0, 0x0, 0xa, 0x40, 0x1a, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0xc1, 0x0, 0xe0, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x10, 0xd, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc1, 0x0, 0xd0, 0x0, 0x60, 0x5, 0x66,
- 0x6d, 0x10, 0xd, 0x0, 0xbc, 0x20, 0x0, 0x0,
- 0xc1, 0x0, 0xd2, 0xa5, 0x0, 0x0, 0x0, 0xc,
- 0x10, 0xe, 0x50, 0x0, 0x0, 0x0, 0x0, 0xc1,
- 0x0, 0xd0, 0x0, 0x0, 0x0, 0x0, 0xc, 0x10,
- 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc1, 0x0,
- 0xd0, 0x0, 0x10, 0x0, 0x0, 0x4d, 0x10, 0xd,
- 0x0, 0x5, 0x1, 0x6a, 0x92, 0xc1, 0x0, 0xd0,
- 0x0, 0x61, 0xa, 0x20, 0xc, 0x10, 0xe, 0x0,
- 0x9, 0x60, 0x0, 0x0, 0xd2, 0x0, 0xbe, 0xdd,
- 0xe6, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+533B "医" */
- 0x1, 0x0, 0x0, 0x0, 0x0, 0x3, 0x40, 0x1,
- 0xd6, 0x66, 0x76, 0x66, 0x66, 0x99, 0x0, 0xd,
- 0x0, 0xd, 0x30, 0x0, 0x0, 0x0, 0x0, 0xd0,
- 0x2, 0xb0, 0x0, 0x5, 0x10, 0x0, 0xd, 0x0,
- 0x78, 0x6b, 0x66, 0x85, 0x0, 0x0, 0xd0, 0x9,
- 0x0, 0xd0, 0x0, 0x0, 0x0, 0xd, 0x6, 0x0,
- 0xe, 0x0, 0x0, 0x10, 0x0, 0xd2, 0x76, 0x66,
- 0xe6, 0x66, 0x6e, 0x30, 0xd, 0x0, 0x0, 0x3b,
- 0x0, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x9, 0x88,
- 0x40, 0x0, 0x0, 0xd, 0x0, 0x4, 0xa0, 0x8,
- 0xd4, 0x0, 0x0, 0xd0, 0x5, 0x90, 0x0, 0x5,
- 0xf1, 0x0, 0xd, 0x16, 0x30, 0x0, 0x0, 0x4,
- 0x51, 0x2, 0xd6, 0x66, 0x66, 0x66, 0x66, 0x6a,
- 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+5340 "區" */
- 0x3, 0x0, 0x0, 0x0, 0x0, 0x8, 0x30, 0xe,
- 0x66, 0x66, 0x66, 0x66, 0x66, 0x50, 0xd, 0x0,
- 0x18, 0x66, 0x69, 0x40, 0x0, 0xd, 0x0, 0x1a,
- 0x0, 0x8, 0x40, 0x0, 0xd, 0x0, 0x1a, 0x0,
- 0x8, 0x40, 0x0, 0xd, 0x0, 0x1c, 0x66, 0x6b,
- 0x40, 0x0, 0xd, 0x0, 0x3, 0x0, 0x3, 0x0,
- 0x0, 0xd, 0x7, 0x66, 0x90, 0x86, 0x69, 0x0,
- 0xd, 0xd, 0x0, 0xb0, 0xc0, 0xc, 0x0, 0xd,
- 0xd, 0x0, 0xb0, 0xc0, 0xc, 0x0, 0xd, 0xd,
- 0x0, 0xb0, 0xc0, 0xc, 0x0, 0xd, 0xd, 0x66,
- 0xb0, 0xd6, 0x6c, 0x0, 0xd, 0x3, 0x0, 0x10,
- 0x20, 0x1, 0x10, 0x1e, 0x66, 0x66, 0x66, 0x66,
- 0x67, 0xf3, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+5341 "十" */
- 0x0, 0x0, 0x0, 0x9, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x20, 0x0, 0xa, 0x30,
- 0x28, 0x66, 0x66, 0x6d, 0x76, 0x66, 0x66, 0x50,
- 0x0, 0x0, 0x0, 0xc, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5343 "千" */
- 0x0, 0x0, 0x0, 0x0, 0x1, 0x6a, 0x0, 0x0,
- 0x0, 0x0, 0x3, 0x69, 0xcc, 0xa8, 0x30, 0x0,
- 0x0, 0x25, 0x54, 0x2c, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x30, 0x0, 0x7, 0x10,
- 0x27, 0x66, 0x66, 0x6d, 0x86, 0x66, 0x69, 0x60,
- 0x0, 0x0, 0x0, 0xb, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5348 "午" */
- 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0xe1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x8b, 0x66, 0x66, 0x66, 0xca, 0x0, 0x0, 0x1b,
- 0x0, 0xa, 0x40, 0x0, 0x0, 0x0, 0x8, 0x10,
- 0x0, 0xa4, 0x0, 0x0, 0x0, 0x4, 0x20, 0x0,
- 0xa, 0x40, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0xa4, 0x0, 0x0, 0x20, 0x16, 0x66, 0x66, 0x6c,
- 0x86, 0x66, 0x6e, 0x60, 0x10, 0x0, 0x0, 0xa4,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x40,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa4, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x40, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xa4, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xa, 0x50, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0,
-
- /* U+534A "半" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0x2, 0x0, 0xc, 0x10, 0x8, 0x70, 0x0,
- 0x0, 0x7, 0x70, 0xc, 0x10, 0x2d, 0x30, 0x0,
- 0x0, 0x0, 0xb9, 0xc, 0x10, 0xa1, 0x0, 0x0,
- 0x0, 0x0, 0x39, 0xc, 0x16, 0x10, 0x0, 0x0,
- 0x1, 0x66, 0x66, 0x6d, 0x66, 0x66, 0xd7, 0x0,
- 0x0, 0x20, 0x0, 0xc, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x10, 0x0, 0x8, 0x20,
- 0x7, 0x66, 0x66, 0x6d, 0x66, 0x66, 0x68, 0x60,
- 0x0, 0x0, 0x0, 0xc, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5352 "卒" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x7, 0x40, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2c, 0x0, 0x4, 0x50, 0x0, 0x67,
- 0x69, 0x66, 0x66, 0x86, 0x66, 0x0, 0x0, 0x0,
- 0xe3, 0x0, 0xd, 0x60, 0x0, 0x0, 0x0, 0x69,
- 0x0, 0x5, 0xb0, 0x0, 0x0, 0x0, 0xb, 0x69,
- 0x0, 0xb5, 0x91, 0x0, 0x0, 0x7, 0x40, 0xa5,
- 0x83, 0x5, 0xe0, 0x0, 0x3, 0x50, 0x2, 0x77,
- 0x0, 0xa, 0x0, 0x0, 0x20, 0x0, 0x1, 0xe1,
- 0x0, 0x3, 0x50, 0x67, 0x66, 0x66, 0x6e, 0x66,
- 0x66, 0x88, 0x10, 0x0, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0,
-
- /* U+5354 "協" */
- 0x0, 0x9, 0x10, 0x0, 0x6, 0x60, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0x9, 0x40, 0x3, 0x0,
- 0x0, 0xd, 0x0, 0x37, 0x6d, 0x66, 0x6d, 0x40,
- 0x0, 0xd, 0x0, 0x0, 0x39, 0x0, 0xb, 0x0,
- 0x6, 0x6e, 0x6b, 0x21, 0xa1, 0x0, 0x48, 0x0,
- 0x1, 0xd, 0x0, 0x57, 0x0, 0x4a, 0xd1, 0x0,
- 0x0, 0xd, 0x3, 0x23, 0x0, 0x2, 0x40, 0x0,
- 0x0, 0xd, 0x1, 0x4b, 0x14, 0x0, 0xe0, 0x40,
- 0x0, 0xd, 0x6, 0x99, 0x5c, 0x58, 0xd6, 0xc2,
- 0x0, 0xd, 0x0, 0x83, 0xb, 0x3, 0x90, 0xa0,
- 0x0, 0xd, 0x0, 0xb0, 0xb, 0x7, 0x60, 0xb0,
- 0x0, 0xd, 0x2, 0x80, 0x29, 0xc, 0x10, 0xb0,
- 0x0, 0xd, 0x8, 0x24, 0x85, 0x47, 0x0, 0xc0,
- 0x0, 0xe, 0x44, 0x4, 0xc4, 0x70, 0x6b, 0xa0,
- 0x0, 0x5, 0x20, 0x0, 0x13, 0x0, 0x5, 0x10,
-
- /* U+5357 "南" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa4, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc, 0x20, 0x0, 0x5, 0x1, 0x76,
- 0x66, 0x66, 0xe6, 0x66, 0x68, 0xc4, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x8, 0x66,
- 0x66, 0xe6, 0x66, 0x6a, 0x40, 0x0, 0xb1, 0x3,
- 0x0, 0x8, 0x0, 0xb2, 0x0, 0xb, 0x10, 0x3c,
- 0x3, 0xa0, 0xb, 0x20, 0x0, 0xb1, 0x0, 0x90,
- 0x71, 0x60, 0xb2, 0x0, 0xb, 0x16, 0x76, 0xd6,
- 0x67, 0x1b, 0x20, 0x0, 0xb1, 0x0, 0xc, 0x0,
- 0x61, 0xb2, 0x0, 0xb, 0x38, 0x66, 0xd6, 0x66,
- 0x4b, 0x20, 0x0, 0xb1, 0x0, 0xc, 0x0, 0x0,
- 0xb2, 0x0, 0xb, 0x10, 0x0, 0xc0, 0x23, 0x2d,
- 0x10, 0x0, 0xc1, 0x0, 0xa, 0x0, 0x5e, 0xc0,
- 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0,
-
- /* U+5358 "単" */
- 0x0, 0x3, 0x0, 0x52, 0x0, 0x67, 0x0, 0x0,
- 0x0, 0x89, 0x1, 0xd1, 0xc, 0x40, 0x0, 0x0,
- 0x0, 0xd3, 0xb, 0x35, 0x60, 0x0, 0x0, 0x2,
- 0x89, 0x66, 0x76, 0xa6, 0xb1, 0x0, 0x0, 0x2a,
- 0x0, 0xd, 0x0, 0xd, 0x0, 0x0, 0x2, 0xa0,
- 0x0, 0xd0, 0x0, 0xd0, 0x0, 0x0, 0x2c, 0x66,
- 0x6e, 0x66, 0x6d, 0x0, 0x0, 0x2, 0xa0, 0x0,
- 0xd0, 0x0, 0xd0, 0x0, 0x0, 0x2c, 0x66, 0x6e,
- 0x66, 0x6d, 0x0, 0x0, 0x1, 0x40, 0x0, 0xd0,
- 0x0, 0x41, 0x30, 0x37, 0x66, 0x66, 0x6e, 0x66,
- 0x66, 0xac, 0x20, 0x0, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+5371 "危" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd3, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x7d, 0x66, 0x67, 0x90, 0x0, 0x0, 0x0,
- 0x2c, 0x0, 0x0, 0xb6, 0x0, 0x0, 0x0, 0x1b,
- 0x10, 0x0, 0x55, 0x0, 0x2, 0x0, 0x28, 0xa6,
- 0x66, 0x69, 0x66, 0x69, 0xb0, 0x4, 0xb, 0x20,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb2, 0xa,
- 0x66, 0x66, 0xd0, 0x0, 0x0, 0xb, 0x20, 0xd0,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0xb2, 0xd, 0x0,
- 0x0, 0xd0, 0x0, 0x0, 0xc, 0x10, 0xd0, 0x0,
- 0xc, 0x0, 0x0, 0x0, 0xd0, 0xd, 0x1, 0x6d,
- 0xa0, 0x50, 0x0, 0x3a, 0x0, 0xd0, 0x0, 0x30,
- 0x7, 0x10, 0xa, 0x20, 0xc, 0x10, 0x0, 0x0,
- 0x95, 0x6, 0x30, 0x0, 0x6d, 0xcc, 0xcc, 0xce,
- 0x61, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5373 "即" */
- 0x2, 0x0, 0x3, 0x0, 0x0, 0x0, 0x10, 0xe,
- 0x66, 0x6e, 0x30, 0xc6, 0x66, 0xe1, 0xd, 0x0,
- 0xd, 0x0, 0xd0, 0x0, 0xd0, 0xd, 0x66, 0x6e,
- 0x0, 0xd0, 0x0, 0xd0, 0xd, 0x0, 0xd, 0x0,
- 0xd0, 0x0, 0xd0, 0xd, 0x0, 0xd, 0x0, 0xd0,
- 0x0, 0xd0, 0xd, 0x66, 0x6e, 0x0, 0xd0, 0x0,
- 0xd0, 0xd, 0x0, 0x8, 0x0, 0xd0, 0x0, 0xd0,
- 0xd, 0x3, 0x50, 0x0, 0xd0, 0x0, 0xd0, 0xd,
- 0x0, 0x6a, 0x0, 0xd0, 0x0, 0xc0, 0xd, 0x1,
- 0x5b, 0xa0, 0xd1, 0x8d, 0xa0, 0x1f, 0xa7, 0x11,
- 0x90, 0xd0, 0x4, 0x0, 0x5, 0x0, 0x0, 0x0,
- 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0,
- 0x0,
-
- /* U+537B "卻" */
- 0x0, 0x3, 0x40, 0x61, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x60, 0x2d, 0x40, 0xa6, 0x66, 0xa1,
- 0x0, 0x83, 0x0, 0x4, 0xc0, 0xd0, 0x0, 0xd0,
- 0x5, 0x10, 0x3d, 0x0, 0x20, 0xd0, 0x0, 0xd0,
- 0x0, 0x0, 0xb7, 0x70, 0x0, 0xd0, 0x0, 0xd0,
- 0x0, 0x6, 0x60, 0x3c, 0x20, 0xd0, 0x0, 0xd0,
- 0x0, 0x39, 0x0, 0x5, 0xd0, 0xd0, 0x0, 0xd0,
- 0x2, 0x83, 0x0, 0x4, 0x70, 0xd0, 0x0, 0xd0,
- 0x5, 0xe, 0x66, 0x6e, 0x20, 0xd0, 0x0, 0xd0,
- 0x0, 0xd, 0x0, 0xd, 0x0, 0xd0, 0x0, 0xd0,
- 0x0, 0xd, 0x0, 0xd, 0x0, 0xd1, 0x79, 0xc0,
- 0x0, 0xd, 0x0, 0xd, 0x0, 0xd0, 0x8, 0x30,
- 0x0, 0xe, 0x66, 0x6e, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0x9, 0x0, 0x5, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0,
-
- /* U+539A "厚" */
- 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0xa3, 0x0,
- 0xe, 0x66, 0x66, 0x66, 0x66, 0x66, 0x50, 0x0,
- 0xd0, 0xc, 0x66, 0x66, 0x6c, 0x0, 0x0, 0xd,
- 0x0, 0xd0, 0x0, 0x0, 0xd0, 0x0, 0x0, 0xd0,
- 0xe, 0x66, 0x66, 0x6d, 0x0, 0x0, 0xd, 0x0,
- 0xe6, 0x66, 0x66, 0xd0, 0x0, 0x0, 0xd0, 0xa,
- 0x0, 0x0, 0x8, 0x0, 0x0, 0xd, 0x5, 0x66,
- 0x66, 0x66, 0xc2, 0x0, 0x0, 0xc0, 0x0, 0x0,
- 0x13, 0x85, 0x10, 0x0, 0x2a, 0x0, 0x0, 0xc,
- 0x20, 0x2, 0x50, 0x5, 0x76, 0x66, 0x66, 0xe6,
- 0x66, 0x77, 0x10, 0x92, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0x0, 0x9, 0x0, 0x0, 0x10, 0xd0, 0x0,
- 0x0, 0x5, 0x10, 0x0, 0x4, 0xdb, 0x0, 0x0,
- 0x0, 0x10, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+539F "原" */
- 0x0, 0x30, 0x0, 0x0, 0x0, 0x5, 0x80, 0x0,
- 0xe6, 0x66, 0x68, 0x96, 0x66, 0x61, 0x0, 0xe0,
- 0x0, 0x8, 0x40, 0x0, 0x0, 0x0, 0xe0, 0x1a,
- 0x69, 0x66, 0x6c, 0x30, 0x0, 0xe0, 0xc, 0x0,
- 0x0, 0xb, 0x10, 0x0, 0xe0, 0xd, 0x66, 0x66,
- 0x6d, 0x10, 0x0, 0xd0, 0xc, 0x0, 0x0, 0xb,
- 0x10, 0x0, 0xd0, 0xd, 0x66, 0x66, 0x6d, 0x10,
- 0x0, 0xc0, 0x7, 0x0, 0xd0, 0x6, 0x0, 0x2,
- 0xa0, 0x2, 0x50, 0xd1, 0x0, 0x0, 0x4, 0x70,
- 0xd, 0x80, 0xd0, 0x77, 0x0, 0x9, 0x21, 0xb4,
- 0x0, 0xd0, 0x6, 0xe3, 0x18, 0x18, 0x10, 0x57,
- 0xe0, 0x0, 0x6a, 0x60, 0x10, 0x0, 0x8, 0x80,
- 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+53B3 "厳" */
- 0x0, 0x0, 0x81, 0x6, 0x20, 0xb, 0x20, 0x0,
- 0x0, 0x4, 0xc0, 0x1e, 0x5, 0x70, 0x0, 0x0,
- 0x52, 0x26, 0x22, 0x62, 0x62, 0x6b, 0x0, 0xb,
- 0x64, 0x44, 0x44, 0x4a, 0x44, 0x41, 0x0, 0xa3,
- 0x67, 0x97, 0x1, 0xd0, 0x0, 0x0, 0xa, 0x30,
- 0xa, 0x14, 0x64, 0x3, 0x40, 0x0, 0xa5, 0x8c,
- 0x6d, 0x5c, 0x66, 0xe5, 0x0, 0xa, 0x22, 0xc6,
- 0xd4, 0x62, 0xd, 0x0, 0x0, 0xb2, 0x2a, 0xc,
- 0x20, 0x62, 0xa0, 0x0, 0xc, 0x2, 0xc6, 0xd0,
- 0x9, 0x75, 0x0, 0x0, 0xc0, 0x2a, 0xc, 0x0,
- 0x6d, 0x0, 0x0, 0x28, 0x15, 0xc7, 0xd6, 0x27,
- 0xe1, 0x0, 0x6, 0x25, 0xa4, 0xc, 0x3, 0x84,
- 0xd3, 0x0, 0x60, 0x0, 0x0, 0xb3, 0x60, 0x5,
- 0xd3, 0x11, 0x0, 0x0, 0x1, 0x10, 0x0, 0x0,
- 0x0,
-
- /* U+53BB "去" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb5, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x26,
- 0x66, 0x6d, 0x86, 0x6a, 0xc0, 0x0, 0x0, 0x10,
- 0x0, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb3, 0x0, 0x0, 0x80, 0x8, 0x66, 0x66, 0x6d,
- 0x66, 0x66, 0x7a, 0x40, 0x0, 0x0, 0x5, 0xe3,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xc2, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xa3, 0x0, 0x37,
- 0x0, 0x0, 0x0, 0x0, 0x92, 0x0, 0x0, 0x3d,
- 0x30, 0x0, 0x3, 0xd8, 0x77, 0x77, 0x76, 0x9f,
- 0x20, 0x0, 0xb, 0x85, 0x32, 0x0, 0x0, 0xb4,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+53C2 "参" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x4c, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x6, 0xa2, 0x1, 0x50, 0x0, 0x0,
- 0x0, 0x3, 0x74, 0x0, 0x0, 0x3c, 0x60, 0x0,
- 0x0, 0xd, 0xb9, 0xbc, 0x65, 0x54, 0xe2, 0x0,
- 0x0, 0x0, 0x0, 0xc3, 0x0, 0x0, 0x23, 0x40,
- 0x6, 0x66, 0x6a, 0xb6, 0x69, 0x66, 0x67, 0x70,
- 0x0, 0x0, 0x2c, 0x1, 0x44, 0x60, 0x0, 0x0,
- 0x0, 0x1, 0xb1, 0x1c, 0x90, 0x5b, 0x20, 0x0,
- 0x0, 0x39, 0x12, 0xc5, 0x4, 0x13, 0xdc, 0x71,
- 0x5, 0x50, 0x68, 0x10, 0x5e, 0x50, 0x6, 0x40,
- 0x0, 0x16, 0x10, 0x8, 0xa1, 0x4, 0x30, 0x0,
- 0x0, 0x0, 0x6, 0x93, 0x0, 0x7e, 0x60, 0x0,
- 0x0, 0x15, 0x62, 0x0, 0x4c, 0x91, 0x0, 0x0,
- 0x0, 0x0, 0x1, 0x6c, 0x92, 0x0, 0x0, 0x0,
- 0x1, 0x57, 0x88, 0x50, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+53C3 "參" */
- 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x8b, 0x3, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x27, 0x30, 0x2, 0xd5, 0x0, 0x0,
- 0x0, 0x0, 0x7a, 0x86, 0x43, 0x4a, 0x0, 0x0,
- 0x0, 0x6, 0x80, 0x0, 0x0, 0xb4, 0x10, 0x0,
- 0x0, 0xa, 0x5, 0x0, 0x19, 0x30, 0x34, 0x0,
- 0x0, 0x71, 0x6, 0x52, 0x5f, 0xed, 0xbd, 0x0,
- 0x1, 0xb7, 0x45, 0xbe, 0x65, 0x0, 0x9, 0x0,
- 0x0, 0x0, 0x6, 0xb2, 0x36, 0x20, 0x0, 0x0,
- 0x0, 0x5, 0x83, 0x7, 0xc1, 0x7b, 0xa8, 0x60,
- 0x4, 0x40, 0x16, 0xa6, 0x27, 0x10, 0x37, 0x0,
- 0x0, 0x25, 0x51, 0x5, 0xda, 0x30, 0x0, 0x0,
- 0x0, 0x0, 0x28, 0xa7, 0x10, 0x6c, 0x10, 0x0,
- 0x0, 0x57, 0x51, 0x0, 0x4c, 0xb4, 0x10, 0x0,
- 0x0, 0x0, 0x2, 0x7c, 0xa3, 0x0, 0x0, 0x0,
- 0x1, 0x67, 0x98, 0x40, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+53C8 "又" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0,
- 0x0, 0x47, 0x76, 0x66, 0x66, 0x6a, 0xb0, 0x0,
- 0x0, 0x0, 0x41, 0x0, 0x0, 0xb, 0x30, 0x0,
- 0x0, 0x0, 0x5, 0x0, 0x0, 0x1d, 0x0, 0x0,
- 0x0, 0x0, 0x7, 0x0, 0x0, 0x77, 0x0, 0x0,
- 0x0, 0x0, 0x6, 0x10, 0x0, 0xc1, 0x0, 0x0,
- 0x0, 0x0, 0x1, 0x80, 0x5, 0x90, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x82, 0xd, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1b, 0x97, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x8, 0xe0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x5b, 0x7b, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x8, 0x90, 0x5, 0xd6, 0x0, 0x0,
- 0x0, 0x3, 0x94, 0x0, 0x0, 0x2c, 0xe9, 0x51,
- 0x2, 0x65, 0x0, 0x0, 0x0, 0x0, 0x5c, 0x70,
- 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+53CA "及" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0,
- 0x0, 0x6, 0x67, 0xb6, 0x66, 0xad, 0x0, 0x0,
- 0x0, 0x0, 0x4, 0x90, 0x0, 0xa5, 0x0, 0x0,
- 0x0, 0x0, 0x6, 0x70, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0x0, 0x9, 0x80, 0x6, 0x80, 0x0, 0x0,
- 0x0, 0x0, 0xc, 0x60, 0xb, 0x86, 0xc7, 0x0,
- 0x0, 0x0, 0xd, 0x16, 0x0, 0x1, 0xe1, 0x0,
- 0x0, 0x0, 0x48, 0x8, 0x0, 0x8, 0x70, 0x0,
- 0x0, 0x0, 0xa3, 0x3, 0x70, 0x2c, 0x0, 0x0,
- 0x0, 0x1, 0xb0, 0x0, 0xa4, 0xc3, 0x0, 0x0,
- 0x0, 0x9, 0x30, 0x0, 0x1f, 0x70, 0x0, 0x0,
- 0x0, 0x57, 0x0, 0x1, 0xb8, 0xd3, 0x0, 0x0,
- 0x2, 0x70, 0x0, 0x79, 0x20, 0x3d, 0xa4, 0x0,
- 0x15, 0x3, 0x67, 0x20, 0x0, 0x0, 0x8f, 0x90,
- 0x0, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+53CB "友" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe3, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xf1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2, 0xd0, 0x0, 0x0, 0x9, 0x30,
- 0x6, 0x76, 0x69, 0xc6, 0x66, 0x66, 0x67, 0x50,
- 0x0, 0x0, 0x8, 0x70, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb, 0x40, 0x0, 0x2, 0x10, 0x0,
- 0x0, 0x0, 0xe, 0x86, 0x66, 0x6d, 0x80, 0x0,
- 0x0, 0x0, 0x4a, 0x16, 0x0, 0x1e, 0x0, 0x0,
- 0x0, 0x0, 0xa4, 0x8, 0x0, 0x88, 0x0, 0x0,
- 0x0, 0x2, 0xb0, 0x2, 0x91, 0xd1, 0x0, 0x0,
- 0x0, 0xa, 0x30, 0x0, 0x7d, 0x50, 0x0, 0x0,
- 0x0, 0x38, 0x0, 0x0, 0xac, 0xa1, 0x0, 0x0,
- 0x0, 0x90, 0x0, 0x3b, 0x50, 0x5e, 0x82, 0x0,
- 0x7, 0x10, 0x38, 0x70, 0x0, 0x2, 0xaf, 0xa1,
- 0x11, 0x4, 0x20, 0x0, 0x0, 0x0, 0x2, 0x0,
-
- /* U+53CD "反" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x26, 0xa1, 0x0,
- 0x0, 0x6, 0x46, 0x78, 0x9a, 0xa8, 0x73, 0x0,
- 0x0, 0xa, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa, 0x30, 0x0, 0x0, 0x0, 0x30, 0x0,
- 0x0, 0xa, 0x86, 0x86, 0x66, 0x66, 0xf5, 0x0,
- 0x0, 0xa, 0x30, 0x70, 0x0, 0x6, 0xc0, 0x0,
- 0x0, 0xb, 0x20, 0x53, 0x0, 0xd, 0x30, 0x0,
- 0x0, 0xc, 0x10, 0xa, 0x0, 0x89, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x2, 0xa4, 0xd0, 0x0, 0x0,
- 0x0, 0x3a, 0x0, 0x0, 0x7f, 0x30, 0x0, 0x0,
- 0x0, 0x93, 0x0, 0x4, 0xc9, 0xc3, 0x0, 0x0,
- 0x1, 0x90, 0x2, 0x98, 0x0, 0x3e, 0xb5, 0x0,
- 0x7, 0x3, 0x76, 0x0, 0x0, 0x0, 0x8f, 0xc2,
- 0x10, 0x11, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
-
- /* U+53D6 "取" */
- 0x0, 0x0, 0x0, 0x17, 0x0, 0x0, 0x0, 0x0,
- 0x16, 0xd6, 0x66, 0xe6, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0xc0, 0x0, 0xd3, 0x66, 0x66, 0x8b, 0x0,
- 0x0, 0xc0, 0x0, 0xd0, 0x22, 0x0, 0x89, 0x0,
- 0x0, 0xc6, 0x66, 0xd0, 0x5, 0x0, 0xb4, 0x0,
- 0x0, 0xc0, 0x0, 0xd0, 0x7, 0x0, 0xe0, 0x0,
- 0x0, 0xc0, 0x0, 0xd0, 0x8, 0x4, 0xa0, 0x0,
- 0x0, 0xc6, 0x66, 0xd0, 0x5, 0x3a, 0x50, 0x0,
- 0x0, 0xc0, 0x0, 0xd0, 0x1, 0xad, 0x0, 0x0,
- 0x0, 0xc0, 0x14, 0xe6, 0x30, 0xb7, 0x0, 0x0,
- 0x17, 0xec, 0x84, 0xd0, 0x1, 0xdc, 0x0, 0x0,
- 0x1a, 0x30, 0x0, 0xd0, 0xa, 0x25, 0xc2, 0x0,
- 0x0, 0x0, 0x0, 0xd0, 0x83, 0x0, 0x7f, 0x90,
- 0x0, 0x0, 0x0, 0xd6, 0x20, 0x0, 0x5, 0x30,
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
-
- /* U+53D7 "受" */
- 0x0, 0x0, 0x0, 0x0, 0x2, 0x5a, 0xb0, 0x0,
- 0x0, 0x25, 0x66, 0x89, 0xa9, 0x87, 0x51, 0x0,
- 0x0, 0x3, 0x0, 0x33, 0x0, 0xb, 0x60, 0x0,
- 0x0, 0x5, 0xa0, 0xd, 0x30, 0x1c, 0x0, 0x0,
- 0x0, 0x30, 0xe1, 0x9, 0x60, 0x82, 0x2, 0x0,
- 0x0, 0xa6, 0x86, 0x67, 0x66, 0x76, 0x6c, 0xb0,
- 0x4, 0xc0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x10,
- 0x6, 0x44, 0x66, 0x66, 0x66, 0xa8, 0x20, 0x0,
- 0x0, 0x0, 0x6, 0x0, 0x1, 0xe4, 0x0, 0x0,
- 0x0, 0x0, 0x1, 0x80, 0xa, 0x60, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x67, 0x99, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1e, 0xe1, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x7, 0xb3, 0x4d, 0x94, 0x20, 0x0,
- 0x0, 0x37, 0x83, 0x0, 0x0, 0x5b, 0xff, 0x91,
- 0x4, 0x20, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0,
-
- /* U+53E3 "口" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0x66, 0x66,
- 0x66, 0x66, 0xe3, 0xe0, 0x0, 0x0, 0x0, 0xe,
- 0xe, 0x0, 0x0, 0x0, 0x0, 0xe0, 0xe0, 0x0,
- 0x0, 0x0, 0xe, 0xe, 0x0, 0x0, 0x0, 0x0,
- 0xe0, 0xe0, 0x0, 0x0, 0x0, 0xe, 0xe, 0x0,
- 0x0, 0x0, 0x0, 0xe0, 0xe0, 0x0, 0x0, 0x0,
- 0xe, 0xe, 0x0, 0x0, 0x0, 0x0, 0xe0, 0xe6,
- 0x66, 0x66, 0x66, 0x6e, 0xd, 0x0, 0x0, 0x0,
- 0x0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+53E4 "古" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0x20, 0x47, 0x66,
- 0x66, 0x6e, 0x66, 0x66, 0x9b, 0x10, 0x0, 0x0,
- 0x0, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xe0, 0x0, 0x0, 0x0, 0x0, 0x19, 0x66, 0x6e,
- 0x66, 0x6b, 0x20, 0x0, 0x1, 0xd0, 0x0, 0x0,
- 0x0, 0xe0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0,
- 0xe, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0, 0x0,
- 0xe0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0xe,
- 0x0, 0x0, 0x1, 0xe6, 0x66, 0x66, 0x66, 0xe0,
- 0x0, 0x0, 0x1d, 0x0, 0x0, 0x0, 0xe, 0x0,
- 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x10, 0x0,
-
- /* U+53E5 "句" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2, 0xe2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x89, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1e, 0x76, 0x66, 0x66, 0x66, 0xb6, 0x0, 0xa,
- 0x40, 0x0, 0x0, 0x0, 0xa, 0x30, 0x4, 0x80,
- 0x0, 0x0, 0x0, 0x0, 0xa3, 0x2, 0x71, 0x20,
- 0x0, 0x6, 0x0, 0xa, 0x30, 0x50, 0x3d, 0x66,
- 0x66, 0xf1, 0x0, 0xa3, 0x0, 0x2, 0xb0, 0x0,
- 0xe, 0x0, 0xa, 0x30, 0x0, 0x2b, 0x0, 0x0,
- 0xe0, 0x0, 0xa3, 0x0, 0x2, 0xd6, 0x66, 0x6e,
- 0x0, 0xa, 0x30, 0x0, 0x3b, 0x0, 0x0, 0x80,
- 0x0, 0xb2, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0xc, 0x10, 0x0, 0x0, 0x0, 0x0, 0x21, 0x2,
- 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6d, 0xf6,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43, 0x0,
-
- /* U+53E6 "另" */
- 0x0, 0x9, 0x66, 0x66, 0x66, 0x6b, 0x0, 0x0,
- 0xe, 0x0, 0x0, 0x0, 0x2c, 0x0, 0x0, 0xe,
- 0x0, 0x0, 0x0, 0x2b, 0x0, 0x0, 0xe, 0x0,
- 0x0, 0x0, 0x2b, 0x0, 0x0, 0xe, 0x66, 0x66,
- 0x66, 0x7b, 0x0, 0x0, 0xc, 0x0, 0x94, 0x0,
- 0x27, 0x0, 0x0, 0x0, 0x0, 0xd3, 0x0, 0x0,
- 0x10, 0x6, 0x66, 0x66, 0xe6, 0x66, 0x67, 0xe0,
- 0x0, 0x0, 0x0, 0xe0, 0x0, 0x3, 0xb0, 0x0,
- 0x0, 0x3, 0xa0, 0x0, 0x3, 0xa0, 0x0, 0x0,
- 0x9, 0x40, 0x0, 0x4, 0xa0, 0x0, 0x0, 0x4a,
- 0x0, 0x0, 0x5, 0x80, 0x0, 0x6, 0x90, 0x0,
- 0x12, 0xa, 0x60, 0x4, 0x73, 0x0, 0x0, 0x5,
- 0xee, 0x10, 0x31, 0x0, 0x0, 0x0, 0x0, 0x21,
- 0x0,
-
- /* U+53EA "只" */
- 0x0, 0x4, 0x0, 0x0, 0x0, 0x52, 0x0, 0x0,
- 0xe6, 0x66, 0x66, 0x6c, 0x50, 0x0, 0xd, 0x0,
- 0x0, 0x0, 0xa3, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0xa, 0x30, 0x0, 0xd, 0x0, 0x0, 0x0, 0xa3,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0xa, 0x30, 0x0,
- 0xd, 0x0, 0x0, 0x0, 0xa3, 0x0, 0x1, 0xe6,
- 0x66, 0x66, 0x6c, 0x30, 0x0, 0x17, 0x4, 0x0,
- 0x20, 0x30, 0x0, 0x0, 0x7, 0xd1, 0x1, 0x91,
- 0x0, 0x0, 0x2, 0xd2, 0x0, 0x3, 0xd3, 0x0,
- 0x0, 0xb3, 0x0, 0x0, 0x6, 0xf2, 0x0, 0x93,
- 0x0, 0x0, 0x0, 0xc, 0x90, 0x82, 0x0, 0x0,
- 0x0, 0x0, 0x37, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+53EB "叫" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xb1, 0x0,
- 0x0, 0x0, 0x1, 0x10, 0x0, 0xd0, 0x1c, 0x66,
- 0xc6, 0x3, 0xd0, 0x0, 0xd0, 0xd, 0x0, 0xb2,
- 0x2, 0xb0, 0x0, 0xd0, 0xd, 0x0, 0xb2, 0x2,
- 0xb0, 0x0, 0xd0, 0xd, 0x0, 0xb2, 0x2, 0xb0,
- 0x0, 0xd0, 0xd, 0x0, 0xb2, 0x2, 0xb0, 0x0,
- 0xd0, 0xd, 0x0, 0xb2, 0x2, 0xb0, 0x0, 0xd0,
- 0xd, 0x0, 0xb2, 0x3, 0xb3, 0x76, 0xd0, 0xe,
- 0x66, 0xd2, 0x3, 0xf7, 0x0, 0xd0, 0x1d, 0x0,
- 0x91, 0x0, 0x10, 0x0, 0xd0, 0x6, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x30,
-
- /* U+53EF "可" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0,
- 0x6, 0x66, 0x66, 0x66, 0x66, 0x66, 0x6d, 0x90,
- 0x1, 0x0, 0x0, 0x0, 0x0, 0xc, 0x10, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0x10, 0x0,
- 0x0, 0xb, 0x66, 0x6c, 0x50, 0xc, 0x10, 0x0,
- 0x0, 0xe, 0x0, 0xb, 0x20, 0xc, 0x10, 0x0,
- 0x0, 0xe, 0x0, 0xb, 0x20, 0xc, 0x10, 0x0,
- 0x0, 0xe, 0x0, 0xb, 0x20, 0xc, 0x10, 0x0,
- 0x0, 0xe, 0x0, 0xb, 0x20, 0xc, 0x10, 0x0,
- 0x0, 0xe, 0x66, 0x6d, 0x30, 0xc, 0x10, 0x0,
- 0x0, 0xe, 0x0, 0x6, 0x10, 0xc, 0x10, 0x0,
- 0x0, 0x2, 0x0, 0x0, 0x0, 0xc, 0x10, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x25, 0x4e, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x3, 0xcb, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
-
- /* U+53F0 "台" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd4, 0x0, 0x0, 0x0, 0x0, 0x0, 0xaa,
- 0x10, 0x0, 0x0, 0x0, 0x0, 0x6a, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x4a, 0x0, 0x0, 0x65, 0x0,
- 0x0, 0x4a, 0x0, 0x0, 0x0, 0x7b, 0x20, 0x8e,
- 0x55, 0x66, 0x77, 0x66, 0xce, 0x16, 0xd9, 0x64,
- 0x21, 0x0, 0x0, 0xc1, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0x0, 0x0, 0x1d, 0x66, 0x66, 0x66, 0xc6,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0xb, 0x30, 0x0,
- 0xd, 0x0, 0x0, 0x0, 0xb3, 0x0, 0x0, 0xd0,
- 0x0, 0x0, 0xb, 0x30, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0xb3, 0x0, 0x0, 0xe6, 0x66, 0x66, 0x6c,
- 0x30, 0x0, 0x4, 0x0, 0x0, 0x0, 0x30, 0x0,
-
- /* U+53F2 "史" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xd1, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x0,
- 0x0, 0x2, 0x0, 0x0, 0xe0, 0x0, 0x3, 0x0,
- 0x0, 0xe, 0x66, 0x66, 0xe6, 0x66, 0x8d, 0x0,
- 0x0, 0xd, 0x10, 0x0, 0xe0, 0x0, 0x3a, 0x0,
- 0x0, 0xd, 0x10, 0x0, 0xe0, 0x0, 0x3a, 0x0,
- 0x0, 0xd, 0x66, 0x66, 0xe6, 0x66, 0x8b, 0x0,
- 0x0, 0xa, 0x0, 0x0, 0xc0, 0x0, 0x25, 0x0,
- 0x0, 0x0, 0x24, 0x2, 0xa0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x6, 0x46, 0x70, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x8d, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x7d, 0xc5, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2a, 0x80, 0x29, 0xeb, 0x86, 0x51,
- 0x0, 0x48, 0x81, 0x0, 0x0, 0x5, 0x9c, 0x80,
- 0x4, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+53F3 "右" */
- 0x0, 0x0, 0x0, 0x9, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1e, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x69, 0x0, 0x0, 0x8, 0x30,
- 0x7, 0x66, 0x66, 0xd7, 0x66, 0x66, 0x67, 0x60,
- 0x0, 0x0, 0x2, 0xd0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x9, 0x60, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2d, 0x0, 0x0, 0x0, 0x10, 0x0,
- 0x0, 0x0, 0xad, 0x66, 0x66, 0x66, 0xf2, 0x0,
- 0x0, 0x6, 0x6c, 0x10, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0x38, 0xc, 0x10, 0x0, 0x0, 0xe0, 0x0,
- 0x2, 0x70, 0xc, 0x10, 0x0, 0x0, 0xe0, 0x0,
- 0x14, 0x0, 0xc, 0x10, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0x0, 0xd, 0x66, 0x66, 0x66, 0xe0, 0x0,
- 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0xc0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+53F7 "号" */
- 0x0, 0x9, 0x66, 0x66, 0x66, 0xb3, 0x0, 0x0,
- 0xe, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0xe,
- 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0xe, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0xe, 0x66, 0x66,
- 0x66, 0xe0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0,
- 0x10, 0x31, 0x56, 0x66, 0x89, 0x66, 0x66, 0x66,
- 0x97, 0x0, 0x0, 0xa5, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x3, 0xe0, 0x0, 0x0, 0x34, 0x0, 0x0,
- 0x3, 0x96, 0x66, 0x66, 0xca, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc3, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x20,
- 0x5, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x2b, 0xdf,
- 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x72, 0x0,
- 0x0,
-
- /* U+53F8 "司" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x27,
- 0x66, 0x66, 0x66, 0x66, 0xe3, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x4,
- 0x20, 0xd0, 0x46, 0x66, 0x66, 0x66, 0x76, 0xd,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd0, 0x0,
- 0xb6, 0x66, 0x6e, 0x20, 0xd, 0x0, 0xc, 0x10,
- 0x0, 0xe0, 0x0, 0xd0, 0x0, 0xc1, 0x0, 0xe,
- 0x0, 0xd, 0x0, 0xc, 0x10, 0x0, 0xe0, 0x0,
- 0xd0, 0x0, 0xc6, 0x66, 0x6e, 0x0, 0xd, 0x0,
- 0x8, 0x0, 0x0, 0x40, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x0,
- 0x2, 0x8e, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x32, 0x0,
-
- /* U+5403 "吃" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa, 0x50, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1f, 0x20, 0x0, 0x0, 0x96, 0x6b, 0x50,
- 0x77, 0x0, 0x0, 0x30, 0xd1, 0xb, 0x30, 0xc6,
- 0x66, 0x66, 0xa4, 0xd1, 0xb, 0x36, 0x40, 0x0,
- 0x0, 0x0, 0xc1, 0xb, 0x46, 0x0, 0x0, 0x30,
- 0x0, 0xc1, 0xb, 0x54, 0x66, 0x67, 0xf5, 0x0,
- 0xc1, 0xb, 0x30, 0x0, 0xc, 0x60, 0x0, 0xc1,
- 0xb, 0x30, 0x0, 0xa8, 0x0, 0x0, 0xd6, 0x6c,
- 0x30, 0x8, 0xa0, 0x0, 0x0, 0xd1, 0x5, 0x10,
- 0x5c, 0x0, 0x0, 0x60, 0x10, 0x0, 0x1, 0xe1,
- 0x0, 0x0, 0x70, 0x0, 0x0, 0x5, 0xb0, 0x0,
- 0x0, 0xa6, 0x0, 0x0, 0x1, 0xcc, 0xcc, 0xcc,
- 0xf6,
-
- /* U+5404 "各" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x8, 0x90, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x1f, 0x86, 0x66, 0xb4, 0x0, 0x0,
- 0x0, 0x0, 0xb8, 0x0, 0x3, 0xd1, 0x0, 0x0,
- 0x0, 0x7, 0x63, 0x40, 0xc, 0x30, 0x0, 0x0,
- 0x0, 0x55, 0x0, 0x82, 0x88, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0xc0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x89, 0xb9, 0x20, 0x0, 0x0,
- 0x0, 0x0, 0x2a, 0x50, 0x5, 0xdc, 0x74, 0x10,
- 0x0, 0x7, 0xd6, 0x66, 0x66, 0xa8, 0xbe, 0x60,
- 0x5, 0x61, 0xd1, 0x0, 0x0, 0xb3, 0x0, 0x0,
- 0x0, 0x0, 0xd1, 0x0, 0x0, 0xb2, 0x0, 0x0,
- 0x0, 0x0, 0xd1, 0x0, 0x0, 0xb2, 0x0, 0x0,
- 0x0, 0x0, 0xd1, 0x0, 0x0, 0xb2, 0x0, 0x0,
- 0x0, 0x0, 0xd6, 0x66, 0x66, 0xd3, 0x0, 0x0,
- 0x0, 0x0, 0x70, 0x0, 0x0, 0x50, 0x0, 0x0,
-
- /* U+5408 "合" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x9, 0x70, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x2f, 0x80, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb6, 0x37, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x8, 0x90, 0x7, 0x70, 0x0, 0x0,
- 0x0, 0x0, 0x6a, 0x0, 0x0, 0x8a, 0x10, 0x0,
- 0x0, 0x9, 0x70, 0x0, 0x0, 0x38, 0xea, 0x40,
- 0x4, 0x82, 0x76, 0x66, 0x66, 0x98, 0x2b, 0x91,
- 0x12, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x30, 0x0, 0x0, 0x6, 0x0, 0x0,
- 0x0, 0x0, 0xf6, 0x66, 0x66, 0x6f, 0x10, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0x0, 0xe6, 0x66, 0x66, 0x6e, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0xc, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+540C "同" */
- 0x40, 0x0, 0x0, 0x0, 0x0, 0x5, 0xd, 0x66,
- 0x66, 0x66, 0x66, 0x66, 0xe2, 0xd1, 0x0, 0x0,
- 0x0, 0x0, 0xe, 0xc, 0x15, 0x66, 0x66, 0x6b,
- 0x90, 0xe0, 0xc1, 0x10, 0x0, 0x0, 0x0, 0xe,
- 0xc, 0x10, 0x20, 0x0, 0x3, 0x0, 0xe0, 0xc1,
- 0xd, 0x66, 0x66, 0xe1, 0xe, 0xc, 0x10, 0xd0,
- 0x0, 0xd, 0x0, 0xe0, 0xc1, 0xd, 0x0, 0x0,
- 0xd0, 0xe, 0xc, 0x10, 0xd6, 0x66, 0x6d, 0x0,
- 0xe0, 0xc1, 0xc, 0x0, 0x0, 0xa0, 0xe, 0xc,
- 0x10, 0x0, 0x0, 0x0, 0x0, 0xe0, 0xd1, 0x0,
- 0x0, 0x0, 0x22, 0x3e, 0xe, 0x10, 0x0, 0x0,
- 0x1, 0x7f, 0xa0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x30, 0x0,
-
- /* U+540D "名" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x4, 0xd0, 0x0, 0x1, 0x0, 0x0, 0x0, 0xd,
- 0x86, 0x66, 0x6c, 0xb0, 0x0, 0x0, 0x77, 0x0,
- 0x0, 0x3e, 0x10, 0x0, 0x4, 0x98, 0x10, 0x1,
- 0xd4, 0x0, 0x0, 0x47, 0x3, 0xe1, 0x1d, 0x50,
- 0x0, 0x1, 0x30, 0x0, 0x72, 0xd5, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x3d, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0xb, 0xe7, 0x66, 0x66, 0xb2, 0x0, 0x5,
- 0xae, 0x10, 0x0, 0x0, 0xe0, 0x5, 0x63, 0xc,
- 0x10, 0x0, 0x0, 0xe0, 0x0, 0x0, 0xc, 0x10,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0xc, 0x66, 0x66,
- 0x66, 0xe0, 0x0, 0x0, 0xc, 0x10, 0x0, 0x0,
- 0x90, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5411 "向" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x6, 0x90, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa4,
- 0x0, 0x0, 0x0, 0x4, 0x0, 0x8, 0x0, 0x0,
- 0x0, 0x60, 0xd6, 0x66, 0x66, 0x66, 0x66, 0x6f,
- 0x1c, 0x10, 0x0, 0x0, 0x0, 0x0, 0xe0, 0xc1,
- 0x3, 0x0, 0x0, 0x40, 0xe, 0xc, 0x10, 0xd6,
- 0x66, 0x8d, 0x0, 0xe0, 0xc1, 0xc, 0x10, 0x3,
- 0xa0, 0xe, 0xc, 0x10, 0xc1, 0x0, 0x3a, 0x0,
- 0xe0, 0xc1, 0xd, 0x66, 0x68, 0xa0, 0xe, 0xc,
- 0x10, 0xd1, 0x0, 0x39, 0x0, 0xe0, 0xc1, 0x1,
- 0x0, 0x0, 0x0, 0xe, 0xc, 0x10, 0x0, 0x0,
- 0x2, 0x34, 0xd0, 0xd1, 0x0, 0x0, 0x0, 0x15,
- 0xea, 0x4, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0,
-
- /* U+5426 "否" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x81, 0x18,
- 0x66, 0x66, 0x9c, 0x66, 0x66, 0x85, 0x0, 0x0,
- 0x1, 0xe8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1c,
- 0x6c, 0x31, 0x0, 0x0, 0x0, 0x1, 0xc4, 0x2b,
- 0x6, 0x94, 0x0, 0x0, 0x4b, 0x20, 0x2b, 0x0,
- 0x1b, 0xc1, 0x17, 0x60, 0x0, 0x3b, 0x0, 0x0,
- 0x89, 0x30, 0x0, 0x0, 0x26, 0x0, 0x1, 0x1,
- 0x0, 0xd, 0x66, 0x66, 0x66, 0x7e, 0x10, 0x0,
- 0xf, 0x0, 0x0, 0x0, 0x2c, 0x0, 0x0, 0xf,
- 0x0, 0x0, 0x0, 0x2c, 0x0, 0x0, 0xf, 0x0,
- 0x0, 0x0, 0x2c, 0x0, 0x0, 0xf, 0x66, 0x66,
- 0x66, 0x7c, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0,
- 0x2d, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x1,
- 0x0,
-
- /* U+5427 "吧" */
- 0x0, 0x0, 0x0, 0x95, 0x55, 0x55, 0xa1, 0x3,
- 0xb6, 0x6d, 0xe, 0x11, 0xe1, 0x2c, 0x0, 0x2b,
- 0x2, 0xc0, 0xe0, 0xe, 0x2, 0xc0, 0x2, 0xb0,
- 0x2c, 0xe, 0x0, 0xe0, 0x2c, 0x0, 0x2b, 0x2,
- 0xc0, 0xe0, 0xe, 0x2, 0xc0, 0x2, 0xb0, 0x2c,
- 0xe, 0x0, 0xe0, 0x2c, 0x0, 0x2b, 0x2, 0xc0,
- 0xe6, 0x66, 0x67, 0xc0, 0x2, 0xb0, 0x2c, 0xe,
- 0x0, 0x0, 0x1, 0x0, 0x3d, 0x67, 0xc0, 0xe0,
- 0x0, 0x0, 0x0, 0x3, 0xb0, 0x2c, 0xe, 0x0,
- 0x0, 0x0, 0x50, 0x38, 0x0, 0x10, 0xe0, 0x0,
- 0x0, 0x7, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0xd1, 0x0, 0x0, 0x0, 0x8d, 0xcc, 0xcc,
- 0xdd, 0x20,
-
- /* U+5440 "呀" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x2,
- 0x0, 0x3, 0x27, 0x66, 0x69, 0x7b, 0x20, 0xb7,
- 0x66, 0xe0, 0x30, 0x0, 0xe0, 0x0, 0xb, 0x20,
- 0x1d, 0xb, 0x60, 0xe, 0x0, 0x0, 0xb2, 0x1,
- 0xd0, 0xd0, 0x0, 0xe0, 0x0, 0xb, 0x20, 0x1d,
- 0x3a, 0x0, 0xe, 0x5, 0x30, 0xb2, 0x1, 0xd5,
- 0x86, 0x7e, 0xe6, 0x65, 0xb, 0x20, 0x1d, 0x0,
- 0x9, 0x7e, 0x0, 0x0, 0xb7, 0x66, 0xd0, 0x2,
- 0xd0, 0xe0, 0x0, 0xb, 0x20, 0x9, 0x0, 0xc3,
- 0xe, 0x0, 0x0, 0x70, 0x0, 0x0, 0x95, 0x0,
- 0xe0, 0x0, 0x0, 0x0, 0x0, 0x74, 0x0, 0xe,
- 0x0, 0x0, 0x0, 0x0, 0x63, 0x2, 0x23, 0xe0,
- 0x0, 0x0, 0x0, 0x40, 0x0, 0x16, 0xf9, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0,
- 0x0,
-
- /* U+544A "告" */
- 0x0, 0x2, 0x0, 0x1b, 0x10, 0x0, 0x0, 0x0,
- 0xc, 0x60, 0x1e, 0x0, 0x0, 0x0, 0x0, 0x3b,
- 0x0, 0xe, 0x0, 0x46, 0x0, 0x0, 0xa6, 0x66,
- 0x6e, 0x66, 0x65, 0x0, 0x5, 0x40, 0x0, 0xe,
- 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0xe, 0x0,
- 0x0, 0x50, 0x47, 0x66, 0x66, 0x6a, 0x66, 0x67,
- 0xb5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1a, 0x66, 0x66, 0x66, 0xb6, 0x0, 0x0,
- 0xd, 0x0, 0x0, 0x0, 0xa3, 0x0, 0x0, 0xd,
- 0x0, 0x0, 0x0, 0xa3, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0x0, 0xa3, 0x0, 0x0, 0xe, 0x66, 0x66,
- 0x66, 0xc3, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0,
- 0xa3, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+5462 "呢" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x60, 0x86,
- 0x6b, 0x21, 0xe6, 0x66, 0x66, 0xe1, 0xb2, 0xe,
- 0x0, 0xd0, 0x0, 0x0, 0xe0, 0xb2, 0xe, 0x0,
- 0xd0, 0x0, 0x0, 0xe0, 0xb2, 0xe, 0x0, 0xe6,
- 0x66, 0x66, 0xe0, 0xb2, 0xe, 0x1, 0xc0, 0x20,
- 0x0, 0x20, 0xb2, 0xe, 0x2, 0xb0, 0xe1, 0x1,
- 0x40, 0xb2, 0xe, 0x4, 0x90, 0xd0, 0xb, 0xa0,
- 0xb7, 0x6e, 0x7, 0x60, 0xd0, 0x96, 0x0, 0xb2,
- 0xd, 0xb, 0x20, 0xe7, 0x30, 0x0, 0xc2, 0x2,
- 0xc, 0x0, 0xe0, 0x0, 0x32, 0x10, 0x0, 0x75,
- 0x0, 0xd0, 0x0, 0x44, 0x0, 0x0, 0x90, 0x0,
- 0xe3, 0x11, 0x9a, 0x0, 0x7, 0x10, 0x0, 0x5a,
- 0xaa, 0x93, 0x0, 0x12, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+5468 "周" */
- 0x0, 0x9, 0x66, 0x66, 0x66, 0x66, 0x6c, 0x10,
- 0x0, 0xd0, 0x0, 0x4, 0x0, 0x0, 0xd0, 0x0,
- 0xd, 0x0, 0x0, 0xd0, 0x0, 0xc, 0x0, 0x0,
- 0xd0, 0x0, 0xc, 0x7, 0x0, 0xc0, 0x0, 0xd,
- 0x5, 0x76, 0xd6, 0x63, 0xc, 0x0, 0x0, 0xd0,
- 0x0, 0xc, 0x0, 0x50, 0xc0, 0x0, 0xd, 0x47,
- 0x66, 0x76, 0x67, 0x2c, 0x0, 0x1, 0xc0, 0x13,
- 0x0, 0x6, 0x0, 0xc0, 0x0, 0x3a, 0x1, 0xd6,
- 0x66, 0xe1, 0xc, 0x0, 0x5, 0x60, 0x1b, 0x0,
- 0xd, 0x0, 0xc0, 0x0, 0x92, 0x1, 0xb0, 0x0,
- 0xd0, 0xc, 0x0, 0xa, 0x0, 0x1d, 0x66, 0x6d,
- 0x0, 0xc0, 0x6, 0x30, 0x1, 0x40, 0x0, 0x30,
- 0x2c, 0x1, 0x50, 0x0, 0x0, 0x0, 0x3, 0x9f,
- 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x30,
- 0x0,
-
- /* U+5473 "味" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x20, 0x0, 0x0, 0x0,
- 0x1, 0x0, 0x0, 0xe0, 0x0, 0x0, 0xb, 0x66,
- 0xe2, 0x0, 0xd, 0x0, 0x71, 0x0, 0xd1, 0xe,
- 0x6, 0x76, 0xe6, 0x66, 0x30, 0xc, 0x10, 0xe0,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0xc1, 0xe, 0x0,
- 0x0, 0xd0, 0x0, 0x51, 0xc, 0x10, 0xe5, 0x76,
- 0x9f, 0x86, 0x68, 0x60, 0xc1, 0xe, 0x0, 0xd,
- 0xf4, 0x20, 0x0, 0xc, 0x66, 0xe0, 0x5, 0x9d,
- 0x9, 0x0, 0x0, 0xd1, 0xb, 0x1, 0xc0, 0xd0,
- 0x75, 0x0, 0x7, 0x0, 0x0, 0xa2, 0xd, 0x0,
- 0xd5, 0x0, 0x0, 0x0, 0x83, 0x0, 0xd0, 0x3,
- 0xfa, 0x10, 0x0, 0x72, 0x0, 0xd, 0x0, 0x4,
- 0x10, 0x0, 0x30, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0,
-
- /* U+547C "呼" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x40, 0x1,
- 0x0, 0x30, 0x1, 0x37, 0xac, 0xa7, 0x0, 0xb7,
- 0x6e, 0x33, 0x42, 0x1e, 0x0, 0x0, 0xa, 0x20,
- 0xe0, 0x41, 0x0, 0xe0, 0x9, 0x60, 0xa2, 0xe,
- 0x0, 0xc1, 0xe, 0x2, 0xc0, 0xa, 0x20, 0xe0,
- 0x8, 0x80, 0xe0, 0x91, 0x0, 0xa2, 0xe, 0x0,
- 0x23, 0xe, 0x21, 0x1, 0xa, 0x20, 0xe4, 0x76,
- 0x66, 0xe6, 0x69, 0xa0, 0xa2, 0xe, 0x0, 0x0,
- 0xe, 0x0, 0x0, 0xa, 0x76, 0xe0, 0x0, 0x0,
- 0xe0, 0x0, 0x0, 0xb2, 0xa, 0x0, 0x0, 0xe,
- 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0xe0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x21, 0x1d, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x1, 0x8f, 0x90, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x30, 0x0, 0x0,
- 0x0,
-
- /* U+547D "命" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x7, 0xa0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1e, 0x80, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc4, 0x18, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa, 0x50, 0x4, 0xa1, 0x0, 0x0,
- 0x0, 0x0, 0xa4, 0x0, 0x1, 0x6d, 0x82, 0x0,
- 0x0, 0x49, 0x37, 0x66, 0x66, 0x61, 0xaf, 0xb1,
- 0x6, 0x40, 0x0, 0x10, 0x1, 0x0, 0x33, 0x0,
- 0x0, 0xd, 0x66, 0xd2, 0xd, 0x66, 0xe3, 0x0,
- 0x0, 0xd, 0x0, 0xd0, 0xd, 0x0, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0xd0, 0xd, 0x0, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0xd0, 0xd, 0x0, 0xd0, 0x0,
- 0x0, 0xe, 0x66, 0xe0, 0xd, 0x0, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0xa0, 0xd, 0x5c, 0xc0, 0x0,
- 0x0, 0x5, 0x0, 0x0, 0xd, 0x1, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
-
- /* U+548C "和" */
- 0x0, 0x0, 0x0, 0x38, 0x0, 0x0, 0x0, 0x0,
- 0x2, 0x48, 0xca, 0x81, 0x10, 0x0, 0x10, 0x0,
- 0x31, 0xd, 0x0, 0xc, 0x66, 0x6c, 0x60, 0x0,
- 0x0, 0xd0, 0x0, 0xc2, 0x0, 0xb3, 0x2, 0x66,
- 0x6e, 0x6a, 0x5c, 0x20, 0xb, 0x30, 0x0, 0x8,
- 0xd0, 0x0, 0xc2, 0x0, 0xb3, 0x0, 0x0, 0xde,
- 0x50, 0xc, 0x20, 0xb, 0x30, 0x0, 0x68, 0xd4,
- 0xd3, 0xc2, 0x0, 0xb3, 0x0, 0xb, 0xd, 0x4,
- 0x8c, 0x20, 0xb, 0x30, 0x8, 0x20, 0xd0, 0x0,
- 0xc2, 0x0, 0xb3, 0x4, 0x40, 0xd, 0x0, 0xc,
- 0x76, 0x6c, 0x30, 0x30, 0x0, 0xd0, 0x0, 0xc2,
- 0x0, 0xa3, 0x0, 0x0, 0xd, 0x0, 0x7, 0x0,
- 0x0, 0x0, 0x0, 0x1, 0xe0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+54B2 "咲" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x18, 0x0, 0x3, 0xb1, 0x0, 0x30,
- 0x4, 0x0, 0x7b, 0x0, 0x97, 0x0, 0xe, 0x66,
- 0xe2, 0x0, 0xe1, 0x9, 0x0, 0x0, 0xe0, 0xe,
- 0x0, 0x2, 0x5, 0x11, 0x80, 0xe, 0x0, 0xe0,
- 0x76, 0x6d, 0x76, 0x66, 0x20, 0xe0, 0xe, 0x0,
- 0x0, 0xd1, 0x0, 0x0, 0xe, 0x0, 0xe0, 0x0,
- 0xe, 0x0, 0x0, 0x10, 0xe0, 0xe, 0x57, 0x66,
- 0xe6, 0x66, 0xaa, 0xe, 0x0, 0xe0, 0x0, 0x2c,
- 0x60, 0x0, 0x0, 0xe6, 0x6e, 0x0, 0x6, 0x84,
- 0x30, 0x0, 0xb, 0x0, 0x30, 0x0, 0xb3, 0xa,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x4a, 0x0, 0x95,
- 0x0, 0x0, 0x0, 0x0, 0x2a, 0x10, 0x1, 0xe4,
- 0x0, 0x0, 0x0, 0x57, 0x0, 0x0, 0x5, 0xfa,
- 0x0, 0x0, 0x41, 0x0, 0x0, 0x0, 0x4, 0x10,
-
- /* U+54C1 "品" */
- 0x0, 0x4, 0x0, 0x0, 0x2, 0x30, 0x0, 0x0,
- 0xc, 0x76, 0x66, 0x69, 0xa0, 0x0, 0x0, 0xb,
- 0x20, 0x0, 0x5, 0x70, 0x0, 0x0, 0xb, 0x20,
- 0x0, 0x5, 0x70, 0x0, 0x0, 0xb, 0x20, 0x0,
- 0x5, 0x80, 0x0, 0x0, 0xc, 0x76, 0x66, 0x69,
- 0x80, 0x0, 0x0, 0x5, 0x0, 0x0, 0x2, 0x10,
- 0x0, 0x9, 0x66, 0x7a, 0x0, 0x96, 0x66, 0xb1,
- 0xe, 0x0, 0x3c, 0x0, 0xd0, 0x0, 0xe0, 0xe,
- 0x0, 0x3b, 0x0, 0xd0, 0x0, 0xe0, 0xe, 0x0,
- 0x3b, 0x0, 0xd0, 0x0, 0xe0, 0xe, 0x0, 0x3c,
- 0x0, 0xd0, 0x0, 0xe0, 0xe, 0x66, 0x8c, 0x0,
- 0xe6, 0x66, 0xe0, 0xd, 0x0, 0x26, 0x1, 0xb0,
- 0x0, 0xa0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+54E1 "員" */
- 0x0, 0x3, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0,
- 0xc6, 0x66, 0x66, 0x6e, 0x0, 0x0, 0xc, 0x10,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0xc6, 0x66, 0x66,
- 0x6d, 0x0, 0x0, 0xb, 0x0, 0x0, 0x0, 0x90,
- 0x0, 0xa, 0x66, 0x66, 0x66, 0x66, 0xc1, 0x0,
- 0xe0, 0x0, 0x0, 0x0, 0xd, 0x0, 0xe, 0x66,
- 0x66, 0x66, 0x66, 0xd0, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0xe, 0x66, 0x66, 0x66, 0x66,
- 0xd0, 0x0, 0xe0, 0x0, 0x0, 0x0, 0xd, 0x0,
- 0xe, 0x66, 0x66, 0x66, 0x66, 0xd0, 0x0, 0x40,
- 0x2c, 0x20, 0x65, 0x1, 0x0, 0x0, 0x4c, 0x50,
- 0x0, 0x5d, 0x91, 0x2, 0x75, 0x0, 0x0, 0x0,
- 0xa, 0xb1, 0x30, 0x0, 0x0, 0x0, 0x0, 0x3,
-
- /* U+54EA "哪" */
- 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x1,
- 0x0, 0x17, 0x78, 0x6e, 0x1c, 0x68, 0xc0, 0xc6,
- 0x7c, 0x2, 0x90, 0xd0, 0xc0, 0x85, 0xc, 0x2,
- 0x90, 0x29, 0xd, 0xc, 0x9, 0x0, 0xc0, 0x29,
- 0x37, 0xb6, 0xd0, 0xc1, 0x50, 0xc, 0x2, 0x90,
- 0x29, 0xd, 0xc, 0x51, 0x0, 0xc0, 0x29, 0x3,
- 0x80, 0xd0, 0xc0, 0x80, 0xc, 0x2, 0x90, 0x38,
- 0xc, 0xc, 0x5, 0x50, 0xc6, 0x79, 0x5a, 0x96,
- 0xd0, 0xc0, 0xb, 0xc, 0x2, 0x70, 0xa1, 0xd,
- 0xc, 0x0, 0xc0, 0xb0, 0x0, 0x1a, 0x0, 0xc0,
- 0xc5, 0x7c, 0x0, 0x0, 0x8, 0x20, 0x3a, 0xc,
- 0xa, 0x20, 0x0, 0x4, 0x62, 0x9c, 0x50, 0xc0,
- 0x0, 0x0, 0x3, 0x50, 0x2, 0x50, 0xc, 0x0,
- 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+5546 "商" */
- 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2, 0xc2, 0x0, 0x0, 0x10, 0x5,
- 0x66, 0x66, 0x6c, 0x86, 0x66, 0x9e, 0x20, 0x10,
- 0x6, 0x0, 0x0, 0x29, 0x0, 0x0, 0x0, 0x0,
- 0x3d, 0x0, 0x8, 0x40, 0x0, 0x0, 0x8, 0x66,
- 0xd6, 0x66, 0xa6, 0x6a, 0x40, 0x0, 0xd0, 0x2,
- 0x20, 0x10, 0x0, 0xa2, 0x0, 0xd, 0x0, 0xb7,
- 0x0, 0x9a, 0x1a, 0x20, 0x0, 0xd0, 0x75, 0x0,
- 0x0, 0x87, 0xa2, 0x0, 0xd, 0x33, 0x96, 0x66,
- 0xb3, 0xa, 0x20, 0x0, 0xd0, 0xd, 0x0, 0xb,
- 0x10, 0xa2, 0x0, 0xd, 0x0, 0xd0, 0x0, 0xb1,
- 0xa, 0x20, 0x0, 0xd0, 0xd, 0x66, 0x6d, 0x10,
- 0xa2, 0x0, 0xd, 0x0, 0xb0, 0x0, 0x60, 0xa,
- 0x20, 0x0, 0xd0, 0x0, 0x0, 0x0, 0x3a, 0xf1,
- 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x14, 0x0,
-
- /* U+554A "啊" */
- 0x0, 0x0, 0x53, 0x54, 0x0, 0x0, 0x25, 0x9,
- 0x69, 0x2c, 0x3a, 0x65, 0x66, 0x6e, 0x50, 0xc0,
- 0xc0, 0xc0, 0xa0, 0x0, 0x0, 0xd0, 0xc, 0xc,
- 0xc, 0x8, 0x0, 0x0, 0xd, 0x0, 0xc0, 0xc0,
- 0xc4, 0x30, 0xc6, 0xd1, 0xd0, 0xc, 0xc, 0xc,
- 0x31, 0xc, 0xc, 0xd, 0x0, 0xc0, 0xc0, 0xc0,
- 0x80, 0xc0, 0xc0, 0xd0, 0xc, 0xc, 0xc, 0x6,
- 0x5c, 0xc, 0xd, 0x0, 0xc6, 0xd0, 0xc0, 0x57,
- 0xd5, 0xd0, 0xd0, 0xc, 0x9, 0xc, 0x6b, 0x5a,
- 0x6, 0xd, 0x0, 0x70, 0x0, 0xc1, 0x70, 0x0,
- 0x0, 0xd0, 0x0, 0x0, 0xc, 0x0, 0x0, 0x0,
- 0xd, 0x0, 0x0, 0x0, 0xc0, 0x0, 0x1, 0x42,
- 0xd0, 0x0, 0x0, 0xc, 0x0, 0x0, 0x2, 0xd9,
- 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+554F "問" */
- 0x1a, 0x66, 0x6a, 0x50, 0x96, 0x66, 0xa3, 0xd,
- 0x0, 0x9, 0x50, 0xd0, 0x0, 0xc1, 0xd, 0x0,
- 0x9, 0x40, 0xd0, 0x0, 0xc1, 0xe, 0x66, 0x6b,
- 0x40, 0xd6, 0x66, 0xd1, 0xd, 0x0, 0x9, 0x40,
- 0xd0, 0x0, 0xc1, 0xe, 0x66, 0x6b, 0x40, 0xd6,
- 0x66, 0xd1, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc1, 0xd, 0x0, 0x96, 0x66, 0x6a, 0x0, 0xc1,
- 0xd, 0x0, 0xd0, 0x0, 0x9, 0x0, 0xc1, 0xd,
- 0x0, 0xd0, 0x0, 0x9, 0x0, 0xc1, 0xd, 0x0,
- 0xd6, 0x66, 0x69, 0x0, 0xc1, 0xd, 0x0, 0xd0,
- 0x0, 0x9, 0x0, 0xc1, 0xd, 0x0, 0x0, 0x0,
- 0x1, 0x22, 0xe0, 0xd, 0x0, 0x0, 0x0, 0x0,
- 0x4d, 0xc0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1,
- 0x0,
-
- /* U+5566 "啦" */
- 0x0, 0x0, 0x2, 0x80, 0x1, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x2a, 0x0, 0xb, 0x10, 0x0, 0x10,
- 0x10, 0x2, 0xa0, 0x0, 0x88, 0x0, 0xc, 0x6c,
- 0x60, 0x2a, 0x61, 0x14, 0x45, 0x40, 0xd0, 0xa3,
- 0x88, 0xc5, 0x36, 0x55, 0x54, 0xd, 0xa, 0x20,
- 0x2a, 0x0, 0x0, 0x7, 0x0, 0xd0, 0xa2, 0x2,
- 0xa1, 0x44, 0x0, 0xf2, 0xd, 0xa, 0x20, 0x3d,
- 0x50, 0x90, 0x2c, 0x0, 0xd0, 0xa6, 0xbb, 0xa0,
- 0xa, 0x24, 0x80, 0xd, 0x6c, 0x34, 0x2a, 0x0,
- 0x77, 0x73, 0x0, 0xd0, 0xa2, 0x2, 0xa0, 0x5,
- 0x69, 0x0, 0x9, 0x0, 0x0, 0x2a, 0x0, 0x0,
- 0x80, 0x0, 0x0, 0x1, 0x15, 0xa0, 0x0, 0x6,
- 0x17, 0x0, 0x0, 0x28, 0xf6, 0x37, 0x66, 0x66,
- 0x71, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+5584 "善" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x7, 0x40, 0x0, 0xb3, 0x0, 0x0,
- 0x0, 0x0, 0x1, 0xf0, 0x5, 0x60, 0x4, 0x0,
- 0x0, 0x76, 0x66, 0x96, 0x98, 0x66, 0x7b, 0x30,
- 0x0, 0x0, 0x0, 0x2, 0xb0, 0x0, 0x80, 0x0,
- 0x0, 0x7, 0x76, 0x67, 0xd6, 0x66, 0x62, 0x0,
- 0x3, 0x66, 0x66, 0x67, 0xd6, 0x66, 0x6b, 0xa0,
- 0x0, 0x10, 0x80, 0x2, 0xb0, 0x8, 0x40, 0x0,
- 0x0, 0x0, 0x78, 0x2, 0xb0, 0x1a, 0x10, 0x20,
- 0x5, 0x66, 0x78, 0x67, 0xc6, 0x96, 0x68, 0xe4,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0,
- 0x0, 0x0, 0xd6, 0x66, 0x66, 0x69, 0xa0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0x5, 0x80, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0x5, 0x80, 0x0,
- 0x0, 0x0, 0xe6, 0x66, 0x66, 0x69, 0x80, 0x0,
- 0x0, 0x0, 0x40, 0x0, 0x0, 0x2, 0x20, 0x0,
-
- /* U+5589 "喉" */
- 0x0, 0x0, 0x0, 0x81, 0x0, 0x1, 0x0, 0x0,
- 0x0, 0x0, 0x2c, 0x16, 0x6a, 0xa0, 0x0, 0x96,
- 0x6d, 0x6, 0x60, 0x0, 0x94, 0x0, 0xa, 0x11,
- 0xb0, 0xa0, 0x0, 0xc, 0x4, 0x30, 0xa1, 0x1b,
- 0x1d, 0x38, 0xa6, 0x66, 0x64, 0xa, 0x11, 0xb7,
- 0xc0, 0x4a, 0x0, 0x1, 0x0, 0xa1, 0x1b, 0x6c,
- 0x9, 0x69, 0x67, 0x90, 0xa, 0x11, 0xb0, 0xc2,
- 0x40, 0xc0, 0x0, 0x0, 0xa1, 0x1b, 0xc, 0x32,
- 0x2d, 0x22, 0x45, 0xa, 0x66, 0xb0, 0xc4, 0x44,
- 0xd8, 0x44, 0x30, 0xb1, 0x7, 0xc, 0x0, 0x2a,
- 0x71, 0x0, 0x4, 0x0, 0x0, 0xc0, 0x8, 0x41,
- 0xa0, 0x0, 0x0, 0x0, 0xc, 0x2, 0x90, 0x8,
- 0x90, 0x0, 0x0, 0x0, 0xd2, 0x70, 0x0, 0xb,
- 0x90, 0x0, 0x0, 0x3, 0x20, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+559C "喜" */
- 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x56, 0x66, 0x6d, 0x66, 0x66, 0xd8, 0x0,
- 0x0, 0x10, 0x0, 0xc, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0x66, 0x6d, 0x66, 0x7d, 0x20, 0x0,
- 0x0, 0x0, 0x50, 0x0, 0x0, 0x5, 0x0, 0x0,
- 0x0, 0x0, 0xe6, 0x66, 0x66, 0x6e, 0x10, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x0, 0xd8, 0x66, 0x68, 0x7b, 0x0, 0x0,
- 0x0, 0x0, 0x5, 0x90, 0x9, 0x50, 0x1, 0x0,
- 0x6, 0x66, 0x66, 0xb6, 0x69, 0x66, 0x6d, 0x80,
- 0x1, 0x0, 0x30, 0x0, 0x0, 0x4, 0x0, 0x0,
- 0x0, 0x0, 0xe6, 0x66, 0x66, 0x6d, 0x30, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0xc, 0x10, 0x0,
- 0x0, 0x0, 0xe6, 0x66, 0x66, 0x6d, 0x10, 0x0,
- 0x0, 0x0, 0x60, 0x0, 0x0, 0x5, 0x0, 0x0,
-
- /* U+559D "喝" */
- 0x0, 0x0, 0x5, 0x76, 0x66, 0x6b, 0x30, 0x62,
- 0x28, 0x6, 0x70, 0x0, 0xe, 0x0, 0xc4, 0x3e,
- 0x16, 0xa6, 0x66, 0x6e, 0x0, 0xc1, 0xe, 0x6,
- 0x70, 0x0, 0xe, 0x0, 0xc1, 0xe, 0x6, 0xa6,
- 0x66, 0x6e, 0x0, 0xc1, 0xe, 0x5, 0x97, 0x0,
- 0x5, 0x0, 0xc1, 0xe, 0x0, 0xd3, 0x0, 0x0,
- 0x41, 0xc1, 0xe, 0x9, 0x76, 0x97, 0x66, 0xd6,
- 0xc6, 0x6d, 0x6c, 0x0, 0xd5, 0x0, 0xc2, 0xc1,
- 0x6, 0x4c, 0x6, 0x78, 0x50, 0xd1, 0x60, 0x1,
- 0xc, 0x36, 0x0, 0xc0, 0xe0, 0x0, 0x0, 0xc,
- 0x10, 0x1, 0x60, 0xe0, 0x0, 0x0, 0x2a, 0x66,
- 0x66, 0x52, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x4,
- 0xae, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x16,
- 0x0,
-
- /* U+55AE "單" */
- 0x0, 0x20, 0x4, 0x0, 0x30, 0x1, 0x20, 0x0,
- 0xe, 0x66, 0xe2, 0xe, 0x66, 0x8a, 0x0, 0x0,
- 0xd0, 0xd, 0x0, 0xd0, 0x4, 0x80, 0x0, 0xd,
- 0x0, 0xd0, 0xd, 0x0, 0x48, 0x0, 0x0, 0xc6,
- 0x6a, 0x0, 0xd6, 0x67, 0x60, 0x0, 0x5, 0x76,
- 0x66, 0x76, 0x66, 0xc0, 0x0, 0x0, 0x66, 0x0,
- 0x68, 0x0, 0xc, 0x0, 0x0, 0x6, 0x96, 0x6a,
- 0xb6, 0x66, 0xc0, 0x0, 0x0, 0x66, 0x0, 0x68,
- 0x0, 0xc, 0x0, 0x0, 0x6, 0x60, 0x6, 0x80,
- 0x0, 0xc0, 0x0, 0x0, 0x68, 0x66, 0xab, 0x66,
- 0x6b, 0x0, 0x0, 0x0, 0x0, 0x6, 0x80, 0x0,
- 0x3, 0x80, 0x57, 0x66, 0x66, 0xab, 0x66, 0x66,
- 0x66, 0x10, 0x0, 0x0, 0x6, 0x80, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x68, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x5, 0x40, 0x0, 0x0, 0x0,
-
- /* U+55B6 "営" */
- 0x0, 0x3, 0x10, 0x17, 0x0, 0x8, 0x0, 0x0,
- 0x0, 0xc, 0x30, 0xa5, 0x4, 0xb1, 0x0, 0x0,
- 0x0, 0x59, 0x5, 0x70, 0x90, 0x0, 0x0, 0x3,
- 0x0, 0x0, 0x0, 0x21, 0x0, 0x40, 0x0, 0xb6,
- 0x66, 0x66, 0x66, 0x66, 0x6e, 0x70, 0x78, 0x5,
- 0x66, 0x66, 0x6a, 0x31, 0x70, 0x6, 0x10, 0x75,
- 0x0, 0x0, 0xa2, 0x10, 0x0, 0x0, 0x7, 0x50,
- 0x0, 0xa, 0x20, 0x0, 0x0, 0x0, 0x79, 0x66,
- 0x66, 0xa2, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xc, 0x66, 0x66, 0x66,
- 0x68, 0xb0, 0x0, 0x0, 0xd0, 0x0, 0x0, 0x0,
- 0x48, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x4,
- 0x80, 0x0, 0x0, 0xe6, 0x66, 0x66, 0x66, 0x88,
- 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x2, 0x30,
- 0x0,
-
- /* U+55CE "嗎" */
- 0x30, 0x4, 0x6, 0x33, 0x33, 0x33, 0xa1, 0xe,
- 0x66, 0xe1, 0xd3, 0x33, 0xd3, 0x33, 0x10, 0xd0,
- 0xd, 0xd, 0x0, 0xd, 0x1, 0x40, 0xd, 0x0,
- 0xd0, 0xd6, 0x66, 0xe6, 0x66, 0x0, 0xd0, 0xd,
- 0xd, 0x0, 0xd, 0x0, 0x20, 0xd, 0x0, 0xd0,
- 0xd6, 0x66, 0xe6, 0x6a, 0x10, 0xd0, 0xd, 0xd,
- 0x0, 0xd, 0x0, 0x0, 0xd, 0x0, 0xd0, 0xd5,
- 0x65, 0xd6, 0x67, 0xd0, 0xe6, 0x6e, 0x7, 0x0,
- 0x0, 0x0, 0x1b, 0xd, 0x0, 0x20, 0x1, 0x3,
- 0x5, 0x62, 0xa0, 0x20, 0x0, 0x6, 0x64, 0x1b,
- 0xc, 0x79, 0x0, 0x0, 0x5, 0x61, 0xd0, 0xa3,
- 0x69, 0x70, 0x0, 0x0, 0xd2, 0x9, 0x2, 0x0,
- 0x95, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38, 0xce,
- 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x20,
- 0x0,
-
- /* U+55EF "嗯" */
- 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x40, 0x8,
- 0x66, 0xb1, 0xd6, 0x67, 0x66, 0x8c, 0x0, 0xb1,
- 0xd, 0xd, 0x0, 0x69, 0x3, 0x90, 0xb, 0x10,
- 0xd0, 0xd3, 0x69, 0x9a, 0x59, 0x0, 0xb1, 0xd,
- 0xd, 0x0, 0x94, 0x3, 0x90, 0xb, 0x10, 0xd0,
- 0xd0, 0x2b, 0x69, 0x39, 0x0, 0xb1, 0xd, 0xd,
- 0x28, 0x0, 0x95, 0x90, 0xb, 0x66, 0xd0, 0xd6,
- 0x55, 0x55, 0x7a, 0x0, 0xb1, 0xd, 0x8, 0x0,
- 0x20, 0x2, 0x40, 0xc, 0x10, 0x10, 0x3, 0x5,
- 0xa0, 0x11, 0x0, 0x30, 0x0, 0x60, 0xb7, 0xc,
- 0x10, 0xa6, 0x0, 0x0, 0x1d, 0xb, 0x30, 0x0,
- 0x51, 0xe1, 0x0, 0x8, 0x80, 0xb4, 0x0, 0xa,
- 0x4, 0x0, 0x0, 0x0, 0x6, 0xdb, 0xbb, 0xd2,
- 0x0,
-
- /* U+561B "嘛" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa, 0x20, 0x0, 0x0, 0x0,
- 0x10, 0x20, 0x0, 0x57, 0x0, 0x50, 0xd, 0x6d,
- 0x2c, 0x66, 0x76, 0x68, 0x78, 0x20, 0xd0, 0xd0,
- 0xc1, 0xd, 0x0, 0x94, 0x0, 0xd, 0xd, 0xc,
- 0x10, 0xc0, 0x9, 0x20, 0x0, 0xd0, 0xd0, 0xc6,
- 0x6d, 0xa4, 0xc7, 0xb3, 0xd, 0xd, 0xd, 0x13,
- 0xc0, 0xd, 0x70, 0x0, 0xd0, 0xd0, 0xd0, 0x8d,
- 0x92, 0xf8, 0x0, 0xe, 0x6e, 0x1b, 0xc, 0xc6,
- 0x9d, 0x81, 0x0, 0xd0, 0x84, 0x76, 0x5c, 0x9,
- 0x94, 0x90, 0x6, 0x0, 0x83, 0x80, 0xc4, 0x49,
- 0x2b, 0x40, 0x0, 0x8, 0x70, 0xc, 0x50, 0x92,
- 0x38, 0x0, 0x6, 0x20, 0x0, 0xc0, 0x9, 0x20,
- 0x0, 0x2, 0x30, 0x0, 0xc, 0x0, 0xa3, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0,
-
- /* U+56B4 "嚴" */
- 0x0, 0x3, 0x0, 0x4, 0x2, 0x0, 0x2, 0x0,
- 0x0, 0xb7, 0x66, 0xd0, 0xb6, 0x66, 0xc0, 0x0,
- 0xa, 0x30, 0xc, 0xb, 0x0, 0xb, 0x0, 0x0,
- 0xb7, 0x66, 0xd0, 0xb6, 0x66, 0xb0, 0x0, 0x34,
- 0x0, 0x2, 0x3, 0x0, 0x8, 0x20, 0xa, 0x76,
- 0x66, 0x66, 0x68, 0x66, 0x64, 0x0, 0xa3, 0x18,
- 0x6d, 0x10, 0xd4, 0x0, 0x0, 0xa, 0x20, 0x1,
- 0xa1, 0x1b, 0x0, 0x41, 0x0, 0xb4, 0x7a, 0x68,
- 0xb8, 0x86, 0xaa, 0x30, 0xc, 0x11, 0xc6, 0x88,
- 0x85, 0x9, 0x30, 0x0, 0xd0, 0x1a, 0x4, 0x94,
- 0x60, 0xc0, 0x0, 0xc, 0x1, 0xc6, 0x88, 0x2,
- 0x9a, 0x0, 0x2, 0x80, 0x1a, 0x4, 0x83, 0xc,
- 0x70, 0x0, 0x62, 0x37, 0xd8, 0x9a, 0x6, 0x6b,
- 0x50, 0x7, 0x5, 0x61, 0x4, 0x85, 0x50, 0x1c,
- 0x80, 0x10, 0x0, 0x0, 0x12, 0x10, 0x0, 0x0,
-
- /* U+56DB "四" */
- 0x40, 0x0, 0x0, 0x0, 0x0, 0x6, 0xd, 0x66,
- 0x6e, 0x66, 0xe6, 0x66, 0xf1, 0xd1, 0x1, 0xc0,
- 0xe, 0x0, 0xe, 0xd, 0x10, 0x1c, 0x0, 0xe0,
- 0x0, 0xe0, 0xd1, 0x1, 0xb0, 0xe, 0x0, 0xe,
- 0xd, 0x10, 0x3a, 0x0, 0xe0, 0x0, 0xe0, 0xd1,
- 0x5, 0x80, 0xe, 0x0, 0xe, 0xd, 0x10, 0x85,
- 0x0, 0xe0, 0x0, 0xe0, 0xd1, 0xc, 0x0, 0xd,
- 0x10, 0xe, 0xd, 0x17, 0x50, 0x0, 0x7c, 0xd8,
- 0xe0, 0xd6, 0x50, 0x0, 0x0, 0x0, 0xe, 0xd,
- 0x30, 0x0, 0x0, 0x0, 0x0, 0xe0, 0xd6, 0x66,
- 0x66, 0x66, 0x66, 0x6e, 0xd, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x3, 0x0,
-
- /* U+56DE "回" */
- 0x10, 0x0, 0x0, 0x0, 0x0, 0x2, 0xc, 0x66,
- 0x66, 0x66, 0x66, 0x66, 0xe1, 0xd1, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0xc, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0xd0, 0xc1, 0x9, 0x66, 0x66, 0xb1, 0xd,
- 0xc, 0x10, 0xd0, 0x0, 0xe, 0x0, 0xd0, 0xc1,
- 0xd, 0x0, 0x0, 0xd0, 0xd, 0xc, 0x10, 0xd0,
- 0x0, 0xd, 0x0, 0xd0, 0xc1, 0xd, 0x66, 0x66,
- 0xe0, 0xd, 0xc, 0x10, 0xd0, 0x0, 0xb, 0x0,
- 0xd0, 0xc1, 0x1, 0x0, 0x0, 0x0, 0xd, 0xc,
- 0x10, 0x0, 0x0, 0x0, 0x0, 0xd0, 0xd6, 0x66,
- 0x66, 0x66, 0x66, 0x6d, 0xd, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0xb0, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+56E0 "因" */
- 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0xe,
- 0x66, 0x66, 0x66, 0x66, 0x66, 0xe2, 0xd, 0x0,
- 0x0, 0xb4, 0x0, 0x0, 0xe0, 0xd, 0x0, 0x0,
- 0xc1, 0x0, 0x0, 0xe0, 0xd, 0x0, 0x0, 0xc1,
- 0x1, 0x50, 0xe0, 0xd, 0x18, 0x66, 0xe6, 0x67,
- 0x81, 0xe0, 0xd, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0xe0, 0xd, 0x0, 0x1, 0xd7, 0x0, 0x0, 0xe0,
- 0xd, 0x0, 0x7, 0x72, 0xc2, 0x0, 0xe0, 0xd,
- 0x0, 0xc, 0x0, 0x5e, 0x10, 0xe0, 0xd, 0x0,
- 0x93, 0x0, 0xc, 0x50, 0xe0, 0xd, 0x16, 0x20,
- 0x0, 0x2, 0x10, 0xe0, 0xd, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0xe, 0x66, 0x66, 0x66, 0x66,
- 0x66, 0xe0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x30,
-
- /* U+56F0 "困" */
- 0xa6, 0x66, 0x66, 0x66, 0x66, 0x6b, 0x1e, 0x0,
- 0x0, 0x28, 0x0, 0x0, 0xe0, 0xe0, 0x0, 0x2,
- 0xc0, 0x0, 0xe, 0xe, 0x0, 0x0, 0x2b, 0x0,
- 0x10, 0xe0, 0xe1, 0x76, 0x69, 0xd6, 0x6d, 0x3e,
- 0xe, 0x0, 0x2, 0xfb, 0x0, 0x0, 0xe0, 0xe0,
- 0x0, 0x97, 0xd3, 0x0, 0xe, 0xe, 0x0, 0x3b,
- 0x2b, 0x5b, 0x20, 0xe0, 0xe0, 0xa, 0x12, 0xb0,
- 0x5f, 0x1e, 0xe, 0x8, 0x20, 0x2b, 0x0, 0x91,
- 0xe0, 0xe5, 0x10, 0x2, 0xb0, 0x0, 0xe, 0xe,
- 0x0, 0x0, 0x3c, 0x0, 0x0, 0xe0, 0xe0, 0x0,
- 0x1, 0x20, 0x0, 0xe, 0xe, 0x66, 0x66, 0x66,
- 0x66, 0x66, 0xe0, 0x50, 0x0, 0x0, 0x0, 0x0,
- 0x2, 0x0,
-
- /* U+56F3 "図" */
- 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x14, 0x0,
- 0xe6, 0x66, 0x66, 0x66, 0x66, 0x67, 0xd0, 0xd,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x3b, 0x0, 0xd0,
- 0x0, 0x1, 0x70, 0x2, 0x3, 0xb0, 0xd, 0x0,
- 0x2a, 0x29, 0x61, 0xf2, 0x3b, 0x0, 0xd0, 0x6,
- 0x4c, 0x36, 0x89, 0x3, 0xb0, 0xd, 0x0, 0x35,
- 0x60, 0x1d, 0x0, 0x3b, 0x0, 0xd0, 0x0, 0x82,
- 0xa, 0x50, 0x3, 0xb0, 0xd, 0x0, 0x1, 0xb5,
- 0xa0, 0x0, 0x3b, 0x0, 0xd0, 0x0, 0x5, 0xf2,
- 0x0, 0x3, 0xb0, 0xd, 0x0, 0x2, 0xa5, 0xd5,
- 0x0, 0x3b, 0x0, 0xd0, 0x5, 0x80, 0x2, 0xdd,
- 0x84, 0xb0, 0xd, 0x16, 0x30, 0x0, 0x0, 0x65,
- 0x3b, 0x0, 0xd1, 0x0, 0x0, 0x0, 0x0, 0x3,
- 0xb0, 0xe, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7b,
- 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x1, 0x30,
-
- /* U+56FD "国" */
- 0x96, 0x66, 0x66, 0x66, 0x66, 0x6b, 0x1d, 0x10,
- 0x0, 0x0, 0x0, 0x0, 0xe0, 0xc1, 0x56, 0x66,
- 0x66, 0x7d, 0x2e, 0xc, 0x11, 0x0, 0xc1, 0x0,
- 0x0, 0xe0, 0xc1, 0x0, 0xc, 0x10, 0x0, 0xe,
- 0xc, 0x10, 0x0, 0xc1, 0x7, 0x20, 0xe0, 0xc1,
- 0x46, 0x6d, 0x76, 0x64, 0xe, 0xc, 0x10, 0x0,
- 0xc1, 0x96, 0x0, 0xe0, 0xc1, 0x0, 0xc, 0x10,
- 0xe2, 0xe, 0xc, 0x10, 0x0, 0xc1, 0x3, 0x30,
- 0xe0, 0xc3, 0x86, 0x6b, 0x66, 0x8c, 0x3e, 0xc,
- 0x10, 0x0, 0x0, 0x0, 0x0, 0xe0, 0xd6, 0x66,
- 0x66, 0x66, 0x66, 0x6e, 0xd, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0xc0, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+570B "國" */
- 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x14, 0x0,
- 0xe6, 0x66, 0x66, 0x76, 0x66, 0x67, 0xc0, 0xd,
- 0x0, 0x0, 0x6, 0xb8, 0x0, 0x3a, 0x0, 0xd0,
- 0x0, 0x0, 0x56, 0x76, 0x33, 0xa0, 0xd, 0x28,
- 0x66, 0x69, 0x96, 0x7b, 0x5a, 0x0, 0xd0, 0x0,
- 0x0, 0x47, 0x0, 0x3, 0xa0, 0xd, 0xa, 0x66,
- 0xc3, 0x80, 0x74, 0x3a, 0x0, 0xd0, 0xc0, 0xc,
- 0xa, 0xc, 0x23, 0xa0, 0xd, 0xc, 0x0, 0xc0,
- 0xb2, 0x90, 0x3a, 0x0, 0xd0, 0xc6, 0x6b, 0x8,
- 0xc2, 0x3, 0xa0, 0xd, 0x3, 0x0, 0x32, 0x4e,
- 0x2, 0x6a, 0x0, 0xd2, 0x89, 0x72, 0x2a, 0x6a,
- 0x93, 0xa0, 0xd, 0x17, 0x0, 0x38, 0x0, 0x6f,
- 0x4a, 0x0, 0xd0, 0x0, 0x13, 0x0, 0x0, 0x24,
- 0xa0, 0xe, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7a,
- 0x0, 0x60, 0x0, 0x0, 0x0, 0x0, 0x1, 0x30,
-
- /* U+570D "圍" */
- 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0xe,
- 0x66, 0x66, 0x76, 0x66, 0x66, 0xd4, 0xd, 0x0,
- 0x0, 0xe1, 0x0, 0x0, 0xc1, 0xd, 0x0, 0x0,
- 0xc0, 0x6, 0x0, 0xc1, 0xd, 0x3, 0x78, 0xc6,
- 0x6d, 0x10, 0xc1, 0xd, 0x23, 0x37, 0x93, 0x3c,
- 0x75, 0xc1, 0xd, 0x24, 0x53, 0x33, 0x37, 0x32,
- 0xc1, 0xd, 0x0, 0xc6, 0x66, 0x6d, 0x10, 0xc1,
- 0xd, 0x0, 0xb5, 0x59, 0x5b, 0x0, 0xc1, 0xd,
- 0x4, 0x66, 0x6e, 0x68, 0x80, 0xc1, 0xd, 0x1,
- 0xc0, 0xd, 0x0, 0x10, 0xc1, 0xd, 0x7, 0xa6,
- 0x6e, 0x67, 0xc0, 0xc1, 0xd, 0x0, 0x0, 0xd,
- 0x0, 0x0, 0xc1, 0xd, 0x0, 0x0, 0x8, 0x0,
- 0x0, 0xc1, 0xe, 0x66, 0x66, 0x66, 0x66, 0x66,
- 0xd1, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40,
-
- /* U+5712 "園" */
- 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0xe,
- 0x66, 0x66, 0x96, 0x66, 0x66, 0xe2, 0xd, 0x0,
- 0x0, 0xc3, 0x0, 0x0, 0xd0, 0xd, 0x0, 0x56,
- 0xd6, 0x6d, 0x10, 0xd0, 0xd, 0x0, 0x10, 0xb1,
- 0x0, 0x30, 0xd0, 0xd, 0x18, 0x66, 0x86, 0x66,
- 0x93, 0xd0, 0xd, 0x0, 0x86, 0x66, 0x6a, 0x20,
- 0xd0, 0xd, 0x0, 0xd0, 0x0, 0xd, 0x0, 0xd0,
- 0xd, 0x0, 0xe6, 0x66, 0x6e, 0x0, 0xd0, 0xd,
- 0x0, 0x5b, 0x30, 0x4, 0x90, 0xd0, 0xd, 0x0,
- 0x7d, 0x33, 0x7, 0x50, 0xd0, 0xd, 0x6, 0x58,
- 0x13, 0xb8, 0x0, 0xd0, 0xd, 0x41, 0x8, 0x10,
- 0x9, 0xc0, 0xd0, 0xd, 0x0, 0x5, 0x0, 0x0,
- 0x50, 0xd0, 0xe, 0x66, 0x66, 0x66, 0x66, 0x66,
- 0xe0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x30,
-
- /* U+5718 "團" */
- 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x30, 0xe,
- 0x66, 0x66, 0x68, 0x66, 0x66, 0xc4, 0xd, 0x0,
- 0x0, 0x1c, 0x0, 0x13, 0xb3, 0xd, 0x19, 0x77,
- 0x7d, 0x77, 0x76, 0xb3, 0xd, 0x2, 0x86, 0x6d,
- 0x66, 0xc0, 0xb3, 0xd, 0x2, 0xb4, 0x4d, 0x44,
- 0xc0, 0xb3, 0xd, 0x2, 0xa2, 0x3c, 0x22, 0xc0,
- 0xb3, 0xd, 0x2, 0xa6, 0x6d, 0x6a, 0x70, 0xb3,
- 0xd, 0x3, 0x56, 0x7c, 0x57, 0xc4, 0xb3, 0xd,
- 0x2, 0x52, 0x0, 0x86, 0x24, 0xb3, 0xd, 0x7,
- 0x77, 0x66, 0xb9, 0x92, 0xb3, 0xd, 0x0, 0xa,
- 0x10, 0x85, 0x0, 0xb3, 0xd, 0x0, 0x5, 0x56,
- 0xc4, 0x0, 0xb3, 0xd, 0x0, 0x0, 0x3, 0xa0,
- 0x0, 0xb3, 0xe, 0x66, 0x66, 0x66, 0x66, 0x66,
- 0xc3, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40,
-
- /* U+571F "土" */
- 0x0, 0x0, 0x0, 0xa, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x20, 0x0, 0x10, 0x0,
- 0x1, 0x66, 0x66, 0x6d, 0x76, 0x66, 0xe6, 0x0,
- 0x0, 0x20, 0x0, 0xc, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x20, 0x0, 0x3, 0x0,
- 0x27, 0x66, 0x66, 0x6c, 0x76, 0x66, 0x6d, 0x80,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5723 "圣" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x10, 0x0,
- 0x0, 0x6, 0x78, 0x66, 0x66, 0x8f, 0x70, 0x0,
- 0x0, 0x0, 0x5, 0x20, 0x0, 0xc7, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x84, 0xa, 0x90, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x8, 0xca, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x2c, 0x9c, 0x83, 0x0, 0x0,
- 0x0, 0x0, 0x29, 0x92, 0x60, 0x6d, 0xfc, 0xa2,
- 0x2, 0x57, 0x50, 0x1, 0xf1, 0x0, 0x16, 0x40,
- 0x2, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x10, 0x0,
- 0x0, 0x6, 0x66, 0x66, 0xf6, 0x66, 0xd8, 0x0,
- 0x0, 0x1, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x4, 0x70,
- 0x5, 0x76, 0x66, 0x66, 0x76, 0x66, 0x67, 0x71,
-
- /* U+5728 "在" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x5c, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x97, 0x0, 0x0, 0x1, 0x0,
- 0x5, 0x66, 0x66, 0xf6, 0x66, 0x66, 0x8f, 0x40,
- 0x1, 0x10, 0x7, 0x80, 0x3, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x1d, 0x0, 0xe, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0xb4, 0x0, 0xd, 0x0, 0x0, 0x0,
- 0x0, 0xb, 0x80, 0x0, 0xd, 0x0, 0x23, 0x0,
- 0x0, 0x5f, 0x14, 0x76, 0x6e, 0x66, 0x88, 0x0,
- 0x4, 0x6c, 0x10, 0x0, 0xd, 0x0, 0x0, 0x0,
- 0x33, 0xc, 0x10, 0x0, 0xd, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x10, 0x0, 0xd, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x10, 0x0, 0xd, 0x0, 0x1, 0x0,
- 0x0, 0xc, 0x37, 0x66, 0x6d, 0x66, 0x6c, 0x90,
- 0x0, 0xd, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5730 "地" */
- 0x0, 0x5, 0x0, 0x0, 0x2, 0xb0, 0x0, 0x0,
- 0x0, 0xe, 0x10, 0x0, 0x1, 0xb0, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0xc, 0x1, 0xb0, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0xd, 0x1, 0xb0, 0x7, 0x0,
- 0x0, 0xe, 0x1, 0xd, 0x1, 0xc6, 0x6e, 0x0,
- 0x8, 0x6e, 0x7a, 0xd, 0x56, 0xc0, 0xc, 0x0,
- 0x0, 0xe, 0x4, 0x6d, 0x1, 0xb0, 0xc, 0x0,
- 0x0, 0xe, 0x12, 0xd, 0x1, 0xb0, 0xc, 0x0,
- 0x0, 0xe, 0x0, 0xd, 0x1, 0xb0, 0xc, 0x0,
- 0x0, 0xe, 0x0, 0xd, 0x1, 0xb5, 0x9b, 0x0,
- 0x0, 0xe, 0x3, 0x2d, 0x2, 0xc0, 0x73, 0x40,
- 0x0, 0x4f, 0x82, 0xd, 0x1, 0x40, 0x0, 0x70,
- 0x2e, 0xa2, 0x0, 0xd, 0x0, 0x0, 0x0, 0xc2,
- 0x2, 0x0, 0x0, 0xa, 0xcc, 0xcc, 0xcd, 0xe3,
-
- /* U+5747 "均" */
- 0x0, 0xa, 0x20, 0x0, 0x86, 0x0, 0x0, 0x0,
- 0x0, 0xd1, 0x0, 0xd, 0x30, 0x0, 0x0, 0x0,
- 0xd, 0x0, 0x2, 0xc0, 0x0, 0x2, 0x0, 0x0,
- 0xd0, 0x0, 0x88, 0x66, 0x66, 0xc6, 0x16, 0x6e,
- 0x6b, 0x2a, 0x0, 0x0, 0xa, 0x30, 0x0, 0xd0,
- 0x7, 0x23, 0x70, 0x0, 0xb2, 0x0, 0xd, 0x0,
- 0x30, 0x9, 0x90, 0xb, 0x20, 0x0, 0xd0, 0x0,
- 0x0, 0x2e, 0x0, 0xc2, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x15, 0xd, 0x10, 0x0, 0xd1, 0x65, 0x0,
- 0x58, 0x10, 0xe0, 0x1, 0x6e, 0x81, 0x6, 0xc5,
- 0x0, 0xf, 0x3, 0xf9, 0x10, 0x9, 0xc1, 0x0,
- 0x1, 0xe0, 0x2, 0x0, 0x0, 0x0, 0x3, 0x21,
- 0x8a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0xfe,
- 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0,
- 0x0,
-
- /* U+574A "坊" */
- 0x0, 0x7, 0x20, 0x0, 0x37, 0x0, 0x0, 0x0,
- 0x0, 0xd2, 0x0, 0x0, 0x9a, 0x0, 0x0, 0x0,
- 0xc, 0x10, 0x0, 0x2, 0xc0, 0x0, 0x0, 0x0,
- 0xc1, 0x5, 0x66, 0x66, 0x66, 0xd6, 0x0, 0xc,
- 0x17, 0x10, 0xb4, 0x0, 0x0, 0x0, 0x66, 0xd6,
- 0x61, 0xc, 0x30, 0x0, 0x0, 0x0, 0xc, 0x10,
- 0x0, 0xd7, 0x66, 0xa9, 0x0, 0x0, 0xc1, 0x0,
- 0xf, 0x10, 0x9, 0x60, 0x0, 0xc, 0x10, 0x1,
- 0xe0, 0x0, 0xa4, 0x0, 0x0, 0xc1, 0x34, 0x69,
- 0x0, 0xc, 0x30, 0x1, 0x5e, 0x93, 0xc, 0x30,
- 0x0, 0xd1, 0x2, 0xf9, 0x20, 0x5, 0x90, 0x0,
- 0xe, 0x0, 0x1, 0x0, 0x2, 0xa0, 0x3, 0x4,
- 0xc0, 0x0, 0x0, 0x4, 0x70, 0x0, 0x4d, 0xf6,
- 0x0, 0x0, 0x2, 0x20, 0x0, 0x0, 0x13, 0x0,
- 0x0,
-
- /* U+5750 "坐" */
- 0x0, 0x0, 0x0, 0x9, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0x10, 0xa, 0x30, 0x2, 0x10, 0x0,
- 0x0, 0x8, 0xc0, 0xa, 0x30, 0x8, 0xc0, 0x0,
- 0x0, 0xc, 0x40, 0xa, 0x30, 0xd, 0x40, 0x0,
- 0x0, 0x1f, 0x0, 0xa, 0x30, 0x3e, 0x20, 0x0,
- 0x0, 0x87, 0xb3, 0xa, 0x30, 0x93, 0xa5, 0x0,
- 0x0, 0xb0, 0x3f, 0x1a, 0x32, 0x90, 0x1f, 0x20,
- 0x7, 0x20, 0x9, 0xa, 0x37, 0x0, 0x8, 0x10,
- 0x23, 0x0, 0x0, 0xa, 0x51, 0x2, 0x30, 0x0,
- 0x0, 0x27, 0x66, 0x6c, 0x86, 0x69, 0xa1, 0x0,
- 0x0, 0x0, 0x0, 0xa, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa, 0x30, 0x0, 0x9, 0x20,
- 0x28, 0x66, 0x66, 0x67, 0x66, 0x66, 0x69, 0x70,
-
- /* U+578B "型" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x23, 0x0, 0x0, 0xc1, 0x6, 0x6b,
- 0x6b, 0x87, 0x4, 0x10, 0xd0, 0x0, 0x1b, 0xb,
- 0x10, 0xb, 0x30, 0xd0, 0x0, 0x1b, 0xb, 0x16,
- 0xb, 0x10, 0xd0, 0x47, 0x7c, 0x6d, 0x78, 0x4b,
- 0x10, 0xd0, 0x0, 0x48, 0xb, 0x10, 0xb, 0x10,
- 0xd0, 0x0, 0x93, 0xb, 0x10, 0x6, 0x0, 0xd0,
- 0x2, 0xa0, 0xb, 0x20, 0x2, 0x33, 0xd0, 0x18,
- 0x0, 0x7, 0x62, 0x0, 0x5e, 0x80, 0x30, 0x0,
- 0x0, 0xa5, 0x0, 0x3, 0x0, 0x0, 0x67, 0x66,
- 0xc8, 0x66, 0x9c, 0x10, 0x0, 0x0, 0x0, 0xa3,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa3, 0x0,
- 0x0, 0x30, 0x46, 0x66, 0x66, 0xc8, 0x66, 0x67,
- 0xf7, 0x11, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+57DF "域" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x8, 0x10, 0x0, 0x0, 0x76, 0x54, 0x0,
- 0x0, 0xe, 0x0, 0x0, 0x0, 0x75, 0xc, 0x40,
- 0x0, 0xe, 0x0, 0x0, 0x0, 0x75, 0x2, 0x70,
- 0x0, 0xe, 0x5, 0x76, 0x66, 0xa9, 0x67, 0x82,
- 0x5, 0x6e, 0x98, 0x0, 0x0, 0x76, 0x0, 0x0,
- 0x1, 0xe, 0x0, 0xb6, 0x7c, 0x66, 0xb, 0x30,
- 0x0, 0xe, 0x0, 0xc0, 0x29, 0x57, 0x1e, 0x0,
- 0x0, 0xe, 0x0, 0xc0, 0x29, 0x49, 0x77, 0x0,
- 0x0, 0xe, 0x0, 0xc6, 0x79, 0x1c, 0xc1, 0x0,
- 0x0, 0xe, 0x44, 0x50, 0x1, 0xe, 0x90, 0x0,
- 0x19, 0xc9, 0x20, 0x0, 0x45, 0x2e, 0x70, 0x4,
- 0x7, 0x10, 0x2a, 0xb7, 0x20, 0xb4, 0xe3, 0x34,
- 0x0, 0x0, 0x5, 0x0, 0x1a, 0x30, 0x4e, 0xb3,
- 0x0, 0x0, 0x0, 0x3, 0x81, 0x0, 0x4, 0xe3,
- 0x0, 0x0, 0x0, 0x12, 0x0, 0x0, 0x0, 0x11,
-
- /* U+57F7 "執" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc1, 0x0, 0x1, 0xa1, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x10, 0x1, 0xc0, 0x0, 0x0,
- 0x3, 0x66, 0xe6, 0xa2, 0x1, 0xc0, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x1, 0xc0, 0x25, 0x0,
- 0x0, 0x0, 0xd0, 0x24, 0x57, 0xd5, 0x8c, 0x0,
- 0x7, 0xb6, 0x66, 0x95, 0x2, 0xb0, 0x57, 0x0,
- 0x0, 0x69, 0x4, 0xb0, 0x45, 0xa0, 0x76, 0x0,
- 0x0, 0x8, 0x7, 0x50, 0xa, 0xb0, 0x85, 0x0,
- 0x5, 0x76, 0xe6, 0x63, 0x9, 0xcb, 0x84, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0xc, 0x8, 0x94, 0x0,
- 0x7, 0x66, 0xe6, 0x99, 0x3a, 0x0, 0x85, 0x10,
- 0x0, 0x0, 0xd0, 0x0, 0xa1, 0x0, 0x58, 0x60,
- 0x0, 0x0, 0xe0, 0x6, 0x50, 0x0, 0x1d, 0xb0,
- 0x0, 0x0, 0xe0, 0x64, 0x0, 0x0, 0x4, 0xf1,
- 0x0, 0x0, 0x12, 0x10, 0x0, 0x0, 0x0, 0x11,
-
- /* U+57FA "基" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2a, 0x0, 0x0, 0xb3, 0x0, 0x0,
- 0x0, 0x0, 0x1c, 0x0, 0x0, 0xc2, 0x18, 0x0,
- 0x0, 0x66, 0x6d, 0x66, 0x66, 0xd7, 0x66, 0x20,
- 0x0, 0x0, 0x1d, 0x66, 0x66, 0xd2, 0x0, 0x0,
- 0x0, 0x0, 0x1c, 0x0, 0x0, 0xc2, 0x0, 0x0,
- 0x0, 0x0, 0x1d, 0x66, 0x66, 0xd2, 0x0, 0x0,
- 0x0, 0x0, 0x1c, 0x0, 0x0, 0xc2, 0x5, 0x0,
- 0x6, 0x76, 0x6d, 0x66, 0x66, 0xb6, 0x7c, 0x90,
- 0x0, 0x0, 0x2c, 0x9, 0x30, 0x91, 0x0, 0x0,
- 0x0, 0x2, 0xb1, 0xb, 0x20, 0x1b, 0x83, 0x0,
- 0x0, 0x57, 0x46, 0x6c, 0x76, 0xd3, 0x7e, 0xb1,
- 0x5, 0x10, 0x0, 0xb, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x20, 0x0, 0x11, 0x0,
- 0x0, 0x56, 0x66, 0x6c, 0x76, 0x66, 0xcc, 0x0,
- 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5831 "報" */
- 0x0, 0x0, 0xb0, 0x0, 0x30, 0x0, 0x3, 0x0,
- 0x0, 0x0, 0xd0, 0x10, 0xd6, 0x66, 0x6d, 0x30,
- 0x3, 0x76, 0xe6, 0x91, 0xd0, 0x0, 0xd, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0xd0, 0x0, 0x1d, 0x0,
- 0x15, 0x66, 0xe6, 0x98, 0xd0, 0x7, 0xe8, 0x0,
- 0x1, 0x60, 0x4, 0x50, 0xd0, 0x0, 0x21, 0x0,
- 0x0, 0x4b, 0x9, 0x20, 0xd7, 0x55, 0x5d, 0x50,
- 0x3, 0x6c, 0x69, 0xa3, 0xd3, 0x20, 0x2d, 0x0,
- 0x0, 0x10, 0xd0, 0x0, 0xd0, 0x80, 0x94, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0xd0, 0x66, 0xb0, 0x0,
- 0x17, 0x66, 0xe6, 0x98, 0xd0, 0xf, 0x30, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0xd0, 0x78, 0xb0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0xd5, 0x40, 0x6d, 0x50,
- 0x0, 0x0, 0xe0, 0x0, 0xd2, 0x0, 0x7, 0x60,
- 0x0, 0x0, 0x40, 0x0, 0x40, 0x0, 0x0, 0x0,
-
- /* U+5834 "場" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x10, 0x9, 0x66, 0x66, 0x6b, 0x10,
- 0x0, 0xe, 0x0, 0xd, 0x0, 0x0, 0xe, 0x0,
- 0x0, 0xe, 0x0, 0xd, 0x66, 0x66, 0x6e, 0x0,
- 0x0, 0xe, 0x0, 0xd, 0x0, 0x0, 0xe, 0x0,
- 0x18, 0x6e, 0x6b, 0x2e, 0x66, 0x66, 0x6e, 0x0,
- 0x0, 0xe, 0x0, 0x8, 0x0, 0x0, 0x7, 0x10,
- 0x0, 0xe, 0x2, 0x76, 0x76, 0x66, 0x66, 0xd3,
- 0x0, 0xe, 0x0, 0x2, 0xd1, 0x0, 0x0, 0x10,
- 0x0, 0xe, 0x1, 0x2b, 0x7b, 0x79, 0x98, 0xb0,
- 0x0, 0xe, 0x76, 0x92, 0x4a, 0xd, 0x26, 0x70,
- 0x18, 0xc7, 0x4, 0x2, 0xa0, 0x78, 0x8, 0x40,
- 0x9, 0x10, 0x0, 0x47, 0x4, 0xa0, 0xb, 0x20,
- 0x0, 0x0, 0x2, 0x20, 0x58, 0x0, 0xd, 0x0,
- 0x0, 0x0, 0x0, 0x17, 0x40, 0x19, 0xd8, 0x0,
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x1, 0x60, 0x0,
-
- /* U+584A "塊" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa, 0x10, 0x0, 0x8, 0x70, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0x30, 0x19, 0x0, 0x4, 0x0,
- 0x0, 0xe, 0x0, 0xc6, 0x68, 0xc6, 0x6f, 0x10,
- 0x0, 0xe, 0x0, 0xb1, 0x3, 0xa0, 0xe, 0x0,
- 0x5, 0x6e, 0x88, 0xb6, 0x68, 0xc6, 0x6e, 0x0,
- 0x1, 0xe, 0x0, 0xb1, 0x4, 0x90, 0xe, 0x0,
- 0x0, 0xe, 0x0, 0xb1, 0x6, 0x70, 0xe, 0x0,
- 0x0, 0xe, 0x0, 0xc6, 0x6c, 0xd6, 0x6d, 0x0,
- 0x0, 0xe, 0x0, 0x20, 0xd, 0xb1, 0x41, 0x0,
- 0x0, 0xe, 0x66, 0x0, 0x68, 0xa1, 0xa1, 0x0,
- 0x4, 0x9a, 0x10, 0x2, 0xc0, 0xa6, 0x28, 0x0,
- 0xb, 0x40, 0x0, 0x1b, 0x20, 0xab, 0x79, 0x90,
- 0x0, 0x0, 0x2, 0xa2, 0x0, 0xa2, 0x1, 0x90,
- 0x0, 0x0, 0x55, 0x0, 0x0, 0x6c, 0xaa, 0xc2,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5869 "塩" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1c, 0x10, 0x0, 0xb3, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x0, 0x2, 0xc0, 0x0, 0x2, 0x0,
- 0x0, 0xc, 0x0, 0x8, 0x86, 0x66, 0x6c, 0x40,
- 0x0, 0xc, 0x0, 0x9, 0x0, 0x0, 0x0, 0x0,
- 0x7, 0x7d, 0x78, 0x66, 0x76, 0x66, 0x7a, 0x0,
- 0x0, 0xc, 0x0, 0x16, 0x60, 0x0, 0x39, 0x0,
- 0x0, 0xc, 0x0, 0x6, 0x60, 0x0, 0x39, 0x0,
- 0x0, 0xc, 0x0, 0x6, 0x96, 0x66, 0x89, 0x0,
- 0x0, 0xc, 0x0, 0x12, 0x0, 0x0, 0x2, 0x0,
- 0x0, 0xd, 0x66, 0x4b, 0x6a, 0x6a, 0x6e, 0x20,
- 0x4, 0xaa, 0x20, 0x2b, 0xc, 0xc, 0xd, 0x0,
- 0x9, 0x40, 0x0, 0x2b, 0xc, 0xc, 0xd, 0x0,
- 0x0, 0x0, 0x0, 0x2b, 0xc, 0xc, 0xd, 0x0,
- 0x0, 0x0, 0x4, 0x7c, 0x6d, 0x6d, 0x6e, 0xc2,
- 0x0, 0x0, 0x1, 0x10, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5883 "境" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x8, 0x10, 0x0, 0x9, 0x30, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0x0, 0x2, 0x60, 0x26, 0x0,
- 0x0, 0xe, 0x0, 0x48, 0x76, 0x69, 0x65, 0x10,
- 0x0, 0xe, 0x0, 0x0, 0xb2, 0xb, 0x50, 0x0,
- 0x6, 0x6e, 0x8a, 0x0, 0x62, 0x26, 0x4, 0x50,
- 0x0, 0xe, 0x3, 0x76, 0x66, 0x66, 0x66, 0x50,
- 0x0, 0xe, 0x0, 0xc, 0x66, 0x66, 0xc6, 0x0,
- 0x0, 0xe, 0x0, 0xd, 0x0, 0x0, 0xb1, 0x0,
- 0x0, 0xe, 0x0, 0xe, 0x66, 0x66, 0xd1, 0x0,
- 0x0, 0xe, 0x55, 0x2d, 0x0, 0x0, 0xb1, 0x0,
- 0xb, 0xb6, 0x0, 0x9, 0xc9, 0xc7, 0x81, 0x20,
- 0x2, 0x0, 0x0, 0x0, 0xd2, 0xa2, 0x0, 0x70,
- 0x0, 0x0, 0x0, 0x8, 0x90, 0xa3, 0x0, 0xb0,
- 0x0, 0x0, 0x26, 0x96, 0x0, 0x5d, 0xbc, 0xc1,
- 0x0, 0x1, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5897 "増" */
- 0x0, 0xb, 0x10, 0x5, 0x20, 0x0, 0x57, 0x0,
- 0x0, 0xe, 0x0, 0x0, 0xd4, 0x0, 0xc5, 0x0,
- 0x0, 0xe, 0x0, 0x0, 0x68, 0x5, 0x30, 0x0,
- 0x0, 0xe, 0x0, 0xc6, 0x66, 0x96, 0x66, 0xe0,
- 0x4, 0x4e, 0x57, 0xd1, 0x0, 0xd0, 0x1, 0xd0,
- 0x3, 0x2e, 0x21, 0xc6, 0x66, 0xe6, 0x66, 0xd0,
- 0x0, 0xe, 0x0, 0xd1, 0x0, 0xd0, 0x1, 0xd0,
- 0x0, 0xe, 0x0, 0xd6, 0x66, 0xa6, 0x66, 0xd0,
- 0x0, 0xe, 0x0, 0x32, 0x0, 0x0, 0x3, 0x20,
- 0x0, 0xe, 0x5, 0x1f, 0x66, 0x66, 0x6f, 0x10,
- 0x0, 0x2f, 0x91, 0xe, 0x0, 0x0, 0xe, 0x0,
- 0xc, 0xd3, 0x0, 0xe, 0x66, 0x66, 0x6e, 0x0,
- 0x4, 0x0, 0x0, 0xe, 0x0, 0x0, 0xe, 0x0,
- 0x0, 0x0, 0x0, 0xf, 0x66, 0x66, 0x6f, 0x0,
- 0x0, 0x0, 0x0, 0x7, 0x0, 0x0, 0x5, 0x0,
-
- /* U+589E "增" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb1, 0x0, 0x27, 0x0, 0xc, 0x30, 0x0,
- 0xd, 0x0, 0x0, 0x96, 0x5, 0x60, 0x0, 0x0,
- 0xd0, 0x8, 0x67, 0x86, 0xa6, 0x78, 0x0, 0xd,
- 0x0, 0xc0, 0x0, 0xc0, 0x4, 0x70, 0x76, 0xe9,
- 0x8c, 0x47, 0xc, 0xb, 0x77, 0x0, 0xd, 0x0,
- 0xc0, 0xd2, 0xc3, 0x74, 0x70, 0x0, 0xd0, 0xc,
- 0x4, 0xc, 0x30, 0x47, 0x0, 0xd, 0x0, 0xc6,
- 0x66, 0x96, 0x68, 0x80, 0x0, 0xd0, 0x2, 0x30,
- 0x0, 0x0, 0x60, 0x0, 0xd, 0x4, 0xe, 0x66,
- 0x66, 0x7c, 0x0, 0x16, 0xd6, 0x0, 0xd0, 0x0,
- 0x2, 0xa0, 0x1e, 0x60, 0x0, 0xe, 0x66, 0x66,
- 0x7a, 0x0, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x2,
- 0xa0, 0x0, 0x0, 0x0, 0xe, 0x66, 0x66, 0x7b,
- 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x10,
-
- /* U+58CA "壊" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb, 0x0, 0x0, 0x1, 0xd0, 0x0, 0x0,
- 0x0, 0xd, 0x2, 0x66, 0x66, 0xd6, 0x69, 0x90,
- 0x0, 0xd, 0x0, 0x10, 0x1, 0xa0, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x86, 0x68, 0xb7, 0x6b, 0x30,
- 0x5, 0x6e, 0x79, 0xa1, 0xc, 0xc, 0xa, 0x10,
- 0x1, 0xd, 0x0, 0xa1, 0xc, 0xc, 0xa, 0x10,
- 0x0, 0xd, 0x0, 0xb6, 0x6d, 0x6d, 0x6c, 0x20,
- 0x0, 0xd, 0x0, 0x50, 0x2, 0x70, 0x4, 0x0,
- 0x0, 0xd, 0x2, 0x66, 0x66, 0xd6, 0x6c, 0x30,
- 0x0, 0xd, 0x5, 0x20, 0x97, 0x50, 0x3, 0x0,
- 0x0, 0x2e, 0x70, 0x6, 0xd0, 0x35, 0x5b, 0x10,
- 0xb, 0xd3, 0x0, 0x78, 0xc0, 0xb, 0x60, 0x0,
- 0x4, 0x0, 0x36, 0x12, 0xc1, 0x42, 0xd5, 0x0,
- 0x0, 0x0, 0x10, 0x4, 0xf7, 0x0, 0x3e, 0xa0,
- 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x1, 0x0,
-
- /* U+58D3 "壓" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x76, 0x66, 0x66, 0x66, 0x66, 0x6d, 0x50,
- 0x0, 0xa2, 0x64, 0x44, 0x70, 0x8, 0x20, 0x0,
- 0x0, 0xa2, 0xc6, 0x66, 0xd0, 0xc, 0x3a, 0x0,
- 0x0, 0xa2, 0xc2, 0x22, 0xc0, 0xc, 0x6, 0x0,
- 0x0, 0xb1, 0x84, 0x44, 0x84, 0x6d, 0x6b, 0x10,
- 0x0, 0xc0, 0xb6, 0x66, 0xd1, 0xb, 0x50, 0x0,
- 0x0, 0xc0, 0xd6, 0x66, 0xc0, 0x47, 0x70, 0x0,
- 0x2, 0x90, 0xb0, 0x0, 0xc0, 0x91, 0x81, 0x0,
- 0x6, 0x30, 0xd6, 0x66, 0xc2, 0x70, 0x3b, 0x0,
- 0x8, 0x0, 0xc0, 0x6, 0xb6, 0x0, 0xa, 0x70,
- 0x22, 0x0, 0x10, 0x2, 0x90, 0x0, 0x0, 0x0,
- 0x0, 0x7, 0x66, 0x67, 0xb6, 0x67, 0xa0, 0x0,
- 0x0, 0x0, 0x0, 0x2, 0x90, 0x0, 0x1, 0x0,
- 0x4, 0x66, 0x66, 0x67, 0xb6, 0x66, 0x6c, 0xb0,
- 0x1, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+58EB "士" */
- 0x0, 0x0, 0x0, 0x7, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb4, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb3, 0x0, 0x1, 0xb2, 0x7, 0x66, 0x66,
- 0x6d, 0x86, 0x66, 0x66, 0x40, 0x0, 0x0, 0x0,
- 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb,
- 0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb3,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0x30,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb3, 0x0,
- 0x1, 0x0, 0x0, 0x46, 0x66, 0x6d, 0x86, 0x66,
- 0xf6, 0x0, 0x1, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+58F0 "声" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1c, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd0, 0x0, 0x4, 0x0, 0x37,
- 0x66, 0x66, 0x6e, 0x66, 0x67, 0xb4, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x10, 0x0, 0x0, 0x76,
- 0x66, 0x6b, 0x66, 0x8b, 0x0, 0x0, 0x2, 0x0,
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0xc7, 0x66,
- 0x6c, 0x66, 0x6d, 0x30, 0x0, 0xc, 0x20, 0x0,
- 0xd0, 0x0, 0xc1, 0x0, 0x0, 0xc2, 0x0, 0xd,
- 0x0, 0xc, 0x10, 0x0, 0xd, 0x66, 0x66, 0x66,
- 0x66, 0xb1, 0x0, 0x0, 0xd0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x29, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x8, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x4, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+58F2 "売" */
- 0x0, 0x0, 0x0, 0xa, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb2, 0x0, 0x8, 0x10, 0x1,
- 0x76, 0x66, 0x6d, 0x76, 0x66, 0x63, 0x0, 0x0,
- 0x0, 0x0, 0xb2, 0x0, 0x60, 0x0, 0x0, 0x5,
- 0x76, 0x66, 0x66, 0x67, 0x20, 0x0, 0x18, 0x66,
- 0x66, 0x66, 0x66, 0x66, 0xa1, 0x6, 0x60, 0x0,
- 0x0, 0x0, 0x0, 0x1c, 0x30, 0xb2, 0x0, 0x82,
- 0x1, 0x60, 0x4, 0x0, 0x0, 0x0, 0xc, 0x40,
- 0x2d, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe0, 0x1,
- 0xc0, 0x0, 0x0, 0x0, 0x0, 0x1e, 0x0, 0x1c,
- 0x0, 0x1, 0x0, 0x0, 0x5, 0x90, 0x1, 0xc0,
- 0x0, 0x60, 0x0, 0x1, 0xc2, 0x0, 0x1d, 0x0,
- 0x8, 0x10, 0x5, 0x92, 0x0, 0x0, 0xdc, 0xcc,
- 0xd4, 0x5, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+5909 "変" */
- 0x0, 0x0, 0x0, 0x38, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb2, 0x0, 0x3, 0xa0, 0x7,
- 0x66, 0x6d, 0x76, 0x6d, 0x76, 0x67, 0x20, 0x0,
- 0x41, 0xd2, 0x0, 0xe2, 0x10, 0x0, 0x0, 0x1d,
- 0x5d, 0x20, 0xe, 0x25, 0xa4, 0x0, 0xa, 0x20,
- 0xd2, 0x0, 0xe2, 0x2, 0xd7, 0x17, 0x10, 0xa,
- 0x10, 0x6, 0x0, 0x2, 0x70, 0x0, 0x0, 0xb8,
- 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x7c, 0x66,
- 0x66, 0xcd, 0x0, 0x0, 0x0, 0x67, 0x71, 0x0,
- 0x5e, 0x30, 0x0, 0x0, 0x63, 0x0, 0xa1, 0x5d,
- 0x10, 0x0, 0x0, 0x0, 0x0, 0x1, 0xec, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x4, 0xa6, 0x9c, 0x61,
- 0x0, 0x0, 0x3, 0x78, 0x40, 0x0, 0x29, 0xee,
- 0xc6, 0x15, 0x30, 0x0, 0x0, 0x0, 0x0, 0x44,
- 0x0,
-
- /* U+590F "夏" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x83, 0x0,
- 0x4, 0x76, 0x66, 0xaa, 0x66, 0x66, 0x65, 0x0,
- 0x0, 0xa, 0x66, 0x96, 0x66, 0x6d, 0x30, 0x0,
- 0x0, 0xc, 0x10, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0xc, 0x66, 0x66, 0x66, 0x6e, 0x0, 0x0,
- 0x0, 0xc, 0x66, 0x66, 0x66, 0x6e, 0x0, 0x0,
- 0x0, 0xc, 0x10, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0xc, 0x68, 0x86, 0x66, 0x6e, 0x0, 0x0,
- 0x0, 0x4, 0xd, 0x20, 0x0, 0x51, 0x0, 0x0,
- 0x0, 0x0, 0x9b, 0x66, 0x68, 0xf4, 0x0, 0x0,
- 0x0, 0x7, 0x60, 0x80, 0x2d, 0x30, 0x0, 0x0,
- 0x0, 0x74, 0x0, 0x1b, 0xd2, 0x0, 0x0, 0x0,
- 0x4, 0x10, 0x2, 0x99, 0x8b, 0x62, 0x0, 0x0,
- 0x0, 0x26, 0x86, 0x10, 0x1, 0x8d, 0xfd, 0x60,
- 0x24, 0x30, 0x0, 0x0, 0x0, 0x0, 0x13, 0x0,
-
- /* U+5915 "夕" */
- 0x0, 0x0, 0x0, 0xa1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x5, 0xf2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb, 0x80, 0x0, 0x2, 0x0, 0x0, 0x0, 0x3f,
- 0x66, 0x66, 0x6d, 0xb0, 0x0, 0x0, 0xa6, 0x0,
- 0x0, 0x1f, 0x40, 0x0, 0x4, 0xc0, 0x0, 0x0,
- 0x8c, 0x0, 0x0, 0xc, 0x94, 0x0, 0x0, 0xe4,
- 0x0, 0x0, 0x75, 0xc, 0x80, 0x8, 0xa0, 0x0,
- 0x4, 0x60, 0x2, 0xf4, 0x2e, 0x20, 0x0, 0x4,
- 0x0, 0x0, 0x72, 0xd5, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb, 0x70, 0x0, 0x0, 0x0, 0x0, 0x1,
- 0xc6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6b, 0x30,
- 0x0, 0x0, 0x0, 0x2, 0x78, 0x30, 0x0, 0x0,
- 0x0, 0x0, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+5916 "外" */
- 0x0, 0x0, 0x77, 0x0, 0x0, 0xb3, 0x0, 0x0,
- 0x0, 0xc, 0x60, 0x0, 0xe, 0x0, 0x0, 0x0,
- 0x1, 0xe0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x0,
- 0x6c, 0x66, 0xb6, 0xe, 0x0, 0x0, 0x0, 0xb,
- 0x30, 0xd, 0x70, 0xe0, 0x0, 0x0, 0x2, 0xb0,
- 0x2, 0xe0, 0xe, 0x40, 0x0, 0x0, 0x98, 0x80,
- 0x68, 0x0, 0xe3, 0xb7, 0x0, 0x26, 0x9, 0x8c,
- 0x20, 0xe, 0x1, 0xca, 0x5, 0x0, 0x7, 0xa0,
- 0x0, 0xe0, 0x1, 0x90, 0x0, 0x0, 0xb3, 0x0,
- 0xe, 0x0, 0x0, 0x0, 0x0, 0x67, 0x0, 0x0,
- 0xe0, 0x0, 0x0, 0x0, 0x39, 0x0, 0x0, 0xe,
- 0x0, 0x0, 0x0, 0x47, 0x0, 0x0, 0x0, 0xe0,
- 0x0, 0x0, 0x53, 0x0, 0x0, 0x0, 0xe, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0,
- 0x0,
-
- /* U+591A "多" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x87, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x7, 0xc1, 0x0, 0x5, 0x0, 0x0, 0x0, 0x9a,
- 0x66, 0x66, 0x8f, 0x60, 0x0, 0x39, 0x49, 0x30,
- 0x3, 0xd4, 0x0, 0x6, 0x40, 0x3, 0xb0, 0x6b,
- 0x20, 0x0, 0x0, 0x0, 0x0, 0x5a, 0x60, 0x0,
- 0x0, 0x0, 0x0, 0x69, 0x8a, 0x10, 0x0, 0x0,
- 0x25, 0x66, 0x20, 0xaa, 0x10, 0x0, 0x30, 0x0,
- 0x0, 0x1b, 0x96, 0x66, 0x69, 0xf2, 0x0, 0x4,
- 0xb7, 0x0, 0x0, 0x2d, 0x30, 0x2, 0x74, 0x3,
- 0xb0, 0x3, 0xc2, 0x0, 0x0, 0x0, 0x0, 0xd0,
- 0x7a, 0x10, 0x0, 0x0, 0x0, 0x1, 0x7a, 0x40,
- 0x0, 0x0, 0x0, 0x26, 0x77, 0x30, 0x0, 0x0,
- 0x0, 0x24, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+591C "夜" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1a, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x4, 0xb0, 0x0, 0x2, 0x0,
- 0x8, 0x66, 0x76, 0x66, 0x86, 0x66, 0x6b, 0x70,
- 0x0, 0x0, 0xe5, 0x5, 0xd0, 0x0, 0x0, 0x0,
- 0x0, 0x5, 0xc0, 0xa, 0x50, 0x0, 0x60, 0x0,
- 0x0, 0xc, 0x30, 0x1d, 0x66, 0x67, 0xf2, 0x0,
- 0x0, 0x4f, 0x40, 0x85, 0x53, 0x6, 0x90, 0x0,
- 0x0, 0xbc, 0x21, 0xb5, 0xe, 0x1b, 0x30, 0x0,
- 0x7, 0x2b, 0x28, 0x17, 0x15, 0x2c, 0x0, 0x0,
- 0x13, 0xb, 0x42, 0x1, 0x90, 0x95, 0x0, 0x0,
- 0x0, 0xb, 0x20, 0x0, 0x59, 0xc0, 0x0, 0x0,
- 0x0, 0xb, 0x20, 0x0, 0x2f, 0x90, 0x0, 0x0,
- 0x0, 0xb, 0x20, 0x3, 0xb2, 0x8c, 0x50, 0x0,
- 0x0, 0xb, 0x21, 0x87, 0x0, 0x4, 0xdf, 0x90,
- 0x0, 0x6, 0x35, 0x0, 0x0, 0x0, 0x4, 0x0,
-
- /* U+5920 "夠" */
- 0x0, 0x0, 0x85, 0x0, 0x1, 0x60, 0x0, 0x0,
- 0x0, 0x3, 0xd2, 0x25, 0x6, 0xc0, 0x0, 0x0,
- 0x0, 0x1b, 0x44, 0x6f, 0x3c, 0x10, 0x0, 0x50,
- 0x1, 0x78, 0x50, 0xc4, 0x59, 0x66, 0x66, 0xe1,
- 0x3, 0x1, 0x6a, 0x61, 0x90, 0x0, 0x0, 0xd0,
- 0x0, 0x0, 0x96, 0x8, 0x10, 0x0, 0x20, 0xd0,
- 0x0, 0x38, 0x7d, 0x10, 0x3c, 0x66, 0xd0, 0xd0,
- 0x4, 0x30, 0xd8, 0x6c, 0x7a, 0x1, 0xc0, 0xd0,
- 0x0, 0xa, 0x40, 0x2e, 0x4a, 0x1, 0xc1, 0xc0,
- 0x0, 0x88, 0x40, 0x96, 0x2c, 0x66, 0xc1, 0xc0,
- 0x4, 0x10, 0xd3, 0xc0, 0x37, 0x0, 0x72, 0xb0,
- 0x0, 0x0, 0x2c, 0x20, 0x0, 0x0, 0x4, 0x90,
- 0x0, 0x2, 0xb2, 0x0, 0x0, 0x22, 0x19, 0x70,
- 0x0, 0x67, 0x0, 0x0, 0x0, 0x26, 0xef, 0x20,
- 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x0,
-
- /* U+5927 "大" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x10, 0x0, 0x6, 0x10,
- 0x6, 0x66, 0x66, 0x6e, 0x66, 0x66, 0x6a, 0x80,
- 0x0, 0x0, 0x0, 0xf, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1d, 0x60, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x4a, 0x70, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x95, 0x27, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe0, 0x8, 0x20, 0x0, 0x0,
- 0x0, 0x0, 0x8, 0x70, 0x1, 0xc1, 0x0, 0x0,
- 0x0, 0x0, 0x5b, 0x0, 0x0, 0x3c, 0x20, 0x0,
- 0x0, 0x6, 0x90, 0x0, 0x0, 0x5, 0xf9, 0x20,
- 0x2, 0x84, 0x0, 0x0, 0x0, 0x0, 0x3d, 0x60,
- 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5929 "天" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0,
- 0x0, 0x28, 0x66, 0x69, 0x66, 0x69, 0xb2, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xf, 0x0, 0x0, 0x3b, 0x0,
- 0x6, 0x76, 0x66, 0x7e, 0x96, 0x66, 0x67, 0x30,
- 0x0, 0x0, 0x0, 0x69, 0x42, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa5, 0x8, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2, 0xd0, 0x7, 0x20, 0x0, 0x0,
- 0x0, 0x0, 0xb, 0x50, 0x1, 0xc1, 0x0, 0x0,
- 0x0, 0x0, 0x68, 0x0, 0x0, 0x5d, 0x20, 0x0,
- 0x0, 0x5, 0x60, 0x0, 0x0, 0x6, 0xf8, 0x20,
- 0x0, 0x64, 0x0, 0x0, 0x0, 0x0, 0x4e, 0x91,
- 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+592A "太" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x50, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x10, 0x0, 0x8, 0x0,
- 0x4, 0x76, 0x66, 0x6f, 0x86, 0x66, 0x7a, 0x50,
- 0x0, 0x0, 0x0, 0x1d, 0x51, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x5a, 0x26, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x95, 0xa, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe0, 0x7, 0x50, 0x0, 0x0,
- 0x0, 0x0, 0x7, 0x70, 0x0, 0xd1, 0x0, 0x0,
- 0x0, 0x0, 0x2c, 0x54, 0x0, 0x5b, 0x0, 0x0,
- 0x0, 0x1, 0xb1, 0xb, 0xa0, 0x9, 0xb0, 0x0,
- 0x0, 0x2a, 0x10, 0x1, 0xf1, 0x0, 0xce, 0x60,
- 0x4, 0x60, 0x0, 0x0, 0x20, 0x0, 0x1b, 0x61,
- 0x11, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+592B "夫" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa5, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb3, 0x0, 0x6, 0x0, 0x0, 0x56,
- 0x66, 0x6d, 0x86, 0x66, 0x83, 0x0, 0x0, 0x0,
- 0x0, 0xc3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0x20, 0x0, 0x2, 0x0, 0x56, 0x66, 0x66,
- 0xe6, 0x66, 0x68, 0xf5, 0x1, 0x0, 0x0, 0x1d,
- 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0x81,
- 0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd2, 0x9,
- 0x10, 0x0, 0x0, 0x0, 0x0, 0x77, 0x0, 0x3b,
- 0x0, 0x0, 0x0, 0x0, 0x69, 0x0, 0x0, 0x8a,
- 0x0, 0x0, 0x0, 0x87, 0x0, 0x0, 0x0, 0x9d,
- 0x50, 0x4, 0x72, 0x0, 0x0, 0x0, 0x0, 0x6e,
- 0x71, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+592E "央" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb5, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb3, 0x0, 0x20, 0x0, 0x0, 0xa,
- 0x76, 0x6d, 0x86, 0x6d, 0x60, 0x0, 0x0, 0xa4,
- 0x0, 0xb3, 0x0, 0xc3, 0x0, 0x0, 0xa, 0x40,
- 0xb, 0x20, 0xc, 0x30, 0x0, 0x0, 0xa4, 0x0,
- 0xc1, 0x0, 0xc3, 0x0, 0x0, 0xa, 0x40, 0xd,
- 0x10, 0xc, 0x4b, 0x10, 0x57, 0x66, 0x66, 0xe9,
- 0x66, 0x66, 0x63, 0x0, 0x0, 0x0, 0x4a, 0x33,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0x40, 0x91,
- 0x0, 0x0, 0x0, 0x0, 0x7, 0x90, 0x2, 0xb2,
- 0x0, 0x0, 0x0, 0x8, 0x70, 0x0, 0x3, 0xe8,
- 0x10, 0x0, 0x58, 0x10, 0x0, 0x0, 0x2, 0xcf,
- 0x61, 0x41, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20,
-
- /* U+5931 "失" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa5, 0x0, 0x0, 0x0, 0x0,
- 0x3, 0x40, 0xb, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x8a, 0x0, 0xb3, 0x0, 0x0, 0x0, 0x0, 0xc,
- 0x76, 0x6d, 0x86, 0x6a, 0xc1, 0x0, 0x1, 0x90,
- 0x0, 0xc3, 0x0, 0x0, 0x0, 0x0, 0x71, 0x0,
- 0xd, 0x10, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0,
- 0xe0, 0x0, 0x1, 0x80, 0x6, 0x76, 0x66, 0x7e,
- 0x86, 0x66, 0x79, 0x40, 0x0, 0x0, 0x6, 0x94,
- 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc3, 0x9,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x4a, 0x0, 0x57,
- 0x0, 0x0, 0x0, 0x0, 0x1c, 0x10, 0x0, 0xa7,
- 0x0, 0x0, 0x0, 0x3a, 0x10, 0x0, 0x0, 0xbc,
- 0x30, 0x1, 0x66, 0x0, 0x0, 0x0, 0x0, 0xaf,
- 0x80, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20,
-
- /* U+5947 "奇" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe, 0x10, 0x0, 0x30, 0x0,
- 0x0, 0x76, 0x66, 0x8d, 0x66, 0x68, 0xb2, 0x0,
- 0x0, 0x0, 0x0, 0xc6, 0x76, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x2a, 0x30, 0x4, 0xda, 0x0, 0x0,
- 0x0, 0x46, 0x60, 0x0, 0x0, 0xa, 0x27, 0x10,
- 0x18, 0x66, 0x66, 0x66, 0x66, 0x6a, 0x7a, 0x70,
- 0x0, 0x0, 0x0, 0x0, 0x10, 0xd, 0x0, 0x0,
- 0x0, 0xc, 0x66, 0x66, 0xe1, 0xd, 0x0, 0x0,
- 0x0, 0xd, 0x10, 0x0, 0xe0, 0xd, 0x0, 0x0,
- 0x0, 0xc, 0x10, 0x0, 0xe0, 0xd, 0x0, 0x0,
- 0x0, 0xd, 0x66, 0x66, 0xe0, 0xd, 0x0, 0x0,
- 0x0, 0xa, 0x0, 0x0, 0x50, 0xe, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x6, 0xed, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x31, 0x0, 0x0,
-
- /* U+5951 "契" */
- 0x0, 0x0, 0x84, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa2, 0x24, 0x1, 0x11, 0x16, 0x20,
- 0x4, 0x76, 0xc7, 0x65, 0x36, 0xe5, 0x5c, 0x50,
- 0x0, 0x56, 0xc7, 0xa3, 0x0, 0xd0, 0xc, 0x20,
- 0x0, 0x10, 0xa2, 0x0, 0x4, 0x90, 0xd, 0x0,
- 0x4, 0x66, 0xc7, 0x7b, 0xb, 0x10, 0xd, 0x0,
- 0x1, 0x10, 0xa2, 0x0, 0x94, 0x33, 0x6b, 0x0,
- 0x0, 0x0, 0xb3, 0x37, 0x10, 0x6, 0xe3, 0x0,
- 0x0, 0x0, 0x51, 0xc, 0x20, 0x0, 0x1, 0x0,
- 0x5, 0x66, 0x66, 0x6f, 0x66, 0x66, 0x8f, 0x40,
- 0x1, 0x0, 0x0, 0x87, 0x61, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2, 0xd0, 0x9, 0x20, 0x0, 0x0,
- 0x0, 0x0, 0x3c, 0x20, 0x0, 0xb8, 0x20, 0x0,
- 0x0, 0x38, 0x70, 0x0, 0x0, 0x7, 0xfe, 0x80,
- 0x15, 0x30, 0x0, 0x0, 0x0, 0x0, 0x15, 0x0,
-
- /* U+5957 "套" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x6b, 0x0, 0x0, 0x29, 0x0,
- 0x0, 0x76, 0x66, 0xf6, 0x68, 0x76, 0x66, 0x20,
- 0x0, 0x0, 0xa, 0x60, 0x0, 0x90, 0x0, 0x0,
- 0x0, 0x0, 0x88, 0x0, 0x0, 0x7c, 0x40, 0x0,
- 0x0, 0x8, 0x4e, 0x66, 0x66, 0x95, 0xdc, 0x81,
- 0x2, 0x61, 0xe, 0x0, 0x0, 0x80, 0x7, 0x50,
- 0x2, 0x0, 0xe, 0x66, 0x66, 0x63, 0x0, 0x0,
- 0x0, 0x0, 0xe, 0x66, 0x66, 0x7b, 0x10, 0x0,
- 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x5, 0x10,
- 0x6, 0x76, 0x6b, 0x79, 0x66, 0x66, 0x6b, 0x90,
- 0x0, 0x0, 0x0, 0xc4, 0x2, 0x40, 0x0, 0x0,
- 0x0, 0x0, 0x19, 0x20, 0x0, 0x3c, 0x70, 0x0,
- 0x0, 0x1, 0xeb, 0xa8, 0x76, 0x55, 0xd4, 0x0,
- 0x0, 0x0, 0x42, 0x0, 0x0, 0x0, 0x11, 0x0,
-
- /* U+5973 "女" */
- 0x0, 0x0, 0x0, 0x96, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xf, 0x40, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x4, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x88, 0x0, 0x0, 0x2, 0x0, 0x56, 0x66,
- 0x6d, 0x86, 0x66, 0x66, 0xdb, 0x0, 0x0, 0x2,
- 0xd0, 0x0, 0x5b, 0x0, 0x0, 0x0, 0x0, 0x77,
- 0x0, 0xb, 0x60, 0x0, 0x0, 0x0, 0xd, 0x10,
- 0x0, 0xf1, 0x0, 0x0, 0x0, 0x4, 0xa0, 0x0,
- 0x6a, 0x0, 0x0, 0x0, 0x0, 0x48, 0x61, 0xe,
- 0x30, 0x0, 0x0, 0x0, 0x0, 0x1, 0x7d, 0xe2,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xc5, 0xdb,
- 0x40, 0x0, 0x0, 0x0, 0x2b, 0x70, 0x0, 0x7f,
- 0x70, 0x0, 0x5, 0x86, 0x10, 0x0, 0x0, 0x3b,
- 0x0, 0x35, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+5979 "她" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x7, 0x70, 0x0, 0x0, 0x82, 0x0, 0x0,
- 0x0, 0x9, 0x50, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0xb, 0x20, 0x2, 0x80, 0xd0, 0x0, 0x0,
- 0x0, 0xd, 0x2, 0x32, 0xa0, 0xd0, 0x3, 0x0,
- 0x6, 0x7d, 0x6a, 0x82, 0xa0, 0xd5, 0x6f, 0x20,
- 0x0, 0x2a, 0x8, 0x68, 0xc6, 0xd0, 0xd, 0x0,
- 0x0, 0x57, 0xb, 0x12, 0xa0, 0xd0, 0xe, 0x0,
- 0x0, 0x83, 0xd, 0x2, 0xa0, 0xd0, 0xe, 0x0,
- 0x0, 0xb0, 0x1b, 0x2, 0xa0, 0xd0, 0x1d, 0x0,
- 0x0, 0xc0, 0x57, 0x2, 0xa0, 0xd3, 0xc8, 0x0,
- 0x0, 0x59, 0xc3, 0x2, 0xa0, 0xd1, 0x0, 0x30,
- 0x0, 0x2, 0xbd, 0x52, 0xa0, 0x70, 0x0, 0x70,
- 0x0, 0x9, 0x2, 0xc2, 0xb0, 0x0, 0x0, 0xc0,
- 0x1, 0x81, 0x0, 0x0, 0xdb, 0xbb, 0xbc, 0xd2,
- 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+597D "好" */
- 0x0, 0x7, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb, 0x40, 0x4, 0x66, 0x66, 0x99, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0xc4, 0x0,
- 0x26, 0x6e, 0x67, 0x80, 0x0, 0x7, 0x20, 0x0,
- 0x0, 0x49, 0x6, 0x70, 0x0, 0xb6, 0x0, 0x0,
- 0x0, 0x75, 0x9, 0x40, 0x0, 0xc1, 0x0, 0x0,
- 0x0, 0xa1, 0xc, 0x10, 0x0, 0xc1, 0x3, 0x30,
- 0x0, 0xc0, 0xd, 0x36, 0x66, 0xd6, 0x68, 0x70,
- 0x3, 0x90, 0x39, 0x0, 0x0, 0xc1, 0x0, 0x0,
- 0x5, 0x80, 0x85, 0x0, 0x0, 0xc1, 0x0, 0x0,
- 0x0, 0x28, 0xf4, 0x0, 0x0, 0xc1, 0x0, 0x0,
- 0x0, 0x8, 0x7c, 0xa0, 0x0, 0xc1, 0x0, 0x0,
- 0x0, 0x66, 0x0, 0xa0, 0x0, 0xd1, 0x0, 0x0,
- 0x7, 0x30, 0x0, 0x1, 0x7d, 0xe0, 0x0, 0x0,
- 0x20, 0x0, 0x0, 0x0, 0x3, 0x20, 0x0, 0x0,
-
- /* U+5982 "如" */
- 0x0, 0x0, 0xa2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x4, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x67, 0x0, 0x60, 0xb6, 0x66, 0xc4, 0x6, 0x7c,
- 0x86, 0x8c, 0xd, 0x0, 0xb, 0x10, 0x0, 0xc0,
- 0x5, 0x80, 0xd0, 0x0, 0xb1, 0x0, 0xc, 0x0,
- 0x85, 0xd, 0x0, 0xb, 0x10, 0x3, 0x90, 0xb,
- 0x20, 0xd0, 0x0, 0xb1, 0x0, 0x75, 0x0, 0xd0,
- 0xd, 0x0, 0xb, 0x10, 0xb, 0x40, 0x3a, 0x0,
- 0xd0, 0x0, 0xb1, 0x0, 0x4, 0x9c, 0x80, 0xd,
- 0x0, 0xb, 0x10, 0x0, 0x3, 0xbb, 0xc0, 0xd6,
- 0x66, 0xd1, 0x0, 0x3, 0xa0, 0x9, 0x2d, 0x0,
- 0xb, 0x20, 0x6, 0x70, 0x0, 0x0, 0x70, 0x0,
- 0x20, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+5987 "妇" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xe, 0x10, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1,
- 0xd0, 0x0, 0x76, 0x66, 0x66, 0xe3, 0x16, 0x8c,
- 0x66, 0xb0, 0x0, 0x0, 0xe, 0x0, 0x6, 0x70,
- 0x4a, 0x0, 0x0, 0x0, 0xe0, 0x0, 0xa3, 0x6,
- 0x70, 0x0, 0x0, 0xe, 0x0, 0xd, 0x0, 0x94,
- 0x26, 0x66, 0x66, 0xe0, 0x1, 0xb0, 0xc, 0x0,
- 0x20, 0x0, 0xe, 0x0, 0x48, 0x1, 0xc0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x49, 0x97, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0x0, 0xd, 0xc3, 0x0, 0x0,
- 0x0, 0xe0, 0x0, 0x6, 0x63, 0xd3, 0x66, 0x66,
- 0x6e, 0x0, 0x3, 0x80, 0x3, 0x1, 0x0, 0x0,
- 0xe0, 0x3, 0x60, 0x0, 0x0, 0x0, 0x0, 0xa,
- 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+59B3 "妳" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x5, 0xb0, 0x0, 0x8, 0x30, 0x0, 0x0,
- 0x0, 0x8, 0x70, 0x0, 0xf, 0x20, 0x0, 0x0,
- 0x0, 0xb, 0x30, 0x0, 0x49, 0x0, 0x0, 0x10,
- 0x5, 0x6e, 0x66, 0xa0, 0xa8, 0x66, 0x66, 0xe2,
- 0x1, 0x3b, 0x3, 0xc0, 0xa0, 0x0, 0x5, 0x60,
- 0x0, 0x76, 0x6, 0x86, 0x20, 0x18, 0x4, 0x0,
- 0x0, 0xb1, 0x9, 0x43, 0x0, 0x1c, 0x0, 0x0,
- 0x0, 0xc0, 0xd, 0x0, 0x33, 0x1c, 0x10, 0x0,
- 0x4, 0x80, 0x2c, 0x0, 0x99, 0x1c, 0x28, 0x0,
- 0x1, 0x77, 0x87, 0x0, 0xc0, 0x1c, 0x8, 0x90,
- 0x0, 0x2, 0xfb, 0x16, 0x30, 0x1c, 0x0, 0xf1,
- 0x0, 0x8, 0x67, 0xc3, 0x0, 0x1c, 0x0, 0x30,
- 0x0, 0x58, 0x0, 0x20, 0x0, 0x2c, 0x0, 0x0,
- 0x5, 0x50, 0x0, 0x0, 0x7, 0xf8, 0x0, 0x0,
- 0x1, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0,
-
- /* U+59B9 "妹" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0x9, 0x80, 0x0, 0x0, 0xe1, 0x0, 0x0,
- 0x0, 0xc, 0x30, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x1, 0x22, 0xd2, 0x38, 0x0,
- 0x16, 0x7d, 0x68, 0x74, 0x54, 0xd4, 0x44, 0x10,
- 0x2, 0x66, 0x8, 0x50, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0xa2, 0xb, 0x20, 0x0, 0xd0, 0x1, 0x40,
- 0x0, 0xc0, 0xd, 0x37, 0x6a, 0xe7, 0x67, 0x80,
- 0x2, 0x90, 0x2a, 0x0, 0xd, 0xd6, 0x0, 0x0,
- 0x7, 0x50, 0x66, 0x0, 0x48, 0xd6, 0x10, 0x0,
- 0x5, 0x83, 0xb1, 0x0, 0xb1, 0xd1, 0xa0, 0x0,
- 0x0, 0x8, 0xf3, 0x5, 0x60, 0xd0, 0x84, 0x0,
- 0x0, 0x9, 0x4d, 0x29, 0x0, 0xd0, 0x1d, 0x40,
- 0x0, 0x64, 0x2, 0x80, 0x0, 0xd0, 0x4, 0xb2,
- 0x4, 0x40, 0x2, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x1, 0x0, 0x0, 0x0, 0x0, 0x60, 0x0, 0x0,
-
- /* U+59BB "妻" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x20, 0x0, 0x12, 0x0,
- 0x6, 0x76, 0x66, 0x6e, 0x66, 0x66, 0xbc, 0x20,
- 0x0, 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x7, 0x66, 0x6e, 0x66, 0x6d, 0x20, 0x0,
- 0x0, 0x0, 0x0, 0xe, 0x0, 0xe, 0x4, 0x20,
- 0x7, 0x66, 0x66, 0x6e, 0x66, 0x6e, 0x69, 0x80,
- 0x0, 0x0, 0x0, 0xe, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0x18, 0x66, 0xa8, 0x66, 0x6e, 0x0, 0x0,
- 0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x5, 0x20,
- 0x28, 0x66, 0x6c, 0x86, 0x66, 0xb6, 0x69, 0x80,
- 0x0, 0x0, 0x2b, 0x0, 0x6, 0xa0, 0x0, 0x0,
- 0x0, 0x0, 0x79, 0x42, 0x2d, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x39, 0xfd, 0x94, 0x0, 0x0,
- 0x0, 0x0, 0x2, 0x8a, 0x20, 0x5b, 0xe2, 0x0,
- 0x3, 0x56, 0x76, 0x10, 0x0, 0x0, 0x34, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+59C9 "姉" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb6, 0x0, 0x0, 0xc, 0x30, 0x0, 0x0,
- 0xe, 0x10, 0x0, 0x0, 0xd0, 0x0, 0x0, 0x2,
- 0xc0, 0x0, 0x0, 0xd, 0x0, 0x20, 0x26, 0x9b,
- 0x68, 0x68, 0x66, 0xe6, 0x69, 0x50, 0x29, 0x40,
- 0x95, 0x0, 0xd, 0x0, 0x0, 0x0, 0xd0, 0xc,
- 0x13, 0x0, 0xd0, 0x5, 0x0, 0x2b, 0x0, 0xd0,
- 0xd6, 0x6e, 0x66, 0xe1, 0x6, 0x60, 0x49, 0xc,
- 0x0, 0xd0, 0xd, 0x0, 0xa1, 0x8, 0x50, 0xc0,
- 0xd, 0x0, 0xd0, 0x7, 0x72, 0xd0, 0xc, 0x0,
- 0xd0, 0xd, 0x0, 0x0, 0xae, 0x50, 0xc0, 0xd,
- 0x0, 0xd0, 0x0, 0xb, 0x3c, 0x6d, 0x0, 0xd3,
- 0x9d, 0x0, 0x9, 0x20, 0x3, 0x20, 0xd, 0x2,
- 0x20, 0x6, 0x20, 0x0, 0x0, 0x0, 0xd0, 0x0,
- 0x2, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0,
-
- /* U+59CB "始" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0x6, 0xa0, 0x0, 0x3, 0xe1, 0x0, 0x0,
- 0x0, 0x9, 0x60, 0x0, 0x8, 0x80, 0x0, 0x0,
- 0x0, 0xc, 0x10, 0x0, 0xc, 0x10, 0x20, 0x0,
- 0x5, 0x6e, 0x66, 0xa0, 0x56, 0x0, 0x76, 0x0,
- 0x2, 0x49, 0x4, 0xa0, 0xa0, 0x0, 0xc, 0x60,
- 0x0, 0x85, 0x7, 0x7a, 0xb9, 0x87, 0x68, 0xe0,
- 0x0, 0xc0, 0xa, 0x34, 0x61, 0x0, 0x0, 0x60,
- 0x1, 0xb0, 0xd, 0x0, 0x20, 0x0, 0x3, 0x0,
- 0x5, 0x70, 0x2b, 0x0, 0xe6, 0x66, 0x6e, 0x30,
- 0x4, 0x84, 0x86, 0x0, 0xe0, 0x0, 0xe, 0x0,
- 0x0, 0x5, 0xf8, 0x0, 0xe0, 0x0, 0xe, 0x0,
- 0x0, 0x8, 0x6b, 0xa0, 0xe0, 0x0, 0xe, 0x0,
- 0x0, 0x47, 0x0, 0x80, 0xe6, 0x66, 0x6e, 0x0,
- 0x4, 0x50, 0x0, 0x0, 0xe0, 0x0, 0xd, 0x0,
- 0x2, 0x0, 0x0, 0x0, 0x20, 0x0, 0x1, 0x0,
-
- /* U+59D0 "姐" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x5, 0xa0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x8, 0x70, 0x0, 0xd6, 0x66, 0x6e, 0x10,
- 0x0, 0xc, 0x20, 0x0, 0xe0, 0x0, 0xd, 0x0,
- 0x16, 0x6e, 0x66, 0xa1, 0xe0, 0x0, 0xd, 0x0,
- 0x0, 0x49, 0x2, 0xc0, 0xe0, 0x0, 0xd, 0x0,
- 0x0, 0x85, 0x6, 0x80, 0xe6, 0x66, 0x6d, 0x0,
- 0x0, 0xc0, 0x9, 0x40, 0xe0, 0x0, 0xd, 0x0,
- 0x1, 0xb0, 0xd, 0x0, 0xe0, 0x0, 0xd, 0x0,
- 0x6, 0x50, 0x2b, 0x0, 0xe0, 0x0, 0xd, 0x0,
- 0x5, 0x84, 0x85, 0x0, 0xe6, 0x66, 0x6d, 0x0,
- 0x0, 0x5, 0xf8, 0x0, 0xe0, 0x0, 0xd, 0x0,
- 0x0, 0x9, 0x47, 0xd0, 0xe0, 0x0, 0xd, 0x0,
- 0x0, 0x66, 0x0, 0x60, 0xe0, 0x0, 0xd, 0x20,
- 0x5, 0x40, 0x0, 0x76, 0xa6, 0x66, 0x6a, 0xa3,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+59D4 "委" */
- 0x0, 0x0, 0x0, 0x0, 0x14, 0x7c, 0x70, 0x0,
- 0x0, 0x3, 0x56, 0x7a, 0xd5, 0x43, 0x20, 0x0,
- 0x0, 0x0, 0x0, 0x3, 0xb0, 0x0, 0x2, 0x30,
- 0x4, 0x76, 0x66, 0x7b, 0xd8, 0x66, 0x69, 0xa0,
- 0x0, 0x0, 0x2, 0xc5, 0xb4, 0x70, 0x0, 0x0,
- 0x0, 0x0, 0x4b, 0x22, 0xb0, 0x4c, 0x61, 0x0,
- 0x0, 0x18, 0x60, 0x5, 0x90, 0x1, 0xaf, 0xc3,
- 0x4, 0x40, 0x0, 0x7c, 0x0, 0x0, 0x2, 0x40,
- 0x5, 0x66, 0x66, 0xe7, 0x66, 0x66, 0x6b, 0xd1,
- 0x1, 0x0, 0xb, 0x40, 0x0, 0xc4, 0x0, 0x0,
- 0x0, 0x0, 0x5b, 0x30, 0x7, 0xa0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x37, 0xcf, 0x71, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x3a, 0x82, 0x8e, 0xb2, 0x0,
- 0x0, 0x25, 0x78, 0x61, 0x0, 0x0, 0x8e, 0x0,
- 0x3, 0x20, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0,
-
- /* U+5A18 "娘" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2, 0xc1, 0x0, 0x1, 0x91, 0x0, 0x0,
- 0x0, 0x5, 0xb0, 0x0, 0x0, 0x69, 0x1, 0x0,
- 0x0, 0x8, 0x60, 0x0, 0xc6, 0x77, 0x6e, 0x0,
- 0x4, 0x5d, 0x75, 0x91, 0xd0, 0x0, 0xd, 0x0,
- 0x1, 0x1d, 0x1, 0xc0, 0xd6, 0x66, 0x6d, 0x0,
- 0x0, 0x39, 0x4, 0x90, 0xd0, 0x0, 0xd, 0x0,
- 0x0, 0x75, 0x7, 0x50, 0xd0, 0x0, 0xd, 0x0,
- 0x0, 0xb1, 0xa, 0x20, 0xd6, 0x86, 0x6d, 0x0,
- 0x0, 0xc0, 0xc, 0x0, 0xd0, 0x80, 0x4, 0x80,
- 0x0, 0x87, 0x69, 0x0, 0xd0, 0x55, 0x3a, 0x30,
- 0x0, 0x2, 0xeb, 0x10, 0xd0, 0xc, 0x60, 0x0,
- 0x0, 0x4, 0x97, 0xc0, 0xd0, 0x26, 0xb1, 0x0,
- 0x0, 0x2a, 0x0, 0x40, 0xe9, 0x50, 0x7e, 0x71,
- 0x2, 0x80, 0x0, 0x0, 0xd4, 0x0, 0x4, 0x80,
- 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5A5A "婚" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa, 0x60, 0x0, 0x0, 0x27, 0xd9, 0x0,
- 0x0, 0xd, 0x20, 0xb, 0x56, 0xe2, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0xc, 0x0, 0xc0, 0x0, 0x0,
- 0x5, 0x7c, 0x69, 0x4c, 0x66, 0xd7, 0x67, 0xa0,
- 0x0, 0x76, 0xa, 0x3c, 0x0, 0x59, 0x0, 0x0,
- 0x0, 0xb2, 0xd, 0xc, 0x2, 0x2c, 0x40, 0x50,
- 0x0, 0xc0, 0xc, 0xe, 0xa5, 0x2, 0xd7, 0x90,
- 0x3, 0x90, 0x39, 0x5, 0x0, 0x0, 0x8, 0xd0,
- 0x7, 0x40, 0x85, 0x9, 0x66, 0x66, 0x6d, 0x0,
- 0x4, 0x84, 0xc0, 0xa, 0x30, 0x0, 0xd, 0x0,
- 0x0, 0x8, 0xe4, 0xa, 0x76, 0x66, 0x6d, 0x0,
- 0x0, 0xb, 0x2d, 0x3a, 0x30, 0x0, 0xd, 0x0,
- 0x0, 0x82, 0x2, 0x3a, 0x30, 0x0, 0xd, 0x0,
- 0x6, 0x20, 0x0, 0xa, 0x76, 0x66, 0x6d, 0x0,
- 0x10, 0x0, 0x0, 0x4, 0x0, 0x0, 0x2, 0x0,
-
- /* U+5A66 "婦" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x30, 0x5, 0x66, 0x66, 0x6a, 0x0,
- 0x0, 0xe, 0x0, 0x1, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0x3a, 0x0, 0x2, 0x86, 0x66, 0x6d, 0x0,
- 0x14, 0x89, 0x48, 0x10, 0x0, 0x0, 0xd, 0x0,
- 0x4, 0xb4, 0x2d, 0x26, 0x76, 0x66, 0x6d, 0x0,
- 0x0, 0xc0, 0xd, 0x30, 0x0, 0x0, 0x0, 0x30,
- 0x2, 0xa0, 0x3a, 0xa6, 0x66, 0xd6, 0x68, 0xd1,
- 0x6, 0x60, 0x68, 0xc0, 0x0, 0xd0, 0x4, 0x0,
- 0xa, 0x10, 0xb2, 0xa, 0x66, 0xe6, 0x6c, 0x0,
- 0x6, 0x73, 0xc0, 0xc, 0x0, 0xd0, 0xd, 0x0,
- 0x0, 0xb, 0xd3, 0xc, 0x0, 0xd0, 0xd, 0x0,
- 0x0, 0x1b, 0x3e, 0x2c, 0x0, 0xd0, 0xc, 0x0,
- 0x0, 0x91, 0x2, 0x1c, 0x0, 0xd3, 0xb8, 0x0,
- 0x6, 0x10, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x10, 0x0, 0x0, 0x0, 0x0, 0x60, 0x0, 0x0,
-
- /* U+5A92 "媒" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x8, 0x70, 0x2, 0xa0, 0x0, 0xa3, 0x0,
- 0x0, 0xa, 0x40, 0x1, 0xb0, 0x0, 0xd0, 0x10,
- 0x0, 0xd, 0x0, 0x66, 0xd6, 0x66, 0xe7, 0xb1,
- 0x3, 0x4d, 0x46, 0x51, 0xb0, 0x0, 0xd0, 0x0,
- 0x3, 0x69, 0x28, 0x71, 0xd6, 0x66, 0xe0, 0x0,
- 0x0, 0x84, 0xa, 0x31, 0xb0, 0x0, 0xd0, 0x0,
- 0x0, 0xb0, 0xc, 0x2, 0xd6, 0x66, 0xe0, 0x0,
- 0x0, 0xb0, 0xc, 0x1, 0x70, 0xa2, 0x40, 0x0,
- 0x4, 0x70, 0x48, 0x0, 0x0, 0xd0, 0x4, 0x70,
- 0x3, 0x84, 0x93, 0x67, 0x6d, 0xf9, 0x66, 0x51,
- 0x0, 0x7, 0xf5, 0x0, 0x5a, 0xd7, 0x10, 0x0,
- 0x0, 0xa, 0x4c, 0x42, 0xb0, 0xd1, 0xb1, 0x0,
- 0x0, 0x56, 0x1, 0x5a, 0x0, 0xd0, 0x3e, 0x72,
- 0x4, 0x60, 0x4, 0x60, 0x0, 0xe0, 0x3, 0x81,
- 0x2, 0x0, 0x1, 0x0, 0x0, 0x70, 0x0, 0x0,
-
- /* U+5ABD "媽" */
- 0x0, 0x8, 0x40, 0x3, 0x0, 0x0, 0x7, 0x10,
- 0x0, 0xd, 0x20, 0xd, 0x66, 0xe6, 0x66, 0x30,
- 0x0, 0x1d, 0x0, 0xd, 0x0, 0xd0, 0x4, 0x0,
- 0x16, 0x8b, 0x68, 0x4d, 0x55, 0xd5, 0x55, 0x0,
- 0x2, 0x95, 0xa, 0x3d, 0x0, 0xd0, 0x1, 0x0,
- 0x0, 0xc1, 0xc, 0xd, 0x66, 0xe6, 0x6b, 0x20,
- 0x0, 0xc0, 0xc, 0xd, 0x0, 0xd0, 0x0, 0x0,
- 0x4, 0x80, 0x39, 0xd, 0x0, 0xd0, 0x0, 0x50,
- 0x8, 0x40, 0x75, 0xc, 0x66, 0x66, 0x66, 0xf1,
- 0xa, 0x50, 0xc1, 0x0, 0x0, 0x20, 0x60, 0xe0,
- 0x0, 0x3a, 0xe3, 0x4, 0x51, 0x94, 0x77, 0xd0,
- 0x0, 0xa, 0x6d, 0x38, 0x38, 0x5b, 0x3b, 0xb0,
- 0x0, 0x65, 0x1, 0xa7, 0x27, 0x2, 0x5, 0x90,
- 0x4, 0x40, 0x0, 0x30, 0x0, 0x37, 0xae, 0x50,
- 0x12, 0x0, 0x0, 0x0, 0x0, 0x0, 0x56, 0x0,
-
- /* U+5ACC "嫌" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x2, 0xc0, 0x0, 0x27, 0x0, 0xb1, 0x0, 0x0,
- 0x59, 0x0, 0x0, 0xb3, 0x37, 0x1, 0x0, 0x8,
- 0x50, 0x27, 0x69, 0x6a, 0x68, 0xc1, 0x25, 0xc6,
- 0x59, 0x0, 0x92, 0xb1, 0x0, 0x0, 0x2d, 0x13,
- 0xa2, 0x6c, 0x7c, 0x6a, 0x30, 0x1, 0xb0, 0x57,
- 0x0, 0x92, 0xb1, 0xb1, 0x0, 0x47, 0x8, 0x45,
- 0x6b, 0x7c, 0x6c, 0xb5, 0x7, 0x30, 0xb0, 0x10,
- 0x92, 0xb1, 0xb1, 0x0, 0xb0, 0xb, 0x3, 0x6c,
- 0x7c, 0x6c, 0x10, 0x6, 0x88, 0x70, 0x3, 0xf2,
- 0xb6, 0x50, 0x0, 0x0, 0xdc, 0x20, 0xbb, 0x2b,
- 0x45, 0x0, 0x0, 0x65, 0x37, 0x74, 0x92, 0xb1,
- 0xa2, 0x0, 0x28, 0x0, 0x54, 0x9, 0x2b, 0x12,
- 0xe6, 0x16, 0x0, 0x33, 0x0, 0x92, 0xb1, 0x3,
- 0x1, 0x0, 0x0, 0x0, 0x4, 0x3, 0x0, 0x0,
-
- /* U+5B09 "嬉" */
- 0x0, 0xb, 0x10, 0x0, 0x0, 0xc1, 0x0, 0x0,
- 0x0, 0x2c, 0x0, 0x0, 0x0, 0xd0, 0x4, 0x40,
- 0x0, 0x58, 0x0, 0x57, 0x66, 0xe6, 0x66, 0x50,
- 0x13, 0x97, 0x38, 0x14, 0x66, 0xe6, 0x8b, 0x0,
- 0x15, 0xc4, 0x3d, 0x3, 0x10, 0x0, 0x3, 0x0,
- 0x0, 0xc0, 0x2a, 0xb, 0x66, 0x66, 0x7d, 0x0,
- 0x3, 0x90, 0x57, 0xb, 0x10, 0x0, 0x2b, 0x0,
- 0x7, 0x50, 0x93, 0x8, 0x96, 0x66, 0x96, 0x0,
- 0xb, 0x10, 0xc0, 0x0, 0x68, 0x5, 0x70, 0x10,
- 0xb, 0x53, 0xa1, 0x75, 0x68, 0x57, 0x56, 0xa1,
- 0x0, 0x2d, 0xc2, 0x7, 0x66, 0x66, 0x6a, 0x10,
- 0x0, 0x3a, 0x3d, 0xc, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0xa1, 0x1, 0xc, 0x0, 0x0, 0xd, 0x0,
- 0x8, 0x20, 0x0, 0xd, 0x66, 0x66, 0x6d, 0x0,
- 0x21, 0x0, 0x0, 0x5, 0x0, 0x0, 0x2, 0x0,
-
- /* U+5B50 "子" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x52, 0x0,
- 0x0, 0x6, 0x66, 0x66, 0x66, 0x68, 0xfa, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x4b, 0x30, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x5, 0x60, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x3, 0xd4, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x2, 0xd0, 0x0, 0x1, 0x30,
- 0x6, 0x66, 0x66, 0x67, 0xd6, 0x66, 0x6a, 0xc1,
- 0x0, 0x0, 0x0, 0x2, 0xc0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x2, 0xc0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x2, 0xc0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x2, 0xc0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x2, 0xc0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2, 0x14, 0xc0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x3, 0xaf, 0x80, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5B57 "字" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x9, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x0,
- 0x0, 0x28, 0x66, 0x66, 0x96, 0x66, 0x6b, 0x80,
- 0x0, 0x94, 0x0, 0x0, 0x0, 0x0, 0x19, 0x10,
- 0x1, 0xc2, 0x56, 0x66, 0x66, 0x6c, 0x40, 0x0,
- 0x0, 0x0, 0x20, 0x0, 0x0, 0xa9, 0x20, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x8, 0x30, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x3, 0xd1, 0x0, 0x0, 0x10,
- 0x6, 0x66, 0x66, 0x67, 0xd6, 0x66, 0x6a, 0xd1,
- 0x0, 0x0, 0x0, 0x2, 0xb0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x2, 0xb0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x2, 0xb0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x2, 0xb0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x5, 0xae, 0x90, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5B58 "存" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x2d, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x7b, 0x0, 0x0, 0xa, 0x30,
- 0x4, 0x66, 0x66, 0xf7, 0x66, 0x66, 0x66, 0x50,
- 0x0, 0x0, 0x5, 0xa0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc, 0x56, 0x66, 0x66, 0x99, 0x0,
- 0x0, 0x0, 0xd6, 0x0, 0x0, 0x4, 0xb3, 0x0,
- 0x0, 0x3, 0xe0, 0x0, 0x0, 0x76, 0x0, 0x0,
- 0x0, 0x1b, 0xe0, 0x0, 0x0, 0xf1, 0x0, 0x0,
- 0x0, 0xa1, 0xe0, 0x0, 0x0, 0xe0, 0x2, 0x80,
- 0x7, 0x10, 0xe0, 0x76, 0x66, 0xe6, 0x66, 0x61,
- 0x10, 0x0, 0xe0, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0xf0, 0x1, 0x8d, 0xc0, 0x0, 0x0,
- 0x0, 0x0, 0x50, 0x0, 0x5, 0x10, 0x0, 0x0,
-
- /* U+5B63 "季" */
- 0x0, 0x0, 0x0, 0x0, 0x3, 0x7c, 0x80, 0x0,
- 0x0, 0x3, 0x45, 0x79, 0xd8, 0x64, 0x30, 0x0,
- 0x0, 0x0, 0x0, 0x1, 0xb0, 0x0, 0x0, 0x20,
- 0x6, 0x66, 0x66, 0x68, 0xd6, 0x66, 0x6a, 0xc1,
- 0x0, 0x0, 0x1, 0xc6, 0xb6, 0x30, 0x0, 0x0,
- 0x0, 0x0, 0x2c, 0x42, 0xb0, 0x79, 0x20, 0x0,
- 0x0, 0x7, 0x91, 0x2, 0xb0, 0x4, 0xdd, 0xa3,
- 0x5, 0x62, 0x56, 0x66, 0x66, 0x6c, 0x24, 0x50,
- 0x0, 0x0, 0x0, 0x0, 0x5, 0x95, 0x20, 0x0,
- 0x0, 0x0, 0x0, 0x1, 0xd2, 0x0, 0x3, 0x20,
- 0x6, 0x76, 0x66, 0x66, 0xd6, 0x66, 0x6b, 0xa0,
- 0x0, 0x0, 0x0, 0x1, 0xb0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1, 0xb0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2, 0x9e, 0x90, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5B66 "学" */
- 0x0, 0x30, 0x3, 0x40, 0x0, 0x67, 0x0, 0x0,
- 0x3, 0xc1, 0xd, 0x40, 0xc, 0x50, 0x0, 0x0,
- 0xb, 0x80, 0x98, 0x3, 0x90, 0x0, 0x0, 0x40,
- 0x43, 0x2, 0x10, 0x80, 0x0, 0x40, 0xa, 0x66,
- 0x66, 0x66, 0x66, 0x66, 0xae, 0x11, 0xf0, 0x0,
- 0x0, 0x0, 0x1, 0x9, 0x0, 0x37, 0x18, 0x66,
- 0x66, 0x68, 0xe3, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x4, 0x92, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa,
- 0x40, 0x0, 0x20, 0x4, 0x66, 0x66, 0x66, 0xe6,
- 0x66, 0x6d, 0xb0, 0x0, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x10, 0x1d, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x2, 0x9f, 0xa0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+5B69 "孩" */
- 0x0, 0x0, 0x0, 0x0, 0x5, 0x60, 0x0, 0x0,
- 0x3, 0x66, 0x6c, 0x70, 0x0, 0xc5, 0x0, 0x0,
- 0x0, 0x0, 0x39, 0x56, 0x66, 0x97, 0x69, 0xc0,
- 0x0, 0x1, 0x60, 0x0, 0x1d, 0x10, 0x0, 0x0,
- 0x0, 0xd, 0x20, 0x0, 0x86, 0x1, 0x50, 0x0,
- 0x0, 0xd, 0x0, 0x22, 0x70, 0x8, 0xb0, 0x0,
- 0x0, 0xd, 0x57, 0x1c, 0x97, 0x6e, 0x10, 0x0,
- 0x1, 0x7f, 0x40, 0x3, 0x0, 0xb4, 0x18, 0x0,
- 0x3f, 0x7d, 0x0, 0x0, 0x8, 0x60, 0x99, 0x0,
- 0x2, 0xd, 0x0, 0x0, 0x86, 0x6, 0xb0, 0x0,
- 0x0, 0xd, 0x0, 0x38, 0x20, 0x4e, 0x0, 0x0,
- 0x0, 0xd, 0x2, 0x30, 0x6, 0xa2, 0xb2, 0x0,
- 0x1, 0xd, 0x0, 0x2, 0x96, 0x0, 0x3e, 0x20,
- 0x2, 0xbc, 0x4, 0x75, 0x0, 0x0, 0x9, 0x50,
- 0x0, 0x10, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5B6B "孫" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x8c, 0x0,
- 0x5, 0x66, 0x6d, 0x55, 0x59, 0xb6, 0x42, 0x0,
- 0x0, 0x0, 0x39, 0x10, 0xa, 0x80, 0x0, 0x0,
- 0x0, 0x1, 0x70, 0x0, 0x58, 0x1, 0x80, 0x0,
- 0x0, 0xe, 0x10, 0x7, 0x93, 0x4c, 0x70, 0x0,
- 0x0, 0xd, 0x0, 0x8, 0x74, 0xa5, 0x0, 0x0,
- 0x0, 0xd, 0x25, 0x0, 0x9, 0x40, 0x50, 0x0,
- 0x0, 0x5e, 0x60, 0x4, 0x91, 0x0, 0x4a, 0x0,
- 0x3e, 0x7d, 0x0, 0x2f, 0xa8, 0xe5, 0x49, 0x80,
- 0x2, 0xd, 0x0, 0x1, 0x0, 0xd0, 0x1, 0x30,
- 0x0, 0xd, 0x0, 0x7, 0x90, 0xd0, 0x70, 0x0,
- 0x0, 0xd, 0x0, 0x2b, 0x0, 0xd0, 0x2c, 0x20,
- 0x1, 0xd, 0x1, 0x81, 0x0, 0xd0, 0x6, 0xd0,
- 0x3, 0xdb, 0x4, 0x1, 0x8f, 0xb0, 0x0, 0x70,
- 0x0, 0x20, 0x0, 0x0, 0x5, 0x10, 0x0, 0x0,
-
- /* U+5B78 "學" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0x39, 0x31, 0xb2, 0x0, 0x50, 0x0,
- 0x0, 0xd, 0x30, 0xa, 0xb2, 0x76, 0xe2, 0x0,
- 0x0, 0xc, 0x74, 0x32, 0x62, 0x66, 0xd0, 0x0,
- 0x0, 0xb, 0x1, 0x21, 0xa2, 0x0, 0xc0, 0x0,
- 0x0, 0xa, 0x77, 0xc, 0xa0, 0x66, 0xb0, 0x0,
- 0x3, 0x9, 0x20, 0x52, 0x90, 0x1, 0xb0, 0x20,
- 0x8, 0x77, 0x66, 0x66, 0x66, 0x66, 0x79, 0xd0,
- 0xe, 0x10, 0x56, 0x66, 0x66, 0xa2, 0x8, 0x0,
- 0x4, 0x0, 0x0, 0x0, 0x1a, 0x72, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x9, 0x90, 0x0, 0x5, 0x10,
- 0x6, 0x66, 0x66, 0x6c, 0x86, 0x66, 0x6b, 0x90,
- 0x0, 0x0, 0x0, 0xa, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x6, 0xbf, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x23, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5B83 "它" */
- 0x0, 0x0, 0x0, 0x19, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0, 0x2,
- 0x96, 0x66, 0x67, 0xb6, 0x66, 0x6c, 0x10, 0x85,
- 0x0, 0x0, 0x0, 0x0, 0x6, 0xa1, 0x2f, 0x30,
- 0x20, 0x0, 0x0, 0x0, 0x70, 0x0, 0x0, 0xc,
- 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc1,
- 0x0, 0x2, 0xc2, 0x0, 0x0, 0x0, 0xc, 0x10,
- 0x7, 0xc7, 0x20, 0x0, 0x0, 0x0, 0xc3, 0x78,
- 0x30, 0x0, 0x0, 0x0, 0x0, 0xc, 0x50, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xc1, 0x0, 0x0,
- 0x0, 0x50, 0x0, 0x0, 0xc, 0x10, 0x0, 0x0,
- 0x8, 0x0, 0x0, 0x0, 0xc2, 0x0, 0x0, 0x0,
- 0xc3, 0x0, 0x0, 0x6, 0xdc, 0xcc, 0xcc, 0xcd,
- 0x50,
-
- /* U+5B85 "宅" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x9, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x7, 0xa0, 0x0, 0x0, 0x0,
- 0x0, 0x28, 0x66, 0x67, 0xa6, 0x66, 0x6a, 0x60,
- 0x0, 0x85, 0x0, 0x0, 0x0, 0x30, 0xb, 0x30,
- 0x0, 0xc2, 0x0, 0x2, 0x6b, 0xe8, 0x22, 0x0,
- 0x0, 0x24, 0x56, 0x9d, 0x41, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1c, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1c, 0x0, 0x0, 0x7d, 0x20,
- 0x0, 0x0, 0x0, 0x4d, 0x66, 0x66, 0x52, 0x0,
- 0x6, 0x66, 0x65, 0x4c, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1c, 0x0, 0x0, 0x0, 0x40,
- 0x0, 0x0, 0x0, 0x1c, 0x0, 0x0, 0x0, 0x60,
- 0x0, 0x0, 0x0, 0x1d, 0x0, 0x0, 0x3, 0xa0,
- 0x0, 0x0, 0x0, 0xb, 0xcc, 0xcc, 0xcd, 0xa0,
-
- /* U+5B87 "宇" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x9, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x4d, 0x0, 0x0, 0x0, 0x0, 0x19,
- 0x66, 0x66, 0xa6, 0x66, 0x6b, 0x40, 0x7, 0x70,
- 0x0, 0x0, 0x0, 0x0, 0xc3, 0x0, 0xc2, 0x0,
- 0x0, 0x0, 0x3, 0x51, 0x0, 0x0, 0x26, 0x66,
- 0x68, 0x66, 0xb8, 0x0, 0x0, 0x0, 0x0, 0x2,
- 0xb0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2b,
- 0x0, 0x0, 0x32, 0x4, 0x76, 0x66, 0x67, 0xd6,
- 0x66, 0x6b, 0xa0, 0x0, 0x0, 0x0, 0x2b, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xb0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x2b, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x2, 0x15, 0xb0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x3a, 0xf7, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5B88 "守" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2, 0x90, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x9, 0xa0, 0x0, 0x0, 0x0, 0x5,
- 0x0, 0x0, 0x35, 0x0, 0x1, 0x70, 0x0, 0xb6,
- 0x66, 0x66, 0x66, 0x66, 0xad, 0x20, 0x3f, 0x0,
- 0x0, 0x0, 0xb3, 0x8, 0x0, 0x1, 0x10, 0x0,
- 0x0, 0xd, 0x10, 0x1, 0x0, 0x56, 0x66, 0x66,
- 0x66, 0xe6, 0x68, 0xe3, 0x1, 0x11, 0x0, 0x0,
- 0xd, 0x10, 0x0, 0x0, 0x0, 0xa, 0x10, 0x0,
- 0xd1, 0x0, 0x0, 0x0, 0x0, 0x5d, 0x0, 0xd,
- 0x10, 0x0, 0x0, 0x0, 0x0, 0xe0, 0x0, 0xd1,
- 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0xd, 0x10,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe1, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x17, 0xee, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x3, 0x10, 0x0, 0x0,
-
- /* U+5B89 "安" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x8, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x2, 0xe0, 0x0, 0x0, 0x0,
- 0x0, 0xa, 0x66, 0x66, 0xa6, 0x66, 0x6c, 0x30,
- 0x0, 0x77, 0x0, 0x0, 0x0, 0x0, 0x3a, 0x10,
- 0x0, 0xa2, 0x0, 0x77, 0x0, 0x0, 0x40, 0x0,
- 0x0, 0x0, 0x0, 0xc3, 0x0, 0x0, 0x1, 0x0,
- 0x5, 0x66, 0x66, 0xe6, 0x66, 0x66, 0x6e, 0x90,
- 0x0, 0x0, 0x8, 0x60, 0x0, 0x97, 0x0, 0x0,
- 0x0, 0x0, 0xc, 0x0, 0x2, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0x86, 0x0, 0xa, 0x60, 0x0, 0x0,
- 0x0, 0x0, 0x26, 0x78, 0x8c, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x4, 0xda, 0xb5, 0x0, 0x0,
- 0x0, 0x0, 0x1, 0x8a, 0x10, 0x29, 0xe6, 0x0,
- 0x0, 0x15, 0x88, 0x20, 0x0, 0x0, 0x4e, 0x10,
- 0x3, 0x42, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5B8C "完" */
- 0x0, 0x0, 0x0, 0x9, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x6, 0xa0, 0x0, 0x0, 0x0,
- 0x0, 0x67, 0x66, 0x67, 0x96, 0x66, 0x69, 0x70,
- 0x0, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x9, 0x40,
- 0x1, 0x90, 0x0, 0x0, 0x0, 0x24, 0x3, 0x0,
- 0x0, 0x3, 0x76, 0x66, 0x66, 0x66, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
- 0x0, 0x56, 0x66, 0x66, 0x66, 0x66, 0x9e, 0x20,
- 0x0, 0x10, 0x4, 0xa0, 0xd, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x6, 0x70, 0xd, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa, 0x40, 0xd, 0x0, 0x0, 0x30,
- 0x0, 0x0, 0x1d, 0x0, 0xd, 0x0, 0x0, 0x60,
- 0x0, 0x0, 0xa4, 0x0, 0xe, 0x0, 0x0, 0xc0,
- 0x0, 0x49, 0x30, 0x0, 0x9, 0xdc, 0xcd, 0xb1,
- 0x5, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5B98 "官" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x1a, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x6b, 0x0, 0x0, 0x0, 0x0, 0x86,
- 0x66, 0x66, 0x96, 0x66, 0x69, 0xa0, 0x2d, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xa5, 0x7, 0x70, 0x96,
- 0x66, 0x66, 0x6b, 0x23, 0x0, 0x0, 0xe, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0xe, 0x66, 0x66,
- 0x66, 0xe0, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x2, 0x0, 0x0, 0x0, 0xe, 0x66, 0x66, 0x66,
- 0x96, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x8,
- 0x60, 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x85,
- 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x8, 0x50,
- 0x0, 0x0, 0xe, 0x66, 0x66, 0x66, 0xb5, 0x0,
- 0x0, 0x0, 0x40, 0x0, 0x0, 0x1, 0x0, 0x0,
-
- /* U+5B99 "宙" */
- 0x0, 0x0, 0x0, 0x38, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb6, 0x0, 0x0, 0x0, 0x0,
- 0x84, 0x44, 0x47, 0x64, 0x44, 0x49, 0x0, 0x3a,
- 0x22, 0x22, 0x62, 0x22, 0x25, 0xb2, 0xa, 0x60,
- 0x0, 0xd, 0x30, 0x0, 0x50, 0x0, 0x0, 0x0,
- 0x0, 0xd0, 0x0, 0x0, 0x0, 0x0, 0xc, 0x66,
- 0x6e, 0x66, 0x6b, 0x70, 0x0, 0x0, 0xe0, 0x0,
- 0xd0, 0x0, 0xa4, 0x0, 0x0, 0xe, 0x0, 0xd,
- 0x0, 0xa, 0x40, 0x0, 0x0, 0xe6, 0x66, 0xe6,
- 0x66, 0xc4, 0x0, 0x0, 0xe, 0x0, 0xd, 0x0,
- 0xa, 0x40, 0x0, 0x0, 0xe0, 0x0, 0xd0, 0x0,
- 0xa4, 0x0, 0x0, 0xe, 0x0, 0xd, 0x0, 0xa,
- 0x40, 0x0, 0x0, 0xe6, 0x66, 0x66, 0x66, 0xc4,
- 0x0, 0x0, 0x7, 0x0, 0x0, 0x0, 0x4, 0x10,
- 0x0,
-
- /* U+5B9A "定" */
- 0x0, 0x0, 0x0, 0x81, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x6, 0xa0, 0x0, 0x0, 0x0, 0x1,
- 0x96, 0x66, 0x79, 0x66, 0x66, 0xb5, 0x0, 0x95,
- 0x0, 0x0, 0x0, 0x0, 0xc, 0x40, 0x1c, 0x10,
- 0x0, 0x0, 0x0, 0x4, 0x10, 0x0, 0x36, 0x66,
- 0x66, 0x66, 0x66, 0xd9, 0x0, 0x0, 0x10, 0x0,
- 0x3a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x61, 0x3,
- 0xa0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x40, 0x3a,
- 0x0, 0x15, 0x0, 0x0, 0x1, 0xe0, 0x3, 0xc6,
- 0x67, 0x81, 0x0, 0x0, 0x6b, 0x30, 0x3a, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x16, 0x43, 0xa0, 0x0,
- 0x0, 0x0, 0x5, 0x70, 0x7, 0xcc, 0x42, 0x11,
- 0x23, 0x3, 0x60, 0x0, 0x1, 0x7b, 0xde, 0xff,
- 0x40, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+5B9E "实" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa, 0x50, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x3f, 0x0, 0x0, 0x0, 0x0, 0x66,
- 0x66, 0x66, 0xb6, 0x66, 0x69, 0x50, 0xd, 0x0,
- 0x0, 0x2, 0x0, 0x0, 0xc7, 0x7, 0xc0, 0x1a,
- 0x40, 0x7c, 0x0, 0x42, 0x0, 0x0, 0x0, 0x3f,
- 0x8, 0x80, 0x0, 0x0, 0x0, 0x6, 0x20, 0x50,
- 0x96, 0x0, 0x0, 0x0, 0x0, 0x1e, 0x40, 0xa,
- 0x40, 0x0, 0x0, 0x0, 0x0, 0x66, 0x0, 0xc2,
- 0x0, 0x4, 0x20, 0x67, 0x66, 0x66, 0x6e, 0x66,
- 0x66, 0xa9, 0x0, 0x0, 0x0, 0x5, 0xc0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x2, 0xd3, 0x8a, 0x50,
- 0x0, 0x0, 0x0, 0x4, 0xc3, 0x0, 0x2c, 0xe3,
- 0x0, 0x1, 0x5a, 0x70, 0x0, 0x0, 0x9, 0xb0,
- 0x4, 0x51, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0,
-
- /* U+5B9F "実" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x1, 0xb3, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x6, 0xb0, 0x0, 0x0, 0x0, 0xa,
- 0x66, 0x66, 0x79, 0x66, 0x66, 0xc2, 0x4, 0xa0,
- 0x0, 0x4, 0x0, 0x0, 0x49, 0x20, 0xb5, 0x0,
- 0x0, 0xb4, 0x0, 0x4, 0x0, 0x0, 0x36, 0x66,
- 0x6d, 0x76, 0x6b, 0xa0, 0x0, 0x0, 0x10, 0x0,
- 0xb2, 0x0, 0x0, 0x0, 0x0, 0x5, 0x66, 0x6d,
- 0x76, 0x6e, 0x50, 0x0, 0x0, 0x0, 0x0, 0xb2,
- 0x0, 0x1, 0x30, 0x4, 0x76, 0x66, 0x6e, 0x86,
- 0x66, 0x9b, 0x10, 0x0, 0x0, 0x2, 0xd5, 0x10,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xb5, 0x9, 0x10,
- 0x0, 0x0, 0x0, 0x0, 0x98, 0x0, 0x2c, 0x61,
- 0x0, 0x0, 0x6, 0xa4, 0x0, 0x0, 0x1b, 0xfb,
- 0x30, 0x35, 0x20, 0x0, 0x0, 0x0, 0x3, 0x20,
-
- /* U+5BA2 "客" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x3b, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x30, 0x0, 0x7, 0x70, 0x0, 0x2, 0x0,
- 0x1, 0xb6, 0x67, 0x66, 0x66, 0x66, 0x6e, 0x70,
- 0xa, 0x70, 0x9, 0xa0, 0x0, 0x0, 0x57, 0x0,
- 0x5, 0x0, 0x3f, 0x76, 0x66, 0xd7, 0x20, 0x0,
- 0x0, 0x1, 0xb2, 0x60, 0x8, 0xb0, 0x0, 0x0,
- 0x0, 0x9, 0x10, 0x38, 0x7a, 0x0, 0x0, 0x0,
- 0x0, 0x60, 0x0, 0xb, 0xe4, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x4, 0xb4, 0x8, 0xc7, 0x30, 0x0,
- 0x0, 0x4, 0xa6, 0x0, 0x0, 0x1c, 0xef, 0xa1,
- 0x15, 0x63, 0xd6, 0x66, 0x66, 0x6e, 0x13, 0x10,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x0, 0xd6, 0x66, 0x66, 0x6d, 0x0, 0x0,
- 0x0, 0x0, 0x40, 0x0, 0x0, 0x3, 0x0, 0x0,
-
- /* U+5BA4 "室" */
- 0x0, 0x0, 0x0, 0x1a, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x6, 0xa0, 0x0, 0x0, 0x0,
- 0x0, 0x96, 0x66, 0x66, 0x76, 0x66, 0x6b, 0x10,
- 0x4, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x65, 0x0,
- 0x6, 0x56, 0x66, 0x66, 0x66, 0x6e, 0x50, 0x0,
- 0x0, 0x1, 0x0, 0xb5, 0x0, 0x20, 0x0, 0x0,
- 0x0, 0x0, 0x19, 0x20, 0x0, 0x88, 0x0, 0x0,
- 0x0, 0x8, 0xd6, 0x66, 0x66, 0x6e, 0x80, 0x0,
- 0x0, 0x6, 0x95, 0x37, 0x20, 0x4, 0x80, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x60, 0x1, 0x0, 0x0,
- 0x0, 0x7, 0x66, 0x6c, 0x86, 0x6c, 0x70, 0x0,
- 0x0, 0x0, 0x0, 0xa, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa, 0x30, 0x0, 0x2, 0x0,
- 0x5, 0x66, 0x66, 0x6c, 0x86, 0x66, 0x6e, 0x90,
- 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5BB3 "害" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa2, 0x0, 0x0, 0x0, 0x3, 0x0,
- 0x0, 0x57, 0x0, 0x0, 0x40, 0xa, 0x66, 0x66,
- 0x67, 0x66, 0x66, 0xe4, 0x5b, 0x0, 0x0, 0x1e,
- 0x0, 0x25, 0x10, 0x0, 0x56, 0x66, 0x6d, 0x66,
- 0x77, 0x0, 0x0, 0x0, 0x0, 0x1c, 0x0, 0x31,
- 0x0, 0x0, 0x56, 0x66, 0x6d, 0x66, 0x75, 0x0,
- 0x0, 0x0, 0x0, 0x1c, 0x0, 0x0, 0x82, 0x57,
- 0x66, 0x66, 0x7d, 0x66, 0x66, 0x64, 0x0, 0x3,
- 0x0, 0x29, 0x0, 0x40, 0x0, 0x0, 0xe, 0x66,
- 0x66, 0x66, 0xc5, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0xa2, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0,
- 0xa2, 0x0, 0x0, 0xe, 0x66, 0x66, 0x66, 0xc2,
- 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x51, 0x0,
-
- /* U+5BB5 "宵" */
- 0x0, 0x0, 0x4, 0x91, 0x0, 0x0, 0x0, 0x1,
- 0x0, 0x0, 0x87, 0x0, 0x0, 0x10, 0x6, 0x76,
- 0x66, 0x66, 0x66, 0x66, 0xc7, 0xd, 0x34, 0x0,
- 0x18, 0x0, 0x51, 0x80, 0x15, 0x7, 0xc0, 0x1d,
- 0x8, 0x92, 0x0, 0x0, 0x0, 0xb2, 0x1d, 0x46,
- 0x0, 0x0, 0x0, 0x28, 0x66, 0x6d, 0x76, 0xa4,
- 0x0, 0x0, 0x2a, 0x0, 0x0, 0x0, 0xb2, 0x0,
- 0x0, 0x2c, 0x66, 0x66, 0x66, 0xc2, 0x0, 0x0,
- 0x2a, 0x0, 0x0, 0x0, 0xb2, 0x0, 0x0, 0x2c,
- 0x66, 0x66, 0x66, 0xc2, 0x0, 0x0, 0x2a, 0x0,
- 0x0, 0x0, 0xb2, 0x0, 0x0, 0x2a, 0x0, 0x0,
- 0x0, 0xb2, 0x0, 0x0, 0x2a, 0x0, 0x0, 0x6c,
- 0xe0, 0x0, 0x0, 0x12, 0x0, 0x0, 0x2, 0x20,
- 0x0,
-
- /* U+5BB6 "家" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1b, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0x30, 0x0, 0x4, 0x90, 0x0, 0x2, 0x10,
- 0x0, 0xa6, 0x66, 0x66, 0x66, 0x66, 0x6d, 0x90,
- 0x4, 0xc0, 0x0, 0x0, 0x0, 0x2, 0x16, 0x0,
- 0x0, 0x4, 0x66, 0x7a, 0x66, 0x6a, 0x20, 0x0,
- 0x0, 0x0, 0x2, 0xd4, 0x0, 0x2, 0x20, 0x0,
- 0x0, 0x0, 0x5a, 0x29, 0x10, 0x3c, 0x70, 0x0,
- 0x0, 0x47, 0x40, 0x4b, 0xb6, 0x90, 0x0, 0x0,
- 0x3, 0x10, 0x6, 0x90, 0xb4, 0x70, 0x0, 0x0,
- 0x0, 0x2, 0x95, 0x7, 0xe8, 0x36, 0x0, 0x0,
- 0x2, 0x65, 0x0, 0x8a, 0x3b, 0xb, 0x30, 0x0,
- 0x0, 0x0, 0x2a, 0x50, 0x3b, 0x1, 0xd9, 0x30,
- 0x0, 0x17, 0x70, 0x0, 0x59, 0x0, 0x1a, 0x50,
- 0x5, 0x40, 0x0, 0x6c, 0xe3, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x3, 0x20, 0x0, 0x0, 0x0,
-
- /* U+5BB9 "容" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa, 0x70, 0x0, 0x0, 0x0, 0x2,
- 0x0, 0x0, 0x1d, 0x0, 0x0, 0x1, 0x0, 0x86,
- 0x66, 0x66, 0x66, 0x66, 0x6a, 0xb0, 0x1e, 0x10,
- 0x82, 0x0, 0x40, 0x0, 0x81, 0x1, 0x40, 0x6c,
- 0x21, 0x71, 0x9a, 0x20, 0x0, 0x0, 0x59, 0x0,
- 0xad, 0x0, 0x6f, 0x20, 0x0, 0x54, 0x0, 0x6b,
- 0x17, 0x0, 0x63, 0x0, 0x0, 0x0, 0x6c, 0x0,
- 0x3a, 0x10, 0x0, 0x0, 0x0, 0x6a, 0x0, 0x0,
- 0x2c, 0x94, 0x0, 0x1, 0x88, 0xb6, 0x66, 0x66,
- 0xe9, 0xed, 0x24, 0x50, 0x2b, 0x0, 0x0, 0xe,
- 0x0, 0x10, 0x0, 0x2, 0xb0, 0x0, 0x0, 0xe0,
- 0x0, 0x0, 0x0, 0x2b, 0x0, 0x0, 0xe, 0x0,
- 0x0, 0x0, 0x3, 0xd6, 0x66, 0x66, 0xe0, 0x0,
- 0x0, 0x0, 0x13, 0x0, 0x0, 0x4, 0x0, 0x0,
-
- /* U+5BBF "宿" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x95, 0x0, 0x0, 0x0, 0x0,
- 0x10, 0x0, 0x2, 0xc0, 0x0, 0x1, 0x0, 0xb,
- 0x66, 0x66, 0x66, 0x66, 0x67, 0xf2, 0x6, 0xa0,
- 0xb5, 0x0, 0x0, 0x0, 0x63, 0x0, 0x62, 0x2d,
- 0x26, 0x66, 0x66, 0x66, 0xd4, 0x0, 0x9, 0x40,
- 0x10, 0xb, 0x40, 0x0, 0x0, 0x2, 0xe3, 0x0,
- 0x0, 0x90, 0x1, 0x0, 0x0, 0x9d, 0x10, 0xd,
- 0x68, 0x66, 0xe2, 0x0, 0x53, 0xc1, 0x0, 0xe0,
- 0x0, 0xe, 0x0, 0x23, 0xc, 0x10, 0xe, 0x0,
- 0x0, 0xe0, 0x0, 0x0, 0xc1, 0x0, 0xe6, 0x66,
- 0x6e, 0x0, 0x0, 0xc, 0x10, 0xe, 0x0, 0x0,
- 0xe0, 0x0, 0x0, 0xc1, 0x0, 0xe0, 0x0, 0xe,
- 0x0, 0x0, 0xd, 0x10, 0xe, 0x66, 0x66, 0xf0,
- 0x0, 0x0, 0x60, 0x0, 0x50, 0x0, 0x5, 0x0,
-
- /* U+5BC4 "寄" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb1, 0x0, 0x0, 0x0, 0x0,
- 0x30, 0x0, 0x6, 0x10, 0x0, 0x5, 0x0, 0xb,
- 0x66, 0x66, 0x96, 0x66, 0x68, 0xd1, 0x8, 0x80,
- 0x0, 0x3d, 0x0, 0x3, 0x40, 0x0, 0x0, 0x66,
- 0x6d, 0x86, 0x66, 0x95, 0x0, 0x0, 0x0, 0x8,
- 0x61, 0x78, 0x10, 0x0, 0x0, 0x0, 0x57, 0x30,
- 0x0, 0x5b, 0x0, 0x40, 0x7, 0x76, 0x66, 0x66,
- 0x66, 0x69, 0x6b, 0x70, 0x0, 0x30, 0x0, 0x30,
- 0x0, 0xe0, 0x0, 0x0, 0xd, 0x66, 0x6d, 0x70,
- 0xe, 0x0, 0x0, 0x0, 0xc1, 0x0, 0xb2, 0x0,
- 0xe0, 0x0, 0x0, 0xc, 0x66, 0x6d, 0x40, 0xe,
- 0x0, 0x0, 0x0, 0xc0, 0x0, 0x63, 0x0, 0xe0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x18, 0xfb, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x10, 0x0,
-
- /* U+5BC6 "密" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa0, 0x0, 0x0, 0x0, 0x0,
- 0x30, 0x0, 0xa, 0x40, 0x0, 0x3, 0x10, 0xb,
- 0x66, 0x66, 0x66, 0x66, 0x66, 0xd8, 0x8, 0x90,
- 0x0, 0x48, 0x0, 0x93, 0x25, 0x0, 0x10, 0x0,
- 0xb2, 0xd0, 0x8c, 0x30, 0x0, 0x0, 0x8, 0xd,
- 0x1, 0x99, 0x0, 0x94, 0x0, 0x9, 0x90, 0xd2,
- 0xb5, 0x4, 0x1, 0xf2, 0x0, 0x60, 0x2e, 0x91,
- 0x0, 0x84, 0x6, 0x0, 0x25, 0x77, 0x8b, 0xbb,
- 0xba, 0x40, 0x0, 0x1, 0x0, 0x0, 0xa, 0x30,
- 0x0, 0x0, 0x0, 0x0, 0xc2, 0x0, 0xc0, 0x0,
- 0x2c, 0x0, 0x0, 0xd, 0x0, 0xc, 0x0, 0x2,
- 0xb0, 0x0, 0x0, 0xd0, 0x0, 0xc0, 0x0, 0x2b,
- 0x0, 0x0, 0x1b, 0x66, 0x67, 0x66, 0x67, 0xb0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
-
- /* U+5BCC "富" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2, 0xb1, 0x0, 0x0, 0x0, 0x3, 0x0,
- 0x0, 0x84, 0x0, 0x0, 0x30, 0xb, 0x66, 0x66,
- 0x66, 0x66, 0x68, 0xe1, 0x79, 0x0, 0x0, 0x0,
- 0x5, 0x46, 0x10, 0x0, 0x27, 0x66, 0x66, 0x66,
- 0x50, 0x0, 0x0, 0x7, 0x66, 0x66, 0x6b, 0x40,
- 0x0, 0x0, 0x9, 0x30, 0x0, 0xb, 0x10, 0x0,
- 0x0, 0x9, 0x76, 0x66, 0x6d, 0x20, 0x0, 0x0,
- 0x23, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0xd6,
- 0x66, 0xc6, 0x66, 0xb7, 0x0, 0x0, 0xd1, 0x0,
- 0xd0, 0x0, 0x94, 0x0, 0x0, 0xc6, 0x66, 0xe6,
- 0x66, 0xb4, 0x0, 0x0, 0xd1, 0x0, 0xd0, 0x0,
- 0x95, 0x0, 0x0, 0xd6, 0x66, 0x96, 0x66, 0xb5,
- 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x20, 0x0,
-
- /* U+5BD2 "寒" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb1, 0x0, 0x0, 0x0, 0x0,
- 0x30, 0x0, 0x8, 0x30, 0x0, 0x6, 0x10, 0x68,
- 0x66, 0x86, 0x66, 0x86, 0x66, 0xd5, 0x1d, 0x10,
- 0xd, 0x10, 0xe, 0x13, 0x22, 0x0, 0x5, 0x66,
- 0xe6, 0x66, 0xe6, 0x95, 0x0, 0x0, 0x0, 0xd,
- 0x0, 0xd, 0x4, 0x10, 0x0, 0x3, 0x66, 0xe6,
- 0x66, 0xe6, 0x75, 0x0, 0x0, 0x0, 0xd, 0x0,
- 0xd, 0x0, 0x1a, 0x11, 0x66, 0x66, 0xf6, 0x66,
- 0xa6, 0x66, 0x74, 0x0, 0x0, 0x88, 0x16, 0x3,
- 0x60, 0x0, 0x0, 0x0, 0x5a, 0x0, 0x3e, 0x17,
- 0xa2, 0x0, 0x0, 0x67, 0x2, 0x0, 0x40, 0x5,
- 0xed, 0x41, 0x52, 0x0, 0x26, 0xa9, 0x40, 0x0,
- 0x40, 0x0, 0x0, 0x0, 0x0, 0x5e, 0x70, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x0, 0x0,
-
- /* U+5BDD "寝" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1b, 0x50, 0x0, 0x0, 0x0,
- 0x0, 0x20, 0x0, 0x1, 0x90, 0x0, 0x2, 0x0,
- 0x0, 0xa6, 0x66, 0x66, 0x66, 0x66, 0x6d, 0x50,
- 0x2, 0xd0, 0x50, 0x0, 0x0, 0x0, 0x53, 0x0,
- 0x0, 0x10, 0xe1, 0x17, 0x66, 0x66, 0xe1, 0x0,
- 0x2, 0x70, 0xd0, 0x4, 0x65, 0x55, 0xd0, 0x0,
- 0x0, 0xc2, 0xd0, 0x16, 0x66, 0x66, 0xe0, 0x0,
- 0x0, 0x50, 0xd0, 0x22, 0x0, 0x0, 0x22, 0x0,
- 0x0, 0x6, 0xd0, 0xb6, 0x66, 0x66, 0x6e, 0x30,
- 0x5, 0xb2, 0xd7, 0x75, 0x66, 0x68, 0x82, 0x0,
- 0x9, 0x10, 0xd0, 0x0, 0x50, 0xc, 0x30, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x45, 0x95, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0xc, 0xc1, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x5, 0x82, 0x3b, 0xca, 0x70,
- 0x0, 0x0, 0x62, 0x41, 0x0, 0x0, 0x14, 0x10,
-
- /* U+5BDF "察" */
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2, 0xc0, 0x0, 0x0, 0x0, 0x5,
- 0x66, 0x66, 0x6b, 0x66, 0x66, 0x6c, 0x0, 0xc0,
- 0x46, 0x0, 0x0, 0x0, 0x8, 0x50, 0x36, 0xb,
- 0x70, 0x31, 0x30, 0x0, 0x70, 0x0, 0x5, 0xc6,
- 0x6e, 0x58, 0x66, 0x8e, 0x30, 0x1, 0xb8, 0x46,
- 0x90, 0x34, 0xa, 0x10, 0x0, 0x95, 0x19, 0xc1,
- 0x0, 0x87, 0x10, 0x0, 0x40, 0xa2, 0xb9, 0x66,
- 0x98, 0xb6, 0x0, 0x0, 0x4, 0xa2, 0x0, 0x0,
- 0x1, 0xae, 0xa2, 0x4, 0xa6, 0x66, 0x67, 0x66,
- 0xaa, 0x44, 0x4, 0x10, 0x4, 0x2, 0xb0, 0x0,
- 0x0, 0x0, 0x0, 0x7, 0xc2, 0x2b, 0x6, 0x70,
- 0x0, 0x0, 0x8, 0x70, 0x2, 0xb0, 0x4, 0xe3,
- 0x0, 0x27, 0x20, 0x28, 0xd9, 0x0, 0x5, 0x90,
- 0x0, 0x0, 0x0, 0x5, 0x10, 0x0, 0x0, 0x0,
-
- /* U+5BE6 "實" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x9, 0x40, 0x0, 0x0, 0x0, 0x0,
- 0x20, 0x0, 0x2a, 0x0, 0x0, 0x0, 0x0, 0x2a,
- 0x66, 0x66, 0x66, 0x66, 0x6a, 0xa0, 0x9, 0x56,
- 0x66, 0x66, 0x66, 0x69, 0x70, 0x0, 0x0, 0xa1,
- 0x0, 0xb0, 0x4, 0x93, 0x90, 0x47, 0x6d, 0x66,
- 0x8b, 0x66, 0xa9, 0x66, 0x10, 0x1, 0xc6, 0x67,
- 0x86, 0x6a, 0x40, 0x0, 0x0, 0xa, 0x55, 0x55,
- 0x55, 0x6a, 0x0, 0x0, 0x0, 0xe6, 0x66, 0x66,
- 0x67, 0xa0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0,
- 0x3a, 0x0, 0x0, 0x0, 0xe6, 0x66, 0x66, 0x68,
- 0xa0, 0x0, 0x0, 0xe, 0x66, 0x66, 0x66, 0x7a,
- 0x0, 0x0, 0x0, 0x23, 0xc1, 0x5, 0x75, 0x10,
- 0x0, 0x0, 0x38, 0x82, 0x0, 0x1, 0x9e, 0x20,
- 0x0, 0x42, 0x0, 0x0, 0x0, 0x0, 0x43, 0x0,
-
- /* U+5BEB "寫" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x92, 0x0, 0x0, 0x0, 0x0,
- 0x10, 0x0, 0x5, 0xa0, 0x0, 0x0, 0x0, 0xa,
- 0x66, 0x66, 0x67, 0x66, 0x66, 0xd4, 0x8, 0x70,
- 0x3, 0xb1, 0x0, 0x5, 0x28, 0x0, 0x61, 0xb5,
- 0x41, 0x6, 0x76, 0xe3, 0x0, 0x0, 0xb, 0x10,
- 0x50, 0x0, 0xd, 0x0, 0x0, 0x0, 0xb6, 0x65,
- 0x3, 0x76, 0xe0, 0x0, 0x0, 0xc, 0x68, 0x76,
- 0x66, 0x6e, 0x0, 0x0, 0x0, 0x43, 0xc0, 0x0,
- 0x0, 0x41, 0x10, 0x0, 0x2, 0xb7, 0x66, 0x66,
- 0x66, 0xb9, 0x0, 0x6, 0x71, 0x20, 0x14, 0x9,
- 0x19, 0x30, 0x2, 0x14, 0x33, 0x80, 0xc1, 0x58,
- 0xb1, 0x0, 0x1, 0xe1, 0xc, 0x5, 0x0, 0x1d,
- 0x0, 0x0, 0x4, 0x0, 0x0, 0x5, 0xab, 0x90,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x60, 0x0,
-
- /* U+5BFA "寺" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe, 0x10, 0x0, 0x30, 0x0,
- 0x0, 0x76, 0x66, 0x6e, 0x66, 0x67, 0xb3, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x10, 0x0, 0x5, 0x10,
- 0x28, 0x66, 0x66, 0x6a, 0x66, 0x66, 0x6a, 0x80,
- 0x0, 0x0, 0x0, 0x0, 0x1, 0xe2, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xe0, 0x4, 0x0,
- 0x6, 0x76, 0x66, 0x66, 0x66, 0xf6, 0x7a, 0x30,
- 0x0, 0x0, 0x72, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0x2e, 0x10, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0x20, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0x1, 0x0, 0x1, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x2, 0x9f, 0xb0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0,
-
- /* U+5BFE "対" */
- 0x0, 0x21, 0x0, 0x0, 0x0, 0x0, 0x80, 0x0,
- 0x0, 0xd, 0x30, 0x0, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0x7, 0xb0, 0x0, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0x1, 0x20, 0x71, 0x0, 0x0, 0xe0, 0x0,
- 0x4, 0x76, 0x6e, 0x73, 0x56, 0x66, 0xe6, 0xd2,
- 0x0, 0x0, 0xe, 0x0, 0x10, 0x0, 0xe0, 0x0,
- 0x0, 0x40, 0x2b, 0x1, 0x40, 0x0, 0xe0, 0x0,
- 0x0, 0x28, 0x77, 0x0, 0xa5, 0x0, 0xe0, 0x0,
- 0x0, 0x2, 0xf4, 0x0, 0x4e, 0x0, 0xe0, 0x0,
- 0x0, 0x3, 0xce, 0x20, 0x9, 0x0, 0xe0, 0x0,
- 0x0, 0xb, 0x17, 0xd0, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0x84, 0x0, 0xd0, 0x0, 0x0, 0xe0, 0x0,
- 0x7, 0x40, 0x0, 0x0, 0x4, 0x33, 0xd0, 0x0,
- 0x12, 0x0, 0x0, 0x0, 0x1, 0x8f, 0x90, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0,
-
- /* U+5C04 "射" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb3, 0x0, 0x0, 0x2, 0xc0, 0x0,
- 0x0, 0x20, 0x80, 0x30, 0x0, 0x2, 0xb0, 0x0,
- 0x0, 0xd6, 0x66, 0xe2, 0x0, 0x2, 0xb0, 0x0,
- 0x0, 0xd1, 0x0, 0xe0, 0x0, 0x2, 0xb0, 0x20,
- 0x0, 0xc6, 0x66, 0xe3, 0x76, 0x67, 0xd8, 0xb1,
- 0x0, 0xc1, 0x0, 0xe0, 0x0, 0x2, 0xb0, 0x0,
- 0x0, 0xc6, 0x66, 0xe0, 0x40, 0x2, 0xb0, 0x0,
- 0x0, 0xc1, 0x0, 0xe0, 0x3b, 0x2, 0xb0, 0x0,
- 0x26, 0xd6, 0x66, 0xe0, 0xd, 0x42, 0xb0, 0x0,
- 0x2, 0x0, 0xb4, 0xe0, 0x6, 0x2, 0xb0, 0x0,
- 0x0, 0x5, 0x90, 0xe0, 0x0, 0x2, 0xb0, 0x0,
- 0x0, 0x2b, 0x0, 0xe0, 0x0, 0x2, 0xb0, 0x0,
- 0x1, 0x91, 0x10, 0xe0, 0x2, 0x3, 0xb0, 0x0,
- 0x26, 0x0, 0x4d, 0xc0, 0x3, 0xaf, 0x80, 0x0,
- 0x0, 0x0, 0x2, 0x0, 0x0, 0x4, 0x0, 0x0,
-
- /* U+5C07 "將" */
- 0x0, 0x0, 0xa, 0x10, 0x3, 0x80, 0x0, 0x0,
- 0x2, 0x80, 0xd, 0x0, 0xb, 0x60, 0x3, 0x10,
- 0x2, 0xa0, 0xd, 0x0, 0x6b, 0x66, 0x6e, 0xa0,
- 0x2, 0xa0, 0xd, 0x3, 0x88, 0x70, 0x6b, 0x0,
- 0x4, 0xc6, 0x6d, 0x36, 0x91, 0xb4, 0xb0, 0x0,
- 0x0, 0x30, 0xd, 0x0, 0x74, 0x5a, 0x10, 0x0,
- 0x0, 0x0, 0xd, 0x0, 0x19, 0x70, 0xc2, 0x0,
- 0x4, 0x66, 0x6d, 0x36, 0x61, 0x0, 0xd0, 0x30,
- 0x1, 0x69, 0xd, 0x67, 0x66, 0x66, 0xe6, 0xa2,
- 0x0, 0x59, 0xd, 0x3, 0x30, 0x0, 0xd0, 0x0,
- 0x0, 0x77, 0xd, 0x0, 0xd2, 0x0, 0xd0, 0x0,
- 0x0, 0xa3, 0xd, 0x0, 0x95, 0x0, 0xd0, 0x0,
- 0x1, 0xa0, 0xd, 0x0, 0x12, 0x10, 0xd0, 0x0,
- 0x8, 0x0, 0xd, 0x0, 0x2, 0x9f, 0xb0, 0x0,
- 0x0, 0x0, 0x2, 0x0, 0x0, 0x4, 0x10, 0x0,
-
- /* U+5C08 "專" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x1, 0xd0, 0x0, 0x2, 0x0, 0x3,
- 0x76, 0x66, 0x6e, 0x66, 0x69, 0xb1, 0x0, 0x0,
- 0x10, 0x1, 0xd0, 0x1, 0x10, 0x0, 0x0, 0xe,
- 0x66, 0x6e, 0x66, 0x9b, 0x0, 0x0, 0x0, 0xd0,
- 0x1, 0xd0, 0x5, 0x80, 0x0, 0x0, 0xe, 0x66,
- 0x6e, 0x66, 0x98, 0x0, 0x0, 0x1, 0xe6, 0x66,
- 0xe6, 0x69, 0x80, 0x0, 0x0, 0x17, 0x0, 0x1d,
- 0x2, 0x93, 0x0, 0x0, 0x16, 0x66, 0x78, 0xe7,
- 0x68, 0xe4, 0x0, 0x0, 0x97, 0x43, 0x10, 0xb,
- 0x13, 0x92, 0x3, 0x76, 0x66, 0x66, 0x66, 0xf6,
- 0x6b, 0xb0, 0x0, 0x8, 0x40, 0x0, 0xf, 0x0,
- 0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0xf0, 0x0,
- 0x0, 0x0, 0x0, 0x40, 0x7, 0xcd, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x4, 0x20, 0x0, 0x0,
-
- /* U+5C0D "對" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb, 0x2a, 0x20, 0x0, 0x0, 0xb3, 0x0,
- 0x6, 0xc, 0xb, 0x7, 0x10, 0x0, 0xd0, 0x0,
- 0x6, 0x8c, 0xb, 0x49, 0x0, 0x0, 0xd0, 0x0,
- 0x1, 0x4c, 0xb, 0x52, 0x20, 0x0, 0xd0, 0x0,
- 0x28, 0x69, 0x69, 0x68, 0x80, 0x0, 0xd3, 0x50,
- 0x0, 0x63, 0x7, 0x60, 0x18, 0x66, 0xe6, 0x50,
- 0x0, 0x1d, 0x9, 0x10, 0x12, 0x0, 0xd0, 0x0,
- 0x5, 0x79, 0x87, 0xb6, 0xb, 0x30, 0xd0, 0x0,
- 0x0, 0x0, 0xb0, 0x0, 0x4, 0xe0, 0xd0, 0x0,
- 0x0, 0x0, 0xb0, 0x40, 0x0, 0xc0, 0xd0, 0x0,
- 0x2, 0x86, 0xc6, 0x73, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0x0, 0xb0, 0x0, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0x0, 0xb3, 0x54, 0x1, 0x10, 0xd0, 0x0,
- 0x1b, 0xca, 0x73, 0x0, 0x1, 0x6e, 0xc0, 0x0,
- 0x4, 0x0, 0x0, 0x0, 0x0, 0x2, 0x10, 0x0,
-
- /* U+5C0E "導" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x7, 0x10, 0x0, 0x94, 0x5, 0x80, 0x0, 0x0,
- 0x4c, 0x0, 0x1, 0x70, 0x80, 0x28, 0x0, 0x0,
- 0x70, 0x77, 0x6a, 0x76, 0x67, 0x61, 0x3, 0x69,
- 0x40, 0xe5, 0x65, 0x56, 0xd0, 0x0, 0x0, 0xb1,
- 0xd, 0x55, 0x55, 0x6b, 0x0, 0x0, 0xb, 0x10,
- 0xd6, 0x66, 0x67, 0xb0, 0x0, 0x0, 0xb1, 0xd,
- 0x22, 0x22, 0x3b, 0x0, 0x0, 0x29, 0x72, 0x93,
- 0x33, 0x34, 0x60, 0x0, 0x3a, 0x0, 0x6a, 0xbb,
- 0xcc, 0xcd, 0xf6, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb1, 0x19, 0x0, 0x76, 0x66, 0x66, 0x66, 0x6e,
- 0x68, 0xc6, 0x0, 0x0, 0x82, 0x0, 0x0, 0xe0,
- 0x0, 0x0, 0x0, 0x2, 0xe0, 0x0, 0xe, 0x0,
- 0x0, 0x0, 0x0, 0x5, 0x1, 0x7b, 0xc0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x62, 0x0, 0x0,
-
- /* U+5C0F "小" */
- 0x0, 0x0, 0x0, 0x2a, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x1e, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1d, 0x0, 0x0, 0x0, 0x0, 0x3, 0x90, 0x1d,
- 0x4, 0x0, 0x0, 0x0, 0x8, 0xc0, 0x1d, 0x1,
- 0x90, 0x0, 0x0, 0x1e, 0x10, 0x1d, 0x0, 0x3c,
- 0x10, 0x0, 0x86, 0x0, 0x1d, 0x0, 0x8, 0xd0,
- 0x2, 0x90, 0x0, 0x1d, 0x0, 0x0, 0xe8, 0x8,
- 0x0, 0x0, 0x1d, 0x0, 0x0, 0x89, 0x40, 0x0,
- 0x0, 0x1d, 0x0, 0x0, 0x12, 0x0, 0x0, 0x0,
- 0x1d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x44, 0x6d,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xf7, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x30, 0x0, 0x0,
- 0x0,
-
- /* U+5C11 "少" */
- 0x0, 0x0, 0x0, 0x9, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb3, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0xa, 0x30, 0xb3, 0x16, 0x0, 0x0, 0x0, 0x2,
- 0xf3, 0xb, 0x30, 0x2c, 0x60, 0x0, 0x0, 0xa7,
- 0x0, 0xb3, 0x0, 0x1d, 0xb0, 0x0, 0x3b, 0x0,
- 0xb, 0x30, 0x0, 0x2f, 0x50, 0xa, 0x10, 0x0,
- 0xb3, 0x0, 0x40, 0x62, 0x7, 0x20, 0x0, 0xb,
- 0x30, 0x3f, 0xa0, 0x1, 0x10, 0x0, 0x0, 0x81,
- 0x3e, 0x90, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5e,
- 0x60, 0x0, 0x0, 0x0, 0x0, 0x1, 0x9c, 0x20,
- 0x0, 0x0, 0x0, 0x0, 0x18, 0xc5, 0x0, 0x0,
- 0x0, 0x0, 0x15, 0x88, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+5C1A "尚" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2c, 0x10, 0x0, 0x0, 0x7, 0x30, 0x2,
- 0xc0, 0x0, 0xc4, 0x0, 0xd, 0x70, 0x2c, 0x0,
- 0x5d, 0x10, 0x0, 0x4f, 0x2, 0xc0, 0xb, 0x10,
- 0x2, 0x0, 0x40, 0x2c, 0x7, 0x30, 0x30, 0xc7,
- 0x66, 0x66, 0x86, 0x76, 0x6f, 0x3b, 0x20, 0x0,
- 0x0, 0x0, 0x0, 0xe0, 0xb2, 0xa, 0x76, 0x66,
- 0xe0, 0xe, 0xb, 0x20, 0xa3, 0x0, 0xd, 0x0,
- 0xe0, 0xb2, 0xa, 0x30, 0x0, 0xd0, 0xe, 0xb,
- 0x20, 0xa7, 0x66, 0x6d, 0x0, 0xe0, 0xb2, 0xa,
- 0x20, 0x0, 0xa0, 0xe, 0xb, 0x20, 0x10, 0x0,
- 0x4, 0x55, 0xe0, 0xc2, 0x0, 0x0, 0x0, 0x4,
- 0xe9, 0x1, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0,
-
- /* U+5C24 "尤" */
- 0x0, 0x0, 0x0, 0x95, 0x3, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb4, 0x2, 0xc9, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb3, 0x0, 0x1e, 0x30, 0x0,
- 0x0, 0x0, 0x0, 0xb3, 0x0, 0x2, 0x5, 0x20,
- 0x6, 0x76, 0x66, 0xc7, 0x69, 0x66, 0x6a, 0x90,
- 0x0, 0x0, 0x0, 0xb2, 0x1c, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc1, 0x1c, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe0, 0x1c, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd0, 0x1c, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x5, 0xa0, 0x1c, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc, 0x30, 0x1c, 0x0, 0x0, 0x40,
- 0x0, 0x0, 0x59, 0x0, 0x1c, 0x0, 0x0, 0x70,
- 0x0, 0x4, 0xa0, 0x0, 0x1d, 0x0, 0x0, 0xc1,
- 0x0, 0x76, 0x0, 0x0, 0xb, 0xdd, 0xdd, 0xd2,
- 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5C31 "就" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2, 0x90, 0x0, 0x8, 0x50, 0x0, 0x0,
- 0x0, 0x0, 0xa4, 0x0, 0x9, 0x32, 0x80, 0x0,
- 0x5, 0x66, 0x76, 0x6c, 0x29, 0x30, 0x87, 0x0,
- 0x1, 0x0, 0x0, 0x0, 0x9, 0x30, 0x12, 0x0,
- 0x0, 0x86, 0x66, 0xa4, 0x6b, 0x86, 0x6a, 0x90,
- 0x0, 0xd0, 0x0, 0xc1, 0x9, 0x3d, 0x0, 0x0,
- 0x0, 0xd0, 0x0, 0xc0, 0x9, 0x3d, 0x0, 0x0,
- 0x0, 0xd6, 0x86, 0xd1, 0xa, 0x2d, 0x0, 0x0,
- 0x0, 0x40, 0xb0, 0x30, 0xc, 0xd, 0x0, 0x0,
- 0x0, 0x93, 0xb2, 0x50, 0xc, 0xd, 0x0, 0x0,
- 0x1, 0xb0, 0xb0, 0xa5, 0x47, 0xd, 0x0, 0x10,
- 0x7, 0x20, 0xb0, 0x34, 0xa1, 0xd, 0x0, 0x60,
- 0x15, 0x10, 0xc0, 0x5, 0x50, 0xd, 0x1, 0x90,
- 0x0, 0x2b, 0xd0, 0x35, 0x0, 0x9, 0xcc, 0xb0,
- 0x0, 0x0, 0x10, 0x30, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5C3A "尺" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x4, 0xa6, 0x66, 0x66, 0x66, 0xd3, 0x0,
- 0x0, 0x4, 0xb0, 0x0, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0x4, 0xb0, 0x0, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0x4, 0xb0, 0x0, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0x4, 0xd6, 0x66, 0x76, 0x66, 0xe1, 0x0,
- 0x0, 0x4, 0xa0, 0x0, 0x60, 0x0, 0x70, 0x0,
- 0x0, 0x4, 0x90, 0x0, 0x70, 0x0, 0x0, 0x0,
- 0x0, 0x6, 0x70, 0x0, 0x45, 0x0, 0x0, 0x0,
- 0x0, 0x8, 0x50, 0x0, 0xb, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x10, 0x0, 0x5, 0xa0, 0x0, 0x0,
- 0x0, 0x2a, 0x0, 0x0, 0x0, 0xaa, 0x0, 0x0,
- 0x0, 0xa1, 0x0, 0x0, 0x0, 0xb, 0xd5, 0x0,
- 0x6, 0x30, 0x0, 0x0, 0x0, 0x0, 0x9f, 0xa0,
- 0x12, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0,
-
- /* U+5C40 "局" */
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0,
- 0x0, 0xd6, 0x66, 0x66, 0x66, 0x6e, 0x30, 0x0,
- 0xd, 0x10, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0xd6, 0x66, 0x66, 0x66, 0x6e, 0x0, 0x0, 0xd,
- 0x10, 0x0, 0x0, 0x0, 0x60, 0x0, 0x0, 0xd1,
- 0x0, 0x0, 0x0, 0x0, 0x30, 0x0, 0xd, 0x66,
- 0x66, 0x66, 0x66, 0x6e, 0x40, 0x0, 0xd0, 0x0,
- 0x0, 0x2, 0x0, 0xd1, 0x0, 0xd, 0x2, 0xc6,
- 0x66, 0xe0, 0xd, 0x10, 0x2, 0xa0, 0x1b, 0x0,
- 0xd, 0x0, 0xd1, 0x0, 0x56, 0x1, 0xd6, 0x66,
- 0xd0, 0xd, 0x10, 0xa, 0x0, 0x2a, 0x0, 0x7,
- 0x0, 0xe0, 0x2, 0x60, 0x0, 0x0, 0x0, 0x34,
- 0x4e, 0x0, 0x60, 0x0, 0x0, 0x0, 0x0, 0x6f,
- 0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10,
- 0x0,
-
- /* U+5C45 "居" */
- 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x13, 0x0,
- 0x0, 0xe, 0x66, 0x66, 0x66, 0x66, 0x9a, 0x0,
- 0x0, 0xe, 0x0, 0x0, 0x0, 0x0, 0x68, 0x0,
- 0x0, 0xe, 0x66, 0x66, 0x66, 0x66, 0x98, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0xb4, 0x0, 0x22, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0xb2, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x76, 0x66, 0xd7, 0x66, 0x6b, 0x90,
- 0x0, 0x1b, 0x0, 0x0, 0xb2, 0x0, 0x0, 0x0,
- 0x0, 0x39, 0x0, 0x0, 0xb2, 0x0, 0x0, 0x0,
- 0x0, 0x56, 0xc, 0x77, 0xb7, 0x77, 0xe1, 0x0,
- 0x0, 0x82, 0xe, 0x0, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0xa0, 0xe, 0x0, 0x0, 0x0, 0xe0, 0x0,
- 0x4, 0x50, 0xe, 0x0, 0x0, 0x0, 0xe0, 0x0,
- 0x7, 0x0, 0xf, 0x66, 0x66, 0x66, 0xe0, 0x0,
- 0x10, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5C4A "届" */
- 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0,
- 0x0, 0xe6, 0x66, 0x66, 0x66, 0x66, 0xe0, 0x0,
- 0xe, 0x0, 0x0, 0x0, 0x0, 0x1c, 0x0, 0x0,
- 0xe6, 0x66, 0x66, 0x66, 0x66, 0xd0, 0x0, 0xd,
- 0x0, 0x0, 0x4, 0x0, 0x4, 0x0, 0x0, 0xd0,
- 0x0, 0x0, 0xe2, 0x0, 0x0, 0x0, 0xc, 0x3,
- 0x0, 0xe, 0x0, 0x5, 0x10, 0x1, 0xb0, 0xd6,
- 0x66, 0xe6, 0x66, 0xd5, 0x0, 0x3a, 0xd, 0x10,
- 0xe, 0x0, 0xb, 0x20, 0x5, 0x70, 0xd6, 0x66,
- 0xe6, 0x66, 0xd2, 0x0, 0x83, 0xc, 0x10, 0xe,
- 0x0, 0xb, 0x20, 0xa, 0x0, 0xc1, 0x0, 0xe0,
- 0x0, 0xb2, 0x3, 0x60, 0xd, 0x66, 0x6e, 0x66,
- 0x6d, 0x30, 0x70, 0x0, 0xc0, 0x0, 0x0, 0x0,
- 0x92, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+5C4B "屋" */
- 0x0, 0x19, 0x66, 0x66, 0x66, 0x66, 0x6b, 0x0,
- 0x0, 0x1d, 0x0, 0x0, 0x0, 0x0, 0x2b, 0x0,
- 0x0, 0x1d, 0x0, 0x0, 0x0, 0x0, 0x2b, 0x0,
- 0x0, 0x1e, 0x66, 0x66, 0x66, 0x66, 0x7b, 0x0,
- 0x0, 0x1c, 0x0, 0x0, 0x0, 0x0, 0x14, 0x0,
- 0x0, 0x1c, 0x47, 0x66, 0xa6, 0x66, 0x79, 0x10,
- 0x0, 0x2b, 0x0, 0x5, 0xc3, 0x13, 0x0, 0x0,
- 0x0, 0x3a, 0x0, 0x76, 0x0, 0x6, 0xb1, 0x0,
- 0x0, 0x49, 0xc, 0xda, 0x87, 0x65, 0xab, 0x0,
- 0x0, 0x66, 0x2, 0x20, 0xd, 0x10, 0x4, 0x0,
- 0x0, 0xa2, 0x0, 0x0, 0xd, 0x0, 0x45, 0x0,
- 0x0, 0xb0, 0x6, 0x76, 0x6e, 0x66, 0x65, 0x0,
- 0x4, 0x50, 0x0, 0x0, 0xd, 0x0, 0x0, 0x10,
- 0x7, 0x3, 0x66, 0x66, 0x6e, 0x66, 0x6a, 0xd1,
- 0x11, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5C55 "展" */
- 0x0, 0x11, 0x0, 0x0, 0x0, 0x0, 0x51, 0x0,
- 0x3, 0xc6, 0x66, 0x66, 0x66, 0x6d, 0x50, 0x0,
- 0x3b, 0x0, 0x0, 0x0, 0x0, 0xb2, 0x0, 0x3,
- 0xc6, 0x67, 0x66, 0x66, 0x6d, 0x30, 0x0, 0x3a,
- 0x0, 0xb5, 0x0, 0xd0, 0x10, 0x0, 0x3, 0xa0,
- 0xb, 0x20, 0xd, 0x7, 0x0, 0x0, 0x3c, 0x66,
- 0xd7, 0x66, 0xe6, 0x62, 0x0, 0x4, 0x90, 0xb,
- 0x20, 0xd, 0x0, 0x30, 0x0, 0x5a, 0x68, 0xa7,
- 0x76, 0xa6, 0x7b, 0x30, 0x8, 0x50, 0xa2, 0x7,
- 0x0, 0x57, 0x0, 0x0, 0xb1, 0xa, 0x20, 0x47,
- 0x59, 0x20, 0x0, 0xb, 0x0, 0xa2, 0x0, 0xa9,
- 0x0, 0x0, 0x5, 0x40, 0xa, 0x57, 0x50, 0x9c,
- 0x63, 0x10, 0x70, 0x0, 0xbb, 0x10, 0x0, 0x4c,
- 0xe5, 0x10, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+5C65 "履" */
- 0x0, 0x28, 0x66, 0x66, 0x66, 0x66, 0x6a, 0x20,
- 0x0, 0x2b, 0x0, 0x0, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0x1d, 0x66, 0x66, 0x76, 0x66, 0x6d, 0x10,
- 0x0, 0x1b, 0x4, 0x90, 0xb6, 0x0, 0x6, 0x0,
- 0x0, 0x1b, 0xa, 0x10, 0xc6, 0x66, 0x68, 0x30,
- 0x0, 0x2a, 0x63, 0x55, 0xc6, 0x66, 0x6c, 0x0,
- 0x0, 0x2a, 0x26, 0xb6, 0xa1, 0x0, 0xc, 0x0,
- 0x0, 0x39, 0xc, 0x20, 0xa7, 0x66, 0x6c, 0x0,
- 0x0, 0x47, 0x7e, 0x20, 0xa8, 0x66, 0x6c, 0x0,
- 0x0, 0x67, 0x5c, 0x0, 0x1c, 0x50, 0x11, 0x0,
- 0x0, 0x91, 0xc, 0x0, 0x7b, 0x66, 0xc9, 0x0,
- 0x0, 0x90, 0xc, 0x4, 0x42, 0x76, 0x90, 0x0,
- 0x4, 0x40, 0xc, 0x1, 0x1, 0xbd, 0x40, 0x0,
- 0x5, 0x0, 0xb, 0x2, 0x78, 0x20, 0x8d, 0xb1,
- 0x0, 0x0, 0x0, 0x33, 0x0, 0x0, 0x0, 0x20,
-
- /* U+5C6C "屬" */
- 0x0, 0x11, 0x0, 0x0, 0x0, 0x0, 0x21, 0x0,
- 0x2, 0xd6, 0x66, 0x66, 0x66, 0x6a, 0x70, 0x0,
- 0x2b, 0x0, 0x0, 0x0, 0x0, 0x75, 0x0, 0x2,
- 0xc6, 0x86, 0x69, 0x86, 0x9b, 0x30, 0x0, 0x2b,
- 0x1, 0xa3, 0x75, 0x46, 0x20, 0x0, 0x2, 0xa7,
- 0x85, 0x47, 0x44, 0x7a, 0x30, 0x0, 0x3a, 0x56,
- 0x66, 0x86, 0x66, 0x94, 0x0, 0x3, 0x95, 0x60,
- 0xa0, 0xb, 0xa, 0x10, 0x0, 0x58, 0x5a, 0x68,
- 0x66, 0x86, 0xb1, 0x0, 0x6, 0x50, 0x9b, 0x66,
- 0x66, 0x66, 0x90, 0x0, 0x92, 0x66, 0x0, 0xa0,
- 0x1, 0x1a, 0x0, 0xb, 0x32, 0xb6, 0x6d, 0x67,
- 0x92, 0x90, 0x1, 0x90, 0xb, 0x66, 0xd6, 0x77,
- 0x38, 0x0, 0x62, 0x0, 0x33, 0x3c, 0x57, 0x75,
- 0x60, 0x6, 0x0, 0x1a, 0x64, 0x10, 0x19, 0xc3,
- 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x15, 0x0,
-
- /* U+5C71 "山" */
- 0x0, 0x0, 0x0, 0x61, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0x0, 0x9, 0x40, 0x0, 0xd0, 0x0, 0xa,
- 0x30, 0xa3, 0x0, 0xd, 0x0, 0x0, 0xc1, 0xa,
- 0x30, 0x0, 0xd0, 0x0, 0xc, 0x10, 0xa3, 0x0,
- 0xd, 0x0, 0x0, 0xc1, 0xa, 0x30, 0x0, 0xd0,
- 0x0, 0xc, 0x10, 0xa3, 0x0, 0xd, 0x0, 0x0,
- 0xc1, 0xa, 0x30, 0x0, 0xd0, 0x0, 0xc, 0x10,
- 0xa3, 0x0, 0xd, 0x0, 0x0, 0xc1, 0xd, 0x76,
- 0x66, 0xa6, 0x66, 0x6d, 0x10, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x91,
-
- /* U+5CF6 "島" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x20, 0x7, 0x0, 0x0, 0x51, 0x0, 0x0, 0xc,
- 0x66, 0x66, 0x66, 0x6d, 0x30, 0x0, 0x0, 0xc6,
- 0x66, 0x66, 0x66, 0xd1, 0x0, 0x0, 0xc, 0x10,
- 0x0, 0x0, 0xc, 0x10, 0x0, 0x0, 0xc6, 0x66,
- 0x66, 0x66, 0xd1, 0x0, 0x0, 0xc, 0x10, 0x0,
- 0x0, 0x1, 0x2, 0x70, 0x0, 0xc6, 0x66, 0x66,
- 0x66, 0x66, 0x66, 0x10, 0xc, 0x66, 0x66, 0x66,
- 0x66, 0x6a, 0x50, 0x0, 0x40, 0xa, 0x10, 0x0,
- 0x0, 0x93, 0x1, 0xb0, 0x0, 0xd0, 0x0, 0xb1,
- 0xb, 0x10, 0xc, 0x0, 0xd, 0x0, 0xd, 0x0,
- 0xd0, 0x2, 0xc6, 0x66, 0x96, 0x66, 0xc0, 0x1c,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x17, 0xce, 0x60,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x30, 0x0,
-
- /* U+5D4C "嵌" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0x0, 0x6, 0x80, 0x0, 0x20, 0x0, 0x1,
- 0xd0, 0x0, 0x66, 0x0, 0xb, 0x40, 0x0, 0x1b,
- 0x0, 0x6, 0x60, 0x0, 0xb2, 0x0, 0x2, 0xb6,
- 0x66, 0x66, 0x66, 0x6c, 0x20, 0x0, 0x19, 0x0,
- 0xb2, 0x2, 0xe0, 0x0, 0x0, 0x1, 0xb0, 0xd,
- 0x22, 0x78, 0x0, 0x21, 0x5, 0x7d, 0x66, 0xe7,
- 0x6b, 0x66, 0x6c, 0x90, 0x1, 0xb0, 0xd, 0x5,
- 0x77, 0x41, 0x70, 0x0, 0x1d, 0x66, 0xe0, 0x70,
- 0xb6, 0x0, 0x0, 0x1, 0xb0, 0xd, 0x0, 0xd,
- 0x50, 0x0, 0x0, 0x1b, 0x0, 0xd0, 0x3, 0xa6,
- 0x20, 0x0, 0x1, 0xb0, 0xd, 0x0, 0x94, 0x1b,
- 0x0, 0x0, 0x1d, 0x66, 0xe0, 0x48, 0x0, 0x7b,
- 0x10, 0x2, 0x80, 0x5, 0x66, 0x0, 0x0, 0xbd,
- 0x20, 0x0, 0x0, 0x31, 0x0, 0x0, 0x0, 0x10,
-
- /* U+5DDD "川" */
- 0x0, 0x25, 0x0, 0x0, 0x0, 0x5, 0x50, 0x2,
- 0xc0, 0x0, 0x40, 0x0, 0x78, 0x0, 0x2b, 0x0,
- 0xd, 0x30, 0x7, 0x70, 0x2, 0xb0, 0x0, 0xc1,
- 0x0, 0x77, 0x0, 0x3a, 0x0, 0xc, 0x10, 0x6,
- 0x70, 0x3, 0xa0, 0x0, 0xc1, 0x0, 0x67, 0x0,
- 0x39, 0x0, 0xc, 0x10, 0x6, 0x70, 0x5, 0x70,
- 0x0, 0xc1, 0x0, 0x67, 0x0, 0x65, 0x0, 0xc,
- 0x10, 0x6, 0x70, 0x9, 0x20, 0x0, 0xc1, 0x0,
- 0x67, 0x0, 0xc0, 0x0, 0xd, 0x10, 0x6, 0x70,
- 0x36, 0x0, 0x0, 0x80, 0x0, 0x67, 0x8, 0x0,
- 0x0, 0x0, 0x0, 0x7, 0x73, 0x30, 0x0, 0x0,
- 0x0, 0x0, 0x77, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x2, 0x0,
-
- /* U+5DDE "州" */
- 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x72, 0x0,
- 0x0, 0xd2, 0x0, 0x93, 0x0, 0xb3, 0x0, 0x0,
- 0xd0, 0x0, 0xb1, 0x0, 0xb2, 0x0, 0x0, 0xd0,
- 0x0, 0xb1, 0x0, 0xb2, 0x0, 0x10, 0xd0, 0x0,
- 0xb1, 0x10, 0xb2, 0x0, 0x70, 0xd0, 0x90, 0xb1,
- 0x82, 0xb2, 0x1, 0xc0, 0xd0, 0xa5, 0xb1, 0x4b,
- 0xb2, 0x9, 0x91, 0xb0, 0x64, 0xb1, 0x7, 0xb2,
- 0x1, 0x4, 0x90, 0x0, 0xb1, 0x0, 0xb2, 0x0,
- 0x7, 0x60, 0x0, 0xb1, 0x0, 0xb2, 0x0, 0xc,
- 0x20, 0x0, 0xb1, 0x0, 0xb2, 0x0, 0x2b, 0x0,
- 0x0, 0xb2, 0x0, 0xb2, 0x0, 0xa2, 0x0, 0x0,
- 0x91, 0x0, 0xb2, 0x6, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0xb2, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x30,
-
- /* U+5DE5 "工" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x72, 0x0,
- 0x28, 0x66, 0x66, 0xb7, 0x66, 0x68, 0x60, 0x0,
- 0x0, 0x0, 0xb, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb,
- 0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb3,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0x30,
- 0x0, 0x3, 0x1, 0x66, 0x66, 0x66, 0xd8, 0x66,
- 0x68, 0xf6, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+5DE6 "左" */
- 0x0, 0x0, 0x0, 0xb2, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2e, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x4, 0xb0, 0x0, 0x0, 0x96, 0x0, 0x37,
- 0x66, 0xaa, 0x66, 0x66, 0x66, 0x50, 0x0, 0x0,
- 0xb, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x57,
- 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0xb, 0x66,
- 0x67, 0x66, 0xb9, 0x0, 0x0, 0x4, 0x80, 0x0,
- 0xb2, 0x0, 0x0, 0x0, 0x0, 0xa0, 0x0, 0xb,
- 0x20, 0x0, 0x0, 0x0, 0x74, 0x0, 0x0, 0xb2,
- 0x0, 0x0, 0x0, 0x36, 0x0, 0x0, 0xb, 0x20,
- 0x0, 0x0, 0x15, 0x0, 0x0, 0x0, 0xb2, 0x0,
- 0x27, 0x0, 0x0, 0x66, 0x66, 0x67, 0x66, 0x67,
- 0x82,
-
- /* U+5DEE "差" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x59, 0x0, 0x0, 0x6c, 0x0, 0x0, 0x0,
- 0x0, 0x96, 0x0, 0xa, 0x10, 0x10, 0x0, 0x56,
- 0x67, 0x76, 0x68, 0x86, 0x6e, 0x90, 0x1, 0x0,
- 0x0, 0xc1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xe, 0x0, 0x0, 0x81, 0x0, 0x0, 0x66, 0x68,
- 0xc6, 0x66, 0x67, 0x40, 0x0, 0x0, 0x0, 0x85,
- 0x0, 0x0, 0x4, 0x20, 0x46, 0x66, 0x6d, 0x66,
- 0x66, 0x66, 0xa9, 0x0, 0x0, 0x7, 0x60, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x2, 0xc6, 0x66, 0x66,
- 0x6d, 0x30, 0x0, 0x0, 0xa1, 0x0, 0xd, 0x0,
- 0x0, 0x0, 0x0, 0x92, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0x1, 0x71, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x10, 0x40, 0x36, 0x66, 0x66, 0xe6, 0x66, 0xbd,
- 0x10, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5DF1 "己" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x26,
- 0x66, 0x66, 0x66, 0x66, 0xd2, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xe0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0,
- 0xe0, 0x0, 0xe, 0x66, 0x66, 0x66, 0x66, 0xf0,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0,
- 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x30, 0xd, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x60, 0xd, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb0, 0xe, 0x42, 0x22, 0x22,
- 0x22, 0x26, 0xf3, 0x5, 0xaa, 0xaa, 0xaa, 0xaa,
- 0xaa, 0x70,
-
- /* U+5DF2 "已" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x18,
- 0x66, 0x66, 0x66, 0x66, 0xf2, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x5, 0x0, 0x0, 0x0,
- 0x0, 0xe0, 0x0, 0xf, 0x10, 0x0, 0x0, 0x0,
- 0xe0, 0x0, 0xe, 0x66, 0x66, 0x66, 0x66, 0xe0,
- 0x0, 0xe, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0,
- 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0xe, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x60, 0xe, 0x0, 0x0,
- 0x0, 0x0, 0x1, 0x90, 0xe, 0x42, 0x22, 0x22,
- 0x22, 0x27, 0xe1, 0x5, 0x99, 0x99, 0x99, 0x99,
- 0x99, 0x50,
-
- /* U+5E02 "市" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x48, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc5, 0x0, 0x0, 0x20, 0x4, 0x66,
- 0x66, 0x69, 0x76, 0x66, 0x6f, 0x80, 0x11, 0x0,
- 0x0, 0xb2, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
- 0xb, 0x20, 0x0, 0x20, 0x0, 0x0, 0xd6, 0x66,
- 0xd7, 0x66, 0x6f, 0x20, 0x0, 0xd, 0x10, 0xb,
- 0x20, 0x0, 0xe0, 0x0, 0x0, 0xd1, 0x0, 0xb2,
- 0x0, 0xe, 0x0, 0x0, 0xd, 0x10, 0xb, 0x20,
- 0x0, 0xe0, 0x0, 0x0, 0xd1, 0x0, 0xb2, 0x0,
- 0xe, 0x0, 0x0, 0xd, 0x10, 0xb, 0x20, 0x0,
- 0xe0, 0x0, 0x0, 0xd1, 0x0, 0xb2, 0x17, 0x9d,
- 0x0, 0x0, 0xb, 0x0, 0xb, 0x20, 0xb, 0x40,
- 0x0, 0x0, 0x0, 0x0, 0xc3, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5E03 "布" */
- 0x0, 0x0, 0x0, 0xa, 0x50, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1f, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x8a, 0x0, 0x0, 0x3, 0xa0,
- 0x4, 0x66, 0x66, 0xf6, 0x66, 0x66, 0x66, 0x62,
- 0x0, 0x0, 0x7, 0x70, 0x1b, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x1c, 0x0, 0x1d, 0x0, 0x3, 0x0,
- 0x0, 0x0, 0xbe, 0x66, 0x6e, 0x66, 0x7e, 0x10,
- 0x0, 0x7, 0x4d, 0x0, 0xd, 0x0, 0x1c, 0x0,
- 0x0, 0x64, 0xd, 0x0, 0xd, 0x0, 0x1c, 0x0,
- 0x4, 0x30, 0xd, 0x0, 0xd, 0x0, 0x1c, 0x0,
- 0x1, 0x0, 0xd, 0x0, 0xd, 0x0, 0x1c, 0x0,
- 0x0, 0x0, 0xd, 0x0, 0xd, 0x5, 0x6c, 0x0,
- 0x0, 0x0, 0x1b, 0x0, 0x1d, 0x2, 0xd6, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x1d, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x16, 0x0, 0x0, 0x0,
-
- /* U+5E08 "师" */
- 0x0, 0xa, 0x40, 0x0, 0x0, 0x0, 0x5, 0x0,
- 0x0, 0xc2, 0x47, 0x66, 0xb6, 0x66, 0x93, 0x9,
- 0xc, 0x10, 0x0, 0xd, 0x0, 0x0, 0x0, 0xd0,
- 0xb1, 0x0, 0x0, 0xd0, 0x0, 0x10, 0xd, 0xb,
- 0x10, 0xd6, 0x6e, 0x66, 0x7d, 0x0, 0xd0, 0xb1,
- 0xd, 0x0, 0xd0, 0x2, 0xb0, 0xd, 0xc, 0x0,
- 0xd0, 0xd, 0x0, 0x2b, 0x0, 0xd0, 0xc0, 0xd,
- 0x0, 0xd0, 0x2, 0xb0, 0xd, 0xc, 0x0, 0xd0,
- 0xd, 0x0, 0x2b, 0x0, 0xb2, 0xa0, 0xd, 0x0,
- 0xd0, 0x2, 0xb0, 0x0, 0x74, 0x0, 0xd0, 0xd,
- 0x5, 0x8a, 0x0, 0xb, 0x0, 0x5, 0x0, 0xd0,
- 0xa, 0x30, 0x7, 0x30, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0x3, 0x40, 0x0, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0x20, 0x0, 0x0, 0x0, 0x6, 0x0, 0x0,
- 0x0,
-
- /* U+5E0C "希" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0x30, 0x0, 0x0, 0xba, 0x0, 0x0,
- 0x0, 0x0, 0x16, 0x86, 0x4c, 0x70, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x2c, 0xcb, 0x50, 0x0, 0x0,
- 0x0, 0x0, 0x37, 0x83, 0x3, 0xbe, 0x30, 0x0,
- 0x0, 0x25, 0x30, 0x9c, 0x0, 0x5, 0x61, 0x10,
- 0x6, 0x66, 0x66, 0xf7, 0x66, 0x66, 0x6d, 0xb0,
- 0x0, 0x0, 0xb, 0x40, 0xa1, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x86, 0x0, 0xd0, 0x0, 0x30, 0x0,
- 0x0, 0x7, 0xf6, 0x66, 0xe6, 0x66, 0xf2, 0x0,
- 0x0, 0x74, 0xe0, 0x0, 0xd0, 0x0, 0xe0, 0x0,
- 0x16, 0x10, 0xe0, 0x0, 0xd0, 0x0, 0xe0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0xd0, 0x12, 0xd0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0xe0, 0x5e, 0x90, 0x0,
- 0x0, 0x0, 0x30, 0x0, 0xe0, 0x1, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x60, 0x0, 0x0, 0x0,
-
- /* U+5E2B "師" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x90, 0x2, 0x55, 0x55, 0x55, 0x5c, 0x19, 0x78,
- 0x6b, 0x32, 0x11, 0xd1, 0x11, 0x10, 0xd0, 0x0,
- 0xd0, 0x0, 0xd, 0x0, 0x0, 0xd, 0x0, 0xd,
- 0x7, 0x66, 0xe6, 0x66, 0xb0, 0xd0, 0x0, 0xd0,
- 0xd0, 0xd, 0x0, 0x2a, 0xd, 0x66, 0x6b, 0xd,
- 0x0, 0xd0, 0x2, 0xa0, 0xd0, 0x0, 0x20, 0xd0,
- 0xd, 0x0, 0x2a, 0xd, 0x66, 0x6e, 0x2d, 0x0,
- 0xd0, 0x2, 0xa0, 0xd0, 0x0, 0xd0, 0xd0, 0xd,
- 0x0, 0x2a, 0xd, 0x0, 0xd, 0xd, 0x0, 0xd0,
- 0x24, 0xa0, 0xd0, 0x0, 0xd0, 0xb0, 0xd, 0x5,
- 0xe6, 0xd, 0x66, 0x6d, 0x0, 0x0, 0xd0, 0x1,
- 0x0, 0x90, 0x0, 0x10, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0,
-
- /* U+5E2D "席" */
- 0x0, 0x0, 0x0, 0x5, 0x60, 0x0, 0x0, 0x0,
- 0x0, 0x30, 0x0, 0x0, 0xd0, 0x0, 0x4, 0x60,
- 0x0, 0xb7, 0x66, 0x76, 0x66, 0x96, 0x66, 0x50,
- 0x0, 0xb2, 0x0, 0x75, 0x0, 0xd3, 0x0, 0x0,
- 0x0, 0xb3, 0x66, 0xa8, 0x66, 0xe6, 0x6d, 0x60,
- 0x0, 0xb2, 0x0, 0x64, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0xc1, 0x0, 0x68, 0x66, 0xe0, 0x0, 0x0,
- 0x0, 0xc0, 0x0, 0x52, 0xb1, 0x70, 0x0, 0x0,
- 0x0, 0xd0, 0x3, 0x0, 0xb1, 0x0, 0x5, 0x0,
- 0x0, 0xd0, 0xe, 0x66, 0xd6, 0x66, 0x7c, 0x0,
- 0x1, 0xa0, 0xd, 0x0, 0xb1, 0x0, 0x2a, 0x0,
- 0x5, 0x50, 0xd, 0x0, 0xb1, 0x0, 0x2a, 0x0,
- 0x8, 0x0, 0xd, 0x0, 0xb1, 0x28, 0xd8, 0x0,
- 0x6, 0x0, 0x5, 0x0, 0xc2, 0x0, 0x50, 0x0,
- 0x10, 0x0, 0x0, 0x0, 0x60, 0x0, 0x0, 0x0,
-
- /* U+5E2F "帯" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x7, 0x50, 0x1, 0x0, 0x0,
- 0x0, 0x3, 0xa0, 0x7, 0x50, 0xb, 0x33, 0x0,
- 0x4, 0x68, 0xb6, 0x6a, 0x96, 0x6d, 0x7c, 0x70,
- 0x0, 0x3, 0x90, 0x7, 0x50, 0xb, 0x20, 0x0,
- 0x0, 0x5, 0xb6, 0x69, 0x86, 0x6c, 0x20, 0x0,
- 0x0, 0x40, 0x10, 0x0, 0x0, 0x3, 0x2, 0x10,
- 0x2, 0xa6, 0x66, 0x68, 0x76, 0x66, 0x6b, 0xa0,
- 0xb, 0x50, 0x0, 0x7, 0x70, 0x0, 0x7, 0x0,
- 0x3, 0xb, 0x66, 0x6a, 0x96, 0x67, 0xc0, 0x0,
- 0x0, 0xd, 0x0, 0x7, 0x50, 0x3, 0xa0, 0x0,
- 0x0, 0xd, 0x0, 0x7, 0x50, 0x3, 0xa0, 0x0,
- 0x0, 0xd, 0x0, 0x7, 0x50, 0x3, 0xa0, 0x0,
- 0x0, 0xd, 0x0, 0x7, 0x50, 0x6c, 0x80, 0x0,
- 0x0, 0x3, 0x0, 0x7, 0x50, 0x5, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x4, 0x20, 0x0, 0x0, 0x0,
-
- /* U+5E30 "帰" */
- 0x0, 0x7, 0x40, 0x56, 0x66, 0x66, 0x6b, 0x0,
- 0x0, 0x9, 0x30, 0x11, 0x0, 0x0, 0x1c, 0x0,
- 0x0, 0x9, 0x30, 0x36, 0x66, 0x66, 0x6c, 0x0,
- 0x6, 0x29, 0x30, 0x1, 0x0, 0x0, 0x1c, 0x0,
- 0xb, 0x9, 0x30, 0x66, 0x66, 0x66, 0x6c, 0x0,
- 0xb, 0xa, 0x22, 0x0, 0x0, 0x0, 0x4, 0x10,
- 0xb, 0xb, 0x1a, 0x66, 0x6a, 0x66, 0x66, 0xe1,
- 0xb, 0xc, 0x5a, 0x0, 0xd, 0x0, 0x4, 0x30,
- 0x7, 0xc, 0x11, 0x76, 0x6e, 0x66, 0x6a, 0x0,
- 0x0, 0x2a, 0x0, 0xd0, 0xd, 0x0, 0x1c, 0x0,
- 0x0, 0x65, 0x0, 0xd0, 0xd, 0x0, 0x1c, 0x0,
- 0x0, 0xa0, 0x0, 0xd0, 0xd, 0x0, 0x1c, 0x0,
- 0x3, 0x60, 0x0, 0xd0, 0xd, 0x6, 0xab, 0x0,
- 0x6, 0x0, 0x0, 0x50, 0xd, 0x0, 0x62, 0x0,
- 0x10, 0x0, 0x0, 0x0, 0x7, 0x0, 0x0, 0x0,
-
- /* U+5E33 "帳" */
- 0x0, 0xb1, 0x0, 0x4, 0x0, 0x0, 0x71, 0x0,
- 0xd, 0x0, 0x0, 0xd6, 0x66, 0x66, 0x30, 0x10,
- 0xd0, 0x30, 0xd, 0x22, 0x24, 0x70, 0xe, 0x6e,
- 0x6e, 0x30, 0xd3, 0x33, 0x32, 0x0, 0xd0, 0xd0,
- 0xd0, 0xc, 0x0, 0x1, 0x60, 0xd, 0xd, 0xd,
- 0x0, 0xd6, 0x66, 0x65, 0x0, 0xd0, 0xd0, 0xd0,
- 0xc, 0x0, 0x0, 0x17, 0xd, 0xd, 0xd, 0x47,
- 0xd6, 0x96, 0x66, 0x61, 0xd0, 0xd0, 0xd0, 0x1b,
- 0x6, 0x0, 0x84, 0xd, 0xd, 0x3d, 0x1, 0xb0,
- 0x44, 0x6a, 0x20, 0x90, 0xd4, 0x80, 0x1b, 0x0,
- 0xc4, 0x0, 0x0, 0xd, 0x0, 0x1, 0xb0, 0x5,
- 0xa0, 0x0, 0x0, 0xd0, 0x0, 0x1c, 0x76, 0x9,
- 0xb2, 0x0, 0xe, 0x0, 0x4, 0xf5, 0x0, 0x9,
- 0xd3, 0x0, 0x50, 0x0, 0x3, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+5E36 "帶" */
- 0x0, 0x1, 0xb0, 0x92, 0x18, 0xb, 0x10, 0x0,
- 0x0, 0x0, 0xd0, 0xc0, 0xb, 0xd, 0x4, 0x0,
- 0x2, 0x66, 0xd6, 0xd6, 0x6d, 0x6e, 0x6b, 0x80,
- 0x0, 0x4, 0x80, 0xc0, 0xb, 0xd, 0x0, 0x40,
- 0x0, 0x1a, 0x0, 0xc6, 0x6c, 0xd, 0x57, 0xb0,
- 0x1, 0x60, 0x0, 0x60, 0x4, 0x3, 0x55, 0x20,
- 0x0, 0x96, 0x66, 0x67, 0x66, 0x66, 0x68, 0xb0,
- 0x7, 0x50, 0x0, 0x6, 0xb0, 0x0, 0x7, 0x40,
- 0xd, 0x18, 0x66, 0x69, 0xb6, 0x68, 0xb3, 0x0,
- 0x0, 0xb, 0x20, 0x6, 0x90, 0x4, 0x90, 0x0,
- 0x0, 0xb, 0x20, 0x6, 0x90, 0x4, 0x90, 0x0,
- 0x0, 0xb, 0x20, 0x6, 0x90, 0x4, 0x90, 0x0,
- 0x0, 0xb, 0x10, 0x6, 0x91, 0x8c, 0x80, 0x0,
- 0x0, 0x0, 0x0, 0x6, 0xa0, 0x7, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x4, 0x40, 0x0, 0x0, 0x0,
-
- /* U+5E38 "常" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x15, 0x0, 0x93, 0x2, 0x60, 0x0, 0x0, 0x8,
- 0xa0, 0xa2, 0xa, 0x60, 0x0, 0x2, 0x0, 0x90,
- 0xa2, 0x43, 0x0, 0x30, 0xa, 0x66, 0x66, 0x76,
- 0x66, 0x66, 0xe8, 0x78, 0x2, 0x10, 0x0, 0x4,
- 0x2, 0x70, 0x61, 0x5, 0xa6, 0x66, 0x6d, 0x20,
- 0x0, 0x0, 0x4, 0x70, 0x0, 0xc, 0x0, 0x0,
- 0x0, 0x5, 0xa6, 0xb7, 0x6c, 0x0, 0x0, 0x0,
- 0x21, 0x0, 0xa2, 0x0, 0x3, 0x0, 0x0, 0xd6,
- 0x66, 0xc7, 0x66, 0x8c, 0x0, 0x0, 0xd1, 0x0,
- 0xa2, 0x0, 0x39, 0x0, 0x0, 0xd1, 0x0, 0xa2,
- 0x0, 0x39, 0x0, 0x0, 0xd1, 0x0, 0xa2, 0x18,
- 0xd8, 0x0, 0x0, 0x40, 0x0, 0xb3, 0x0, 0x60,
- 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0,
-
- /* U+5E45 "幅" */
- 0x0, 0x92, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0,
- 0xc0, 0x4, 0x76, 0x66, 0x66, 0x96, 0x10, 0xc0,
- 0x30, 0x0, 0x0, 0x1, 0x0, 0xc6, 0xd6, 0xd3,
- 0xd, 0x66, 0x6d, 0x30, 0xc0, 0xc0, 0xc0, 0xd,
- 0x0, 0xc, 0x0, 0xc0, 0xc0, 0xc0, 0xd, 0x66,
- 0x6d, 0x0, 0xc0, 0xc0, 0xc0, 0xb, 0x0, 0x6,
- 0x0, 0xc0, 0xc0, 0xc0, 0x86, 0x66, 0x66, 0xa2,
- 0xc0, 0xc0, 0xc0, 0xd0, 0xc, 0x0, 0xb2, 0xc0,
- 0xc0, 0xc0, 0xd0, 0xc, 0x0, 0xb1, 0xc0, 0xc6,
- 0xa0, 0xd6, 0x6d, 0x66, 0xd1, 0x10, 0xc0, 0x0,
- 0xd0, 0xc, 0x0, 0xb1, 0x0, 0xc0, 0x0, 0xd6,
- 0x6d, 0x66, 0xd1, 0x0, 0xc0, 0x0, 0xd0, 0x0,
- 0x0, 0xb1, 0x0, 0x50, 0x0, 0x40, 0x0, 0x0,
- 0x10,
-
- /* U+5E73 "平" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x51, 0x0,
- 0x0, 0x76, 0x66, 0x6b, 0x76, 0x66, 0x86, 0x0,
- 0x0, 0x3, 0x0, 0xb, 0x30, 0x6, 0x30, 0x0,
- 0x0, 0x6, 0x80, 0xb, 0x30, 0xe, 0x50, 0x0,
- 0x0, 0x0, 0xd7, 0xb, 0x30, 0x74, 0x0, 0x0,
- 0x0, 0x0, 0x68, 0xb, 0x32, 0x50, 0x1, 0x0,
- 0x26, 0x66, 0x66, 0x6d, 0x87, 0x66, 0x6e, 0x80,
- 0x1, 0x0, 0x0, 0xb, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5E74 "年" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd4, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x4, 0xc0, 0x0, 0x0, 0x0, 0x3, 0x0,
- 0x0, 0xc, 0x86, 0x66, 0x86, 0x66, 0x8c, 0x20,
- 0x0, 0x67, 0x0, 0x1, 0xd0, 0x0, 0x0, 0x0,
- 0x1, 0x90, 0x0, 0x1, 0xd0, 0x0, 0x0, 0x0,
- 0x7, 0x4, 0x0, 0x1, 0xd0, 0x2, 0x90, 0x0,
- 0x10, 0xb, 0x86, 0x66, 0xe6, 0x66, 0x62, 0x0,
- 0x0, 0xb, 0x30, 0x1, 0xd0, 0x0, 0x0, 0x0,
- 0x0, 0xb, 0x30, 0x1, 0xd0, 0x0, 0x1, 0x0,
- 0x27, 0x6c, 0x76, 0x66, 0xe6, 0x66, 0x6d, 0xa0,
- 0x1, 0x0, 0x0, 0x1, 0xd0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1, 0xd0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1, 0xd0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1, 0xe0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1, 0x50, 0x0, 0x0, 0x0,
-
- /* U+5E78 "幸" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x20, 0x5, 0x0, 0x0,
- 0x0, 0x6, 0x66, 0x6d, 0x76, 0x69, 0x30, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x20, 0x0, 0x1, 0x0,
- 0x4, 0x66, 0x66, 0x6c, 0x76, 0x66, 0xad, 0x10,
- 0x0, 0x0, 0x6, 0x0, 0x5, 0x60, 0x0, 0x0,
- 0x0, 0x0, 0x7, 0x90, 0xa, 0x30, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x50, 0x25, 0x4, 0x80, 0x0,
- 0x0, 0x57, 0x66, 0x6d, 0x76, 0x66, 0x61, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x20, 0x0, 0x1, 0x0,
- 0x16, 0x66, 0x66, 0x6d, 0x76, 0x66, 0x6f, 0x80,
- 0x2, 0x0, 0x0, 0xb, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5E7E "幾" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x83, 0x4, 0xa0, 0xa, 0x30, 0x0,
- 0x0, 0x2, 0xa0, 0x3, 0x90, 0x49, 0x0, 0x0,
- 0x0, 0x18, 0x1, 0x72, 0xa2, 0x70, 0x9, 0x0,
- 0x0, 0xc9, 0x6c, 0x61, 0xba, 0x96, 0xc7, 0x0,
- 0x0, 0x10, 0x83, 0x0, 0xc0, 0x8, 0x41, 0x0,
- 0x0, 0x7, 0x24, 0x50, 0xc2, 0x94, 0x2a, 0x20,
- 0x0, 0x8c, 0x86, 0xc0, 0xc2, 0xc7, 0x45, 0x90,
- 0x0, 0x0, 0xb2, 0x10, 0xb1, 0x1c, 0x2, 0x10,
- 0x4, 0x66, 0xd6, 0x66, 0xb8, 0x69, 0x6e, 0x80,
- 0x0, 0x0, 0xc0, 0x0, 0x57, 0x0, 0x81, 0x0,
- 0x0, 0x4, 0xc8, 0x10, 0x1c, 0x9, 0xc3, 0x0,
- 0x0, 0xa, 0x14, 0xb0, 0x9, 0xd8, 0x0, 0x31,
- 0x0, 0x64, 0x0, 0x30, 0x5b, 0xc7, 0x0, 0x70,
- 0x4, 0x50, 0x0, 0x58, 0x40, 0x7, 0xd9, 0xd0,
- 0x2, 0x0, 0x15, 0x10, 0x0, 0x0, 0x5, 0x91,
-
- /* U+5E83 "広" */
- 0x0, 0x0, 0x0, 0x2, 0x80, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa, 0x70, 0x0, 0x10, 0x0,
- 0x28, 0x66, 0x66, 0x78, 0x66, 0x7f, 0x50, 0x2,
- 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1d,
- 0x0, 0x0, 0x46, 0x0, 0x0, 0x0, 0x2, 0xc0,
- 0x0, 0x9, 0xb0, 0x0, 0x0, 0x0, 0x2c, 0x0,
- 0x0, 0xe2, 0x0, 0x0, 0x0, 0x3, 0xb0, 0x0,
- 0x69, 0x0, 0x0, 0x0, 0x0, 0x59, 0x0, 0xc,
- 0x10, 0x0, 0x0, 0x0, 0x7, 0x50, 0x5, 0x60,
- 0x0, 0x40, 0x0, 0x0, 0xa1, 0x0, 0xa0, 0x0,
- 0x1, 0xc2, 0x0, 0xa, 0x0, 0xa2, 0x0, 0x0,
- 0x5, 0xe1, 0x5, 0x30, 0x7e, 0xcc, 0xba, 0x98,
- 0x7d, 0x80, 0x70, 0x2, 0x62, 0x0, 0x0, 0x0,
- 0x44, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+5E86 "庆" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x7, 0x60, 0x0, 0x0, 0x0,
- 0x0, 0x10, 0x0, 0x0, 0xf1, 0x0, 0x5, 0x0,
- 0x0, 0x98, 0x66, 0x66, 0x96, 0x66, 0x7b, 0x40,
- 0x0, 0x95, 0x0, 0x0, 0xc2, 0x0, 0x0, 0x0,
- 0x0, 0x95, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0,
- 0x0, 0x95, 0x0, 0x0, 0xe0, 0x0, 0x1, 0x0,
- 0x0, 0xa5, 0x76, 0x66, 0xe6, 0x66, 0x6c, 0x50,
- 0x0, 0xa3, 0x0, 0x0, 0xd5, 0x0, 0x0, 0x0,
- 0x0, 0xb2, 0x0, 0x3, 0xa7, 0x0, 0x0, 0x0,
- 0x0, 0xd0, 0x0, 0x8, 0x63, 0x60, 0x0, 0x0,
- 0x0, 0xc0, 0x0, 0xd, 0x10, 0xa2, 0x0, 0x0,
- 0x4, 0x80, 0x0, 0x77, 0x0, 0x2d, 0x30, 0x0,
- 0x9, 0x10, 0x7, 0x80, 0x0, 0x4, 0xe8, 0x10,
- 0x26, 0x3, 0x73, 0x0, 0x0, 0x0, 0x3d, 0x70,
- 0x20, 0x32, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5E95 "底" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x5, 0x80, 0x0, 0x0, 0x0,
- 0x0, 0x20, 0x0, 0x0, 0xd3, 0x0, 0x6, 0x10,
- 0x0, 0xb8, 0x66, 0x66, 0x76, 0x66, 0x68, 0x60,
- 0x0, 0xb3, 0x0, 0x0, 0x0, 0x3, 0x70, 0x0,
- 0x0, 0xb3, 0x4, 0x24, 0x7a, 0xcb, 0x93, 0x0,
- 0x0, 0xb3, 0x1d, 0x32, 0x2e, 0x0, 0x0, 0x0,
- 0x0, 0xb3, 0xd, 0x0, 0xe, 0x0, 0x0, 0x0,
- 0x0, 0xb3, 0xe, 0x66, 0x6e, 0x76, 0x6e, 0x40,
- 0x0, 0xc1, 0xd, 0x0, 0x9, 0x50, 0x0, 0x0,
- 0x0, 0xd0, 0xd, 0x0, 0x4, 0xb0, 0x0, 0x0,
- 0x0, 0xb0, 0xd, 0x0, 0x23, 0xd2, 0x0, 0x20,
- 0x5, 0x60, 0xd, 0x49, 0x50, 0x5c, 0x0, 0x70,
- 0x8, 0x0, 0x2f, 0xa3, 0xa2, 0x8, 0xd3, 0xa0,
- 0x25, 0x0, 0x5, 0x0, 0x4c, 0x0, 0x6e, 0xd0,
- 0x20, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x50,
-
- /* U+5E97 "店" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x4a, 0x0, 0x0, 0x0, 0x0,
- 0x12, 0x0, 0x0, 0xc3, 0x0, 0x9, 0x10, 0x3,
- 0xd6, 0x66, 0x68, 0x66, 0x66, 0x85, 0x0, 0x2c,
- 0x0, 0x0, 0xd4, 0x0, 0x0, 0x0, 0x2, 0xc0,
- 0x0, 0xc, 0x10, 0x0, 0x0, 0x0, 0x2b, 0x0,
- 0x0, 0xc6, 0x66, 0xab, 0x0, 0x3, 0xb0, 0x0,
- 0xc, 0x10, 0x0, 0x0, 0x0, 0x4a, 0x0, 0x0,
- 0xc1, 0x0, 0x0, 0x0, 0x5, 0x90, 0x96, 0x6d,
- 0x66, 0x6b, 0x40, 0x0, 0x77, 0xd, 0x10, 0x0,
- 0x0, 0xc3, 0x0, 0xa, 0x30, 0xc1, 0x0, 0x0,
- 0xc, 0x20, 0x0, 0xb0, 0xc, 0x10, 0x0, 0x0,
- 0xc2, 0x0, 0x54, 0x0, 0xd6, 0x66, 0x66, 0x6d,
- 0x30, 0x6, 0x0, 0xd, 0x10, 0x0, 0x0, 0x92,
- 0x1, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5E9C "府" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x9, 0x80, 0x0, 0x0, 0x0,
- 0x0, 0x20, 0x0, 0x0, 0xe1, 0x0, 0x5, 0x40,
- 0x0, 0xb7, 0x66, 0x66, 0x76, 0x66, 0x67, 0x70,
- 0x0, 0xb3, 0x0, 0xb5, 0x0, 0x2, 0xa0, 0x0,
- 0x0, 0xb3, 0x1, 0xe1, 0x0, 0x1, 0xb0, 0x0,
- 0x0, 0xb3, 0x8, 0x60, 0x0, 0x1, 0xb0, 0x60,
- 0x0, 0xb2, 0xe, 0x45, 0x76, 0x66, 0xd6, 0x72,
- 0x0, 0xc2, 0x7c, 0x20, 0x0, 0x1, 0xb0, 0x0,
- 0x0, 0xd3, 0x5a, 0x21, 0xa2, 0x1, 0xb0, 0x0,
- 0x0, 0xc4, 0xa, 0x20, 0x4e, 0x1, 0xb0, 0x0,
- 0x0, 0xa0, 0xa, 0x20, 0x6, 0x1, 0xb0, 0x0,
- 0x4, 0x50, 0xa, 0x20, 0x0, 0x1, 0xb0, 0x0,
- 0x8, 0x0, 0xa, 0x20, 0x0, 0x1, 0xb0, 0x0,
- 0x14, 0x0, 0xb, 0x20, 0x0, 0x7c, 0x90, 0x0,
- 0x10, 0x0, 0x5, 0x0, 0x0, 0x5, 0x10, 0x0,
-
- /* U+5EA6 "度" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x86, 0x0, 0x0, 0x0, 0x0,
- 0x40, 0x0, 0x1, 0xc0, 0x0, 0x29, 0x0, 0xb,
- 0x86, 0x68, 0x66, 0x67, 0x66, 0x62, 0x0, 0xa3,
- 0x0, 0xd2, 0x0, 0xb4, 0x0, 0x0, 0xa, 0x66,
- 0x6e, 0x66, 0x6c, 0x79, 0xc0, 0x0, 0xb3, 0x0,
- 0xd0, 0x0, 0xa2, 0x0, 0x0, 0xb, 0x20, 0xd,
- 0x0, 0xa, 0x20, 0x0, 0x0, 0xc1, 0x0, 0xb6,
- 0x66, 0xa1, 0x0, 0x0, 0xd, 0x1, 0x66, 0x66,
- 0x66, 0xb1, 0x0, 0x0, 0xc0, 0x0, 0x51, 0x0,
- 0x99, 0x0, 0x0, 0x38, 0x0, 0x0, 0x80, 0x5b,
- 0x0, 0x0, 0x7, 0x30, 0x0, 0x1, 0xbb, 0x0,
- 0x0, 0x0, 0x80, 0x0, 0x1, 0x99, 0xc8, 0x20,
- 0x0, 0x33, 0x0, 0x38, 0x82, 0x0, 0x6d, 0xeb,
- 0x42, 0x2, 0x52, 0x0, 0x0, 0x0, 0x2, 0x30,
-
- /* U+5EA7 "座" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x84, 0x0, 0x0, 0x0, 0x0,
- 0x10, 0x0, 0x2, 0xd0, 0x0, 0x26, 0x0, 0xa,
- 0x86, 0x66, 0x68, 0x66, 0x68, 0x92, 0x0, 0xa4,
- 0x0, 0x0, 0x61, 0x0, 0x0, 0x0, 0xa, 0x40,
- 0x83, 0xb, 0x20, 0x56, 0x0, 0x0, 0xa4, 0xd,
- 0x10, 0xb1, 0xb, 0x60, 0x0, 0xa, 0x32, 0xc0,
- 0xb, 0x11, 0xe4, 0x0, 0x0, 0xb3, 0x83, 0xc3,
- 0xb1, 0x74, 0x7b, 0x0, 0xc, 0x27, 0x5, 0x8b,
- 0x28, 0x0, 0xa3, 0x0, 0xd4, 0x0, 0x1, 0xb3,
- 0x2, 0x91, 0x0, 0xb, 0x3, 0x76, 0x6d, 0x66,
- 0x66, 0x20, 0x4, 0x60, 0x0, 0x0, 0xb1, 0x0,
- 0x0, 0x0, 0x80, 0x0, 0x0, 0xb, 0x10, 0x0,
- 0x10, 0x15, 0x5, 0x66, 0x66, 0xd6, 0x66, 0x7f,
- 0x61, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5EAB "庫" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x59, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb3, 0x0, 0x3, 0x0, 0x2,
- 0xc6, 0x66, 0x67, 0x66, 0x66, 0xb5, 0x0, 0x2c,
- 0x0, 0x0, 0xd, 0x10, 0x0, 0x0, 0x1, 0xb3,
- 0x76, 0x66, 0xe6, 0x6a, 0x80, 0x0, 0x1b, 0x2,
- 0x0, 0xd, 0x0, 0x40, 0x0, 0x2, 0xb0, 0xa7,
- 0x66, 0xe6, 0x6e, 0x20, 0x0, 0x3a, 0xa, 0x20,
- 0xd, 0x0, 0xd0, 0x0, 0x4, 0x80, 0xa7, 0x66,
- 0xe6, 0x6e, 0x0, 0x0, 0x65, 0xa, 0x76, 0x6e,
- 0x66, 0xe0, 0x0, 0xa, 0x10, 0x61, 0x0, 0xd0,
- 0x4, 0x30, 0x0, 0x90, 0x76, 0x66, 0x6e, 0x66,
- 0x6d, 0x70, 0x53, 0x0, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0x6, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x1, 0x0, 0x0, 0x0, 0x0, 0x60, 0x0, 0x0,
-
- /* U+5EAD "庭" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x4, 0xa0, 0x0, 0x0, 0x0,
- 0x0, 0x40, 0x0, 0x0, 0xb4, 0x0, 0x9, 0x10,
- 0x0, 0xe6, 0x66, 0x66, 0x66, 0x66, 0x66, 0x30,
- 0x0, 0xe0, 0x0, 0x40, 0x0, 0x2, 0x7a, 0x0,
- 0x0, 0xe3, 0x78, 0xf3, 0x35, 0x8d, 0x52, 0x0,
- 0x0, 0xe0, 0xb, 0x40, 0x0, 0x2b, 0x0, 0x0,
- 0x0, 0xd0, 0x78, 0x0, 0x0, 0x2b, 0x2, 0x0,
- 0x0, 0xd3, 0xe6, 0xb8, 0x57, 0x7d, 0x6a, 0x60,
- 0x0, 0xc0, 0x0, 0xc2, 0x0, 0x2b, 0x0, 0x0,
- 0x0, 0xc0, 0x61, 0xc0, 0x0, 0x2b, 0x0, 0x0,
- 0x2, 0x90, 0x5c, 0x61, 0x66, 0x7d, 0x67, 0xb0,
- 0x6, 0x30, 0x4e, 0x80, 0x10, 0x0, 0x0, 0x0,
- 0x7, 0x2, 0xb1, 0x6c, 0x84, 0x21, 0x11, 0x21,
- 0x23, 0x57, 0x0, 0x0, 0x59, 0xce, 0xff, 0xa1,
- 0x11, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5EB7 "康" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x2, 0xb4, 0x0, 0x0, 0x0,
- 0x0, 0x12, 0x0, 0x0, 0x47, 0x0, 0x8, 0x50,
- 0x0, 0x3d, 0x66, 0x66, 0xa6, 0x66, 0x66, 0x50,
- 0x0, 0x2b, 0x0, 0x0, 0xb3, 0x0, 0x40, 0x0,
- 0x0, 0x2b, 0x18, 0x66, 0xc7, 0x66, 0xe0, 0x0,
- 0x0, 0x3a, 0x0, 0x0, 0xa2, 0x0, 0xc4, 0x60,
- 0x0, 0x3b, 0x76, 0x66, 0xc7, 0x66, 0xd6, 0x50,
- 0x0, 0x49, 0x16, 0x66, 0xc7, 0x66, 0xc0, 0x0,
- 0x0, 0x57, 0x3, 0x0, 0xa7, 0x0, 0x56, 0x0,
- 0x0, 0x75, 0x8, 0x90, 0xa4, 0x50, 0x88, 0x10,
- 0x0, 0xa1, 0x0, 0x96, 0xc2, 0x97, 0x20, 0x0,
- 0x0, 0xa0, 0x6, 0x91, 0xa2, 0x1c, 0x20, 0x0,
- 0x5, 0x35, 0xe5, 0x11, 0xc2, 0x2, 0xea, 0x50,
- 0x7, 0x0, 0x30, 0x2b, 0xd0, 0x0, 0x19, 0x30,
- 0x21, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5EE0 "廠" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0x20, 0x0, 0x3, 0x90, 0x0, 0x29, 0x0,
- 0x0, 0x98, 0x66, 0x66, 0x66, 0x66, 0x67, 0x30,
- 0x0, 0x94, 0x0, 0x52, 0x10, 0x55, 0x0, 0x0,
- 0x0, 0x93, 0x83, 0x50, 0xc3, 0x95, 0x0, 0x0,
- 0x0, 0x93, 0x1a, 0x53, 0x40, 0xb3, 0x39, 0x10,
- 0x0, 0xa2, 0x86, 0x97, 0xa5, 0xa2, 0x68, 0x10,
- 0x0, 0xa1, 0xc0, 0x0, 0xa7, 0x70, 0x74, 0x0,
- 0x0, 0xb0, 0xc2, 0xac, 0xa5, 0x52, 0x92, 0x0,
- 0x0, 0xb0, 0xc2, 0x9b, 0xa2, 0x27, 0xb0, 0x0,
- 0x0, 0x90, 0xc2, 0xbb, 0xa2, 0xc, 0x70, 0x0,
- 0x5, 0x40, 0xc1, 0x44, 0xa2, 0x1c, 0xa0, 0x0,
- 0x7, 0x0, 0xc0, 0x4, 0xc1, 0x91, 0x8a, 0x0,
- 0x13, 0x0, 0x90, 0x4, 0x96, 0x10, 0x9, 0xb0,
- 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
-
- /* U+5EFA "建" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xb, 0x20, 0x0, 0x0,
- 0x0, 0x0, 0x31, 0x0, 0xd, 0x0, 0x20, 0x0,
- 0x5, 0x66, 0xe4, 0x36, 0x6e, 0x66, 0xe3, 0x0,
- 0x0, 0x5, 0x80, 0x0, 0xd, 0x0, 0xd3, 0x20,
- 0x0, 0xc, 0x3, 0x66, 0x6e, 0x66, 0xe6, 0x60,
- 0x0, 0x75, 0x0, 0x0, 0xd, 0x0, 0xd0, 0x0,
- 0x3, 0xd6, 0x7a, 0x46, 0x6e, 0x66, 0xa0, 0x0,
- 0x0, 0x10, 0x66, 0x0, 0xd, 0x0, 0x30, 0x0,
- 0x0, 0x20, 0x93, 0x46, 0x6e, 0x66, 0x70, 0x0,
- 0x0, 0x60, 0xc0, 0x0, 0xd, 0x0, 0x6, 0x0,
- 0x0, 0x38, 0xa4, 0x66, 0x6e, 0x66, 0x68, 0x20,
- 0x0, 0xb, 0x80, 0x0, 0xd, 0x0, 0x0, 0x0,
- 0x0, 0x56, 0x7c, 0x63, 0x9, 0x0, 0x0, 0x21,
- 0x5, 0x40, 0x1, 0x7b, 0xde, 0xee, 0xff, 0x80,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5EFF "廿" */
- 0x0, 0x0, 0x9, 0x10, 0x0, 0x81, 0x0, 0x0,
- 0x0, 0x0, 0xe, 0x0, 0x0, 0xe1, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0x0, 0x0, 0xe0, 0x6, 0x30,
- 0x6, 0x66, 0x6e, 0x66, 0x66, 0xe6, 0x67, 0x70,
- 0x0, 0x0, 0xd, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0xe, 0x66, 0x66, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0x1d, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
-
- /* U+5F0F "式" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1c, 0x23, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe0, 0x6c, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0xe, 0x0, 0xa4, 0x0, 0x17, 0x66,
- 0x66, 0x66, 0xf6, 0x66, 0xda, 0x0, 0x10, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc2, 0x0, 0x0, 0x0, 0x56, 0x66, 0x6e,
- 0x4a, 0x40, 0x0, 0x0, 0x1, 0x2, 0xb0, 0x0,
- 0x77, 0x0, 0x0, 0x0, 0x0, 0x2b, 0x0, 0x4,
- 0xb0, 0x0, 0x0, 0x0, 0x2, 0xb0, 0x0, 0xe,
- 0x10, 0x0, 0x0, 0x0, 0x2b, 0x0, 0x11, 0x88,
- 0x0, 0x60, 0x0, 0x3, 0xd8, 0x64, 0x1, 0xe4,
- 0x8, 0x5, 0xbd, 0x94, 0x0, 0x0, 0x4, 0xe7,
- 0xb0, 0x26, 0x0, 0x0, 0x0, 0x0, 0x3, 0xdf,
- 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x42,
-
- /* U+5F15 "引" */
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x91, 0x37, 0x66,
- 0x68, 0xd0, 0x0, 0xe0, 0x0, 0x0, 0x3, 0xa0,
- 0x0, 0xe0, 0x0, 0x0, 0x3, 0xa0, 0x0, 0xe0,
- 0xc, 0x66, 0x68, 0xb0, 0x0, 0xe0, 0xd, 0x0,
- 0x1, 0x30, 0x0, 0xe0, 0x3a, 0x0, 0x0, 0x0,
- 0x0, 0xe0, 0xaa, 0x66, 0x66, 0xb3, 0x0, 0xe0,
- 0x21, 0x0, 0x0, 0xe0, 0x0, 0xe0, 0x0, 0x0,
- 0x2, 0xb0, 0x0, 0xe0, 0x0, 0x0, 0x6, 0x80,
- 0x0, 0xe0, 0x0, 0x0, 0xa, 0x40, 0x0, 0xe0,
- 0x0, 0x45, 0x6e, 0x0, 0x0, 0xe0, 0x0, 0x7,
- 0xe4, 0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x40,
-
- /* U+5F1F "弟" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x3, 0x50, 0x0, 0x9, 0x50, 0x0, 0x0, 0x0,
- 0xb7, 0x0, 0x1c, 0x10, 0x0, 0x0, 0x0, 0x26,
- 0x0, 0x61, 0x3, 0x0, 0x2, 0x76, 0x66, 0x7b,
- 0x66, 0x6d, 0x50, 0x0, 0x0, 0x0, 0x2b, 0x0,
- 0xc, 0x20, 0x0, 0x41, 0x0, 0x2b, 0x0, 0xc,
- 0x20, 0x0, 0xa9, 0x66, 0x7d, 0x66, 0x6c, 0x10,
- 0x0, 0xe0, 0x0, 0x2b, 0x0, 0x0, 0x0, 0x6,
- 0xd6, 0x66, 0xad, 0x66, 0x66, 0xc4, 0x0, 0x10,
- 0x8, 0xbb, 0x0, 0x0, 0xd1, 0x0, 0x0, 0x5b,
- 0x2b, 0x0, 0x0, 0xe0, 0x0, 0x5, 0x90, 0x2b,
- 0x0, 0x2, 0xc0, 0x0, 0x76, 0x0, 0x2b, 0x4,
- 0xbd, 0x70, 0x36, 0x10, 0x0, 0x3c, 0x0, 0x26,
- 0x0, 0x0, 0x0, 0x0, 0x13, 0x0, 0x0, 0x0,
-
- /* U+5F31 "弱" */
- 0x0, 0x0, 0x0, 0x60, 0x23, 0x33, 0x39, 0x0,
- 0x17, 0x66, 0x6e, 0x13, 0x43, 0x33, 0xd0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0xd, 0x0, 0x6,
- 0x66, 0x6e, 0x0, 0xb5, 0x55, 0xd0, 0x0, 0xa2,
- 0x0, 0x70, 0x2b, 0x0, 0x4, 0x0, 0xc, 0x0,
- 0x0, 0x5, 0x80, 0x0, 0x0, 0x2, 0xe6, 0x66,
- 0xd2, 0xa9, 0x66, 0x6c, 0x50, 0x3, 0x0, 0xe,
- 0x1, 0x30, 0x0, 0xb2, 0x0, 0xc, 0x20, 0xd0,
- 0x3, 0xc0, 0xb, 0x20, 0x0, 0x65, 0xd, 0x0,
- 0xa, 0x20, 0xb2, 0x0, 0x0, 0x65, 0xd0, 0x0,
- 0x27, 0x4c, 0x20, 0x39, 0x91, 0x1b, 0x5, 0xb7,
- 0x0, 0xd1, 0xb, 0x50, 0x4, 0x90, 0xa2, 0x10,
- 0xe, 0x0, 0x0, 0x4b, 0xe3, 0x0, 0x1, 0x9f,
- 0x90, 0x0, 0x0, 0x23, 0x0, 0x0, 0x0, 0x40,
- 0x0,
-
- /* U+5F35 "張" */
- 0x0, 0x0, 0x3, 0x3, 0x0, 0x0, 0x28, 0x0,
- 0x4, 0x66, 0x6e, 0x1a, 0x76, 0x66, 0x66, 0x10,
- 0x0, 0x0, 0xd, 0xa, 0x30, 0x0, 0x52, 0x0,
- 0x0, 0x0, 0xd, 0xa, 0x76, 0x66, 0x64, 0x0,
- 0x5, 0x86, 0x6e, 0xa, 0x30, 0x0, 0x34, 0x0,
- 0x7, 0x60, 0x4, 0xa, 0x76, 0x66, 0x65, 0x0,
- 0x8, 0x40, 0x0, 0xa, 0x30, 0x0, 0x4, 0x20,
- 0xc, 0x20, 0x5, 0x7d, 0x69, 0x66, 0x67, 0x60,
- 0x8, 0x66, 0x6d, 0x3d, 0x4, 0x20, 0x9, 0x0,
- 0x0, 0x0, 0xd, 0xd, 0x0, 0x81, 0xa6, 0x10,
- 0x0, 0x0, 0xc, 0xd, 0x0, 0x78, 0x0, 0x0,
- 0x0, 0x0, 0x39, 0xd, 0x0, 0xc, 0x20, 0x0,
- 0x0, 0x20, 0x85, 0xd, 0x48, 0x14, 0xe5, 0x0,
- 0x0, 0x5e, 0xe0, 0xe, 0xa0, 0x0, 0x5f, 0x90,
- 0x0, 0x4, 0x10, 0x3, 0x0, 0x0, 0x1, 0x0,
-
- /* U+5F37 "強" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x4, 0x0, 0x5, 0xc0, 0x0, 0x0,
- 0x6, 0x66, 0x6e, 0x20, 0xc, 0x20, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0x0, 0x82, 0x0, 0x31, 0x0,
- 0x0, 0x0, 0xd, 0x18, 0x20, 0x12, 0x3d, 0x60,
- 0x6, 0x86, 0x6e, 0x2e, 0xb8, 0xa4, 0x22, 0xe0,
- 0x8, 0x50, 0x3, 0x0, 0x0, 0xd1, 0x0, 0x10,
- 0x9, 0x30, 0x0, 0x8, 0x66, 0xe6, 0x6a, 0x20,
- 0xd, 0x10, 0x5, 0xd, 0x0, 0xd0, 0xd, 0x0,
- 0x7, 0x66, 0x6d, 0x4d, 0x0, 0xd0, 0xd, 0x0,
- 0x0, 0x0, 0xd, 0xd, 0x66, 0xe6, 0x6e, 0x0,
- 0x0, 0x0, 0x1d, 0x8, 0x0, 0xd0, 0x5, 0x0,
- 0x0, 0x0, 0x5a, 0x0, 0x0, 0xd0, 0x7, 0x0,
- 0x0, 0x42, 0xc4, 0x13, 0x45, 0xe7, 0x68, 0xb0,
- 0x0, 0x2e, 0xa0, 0x1d, 0x95, 0x30, 0x0, 0xc0,
- 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5F53 "当" */
- 0x0, 0x0, 0x0, 0x95, 0x0, 0x0, 0x0, 0x2,
- 0x30, 0x0, 0xb3, 0x0, 0x66, 0x0, 0x0, 0x99,
- 0x0, 0xb2, 0x1, 0xe7, 0x0, 0x0, 0xd, 0x60,
- 0xb2, 0x9, 0x40, 0x0, 0x0, 0x3, 0x20, 0xb2,
- 0x42, 0x0, 0x0, 0x5, 0x66, 0x66, 0xd7, 0x66,
- 0x66, 0xc2, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1,
- 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xd0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xd0, 0x1,
- 0x86, 0x66, 0x66, 0x66, 0x66, 0xd0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1, 0xd0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x1, 0xd0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0xe0, 0x28, 0x66, 0x66, 0x66, 0x66,
- 0x66, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x50,
-
- /* U+5F62 "形" */
- 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x13, 0x0,
- 0x4, 0x68, 0x76, 0x68, 0xa8, 0x0, 0xab, 0x0,
- 0x0, 0x9, 0x40, 0x2a, 0x0, 0x5, 0xa0, 0x0,
- 0x0, 0x9, 0x40, 0x2a, 0x0, 0x29, 0x0, 0x0,
- 0x0, 0x9, 0x40, 0x2a, 0x2, 0x50, 0x2, 0x0,
- 0x0, 0x9, 0x40, 0x2a, 0x46, 0x0, 0x2e, 0x40,
- 0x6, 0x6c, 0x86, 0x7c, 0x65, 0x1, 0xd6, 0x0,
- 0x0, 0xb, 0x20, 0x2a, 0x0, 0x1b, 0x30, 0x0,
- 0x0, 0xc, 0x10, 0x2a, 0x2, 0x81, 0x0, 0x0,
- 0x0, 0xc, 0x0, 0x2a, 0x3, 0x0, 0x7, 0xc0,
- 0x0, 0x48, 0x0, 0x2a, 0x0, 0x0, 0x5d, 0x30,
- 0x0, 0xa1, 0x0, 0x3a, 0x0, 0x6, 0xb1, 0x0,
- 0x3, 0x60, 0x0, 0x3a, 0x0, 0x87, 0x0, 0x0,
- 0x6, 0x0, 0x0, 0x25, 0x38, 0x20, 0x0, 0x0,
- 0x10, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0,
-
- /* U+5F71 "影" */
- 0x0, 0x30, 0x0, 0x3, 0x10, 0x0, 0x21, 0x0,
- 0x0, 0xe6, 0x66, 0x6b, 0x60, 0x0, 0xb9, 0x0,
- 0x0, 0xd6, 0x66, 0x6b, 0x30, 0x7, 0x80, 0x0,
- 0x0, 0xd0, 0x0, 0x9, 0x30, 0x46, 0x0, 0x0,
- 0x0, 0xd6, 0x88, 0x6b, 0x33, 0x40, 0x1, 0x0,
- 0x1, 0x11, 0x1c, 0x11, 0x80, 0x0, 0x1e, 0x50,
- 0x6, 0x65, 0x55, 0x57, 0x52, 0x0, 0xb6, 0x0,
- 0x0, 0xd6, 0x66, 0x6d, 0x30, 0x9, 0x40, 0x0,
- 0x0, 0xd1, 0x0, 0xb, 0x11, 0x82, 0x0, 0x10,
- 0x0, 0xd6, 0x68, 0x6d, 0x23, 0x0, 0x7, 0xd0,
- 0x0, 0x43, 0xd, 0x13, 0x0, 0x0, 0x5c, 0x20,
- 0x0, 0x3d, 0x1d, 0x4b, 0x20, 0x6, 0xa0, 0x0,
- 0x1, 0xa1, 0xc, 0x6, 0x80, 0x97, 0x0, 0x0,
- 0x6, 0x3, 0xca, 0x0, 0x67, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x10, 0x2, 0x10, 0x0, 0x0, 0x0,
-
- /* U+5F79 "役" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2, 0xe2, 0x3, 0x76, 0x6a, 0x0, 0x0,
- 0x0, 0xb, 0x60, 0x3, 0x90, 0xd, 0x0, 0x0,
- 0x0, 0x77, 0x0, 0x4, 0x90, 0xd, 0x0, 0x0,
- 0x4, 0x60, 0x52, 0x6, 0x60, 0xd, 0x0, 0x0,
- 0x13, 0x1, 0xe6, 0xb, 0x10, 0xe, 0x21, 0x30,
- 0x0, 0xa, 0x60, 0x83, 0x0, 0x5, 0x88, 0x80,
- 0x0, 0x5f, 0x15, 0x25, 0x66, 0x66, 0xb0, 0x0,
- 0x3, 0x8c, 0x10, 0x1, 0x40, 0x6, 0x90, 0x0,
- 0x26, 0xc, 0x10, 0x0, 0x70, 0xc, 0x20, 0x0,
- 0x10, 0xc, 0x10, 0x0, 0x53, 0x4a, 0x0, 0x0,
- 0x0, 0xc, 0x10, 0x0, 0xa, 0xc1, 0x0, 0x0,
- 0x0, 0xc, 0x10, 0x0, 0xc, 0xc0, 0x0, 0x0,
- 0x0, 0xc, 0x10, 0x3, 0xb3, 0x4d, 0x60, 0x0,
- 0x0, 0xc, 0x12, 0x76, 0x0, 0x2, 0xbf, 0x80,
- 0x0, 0x4, 0x12, 0x0, 0x0, 0x0, 0x2, 0x0,
-
- /* U+5F7C "彼" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x85, 0x0, 0x0, 0x1e, 0x0, 0x0, 0x0,
- 0x1e, 0x20, 0x0, 0x0, 0xc0, 0x0, 0x0, 0x8,
- 0x50, 0x7, 0x66, 0x6d, 0x66, 0xa7, 0x2, 0x70,
- 0x91, 0x84, 0x0, 0xc0, 0xb, 0x30, 0x60, 0x3d,
- 0x18, 0x40, 0xc, 0x3, 0x10, 0x0, 0xc, 0x40,
- 0x84, 0x0, 0xc0, 0x0, 0x0, 0x5, 0xf0, 0x8,
- 0x86, 0x6c, 0x69, 0x80, 0x1, 0xad, 0x0, 0x93,
- 0x60, 0x0, 0xa3, 0x0, 0x70, 0xd0, 0xa, 0x22,
- 0x60, 0x1c, 0x0, 0x10, 0xd, 0x0, 0xc0, 0xa,
- 0x8, 0x40, 0x0, 0x0, 0xd0, 0xb, 0x0, 0x49,
- 0xa0, 0x0, 0x0, 0xd, 0x4, 0x60, 0x2, 0xf5,
- 0x0, 0x0, 0x0, 0xd0, 0x80, 0x6, 0x92, 0xc9,
- 0x20, 0x0, 0xd, 0x33, 0x47, 0x20, 0x0, 0x9f,
- 0x90, 0x0, 0x41, 0x20, 0x0, 0x0, 0x0, 0x10,
-
- /* U+5F80 "往" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1c, 0x10, 0x4, 0x20, 0x0, 0x0, 0x0,
- 0x9, 0x80, 0x0, 0xc, 0x40, 0x0, 0x0, 0x4,
- 0x90, 0x0, 0x0, 0x68, 0x0, 0x0, 0x1, 0x80,
- 0x11, 0x66, 0x66, 0x66, 0x9c, 0x0, 0x50, 0xe,
- 0x42, 0x0, 0xe0, 0x0, 0x0, 0x0, 0x8, 0xa0,
- 0x0, 0xe, 0x0, 0x0, 0x0, 0x2, 0xf1, 0x0,
- 0x0, 0xe0, 0x0, 0x0, 0x0, 0xbe, 0x10, 0x0,
- 0xe, 0x0, 0x52, 0x0, 0x73, 0xc1, 0x6, 0x76,
- 0xe6, 0x66, 0x40, 0x32, 0xc, 0x10, 0x0, 0xe,
- 0x0, 0x0, 0x0, 0x0, 0xc1, 0x0, 0x0, 0xe0,
- 0x0, 0x0, 0x0, 0xc, 0x10, 0x0, 0xe, 0x0,
- 0x0, 0x0, 0x0, 0xc1, 0x0, 0x0, 0xe0, 0x0,
- 0x61, 0x0, 0xd, 0x28, 0x66, 0x68, 0x66, 0x68,
- 0x60, 0x0, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5F85 "待" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2c, 0x0, 0x0, 0xc2, 0x0, 0x0, 0x0,
- 0x9, 0x70, 0x0, 0xd, 0x0, 0x0, 0x0, 0x3,
- 0xa0, 0x6, 0x66, 0xe6, 0x6c, 0x20, 0x0, 0x90,
- 0x72, 0x0, 0xd, 0x0, 0x0, 0x0, 0x60, 0x1e,
- 0x30, 0x0, 0xd0, 0x0, 0x10, 0x0, 0x9, 0x67,
- 0x66, 0x6c, 0x66, 0x6b, 0x50, 0x3, 0xf1, 0x0,
- 0x0, 0x0, 0x92, 0x0, 0x0, 0xad, 0x10, 0x0,
- 0x0, 0xd, 0x7, 0x10, 0x71, 0xc1, 0x36, 0x66,
- 0x66, 0xe6, 0x63, 0x10, 0xc, 0x10, 0x7, 0x30,
- 0xd, 0x0, 0x0, 0x0, 0xc1, 0x0, 0x1e, 0x10,
- 0xd0, 0x0, 0x0, 0xc, 0x10, 0x0, 0x70, 0xd,
- 0x0, 0x0, 0x0, 0xd1, 0x0, 0x0, 0x0, 0xd0,
- 0x0, 0x0, 0xd, 0x10, 0x0, 0x17, 0xbd, 0x0,
- 0x0, 0x0, 0x40, 0x0, 0x0, 0x4, 0x20, 0x0,
-
- /* U+5F88 "很" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x59, 0x0, 0x10, 0x0, 0x2, 0x0, 0x0,
- 0xc, 0x40, 0xd, 0x66, 0x66, 0xe3, 0x0, 0x5,
- 0x70, 0x0, 0xd0, 0x0, 0xd, 0x0, 0x1, 0x80,
- 0x51, 0xd, 0x0, 0x0, 0xd0, 0x0, 0x50, 0xe,
- 0x30, 0xd6, 0x66, 0x6e, 0x0, 0x0, 0x7, 0x70,
- 0xd, 0x0, 0x0, 0xd0, 0x0, 0x1, 0xf0, 0x0,
- 0xd6, 0x66, 0x6e, 0x0, 0x0, 0x9e, 0x0, 0xd,
- 0x6, 0x0, 0x53, 0x0, 0x62, 0xd0, 0x0, 0xd0,
- 0x70, 0x1c, 0x70, 0x22, 0xd, 0x0, 0xd, 0x2,
- 0x87, 0x10, 0x0, 0x0, 0xd0, 0x0, 0xd0, 0x9,
- 0x20, 0x0, 0x0, 0xd, 0x0, 0xd, 0x0, 0x3c,
- 0x40, 0x0, 0x0, 0xd0, 0x0, 0xe9, 0x70, 0x2e,
- 0xa4, 0x0, 0xd, 0x0, 0xd, 0x30, 0x0, 0x8,
- 0x30, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5F8B "律" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x30, 0x0, 0x1d, 0x10, 0x0, 0x0,
- 0x0, 0x69, 0x0, 0x0, 0xd, 0x0, 0x10, 0x0,
- 0x0, 0xb0, 0x0, 0x86, 0x6e, 0x66, 0xd4, 0x0,
- 0x7, 0x12, 0xc1, 0x0, 0xd, 0x0, 0xc2, 0x10,
- 0x1, 0x8, 0x96, 0x76, 0x6e, 0x66, 0xda, 0x90,
- 0x0, 0x1e, 0x0, 0x0, 0xd, 0x0, 0xc1, 0x0,
- 0x0, 0x9e, 0x0, 0x76, 0x6e, 0x66, 0xd1, 0x0,
- 0x4, 0x6e, 0x0, 0x0, 0xd, 0x0, 0x20, 0x0,
- 0x15, 0xe, 0x2, 0x76, 0x6e, 0x66, 0xb7, 0x0,
- 0x0, 0xe, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0,
- 0x0, 0xe, 0x26, 0x66, 0x6e, 0x66, 0x6d, 0x60,
- 0x0, 0xe, 0x1, 0x0, 0xd, 0x0, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0x0, 0xe, 0x0, 0x0, 0x0,
- 0x0, 0x3, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
-
- /* U+5F8C "後" */
- 0x0, 0x1, 0xb1, 0x0, 0xb, 0x30, 0x0, 0x0,
- 0x0, 0x9, 0x90, 0x0, 0x79, 0x1, 0x50, 0x0,
- 0x0, 0x49, 0x0, 0x7, 0x70, 0xc, 0xa0, 0x0,
- 0x2, 0x80, 0x52, 0x8e, 0x76, 0xc5, 0x0, 0x0,
- 0x15, 0x1, 0xe5, 0x11, 0x3a, 0x22, 0x40, 0x0,
- 0x0, 0xa, 0x60, 0x7, 0x70, 0x0, 0x97, 0x0,
- 0x0, 0x5f, 0x10, 0xdd, 0xc7, 0x65, 0x4e, 0x0,
- 0x2, 0x9d, 0x10, 0x11, 0xe3, 0x0, 0x2, 0x0,
- 0x26, 0xc, 0x10, 0x9, 0xa6, 0x66, 0xd1, 0x0,
- 0x0, 0xc, 0x10, 0x47, 0x60, 0x8, 0x90, 0x0,
- 0x0, 0xc, 0x12, 0x70, 0x44, 0x3c, 0x0, 0x0,
- 0x0, 0xc, 0x13, 0x0, 0xa, 0xd2, 0x0, 0x0,
- 0x0, 0xc, 0x10, 0x0, 0x4b, 0xa7, 0x10, 0x0,
- 0x0, 0xd, 0x10, 0x49, 0x60, 0x6, 0xdc, 0x80,
- 0x0, 0x6, 0x14, 0x20, 0x0, 0x0, 0x4, 0x10,
-
- /* U+5F92 "徒" */
- 0x0, 0x5, 0x80, 0x0, 0x9, 0x50, 0x0, 0x0,
- 0x0, 0xc, 0x40, 0x0, 0xa, 0x30, 0x0, 0x0,
- 0x0, 0x67, 0x0, 0x0, 0xa, 0x30, 0x36, 0x0,
- 0x2, 0x90, 0x61, 0x66, 0x6c, 0x86, 0x65, 0x0,
- 0x7, 0x2, 0xf3, 0x0, 0xa, 0x30, 0x0, 0x0,
- 0x0, 0x9, 0x60, 0x0, 0xa, 0x30, 0x6, 0x30,
- 0x0, 0x3f, 0x16, 0x66, 0x6c, 0x86, 0x66, 0x50,
- 0x0, 0xad, 0x10, 0x32, 0xa, 0x50, 0x0, 0x0,
- 0x7, 0x1c, 0x10, 0x79, 0xa, 0x30, 0x27, 0x0,
- 0x21, 0xc, 0x10, 0x95, 0xa, 0x86, 0x66, 0x10,
- 0x0, 0xc, 0x10, 0xc6, 0xa, 0x30, 0x0, 0x0,
- 0x0, 0xc, 0x11, 0xa3, 0x6a, 0x30, 0x0, 0x0,
- 0x0, 0xc, 0x18, 0x20, 0x3d, 0x83, 0x10, 0x10,
- 0x0, 0xd, 0x44, 0x0, 0x0, 0x5a, 0xdf, 0x90,
- 0x0, 0x1, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5F93 "従" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0xc3, 0x4, 0x0, 0x0, 0x38, 0x0,
- 0x0, 0x8, 0xb1, 0x5, 0xb0, 0x0, 0x99, 0x0,
- 0x0, 0x3a, 0x0, 0x0, 0xb7, 0x1, 0xa0, 0x0,
- 0x1, 0xa0, 0x21, 0x0, 0x25, 0x6, 0x0, 0x0,
- 0x6, 0x0, 0xba, 0x36, 0x66, 0x67, 0x6c, 0x80,
- 0x0, 0x5, 0xb0, 0x1, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x1e, 0x20, 0x4, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0xae, 0x10, 0x1f, 0x20, 0xe0, 0x2, 0x0,
- 0x7, 0x1c, 0x10, 0x1e, 0x0, 0xe6, 0x6a, 0x10,
- 0x20, 0xc, 0x10, 0x2c, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0xc, 0x10, 0x5c, 0x20, 0xe0, 0x0, 0x0,
- 0x0, 0xc, 0x10, 0xa1, 0x93, 0xe0, 0x0, 0x0,
- 0x0, 0xd, 0x12, 0x70, 0xa, 0xe3, 0x0, 0x0,
- 0x0, 0xd, 0x16, 0x0, 0x0, 0x5c, 0xec, 0xa1,
- 0x0, 0x3, 0x20, 0x0, 0x0, 0x0, 0x25, 0x20,
-
- /* U+5F97 "得" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa5, 0x3, 0x0, 0x0, 0x22, 0x0,
- 0x0, 0x5, 0xd2, 0xe, 0x66, 0x66, 0xa9, 0x0,
- 0x0, 0x3b, 0x0, 0xd, 0x0, 0x0, 0x76, 0x0,
- 0x3, 0x80, 0x1a, 0x1d, 0x66, 0x66, 0xa6, 0x0,
- 0x4, 0x0, 0x8c, 0x1d, 0x0, 0x0, 0x77, 0x0,
- 0x0, 0x3, 0xd1, 0xe, 0x66, 0x66, 0xa7, 0x0,
- 0x0, 0x1e, 0x20, 0x4, 0x0, 0x0, 0x25, 0x10,
- 0x0, 0xae, 0x10, 0x76, 0x66, 0x67, 0xc6, 0x40,
- 0x7, 0x1c, 0x10, 0x0, 0x0, 0x3, 0xa0, 0x50,
- 0x10, 0xc, 0x16, 0x77, 0x66, 0x68, 0xc6, 0x71,
- 0x0, 0xc, 0x10, 0x8, 0x40, 0x3, 0xa0, 0x0,
- 0x0, 0xc, 0x10, 0x1, 0xe0, 0x3, 0xa0, 0x0,
- 0x0, 0xd, 0x10, 0x0, 0x40, 0x3, 0xa0, 0x0,
- 0x0, 0xd, 0x10, 0x0, 0x2, 0x9d, 0x80, 0x0,
- 0x0, 0x5, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0,
-
- /* U+5F9E "從" */
- 0x0, 0x0, 0xa1, 0x5, 0x50, 0x1, 0x70, 0x0,
- 0x0, 0x7, 0xc1, 0x9, 0x80, 0x3, 0xe1, 0x0,
- 0x0, 0x2b, 0x0, 0xc, 0x20, 0x8, 0x60, 0x0,
- 0x0, 0x90, 0x11, 0x1c, 0xa5, 0xc, 0x75, 0x0,
- 0x5, 0x0, 0x9b, 0x64, 0x1e, 0x46, 0xc, 0x50,
- 0x0, 0x3, 0xc1, 0x70, 0x1, 0x60, 0x2, 0x30,
- 0x0, 0xd, 0x23, 0x0, 0x1, 0x60, 0x0, 0x0,
- 0x0, 0xae, 0x10, 0x6, 0x10, 0xe0, 0x0, 0x0,
- 0x7, 0x1d, 0x10, 0xf, 0x10, 0xd0, 0x24, 0x0,
- 0x10, 0xd, 0x10, 0xd, 0x0, 0xe6, 0x65, 0x0,
- 0x0, 0xd, 0x10, 0x2b, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0xd, 0x10, 0x69, 0x81, 0xd0, 0x0, 0x0,
- 0x0, 0xd, 0x10, 0xa0, 0x1a, 0xe3, 0x0, 0x0,
- 0x0, 0xd, 0x16, 0x20, 0x0, 0x4b, 0xec, 0xa2,
- 0x0, 0x5, 0x11, 0x0, 0x0, 0x0, 0x14, 0x30,
-
- /* U+5FA1 "御" */
- 0x0, 0x2, 0xa0, 0xc, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb, 0x70, 0x3a, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x58, 0x0, 0x78, 0x6b, 0x5b, 0x66, 0xd0,
- 0x3, 0x70, 0x51, 0x81, 0xa0, 0xd, 0x1, 0xa0,
- 0x4, 0x1, 0xe6, 0x41, 0xa0, 0xd, 0x1, 0xa0,
- 0x0, 0x9, 0x61, 0x1, 0xa3, 0x4d, 0x1, 0xa0,
- 0x0, 0x4e, 0x4, 0x66, 0xc6, 0x5d, 0x1, 0xa0,
- 0x1, 0x8d, 0x1, 0x51, 0xa0, 0xd, 0x1, 0xa0,
- 0x6, 0xd, 0x1, 0xb1, 0xc8, 0x6d, 0x1, 0xa0,
- 0x0, 0xd, 0x1, 0xa1, 0xa0, 0xd, 0x1, 0xa0,
- 0x0, 0xd, 0x1, 0xa1, 0xa0, 0xd, 0x1, 0xa0,
- 0x0, 0xd, 0x1, 0xa4, 0xc5, 0x3d, 0x2b, 0x70,
- 0x0, 0xd, 0xa, 0xd6, 0x0, 0xd, 0x1, 0x0,
- 0x0, 0xd, 0x2, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x3, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0,
-
- /* U+5FA9 "復" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0xb1, 0x6, 0xa0, 0x0, 0x0, 0x0,
- 0x0, 0xa, 0x90, 0xd, 0x30, 0x0, 0x6, 0x10,
- 0x0, 0x49, 0x0, 0x59, 0x66, 0x66, 0x66, 0x40,
- 0x3, 0x90, 0x1, 0x77, 0x66, 0x66, 0x6a, 0x10,
- 0x16, 0x0, 0xc5, 0xc, 0x10, 0x0, 0xd, 0x0,
- 0x0, 0x6, 0xb0, 0xb, 0x66, 0x66, 0x6d, 0x0,
- 0x0, 0x1f, 0x10, 0xb, 0x10, 0x0, 0xd, 0x0,
- 0x0, 0xae, 0x0, 0xc, 0x9a, 0x66, 0x6c, 0x0,
- 0x7, 0x2d, 0x0, 0x0, 0xb2, 0x0, 0x12, 0x0,
- 0x10, 0xd, 0x0, 0x7, 0xb6, 0x66, 0xcb, 0x0,
- 0x0, 0xd, 0x0, 0x45, 0x16, 0x5, 0xc0, 0x0,
- 0x0, 0xd, 0x3, 0x30, 0x5, 0xac, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0x8, 0xcb, 0x20, 0x0,
- 0x0, 0xd, 0x0, 0x16, 0x72, 0x4, 0xeb, 0x80,
- 0x0, 0x4, 0x2, 0x30, 0x0, 0x0, 0x5, 0x20,
-
- /* U+5FC3 "心" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x1, 0xa2, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x4, 0xf3, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x60, 0xc, 0x90, 0x0, 0x0, 0x0, 0x0,
- 0xe, 0x30, 0x43, 0x0, 0x0, 0x0, 0x0, 0x20,
- 0xe1, 0x0, 0x0, 0x4, 0x0, 0x0, 0x35, 0xe,
- 0x10, 0x0, 0x0, 0x58, 0x0, 0x8, 0x50, 0xe1,
- 0x0, 0x0, 0x0, 0xd6, 0x2, 0xf3, 0xe, 0x10,
- 0x0, 0x2, 0x8, 0xc0, 0xac, 0x0, 0xe1, 0x0,
- 0x0, 0x60, 0x37, 0x0, 0x0, 0xe, 0x10, 0x0,
- 0x8, 0x0, 0x0, 0x0, 0x0, 0xd2, 0x0, 0x0,
- 0xc4, 0x0, 0x0, 0x0, 0x9, 0xdb, 0xbb, 0xcf,
- 0x70, 0x0, 0x0, 0x0, 0x1, 0x11, 0x11, 0x0,
- 0x0,
-
- /* U+5FC5 "必" */
- 0x0, 0x0, 0x0, 0x40, 0x0, 0x1, 0x0, 0x0,
- 0x0, 0x0, 0x4, 0x90, 0x0, 0xc6, 0x0, 0x0,
- 0x0, 0x3, 0x9, 0x90, 0x1e, 0x0, 0x0, 0x0,
- 0x0, 0xf1, 0x1b, 0x7, 0x80, 0x0, 0x0, 0x0,
- 0xd, 0x0, 0x0, 0xd1, 0x0, 0x0, 0x4, 0x0,
- 0xd0, 0x0, 0x69, 0x5, 0x0, 0x0, 0x71, 0xd,
- 0x0, 0xd, 0x10, 0x39, 0x0, 0xc, 0x0, 0xd0,
- 0x8, 0x70, 0x0, 0xc5, 0x6, 0xe0, 0xd, 0x3,
- 0xc0, 0x0, 0x6, 0xa0, 0x33, 0x0, 0xd1, 0xc2,
- 0x0, 0x50, 0x12, 0x0, 0x0, 0xe, 0xb3, 0x0,
- 0x6, 0x10, 0x0, 0x0, 0x4, 0xf2, 0x0, 0x0,
- 0x97, 0x0, 0x0, 0x58, 0x5b, 0xee, 0xee, 0xee,
- 0x60, 0x0, 0x41, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+5FD8 "忘" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x4, 0x80, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb, 0x90, 0x0, 0x3, 0x0, 0x66,
- 0x66, 0x66, 0x9a, 0x66, 0x68, 0xe5, 0x1, 0x0,
- 0xc1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc,
- 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc1,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0x10,
- 0x0, 0x0, 0x9, 0x10, 0x0, 0x1, 0xc6, 0x67,
- 0x66, 0x66, 0x63, 0x0, 0x0, 0x0, 0x0, 0x88,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x5a, 0x0, 0xd5,
- 0x0, 0x40, 0x0, 0x6, 0x14, 0x90, 0x5, 0x20,
- 0x13, 0xc2, 0x0, 0xd0, 0x49, 0x0, 0x0, 0x6,
- 0x8, 0xb0, 0x9c, 0x4, 0xa0, 0x0, 0x0, 0xc0,
- 0x16, 0x0, 0x0, 0x1d, 0xcc, 0xcc, 0xdc, 0x10,
- 0x0,
-
- /* U+5FD9 "忙" */
- 0x0, 0xa, 0x10, 0x0, 0x14, 0x0, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0x0, 0xa, 0x70, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0x0, 0x4, 0xc0, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0x0, 0x0, 0x20, 0x4, 0x70,
- 0x1, 0xe, 0xa8, 0x6e, 0x66, 0x66, 0x66, 0x61,
- 0x6, 0x2e, 0x4b, 0xe, 0x0, 0x0, 0x0, 0x0,
- 0xb, 0x3e, 0x2, 0xe, 0x0, 0x0, 0x0, 0x0,
- 0x1a, 0xe, 0x0, 0xe, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0xe, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0xe, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0xe, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0xe, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0xe, 0x0, 0x0, 0x6, 0x10,
- 0x0, 0xe, 0x0, 0x2a, 0x66, 0x66, 0x67, 0x50,
- 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+5FEB "快" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xe, 0x20, 0x0, 0x2c, 0x0, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0x0, 0x2c, 0x0, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0x0, 0x1c, 0x0, 0x51, 0x0,
- 0x0, 0xe, 0x40, 0x66, 0x6d, 0x66, 0xd5, 0x0,
- 0x2, 0x2e, 0x6b, 0x0, 0x1c, 0x0, 0xc1, 0x0,
- 0x7, 0x4e, 0xc, 0x0, 0x1b, 0x0, 0xc1, 0x0,
- 0xe, 0x2e, 0x0, 0x0, 0x2b, 0x0, 0xc1, 0x0,
- 0x2, 0xe, 0x5, 0x66, 0x8c, 0x66, 0xdb, 0xc1,
- 0x0, 0xe, 0x1, 0x0, 0x77, 0x50, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0x0, 0xb2, 0x70, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0x3, 0xb0, 0x37, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0xb, 0x20, 0xb, 0x40, 0x0,
- 0x0, 0xe, 0x0, 0x94, 0x0, 0x2, 0xe7, 0x0,
- 0x0, 0xf, 0x7, 0x30, 0x0, 0x0, 0x4f, 0xb1,
- 0x0, 0x4, 0x30, 0x0, 0x0, 0x0, 0x2, 0x0,
-
- /* U+5FF5 "念" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa, 0x80, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x5e, 0x70, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x3, 0xd2, 0x9, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x3c, 0x38, 0x0, 0xa6, 0x0, 0x0,
- 0x0, 0x4, 0xb1, 0x7, 0x90, 0x7, 0xe9, 0x51,
- 0x0, 0x76, 0x0, 0x2, 0x50, 0x1, 0x2a, 0x91,
- 0x5, 0x10, 0x66, 0x66, 0x66, 0xbc, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x2, 0xe1, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x42, 0xb, 0x60, 0x0, 0x0,
- 0x0, 0x0, 0x1d, 0x2d, 0x34, 0x0, 0x10, 0x0,
- 0x0, 0x7, 0xd, 0x8, 0x60, 0x1, 0x48, 0x0,
- 0x0, 0x87, 0xd, 0x0, 0x0, 0x7, 0xc, 0x70,
- 0x2, 0xc1, 0xe, 0x0, 0x0, 0xc, 0x14, 0x50,
- 0x0, 0x0, 0xc, 0xdc, 0xcc, 0xdd, 0x20, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+600E "怎" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5,
- 0xb0, 0x0, 0x0, 0x1, 0x20, 0x0, 0xc, 0x79,
- 0x66, 0x66, 0x69, 0xa0, 0x0, 0x75, 0xe, 0x0,
- 0x0, 0x0, 0x0, 0x3, 0x70, 0xe, 0x66, 0x66,
- 0xc7, 0x0, 0x16, 0x0, 0xe, 0x0, 0x0, 0x0,
- 0x0, 0x10, 0x0, 0xe, 0x0, 0x0, 0xa, 0x10,
- 0x0, 0x0, 0xe, 0x66, 0x66, 0x67, 0x30, 0x0,
- 0x0, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x62, 0x47, 0x0, 0x1, 0x0, 0x2, 0x40, 0xe0,
- 0xc, 0x40, 0x4, 0x90, 0x9, 0x20, 0xd0, 0x3,
- 0x0, 0x50, 0x9a, 0x5e, 0x0, 0xe0, 0x0, 0x0,
- 0x91, 0x19, 0x22, 0x0, 0xcc, 0xcc, 0xcc, 0xe5,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+6012 "怒" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa3, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x1, 0x76, 0x66, 0x8b, 0x0,
- 0x6, 0x69, 0xa6, 0xa9, 0x13, 0x0, 0x96, 0x0,
- 0x0, 0xa, 0x10, 0xb2, 0x7, 0x2, 0xd0, 0x0,
- 0x0, 0x1b, 0x2, 0xb0, 0x2, 0x9c, 0x30, 0x0,
- 0x0, 0x4, 0x8e, 0x80, 0x0, 0xbc, 0x0, 0x0,
- 0x0, 0x0, 0xa5, 0xb6, 0x1b, 0x45, 0xd5, 0x0,
- 0x0, 0x58, 0x10, 0x18, 0x71, 0x0, 0x2c, 0xc1,
- 0x4, 0x10, 0x0, 0x34, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0x9, 0x13, 0xc1, 0x0, 0x50, 0x0,
- 0x0, 0x16, 0xe, 0x0, 0xa6, 0x0, 0x6b, 0x10,
- 0x0, 0xa5, 0xe, 0x0, 0x10, 0x5, 0xb, 0x70,
- 0x2, 0xb0, 0xe, 0x0, 0x0, 0xb, 0x2, 0x10,
- 0x0, 0x0, 0xa, 0xdd, 0xdd, 0xdb, 0x10, 0x0,
-
- /* U+6015 "怕" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x95, 0x0, 0x0, 0x3c, 0x10, 0x0, 0x0,
- 0xa, 0x30, 0x0, 0x5, 0x70, 0x0, 0x0, 0x0,
- 0xa3, 0x0, 0x0, 0x80, 0x0, 0x20, 0x0, 0xa,
- 0x70, 0xd, 0x67, 0x66, 0x6f, 0x10, 0x14, 0xa8,
- 0xa0, 0xd0, 0x0, 0x0, 0xe0, 0x5, 0x6a, 0x3a,
- 0xd, 0x0, 0x0, 0xe, 0x0, 0xc5, 0xa3, 0x0,
- 0xd0, 0x0, 0x0, 0xe0, 0x5, 0xa, 0x30, 0xe,
- 0x66, 0x66, 0x6e, 0x0, 0x0, 0xa3, 0x0, 0xd0,
- 0x0, 0x0, 0xe0, 0x0, 0xa, 0x30, 0xd, 0x0,
- 0x0, 0xe, 0x0, 0x0, 0xa3, 0x0, 0xd0, 0x0,
- 0x0, 0xe0, 0x0, 0xa, 0x30, 0xd, 0x0, 0x0,
- 0xe, 0x0, 0x0, 0xa3, 0x0, 0xe6, 0x66, 0x66,
- 0xe0, 0x0, 0xb, 0x40, 0xd, 0x0, 0x0, 0xe,
- 0x0, 0x0, 0x40, 0x0, 0x30, 0x0, 0x0, 0x10,
-
- /* U+601D "思" */
- 0x0, 0x4, 0x0, 0x0, 0x0, 0x1, 0x50, 0x0,
- 0x0, 0xd6, 0x66, 0xd7, 0x66, 0x8c, 0x0, 0x0,
- 0xc, 0x10, 0xb, 0x20, 0x3, 0xa0, 0x0, 0x0,
- 0xc1, 0x0, 0xb2, 0x0, 0x3a, 0x0, 0x0, 0xc,
- 0x66, 0x6d, 0x76, 0x68, 0xa0, 0x0, 0x0, 0xc1,
- 0x0, 0xb2, 0x0, 0x3a, 0x0, 0x0, 0xd, 0x10,
- 0xb, 0x20, 0x3, 0xa0, 0x0, 0x0, 0xd6, 0x66,
- 0x86, 0x66, 0x8b, 0x0, 0x0, 0x5, 0x0, 0x47,
- 0x0, 0x1, 0x10, 0x0, 0x3, 0x5, 0x80, 0x9a,
- 0x0, 0x4, 0x0, 0x0, 0x90, 0x57, 0x0, 0x70,
- 0x4, 0x2c, 0x30, 0x3e, 0x5, 0x70, 0x0, 0x0,
- 0x80, 0x7c, 0x9, 0x70, 0x58, 0x0, 0x0, 0xd,
- 0x30, 0x50, 0x0, 0x2, 0xdd, 0xdd, 0xdd, 0xd3,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+6025 "急" */
- 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x4, 0xe1, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd9, 0x66, 0x6c, 0x20, 0x0, 0x0, 0x0,
- 0x94, 0x0, 0x5, 0xb2, 0x0, 0x0, 0x0, 0x74,
- 0x0, 0x1, 0x80, 0x3, 0x20, 0x0, 0x65, 0x76,
- 0x66, 0x66, 0x66, 0xb9, 0x0, 0x31, 0x0, 0x0,
- 0x0, 0x0, 0x9, 0x50, 0x0, 0x0, 0x57, 0x66,
- 0x66, 0x66, 0xb5, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x9, 0x60, 0x0, 0x4, 0x76, 0x66, 0x66,
- 0x66, 0xb6, 0x0, 0x0, 0x0, 0x50, 0x77, 0x0,
- 0x4, 0x10, 0x0, 0x5, 0xe, 0x10, 0xb5, 0x3,
- 0x49, 0x10, 0x4, 0x70, 0xd0, 0x1, 0x0, 0x60,
- 0x7c, 0x2, 0xe2, 0xe, 0x0, 0x0, 0x1c, 0x0,
- 0x70, 0x1, 0x0, 0xcd, 0xcc, 0xce, 0xc1, 0x0,
- 0x0,
-
- /* U+6027 "性" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x20, 0x0, 0x0, 0xb2, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0x4, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0xe, 0x40, 0xd0, 0x0, 0x0,
- 0x0, 0xe, 0x81, 0x1d, 0x0, 0xd0, 0x3, 0x0,
- 0x2, 0x3e, 0x4b, 0x5a, 0x66, 0xe6, 0x6b, 0x50,
- 0x7, 0x4e, 0x2, 0xa1, 0x0, 0xd0, 0x0, 0x0,
- 0xe, 0x2e, 0x0, 0x80, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0xe, 0x4, 0x0, 0x0, 0xd0, 0x5, 0x0,
- 0x0, 0xe, 0x0, 0x18, 0x66, 0xe6, 0x78, 0x10,
- 0x0, 0xe, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0x0, 0x0, 0xd0, 0x4, 0x80,
- 0x0, 0xf, 0x5, 0x76, 0x66, 0x66, 0x66, 0x61,
- 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+606F "息" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0xd1, 0x0, 0x0, 0x0, 0x0, 0x9,
- 0x69, 0x86, 0x66, 0xb5, 0x0, 0x0, 0xe, 0x0,
- 0x0, 0x0, 0xb3, 0x0, 0x0, 0xf, 0x66, 0x66,
- 0x66, 0xd3, 0x0, 0x0, 0xe, 0x0, 0x0, 0x0,
- 0xb3, 0x0, 0x0, 0xf, 0x66, 0x66, 0x66, 0xd3,
- 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0xb3, 0x0,
- 0x0, 0xf, 0x66, 0x66, 0x66, 0xd3, 0x0, 0x0,
- 0xa, 0x0, 0x60, 0x0, 0x71, 0x0, 0x0, 0x0,
- 0x60, 0x5d, 0x10, 0x0, 0x0, 0x0, 0x50, 0xe1,
- 0xc, 0x10, 0x15, 0x70, 0x7, 0x50, 0xd0, 0x0,
- 0x0, 0x70, 0xc7, 0x4f, 0x20, 0xd0, 0x0, 0x1,
- 0xb0, 0x57, 0x12, 0x0, 0x9c, 0xcc, 0xcc, 0xa0,
- 0x0,
-
- /* U+60A8 "您" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2d, 0x10, 0x78, 0x0, 0x0, 0x0, 0x0,
- 0x8, 0x80, 0xe, 0x30, 0x0, 0x1, 0x0, 0x1,
- 0xe0, 0x5, 0xb6, 0x66, 0x68, 0xe2, 0x0, 0xae,
- 0x1, 0x90, 0x6, 0x10, 0x94, 0x0, 0x65, 0xe0,
- 0x60, 0x30, 0xd2, 0x2, 0x0, 0x14, 0xe, 0x0,
- 0x4e, 0x2c, 0x16, 0x20, 0x0, 0x0, 0xe0, 0x1a,
- 0x10, 0xc1, 0xc, 0x40, 0x0, 0xe, 0x7, 0x5,
- 0x5e, 0x0, 0x3b, 0x0, 0x0, 0xd0, 0x0, 0x8,
- 0xa0, 0x0, 0x10, 0x0, 0x0, 0x18, 0x19, 0x20,
- 0x0, 0x10, 0x0, 0x2, 0x51, 0xd0, 0x3e, 0x0,
- 0x26, 0x60, 0x0, 0xa4, 0x1d, 0x0, 0x50, 0x6,
- 0xb, 0x70, 0x7e, 0x0, 0xd0, 0x0, 0x0, 0xd1,
- 0x28, 0x0, 0x0, 0xb, 0xbb, 0xbb, 0xcb, 0x10,
- 0x0,
-
- /* U+60AA "悪" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x50, 0x7,
- 0x66, 0x6d, 0x66, 0xd6, 0x66, 0x60, 0x0, 0x10,
- 0xe, 0x0, 0xe0, 0x3, 0x0, 0x0, 0xe6, 0x6e,
- 0x66, 0xe6, 0x6f, 0x20, 0x0, 0xe0, 0xe, 0x0,
- 0xe0, 0xe, 0x0, 0x0, 0xe6, 0x6e, 0x66, 0xe6,
- 0x6e, 0x0, 0x0, 0x60, 0xe, 0x0, 0xe0, 0x5,
- 0x10, 0x26, 0x66, 0x6e, 0x66, 0xe6, 0x68, 0xf5,
- 0x2, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0,
- 0x4, 0x90, 0x4c, 0x10, 0x3, 0x10, 0x1, 0x64,
- 0xa0, 0x9, 0x60, 0x20, 0xb1, 0x9, 0x54, 0xa0,
- 0x0, 0x0, 0x70, 0x6a, 0x7e, 0x13, 0xa0, 0x0,
- 0x0, 0xc2, 0x6, 0x1, 0x1, 0xed, 0xdd, 0xdd,
- 0xd3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+60B2 "悲" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc1, 0xb, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0xc1, 0x0, 0x61, 0x1, 0x66,
- 0x66, 0xd0, 0xc, 0x66, 0x66, 0x30, 0x0, 0x0,
- 0xd, 0x0, 0xc1, 0x2, 0x30, 0x0, 0x36, 0x66,
- 0xd0, 0xc, 0x66, 0x66, 0x0, 0x0, 0x0, 0xd,
- 0x0, 0xc1, 0x0, 0x10, 0x3, 0x66, 0x66, 0xd0,
- 0xc, 0x66, 0x6a, 0x80, 0x0, 0x0, 0xd, 0x0,
- 0xd1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x64, 0x15,
- 0x0, 0x0, 0x0, 0x0, 0x11, 0xb0, 0x1d, 0x20,
- 0x5, 0x30, 0x0, 0x43, 0xd, 0x0, 0x86, 0x1,
- 0xc, 0x50, 0xd, 0x20, 0xd0, 0x0, 0x0, 0x60,
- 0x39, 0x6, 0xa0, 0xe, 0x0, 0x0, 0xa, 0x40,
- 0x0, 0x0, 0x0, 0xdc, 0xcc, 0xcc, 0xd4, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+60C5 "情" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1c, 0x20, 0x0, 0xc, 0x30, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0xd, 0x10, 0x15, 0x0,
- 0x0, 0xe, 0x0, 0x76, 0x6d, 0x66, 0x67, 0x10,
- 0x2, 0xe, 0xb4, 0x0, 0xc, 0x10, 0x60, 0x0,
- 0x7, 0x2d, 0x37, 0x17, 0x6d, 0x66, 0x63, 0x0,
- 0xd, 0x2d, 0x0, 0x0, 0xc, 0x10, 0x5, 0x40,
- 0x17, 0xd, 0x6, 0x66, 0x66, 0x66, 0x66, 0x50,
- 0x0, 0xd, 0x0, 0x29, 0x66, 0x66, 0xd2, 0x0,
- 0x0, 0xd, 0x0, 0x2b, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0x1d, 0x66, 0x66, 0xe0, 0x0,
- 0x0, 0xd, 0x0, 0x1b, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0x1d, 0x66, 0x66, 0xe0, 0x0,
- 0x0, 0xd, 0x0, 0x1b, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0xe, 0x0, 0x2b, 0x0, 0x5a, 0xe0, 0x0,
- 0x0, 0x5, 0x0, 0x14, 0x0, 0x4, 0x30, 0x0,
-
- /* U+60F3 "想" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc2, 0x0, 0x0, 0x0, 0x1, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0xc6, 0x66, 0x6e, 0x10,
- 0x0, 0x0, 0xd0, 0x70, 0xd0, 0x0, 0xd, 0x0,
- 0x4, 0x66, 0xf6, 0x62, 0xd6, 0x66, 0x6d, 0x0,
- 0x0, 0x6, 0xf6, 0x0, 0xd0, 0x0, 0xd, 0x0,
- 0x0, 0xc, 0xe5, 0xd0, 0xd6, 0x66, 0x6d, 0x0,
- 0x0, 0x74, 0xd0, 0x90, 0xd0, 0x0, 0xd, 0x0,
- 0x3, 0x60, 0xd0, 0x0, 0xd6, 0x66, 0x6d, 0x0,
- 0x4, 0x0, 0xd0, 0x0, 0xc0, 0x0, 0xa, 0x0,
- 0x0, 0x0, 0x22, 0x9, 0x50, 0x0, 0x0, 0x0,
- 0x0, 0x3, 0xe, 0x20, 0xe4, 0x1, 0x33, 0x0,
- 0x0, 0x46, 0xd, 0x0, 0x41, 0x5, 0xb, 0x60,
- 0x1, 0xd4, 0xd, 0x0, 0x0, 0xb, 0x3, 0xa0,
- 0x1, 0x50, 0xa, 0xcb, 0xbb, 0xbc, 0x10, 0x0,
-
- /* U+6108 "愈" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xaa, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x8b, 0x63, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x98, 0x0, 0x86, 0x0, 0x0, 0x0, 0x4,
- 0x98, 0x66, 0x6b, 0xad, 0x83, 0x10, 0x46, 0x70,
- 0x0, 0x40, 0x0, 0x4a, 0xe4, 0x0, 0xc, 0x66,
- 0x6b, 0x7, 0xc, 0x20, 0x0, 0x0, 0xc5, 0x56,
- 0x90, 0xb0, 0xc0, 0x0, 0x0, 0xc, 0x66, 0x69,
- 0xb, 0xc, 0x0, 0x0, 0x0, 0xc0, 0x2, 0x90,
- 0x70, 0xc0, 0x0, 0x0, 0xc, 0x2, 0xb6, 0x0,
- 0x8d, 0x0, 0x0, 0x0, 0x0, 0x91, 0x6a, 0x0,
- 0x10, 0x0, 0x0, 0x14, 0xe, 0x0, 0xa2, 0x3,
- 0x48, 0x0, 0xb, 0x40, 0xe0, 0x0, 0x2, 0x80,
- 0x97, 0x2, 0x70, 0xc, 0xbb, 0xbb, 0xd9, 0x1,
- 0x20,
-
- /* U+610F "意" */
- 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc2, 0x0, 0x0, 0x0, 0x0,
- 0x16, 0x66, 0x6c, 0x76, 0x6e, 0x40, 0x0, 0x0,
- 0x0, 0x82, 0x0, 0xa4, 0x0, 0x0, 0x0, 0x0,
- 0x3, 0x80, 0x28, 0x0, 0x7, 0x0, 0x76, 0x66,
- 0x66, 0x67, 0x66, 0x67, 0x93, 0x0, 0x7, 0x66,
- 0x66, 0x66, 0x6a, 0x0, 0x0, 0x0, 0xb2, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0xa, 0x76, 0x66,
- 0x66, 0x6d, 0x0, 0x0, 0x0, 0xa2, 0x0, 0x0,
- 0x0, 0xd0, 0x0, 0x0, 0xb, 0x76, 0x76, 0x66,
- 0x6c, 0x0, 0x0, 0x1, 0x15, 0x32, 0xb3, 0x0,
- 0x3, 0x0, 0x0, 0x80, 0x85, 0x4, 0x90, 0x30,
- 0x6a, 0x0, 0x3c, 0x8, 0x40, 0x0, 0x7, 0x0,
- 0xb6, 0x9, 0x40, 0x4d, 0xbb, 0xbb, 0xd4, 0x1,
- 0x10,
-
- /* U+611A "愚" */
- 0x0, 0x86, 0x66, 0x66, 0x66, 0xb4, 0x0, 0x0,
- 0xc0, 0x0, 0xd0, 0x0, 0xd2, 0x0, 0x0, 0xb6,
- 0x66, 0xe6, 0x66, 0xe2, 0x0, 0x0, 0xc0, 0x0,
- 0xd0, 0x0, 0xd2, 0x0, 0x0, 0xc6, 0x66, 0xe6,
- 0x66, 0xe3, 0x0, 0x3, 0x30, 0x0, 0xd0, 0x0,
- 0x20, 0x50, 0xd, 0x66, 0x66, 0xe6, 0x76, 0x67,
- 0xc0, 0xc, 0x10, 0x0, 0xd0, 0x3b, 0x22, 0xa0,
- 0xc, 0x1b, 0xc9, 0x86, 0x46, 0x92, 0xa0, 0xd,
- 0x12, 0x5, 0x20, 0x0, 0x69, 0x90, 0x6, 0x6,
- 0x21, 0xd4, 0x0, 0x9, 0x20, 0x6, 0xa, 0x40,
- 0x44, 0x3, 0x8, 0x50, 0x2d, 0xa, 0x30, 0x0,
- 0x6, 0x30, 0xd4, 0x65, 0x6, 0xdb, 0xbb, 0xbd,
- 0x90, 0x41,
-
- /* U+611B "愛" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x1, 0x47, 0xbc, 0x0, 0x1, 0x45,
- 0x67, 0x97, 0x76, 0xb4, 0x10, 0x0, 0x9, 0x40,
- 0x96, 0x6, 0x90, 0x0, 0x6, 0x68, 0xa6, 0x7b,
- 0x6a, 0x66, 0xa3, 0x2d, 0x0, 0x30, 0x73, 0x0,
- 0x1, 0xa3, 0x76, 0x70, 0xe0, 0x1e, 0x30, 0x46,
- 0x40, 0x2, 0xc0, 0xd0, 0x3, 0x0, 0x90, 0xc7,
- 0x6, 0x50, 0x9c, 0xcc, 0xcd, 0xa0, 0x26, 0x0,
- 0x0, 0xc2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7,
- 0xd6, 0x66, 0x6a, 0x10, 0x0, 0x0, 0x48, 0x35,
- 0x0, 0x8c, 0x30, 0x0, 0x3, 0x50, 0x6, 0x89,
- 0x90, 0x0, 0x0, 0x0, 0x0, 0x5, 0xde, 0x61,
- 0x0, 0x0, 0x0, 0x36, 0x85, 0x1, 0x8e, 0xdb,
- 0x91, 0x14, 0x10, 0x0, 0x0, 0x0, 0x25, 0x20,
-
- /* U+611F "感" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x8, 0x66, 0x40, 0x0,
- 0x0, 0x11, 0x0, 0x0, 0x7, 0x50, 0xa1, 0x50,
- 0x0, 0x3c, 0x66, 0x66, 0x69, 0xa6, 0x67, 0x71,
- 0x0, 0x3a, 0x0, 0x0, 0x53, 0x90, 0x6, 0x0,
- 0x0, 0x3a, 0x56, 0x66, 0x63, 0xb0, 0x6c, 0x10,
- 0x0, 0x48, 0x27, 0x66, 0x91, 0xe2, 0xd1, 0x0,
- 0x0, 0x66, 0x3a, 0x0, 0xd0, 0x9e, 0x40, 0x0,
- 0x0, 0x92, 0x2a, 0x0, 0xd0, 0x9e, 0x20, 0x50,
- 0x0, 0x90, 0x3c, 0x66, 0xb7, 0x54, 0xd4, 0x80,
- 0x6, 0x10, 0x0, 0x2, 0x42, 0x0, 0x3d, 0xf1,
- 0x2, 0x2, 0x39, 0x5, 0xb1, 0x0, 0x81, 0x32,
- 0x0, 0x54, 0x3a, 0x0, 0x93, 0x4, 0x3d, 0x0,
- 0x3, 0xe1, 0x2a, 0x0, 0x0, 0x18, 0xa, 0x10,
- 0x2, 0x40, 0x1d, 0xbb, 0xbb, 0xda, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+614B "態" */
- 0x0, 0x3a, 0x0, 0x1, 0x50, 0x0, 0x0, 0x0,
- 0x1b, 0x31, 0x20, 0x2b, 0x0, 0x83, 0x0, 0x58,
- 0x21, 0x1a, 0x52, 0xb5, 0x75, 0x40, 0x7, 0xa7,
- 0x53, 0x39, 0x2a, 0x0, 0x6, 0x30, 0xb, 0x55,
- 0x5d, 0x21, 0xba, 0xaa, 0xa3, 0x0, 0xd6, 0x66,
- 0xd0, 0x3c, 0x0, 0x52, 0x0, 0xd, 0x0, 0xd,
- 0x2, 0xa2, 0x9b, 0x50, 0x0, 0xd6, 0x66, 0xd0,
- 0x2b, 0x30, 0x4, 0x0, 0xd, 0x0, 0xd, 0x2,
- 0xc1, 0x11, 0x93, 0x0, 0xc0, 0x4b, 0xa2, 0x8,
- 0xaa, 0xa8, 0x10, 0x1, 0x8, 0x60, 0x4b, 0x10,
- 0x11, 0x60, 0x0, 0x71, 0xa2, 0x0, 0x76, 0x5,
- 0x8, 0x90, 0x6d, 0xa, 0x30, 0x0, 0x0, 0xa0,
- 0x1d, 0x4, 0x20, 0x6d, 0xcc, 0xcc, 0xdc, 0x10,
- 0x0,
-
- /* U+6163 "慣" */
- 0x0, 0xa, 0x10, 0x8, 0x66, 0x66, 0x6a, 0x0,
- 0x0, 0xd, 0x0, 0xe, 0x0, 0xd0, 0x1d, 0x0,
- 0x0, 0xd, 0x15, 0x6e, 0x67, 0xd6, 0x7d, 0xc2,
- 0x0, 0x4d, 0x81, 0x2b, 0x5, 0x80, 0x59, 0x0,
- 0x4, 0x5d, 0x75, 0x6b, 0x6a, 0xa6, 0xa7, 0x0,
- 0xb, 0x4d, 0x31, 0x12, 0x0, 0x0, 0x42, 0x0,
- 0x6, 0xd, 0x0, 0xa6, 0x66, 0x66, 0x6b, 0x0,
- 0x0, 0xd, 0x0, 0xd0, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0xd, 0x0, 0xd6, 0x66, 0x66, 0x6d, 0x0,
- 0x0, 0xd, 0x0, 0xd6, 0x66, 0x66, 0x6d, 0x0,
- 0x0, 0xd, 0x0, 0xd0, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0xd, 0x0, 0xd6, 0x66, 0x66, 0x6c, 0x0,
- 0x0, 0xd, 0x0, 0x2b, 0x90, 0x4, 0x94, 0x0,
- 0x0, 0xe, 0x2, 0x93, 0x0, 0x0, 0x2e, 0x60,
- 0x0, 0x3, 0x13, 0x0, 0x0, 0x0, 0x2, 0x30,
-
- /* U+6167 "慧" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1c, 0x0, 0x0, 0xa3, 0x0, 0x0, 0x6,
- 0x66, 0xd6, 0xa3, 0x6c, 0x76, 0xc4, 0x0, 0x10,
- 0xc, 0x1, 0x0, 0xb2, 0x2, 0x0, 0x3, 0x76,
- 0xd7, 0x52, 0x7c, 0x76, 0x80, 0x2, 0x66, 0x6d,
- 0x6a, 0x36, 0xc7, 0x67, 0x90, 0x2, 0x0, 0xc0,
- 0x0, 0x1b, 0x20, 0x0, 0x0, 0x6, 0x76, 0x66,
- 0x66, 0x66, 0xc3, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0x1, 0x86, 0x66, 0x66,
- 0x66, 0xe0, 0x0, 0x0, 0x56, 0x66, 0x66, 0x66,
- 0x6e, 0x0, 0x0, 0x1, 0x5, 0x7, 0x20, 0x0,
- 0x50, 0x0, 0x0, 0x60, 0xd2, 0x1d, 0x2, 0x34,
- 0x80, 0x0, 0x94, 0xd, 0x0, 0x20, 0x38, 0x7,
- 0x90, 0x7, 0x0, 0x9c, 0xbb, 0xbd, 0x90, 0x3,
- 0x0,
-
- /* U+616E "慮" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xc1, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xe6, 0x69, 0x80, 0x0,
- 0x0, 0x14, 0x0, 0x0, 0xd0, 0x0, 0x5, 0x0,
- 0x0, 0x1e, 0x66, 0x66, 0xc6, 0x67, 0x6e, 0x60,
- 0x0, 0x1c, 0x13, 0x55, 0xd5, 0x77, 0x44, 0x0,
- 0x0, 0x1c, 0x4, 0x0, 0xd2, 0x22, 0x39, 0x0,
- 0x0, 0x1b, 0x1, 0x0, 0x57, 0x88, 0xb3, 0x0,
- 0x0, 0x2b, 0xe, 0x66, 0x99, 0x66, 0xe1, 0x0,
- 0x0, 0x2a, 0xd, 0x66, 0x99, 0x66, 0xd0, 0x0,
- 0x0, 0x48, 0xd, 0x0, 0x66, 0x0, 0xd0, 0x0,
- 0x0, 0x65, 0xe, 0x66, 0x77, 0x66, 0xc0, 0x0,
- 0x0, 0x90, 0x13, 0x40, 0x5a, 0x20, 0x17, 0x0,
- 0x0, 0x80, 0x90, 0xf1, 0x5, 0x51, 0x5, 0xc0,
- 0x6, 0x1c, 0x80, 0xe0, 0x0, 0x6, 0x10, 0x50,
- 0x5, 0x2, 0x0, 0xcc, 0xcc, 0xcd, 0x50, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+61C9 "應" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x7a, 0x0, 0x0, 0x10, 0x0,
- 0x96, 0x66, 0x66, 0xc6, 0x66, 0x6e, 0x80, 0xb,
- 0x40, 0x24, 0x36, 0x37, 0x0, 0x0, 0x0, 0xb3,
- 0xa, 0xa9, 0x90, 0x81, 0x4, 0x0, 0xb, 0x35,
- 0xd1, 0xe6, 0x6c, 0x66, 0x70, 0x0, 0xb6, 0x7c,
- 0x6d, 0x66, 0xd6, 0x95, 0x0, 0xc, 0x21, 0xc2,
- 0xd0, 0xc, 0x1, 0x0, 0x0, 0xd0, 0x1c, 0xd,
- 0x66, 0xd6, 0x95, 0x0, 0xd, 0x1, 0xc0, 0xd0,
- 0xc, 0x0, 0x71, 0x0, 0xd0, 0x1c, 0xd, 0x66,
- 0x66, 0x66, 0x30, 0x2b, 0x0, 0x30, 0x30, 0x0,
- 0x0, 0x0, 0x5, 0x70, 0x26, 0x32, 0xb4, 0x0,
- 0x28, 0x0, 0x92, 0x27, 0x75, 0x3, 0xd0, 0x40,
- 0x79, 0x8, 0x1d, 0x47, 0x40, 0x0, 0x8, 0x21,
- 0x84, 0x21, 0x50, 0x3d, 0xcc, 0xcc, 0xd5, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+61F8 "懸" */
- 0x0, 0x66, 0x66, 0xa2, 0x0, 0x25, 0x9b, 0x0,
- 0x0, 0x92, 0x0, 0xc0, 0x45, 0x9c, 0x31, 0x0,
- 0x0, 0x97, 0x66, 0xd0, 0x16, 0x71, 0x88, 0x0,
- 0x0, 0x97, 0x55, 0xd0, 0x3b, 0x8d, 0x81, 0x0,
- 0x0, 0x97, 0x66, 0xd0, 0x5, 0x82, 0x8, 0x10,
- 0x0, 0x92, 0x0, 0xc4, 0x6f, 0xcd, 0x78, 0xa0,
- 0x7, 0xa6, 0xc6, 0x88, 0x55, 0xd, 0x0, 0x30,
- 0x0, 0xc4, 0xc3, 0x70, 0x2d, 0x2d, 0x9, 0x30,
- 0x7, 0x44, 0xd0, 0x95, 0x91, 0xc, 0x2, 0xe0,
- 0x0, 0x5, 0x70, 0x2, 0x3, 0xc9, 0x0, 0x40,
- 0x0, 0x10, 0xa4, 0x8, 0x70, 0x0, 0x32, 0x0,
- 0x0, 0x80, 0xa2, 0x0, 0xc5, 0x4, 0xb, 0x50,
- 0x6, 0xb0, 0xa3, 0x0, 0x10, 0xb, 0x3, 0xb0,
- 0x6, 0x20, 0x6d, 0xcc, 0xcc, 0xda, 0x0, 0x0,
-
- /* U+6210 "成" */
- 0x0, 0x0, 0x0, 0x0, 0xa3, 0x24, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xe3, 0xa, 0x80, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xc3, 0x2, 0xb2, 0x0,
- 0x0, 0x87, 0x66, 0x66, 0xd8, 0x66, 0x6d, 0x50,
- 0x0, 0x96, 0x0, 0x0, 0x95, 0x0, 0x0, 0x0,
- 0x0, 0x96, 0x0, 0x0, 0x77, 0x0, 0x63, 0x0,
- 0x0, 0x95, 0x0, 0x41, 0x4a, 0x0, 0xd7, 0x0,
- 0x0, 0x99, 0x66, 0xd6, 0x1d, 0x4, 0xd0, 0x0,
- 0x0, 0xa3, 0x0, 0xc1, 0xd, 0x1b, 0x60, 0x0,
- 0x0, 0xb2, 0x0, 0xc0, 0x8, 0xad, 0x0, 0x0,
- 0x0, 0xc0, 0x0, 0xd0, 0x2, 0xf5, 0x0, 0x40,
- 0x1, 0xa0, 0x78, 0xc0, 0x9, 0xbd, 0x10, 0x70,
- 0x6, 0x40, 0xb, 0x40, 0x94, 0x8, 0xe6, 0xa0,
- 0x8, 0x0, 0x0, 0x17, 0x20, 0x0, 0x5d, 0xc0,
- 0x20, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x30,
-
- /* U+6211 "我" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x3, 0xa0, 0xd4, 0x0, 0x0, 0x0,
- 0x2, 0x57, 0xd9, 0x61, 0xd1, 0x8, 0x60, 0x0,
- 0x1, 0x0, 0xb2, 0x0, 0xd1, 0x0, 0xd7, 0x0,
- 0x0, 0x0, 0xb2, 0x0, 0xc1, 0x0, 0x35, 0x0,
- 0x16, 0x66, 0xd7, 0x66, 0xd7, 0x66, 0x7f, 0x30,
- 0x2, 0x0, 0xb2, 0x0, 0xa3, 0x0, 0x10, 0x0,
- 0x0, 0x0, 0xb2, 0x0, 0x85, 0x2, 0xe1, 0x0,
- 0x0, 0x0, 0xb6, 0x63, 0x66, 0xb, 0x50, 0x0,
- 0x1, 0x5a, 0xe5, 0x0, 0x49, 0x78, 0x0, 0x0,
- 0x3f, 0x92, 0xb2, 0x0, 0xe, 0xb0, 0x0, 0x0,
- 0x1, 0x0, 0xb2, 0x0, 0x5e, 0x70, 0x0, 0x40,
- 0x0, 0x0, 0xb2, 0x8, 0x70, 0xc6, 0x0, 0x70,
- 0x0, 0x43, 0xd5, 0x61, 0x0, 0x1c, 0xa4, 0x90,
- 0x0, 0x1c, 0xc0, 0x0, 0x0, 0x0, 0x6d, 0xd0,
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20,
-
- /* U+6216 "或" */
- 0x0, 0x0, 0x0, 0x0, 0x18, 0x18, 0x50, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x1e, 0x1, 0xe2, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x1d, 0x0, 0x18, 0x20,
- 0x6, 0x66, 0x66, 0x66, 0x6f, 0x66, 0x66, 0x40,
- 0x0, 0x0, 0x0, 0x10, 0xe, 0x0, 0x10, 0x0,
- 0x0, 0xd6, 0x66, 0xe3, 0xd, 0x10, 0x99, 0x0,
- 0x0, 0xd1, 0x0, 0xe0, 0xb, 0x30, 0xe3, 0x0,
- 0x0, 0xc1, 0x0, 0xe0, 0x9, 0x53, 0xc0, 0x0,
- 0x0, 0xd6, 0x66, 0xe0, 0x5, 0x9a, 0x50, 0x0,
- 0x0, 0xc0, 0x0, 0x80, 0x0, 0xec, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x3, 0x42, 0xe9, 0x0, 0x40,
- 0x14, 0x68, 0xa9, 0x62, 0x2c, 0x4d, 0x50, 0x70,
- 0x1e, 0x94, 0x0, 0x5, 0x91, 0x2, 0xe8, 0xa0,
- 0x0, 0x0, 0x2, 0x63, 0x0, 0x0, 0x1a, 0xd0,
- 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x10,
-
- /* U+6226 "戦" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2,
- 0x14, 0x60, 0x8, 0x10, 0x5b, 0x20, 0x0, 0xc,
- 0x2c, 0x41, 0xb0, 0x4, 0xa4, 0x80, 0x0, 0x63,
- 0x30, 0x52, 0x0, 0x4a, 0xd, 0x20, 0x1d, 0x66,
- 0xa6, 0xe3, 0x4, 0xa0, 0x12, 0x0, 0xc0, 0x1b,
- 0xd, 0x2, 0x6c, 0x55, 0x82, 0xd, 0x66, 0xc6,
- 0xe3, 0x44, 0xa0, 0x33, 0x0, 0xc0, 0x1b, 0xd,
- 0x0, 0x1b, 0xa, 0x90, 0x1c, 0x1, 0xb0, 0xd0,
- 0x0, 0xd2, 0xd0, 0x1, 0xd6, 0x6c, 0x6d, 0x0,
- 0xd, 0xa4, 0x0, 0x1, 0x1, 0xb0, 0x0, 0x0,
- 0xba, 0x0, 0x5, 0x66, 0x6c, 0x67, 0xc1, 0x1d,
- 0xb0, 0x4, 0x0, 0x1, 0xb0, 0x0, 0xc, 0x3c,
- 0x53, 0x60, 0x0, 0x1b, 0x0, 0x1a, 0x30, 0x2e,
- 0xb4, 0x0, 0x1, 0xb0, 0x38, 0x0, 0x0, 0x4f,
- 0x60, 0x0, 0x2, 0x1, 0x0, 0x0, 0x0, 0x24,
-
- /* U+6230 "戰" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x7, 0x69, 0x18, 0x69, 0x20, 0xc5, 0x20, 0x0,
- 0xb, 0xc, 0xc, 0xb, 0x0, 0xc2, 0x68, 0x0,
- 0xb, 0xc, 0xc, 0xb, 0x0, 0xc2, 0xc, 0x0,
- 0xc, 0x6d, 0xd, 0x6c, 0x0, 0xc2, 0x1, 0x0,
- 0x5, 0x1, 0x2, 0x5, 0x0, 0xc6, 0x6a, 0x60,
- 0x8, 0x86, 0xd6, 0x6d, 0x46, 0xc3, 0x3, 0x0,
- 0x7, 0x40, 0xc0, 0x1b, 0x0, 0xa3, 0x2e, 0x30,
- 0x7, 0x86, 0xd6, 0x6b, 0x0, 0x85, 0x96, 0x0,
- 0x7, 0x40, 0xc0, 0x1b, 0x0, 0x69, 0xd0, 0x0,
- 0x8, 0x86, 0xd6, 0x66, 0x0, 0x3f, 0x40, 0x0,
- 0x0, 0x0, 0xc0, 0x5, 0x10, 0x6f, 0x20, 0x30,
- 0x8, 0x66, 0xd6, 0x66, 0x33, 0xa5, 0xc0, 0x80,
- 0x0, 0x0, 0xc0, 0x0, 0x38, 0x0, 0xaa, 0xc0,
- 0x0, 0x0, 0xd0, 0x4, 0x40, 0x0, 0xb, 0xd0,
- 0x0, 0x0, 0x30, 0x10, 0x0, 0x0, 0x0, 0x70,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+623B "戻" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa2, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x5, 0xa0, 0x0, 0x0, 0x0, 0x0,
- 0x78, 0x66, 0x68, 0x66, 0x6d, 0x30, 0x0, 0x7,
- 0x70, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0, 0x87,
- 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x8, 0xa6,
- 0x66, 0x66, 0x66, 0xe0, 0x0, 0x0, 0xa5, 0x0,
- 0x7, 0x20, 0x7, 0x0, 0x0, 0xb, 0x30, 0x0,
- 0xe3, 0x0, 0x0, 0x0, 0x0, 0xe3, 0x66, 0x6e,
- 0x66, 0x6b, 0x90, 0x0, 0x2a, 0x1, 0x7, 0x76,
- 0x0, 0x0, 0x0, 0x8, 0x40, 0x1, 0xd0, 0x27,
- 0x0, 0x0, 0x0, 0xb0, 0x0, 0xb3, 0x0, 0x78,
- 0x0, 0x0, 0x63, 0x0, 0x93, 0x0, 0x0, 0x9d,
- 0x61, 0x6, 0x4, 0x71, 0x0, 0x0, 0x0, 0x6e,
- 0x51, 0x1, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+623F "房" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x77, 0x0, 0x0, 0x0, 0x0,
- 0x4, 0x0, 0x0, 0xa0, 0x0, 0x32, 0x0, 0x0,
- 0xd6, 0x66, 0x66, 0x66, 0x6b, 0x80, 0x0, 0xd,
- 0x10, 0x0, 0x0, 0x0, 0x95, 0x0, 0x0, 0xd6,
- 0x66, 0x66, 0x66, 0x6b, 0x50, 0x0, 0xd, 0x0,
- 0x0, 0x84, 0x0, 0x20, 0x0, 0x0, 0xd0, 0x0,
- 0x2, 0xc0, 0x0, 0x20, 0x0, 0xd, 0x26, 0x68,
- 0x86, 0x66, 0x6a, 0x50, 0x2, 0xa0, 0x0, 0x87,
- 0x0, 0x0, 0x0, 0x0, 0x57, 0x0, 0xb, 0x96,
- 0x66, 0xb7, 0x0, 0x9, 0x10, 0x1, 0xe0, 0x0,
- 0xb, 0x30, 0x0, 0x90, 0x0, 0x97, 0x0, 0x0,
- 0xd1, 0x0, 0x62, 0x0, 0x6a, 0x0, 0x0, 0xe,
- 0x0, 0x15, 0x0, 0x77, 0x0, 0x1, 0x7c, 0xa0,
- 0x0, 0x0, 0x41, 0x0, 0x0, 0x0, 0x50, 0x0,
-
- /* U+6240 "所" */
- 0x0, 0x0, 0x2, 0xa2, 0x0, 0x0, 0x4b, 0x40,
- 0x0, 0x86, 0x78, 0x52, 0x85, 0x68, 0x75, 0x30,
- 0x0, 0xc2, 0x0, 0x0, 0xc3, 0x0, 0x0, 0x0,
- 0x0, 0xc2, 0x0, 0x0, 0xc3, 0x0, 0x0, 0x0,
- 0x0, 0xc7, 0x66, 0xb1, 0xb3, 0x0, 0x0, 0x20,
- 0x0, 0xc2, 0x0, 0xe0, 0xb8, 0x66, 0xa7, 0xa1,
- 0x0, 0xc1, 0x0, 0xe0, 0xc3, 0x0, 0xd0, 0x0,
- 0x0, 0xc1, 0x0, 0xe0, 0xd1, 0x0, 0xd0, 0x0,
- 0x0, 0xd6, 0x66, 0xe0, 0xe0, 0x0, 0xd0, 0x0,
- 0x0, 0xe0, 0x0, 0x23, 0xa0, 0x0, 0xd0, 0x0,
- 0x0, 0xc0, 0x0, 0x9, 0x40, 0x0, 0xd0, 0x0,
- 0x4, 0x70, 0x0, 0x1b, 0x0, 0x0, 0xd0, 0x0,
- 0x8, 0x10, 0x0, 0x82, 0x0, 0x0, 0xd0, 0x0,
- 0x16, 0x0, 0x4, 0x40, 0x0, 0x0, 0xe0, 0x0,
- 0x20, 0x0, 0x3, 0x0, 0x0, 0x0, 0x20, 0x0,
-
- /* U+624B "手" */
- 0x0, 0x0, 0x0, 0x0, 0x1, 0x5a, 0x80, 0x0,
- 0x0, 0x35, 0x67, 0x8b, 0xba, 0x87, 0x60, 0x0,
- 0x0, 0x10, 0x0, 0xd, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x10, 0x0, 0x10, 0x0,
- 0x0, 0x56, 0x66, 0x6e, 0x66, 0x6a, 0xe2, 0x0,
- 0x0, 0x11, 0x0, 0xd, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x10, 0x0, 0x9, 0x30,
- 0x27, 0x66, 0x66, 0x6e, 0x66, 0x66, 0x68, 0x60,
- 0x0, 0x0, 0x0, 0xd, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x11, 0x1e, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x18, 0xfd, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x41, 0x0, 0x0, 0x0, 0x0,
-
- /* U+624D "才" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xd, 0x40, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xf, 0x0, 0x6, 0x60,
- 0x5, 0x76, 0x66, 0x66, 0xef, 0x66, 0x66, 0x60,
- 0x0, 0x0, 0x0, 0x7, 0xbf, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1e, 0x1f, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb5, 0xf, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x8, 0x70, 0xf, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x59, 0x0, 0xf, 0x0, 0x0, 0x0,
- 0x0, 0x5, 0x70, 0x0, 0xf, 0x0, 0x0, 0x0,
- 0x0, 0x65, 0x0, 0x0, 0xf, 0x0, 0x0, 0x0,
- 0x6, 0x10, 0x0, 0x10, 0xf, 0x0, 0x0, 0x0,
- 0x10, 0x0, 0x0, 0x4b, 0xfb, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x81, 0x0, 0x0, 0x0,
-
- /* U+6253 "打" */
- 0x0, 0x0, 0xa1, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x50,
- 0x0, 0x0, 0xe0, 0x4, 0x66, 0x6c, 0x67, 0x81,
- 0x5, 0x66, 0xe6, 0xc3, 0x0, 0x1d, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0x1d, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0x1d, 0x0, 0x0,
- 0x0, 0x0, 0xe6, 0x61, 0x0, 0x1d, 0x0, 0x0,
- 0x1, 0x5a, 0xe2, 0x0, 0x0, 0x1d, 0x0, 0x0,
- 0xb, 0x91, 0xe0, 0x0, 0x0, 0x1d, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0x1d, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0x1d, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0x1d, 0x0, 0x0,
- 0x1, 0x21, 0xe0, 0x0, 0x11, 0x2d, 0x0, 0x0,
- 0x0, 0x7f, 0xb0, 0x0, 0x17, 0xfa, 0x0, 0x0,
- 0x0, 0x4, 0x10, 0x0, 0x0, 0x40, 0x0, 0x0,
-
- /* U+6255 "払" */
- 0x0, 0x0, 0x81, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x4, 0xe2, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x7, 0xa0, 0x0, 0x0,
- 0x5, 0x66, 0xe6, 0xc2, 0xb, 0x50, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0xe, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x3a, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xe5, 0x61, 0x85, 0x0, 0x0, 0x0,
- 0x0, 0x5a, 0xe2, 0x0, 0xc0, 0x0, 0x0, 0x0,
- 0xc, 0xa2, 0xe0, 0x1, 0xa0, 0x0, 0x70, 0x0,
- 0x1, 0x0, 0xe0, 0x6, 0x40, 0x0, 0x55, 0x0,
- 0x0, 0x0, 0xe0, 0xa, 0x0, 0x0, 0xd, 0x10,
- 0x0, 0x0, 0xe0, 0x29, 0x0, 0x0, 0x9, 0x80,
- 0x1, 0x11, 0xd0, 0xcb, 0x9a, 0x98, 0x69, 0xd0,
- 0x0, 0x7f, 0xa0, 0x68, 0x41, 0x0, 0x4, 0xd0,
- 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10,
-
- /* U+627E "找" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc1, 0x0, 0x1b, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x1e, 0x8, 0x80, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x1d, 0x0, 0xb7, 0x0,
- 0x5, 0x66, 0xe6, 0xc1, 0x1d, 0x0, 0x15, 0x0,
- 0x1, 0x10, 0xe0, 0x13, 0x5e, 0x66, 0x7b, 0x50,
- 0x0, 0x0, 0xe0, 0x24, 0x3d, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xe1, 0x61, 0xe, 0x0, 0x26, 0x0,
- 0x0, 0x5, 0xf8, 0x0, 0xd, 0x0, 0xca, 0x0,
- 0x8, 0xe9, 0xe0, 0x0, 0xd, 0x18, 0xb0, 0x0,
- 0x9, 0x20, 0xe0, 0x0, 0xa, 0xac, 0x10, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x8, 0xd1, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x6a, 0xd2, 0x0, 0x60,
- 0x0, 0x0, 0xe0, 0x18, 0x40, 0x3d, 0x20, 0x90,
- 0x2, 0x66, 0xd0, 0x40, 0x0, 0x4, 0xea, 0xb0,
- 0x0, 0x2d, 0x60, 0x0, 0x0, 0x0, 0x2a, 0xd0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+6280 "技" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x3, 0xb0, 0x0, 0x0, 0xc3, 0x0, 0x0,
- 0x0, 0x3, 0xb0, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x2, 0xb0, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x6, 0x67, 0xd7, 0xa4, 0x66, 0xe6, 0x6a, 0x90,
- 0x0, 0x2, 0xb0, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x2, 0xb0, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x2, 0xc6, 0x55, 0x66, 0xd6, 0x7b, 0x0,
- 0x1, 0x6b, 0xd1, 0x0, 0x60, 0x0, 0x96, 0x0,
- 0xb, 0x93, 0xb0, 0x0, 0x52, 0x0, 0xe0, 0x0,
- 0x0, 0x2, 0xb0, 0x0, 0x8, 0x8, 0x70, 0x0,
- 0x0, 0x2, 0xb0, 0x0, 0x7, 0x7d, 0x0, 0x0,
- 0x0, 0x2, 0xb0, 0x0, 0x4, 0xf5, 0x0, 0x0,
- 0x1, 0x3, 0xb0, 0x0, 0x89, 0x2c, 0x81, 0x0,
- 0x1, 0x8f, 0x90, 0x68, 0x30, 0x0, 0x8f, 0xb2,
- 0x0, 0x4, 0x4, 0x0, 0x0, 0x0, 0x1, 0x20,
-
- /* U+628A "把" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x4, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x3, 0xa0, 0x9, 0x66, 0x66, 0x6b, 0x30,
- 0x0, 0x3, 0xa0, 0xd, 0x0, 0xd0, 0xe, 0x0,
- 0x6, 0x68, 0xc9, 0x8d, 0x0, 0xd0, 0xe, 0x0,
- 0x0, 0x3, 0xa0, 0xd, 0x0, 0xd0, 0xe, 0x0,
- 0x0, 0x3, 0xa0, 0xd, 0x0, 0xd0, 0xe, 0x0,
- 0x0, 0x3, 0xc7, 0x4d, 0x66, 0xa6, 0x6e, 0x0,
- 0x3, 0x8c, 0xc0, 0xd, 0x0, 0x0, 0x4, 0x0,
- 0xb, 0x73, 0xa0, 0xd, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x3, 0xa0, 0xd, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x3, 0xa0, 0xd, 0x0, 0x0, 0x0, 0x40,
- 0x0, 0x3, 0xa0, 0xd, 0x0, 0x0, 0x0, 0x70,
- 0x1, 0x4, 0xa0, 0xd, 0x10, 0x0, 0x0, 0xc0,
- 0x2, 0x9f, 0x80, 0x8, 0xdc, 0xcc, 0xcc, 0xd1,
- 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+6295 "投" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa4, 0x0, 0x11, 0x0, 0x40, 0x0, 0x0,
- 0xb, 0x20, 0x3, 0xc6, 0x6e, 0x20, 0x0, 0x0,
- 0xb2, 0x0, 0x3a, 0x0, 0xe0, 0x0, 0x16, 0x6d,
- 0x7d, 0x45, 0x80, 0xe, 0x0, 0x0, 0x0, 0xb2,
- 0x0, 0xa2, 0x0, 0xd0, 0x0, 0x0, 0xb, 0x20,
- 0x39, 0x0, 0x7, 0xaa, 0x80, 0x0, 0xb8, 0x78,
- 0x66, 0x66, 0x89, 0x0, 0x5, 0xbe, 0x30, 0x1,
- 0x40, 0x8, 0x80, 0x1, 0xb2, 0xb2, 0x0, 0x7,
- 0x0, 0xd1, 0x0, 0x0, 0xb, 0x20, 0x0, 0x44,
- 0x68, 0x0, 0x0, 0x0, 0xb2, 0x0, 0x0, 0xbc,
- 0x0, 0x0, 0x0, 0xb, 0x20, 0x0, 0x2c, 0xc1,
- 0x0, 0x0, 0x42, 0xd2, 0x0, 0x69, 0x13, 0xd8,
- 0x20, 0x0, 0x9c, 0x4, 0x73, 0x0, 0x1, 0x9e,
- 0x50, 0x0, 0x2, 0x10, 0x0, 0x0, 0x0, 0x0,
-
- /* U+62BC "押" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x30, 0x0,
- 0xd, 0x0, 0x2c, 0x66, 0xb6, 0x6f, 0x20, 0x0,
- 0xd0, 0x2, 0xc0, 0xd, 0x0, 0xe0, 0x16, 0x5e,
- 0x7c, 0x4c, 0x0, 0xd0, 0xe, 0x0, 0x0, 0xd0,
- 0x2, 0xd6, 0x6e, 0x66, 0xe0, 0x0, 0xd, 0x0,
- 0x2c, 0x0, 0xd0, 0xe, 0x0, 0x0, 0xd6, 0x52,
- 0xc0, 0xd, 0x0, 0xe0, 0x1, 0x8f, 0x20, 0x2c,
- 0x0, 0xd0, 0xe, 0x4, 0xe5, 0xd0, 0x2, 0xd6,
- 0x6e, 0x66, 0xe0, 0x2, 0xd, 0x0, 0x14, 0x0,
- 0xd0, 0x1, 0x0, 0x0, 0xd0, 0x0, 0x0, 0xd,
- 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0xd0,
- 0x0, 0x0, 0x21, 0xe0, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0x4, 0xdc, 0x0, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0,
-
- /* U+62C5 "担" */
- 0x0, 0x2, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2, 0xc0, 0x0, 0x40, 0x0, 0x5, 0x0,
- 0x0, 0x2, 0xb0, 0x0, 0xe6, 0x66, 0x6e, 0x10,
- 0x4, 0x67, 0xd7, 0xb1, 0xd0, 0x0, 0x1d, 0x0,
- 0x0, 0x2, 0xb0, 0x0, 0xd0, 0x0, 0x1d, 0x0,
- 0x0, 0x2, 0xb0, 0x10, 0xe6, 0x66, 0x6d, 0x0,
- 0x0, 0x2, 0xc7, 0x40, 0xd0, 0x0, 0x1d, 0x0,
- 0x0, 0x4b, 0xc0, 0x0, 0xd0, 0x0, 0x1d, 0x0,
- 0xb, 0xc4, 0xb0, 0x0, 0xd0, 0x0, 0x1d, 0x0,
- 0x2, 0x2, 0xb0, 0x0, 0xe6, 0x66, 0x6e, 0x0,
- 0x0, 0x2, 0xb0, 0x0, 0xd0, 0x0, 0x1c, 0x0,
- 0x0, 0x2, 0xb0, 0x0, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x3, 0xb0, 0x0, 0x0, 0x0, 0x3, 0x90,
- 0x1, 0x8e, 0x80, 0x76, 0x66, 0x66, 0x66, 0x61,
- 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+62C9 "拉" */
- 0x0, 0x1, 0xa1, 0x0, 0x3, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x7, 0x80, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0xf2, 0x0, 0x0,
- 0x4, 0x55, 0xe6, 0xa0, 0x0, 0x50, 0x3, 0x0,
- 0x1, 0x11, 0xd1, 0x15, 0x76, 0x66, 0x69, 0x50,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0x0, 0x40, 0x0,
- 0x0, 0x0, 0xd4, 0x60, 0x50, 0x0, 0xc7, 0x0,
- 0x0, 0x6, 0xe3, 0x0, 0x90, 0x0, 0xe1, 0x0,
- 0x8, 0xd7, 0xd0, 0x0, 0x77, 0x2, 0xb0, 0x0,
- 0x5, 0x20, 0xd0, 0x0, 0x4d, 0x5, 0x60, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x2e, 0x9, 0x10, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x4, 0x9, 0x0, 0x0,
- 0x0, 0x12, 0xd0, 0x0, 0x0, 0x16, 0x0, 0x60,
- 0x0, 0x7f, 0xa0, 0x76, 0x66, 0x66, 0x67, 0x92,
- 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+62DB "招" */
- 0x0, 0x8, 0x30, 0x0, 0x0, 0x0, 0x1, 0x0,
- 0x0, 0xa2, 0x5, 0x67, 0x86, 0x66, 0xd5, 0x0,
- 0xa, 0x20, 0x0, 0x69, 0x0, 0xd, 0x1, 0x66,
- 0xc7, 0xb4, 0x9, 0x50, 0x0, 0xe0, 0x0, 0xa,
- 0x20, 0x0, 0xd0, 0x0, 0x1d, 0x0, 0x0, 0xa2,
- 0x0, 0x58, 0x3, 0x25, 0xa0, 0x0, 0xa, 0x56,
- 0x2a, 0x0, 0xa, 0xf4, 0x0, 0x5, 0xd7, 0x17,
- 0x20, 0x0, 0x1, 0x20, 0x3e, 0x8b, 0x21, 0xd,
- 0x66, 0x66, 0x7d, 0x0, 0x20, 0xa2, 0x0, 0xd0,
- 0x0, 0x2, 0xb0, 0x0, 0xa, 0x20, 0xd, 0x0,
- 0x0, 0x2b, 0x0, 0x0, 0xa2, 0x0, 0xd0, 0x0,
- 0x2, 0xb0, 0x0, 0xb, 0x20, 0xd, 0x66, 0x66,
- 0x7b, 0x0, 0x4c, 0xf0, 0x0, 0xc0, 0x0, 0x2,
- 0x90, 0x0, 0x12, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+62E1 "拡" */
- 0x0, 0xb, 0x20, 0x0, 0x7, 0x50, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0x0, 0x0, 0xe4, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0x24, 0x22, 0x63, 0x25, 0x70,
- 0x0, 0xe, 0x6, 0x3c, 0x44, 0x44, 0x44, 0x30,
- 0x16, 0x6e, 0x66, 0x4b, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0x3b, 0x0, 0x7b, 0x0, 0x0,
- 0x0, 0xe, 0x5, 0x3b, 0x0, 0xb5, 0x0, 0x0,
- 0x0, 0x1e, 0x80, 0x3a, 0x0, 0xd0, 0x0, 0x0,
- 0x18, 0xdf, 0x0, 0x49, 0x5, 0x70, 0x0, 0x0,
- 0x3b, 0x1e, 0x0, 0x58, 0xa, 0x0, 0x20, 0x0,
- 0x0, 0xe, 0x0, 0x85, 0x18, 0x0, 0x28, 0x0,
- 0x0, 0xe, 0x0, 0xc0, 0x81, 0x0, 0xa, 0x50,
- 0x0, 0xe, 0x4, 0x72, 0xeb, 0xa8, 0x68, 0xd0,
- 0x6, 0xdd, 0x8, 0x0, 0x51, 0x0, 0x1, 0x70,
- 0x0, 0x31, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+62EC "括" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x3, 0xb0, 0x0, 0x0, 0x0, 0x15, 0x0,
- 0x0, 0x2, 0xb0, 0x0, 0x25, 0x8a, 0xca, 0x20,
- 0x0, 0x2, 0xb0, 0x24, 0x42, 0xe0, 0x0, 0x0,
- 0x6, 0x67, 0xd7, 0x90, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x2, 0xb0, 0x0, 0x0, 0xe0, 0x0, 0x40,
- 0x0, 0x2, 0xb0, 0x67, 0x66, 0xe6, 0x67, 0x92,
- 0x0, 0x2, 0xb4, 0x50, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x49, 0xd3, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0xd, 0xb5, 0xb0, 0xb, 0x66, 0xb6, 0x6d, 0x30,
- 0x1, 0x2, 0xb0, 0xd, 0x10, 0x0, 0xe, 0x0,
- 0x0, 0x2, 0xb0, 0xc, 0x10, 0x0, 0xe, 0x0,
- 0x0, 0x2, 0xb0, 0xc, 0x10, 0x0, 0xe, 0x0,
- 0x1, 0x35, 0xb0, 0xd, 0x66, 0x66, 0x6e, 0x0,
- 0x0, 0x5f, 0x70, 0xd, 0x10, 0x0, 0xb, 0x0,
- 0x0, 0x2, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
-
- /* U+62ED "拭" */
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb, 0x60, 0x0, 0x0, 0xc4, 0x41, 0x0,
- 0x0, 0xb, 0x20, 0x0, 0x0, 0xc3, 0x2e, 0x10,
- 0x0, 0xb, 0x20, 0x0, 0x0, 0xb3, 0x6, 0x10,
- 0x26, 0x6d, 0x7c, 0x35, 0x66, 0xc7, 0x6c, 0x60,
- 0x2, 0xb, 0x20, 0x1, 0x0, 0xa3, 0x0, 0x0,
- 0x0, 0xb, 0x20, 0x0, 0x0, 0x94, 0x0, 0x0,
- 0x0, 0xb, 0x36, 0x30, 0x4, 0x85, 0x0, 0x0,
- 0x1, 0x5e, 0x81, 0x46, 0xe6, 0x77, 0x0, 0x0,
- 0x4f, 0x8c, 0x20, 0x0, 0xe0, 0x3a, 0x0, 0x0,
- 0x2, 0xb, 0x20, 0x0, 0xe0, 0xd, 0x0, 0x0,
- 0x0, 0xb, 0x20, 0x0, 0xe0, 0xa, 0x40, 0x20,
- 0x0, 0xb, 0x20, 0x3, 0xe7, 0x53, 0xd0, 0x60,
- 0x0, 0xc, 0x23, 0xe9, 0x20, 0x0, 0x9b, 0x90,
- 0x5, 0xce, 0x0, 0x10, 0x0, 0x0, 0x9, 0xc0,
- 0x0, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0, 0x30,
-
- /* U+62FF "拿" */
- 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2, 0xe3, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x3, 0xc3, 0x62, 0x0, 0x0, 0x0, 0x0,
- 0x8, 0xa1, 0x0, 0x98, 0x20, 0x0, 0x0, 0x58,
- 0x46, 0x66, 0x69, 0x4a, 0xda, 0x62, 0x52, 0x8,
- 0x66, 0x66, 0x6c, 0x21, 0x60, 0x0, 0x0, 0xb2,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0x0, 0xb, 0x76,
- 0x66, 0x6e, 0x0, 0x0, 0x0, 0x0, 0x30, 0x1,
- 0x35, 0x99, 0x0, 0x0, 0x4, 0x45, 0x66, 0xe7,
- 0x55, 0x41, 0x0, 0x0, 0x0, 0x0, 0xd, 0x10,
- 0x1a, 0x10, 0x0, 0x5, 0x76, 0x66, 0xe6, 0x66,
- 0x63, 0x20, 0x28, 0x66, 0x66, 0x6e, 0x66, 0x66,
- 0x9c, 0x20, 0x0, 0x0, 0x0, 0xe1, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x16, 0xce, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x4, 0x20, 0x0, 0x0, 0x0,
-
- /* U+6301 "持" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb3, 0x0, 0x0, 0xa4, 0x0, 0x0, 0x0,
- 0xd, 0x0, 0x0, 0xc, 0x20, 0x0, 0x0, 0x0,
- 0xd0, 0x4, 0x66, 0xd7, 0x6a, 0x70, 0x16, 0x6e,
- 0x6d, 0x20, 0xc, 0x20, 0x0, 0x0, 0x0, 0xd0,
- 0x0, 0x0, 0xc2, 0x0, 0x10, 0x0, 0xd, 0x4,
- 0x76, 0x6a, 0x66, 0x6a, 0x60, 0x0, 0xd2, 0x61,
- 0x0, 0x5, 0x90, 0x0, 0x0, 0x5e, 0x60, 0x0,
- 0x0, 0x59, 0x4, 0x1, 0xe8, 0xd0, 0x37, 0x66,
- 0x69, 0xb6, 0x84, 0x1, 0xd, 0x0, 0x24, 0x0,
- 0x59, 0x0, 0x0, 0x0, 0xd0, 0x0, 0xa7, 0x5,
- 0x90, 0x0, 0x0, 0xd, 0x0, 0x2, 0x90, 0x59,
- 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x5, 0x90,
- 0x0, 0x4, 0xce, 0x0, 0x0, 0x8, 0xe6, 0x0,
- 0x0, 0x2, 0x20, 0x0, 0x0, 0x5, 0x0, 0x0,
-
- /* U+6307 "指" */
- 0x0, 0x27, 0x0, 0x26, 0x0, 0x0, 0x0, 0x0,
- 0x2, 0xc0, 0x3, 0xc0, 0x0, 0x66, 0x0, 0x0,
- 0x2b, 0x0, 0x2b, 0x3, 0xba, 0x50, 0x4, 0x67,
- 0xd7, 0xb4, 0xc5, 0x40, 0x0, 0x40, 0x11, 0x2b,
- 0x0, 0x2b, 0x0, 0x0, 0x8, 0x0, 0x2, 0xb0,
- 0x2, 0xe3, 0x22, 0x25, 0xe1, 0x0, 0x2b, 0x54,
- 0x6, 0x88, 0x88, 0x84, 0x0, 0x3a, 0xc0, 0x1,
- 0x86, 0x66, 0x6a, 0x20, 0xac, 0x4b, 0x0, 0x1d,
- 0x0, 0x0, 0xe0, 0x2, 0x2, 0xb0, 0x0, 0xd0,
- 0x0, 0xe, 0x0, 0x0, 0x2b, 0x0, 0xe, 0x66,
- 0x66, 0xe0, 0x0, 0x2, 0xb0, 0x0, 0xd0, 0x0,
- 0xe, 0x0, 0x11, 0x4b, 0x0, 0x1e, 0x66, 0x66,
- 0xe0, 0x0, 0x6f, 0x70, 0x1, 0xc0, 0x0, 0xe,
- 0x0, 0x0, 0x20, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+6319 "挙" */
- 0x0, 0x2, 0x0, 0x14, 0x0, 0x9, 0x20, 0x0,
- 0x0, 0x3, 0xb0, 0xa, 0x60, 0x1e, 0x30, 0x0,
- 0x0, 0x0, 0xa8, 0x4, 0xc0, 0x83, 0x0, 0x0,
- 0x0, 0x0, 0x23, 0x0, 0x21, 0x60, 0xa, 0x20,
- 0x7, 0x66, 0x8c, 0x66, 0x69, 0x66, 0x67, 0x50,
- 0x0, 0x0, 0xb3, 0x0, 0x2, 0x91, 0x0, 0x0,
- 0x0, 0x8, 0x61, 0x46, 0xbe, 0x8c, 0x60, 0x0,
- 0x0, 0x85, 0x34, 0x3d, 0x10, 0x2, 0xcf, 0x70,
- 0x36, 0x46, 0x66, 0x6d, 0x66, 0x6c, 0x93, 0x0,
- 0x0, 0x1, 0x0, 0xc, 0x0, 0x0, 0x1, 0x0,
- 0x5, 0x66, 0x66, 0x6d, 0x66, 0x66, 0x7f, 0x50,
- 0x1, 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x6, 0xde, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x32, 0x0, 0x0, 0x0, 0x0,
-
- /* U+6355 "捕" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x30, 0x0, 0xc, 0x53, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0xc, 0x2, 0xd1, 0x0,
- 0x0, 0xd, 0x0, 0x11, 0x1c, 0x11, 0x64, 0x70,
- 0x5, 0x6e, 0x7b, 0x55, 0x5d, 0x55, 0x55, 0x50,
- 0x0, 0xd, 0x0, 0x0, 0xc, 0x0, 0x1, 0x0,
- 0x0, 0xd, 0x0, 0xc6, 0x6d, 0x66, 0x6f, 0x10,
- 0x0, 0xd, 0x74, 0xd0, 0xc, 0x0, 0xd, 0x0,
- 0x1, 0x8f, 0x10, 0xd6, 0x6d, 0x66, 0x6d, 0x0,
- 0x2f, 0x6d, 0x0, 0xd0, 0xc, 0x0, 0xd, 0x0,
- 0x1, 0xd, 0x0, 0xd0, 0xc, 0x0, 0xd, 0x0,
- 0x0, 0xd, 0x0, 0xd6, 0x6d, 0x66, 0x6d, 0x0,
- 0x0, 0xd, 0x0, 0xd0, 0xc, 0x0, 0xd, 0x0,
- 0x0, 0xd, 0x0, 0xd0, 0xc, 0x0, 0xd, 0x0,
- 0x5, 0xbd, 0x0, 0xd0, 0xd, 0x15, 0xab, 0x0,
- 0x0, 0x21, 0x0, 0x50, 0x4, 0x0, 0x41, 0x0,
-
- /* U+6368 "捨" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb, 0x40, 0x0, 0xa, 0x10, 0x0, 0x0,
- 0x0, 0xd, 0x10, 0x0, 0x5d, 0x40, 0x0, 0x0,
- 0x0, 0xd, 0x10, 0x0, 0xc1, 0x72, 0x0, 0x0,
- 0x2, 0x2d, 0x39, 0x9, 0x30, 0xb, 0x40, 0x0,
- 0x4, 0x4d, 0x44, 0x84, 0x0, 0x6, 0xcb, 0x50,
- 0x0, 0xd, 0x15, 0x33, 0x6c, 0x66, 0x38, 0x40,
- 0x0, 0xd, 0x14, 0x10, 0xb, 0x10, 0x1, 0x0,
- 0x0, 0x1d, 0x92, 0x76, 0x6d, 0x66, 0x7b, 0x10,
- 0x1a, 0xce, 0x10, 0x0, 0xb, 0x10, 0x0, 0x0,
- 0x7, 0xd, 0x10, 0x12, 0xb, 0x10, 0x41, 0x0,
- 0x0, 0xd, 0x10, 0x2c, 0x66, 0x66, 0xd5, 0x0,
- 0x0, 0xd, 0x10, 0x2a, 0x0, 0x0, 0xb2, 0x0,
- 0x1, 0xd, 0x0, 0x2a, 0x0, 0x0, 0xb2, 0x0,
- 0x4, 0xdd, 0x0, 0x2c, 0x66, 0x66, 0xd3, 0x0,
- 0x0, 0x21, 0x0, 0x13, 0x0, 0x0, 0x40, 0x0,
-
- /* U+6388 "授" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa, 0x30, 0x0, 0x0, 0x1, 0x67, 0x0,
- 0x0, 0xc, 0x10, 0x34, 0x56, 0x89, 0x87, 0x0,
- 0x0, 0xc, 0x10, 0x11, 0x5, 0x0, 0x7b, 0x0,
- 0x16, 0x6d, 0x7b, 0x1b, 0x17, 0x80, 0xc2, 0x0,
- 0x0, 0xc, 0x10, 0x7, 0x53, 0x73, 0x60, 0x0,
- 0x0, 0xc, 0x12, 0x86, 0x66, 0x6a, 0x69, 0x60,
- 0x0, 0xc, 0x86, 0xa0, 0x0, 0x0, 0xa, 0x30,
- 0x1, 0x9f, 0x15, 0x30, 0x0, 0x2, 0x51, 0x0,
- 0x3e, 0x4c, 0x10, 0x7, 0x96, 0x6c, 0xb0, 0x0,
- 0x2, 0xc, 0x10, 0x0, 0x70, 0x2d, 0x0, 0x0,
- 0x0, 0xc, 0x10, 0x0, 0x29, 0xc2, 0x0, 0x0,
- 0x0, 0xc, 0x10, 0x0, 0x1d, 0xb0, 0x0, 0x0,
- 0x0, 0xc, 0x10, 0x3, 0xb3, 0x6c, 0x50, 0x0,
- 0x5, 0xce, 0x2, 0x86, 0x0, 0x3, 0xbf, 0x90,
- 0x0, 0x22, 0x13, 0x0, 0x0, 0x0, 0x2, 0x0,
-
- /* U+6392 "排" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x20, 0x0, 0xb4, 0xc, 0x20, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0xc0, 0xd, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0xc0, 0xd, 0x0, 0x20,
- 0x16, 0x6e, 0x89, 0x66, 0xd0, 0xd, 0x66, 0x90,
- 0x0, 0xd, 0x0, 0x0, 0xc0, 0xd, 0x0, 0x0,
- 0x0, 0xd, 0x1, 0x0, 0xc0, 0xd, 0x0, 0x0,
- 0x0, 0xd, 0x72, 0x56, 0xd0, 0xd, 0x67, 0x90,
- 0x17, 0xce, 0x0, 0x0, 0xc0, 0xd, 0x0, 0x0,
- 0x2b, 0x1d, 0x0, 0x0, 0xc0, 0xd, 0x0, 0x0,
- 0x0, 0xd, 0x5, 0x66, 0xd0, 0xd, 0x66, 0xc1,
- 0x0, 0xd, 0x0, 0x0, 0xc0, 0xd, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0xc0, 0xd, 0x0, 0x0,
- 0x2, 0x1e, 0x0, 0x0, 0xc0, 0xd, 0x0, 0x0,
- 0x3, 0xca, 0x0, 0x0, 0xd0, 0xd, 0x0, 0x0,
- 0x0, 0x10, 0x0, 0x0, 0x20, 0x2, 0x0, 0x0,
-
- /* U+639B "掛" */
- 0x0, 0x9, 0x10, 0x0, 0x60, 0x0, 0x72, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0xd0, 0x0, 0xd1, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0xc0, 0x0, 0xd0, 0x0,
- 0x0, 0xd, 0x22, 0x66, 0xd7, 0x90, 0xd0, 0x0,
- 0x6, 0x6e, 0x64, 0x0, 0xc0, 0x0, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0xc0, 0x40, 0xd5, 0x0,
- 0x0, 0xd, 0x4, 0x66, 0x76, 0x63, 0xd4, 0xc0,
- 0x0, 0x1e, 0x60, 0x0, 0xd1, 0x0, 0xd0, 0xa5,
- 0x18, 0xcd, 0x0, 0x0, 0xc0, 0x10, 0xd0, 0x11,
- 0x8, 0xd, 0x2, 0x66, 0xd6, 0xa1, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0xc0, 0x0, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0xc0, 0x0, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0x13, 0xd6, 0x52, 0xd0, 0x0,
- 0x5, 0xda, 0x8, 0xe8, 0x20, 0x0, 0xd0, 0x0,
- 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0,
-
- /* U+63A1 "採" */
- 0x0, 0x9, 0x20, 0x0, 0x0, 0x2, 0x68, 0x0,
- 0x0, 0xd, 0x0, 0x35, 0x68, 0x99, 0x87, 0x10,
- 0x0, 0xd, 0x0, 0x10, 0x12, 0x0, 0x5, 0x70,
- 0x0, 0xd, 0x16, 0x65, 0xb, 0x40, 0xc, 0x40,
- 0x16, 0x6e, 0x66, 0x1e, 0x34, 0xa0, 0x65, 0x0,
- 0x0, 0xd, 0x0, 0x6, 0x11, 0x41, 0x50, 0x0,
- 0x0, 0xd, 0x4, 0x10, 0x2, 0xc0, 0x1, 0x20,
- 0x0, 0xd, 0x82, 0x66, 0x6c, 0xd6, 0x68, 0x80,
- 0x18, 0xce, 0x0, 0x0, 0x5d, 0xb6, 0x0, 0x0,
- 0x1a, 0xd, 0x0, 0x0, 0xc4, 0xa8, 0x10, 0x0,
- 0x0, 0xd, 0x0, 0x8, 0x52, 0xa2, 0xb0, 0x0,
- 0x0, 0xd, 0x0, 0x57, 0x2, 0xa0, 0x8a, 0x0,
- 0x1, 0xd, 0x3, 0x60, 0x2, 0xa0, 0xb, 0xc3,
- 0x5, 0xdd, 0x3, 0x0, 0x2, 0xb0, 0x0, 0x20,
- 0x0, 0x21, 0x0, 0x0, 0x1, 0x20, 0x0, 0x0,
-
- /* U+63A2 "探" */
- 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x30, 0x5, 0x0, 0x0, 0x0, 0x40,
- 0x0, 0xd, 0x0, 0x2a, 0x66, 0x66, 0x68, 0xe1,
- 0x0, 0xd, 0x0, 0x96, 0x21, 0x0, 0x7, 0x20,
- 0x16, 0x6e, 0x6c, 0x40, 0xb9, 0x7, 0x60, 0x0,
- 0x0, 0xd, 0x0, 0x6, 0x90, 0x0, 0x8d, 0x10,
- 0x0, 0xd, 0x2, 0x57, 0x2, 0xc0, 0x9, 0x20,
- 0x0, 0xd, 0x73, 0x30, 0x1, 0xb0, 0x0, 0x20,
- 0x1, 0x8f, 0x12, 0x86, 0x6a, 0xd7, 0x68, 0xa0,
- 0x2e, 0x5d, 0x0, 0x0, 0x5d, 0xb6, 0x0, 0x0,
- 0x1, 0xd, 0x0, 0x0, 0xc3, 0xb5, 0x40, 0x0,
- 0x0, 0xd, 0x0, 0x8, 0x51, 0xb0, 0xb2, 0x0,
- 0x0, 0xd, 0x0, 0x67, 0x1, 0xb0, 0x3e, 0x50,
- 0x0, 0xd, 0x5, 0x50, 0x1, 0xb0, 0x4, 0xb3,
- 0x3, 0xbc, 0x11, 0x0, 0x2, 0xb0, 0x0, 0x0,
- 0x0, 0x11, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+63A5 "接" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x20, 0x0, 0x19, 0x10, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0x6, 0x70, 0x2, 0x0,
- 0x0, 0xd, 0x1, 0x57, 0x66, 0x66, 0x6a, 0x20,
- 0x16, 0x6e, 0x6c, 0x22, 0x70, 0xb, 0x50, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0xa5, 0x1a, 0x0, 0x0,
- 0x0, 0xd, 0x3, 0x66, 0x86, 0x97, 0x6a, 0x80,
- 0x0, 0xd, 0x34, 0x0, 0x2c, 0x0, 0x0, 0x0,
- 0x0, 0x6e, 0x40, 0x0, 0x87, 0x0, 0x0, 0x0,
- 0x4e, 0x6d, 0x16, 0x66, 0xe6, 0x66, 0x78, 0xb0,
- 0x1, 0xd, 0x0, 0x6, 0x60, 0xa, 0x50, 0x0,
- 0x0, 0xd, 0x0, 0x1c, 0x0, 0x3c, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x3, 0x79, 0xd6, 0x0, 0x0,
- 0x1, 0xd, 0x0, 0x0, 0x3c, 0x59, 0xc4, 0x0,
- 0x3, 0xcc, 0x0, 0x49, 0x81, 0x0, 0x3e, 0x30,
- 0x0, 0x11, 0x25, 0x30, 0x0, 0x0, 0x1, 0x10,
-
- /* U+63A7 "控" */
- 0x0, 0xa, 0x30, 0x0, 0x5, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x10, 0x0, 0x5, 0xd1, 0x0, 0x0,
- 0x0, 0xd, 0x10, 0x12, 0x0, 0x80, 0x0, 0x40,
- 0x16, 0x6e, 0x89, 0x77, 0x55, 0x55, 0x58, 0xa0,
- 0x0, 0xd, 0x10, 0xa1, 0x39, 0x3, 0x5, 0x0,
- 0x0, 0xd, 0x10, 0x1, 0xd5, 0x2, 0xb5, 0x0,
- 0x0, 0xd, 0x56, 0x1a, 0x20, 0x0, 0x1e, 0x40,
- 0x1, 0x7f, 0x51, 0x60, 0x0, 0x0, 0x16, 0x30,
- 0x3f, 0x6d, 0x10, 0x26, 0x67, 0x96, 0x98, 0x0,
- 0x1, 0xd, 0x10, 0x0, 0x3, 0xa0, 0x0, 0x0,
- 0x0, 0xd, 0x10, 0x0, 0x3, 0xa0, 0x0, 0x0,
- 0x0, 0xd, 0x10, 0x0, 0x3, 0xa0, 0x0, 0x0,
- 0x0, 0xd, 0x10, 0x0, 0x3, 0xa0, 0x2, 0x80,
- 0x6, 0xae, 0x4, 0x76, 0x66, 0x66, 0x66, 0x61,
- 0x0, 0x33, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+63A8 "推" */
- 0x0, 0xa, 0x30, 0x2, 0xa0, 0x60, 0x0, 0x0,
- 0x0, 0xc0, 0x0, 0x69, 0x3, 0xd0, 0x0, 0x0,
- 0xc, 0x0, 0xa, 0x40, 0x8, 0x6, 0x11, 0x66,
- 0xd6, 0xc3, 0xe6, 0x6d, 0x66, 0x74, 0x0, 0xc,
- 0x0, 0x4f, 0x0, 0xd0, 0x0, 0x0, 0x0, 0xc0,
- 0x18, 0xd0, 0xd, 0x1, 0x30, 0x0, 0xc, 0x75,
- 0x5d, 0x66, 0xe6, 0x67, 0x0, 0x3a, 0xe0, 0x30,
- 0xd0, 0xd, 0x0, 0x0, 0x4d, 0x2c, 0x0, 0xd,
- 0x0, 0xd0, 0x3, 0x0, 0x10, 0xc0, 0x0, 0xd6,
- 0x6e, 0x67, 0xa2, 0x0, 0xc, 0x0, 0xd, 0x0,
- 0xd0, 0x0, 0x0, 0x0, 0xc0, 0x0, 0xd0, 0xd,
- 0x0, 0x0, 0x1, 0xd, 0x0, 0xd, 0x66, 0xe6,
- 0x6d, 0x60, 0x4c, 0xd0, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0x0, 0x11, 0x0, 0x2, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+63CF "描" */
- 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd4, 0x0, 0xc, 0x40, 0xa5, 0x0, 0x0,
- 0xc, 0x10, 0x0, 0xd0, 0xa, 0x20, 0x0, 0x0,
- 0xc1, 0x4, 0x4d, 0x44, 0xb5, 0xa4, 0x16, 0x6d,
- 0x7c, 0x32, 0xd2, 0x2a, 0x42, 0x10, 0x10, 0xc1,
- 0x0, 0xd, 0x0, 0xa2, 0x0, 0x0, 0xc, 0x10,
- 0x0, 0x50, 0x3, 0x1, 0x0, 0x0, 0xc2, 0x49,
- 0x66, 0x69, 0x66, 0xe2, 0x0, 0x3e, 0x80, 0xa3,
- 0x0, 0xd0, 0xd, 0x2, 0xda, 0xd1, 0xa, 0x30,
- 0xd, 0x0, 0xd0, 0x4, 0xc, 0x10, 0xa7, 0x66,
- 0xe6, 0x6d, 0x0, 0x0, 0xc1, 0xa, 0x30, 0xd,
- 0x0, 0xd0, 0x0, 0xc, 0x10, 0xa3, 0x0, 0xd0,
- 0xd, 0x0, 0x31, 0xd1, 0xa, 0x76, 0x6e, 0x66,
- 0xe0, 0x3, 0xcc, 0x0, 0xa2, 0x0, 0x0, 0xb,
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+63D0 "提" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb, 0x30, 0x3, 0x0, 0x0, 0x50, 0x0,
- 0x0, 0xd, 0x0, 0xd, 0x66, 0x66, 0xe1, 0x0,
- 0x0, 0xd, 0x1, 0xd, 0x0, 0x0, 0xd0, 0x0,
- 0x6, 0x6e, 0x6b, 0x1d, 0x66, 0x66, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0xd, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0xd, 0x66, 0x66, 0xe0, 0x0,
- 0x0, 0xd, 0x64, 0x6, 0x0, 0x0, 0x31, 0x10,
- 0x2, 0x9f, 0x16, 0x76, 0x66, 0x96, 0x69, 0xa0,
- 0x2e, 0x4d, 0x0, 0x43, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x87, 0x0, 0xd0, 0x7, 0x0,
- 0x0, 0xd, 0x0, 0xc4, 0x0, 0xe6, 0x66, 0x20,
- 0x0, 0xd, 0x2, 0x96, 0x40, 0xd0, 0x0, 0x0,
- 0x3, 0x2d, 0x9, 0x0, 0x8b, 0xd2, 0x0, 0x10,
- 0x2, 0xb9, 0x52, 0x0, 0x3, 0x9c, 0xef, 0x70,
- 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+63DB "換" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x10, 0x0, 0x96, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x3, 0xf7, 0x6b, 0x30, 0x0,
- 0x0, 0xd, 0x0, 0x1a, 0x10, 0x4b, 0x20, 0x0,
- 0x16, 0x6e, 0x86, 0x50, 0x0, 0x80, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0xc6, 0x67, 0x66, 0x6e, 0x10,
- 0x0, 0xd, 0x3, 0xd0, 0x87, 0x42, 0xd, 0x0,
- 0x0, 0xd, 0x71, 0xd0, 0xb0, 0xb, 0x3d, 0x0,
- 0x5, 0xbe, 0x0, 0xd6, 0x14, 0x24, 0x9d, 0x0,
- 0xb, 0x2d, 0x0, 0xa0, 0x9, 0x70, 0xa, 0x0,
- 0x0, 0xd, 0x5, 0x66, 0x6d, 0x76, 0x67, 0xc1,
- 0x0, 0xd, 0x1, 0x0, 0x4a, 0x42, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x1, 0xc1, 0x9, 0x20, 0x0,
- 0x0, 0xd, 0x0, 0x2b, 0x30, 0x1, 0xd7, 0x30,
- 0x5, 0xdb, 0x26, 0x60, 0x0, 0x0, 0x1b, 0xb2,
- 0x0, 0x20, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+63EE "揮" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x10, 0x12, 0x0, 0x0, 0x1, 0x40,
- 0x0, 0xd, 0x0, 0x58, 0x66, 0x66, 0x6a, 0xc0,
- 0x0, 0xd, 0x0, 0xd2, 0x0, 0xc1, 0x7, 0x0,
- 0x0, 0xd, 0x33, 0x12, 0x22, 0xd2, 0x28, 0x10,
- 0x16, 0x6e, 0x65, 0x25, 0x44, 0xd4, 0x44, 0x20,
- 0x0, 0xd, 0x0, 0x18, 0x66, 0xe6, 0x6a, 0x20,
- 0x0, 0xd, 0x4, 0x2b, 0x0, 0xd0, 0xd, 0x0,
- 0x0, 0xe, 0x71, 0x1d, 0x66, 0xe6, 0x6e, 0x0,
- 0x16, 0xcd, 0x0, 0x1b, 0x0, 0xd0, 0xd, 0x0,
- 0x1c, 0x1d, 0x0, 0x2d, 0x66, 0xe6, 0x6d, 0x0,
- 0x0, 0xd, 0x0, 0x2, 0x0, 0xd0, 0x2, 0x20,
- 0x0, 0xd, 0x1, 0x86, 0x66, 0xe6, 0x68, 0x80,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0x7, 0xda, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0x51, 0x0, 0x0, 0x0, 0x60, 0x0, 0x0,
-
- /* U+63FA "揺" */
- 0x0, 0x9, 0x10, 0x0, 0x0, 0x2, 0x69, 0x0,
- 0x0, 0xd, 0x0, 0x35, 0x79, 0xaa, 0x98, 0x20,
- 0x0, 0xd, 0x0, 0x20, 0x3, 0x0, 0xb, 0x50,
- 0x0, 0xd, 0x23, 0x53, 0x8, 0x50, 0x2c, 0x10,
- 0x6, 0x6e, 0x64, 0xd, 0x22, 0xd0, 0x81, 0x0,
- 0x0, 0xd, 0x0, 0x6, 0x10, 0x21, 0x22, 0x0,
- 0x0, 0xd, 0x15, 0x47, 0x66, 0xa6, 0x7a, 0x10,
- 0x0, 0x2e, 0x60, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0x2c, 0xbd, 0x4, 0x66, 0x66, 0xe6, 0x69, 0xb0,
- 0x7, 0xd, 0x1, 0x10, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0xa4, 0x0, 0xd0, 0x9, 0x20,
- 0x0, 0xd, 0x0, 0xb0, 0x0, 0xd0, 0xd, 0x0,
- 0x0, 0xe, 0x0, 0xb0, 0x0, 0xd0, 0xd, 0x0,
- 0x6, 0xec, 0x0, 0xc6, 0x66, 0x86, 0x6e, 0x0,
- 0x0, 0x21, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0,
-
- /* U+643A "携" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb3, 0x0, 0x19, 0x26, 0x0, 0x0, 0x0,
- 0xd, 0x0, 0x7, 0x90, 0xa6, 0x3, 0x0, 0x0,
- 0xd0, 0x0, 0xd6, 0x6c, 0x66, 0x93, 0x17, 0x6e,
- 0x89, 0x8d, 0x0, 0xc0, 0x6, 0x0, 0x0, 0xd0,
- 0x35, 0xd6, 0x6d, 0x66, 0x50, 0x0, 0xd, 0x5,
- 0xd, 0x66, 0xd6, 0x6a, 0x0, 0x0, 0xd8, 0x20,
- 0xd0, 0xc, 0x0, 0x10, 0x4, 0xbf, 0x0, 0xe,
- 0x66, 0xb6, 0x6a, 0x64, 0xe3, 0xd0, 0x0, 0x70,
- 0x0, 0x3, 0x0, 0x1, 0xd, 0x0, 0x66, 0xe6,
- 0x69, 0xb0, 0x0, 0x0, 0xd0, 0x0, 0x1c, 0x0,
- 0xc8, 0x77, 0x0, 0xd, 0x0, 0x9, 0x50, 0x3,
- 0x8, 0x60, 0x0, 0xd0, 0x5, 0xa0, 0x0, 0x0,
- 0xc1, 0x5, 0xcc, 0x7, 0x60, 0x0, 0x19, 0xc9,
- 0x0, 0x2, 0x13, 0x0, 0x0, 0x0, 0x5, 0x0,
-
- /* U+64C1 "擁" */
- 0x0, 0x7, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0x6, 0x90, 0x0, 0x40,
- 0x0, 0xc, 0x3, 0x69, 0x66, 0x66, 0x66, 0x93,
- 0x0, 0xc, 0x10, 0x1c, 0x2, 0xc9, 0x40, 0x0,
- 0x6, 0x6d, 0x74, 0x72, 0x37, 0x90, 0xa0, 0x20,
- 0x0, 0xc, 0x0, 0x62, 0xdd, 0x66, 0xa6, 0xa2,
- 0x0, 0xc, 0x27, 0x8b, 0x6e, 0x10, 0xd0, 0x0,
- 0x0, 0xe, 0x50, 0x36, 0x3c, 0x66, 0xe6, 0xa1,
- 0x2, 0xcc, 0x0, 0x82, 0xbc, 0x10, 0xd0, 0x0,
- 0xd, 0x5c, 0x9, 0x9a, 0x7c, 0x10, 0xd0, 0x0,
- 0x1, 0xc, 0x3, 0x1b, 0xc, 0x66, 0xe6, 0xa0,
- 0x0, 0xc, 0x0, 0x46, 0xc, 0x10, 0xd0, 0x0,
- 0x0, 0xc, 0x0, 0x90, 0xc, 0x10, 0xd0, 0x40,
- 0x5, 0xda, 0x6, 0x0, 0xc, 0x66, 0x76, 0x74,
- 0x0, 0x30, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
-
- /* U+64C7 "擇" */
- 0x0, 0xa, 0x10, 0x10, 0x0, 0x0, 0x2, 0x0,
- 0x0, 0xd, 0x0, 0xa6, 0x6b, 0x6c, 0x6d, 0x20,
- 0x0, 0xd, 0x0, 0xa1, 0xb, 0xc, 0xc, 0x0,
- 0x0, 0xd, 0x22, 0xa6, 0x6b, 0x6c, 0x6d, 0x0,
- 0x6, 0x6e, 0x65, 0x50, 0x1, 0xa0, 0x3, 0x0,
- 0x0, 0xd, 0x0, 0x26, 0x66, 0xc6, 0xb5, 0x0,
- 0x0, 0xd, 0x22, 0x2, 0x1, 0xa0, 0x0, 0x20,
- 0x0, 0xd, 0x61, 0x86, 0x66, 0x96, 0x68, 0x90,
- 0x0, 0x9e, 0x0, 0x0, 0xa3, 0x8, 0x60, 0x0,
- 0xe, 0x6d, 0x0, 0x0, 0x49, 0x7, 0x24, 0x0,
- 0x3, 0xd, 0x0, 0x57, 0x66, 0xc6, 0x65, 0x0,
- 0x0, 0xd, 0x5, 0x66, 0x66, 0xc6, 0x69, 0x90,
- 0x0, 0xd, 0x1, 0x10, 0x1, 0xa0, 0x0, 0x0,
- 0x5, 0xbc, 0x0, 0x0, 0x1, 0xa0, 0x0, 0x0,
- 0x0, 0x31, 0x0, 0x0, 0x1, 0x40, 0x0, 0x0,
-
- /* U+64D4 "擔" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb, 0x30, 0x0, 0x8a, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0xe7, 0x67, 0x70, 0x0,
- 0x0, 0xd, 0x0, 0x9, 0x40, 0x8, 0x50, 0x0,
- 0x0, 0xd, 0x14, 0x3d, 0x66, 0x69, 0x69, 0x90,
- 0x6, 0x6e, 0x65, 0x4d, 0xc, 0x40, 0x85, 0x0,
- 0x0, 0xd, 0x0, 0xd, 0x62, 0x3a, 0x9, 0x10,
- 0x0, 0xd, 0x16, 0xe, 0x66, 0x6a, 0x68, 0xb0,
- 0x0, 0xd, 0x80, 0xc, 0x0, 0x0, 0x23, 0x0,
- 0x3, 0xbe, 0x0, 0x2a, 0x27, 0x66, 0x65, 0x0,
- 0x1e, 0x4d, 0x0, 0x47, 0x17, 0x66, 0x6a, 0x0,
- 0x0, 0xd, 0x0, 0x83, 0x30, 0x0, 0x4, 0x0,
- 0x0, 0xd, 0x0, 0xb0, 0x79, 0x66, 0x6e, 0x0,
- 0x1, 0xd, 0x5, 0x20, 0x75, 0x0, 0xd, 0x0,
- 0x3, 0xdc, 0x25, 0x0, 0x79, 0x66, 0x6c, 0x0,
- 0x0, 0x11, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
-
- /* U+64DA "據" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb, 0x10, 0x0, 0xb, 0x20, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0xd, 0x66, 0x97, 0x0,
- 0x0, 0xd, 0x0, 0x52, 0x2d, 0x22, 0x23, 0x30,
- 0x0, 0xd, 0x23, 0xd4, 0x4b, 0x64, 0x49, 0x70,
- 0x16, 0x6e, 0x65, 0xd0, 0x1c, 0x69, 0x43, 0x0,
- 0x0, 0xd, 0x0, 0xc4, 0x4c, 0x0, 0x52, 0x0,
- 0x0, 0xd, 0x13, 0xc0, 0x5, 0x99, 0x95, 0x0,
- 0x0, 0xe, 0x70, 0xc5, 0x67, 0x86, 0x6a, 0x50,
- 0x2, 0xbd, 0x0, 0xb0, 0x1d, 0x20, 0x48, 0x0,
- 0x1e, 0x3d, 0x1, 0xa2, 0x74, 0xb4, 0x91, 0x0,
- 0x0, 0xd, 0x4, 0x71, 0x58, 0x7a, 0x40, 0x0,
- 0x0, 0xd, 0x8, 0x36, 0x36, 0xac, 0x73, 0x0,
- 0x0, 0xd, 0x8, 0x3, 0x95, 0xc, 0xc, 0x90,
- 0x6, 0xcb, 0x41, 0x43, 0x5, 0x8d, 0x0, 0x10,
- 0x0, 0x41, 0x10, 0x0, 0x0, 0x42, 0x0, 0x0,
-
- /* U+652F "支" */
- 0x0, 0x0, 0x0, 0xa, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0x10, 0x0, 0x2a, 0x0, 0x76,
- 0x66, 0x66, 0xe6, 0x66, 0x66, 0x63, 0x0, 0x0,
- 0x0, 0xd, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd1, 0x4, 0x10, 0x0, 0x0, 0x6, 0x86,
- 0x66, 0x66, 0xe7, 0x0, 0x0, 0x0, 0x0, 0x50,
- 0x0, 0x4c, 0x0, 0x0, 0x0, 0x0, 0x7, 0x10,
- 0xd, 0x30, 0x0, 0x0, 0x0, 0x0, 0x1a, 0x8,
- 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6c, 0xc0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xdc, 0x20,
- 0x0, 0x0, 0x0, 0x0, 0x2b, 0x80, 0x4d, 0xb5,
- 0x10, 0x0, 0x3, 0x88, 0x10, 0x0, 0x6, 0xcf,
- 0xf7, 0x15, 0x30, 0x0, 0x0, 0x0, 0x0, 0x13,
- 0x0,
-
- /* U+6539 "改" */
- 0x0, 0x0, 0x0, 0x0, 0x58, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x30, 0x9, 0x70, 0x0, 0x0, 0x26,
- 0x66, 0x6e, 0x30, 0xd1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd0, 0x4a, 0x0, 0x2, 0x50, 0x0, 0x0,
- 0xd, 0xa, 0x86, 0x6a, 0x95, 0x0, 0x0, 0x0,
- 0xd1, 0x85, 0x0, 0x94, 0x0, 0x1e, 0x66, 0x6c,
- 0x70, 0x70, 0xb, 0x20, 0x0, 0xd0, 0x0, 0x2,
- 0x8, 0x0, 0xd0, 0x0, 0xd, 0x0, 0x0, 0x0,
- 0x63, 0x3a, 0x0, 0x0, 0xd0, 0x0, 0x0, 0x1,
- 0xa9, 0x40, 0x0, 0xd, 0x0, 0x3, 0x40, 0x8,
- 0xc0, 0x0, 0x0, 0xd0, 0x69, 0x30, 0x1, 0xcc,
- 0x40, 0x0, 0x2f, 0xd4, 0x0, 0x3, 0xa1, 0x1d,
- 0x60, 0x0, 0x70, 0x0, 0x17, 0x60, 0x0, 0x1c,
- 0xc2, 0x0, 0x0, 0x13, 0x0, 0x0, 0x0, 0x2,
- 0x0,
-
- /* U+653E "放" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x5, 0x20, 0x0, 0x4, 0xc0, 0x0, 0x0,
- 0x0, 0x0, 0xd4, 0x0, 0x7, 0x90, 0x0, 0x0,
- 0x0, 0x0, 0x44, 0x2, 0xb, 0x30, 0x1, 0x10,
- 0x6, 0x6a, 0x66, 0x6a, 0x2d, 0x66, 0x7b, 0x80,
- 0x0, 0xe, 0x0, 0x0, 0x48, 0x0, 0x95, 0x0,
- 0x0, 0xe, 0x0, 0x20, 0x86, 0x0, 0xb3, 0x0,
- 0x0, 0xe, 0x66, 0xc5, 0x67, 0x0, 0xe0, 0x0,
- 0x0, 0x1c, 0x0, 0xb1, 0x6, 0x23, 0xb0, 0x0,
- 0x0, 0x2a, 0x0, 0xc0, 0x2, 0x88, 0x50, 0x0,
- 0x0, 0x58, 0x0, 0xd0, 0x0, 0xad, 0x0, 0x0,
- 0x0, 0x84, 0x0, 0xd0, 0x0, 0xab, 0x0, 0x0,
- 0x0, 0xb0, 0x1, 0xd0, 0x7, 0x79, 0x90, 0x0,
- 0x4, 0x62, 0x8b, 0x80, 0x76, 0x0, 0xbb, 0x20,
- 0x7, 0x0, 0x18, 0x27, 0x20, 0x0, 0x9, 0xb2,
- 0x10, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
-
- /* U+653F "政" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x8, 0x80, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x13, 0xc, 0x40, 0x0, 0x0,
- 0x7, 0x66, 0xa6, 0x89, 0x1e, 0x0, 0x1, 0x0,
- 0x0, 0x0, 0xb1, 0x0, 0x4c, 0x66, 0x8a, 0x80,
- 0x0, 0x10, 0xb1, 0x0, 0x84, 0x0, 0xb3, 0x0,
- 0x0, 0xe1, 0xb1, 0x20, 0xa5, 0x0, 0xd1, 0x0,
- 0x0, 0xd0, 0xb6, 0x96, 0x46, 0x0, 0xd0, 0x0,
- 0x0, 0xd0, 0xb1, 0x5, 0x7, 0x3, 0xa0, 0x0,
- 0x0, 0xd0, 0xb1, 0x0, 0x4, 0x58, 0x60, 0x0,
- 0x0, 0xd0, 0xb1, 0x0, 0x0, 0xbd, 0x10, 0x0,
- 0x0, 0xd0, 0xb4, 0x65, 0x0, 0xba, 0x0, 0x0,
- 0x3, 0xea, 0xb6, 0x0, 0x8, 0x9b, 0x50, 0x0,
- 0x1d, 0x72, 0x0, 0x0, 0x95, 0x1, 0xd8, 0x10,
- 0x0, 0x0, 0x0, 0x57, 0x10, 0x0, 0x1c, 0xb1,
- 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+6545 "故" */
- 0x0, 0x0, 0x81, 0x0, 0x2, 0xb1, 0x0, 0x0,
- 0x0, 0x0, 0xd1, 0x0, 0x5, 0xb0, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x9, 0x50, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x6, 0xd, 0x11, 0x14, 0x50,
- 0x6, 0x66, 0xe6, 0x66, 0x4d, 0x55, 0x9a, 0x40,
- 0x0, 0x0, 0xd0, 0x0, 0x77, 0x0, 0x86, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x75, 0x0, 0xa3, 0x0,
- 0x0, 0xa6, 0xc6, 0xc5, 0x3, 0x40, 0xd0, 0x0,
- 0x0, 0xd0, 0x0, 0xd0, 0x0, 0x81, 0xc0, 0x0,
- 0x0, 0xd0, 0x0, 0xd0, 0x0, 0xa7, 0x60, 0x0,
- 0x0, 0xd0, 0x0, 0xd0, 0x0, 0x6e, 0x0, 0x0,
- 0x0, 0xd0, 0x0, 0xd0, 0x1, 0xbd, 0x30, 0x0,
- 0x0, 0xd6, 0x66, 0xe0, 0x2b, 0x42, 0xd5, 0x0,
- 0x0, 0x90, 0x0, 0x27, 0x70, 0x0, 0x3d, 0xb1,
- 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x1, 0x10,
-
- /* U+6548 "效" */
- 0x0, 0x14, 0x0, 0x0, 0x9, 0x60, 0x0, 0x0,
- 0x0, 0x97, 0x0, 0x0, 0xe4, 0x0, 0x0, 0x0,
- 0x3, 0xc0, 0x52, 0x1d, 0x0, 0x0, 0x2, 0x86,
- 0x66, 0x66, 0x56, 0x70, 0x2, 0x60, 0x0, 0xa4,
- 0x19, 0x20, 0xa6, 0x68, 0xc5, 0x0, 0x2c, 0x0,
- 0x3e, 0x1d, 0x0, 0x57, 0x0, 0xa, 0x20, 0x2,
- 0x66, 0x52, 0x8, 0x40, 0x6, 0x32, 0x2, 0xe1,
- 0x51, 0x60, 0xc0, 0x0, 0x20, 0x36, 0x95, 0x0,
- 0x9, 0x1b, 0x0, 0x0, 0x0, 0x5e, 0x0, 0x0,
- 0x8a, 0x50, 0x0, 0x0, 0xb, 0x8b, 0x0, 0x4,
- 0xe0, 0x0, 0x0, 0x7, 0x60, 0xb6, 0x1, 0xbb,
- 0x50, 0x0, 0x4, 0x60, 0x2, 0x52, 0x90, 0x1d,
- 0x60, 0x4, 0x50, 0x0, 0x5, 0x60, 0x0, 0x2e,
- 0xa1, 0x10, 0x0, 0x4, 0x0, 0x0, 0x0, 0x10,
- 0x0,
-
- /* U+6557 "敗" */
- 0x0, 0x0, 0x0, 0x2, 0x0, 0xa2, 0x0, 0x0,
- 0x3, 0xc6, 0x66, 0x6f, 0x12, 0xf1, 0x0, 0x0,
- 0x2, 0xa0, 0x0, 0xd, 0x5, 0x90, 0x0, 0x20,
- 0x2, 0xa0, 0x0, 0xd, 0x9, 0x86, 0x69, 0xc3,
- 0x2, 0xc6, 0x66, 0x6d, 0xc, 0x0, 0xd, 0x0,
- 0x2, 0xa0, 0x0, 0xd, 0x3a, 0x0, 0x2b, 0x0,
- 0x2, 0xc6, 0x66, 0x6d, 0x72, 0x30, 0x58, 0x0,
- 0x2, 0xa0, 0x0, 0xd, 0x40, 0x70, 0x94, 0x0,
- 0x2, 0xa0, 0x0, 0xd, 0x0, 0x70, 0xd0, 0x0,
- 0x3, 0xc6, 0x66, 0x6d, 0x0, 0x3b, 0x80, 0x0,
- 0x1, 0x26, 0x25, 0x11, 0x0, 0x1f, 0x30, 0x0,
- 0x0, 0x2d, 0x21, 0xd4, 0x0, 0xa5, 0xd1, 0x0,
- 0x0, 0xa2, 0x0, 0x37, 0x9, 0x20, 0x5d, 0x30,
- 0x7, 0x10, 0x0, 0x2, 0x61, 0x0, 0x5, 0xf5,
- 0x0, 0x0, 0x0, 0x12, 0x0, 0x0, 0x0, 0x10,
-
- /* U+6559 "教" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb2, 0x0, 0x0, 0x88, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x3, 0x20, 0xc4, 0x0, 0x0,
- 0x0, 0x66, 0xe8, 0x8c, 0x60, 0xd0, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x78, 0x3, 0xb3, 0x37, 0x80,
- 0x5, 0x66, 0xe6, 0xe8, 0xa8, 0x52, 0x6a, 0x20,
- 0x0, 0x0, 0xb, 0x20, 0xa, 0x20, 0x67, 0x0,
- 0x0, 0x66, 0xb9, 0x7a, 0x34, 0x50, 0x84, 0x0,
- 0x0, 0x8, 0x31, 0x93, 0x50, 0x70, 0xb1, 0x0,
- 0x1, 0x71, 0x39, 0x0, 0x0, 0x80, 0xc0, 0x0,
- 0x3, 0x0, 0x4b, 0x35, 0x30, 0x59, 0x70, 0x0,
- 0x4, 0x8a, 0xbb, 0x20, 0x0, 0x1f, 0x0, 0x0,
- 0x3, 0x50, 0x49, 0x0, 0x0, 0xaa, 0x70, 0x0,
- 0x0, 0x0, 0x49, 0x0, 0x9, 0x30, 0xc7, 0x0,
- 0x0, 0x6, 0xb7, 0x4, 0x71, 0x0, 0x1c, 0xb1,
- 0x0, 0x0, 0x60, 0x31, 0x0, 0x0, 0x0, 0x0,
-
- /* U+6562 "敢" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x10, 0x0, 0xc1, 0x0, 0x0,
- 0x1, 0x66, 0x6a, 0x90, 0x3, 0xb0, 0x0, 0x0,
- 0x0, 0x0, 0xb, 0x20, 0x6, 0x70, 0x0, 0x0,
- 0x26, 0x66, 0x6d, 0x6a, 0x8a, 0x76, 0x69, 0x90,
- 0x0, 0xd0, 0x0, 0xd0, 0xd, 0x0, 0x94, 0x0,
- 0x0, 0xd0, 0x0, 0xd0, 0x4b, 0x0, 0xb2, 0x0,
- 0x0, 0xd6, 0x66, 0xd0, 0x83, 0x30, 0xd0, 0x0,
- 0x0, 0xd0, 0x0, 0xd1, 0x50, 0x71, 0xc0, 0x0,
- 0x0, 0xd6, 0x66, 0xd2, 0x0, 0x95, 0x80, 0x0,
- 0x0, 0xd0, 0x0, 0xd0, 0x0, 0x7d, 0x20, 0x0,
- 0x0, 0xd1, 0x35, 0xe6, 0x30, 0x4e, 0x0, 0x0,
- 0x4c, 0xea, 0x62, 0xd0, 0x0, 0xb8, 0x90, 0x0,
- 0x5, 0x0, 0x0, 0xd0, 0x9, 0x10, 0xaa, 0x10,
- 0x0, 0x0, 0x0, 0xd1, 0x61, 0x0, 0x9, 0xb1,
- 0x0, 0x0, 0x0, 0x12, 0x0, 0x0, 0x0, 0x0,
-
- /* U+6570 "数" */
- 0x0, 0x0, 0x1, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0x10, 0x1e, 0x3, 0x20, 0xd6, 0x0, 0x0,
- 0x0, 0x93, 0xc, 0xb, 0x41, 0xe0, 0x0, 0x0,
- 0x0, 0x3b, 0xc, 0x44, 0x5, 0x80, 0x0, 0x0,
- 0x3, 0x68, 0x6d, 0x69, 0x9a, 0x86, 0x66, 0xd2,
- 0x0, 0x10, 0xcd, 0x40, 0xd, 0x10, 0x4a, 0x0,
- 0x0, 0x9, 0x3c, 0x7b, 0x56, 0x30, 0x58, 0x0,
- 0x0, 0x82, 0xc, 0x4, 0x60, 0x60, 0x76, 0x0,
- 0x4, 0x0, 0x67, 0x0, 0x0, 0x80, 0xa3, 0x0,
- 0x3, 0x66, 0xd9, 0x6a, 0x10, 0x90, 0xd0, 0x0,
- 0x1, 0x13, 0x90, 0x3b, 0x0, 0x68, 0xa0, 0x0,
- 0x0, 0xb, 0x61, 0xb2, 0x0, 0x1f, 0x40, 0x0,
- 0x0, 0x0, 0x3e, 0xd8, 0x0, 0x9b, 0xa0, 0x0,
- 0x0, 0x3, 0xa4, 0x8, 0x59, 0x50, 0x9c, 0x40,
- 0x4, 0x65, 0x0, 0x4, 0x71, 0x0, 0x7, 0xb2,
- 0x0, 0x0, 0x0, 0x21, 0x0, 0x0, 0x0, 0x0,
-
- /* U+6574 "整" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa6, 0x0, 0x2, 0xd0, 0x0, 0x0,
- 0x4, 0x66, 0xc8, 0x6a, 0x77, 0x70, 0x1, 0x30,
- 0x1, 0x10, 0xa3, 0x1, 0xb, 0x66, 0xaa, 0x70,
- 0x0, 0xb6, 0xc8, 0x6d, 0x3a, 0x30, 0xa3, 0x0,
- 0x0, 0xc0, 0xa3, 0xc, 0x70, 0x71, 0xd0, 0x0,
- 0x0, 0xc6, 0xe8, 0x6b, 0x10, 0x5b, 0x60, 0x0,
- 0x0, 0x19, 0xd9, 0x91, 0x0, 0x6e, 0x50, 0x0,
- 0x0, 0x84, 0xa3, 0x75, 0x18, 0x50, 0xba, 0x40,
- 0x16, 0x10, 0x71, 0x4, 0x40, 0x0, 0x97, 0x70,
- 0x0, 0x28, 0x66, 0x69, 0xb6, 0x66, 0x62, 0x0,
- 0x0, 0x0, 0x72, 0x5, 0x90, 0x6, 0x20, 0x0,
- 0x0, 0x0, 0xd0, 0x5, 0xb6, 0x66, 0x40, 0x0,
- 0x0, 0x0, 0xd0, 0x5, 0x90, 0x0, 0x1, 0x0,
- 0x4, 0x66, 0xe6, 0x69, 0xb6, 0x66, 0x6e, 0x60,
- 0x1, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+6587 "文" */
- 0x0, 0x0, 0x0, 0x7, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x8, 0x80, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x2, 0x70, 0x0, 0x6, 0x10,
- 0x5, 0x76, 0x67, 0x66, 0x66, 0x97, 0x6a, 0x80,
- 0x0, 0x0, 0x6, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0x7, 0x0, 0x2, 0xc0, 0x0, 0x0,
- 0x0, 0x0, 0x6, 0x20, 0x8, 0x70, 0x0, 0x0,
- 0x0, 0x0, 0x1, 0x90, 0xd, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x92, 0x5a, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1b, 0xd2, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0xb0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x1, 0xb4, 0x7c, 0x30, 0x0, 0x0,
- 0x0, 0x0, 0x59, 0x20, 0x4, 0xdc, 0x73, 0x10,
- 0x0, 0x57, 0x30, 0x0, 0x0, 0x5, 0xcf, 0x70,
- 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
-
- /* U+6599 "料" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc1, 0x0, 0x0, 0x0, 0xd2, 0x0,
- 0x1, 0x0, 0xd0, 0x10, 0x0, 0x0, 0xe0, 0x0,
- 0x4, 0x60, 0xd0, 0xb4, 0x39, 0x0, 0xe0, 0x0,
- 0x0, 0xe1, 0xd1, 0x80, 0x9, 0x70, 0xe0, 0x0,
- 0x0, 0x60, 0xd5, 0x0, 0x1, 0x20, 0xe0, 0x0,
- 0x3, 0x66, 0xe6, 0xb8, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0x6, 0xe0, 0x0, 0x58, 0x0, 0xe0, 0x0,
- 0x0, 0xc, 0xe9, 0x40, 0xa, 0x50, 0xe0, 0x0,
- 0x0, 0x39, 0xd1, 0xd4, 0x1, 0x10, 0xe0, 0x91,
- 0x0, 0xa1, 0xd0, 0x21, 0x1, 0x46, 0xe6, 0x51,
- 0x5, 0x30, 0xd0, 0x37, 0x64, 0x10, 0xe0, 0x0,
- 0x14, 0x0, 0xd0, 0x0, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0x0, 0xf0, 0x0,
- 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x40, 0x0,
-
- /* U+65AD "断" */
- 0x3, 0x0, 0x83, 0x0, 0x0, 0x0, 0x45, 0x1,
- 0xe0, 0xb, 0x21, 0x3, 0x76, 0x88, 0x60, 0xc,
- 0x71, 0xb2, 0x7a, 0x3a, 0x0, 0x0, 0x0, 0xc3,
- 0xab, 0x2b, 0x13, 0xa0, 0x0, 0x0, 0xc, 0x5,
- 0xb5, 0x20, 0x3a, 0x0, 0x0, 0x0, 0xc6, 0x6d,
- 0x77, 0xa4, 0xc6, 0x66, 0xd4, 0xc, 0x3, 0xf4,
- 0x0, 0x39, 0x1, 0xc0, 0x0, 0xc0, 0x8e, 0x69,
- 0x3, 0x90, 0x1c, 0x0, 0xc, 0x9, 0xb2, 0x97,
- 0x48, 0x1, 0xc0, 0x0, 0xc5, 0x2b, 0x21, 0x35,
- 0x70, 0x1c, 0x0, 0xc, 0x40, 0xb2, 0x0, 0x93,
- 0x1, 0xc0, 0x0, 0xc0, 0x9, 0x32, 0xb, 0x0,
- 0x1c, 0x0, 0x4d, 0x66, 0x68, 0x88, 0x30, 0x1,
- 0xc0, 0x0, 0x0, 0x0, 0x5, 0x40, 0x0, 0x1c,
- 0x0, 0x0, 0x0, 0x1, 0x20, 0x0, 0x0, 0x10,
- 0x0,
-
- /* U+65B0 "新" */
- 0x0, 0x0, 0x71, 0x0, 0x0, 0x0, 0x5, 0x0,
- 0x0, 0x0, 0x49, 0x3, 0x2, 0x56, 0xaa, 0x40,
- 0x2, 0x86, 0x67, 0x89, 0x53, 0xa0, 0x0, 0x0,
- 0x0, 0x38, 0x0, 0xb5, 0x3, 0xa0, 0x0, 0x0,
- 0x0, 0xb, 0x21, 0x80, 0x2, 0xa0, 0x0, 0x0,
- 0x5, 0x68, 0x69, 0x67, 0xc4, 0xc6, 0x69, 0xc0,
- 0x0, 0x0, 0x2a, 0x0, 0x2, 0xa0, 0xc1, 0x0,
- 0x0, 0x0, 0x2a, 0x3, 0x23, 0x90, 0xc1, 0x0,
- 0x1, 0x66, 0x7c, 0x68, 0x74, 0x80, 0xc1, 0x0,
- 0x0, 0x16, 0x2a, 0x30, 0x6, 0x60, 0xc1, 0x0,
- 0x0, 0x7a, 0x2a, 0x68, 0xa, 0x20, 0xc1, 0x0,
- 0x0, 0xb0, 0x2a, 0xc, 0x1b, 0x0, 0xc1, 0x0,
- 0x6, 0x31, 0x3a, 0x0, 0x81, 0x0, 0xc1, 0x0,
- 0x3, 0x5, 0xe7, 0x5, 0x30, 0x0, 0xc1, 0x0,
- 0x0, 0x0, 0x10, 0x11, 0x0, 0x0, 0x40, 0x0,
-
- /* U+65B7 "斷" */
- 0x4, 0x13, 0x20, 0x15, 0x0, 0x0, 0x17, 0x20,
- 0xb, 0x47, 0x20, 0x65, 0x8, 0x67, 0x86, 0x40,
- 0xa, 0x59, 0xb3, 0xa9, 0x5a, 0x30, 0x0, 0x0,
- 0xa, 0x35, 0x70, 0x48, 0x9, 0x30, 0x0, 0x0,
- 0xa, 0x38, 0x63, 0x97, 0x39, 0x30, 0x0, 0x0,
- 0xa, 0x58, 0x57, 0x74, 0x79, 0x86, 0x89, 0x90,
- 0xa, 0x76, 0x66, 0x6a, 0x19, 0x30, 0xd0, 0x0,
- 0xa, 0x26, 0x60, 0x66, 0x9, 0x30, 0xd0, 0x0,
- 0xa, 0x28, 0x72, 0x77, 0x2a, 0x20, 0xd0, 0x0,
- 0xa, 0x78, 0xa4, 0x9a, 0xb, 0x10, 0xd0, 0x0,
- 0xa, 0x26, 0x50, 0x65, 0xb, 0x0, 0xd0, 0x0,
- 0xa, 0x4b, 0x76, 0xc8, 0x5a, 0x0, 0xd0, 0x0,
- 0xb, 0x20, 0x2, 0x73, 0x74, 0x0, 0xd0, 0x0,
- 0x9, 0x66, 0x66, 0x64, 0x70, 0x0, 0xe0, 0x0,
- 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x40, 0x0,
-
- /* U+65B9 "方" */
- 0x0, 0x0, 0x0, 0x28, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x8, 0xb0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1, 0x70, 0x0, 0x2, 0x60,
- 0x7, 0x66, 0x66, 0x7b, 0x66, 0x66, 0x68, 0x81,
- 0x0, 0x0, 0x0, 0x4a, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x59, 0x0, 0x0, 0x10, 0x0,
- 0x0, 0x0, 0x0, 0x8a, 0x66, 0x69, 0xc0, 0x0,
- 0x0, 0x0, 0x0, 0xb2, 0x0, 0x8, 0x70, 0x0,
- 0x0, 0x0, 0x0, 0xc0, 0x0, 0xa, 0x50, 0x0,
- 0x0, 0x0, 0x7, 0x60, 0x0, 0xc, 0x20, 0x0,
- 0x0, 0x0, 0x1b, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0x0, 0xa3, 0x0, 0x0, 0x1d, 0x0, 0x0,
- 0x0, 0x8, 0x30, 0x3, 0x30, 0x7a, 0x0, 0x0,
- 0x1, 0x62, 0x0, 0x0, 0x6f, 0xf3, 0x0, 0x0,
- 0x2, 0x0, 0x0, 0x0, 0x4, 0x10, 0x0, 0x0,
-
- /* U+65BC "於" */
- 0x0, 0x5, 0x40, 0x0, 0x0, 0xb3, 0x0, 0x0,
- 0x0, 0x0, 0xe1, 0x0, 0x1, 0xe4, 0x0, 0x0,
- 0x0, 0x0, 0x50, 0x46, 0x5, 0x98, 0x0, 0x0,
- 0x6, 0x7e, 0x66, 0x65, 0xa, 0x46, 0x40, 0x0,
- 0x0, 0xe, 0x0, 0x0, 0x1c, 0x0, 0xc0, 0x0,
- 0x0, 0xe, 0x0, 0x50, 0x74, 0x0, 0x7b, 0x0,
- 0x0, 0xe, 0x66, 0xe4, 0x81, 0x0, 0xc, 0xc1,
- 0x0, 0xd, 0x0, 0xd6, 0x2, 0xa9, 0x11, 0x30,
- 0x0, 0x1b, 0x0, 0xd0, 0x0, 0x9, 0x80, 0x0,
- 0x0, 0x49, 0x0, 0xd0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x74, 0x1, 0xc0, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0xb0, 0x3, 0xa0, 0x18, 0xb7, 0x10, 0x0,
- 0x2, 0x63, 0x5a, 0x60, 0x0, 0x2c, 0xe1, 0x0,
- 0x7, 0x0, 0x8a, 0x0, 0x0, 0x0, 0x92, 0x0,
- 0x11, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+65BD "施" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x8, 0x0, 0x0, 0xa, 0x50, 0x0, 0x0,
- 0x0, 0x6, 0xb0, 0x0, 0xe, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x80, 0x30, 0x6b, 0x66, 0x69, 0xb0,
- 0x5, 0x6a, 0x66, 0x96, 0xb0, 0x30, 0x0, 0x0,
- 0x0, 0x1b, 0x0, 0x7, 0x20, 0xd3, 0x0, 0x0,
- 0x0, 0x1b, 0x2, 0x22, 0xb1, 0xd0, 0x6, 0x0,
- 0x0, 0x1d, 0x6b, 0x60, 0xd0, 0xd6, 0x6e, 0x10,
- 0x0, 0x2a, 0x8, 0x42, 0xe7, 0xe0, 0xd, 0x0,
- 0x0, 0x39, 0x9, 0x65, 0xd0, 0xd0, 0xd, 0x0,
- 0x0, 0x57, 0x9, 0x30, 0xd0, 0xd0, 0xd, 0x0,
- 0x0, 0x83, 0xa, 0x20, 0xd0, 0xd2, 0xb8, 0x0,
- 0x0, 0xa0, 0xb, 0x10, 0xd0, 0xd0, 0x0, 0x50,
- 0x3, 0x55, 0x5e, 0x0, 0xd0, 0x10, 0x0, 0xa0,
- 0x6, 0x1, 0xc5, 0x0, 0xad, 0xcc, 0xcd, 0xb0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+65C1 "旁" */
- 0x0, 0x0, 0x0, 0x2a, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x7, 0x50, 0x0, 0x93, 0x0,
- 0x0, 0x47, 0x69, 0x66, 0x66, 0xa6, 0x64, 0x0,
- 0x0, 0x0, 0x9, 0x70, 0x4, 0xb0, 0x0, 0x0,
- 0x0, 0x40, 0x2, 0x80, 0x7, 0x0, 0x4, 0x0,
- 0x0, 0xb6, 0x66, 0x68, 0x66, 0x66, 0x6f, 0x40,
- 0x7, 0x80, 0x0, 0x8, 0x80, 0x0, 0x52, 0x0,
- 0x3, 0x66, 0x66, 0x67, 0xd6, 0x66, 0x6c, 0x90,
- 0x0, 0x10, 0x0, 0xd2, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xf6, 0x66, 0x6a, 0x60, 0x0,
- 0x0, 0x0, 0x5, 0x90, 0x0, 0xb, 0x30, 0x0,
- 0x0, 0x0, 0xc, 0x20, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0x0, 0xa4, 0x0, 0x31, 0x4c, 0x0, 0x0,
- 0x0, 0x48, 0x20, 0x0, 0x1a, 0xf5, 0x0, 0x0,
- 0x4, 0x10, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0,
-
- /* U+65C5 "旅" */
- 0x0, 0x8, 0x10, 0x0, 0x1b, 0x20, 0x0, 0x0,
- 0x0, 0x3, 0xe0, 0x0, 0x5b, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa0, 0x10, 0x93, 0x0, 0x5, 0x10,
- 0x6, 0x68, 0x66, 0xa6, 0xb6, 0x66, 0x68, 0x50,
- 0x0, 0x2b, 0x0, 0x5, 0x30, 0x0, 0x51, 0x0,
- 0x0, 0x2b, 0x0, 0x44, 0x10, 0x5a, 0x94, 0x0,
- 0x0, 0x2c, 0x66, 0xd0, 0xd5, 0x60, 0x0, 0x0,
- 0x0, 0x39, 0x1, 0xb0, 0xd0, 0x60, 0xa, 0x10,
- 0x0, 0x58, 0x2, 0xa0, 0xd0, 0x63, 0x94, 0x0,
- 0x0, 0x75, 0x2, 0x90, 0xd0, 0x46, 0x0, 0x0,
- 0x0, 0xb1, 0x4, 0x80, 0xd0, 0xb, 0x0, 0x0,
- 0x1, 0x90, 0x6, 0x60, 0xd0, 0x7, 0x90, 0x0,
- 0x7, 0x14, 0x9d, 0x10, 0xd5, 0x70, 0xbb, 0x30,
- 0x14, 0x0, 0x63, 0x0, 0xe7, 0x0, 0x9, 0xb1,
- 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
-
- /* U+65CF "族" */
- 0x0, 0x16, 0x0, 0x0, 0x59, 0x0, 0x0, 0x0,
- 0x0, 0x9, 0x60, 0x0, 0xa5, 0x0, 0x0, 0x0,
- 0x0, 0x3, 0x40, 0x40, 0xd2, 0x22, 0x28, 0x50,
- 0x5, 0x6c, 0x66, 0x76, 0x99, 0x44, 0x44, 0x30,
- 0x0, 0xd, 0x0, 0x8, 0x7a, 0x0, 0x2, 0x0,
- 0x0, 0xe, 0x6a, 0x51, 0xb6, 0x95, 0x6a, 0x10,
- 0x0, 0xc, 0xc, 0x15, 0x40, 0xc0, 0x0, 0x0,
- 0x0, 0x1c, 0xc, 0x5, 0x0, 0xc0, 0x0, 0x0,
- 0x0, 0x2a, 0xc, 0x46, 0x66, 0xe6, 0x68, 0xd1,
- 0x0, 0x58, 0xc, 0x11, 0x1, 0xc5, 0x0, 0x0,
- 0x0, 0x83, 0xd, 0x0, 0x6, 0x76, 0x20, 0x0,
- 0x0, 0xb0, 0xd, 0x0, 0x1c, 0x1, 0xb0, 0x0,
- 0x4, 0x45, 0xc9, 0x1, 0xb2, 0x0, 0x6b, 0x10,
- 0x6, 0x0, 0x51, 0x58, 0x10, 0x0, 0x8, 0xe3,
- 0x0, 0x0, 0x3, 0x10, 0x0, 0x0, 0x0, 0x10,
-
- /* U+65E2 "既" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x0,
- 0xc6, 0x66, 0xe1, 0x66, 0x6c, 0x67, 0x80, 0xd,
- 0x0, 0xd, 0x6, 0x20, 0xd0, 0x0, 0x0, 0xd0,
- 0x0, 0xd0, 0xb3, 0x1c, 0x0, 0x0, 0xd, 0x66,
- 0x6d, 0xc, 0x2, 0xb0, 0x0, 0x0, 0xd0, 0x0,
- 0xd0, 0xc0, 0x49, 0x0, 0x10, 0xd, 0x66, 0x6d,
- 0x2d, 0x5a, 0xa5, 0x7a, 0x10, 0xd0, 0x0, 0x80,
- 0x0, 0xa8, 0x0, 0x0, 0xd, 0x1, 0x0, 0x0,
- 0xd, 0xc2, 0x0, 0x0, 0xd0, 0x9, 0x20, 0x4,
- 0x8c, 0x0, 0x0, 0xd, 0x0, 0x6e, 0x10, 0xc1,
- 0xc0, 0x3, 0x0, 0xd5, 0x92, 0xb4, 0x76, 0xc,
- 0x0, 0x60, 0x1f, 0x90, 0x1, 0x57, 0x0, 0xc0,
- 0xa, 0x0, 0x30, 0x0, 0x65, 0x0, 0x8, 0xcb,
- 0xe3, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+65E5 "日" */
- 0x20, 0x0, 0x0, 0x0, 0x30, 0xd6, 0x66, 0x66,
- 0x66, 0xd5, 0xd1, 0x0, 0x0, 0x0, 0xb3, 0xc1,
- 0x0, 0x0, 0x0, 0xb3, 0xc1, 0x0, 0x0, 0x0,
- 0xb3, 0xc1, 0x0, 0x0, 0x0, 0xb3, 0xc6, 0x66,
- 0x66, 0x66, 0xc3, 0xc1, 0x0, 0x0, 0x0, 0xb3,
- 0xc1, 0x0, 0x0, 0x0, 0xb3, 0xc1, 0x0, 0x0,
- 0x0, 0xb3, 0xc1, 0x0, 0x0, 0x0, 0xb3, 0xc1,
- 0x0, 0x0, 0x0, 0xb3, 0xd6, 0x66, 0x66, 0x66,
- 0xc3, 0xc0, 0x0, 0x0, 0x0, 0x92, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+65E6 "旦" */
- 0x0, 0x0, 0x96, 0x66, 0x66, 0x6b, 0x20, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0x0, 0xe6, 0x66, 0x66, 0x6e, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0x0, 0xf6, 0x66, 0x66, 0x6e, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0xb, 0x0, 0x0,
- 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0x30,
- 0x7, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x50,
-
- /* U+65E9 "早" */
- 0x0, 0x0, 0x30, 0x0, 0x0, 0x4, 0x10, 0x0,
- 0x0, 0x0, 0xe6, 0x66, 0x66, 0x6c, 0x60, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0xa, 0x30, 0x0,
- 0x0, 0x0, 0xe6, 0x66, 0x66, 0x6c, 0x30, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0xa, 0x30, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0xa, 0x30, 0x0,
- 0x0, 0x0, 0xe6, 0x66, 0x66, 0x6c, 0x30, 0x0,
- 0x0, 0x1, 0xa0, 0x0, 0xe0, 0x7, 0x10, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x1, 0x0,
- 0x6, 0x76, 0x66, 0x66, 0xe6, 0x66, 0x6c, 0xa0,
- 0x0, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1, 0xe0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1, 0xe0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1, 0xe0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0,
-
- /* U+65F6 "时" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xc2, 0x0, 0x0, 0x0,
- 0x20, 0x0, 0x0, 0xe0, 0x0, 0xc6, 0x67, 0xe0,
- 0x0, 0x0, 0xe0, 0x0, 0xc1, 0x2, 0xc0, 0x0,
- 0x0, 0xe0, 0x81, 0xc1, 0x2, 0xc7, 0x66, 0x66,
- 0xe6, 0x63, 0xc1, 0x2, 0xc0, 0x0, 0x0, 0xe0,
- 0x0, 0xc6, 0x67, 0xc0, 0x82, 0x0, 0xe0, 0x0,
- 0xc1, 0x2, 0xc0, 0x2e, 0x10, 0xe0, 0x0, 0xc1,
- 0x2, 0xc0, 0xb, 0x30, 0xe0, 0x0, 0xc1, 0x2,
- 0xc0, 0x1, 0x0, 0xe0, 0x0, 0xc6, 0x67, 0xc0,
- 0x0, 0x0, 0xe0, 0x0, 0xd1, 0x2, 0xb0, 0x0,
- 0x0, 0xe0, 0x0, 0x70, 0x0, 0x0, 0x2, 0x34,
- 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4e, 0x90,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0,
-
- /* U+6607 "昇" */
- 0x0, 0x8, 0x66, 0x66, 0x66, 0x66, 0xb2, 0x0,
- 0x0, 0xd1, 0x0, 0x0, 0x0, 0xe, 0x10, 0x0,
- 0xd, 0x10, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0xc6, 0x66, 0x66, 0x66, 0x6e, 0x0, 0x0, 0xc,
- 0x10, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0xc6,
- 0x66, 0x76, 0x66, 0x6c, 0x0, 0x0, 0x1, 0x15,
- 0xcd, 0x10, 0xa3, 0x0, 0x0, 0x3, 0x66, 0xe1,
- 0x0, 0xd, 0x10, 0x0, 0x0, 0x0, 0xe, 0x0,
- 0x0, 0xd1, 0x3, 0x0, 0x66, 0x66, 0xe6, 0x66,
- 0x6e, 0x66, 0xd7, 0x0, 0x0, 0x1d, 0x0, 0x0,
- 0xc1, 0x0, 0x0, 0x0, 0x6, 0x70, 0x0, 0xd,
- 0x10, 0x0, 0x0, 0x2, 0xc0, 0x0, 0x0, 0xd1,
- 0x0, 0x0, 0x5, 0x91, 0x0, 0x0, 0xd, 0x10,
- 0x0, 0x5, 0x20, 0x0, 0x0, 0x0, 0x40, 0x0,
- 0x0,
-
- /* U+660E "明" */
- 0x0, 0x0, 0x0, 0x74, 0x44, 0x4a, 0x18, 0x66,
- 0x6a, 0xc, 0x32, 0x22, 0xd0, 0xd0, 0x1, 0xc0,
- 0xc1, 0x0, 0xd, 0xd, 0x0, 0x1b, 0xc, 0x10,
- 0x0, 0xd0, 0xd0, 0x1, 0xb0, 0xc7, 0x66, 0x6d,
- 0xd, 0x66, 0x6b, 0xc, 0x10, 0x0, 0xd0, 0xd0,
- 0x1, 0xb0, 0xc0, 0x0, 0xd, 0xd, 0x0, 0x1b,
- 0xd, 0x0, 0x0, 0xd0, 0xd6, 0x66, 0xb0, 0xe5,
- 0x55, 0x5d, 0xd, 0x0, 0x1a, 0x1d, 0x0, 0x0,
- 0xd0, 0x60, 0x0, 0x6, 0x70, 0x0, 0xd, 0x0,
- 0x0, 0x1, 0xc0, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0x92, 0x0, 0x43, 0x4c, 0x0, 0x2, 0x71, 0x0,
- 0x0, 0x5f, 0x70, 0x0, 0x20, 0x0, 0x0, 0x0,
- 0x10, 0x0,
-
- /* U+6613 "易" */
- 0x0, 0x9, 0x66, 0x66, 0x66, 0xc1, 0x0, 0x0,
- 0xd, 0x10, 0x0, 0x0, 0xe0, 0x0, 0x0, 0xc,
- 0x10, 0x0, 0x0, 0xe0, 0x0, 0x0, 0xc, 0x66,
- 0x66, 0x66, 0xe0, 0x0, 0x0, 0xd, 0x10, 0x0,
- 0x0, 0xe0, 0x0, 0x0, 0xd, 0x96, 0x66, 0x66,
- 0xe0, 0x0, 0x0, 0x2, 0xe4, 0x0, 0x0, 0x10,
- 0x0, 0x0, 0xa, 0xb6, 0x86, 0x68, 0x67, 0xd0,
- 0x0, 0x68, 0x6, 0xa0, 0x5a, 0x4, 0xa0, 0x5,
- 0x50, 0x1d, 0x10, 0xc3, 0x7, 0x70, 0x11, 0x1,
- 0xb3, 0x5, 0xa0, 0xa, 0x40, 0x0, 0x58, 0x10,
- 0x3c, 0x10, 0xd, 0x10, 0x4, 0x20, 0x5, 0xb1,
- 0x20, 0x3c, 0x0, 0x0, 0x3, 0x74, 0x0, 0x2b,
- 0xf5, 0x0, 0x0, 0x31, 0x0, 0x0, 0x1, 0x20,
- 0x0,
-
- /* U+6614 "昔" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x7, 0x70, 0x1, 0xc1, 0x0, 0x0,
- 0x0, 0x0, 0x7, 0x60, 0x1, 0xd0, 0x1, 0x0,
- 0x0, 0x46, 0x6a, 0xa6, 0x66, 0xe6, 0x8e, 0x20,
- 0x0, 0x11, 0x7, 0x60, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0x0, 0x7, 0x60, 0x0, 0xd0, 0x0, 0x10,
- 0x5, 0x66, 0x6a, 0xa6, 0x66, 0xe6, 0x6a, 0xd1,
- 0x2, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0xa6, 0x66, 0x66, 0x6a, 0x70, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0x9, 0x50, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0x9, 0x40, 0x0,
- 0x0, 0x0, 0xe6, 0x66, 0x66, 0x6c, 0x40, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0x9, 0x40, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0x9, 0x40, 0x0,
- 0x0, 0x1, 0xe6, 0x66, 0x66, 0x6c, 0x40, 0x0,
- 0x0, 0x0, 0x20, 0x0, 0x0, 0x2, 0x0, 0x0,
-
- /* U+661F "星" */
- 0x0, 0x9, 0x66, 0x66, 0x66, 0x6b, 0x20, 0x0,
- 0x0, 0xb2, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0xb, 0x20, 0x0, 0x0, 0xe, 0x0, 0x0, 0x0,
- 0xb7, 0x66, 0x66, 0x66, 0xe0, 0x0, 0x0, 0xb,
- 0x20, 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0xb7,
- 0x66, 0x66, 0x66, 0xe0, 0x0, 0x0, 0x6, 0x30,
- 0xd, 0x30, 0x1, 0x0, 0x0, 0x0, 0xc5, 0x0,
- 0xe0, 0x0, 0x85, 0x0, 0x0, 0x3b, 0x66, 0x6e,
- 0x66, 0x66, 0x50, 0x0, 0xa, 0x10, 0x0, 0xe0,
- 0x0, 0x10, 0x0, 0x6, 0x24, 0x66, 0x6e, 0x66,
- 0xac, 0x0, 0x0, 0x10, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x34, 0x1, 0x86, 0x66, 0x66, 0xa6, 0x66, 0x6a,
- 0xa1,
-
- /* U+6620 "映" */
- 0x0, 0x0, 0x0, 0x0, 0x84, 0x0, 0x0, 0x0,
- 0x1, 0x0, 0x0, 0x93, 0x0, 0x0, 0xa6, 0x6d,
- 0x41, 0x10, 0x93, 0x3, 0x0, 0xb2, 0xd, 0x2,
- 0xc6, 0xc8, 0x6d, 0x30, 0xa2, 0xd, 0x2, 0xa0,
- 0x93, 0xc, 0x0, 0xa2, 0xd, 0x2, 0xa0, 0xa2,
- 0xc, 0x0, 0xa7, 0x6e, 0x2, 0xa0, 0xb1, 0xc,
- 0x0, 0xa2, 0xd, 0x2, 0xa0, 0xc0, 0xc, 0x63,
- 0xa2, 0xd, 0x36, 0x66, 0xd8, 0x66, 0x64, 0xa2,
- 0xd, 0x0, 0x3, 0xa5, 0x0, 0x0, 0xa7, 0x6e,
- 0x0, 0xa, 0x32, 0x60, 0x0, 0xb2, 0xa, 0x0,
- 0x49, 0x0, 0x92, 0x0, 0x71, 0x0, 0x5, 0x90,
- 0x0, 0x1d, 0x50, 0x0, 0x2, 0x75, 0x0, 0x0,
- 0x3, 0xe7, 0x0, 0x14, 0x0, 0x0, 0x0, 0x0,
- 0x10,
-
- /* U+6625 "春" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x5b, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x7b, 0x0, 0x0, 0x55, 0x0,
- 0x3, 0x66, 0x66, 0xc9, 0x66, 0x66, 0x65, 0x0,
- 0x0, 0x0, 0x0, 0xd1, 0x0, 0x8, 0x10, 0x0,
- 0x0, 0x56, 0x69, 0xc6, 0x66, 0x66, 0x30, 0x0,
- 0x26, 0x66, 0x6d, 0x86, 0x66, 0x66, 0x6d, 0x60,
- 0x0, 0x0, 0x96, 0x0, 0x0, 0x70, 0x0, 0x0,
- 0x0, 0x7, 0x90, 0x0, 0x0, 0x48, 0x0, 0x0,
- 0x0, 0x85, 0xb7, 0x66, 0x66, 0xf7, 0xb4, 0x0,
- 0x36, 0x10, 0xb3, 0x0, 0x0, 0xe0, 0x2c, 0xa1,
- 0x0, 0x0, 0xa8, 0x66, 0x66, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0xa3, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0xa3, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0xb8, 0x66, 0x66, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0x40, 0x0, 0x0, 0x40, 0x0, 0x0,
-
- /* U+6628 "昨" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x97, 0x0, 0x0, 0x0, 0x10,
- 0x0, 0x20, 0xd, 0x30, 0x0, 0x0, 0xc, 0x66,
- 0x7d, 0x2, 0xc0, 0x0, 0x4, 0x0, 0xb1, 0x2,
- 0xb0, 0x88, 0xa6, 0x66, 0xa7, 0xb, 0x10, 0x2b,
- 0xa, 0xe, 0x0, 0x0, 0x0, 0xb1, 0x2, 0xb5,
- 0x20, 0xe0, 0x0, 0x0, 0xb, 0x66, 0x7b, 0x40,
- 0xe, 0x66, 0x9a, 0x0, 0xb1, 0x2, 0xb0, 0x0,
- 0xe0, 0x0, 0x0, 0xb, 0x10, 0x2b, 0x0, 0xe,
- 0x0, 0x0, 0x0, 0xb1, 0x2, 0xb0, 0x0, 0xe4,
- 0x45, 0xd3, 0xb, 0x10, 0x2b, 0x0, 0xe, 0x11,
- 0x11, 0x10, 0xb6, 0x67, 0xb0, 0x0, 0xe0, 0x0,
- 0x0, 0xb, 0x10, 0x13, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0,
-
- /* U+662F "是" */
- 0x0, 0x0, 0x96, 0x66, 0x66, 0xa5, 0x0, 0x0,
- 0x0, 0xd, 0x10, 0x0, 0xb, 0x30, 0x0, 0x0,
- 0x0, 0xc1, 0x0, 0x0, 0xb3, 0x0, 0x0, 0x0,
- 0xc, 0x66, 0x66, 0x6c, 0x30, 0x0, 0x0, 0x0,
- 0xc1, 0x0, 0x0, 0xb3, 0x0, 0x0, 0x0, 0xd,
- 0x66, 0x66, 0x6c, 0x30, 0x0, 0x0, 0x0, 0x40,
- 0x0, 0x0, 0x20, 0x35, 0x0, 0x76, 0x66, 0x66,
- 0xb6, 0x66, 0x68, 0x81, 0x0, 0x1, 0xd2, 0xc,
- 0x20, 0x0, 0x0, 0x0, 0x0, 0x4c, 0x0, 0xc7,
- 0x66, 0x9c, 0x10, 0x0, 0xa, 0x90, 0xc, 0x20,
- 0x0, 0x0, 0x0, 0x2, 0xb0, 0x82, 0xc2, 0x0,
- 0x0, 0x0, 0x0, 0xb1, 0x0, 0x9e, 0x73, 0x21,
- 0x12, 0x20, 0x82, 0x0, 0x0, 0x17, 0xbd, 0xff,
- 0xd2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+663C "昼" */
- 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x50, 0x0,
- 0x0, 0x0, 0xe6, 0x66, 0x66, 0x66, 0xd1, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0x0, 0xc0, 0x0,
- 0x0, 0x0, 0xe6, 0x66, 0x66, 0x86, 0xc0, 0x0,
- 0x0, 0x3, 0x90, 0x0, 0x0, 0x71, 0x0, 0x0,
- 0x0, 0x7, 0x50, 0x0, 0x0, 0xa, 0x10, 0x0,
- 0x0, 0xc, 0xa6, 0x66, 0x66, 0x6e, 0xc5, 0x0,
- 0x0, 0x65, 0xa1, 0x0, 0x0, 0x1b, 0x1c, 0xd4,
- 0x1, 0x80, 0xa7, 0x66, 0x66, 0x6b, 0x0, 0x40,
- 0x5, 0x0, 0xa1, 0x0, 0x0, 0x1b, 0x0, 0x0,
- 0x0, 0x0, 0xa1, 0x0, 0x0, 0x1b, 0x0, 0x0,
- 0x0, 0x0, 0xb6, 0x66, 0x66, 0x6a, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x20,
- 0x0, 0x76, 0x66, 0x66, 0x66, 0x66, 0x67, 0x50,
-
- /* U+6642 "時" */
- 0x0, 0x0, 0x0, 0x0, 0x82, 0x0, 0x0, 0x52,
- 0x26, 0x10, 0x0, 0xc0, 0x0, 0x0, 0xd4, 0x4c,
- 0x40, 0x0, 0xc0, 0x6, 0x0, 0xd0, 0xb, 0x14,
- 0x66, 0xd6, 0x66, 0x20, 0xd0, 0xb, 0x10, 0x0,
- 0xc0, 0x0, 0x0, 0xd0, 0xb, 0x44, 0x44, 0xd5,
- 0x45, 0xc2, 0xd6, 0x6d, 0x21, 0x11, 0x11, 0x83,
- 0x10, 0xd0, 0xb, 0x10, 0x0, 0x0, 0xb2, 0x50,
- 0xd0, 0xb, 0x67, 0x66, 0x66, 0xd6, 0x74, 0xd0,
- 0xb, 0x10, 0x57, 0x0, 0xb1, 0x0, 0xd6, 0x6d,
- 0x10, 0xa, 0x50, 0xb1, 0x0, 0xd0, 0xb, 0x10,
- 0x1, 0x20, 0xb1, 0x0, 0x60, 0x1, 0x0, 0x0,
- 0x0, 0xc1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x7c,
- 0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x10,
- 0x0,
-
- /* U+6669 "晩" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa9, 0x0, 0x0, 0x0, 0x30,
- 0x4, 0x0, 0x1e, 0x20, 0x11, 0x0, 0xd, 0x66,
- 0xe4, 0xa, 0x96, 0x6b, 0xa0, 0x0, 0xd0, 0xd,
- 0x4, 0xa0, 0x1, 0x90, 0x0, 0xd, 0x0, 0xd1,
- 0xb9, 0x66, 0xa6, 0x6b, 0x10, 0xd0, 0xd, 0x52,
- 0xa0, 0xd, 0x0, 0xd0, 0xd, 0x66, 0xe0, 0x2a,
- 0x0, 0xd0, 0xd, 0x0, 0xd0, 0xd, 0x2, 0xc6,
- 0x6e, 0x66, 0xd0, 0xd, 0x0, 0xd0, 0x27, 0xf,
- 0x49, 0x4, 0x0, 0xd0, 0xd, 0x0, 0x1, 0xf3,
- 0x90, 0x0, 0xd, 0x66, 0xe0, 0x0, 0x6a, 0x39,
- 0x0, 0x10, 0xd0, 0xa, 0x0, 0xd, 0x33, 0x90,
- 0x5, 0x4, 0x0, 0x0, 0xb, 0x60, 0x29, 0x0,
- 0x90, 0x0, 0x0, 0x48, 0x20, 0x1, 0xdb, 0xbd,
- 0x10, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+666E "普" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x9, 0x30, 0x0, 0xd2, 0x0, 0x0,
- 0x0, 0x0, 0x2, 0xf1, 0x7, 0x50, 0x2, 0x0,
- 0x0, 0x66, 0x66, 0xd6, 0x6b, 0x66, 0x8d, 0x30,
- 0x0, 0x3, 0x0, 0xe0, 0xe, 0x0, 0x70, 0x0,
- 0x0, 0x6, 0x70, 0xe0, 0xe, 0x5, 0xb1, 0x0,
- 0x0, 0x0, 0xf0, 0xe0, 0xe, 0xa, 0x10, 0x0,
- 0x0, 0x0, 0x30, 0xe0, 0xe, 0x22, 0x7, 0x70,
- 0x17, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x50,
- 0x0, 0x0, 0xa6, 0x66, 0x66, 0x6c, 0x20, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0x0, 0xe6, 0x66, 0x66, 0x6e, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0x0, 0xe6, 0x66, 0x66, 0x6f, 0x0, 0x0,
- 0x0, 0x0, 0x50, 0x0, 0x0, 0x4, 0x0, 0x0,
-
- /* U+666F "景" */
- 0x0, 0x0, 0x96, 0x66, 0x66, 0x69, 0x60, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0x8, 0x60, 0x0,
- 0x0, 0x0, 0xe6, 0x66, 0x66, 0x6b, 0x60, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0x8, 0x60, 0x0,
- 0x0, 0x1, 0xd6, 0x69, 0x96, 0x6a, 0x40, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xc2, 0x0, 0x7, 0x50,
- 0x6, 0x76, 0x66, 0x66, 0x66, 0x66, 0x66, 0x50,
- 0x0, 0x0, 0xb6, 0x66, 0x66, 0x6d, 0x30, 0x0,
- 0x0, 0x0, 0xc2, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x0, 0xc7, 0x66, 0x86, 0x6e, 0x0, 0x0,
- 0x0, 0x0, 0x34, 0x0, 0xe0, 0x12, 0x0, 0x0,
- 0x0, 0x0, 0x9c, 0x20, 0xe0, 0x39, 0x30, 0x0,
- 0x0, 0x2a, 0x50, 0x0, 0xe0, 0x0, 0xbb, 0x0,
- 0x5, 0x50, 0x0, 0x6b, 0xc0, 0x0, 0xa, 0x50,
- 0x0, 0x0, 0x0, 0x5, 0x10, 0x0, 0x0, 0x0,
-
- /* U+6674 "晴" */
- 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb5, 0x0, 0x0, 0x86, 0x6a,
- 0x36, 0x66, 0xc7, 0x68, 0xb0, 0xc0, 0xd, 0x0,
- 0x0, 0xb3, 0x0, 0x0, 0xc0, 0xd, 0x0, 0x56,
- 0xc7, 0x6c, 0x50, 0xc0, 0xd, 0x0, 0x0, 0xb3,
- 0x0, 0x0, 0xc1, 0x1d, 0x36, 0x66, 0xc7, 0x66,
- 0xc6, 0xc5, 0x5d, 0x0, 0x10, 0x0, 0x2, 0x0,
- 0xc0, 0xd, 0x0, 0xd6, 0x66, 0x6e, 0x20, 0xc0,
- 0xd, 0x0, 0xe6, 0x66, 0x6e, 0x0, 0xc0, 0xd,
- 0x0, 0xd0, 0x0, 0xd, 0x0, 0xc6, 0x6e, 0x0,
- 0xd6, 0x66, 0x6e, 0x0, 0xd0, 0xa, 0x0, 0xd0,
- 0x0, 0xd, 0x0, 0x20, 0x0, 0x0, 0xd0, 0x0,
- 0xd, 0x0, 0x0, 0x0, 0x0, 0xd0, 0x5, 0xae,
- 0x0, 0x0, 0x0, 0x0, 0x30, 0x0, 0x32, 0x0,
-
- /* U+667A "智" */
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x3c, 0x66, 0x8b, 0x8, 0x66, 0x6b, 0x10, 0x9,
- 0x12, 0xa0, 0x0, 0xd0, 0x0, 0xd0, 0x2, 0x30,
- 0x48, 0x3, 0xd, 0x0, 0xd, 0x0, 0x76, 0x69,
- 0xa6, 0xa4, 0xd0, 0x0, 0xd0, 0x0, 0x0, 0xb8,
- 0x30, 0xd, 0x0, 0xd, 0x0, 0x0, 0x4a, 0x9,
- 0xb0, 0xd6, 0x66, 0xd0, 0x0, 0x3a, 0x10, 0xa,
- 0x15, 0x0, 0x3, 0x0, 0x55, 0xc, 0x66, 0x66,
- 0x66, 0xd4, 0x0, 0x0, 0x0, 0xc0, 0x0, 0x0,
- 0xd, 0x0, 0x0, 0x0, 0xc, 0x66, 0x66, 0x66,
- 0xe0, 0x0, 0x0, 0x0, 0xc0, 0x0, 0x0, 0xd,
- 0x0, 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0xd0,
- 0x0, 0x0, 0x0, 0xd6, 0x66, 0x66, 0x6e, 0x0,
- 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x30, 0x0,
-
- /* U+6687 "暇" */
- 0x0, 0x0, 0x21, 0x14, 0x12, 0x22, 0x60, 0x8,
- 0x66, 0xa5, 0x95, 0xc3, 0x44, 0x4d, 0x10, 0xc0,
- 0xc, 0x46, 0xb, 0x0, 0x0, 0xc0, 0xc, 0x0,
- 0xc4, 0x60, 0xb0, 0x0, 0xc, 0x0, 0xc0, 0xc,
- 0x4a, 0x6d, 0x16, 0x66, 0xd0, 0xc, 0x66, 0xc4,
- 0x60, 0x30, 0x0, 0x1, 0x0, 0xc0, 0xc, 0x46,
- 0x2, 0x23, 0x33, 0x81, 0xc, 0x0, 0xc4, 0xa6,
- 0x72, 0x73, 0x3e, 0x10, 0xc0, 0xc, 0x46, 0x0,
- 0x6, 0x4, 0x90, 0xc, 0x66, 0xc4, 0xa6, 0xb2,
- 0x44, 0xb3, 0x0, 0xc0, 0x8, 0x46, 0x0, 0x0,
- 0xca, 0x0, 0x3, 0x0, 0x4, 0x60, 0x0, 0x2c,
- 0xb0, 0x0, 0x0, 0x0, 0x56, 0x0, 0x39, 0x6,
- 0xd5, 0x0, 0x0, 0x5, 0x60, 0x54, 0x0, 0x4,
- 0x81, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+6691 "暑" */
- 0x0, 0x0, 0x96, 0x66, 0x66, 0x6b, 0x20, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0x0, 0xe6, 0x66, 0x66, 0x6e, 0x0, 0x0,
- 0x0, 0x0, 0xe6, 0x66, 0x66, 0x6e, 0x10, 0x0,
- 0x0, 0x0, 0x80, 0xd, 0x20, 0x6, 0xc9, 0x0,
- 0x0, 0x3, 0x66, 0x6e, 0x6d, 0x2b, 0x90, 0x0,
- 0x0, 0x0, 0x0, 0xe, 0x1, 0xc6, 0x3, 0x0,
- 0x5, 0x76, 0x66, 0x6c, 0x8d, 0x96, 0x6c, 0x80,
- 0x0, 0x0, 0x0, 0x29, 0x91, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x4d, 0xb7, 0x66, 0x6c, 0x70, 0x0,
- 0x1, 0x57, 0x6b, 0x0, 0x0, 0xa, 0x40, 0x0,
- 0x12, 0x0, 0x1d, 0x66, 0x66, 0x6c, 0x40, 0x0,
- 0x0, 0x0, 0x1b, 0x0, 0x0, 0xa, 0x40, 0x0,
- 0x0, 0x0, 0x2d, 0x66, 0x66, 0x6c, 0x40, 0x0,
- 0x0, 0x0, 0x1, 0x0, 0x0, 0x2, 0x0, 0x0,
-
- /* U+6696 "暖" */
- 0x0, 0x0, 0x0, 0x0, 0x1, 0x59, 0x60, 0x30,
- 0x4, 0x24, 0x56, 0x87, 0x66, 0x30, 0xd6, 0x6d,
- 0x41, 0x50, 0x74, 0xe, 0x20, 0xd0, 0xb, 0x10,
- 0x94, 0x29, 0x54, 0x0, 0xd0, 0xb, 0x16, 0x87,
- 0x66, 0x97, 0xb0, 0xd0, 0xb, 0x10, 0x8, 0x50,
- 0x0, 0x0, 0xd5, 0x5d, 0x36, 0x6c, 0x86, 0x66,
- 0xb6, 0xd0, 0xb, 0x12, 0xd, 0x0, 0x0, 0x0,
- 0xd0, 0xb, 0x10, 0x2d, 0x66, 0x6a, 0x30, 0xd0,
- 0xb, 0x10, 0x97, 0x40, 0x4c, 0x10, 0xd6, 0x6d,
- 0x21, 0xa0, 0x82, 0xd2, 0x0, 0xd0, 0x8, 0x1a,
- 0x10, 0x2f, 0x50, 0x0, 0xa0, 0x0, 0x62, 0x1,
- 0xa8, 0xd4, 0x0, 0x0, 0x1, 0x10, 0x58, 0x10,
- 0x3d, 0xd7, 0x0, 0x0, 0x3, 0x10, 0x0, 0x0,
- 0x50,
-
- /* U+6697 "暗" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa2, 0x0, 0x0, 0x51, 0x15,
- 0x0, 0x0, 0x58, 0x3, 0x30, 0xd5, 0x5d, 0x24,
- 0x76, 0x66, 0x76, 0x50, 0xd0, 0xd, 0x0, 0x36,
- 0x0, 0x97, 0x0, 0xd0, 0xd, 0x0, 0xb, 0x40,
- 0xb0, 0x0, 0xd0, 0xd, 0x0, 0x4, 0x14, 0x30,
- 0x72, 0xd6, 0x6e, 0x28, 0x66, 0x66, 0x66, 0x64,
- 0xd0, 0xd, 0x0, 0x30, 0x0, 0x4, 0x0, 0xd0,
- 0xd, 0x0, 0xe6, 0x66, 0x6e, 0x30, 0xd0, 0xd,
- 0x0, 0xd0, 0x0, 0xd, 0x0, 0xd6, 0x6e, 0x0,
- 0xd5, 0x55, 0x5e, 0x0, 0xd0, 0xb, 0x0, 0xd0,
- 0x0, 0xd, 0x0, 0x40, 0x0, 0x0, 0xd6, 0x66,
- 0x6e, 0x0, 0x0, 0x0, 0x0, 0xd0, 0x0, 0xc,
- 0x10, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
-
- /* U+66C7 "曇" */
- 0x0, 0x11, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0,
- 0x4a, 0x66, 0x66, 0x66, 0xd3, 0x0, 0x0, 0x47,
- 0x0, 0x0, 0x0, 0xc0, 0x0, 0x0, 0x4a, 0x66,
- 0x66, 0x66, 0xd0, 0x0, 0x0, 0x4a, 0x66, 0x66,
- 0x66, 0xc0, 0x0, 0x0, 0x33, 0x22, 0x22, 0x22,
- 0x84, 0x0, 0x2, 0x33, 0x33, 0xc4, 0x33, 0x33,
- 0x21, 0xa, 0x66, 0x66, 0xd6, 0x66, 0x66, 0xc8,
- 0x77, 0x46, 0x60, 0xb1, 0x36, 0x61, 0x50, 0x0,
- 0x46, 0x60, 0x80, 0x36, 0x60, 0x0, 0x0, 0x37,
- 0x66, 0x66, 0x68, 0xa0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2, 0xa0, 0x57, 0x66, 0x6a, 0xa6,
- 0x66, 0x66, 0x62, 0x0, 0x0, 0x59, 0x20, 0x7,
- 0x40, 0x0, 0x0, 0x2b, 0xa6, 0x67, 0x66, 0xd5,
- 0x0, 0x0, 0x18, 0x53, 0x10, 0x0, 0x13, 0x0,
-
- /* U+66DC "曜" */
- 0x0, 0x0, 0x1, 0x11, 0x50, 0x11, 0x51, 0x96,
- 0x6b, 0x38, 0x55, 0xd3, 0x75, 0xc3, 0xd0, 0xd,
- 0x3, 0xc0, 0xc0, 0x97, 0xb1, 0xc0, 0xd, 0x0,
- 0x41, 0xc0, 0x5, 0xb1, 0xc0, 0xd, 0x5, 0x75,
- 0xc2, 0x86, 0xc1, 0xc6, 0x6d, 0xa5, 0x30, 0x79,
- 0x30, 0x70, 0xc0, 0xd, 0x0, 0xe5, 0xb, 0x40,
- 0x0, 0xc0, 0xd, 0x6, 0xa6, 0x6b, 0x86, 0xc2,
- 0xc0, 0xd, 0x1e, 0x30, 0xb, 0x1, 0x0, 0xc6,
- 0x6d, 0x6a, 0x75, 0x5d, 0x5a, 0x60, 0xd0, 0xd,
- 0xa, 0x30, 0xb, 0x1, 0x0, 0xc0, 0x2, 0xa,
- 0x76, 0x6d, 0x68, 0x60, 0x10, 0x0, 0xa, 0x30,
- 0xb, 0x0, 0x40, 0x0, 0x0, 0xa, 0x76, 0x68,
- 0x66, 0x94, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+66F2 "曲" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
- 0xc0, 0xc, 0x20, 0x0, 0x0, 0x1, 0xc0, 0xd,
- 0x0, 0x0, 0x0, 0x1, 0xc0, 0xd, 0x0, 0x0,
- 0xa7, 0x66, 0xd6, 0x6e, 0x66, 0xc5, 0xb3, 0x1,
- 0xc0, 0xd, 0x0, 0xc2, 0xb3, 0x1, 0xc0, 0xd,
- 0x0, 0xc2, 0xa3, 0x1, 0xc0, 0xd, 0x0, 0xc2,
- 0xa8, 0x66, 0xd6, 0x6e, 0x66, 0xd2, 0xa3, 0x1,
- 0xc0, 0xd, 0x0, 0xc2, 0xa3, 0x1, 0xc0, 0xd,
- 0x0, 0xc2, 0xa3, 0x1, 0xc0, 0xd, 0x0, 0xc2,
- 0xb3, 0x1, 0xc0, 0xd, 0x0, 0xc2, 0xb8, 0x66,
- 0xc6, 0x6c, 0x66, 0xd2, 0xb3, 0x0, 0x0, 0x0,
- 0x0, 0xa1, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+66F4 "更" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x10,
- 0x5, 0x76, 0x66, 0x67, 0xb6, 0x66, 0x68, 0x50,
- 0x0, 0x0, 0x0, 0x2, 0xb0, 0x0, 0x10, 0x0,
- 0x0, 0xd, 0x66, 0x67, 0xd6, 0x66, 0xf2, 0x0,
- 0x0, 0xe, 0x0, 0x2, 0xb0, 0x0, 0xe0, 0x0,
- 0x0, 0xe, 0x66, 0x67, 0xd6, 0x66, 0xe0, 0x0,
- 0x0, 0xe, 0x0, 0x2, 0xb0, 0x0, 0xe0, 0x0,
- 0x0, 0xe, 0x0, 0x3, 0xa0, 0x0, 0xe0, 0x0,
- 0x0, 0xe, 0x66, 0x69, 0xb6, 0x66, 0xd0, 0x0,
- 0x0, 0x0, 0x12, 0x8, 0x50, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x6, 0x3d, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xcb, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2a, 0x75, 0xc8, 0x42, 0x10, 0x10,
- 0x1, 0x57, 0x71, 0x0, 0x5, 0x9c, 0xef, 0x80,
- 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+66F8 "書" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x36, 0x66, 0xe6, 0x66, 0x6b, 0x10, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0xd1, 0x40, 0x47, 0x66,
- 0x66, 0xe6, 0x66, 0x6e, 0x89, 0x10, 0x4, 0x66,
- 0x6e, 0x66, 0x66, 0xd0, 0x0, 0x0, 0x0, 0x0,
- 0xd0, 0x0, 0x5, 0x0, 0x0, 0x36, 0x66, 0x6e,
- 0x66, 0x66, 0xa7, 0x0, 0x0, 0x0, 0x0, 0xd0,
- 0x0, 0x0, 0x75, 0x5, 0x76, 0x66, 0x66, 0x66,
- 0x66, 0x66, 0x50, 0x0, 0xc6, 0x66, 0x66, 0x66,
- 0x6e, 0x10, 0x0, 0xd, 0x10, 0x0, 0x0, 0x0,
- 0xd0, 0x0, 0x0, 0xc6, 0x66, 0x66, 0x66, 0x6d,
- 0x0, 0x0, 0xc, 0x10, 0x0, 0x0, 0x0, 0xd0,
- 0x0, 0x0, 0xd6, 0x66, 0x66, 0x66, 0x6e, 0x0,
- 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0,
-
- /* U+66FE "曾" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9,
- 0x10, 0x0, 0xb5, 0x0, 0x0, 0x4, 0xb0, 0x2,
- 0xa0, 0x0, 0x9, 0x66, 0x96, 0x6a, 0x66, 0x88,
- 0xd, 0x10, 0x0, 0xd0, 0x10, 0x67, 0xd, 0x1a,
- 0x0, 0xd0, 0x97, 0x67, 0xd, 0x9, 0x60, 0xd1,
- 0x90, 0x67, 0xd, 0x1, 0x10, 0xd3, 0x0, 0x67,
- 0xd, 0x66, 0x66, 0x66, 0x66, 0x95, 0x0, 0x66,
- 0x66, 0x66, 0x69, 0x20, 0x0, 0xa2, 0x0, 0x0,
- 0xd, 0x0, 0x0, 0xa2, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0xa7, 0x66, 0x66, 0x6e, 0x0, 0x0, 0xa2,
- 0x0, 0x0, 0xd, 0x0, 0x0, 0xa7, 0x66, 0x66,
- 0x6e, 0x0, 0x0, 0x20, 0x0, 0x0, 0x2, 0x0,
-
- /* U+66FF "替" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc0, 0x0, 0xc, 0x20, 0x0, 0x0, 0x0,
- 0xd2, 0x40, 0xd, 0x5, 0x10, 0x3, 0x66, 0xd6,
- 0x63, 0x6e, 0x66, 0x40, 0x0, 0x2, 0xa1, 0x30,
- 0xd, 0x0, 0x50, 0x6, 0x69, 0xa6, 0x65, 0x7c,
- 0x96, 0x71, 0x0, 0xb, 0x78, 0x0, 0x84, 0x71,
- 0x0, 0x0, 0x57, 0x7, 0x75, 0x70, 0x1b, 0x30,
- 0x4, 0x61, 0x0, 0x64, 0x0, 0x33, 0xd5, 0x22,
- 0xe, 0x66, 0x66, 0x66, 0xd6, 0x0, 0x0, 0xd,
- 0x0, 0x0, 0x0, 0xb2, 0x0, 0x0, 0xe, 0x66,
- 0x66, 0x66, 0xd2, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0xb2, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0,
- 0xb3, 0x0, 0x0, 0xe, 0x66, 0x66, 0x66, 0xd3,
- 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x30, 0x0,
-
- /* U+6700 "最" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2, 0x86, 0x66, 0x66, 0x6b, 0x50, 0x0,
- 0x0, 0x2, 0xd0, 0x0, 0x0, 0xb, 0x20, 0x0,
- 0x0, 0x2, 0xe6, 0x66, 0x66, 0x6d, 0x20, 0x0,
- 0x0, 0x2, 0xd0, 0x0, 0x0, 0xb, 0x20, 0x0,
- 0x0, 0x2, 0xd6, 0x66, 0x66, 0x6c, 0x21, 0x0,
- 0x5, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7e, 0xa0,
- 0x1, 0xe, 0x0, 0xd, 0x0, 0x0, 0x2, 0x0,
- 0x0, 0xe, 0x66, 0x6d, 0x57, 0x66, 0xad, 0x0,
- 0x0, 0xe, 0x0, 0xd, 0x5, 0x0, 0xc4, 0x0,
- 0x0, 0xe, 0x66, 0x6d, 0x4, 0x24, 0xb0, 0x0,
- 0x0, 0xe, 0x0, 0xd, 0x22, 0x9c, 0x10, 0x0,
- 0x0, 0xe, 0x69, 0x8e, 0x30, 0x9a, 0x0, 0x0,
- 0xb, 0xe9, 0x41, 0xd, 0x5, 0x68, 0xb3, 0x0,
- 0x1, 0x0, 0x0, 0xd, 0x44, 0x0, 0x5e, 0xa1,
- 0x0, 0x0, 0x0, 0x5, 0x10, 0x0, 0x0, 0x0,
-
- /* U+6703 "會" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x3e, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x1, 0xc4, 0x70, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x1c, 0x30, 0x1a, 0x50, 0x0, 0x0,
- 0x0, 0x3, 0xb8, 0x66, 0x6d, 0xed, 0x95, 0x31,
- 0x0, 0x77, 0x0, 0x0, 0x0, 0x1, 0x9c, 0xb1,
- 0x15, 0xb, 0x66, 0x69, 0x66, 0x66, 0xe1, 0x0,
- 0x0, 0xd, 0x9, 0x2c, 0x3, 0xb0, 0xd0, 0x0,
- 0x0, 0xd, 0x2, 0xac, 0x9, 0x20, 0xd0, 0x0,
- 0x0, 0xc, 0x66, 0x69, 0x67, 0x66, 0xb0, 0x0,
- 0x0, 0x0, 0x86, 0x66, 0x66, 0x69, 0x0, 0x0,
- 0x0, 0x0, 0xc0, 0x0, 0x0, 0x2b, 0x0, 0x0,
- 0x0, 0x0, 0xd6, 0x66, 0x66, 0x7a, 0x0, 0x0,
- 0x0, 0x0, 0xc0, 0x0, 0x0, 0x2a, 0x0, 0x0,
- 0x0, 0x0, 0xd6, 0x66, 0x66, 0x7b, 0x0, 0x0,
- 0x0, 0x0, 0x60, 0x0, 0x0, 0x14, 0x0, 0x0,
-
- /* U+6708 "月" */
- 0x0, 0x0, 0x30, 0x0, 0x0, 0x5, 0x0, 0x0,
- 0xd, 0x66, 0x66, 0x66, 0xe3, 0x0, 0x0, 0xd1,
- 0x0, 0x0, 0xe, 0x0, 0x0, 0xd, 0x10, 0x0,
- 0x0, 0xe0, 0x0, 0x0, 0xd6, 0x66, 0x66, 0x6e,
- 0x0, 0x0, 0xd, 0x10, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0xd0, 0x0, 0x0, 0xe, 0x0, 0x0, 0xe,
- 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0xe6, 0x66,
- 0x66, 0x6e, 0x0, 0x0, 0x1d, 0x0, 0x0, 0x0,
- 0xe0, 0x0, 0x5, 0x90, 0x0, 0x0, 0xe, 0x0,
- 0x0, 0xb2, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x57,
- 0x0, 0x0, 0x21, 0x1f, 0x0, 0x37, 0x0, 0x0,
- 0x2, 0x7f, 0xc0, 0x3, 0x0, 0x0, 0x0, 0x0,
- 0x30, 0x0,
-
- /* U+6709 "有" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x2e, 0x0, 0x0, 0x5, 0x10,
- 0x6, 0x66, 0x66, 0xbb, 0x66, 0x66, 0x6c, 0x90,
- 0x0, 0x0, 0x1, 0xd0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x9, 0x50, 0x0, 0x4, 0x10, 0x0,
- 0x0, 0x0, 0x5d, 0x66, 0x66, 0x6c, 0x60, 0x0,
- 0x0, 0x2, 0xcc, 0x0, 0x0, 0xb, 0x30, 0x0,
- 0x0, 0x29, 0x2d, 0x66, 0x66, 0x6c, 0x30, 0x0,
- 0x2, 0x70, 0x1c, 0x0, 0x0, 0xb, 0x30, 0x0,
- 0x3, 0x0, 0x1c, 0x0, 0x0, 0xb, 0x30, 0x0,
- 0x0, 0x0, 0x1d, 0x66, 0x66, 0x6c, 0x30, 0x0,
- 0x0, 0x0, 0x1c, 0x0, 0x0, 0xb, 0x30, 0x0,
- 0x0, 0x0, 0x1c, 0x0, 0x0, 0xb, 0x30, 0x0,
- 0x0, 0x0, 0x2c, 0x0, 0x5, 0xbf, 0x10, 0x0,
- 0x0, 0x0, 0x12, 0x0, 0x0, 0x23, 0x0, 0x0,
-
- /* U+670B "朋" */
- 0x0, 0x10, 0x0, 0x20, 0x0, 0x0, 0x2, 0x0,
- 0xb, 0x66, 0x6e, 0x11, 0xc6, 0x66, 0xf1, 0x0,
- 0xb1, 0x0, 0xd0, 0x1c, 0x0, 0xd, 0x0, 0xb,
- 0x10, 0xd, 0x1, 0xc0, 0x0, 0xd0, 0x0, 0xb6,
- 0x66, 0xd0, 0x1d, 0x66, 0x6d, 0x0, 0xb, 0x10,
- 0xd, 0x1, 0xc0, 0x0, 0xd0, 0x0, 0xb1, 0x0,
- 0xd0, 0x1c, 0x0, 0xd, 0x0, 0xb, 0x66, 0x6d,
- 0x1, 0xd6, 0x66, 0xd0, 0x0, 0xc0, 0x0, 0xd0,
- 0x2b, 0x0, 0xd, 0x0, 0xc, 0x0, 0xd, 0x3,
- 0x90, 0x0, 0xd0, 0x0, 0xb0, 0x0, 0xd0, 0x66,
- 0x0, 0xd, 0x0, 0x46, 0x0, 0xd, 0xa, 0x10,
- 0x0, 0xd0, 0x8, 0x0, 0x68, 0xc3, 0x60, 0x0,
- 0xd, 0x2, 0x40, 0x0, 0x95, 0x70, 0x2, 0x8f,
- 0xa0, 0x10, 0x0, 0x0, 0x30, 0x0, 0x0, 0x40,
- 0x0,
-
- /* U+670D "服" */
- 0x0, 0x20, 0x3, 0x0, 0x30, 0x0, 0x21, 0x0,
- 0x0, 0xd6, 0x6c, 0x60, 0xe6, 0x66, 0xc8, 0x0,
- 0x0, 0xd0, 0xa, 0x20, 0xd0, 0x0, 0xa3, 0x0,
- 0x0, 0xd0, 0xa, 0x20, 0xd0, 0x0, 0xb2, 0x0,
- 0x0, 0xd6, 0x6c, 0x20, 0xd0, 0x48, 0xe0, 0x0,
- 0x0, 0xd0, 0xa, 0x20, 0xd0, 0x4, 0x20, 0x0,
- 0x0, 0xd0, 0xa, 0x20, 0xd6, 0x55, 0x7c, 0x0,
- 0x0, 0xd6, 0x6c, 0x20, 0xd3, 0x30, 0x78, 0x0,
- 0x0, 0xc0, 0xa, 0x20, 0xd0, 0x70, 0xb2, 0x0,
- 0x0, 0xc0, 0xa, 0x20, 0xd0, 0x74, 0xb0, 0x0,
- 0x0, 0xb0, 0xa, 0x20, 0xd0, 0x1e, 0x30, 0x0,
- 0x4, 0x60, 0xa, 0x20, 0xd0, 0x5a, 0xa0, 0x0,
- 0x8, 0x4, 0x4c, 0x20, 0xd4, 0x60, 0x6e, 0x81,
- 0x23, 0x0, 0x8c, 0x0, 0xe2, 0x0, 0x3, 0x30,
- 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
-
- /* U+671B "望" */
- 0x0, 0x26, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0,
- 0x0, 0xc3, 0x0, 0x4a, 0x66, 0x6e, 0x30, 0x12,
- 0x26, 0x25, 0x64, 0x80, 0x0, 0xd0, 0x3, 0x4d,
- 0x44, 0x43, 0x4b, 0x66, 0x6e, 0x0, 0x0, 0xd0,
- 0x0, 0x4, 0x70, 0x0, 0xd0, 0x0, 0xd, 0x0,
- 0x34, 0x69, 0x66, 0x6e, 0x0, 0x1, 0xea, 0x93,
- 0xa, 0x20, 0x0, 0xd0, 0x0, 0x1b, 0x30, 0x5,
- 0x60, 0x4, 0xbc, 0x0, 0x0, 0x0, 0x4, 0x30,
- 0x0, 0x2, 0x80, 0x0, 0x76, 0x66, 0x67, 0xd6,
- 0x66, 0x66, 0x10, 0x0, 0x0, 0x0, 0x2b, 0x0,
- 0x24, 0x0, 0x0, 0x6, 0x76, 0x67, 0xd6, 0x67,
- 0x70, 0x0, 0x0, 0x0, 0x0, 0x2b, 0x0, 0x0,
- 0x0, 0x4, 0x66, 0x66, 0x67, 0xd6, 0x66, 0x6c,
- 0xc0, 0x11, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+671D "朝" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa2, 0x2, 0x32, 0xb6, 0x6c, 0x60, 0x56,
- 0x6c, 0x76, 0x76, 0x2b, 0x0, 0xa2, 0x0, 0x0,
- 0xa2, 0x0, 0x1, 0xb0, 0xa, 0x20, 0xb, 0x6a,
- 0x76, 0xe1, 0x1b, 0x0, 0xa2, 0x0, 0xd0, 0x0,
- 0xd, 0x1, 0xd6, 0x6c, 0x20, 0xd, 0x66, 0x66,
- 0xd0, 0x1b, 0x0, 0xa2, 0x0, 0xd0, 0x0, 0xd,
- 0x2, 0xa0, 0xa, 0x20, 0xd, 0x67, 0x66, 0xd0,
- 0x3c, 0x66, 0xc2, 0x0, 0x70, 0xa2, 0x3, 0x5,
- 0x80, 0xa, 0x21, 0x66, 0x6c, 0x76, 0xa6, 0x94,
- 0x0, 0xa2, 0x0, 0x0, 0xa2, 0x0, 0xc, 0x0,
- 0xa, 0x20, 0x0, 0xa, 0x20, 0x8, 0x30, 0x20,
- 0xb2, 0x0, 0x0, 0xa3, 0x5, 0x40, 0x2, 0xbe,
- 0x0, 0x0, 0x3, 0x0, 0x10, 0x0, 0x0, 0x10,
-
- /* U+671F "期" */
- 0x0, 0xa, 0x10, 0x94, 0x0, 0x0, 0x0, 0x20,
- 0x0, 0xe, 0x0, 0xb2, 0x2, 0xc6, 0x67, 0xd0,
- 0x4, 0x6e, 0x66, 0xd9, 0xb3, 0xc0, 0x2, 0xb0,
- 0x0, 0xe, 0x0, 0xb2, 0x1, 0xc0, 0x2, 0xb0,
- 0x0, 0xe, 0x66, 0xd2, 0x1, 0xd6, 0x67, 0xb0,
- 0x0, 0xe, 0x0, 0xb2, 0x1, 0xc0, 0x2, 0xb0,
- 0x0, 0xe, 0x0, 0xb2, 0x1, 0xc0, 0x2, 0xb0,
- 0x0, 0xe, 0x66, 0xd2, 0x2, 0xb0, 0x2, 0xb0,
- 0x0, 0xe, 0x0, 0xb3, 0x23, 0xd5, 0x57, 0xb0,
- 0x5, 0x69, 0x66, 0x89, 0x86, 0x90, 0x2, 0xb0,
- 0x0, 0x8, 0x70, 0x70, 0x9, 0x60, 0x2, 0xb0,
- 0x0, 0x2d, 0x10, 0x5c, 0x1d, 0x0, 0x2, 0xb0,
- 0x0, 0xa1, 0x0, 0x7, 0x93, 0x0, 0x3, 0xb0,
- 0x7, 0x10, 0x0, 0x7, 0x30, 0x1, 0x7f, 0x80,
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x3, 0x0,
-
- /* U+6728 "木" */
- 0x0, 0x0, 0x0, 0xb, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x10, 0x0, 0x6, 0x0,
- 0x7, 0x66, 0x66, 0x9f, 0x86, 0x66, 0x8b, 0x40,
- 0x0, 0x0, 0x0, 0xef, 0x60, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x5, 0xbd, 0x37, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0x2d, 0x1a, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x87, 0xd, 0x13, 0xb0, 0x0, 0x0,
- 0x0, 0x4, 0xb0, 0xd, 0x10, 0x8a, 0x0, 0x0,
- 0x0, 0x2a, 0x0, 0xd, 0x10, 0xb, 0xd5, 0x0,
- 0x3, 0x80, 0x0, 0xd, 0x10, 0x0, 0xaf, 0x80,
- 0x24, 0x0, 0x0, 0xe, 0x20, 0x0, 0x2, 0x0,
- 0x0, 0x0, 0x0, 0xe, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0,
-
- /* U+672A "未" */
- 0x0, 0x0, 0x0, 0xa, 0x50, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb3, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb, 0x30, 0x8, 0x40, 0x0, 0x1,
- 0x86, 0x66, 0xd8, 0x66, 0x65, 0x0, 0x0, 0x0,
- 0x0, 0xb, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb3, 0x0, 0x0, 0x40, 0x6, 0x66, 0x66,
- 0x8e, 0x96, 0x66, 0x8b, 0x20, 0x0, 0x0, 0xd,
- 0xe6, 0x30, 0x0, 0x0, 0x0, 0x0, 0x8, 0x9b,
- 0x39, 0x0, 0x0, 0x0, 0x0, 0x4, 0xb0, 0xb3,
- 0x2b, 0x0, 0x0, 0x0, 0x3, 0xb0, 0xb, 0x30,
- 0x6c, 0x20, 0x0, 0x5, 0x80, 0x0, 0xb3, 0x0,
- 0x7f, 0x82, 0x6, 0x30, 0x0, 0xb, 0x30, 0x0,
- 0x4d, 0x50, 0x0, 0x0, 0x0, 0xc4, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+672B "末" */
- 0x0, 0x0, 0x0, 0x9, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc4, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb, 0x30, 0x0, 0x3a, 0x0, 0x76,
- 0x66, 0x66, 0xd8, 0x66, 0x66, 0x62, 0x0, 0x0,
- 0x0, 0xb, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb3, 0x0, 0x43, 0x0, 0x0, 0x37, 0x66,
- 0xaf, 0xa6, 0x67, 0x70, 0x0, 0x0, 0x0, 0x1e,
- 0xd5, 0x60, 0x0, 0x0, 0x0, 0x0, 0xb, 0x5b,
- 0x38, 0x20, 0x0, 0x0, 0x0, 0x8, 0x70, 0xb3,
- 0xc, 0x20, 0x0, 0x0, 0x7, 0x80, 0xb, 0x30,
- 0x3e, 0x60, 0x0, 0x8, 0x50, 0x0, 0xb3, 0x0,
- 0x3e, 0xe7, 0x16, 0x10, 0x0, 0xb, 0x30, 0x0,
- 0x16, 0x0, 0x0, 0x0, 0x0, 0xc4, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+672C "本" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa, 0x70, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa, 0x40, 0x0, 0x1, 0x0,
- 0x5, 0x66, 0x66, 0x6c, 0x96, 0x66, 0x7e, 0x30,
- 0x0, 0x0, 0x0, 0x8f, 0x72, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xec, 0x47, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x8, 0x7a, 0x46, 0x30, 0x0, 0x0,
- 0x0, 0x0, 0x3c, 0xa, 0x40, 0xb1, 0x0, 0x0,
- 0x0, 0x0, 0xc1, 0xa, 0x40, 0x4c, 0x10, 0x0,
- 0x0, 0xa, 0x30, 0xa, 0x40, 0x7, 0xe4, 0x0,
- 0x0, 0x93, 0x66, 0x6c, 0x86, 0xa8, 0x7f, 0x90,
- 0x26, 0x0, 0x0, 0xa, 0x40, 0x0, 0x3, 0x0,
- 0x0, 0x0, 0x0, 0xa, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x6, 0x20, 0x0, 0x0, 0x0,
-
- /* U+672D "札" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xe3, 0x0, 0xc, 0x40, 0x0, 0x0,
- 0x0, 0x0, 0xe1, 0x0, 0xd, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0xe1, 0x0, 0xd, 0x10, 0x0, 0x0,
- 0x5, 0x66, 0xe6, 0x9a, 0xd, 0x10, 0x0, 0x0,
- 0x1, 0x0, 0xf1, 0x0, 0xd, 0x10, 0x0, 0x0,
- 0x0, 0x4, 0xf2, 0x0, 0xd, 0x10, 0x0, 0x0,
- 0x0, 0x9, 0xf9, 0x91, 0xd, 0x10, 0x0, 0x0,
- 0x0, 0xc, 0xe1, 0xba, 0xd, 0x10, 0x0, 0x0,
- 0x0, 0x74, 0xe1, 0x16, 0xd, 0x10, 0x0, 0x0,
- 0x0, 0xa0, 0xe1, 0x0, 0xd, 0x10, 0x0, 0x0,
- 0x6, 0x0, 0xe1, 0x0, 0xd, 0x10, 0x0, 0x50,
- 0x2, 0x0, 0xe1, 0x0, 0xd, 0x10, 0x0, 0x80,
- 0x0, 0x0, 0xe1, 0x0, 0xd, 0x20, 0x2, 0xe1,
- 0x0, 0x0, 0xe1, 0x0, 0x9, 0xdc, 0xcd, 0xb0,
- 0x0, 0x0, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+673A "机" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x10, 0xa, 0x66, 0x6c, 0x40, 0x0,
- 0x0, 0xc, 0x10, 0xd, 0x10, 0xe, 0x0, 0x0,
- 0x0, 0xc, 0x17, 0xd, 0x10, 0xe, 0x0, 0x0,
- 0x16, 0x6f, 0x66, 0x2c, 0x10, 0xe, 0x0, 0x0,
- 0x0, 0x2f, 0x10, 0xc, 0x10, 0xe, 0x0, 0x0,
- 0x0, 0x6f, 0x84, 0xc, 0x10, 0xe, 0x0, 0x0,
- 0x0, 0xbe, 0x1c, 0x6c, 0x10, 0xe, 0x0, 0x0,
- 0x1, 0x9c, 0x11, 0x4d, 0x0, 0xe, 0x0, 0x0,
- 0x7, 0x2c, 0x10, 0xd, 0x0, 0xe, 0x0, 0x0,
- 0x6, 0xc, 0x10, 0x39, 0x0, 0xe, 0x0, 0x20,
- 0x40, 0xc, 0x10, 0x84, 0x0, 0xe, 0x0, 0x60,
- 0x0, 0xc, 0x10, 0xa0, 0x0, 0xe, 0x1, 0xa0,
- 0x0, 0xd, 0x27, 0x10, 0x0, 0xa, 0xdd, 0xc0,
- 0x0, 0xa, 0x31, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+6750 "材" */
- 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x10, 0x0,
- 0x0, 0x1, 0xf2, 0x0, 0x0, 0x2, 0xe1, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0x1, 0xd0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0x1, 0xd0, 0x0,
- 0x5, 0x66, 0xf6, 0xc5, 0x46, 0x67, 0xe7, 0xd1,
- 0x0, 0x2, 0xe0, 0x0, 0x0, 0x8, 0xd0, 0x0,
- 0x0, 0x7, 0xf6, 0x0, 0x0, 0x1e, 0xd0, 0x0,
- 0x0, 0xc, 0xe3, 0xd1, 0x0, 0x89, 0xd0, 0x0,
- 0x0, 0x3b, 0xe0, 0x95, 0x3, 0xc1, 0xd0, 0x0,
- 0x0, 0xa3, 0xe0, 0x0, 0xb, 0x11, 0xd0, 0x0,
- 0x2, 0x70, 0xe0, 0x0, 0x92, 0x1, 0xd0, 0x0,
- 0x7, 0x0, 0xe0, 0x7, 0x20, 0x1, 0xd0, 0x0,
- 0x10, 0x0, 0xf0, 0x20, 0x0, 0x1, 0xd0, 0x0,
- 0x0, 0x0, 0xf0, 0x0, 0x2, 0x34, 0xd0, 0x0,
- 0x0, 0x1, 0xf0, 0x0, 0x0, 0x5e, 0x90, 0x0,
- 0x0, 0x0, 0x40, 0x0, 0x0, 0x2, 0x0, 0x0,
-
- /* U+6751 "村" */
- 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x10, 0x0,
- 0x0, 0x1, 0xf2, 0x0, 0x0, 0x0, 0xf2, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0x0, 0xe0, 0x0,
- 0x5, 0x66, 0xf6, 0xc4, 0x46, 0x66, 0xf7, 0xc1,
- 0x0, 0x4, 0xe0, 0x0, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0x8, 0xf4, 0x0, 0x20, 0x0, 0xe0, 0x0,
- 0x0, 0xd, 0xe6, 0xb0, 0x76, 0x0, 0xe0, 0x0,
- 0x0, 0x39, 0xe0, 0xb5, 0xe, 0x30, 0xe0, 0x0,
- 0x0, 0xa2, 0xe0, 0x11, 0x8, 0x40, 0xe0, 0x0,
- 0x2, 0x70, 0xe0, 0x0, 0x0, 0x0, 0xe0, 0x0,
- 0x7, 0x0, 0xe0, 0x0, 0x0, 0x0, 0xe0, 0x0,
- 0x1, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0x0, 0xf0, 0x0, 0x3, 0x33, 0xe0, 0x0,
- 0x0, 0x1, 0xf0, 0x0, 0x0, 0x5e, 0xb0, 0x0,
- 0x0, 0x0, 0x40, 0x0, 0x0, 0x2, 0x0, 0x0,
-
- /* U+675F "束" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc6, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc, 0x20, 0x0, 0x5, 0x20, 0x66,
- 0x66, 0x66, 0xd7, 0x66, 0x66, 0x75, 0x0, 0x0,
- 0x0, 0xc, 0x20, 0x0, 0x0, 0x0, 0x0, 0xc6,
- 0x66, 0xd7, 0x66, 0x6e, 0x10, 0x0, 0xf, 0x0,
- 0xc, 0x20, 0x1, 0xd0, 0x0, 0x0, 0xf0, 0x0,
- 0xc2, 0x0, 0x1d, 0x0, 0x0, 0xf, 0x66, 0x6d,
- 0x76, 0x66, 0xe0, 0x0, 0x0, 0xf0, 0xd, 0xe6,
- 0x30, 0x19, 0x0, 0x0, 0x1, 0x9, 0x7c, 0x29,
- 0x0, 0x0, 0x0, 0x0, 0x6, 0xa0, 0xc2, 0x1b,
- 0x10, 0x0, 0x0, 0x5, 0x90, 0xc, 0x20, 0x3d,
- 0x60, 0x0, 0x7, 0x60, 0x0, 0xc2, 0x0, 0x2d,
- 0xf7, 0x16, 0x20, 0x0, 0xd, 0x30, 0x0, 0x5,
- 0x0, 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0,
-
- /* U+6761 "条" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x8, 0xb0, 0x0, 0x1, 0x0, 0x0,
- 0x0, 0x0, 0xe, 0x86, 0x66, 0x6f, 0x50, 0x0,
- 0x0, 0x0, 0x89, 0x30, 0x0, 0x9b, 0x0, 0x0,
- 0x0, 0x4, 0x80, 0x71, 0x4, 0xe1, 0x0, 0x0,
- 0x0, 0x27, 0x0, 0xb, 0x5e, 0x30, 0x0, 0x0,
- 0x0, 0x40, 0x0, 0x9, 0xf7, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x6, 0xb7, 0x5b, 0xd8, 0x42, 0x10,
- 0x2, 0x57, 0x73, 0x0, 0xf2, 0x39, 0xdf, 0xa2,
- 0x2, 0x0, 0x0, 0x0, 0xe0, 0x1, 0x80, 0x0,
- 0x0, 0x6, 0x76, 0x66, 0xf6, 0x66, 0x62, 0x0,
- 0x0, 0x0, 0xd, 0x40, 0xe1, 0x61, 0x0, 0x0,
- 0x0, 0x0, 0xb8, 0x0, 0xe0, 0x1c, 0x60, 0x0,
- 0x0, 0x9, 0x50, 0x0, 0xe0, 0x1, 0xd9, 0x0,
- 0x1, 0x72, 0x2, 0x8d, 0xc0, 0x0, 0x3a, 0x0,
- 0x1, 0x0, 0x0, 0x6, 0x20, 0x0, 0x0, 0x0,
-
- /* U+6765 "来" */
- 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x60, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x56, 0x66, 0x6d, 0x86, 0x66, 0xca, 0x0,
- 0x0, 0x23, 0x0, 0xb, 0x30, 0x6, 0x10, 0x0,
- 0x0, 0x1, 0xc3, 0xb, 0x30, 0x2e, 0x40, 0x0,
- 0x0, 0x0, 0x6c, 0xb, 0x30, 0xa4, 0x0, 0x0,
- 0x0, 0x0, 0x4, 0xb, 0x34, 0x40, 0xa, 0x30,
- 0x28, 0x66, 0x66, 0xbf, 0xb6, 0x66, 0x66, 0x50,
- 0x0, 0x0, 0x1, 0xed, 0x47, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb, 0x5b, 0x36, 0x50, 0x0, 0x0,
- 0x0, 0x0, 0x88, 0xb, 0x30, 0xb6, 0x0, 0x0,
- 0x0, 0x6, 0x90, 0xb, 0x30, 0xc, 0xb2, 0x0,
- 0x0, 0x76, 0x0, 0xb, 0x30, 0x0, 0xaf, 0x90,
- 0x16, 0x20, 0x0, 0xc, 0x40, 0x0, 0x3, 0x0,
- 0x0, 0x0, 0x0, 0x6, 0x10, 0x0, 0x0, 0x0,
-
- /* U+676F "杯" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc1, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x46, 0x66, 0x66, 0x69, 0xb0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0xa5, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x70, 0x0, 0xe0, 0x0, 0x0,
- 0x6, 0x66, 0xe6, 0x62, 0x6, 0x80, 0x0, 0x0,
- 0x0, 0x5, 0xe2, 0x0, 0xd, 0xb1, 0x0, 0x0,
- 0x0, 0xb, 0xe9, 0x50, 0x59, 0xe2, 0x0, 0x0,
- 0x0, 0x2a, 0xe1, 0xe0, 0xc1, 0xd1, 0x92, 0x0,
- 0x0, 0x91, 0xe0, 0x39, 0x30, 0xd0, 0x2e, 0x30,
- 0x3, 0x60, 0xe0, 0x54, 0x0, 0xd0, 0x8, 0x80,
- 0x5, 0x0, 0xe2, 0x30, 0x0, 0xd0, 0x0, 0x10,
- 0x10, 0x0, 0xe0, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x1, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0x70, 0x0, 0x0, 0x50, 0x0, 0x0,
-
- /* U+6771 "東" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc4, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0x0, 0x0, 0x9, 0x0, 0x57,
- 0x66, 0x66, 0xe6, 0x66, 0x66, 0x62, 0x0, 0x4,
- 0x0, 0xd, 0x0, 0x1, 0x60, 0x0, 0x0, 0xd6,
- 0x66, 0xe6, 0x66, 0x8d, 0x0, 0x0, 0xd, 0x10,
- 0xd, 0x0, 0x3, 0xa0, 0x0, 0x0, 0xc6, 0x66,
- 0xe6, 0x66, 0x8a, 0x0, 0x0, 0xd, 0x10, 0xd,
- 0x0, 0x3, 0xb0, 0x0, 0x0, 0xd6, 0x6d, 0xfa,
- 0x66, 0x78, 0x0, 0x0, 0x1, 0x4, 0xbd, 0x26,
- 0x0, 0x0, 0x0, 0x0, 0x1, 0xc1, 0xd0, 0x74,
- 0x0, 0x0, 0x0, 0x0, 0xa2, 0xd, 0x0, 0xa6,
- 0x0, 0x0, 0x1, 0x92, 0x0, 0xd1, 0x0, 0x9d,
- 0x62, 0x4, 0x70, 0x0, 0xd, 0x10, 0x0, 0x4c,
- 0x51, 0x20, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0,
-
- /* U+6790 "析" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc3, 0x0, 0x0, 0x0, 0x39, 0x50, 0x0,
- 0xd, 0x10, 0x9, 0x65, 0x76, 0x53, 0x0, 0x0,
- 0xc1, 0x0, 0xa3, 0x0, 0x0, 0x0, 0x16, 0x6e,
- 0x6c, 0x3a, 0x30, 0x0, 0x0, 0x0, 0x0, 0xe1,
- 0x0, 0xa3, 0x0, 0x0, 0x0, 0x0, 0x2f, 0x30,
- 0xa, 0x86, 0x67, 0x6b, 0x70, 0x7, 0xf9, 0x80,
- 0xa3, 0x0, 0xc1, 0x0, 0x0, 0xbd, 0x1d, 0x2a,
- 0x20, 0xc, 0x10, 0x0, 0x27, 0xc1, 0x20, 0xc1,
- 0x0, 0xc1, 0x0, 0x7, 0xc, 0x10, 0xd, 0x0,
- 0xc, 0x10, 0x2, 0x20, 0xc1, 0x2, 0xb0, 0x0,
- 0xc1, 0x0, 0x0, 0xd, 0x10, 0x75, 0x0, 0xd,
- 0x10, 0x0, 0x0, 0xd1, 0x1a, 0x0, 0x0, 0xd1,
- 0x0, 0x0, 0xd, 0x27, 0x0, 0x0, 0xd, 0x20,
- 0x0, 0x0, 0x51, 0x0, 0x0, 0x0, 0x30, 0x0,
-
- /* U+6797 "林" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xe2, 0x0, 0x0, 0xe1, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0xe0, 0x1, 0x0,
- 0x4, 0x66, 0xe8, 0xb3, 0x66, 0xe6, 0x6d, 0x40,
- 0x0, 0x1, 0xe0, 0x0, 0x8, 0xe3, 0x0, 0x0,
- 0x0, 0x5, 0xf1, 0x0, 0xd, 0xe6, 0x0, 0x0,
- 0x0, 0xb, 0xe9, 0x50, 0x3a, 0xe7, 0x0, 0x0,
- 0x0, 0x2a, 0xe1, 0xe0, 0xa2, 0xe2, 0x70, 0x0,
- 0x0, 0x91, 0xe0, 0x34, 0x70, 0xe0, 0xb2, 0x0,
- 0x3, 0x50, 0xe0, 0x9, 0x0, 0xe0, 0x3e, 0x20,
- 0x5, 0x0, 0xe0, 0x70, 0x0, 0xe0, 0x8, 0xc2,
- 0x0, 0x0, 0xe2, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0xf0, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0x40, 0x0, 0x0, 0x30, 0x0, 0x0,
-
- /* U+679C "果" */
- 0x0, 0x8, 0x66, 0x66, 0x66, 0x66, 0xa0, 0x0,
- 0x0, 0xd1, 0x0, 0xd1, 0x0, 0x3c, 0x0, 0x0,
- 0xc, 0x10, 0xd, 0x10, 0x3, 0xb0, 0x0, 0x0,
- 0xc6, 0x66, 0xe6, 0x66, 0x7b, 0x0, 0x0, 0xc,
- 0x10, 0xd, 0x10, 0x3, 0xb0, 0x0, 0x0, 0xd1,
- 0x0, 0xd1, 0x0, 0x3b, 0x0, 0x0, 0xd, 0x66,
- 0x6e, 0x66, 0x67, 0xa0, 0x0, 0x0, 0x10, 0x0,
- 0xd1, 0x0, 0x0, 0x70, 0x6, 0x76, 0x66, 0xcf,
- 0x96, 0x66, 0x68, 0x30, 0x0, 0x0, 0x6a, 0xd7,
- 0x20, 0x0, 0x0, 0x0, 0x0, 0x4b, 0xd, 0x1a,
- 0x40, 0x0, 0x0, 0x0, 0x4a, 0x0, 0xd1, 0xb,
- 0x81, 0x0, 0x0, 0x76, 0x0, 0xe, 0x10, 0x8,
- 0xe9, 0x31, 0x61, 0x0, 0x0, 0xe1, 0x0, 0x3,
- 0x80, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+67D0 "某" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x1c, 0x10, 0x0, 0xc3, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0x0, 0x0, 0xd1, 0x5, 0x20,
- 0x3, 0x76, 0x6e, 0x66, 0x66, 0xd6, 0x68, 0x70,
- 0x0, 0x0, 0xd, 0x0, 0x0, 0xc1, 0x0, 0x0,
- 0x0, 0x0, 0xe, 0x66, 0x66, 0xd1, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0x0, 0x0, 0xc1, 0x0, 0x0,
- 0x0, 0x0, 0xe, 0x66, 0x66, 0xd1, 0x0, 0x0,
- 0x0, 0x0, 0x5, 0x1, 0xc0, 0x40, 0x0, 0x10,
- 0x5, 0x66, 0x66, 0x67, 0xd6, 0x66, 0x6a, 0xd2,
- 0x0, 0x0, 0x0, 0xba, 0xc6, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x6, 0xb2, 0xc3, 0x70, 0x0, 0x0,
- 0x0, 0x0, 0x6b, 0x1, 0xc0, 0x6a, 0x20, 0x0,
- 0x0, 0x9, 0x70, 0x2, 0xc0, 0x5, 0xfa, 0x61,
- 0x5, 0x72, 0x0, 0x2, 0xc0, 0x0, 0x1a, 0x91,
- 0x0, 0x0, 0x0, 0x1, 0x40, 0x0, 0x0, 0x0,
-
- /* U+67E5 "查" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x3, 0xb0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x2, 0xb0, 0x0, 0x9, 0x30,
- 0x3, 0x76, 0x66, 0x7f, 0xd9, 0x66, 0x66, 0x50,
- 0x0, 0x0, 0x0, 0xc7, 0xb4, 0x50, 0x0, 0x0,
- 0x0, 0x0, 0x1b, 0x52, 0xb0, 0x78, 0x0, 0x0,
- 0x0, 0x3, 0xa2, 0x3, 0xb0, 0x7, 0xd7, 0x20,
- 0x1, 0x66, 0xa6, 0x66, 0x66, 0x6b, 0x6b, 0x91,
- 0x4, 0x0, 0xe0, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0x0, 0xe6, 0x66, 0x66, 0x6e, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0x0, 0xe6, 0x66, 0x66, 0x6e, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0x6, 0x2, 0x0,
- 0x2, 0x66, 0x66, 0x66, 0x66, 0x66, 0x8f, 0x60,
- 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+67F1 "柱" */
- 0x0, 0x9, 0x30, 0x0, 0x6, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x10, 0x0, 0x5, 0xd0, 0x0, 0x0,
- 0x0, 0xd, 0x10, 0x0, 0x0, 0xe2, 0x0, 0x0,
- 0x0, 0xc, 0x17, 0x15, 0x55, 0x65, 0x5c, 0x80,
- 0x18, 0x6e, 0x66, 0x23, 0x11, 0xe1, 0x11, 0x10,
- 0x0, 0x1f, 0x10, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x5f, 0x94, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0xae, 0x2f, 0x20, 0x0, 0xe0, 0x7, 0x0,
- 0x2, 0x9c, 0x15, 0x17, 0x66, 0xe6, 0x67, 0x20,
- 0x7, 0x1c, 0x10, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x23, 0xc, 0x10, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x10, 0xd, 0x10, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0xd, 0x10, 0x0, 0x0, 0xe0, 0x3, 0x20,
- 0x0, 0xd, 0x13, 0x76, 0x66, 0xa6, 0x69, 0x90,
- 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+67FB "査" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x9, 0x60, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa, 0x30, 0x0, 0x1, 0x0,
- 0x4, 0x66, 0x66, 0x6c, 0x86, 0x66, 0x7f, 0x40,
- 0x1, 0x10, 0x0, 0xae, 0x64, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x7, 0x8a, 0x37, 0x50, 0x0, 0x0,
- 0x0, 0x0, 0x87, 0xa, 0x40, 0x8a, 0x30, 0x0,
- 0x0, 0x29, 0x30, 0xb, 0x30, 0x5, 0xed, 0x90,
- 0x5, 0x50, 0x96, 0x67, 0x66, 0x6d, 0x35, 0x20,
- 0x0, 0x0, 0xd1, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0x0, 0xc6, 0x66, 0x66, 0x6e, 0x0, 0x0,
- 0x0, 0x0, 0xc1, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0x0, 0xc6, 0x66, 0x66, 0x6e, 0x0, 0x0,
- 0x0, 0x0, 0xc1, 0x0, 0x0, 0xe, 0x2, 0x0,
- 0x15, 0x66, 0xd6, 0x66, 0x66, 0x6e, 0x6e, 0xa0,
- 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+67FF "柿" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb, 0x30, 0x0, 0x8, 0x20, 0x0, 0x0,
- 0x0, 0xd, 0x10, 0x0, 0x3, 0xf1, 0x0, 0x0,
- 0x0, 0xc, 0x10, 0x0, 0x0, 0x90, 0x4, 0x10,
- 0x0, 0xc, 0x16, 0x57, 0x66, 0xc6, 0x68, 0x60,
- 0x16, 0x6f, 0x66, 0x20, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x1f, 0x10, 0x4, 0x0, 0xe0, 0x6, 0x0,
- 0x0, 0x6f, 0x93, 0xe, 0x66, 0xe6, 0x6f, 0x10,
- 0x0, 0xbe, 0x3e, 0xd, 0x0, 0xe0, 0xe, 0x0,
- 0x1, 0x9c, 0x14, 0xd, 0x0, 0xe0, 0xe, 0x0,
- 0x7, 0x2c, 0x10, 0xd, 0x0, 0xe0, 0xe, 0x0,
- 0x15, 0xc, 0x10, 0xd, 0x0, 0xe0, 0xe, 0x0,
- 0x10, 0xd, 0x10, 0xd, 0x0, 0xe3, 0xad, 0x0,
- 0x0, 0xd, 0x10, 0x4, 0x0, 0xe0, 0x33, 0x0,
- 0x0, 0xd, 0x10, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x7, 0x0, 0x0, 0x0, 0x60, 0x0, 0x0,
-
- /* U+6811 "树" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb, 0x30, 0x0, 0x0, 0x0, 0xb3, 0x0,
- 0x0, 0xd, 0x10, 0x0, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0xc, 0x12, 0x66, 0x6d, 0x10, 0xe0, 0x0,
- 0x0, 0xc, 0x16, 0x0, 0x3b, 0x22, 0xe4, 0x70,
- 0x16, 0x6e, 0x66, 0x20, 0x76, 0x44, 0xe4, 0x40,
- 0x0, 0x1f, 0x10, 0x51, 0xb2, 0x0, 0xe0, 0x0,
- 0x0, 0x5f, 0x94, 0x9, 0xc2, 0x40, 0xe0, 0x0,
- 0x0, 0xae, 0x2e, 0x9, 0x80, 0xc1, 0xe0, 0x0,
- 0x1, 0x9c, 0x13, 0xc, 0xd0, 0x85, 0xe0, 0x0,
- 0x7, 0x1c, 0x10, 0x74, 0xa5, 0x21, 0xe0, 0x0,
- 0x14, 0xc, 0x12, 0x70, 0x56, 0x0, 0xe0, 0x0,
- 0x0, 0xd, 0x27, 0x0, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0xd, 0x20, 0x0, 0x1, 0x10, 0xe0, 0x0,
- 0x0, 0xd, 0x10, 0x0, 0x1, 0x7f, 0xd0, 0x0,
- 0x0, 0x6, 0x0, 0x0, 0x0, 0x3, 0x10, 0x0,
-
- /* U+6821 "校" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x30, 0x0, 0xa, 0x10, 0x0, 0x0,
- 0x0, 0xd, 0x10, 0x0, 0x6, 0xc0, 0x0, 0x0,
- 0x0, 0xc, 0x10, 0x45, 0x55, 0xc5, 0x5c, 0x70,
- 0x16, 0x6e, 0x6c, 0x51, 0x31, 0x11, 0x11, 0x0,
- 0x0, 0xe, 0x10, 0x0, 0xe6, 0x5, 0x50, 0x0,
- 0x0, 0x2f, 0x93, 0x9, 0x60, 0x0, 0x9c, 0x10,
- 0x0, 0x7f, 0x3d, 0x46, 0x0, 0x3, 0x1b, 0x60,
- 0x0, 0xbd, 0x14, 0x42, 0x20, 0xa, 0xb1, 0x20,
- 0x4, 0x6c, 0x10, 0x0, 0x60, 0xe, 0x20, 0x0,
- 0x7, 0xc, 0x10, 0x0, 0x62, 0x78, 0x0, 0x0,
- 0x22, 0xd, 0x10, 0x0, 0xa, 0xc0, 0x0, 0x0,
- 0x0, 0xd, 0x10, 0x0, 0x1c, 0xc1, 0x0, 0x0,
- 0x0, 0xd, 0x10, 0x3, 0xa2, 0x5e, 0x82, 0x0,
- 0x0, 0xd, 0x23, 0x75, 0x0, 0x1, 0x9f, 0xb1,
- 0x0, 0x2, 0x11, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+682A "株" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x40, 0x0, 0x1, 0xc2, 0x0, 0x0,
- 0x0, 0xd, 0x10, 0x6, 0x80, 0xd0, 0x0, 0x0,
- 0x0, 0xc, 0x10, 0xa, 0x50, 0xd0, 0x3, 0x0,
- 0x5, 0x6e, 0x7d, 0x2c, 0x66, 0xe6, 0x79, 0x10,
- 0x1, 0xe, 0x10, 0x46, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0x2f, 0x20, 0x50, 0x0, 0xd0, 0x0, 0x10,
- 0x0, 0x7f, 0xa7, 0x56, 0x66, 0xe6, 0x68, 0xc1,
- 0x0, 0xbd, 0x2d, 0x0, 0x1e, 0xd5, 0x0, 0x0,
- 0x4, 0x6d, 0x10, 0x0, 0x88, 0xd7, 0x10, 0x0,
- 0x8, 0xd, 0x10, 0x2, 0xc0, 0xd1, 0xa0, 0x0,
- 0x22, 0xd, 0x10, 0xb, 0x10, 0xd0, 0x96, 0x0,
- 0x0, 0xd, 0x10, 0x83, 0x0, 0xd0, 0xd, 0xa1,
- 0x0, 0xd, 0x16, 0x20, 0x0, 0xd0, 0x2, 0x71,
- 0x0, 0xd, 0x20, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x5, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0,
-
- /* U+6839 "根" */
- 0x0, 0xa, 0x30, 0x2, 0x0, 0x0, 0x40, 0x0,
- 0x0, 0xd, 0x10, 0x1e, 0x66, 0x66, 0xe4, 0x0,
- 0x0, 0xc, 0x10, 0xd, 0x0, 0x0, 0xe0, 0x0,
- 0x2, 0x2d, 0x37, 0x2d, 0x0, 0x0, 0xe0, 0x0,
- 0x14, 0x4e, 0x44, 0x2e, 0x66, 0x66, 0xe0, 0x0,
- 0x0, 0x1f, 0x20, 0xd, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0x6f, 0x95, 0xe, 0x66, 0x66, 0xe0, 0x0,
- 0x0, 0xad, 0x2e, 0xd, 0x6, 0x0, 0x56, 0x0,
- 0x2, 0x7c, 0x13, 0xd, 0x6, 0x0, 0xca, 0x10,
- 0x7, 0xd, 0x10, 0xd, 0x5, 0x58, 0x30, 0x0,
- 0x22, 0xd, 0x10, 0xd, 0x0, 0xb0, 0x0, 0x0,
- 0x0, 0xd, 0x10, 0xd, 0x0, 0x6a, 0x0, 0x0,
- 0x0, 0xd, 0x10, 0xd, 0x37, 0x19, 0xd4, 0x0,
- 0x0, 0xd, 0x10, 0x2f, 0x80, 0x0, 0x7f, 0x90,
- 0x0, 0x5, 0x0, 0x4, 0x0, 0x0, 0x1, 0x0,
-
- /* U+683C "格" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x30, 0x0, 0xc6, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x1, 0xe0, 0x0, 0x20, 0x0,
- 0x0, 0xd, 0x0, 0x8, 0xb6, 0x67, 0xe2, 0x0,
- 0x5, 0x6e, 0x6c, 0x39, 0x60, 0x9, 0x60, 0x0,
- 0x0, 0xf, 0x0, 0x71, 0x27, 0x4c, 0x0, 0x0,
- 0x0, 0x3f, 0x21, 0x10, 0x9, 0xd1, 0x0, 0x0,
- 0x0, 0x8f, 0x77, 0x0, 0x1c, 0xc4, 0x0, 0x0,
- 0x0, 0xad, 0xc, 0x3, 0xa1, 0x1c, 0xa4, 0x0,
- 0x3, 0x5d, 0x0, 0x79, 0x0, 0x0, 0x9d, 0xa1,
- 0x7, 0xd, 0x25, 0xd, 0x66, 0x66, 0xf1, 0x0,
- 0x22, 0xd, 0x0, 0xd, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0xd, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0xd, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0xe, 0x66, 0x66, 0xe0, 0x0,
- 0x0, 0x7, 0x0, 0x7, 0x0, 0x0, 0x50, 0x0,
-
- /* U+6843 "桃" */
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x30, 0x0, 0xa4, 0x2c, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0xd0, 0x1b, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0xc0, 0x1b, 0x0, 0x0,
- 0x5, 0x6e, 0x79, 0x50, 0xc0, 0x1b, 0xc, 0x20,
- 0x0, 0xe, 0x0, 0x75, 0xc0, 0x1b, 0x66, 0x0,
- 0x0, 0x2f, 0x20, 0x49, 0xc0, 0x1d, 0x40, 0x0,
- 0x0, 0x7f, 0x87, 0x1, 0xc0, 0x1b, 0x0, 0x0,
- 0x0, 0xbe, 0xc, 0x0, 0xd0, 0x1d, 0x60, 0x0,
- 0x2, 0x8d, 0x0, 0x28, 0xe0, 0x1b, 0x5e, 0x20,
- 0x8, 0xd, 0x6, 0xc0, 0xe0, 0x1b, 0x5, 0x40,
- 0x23, 0xd, 0x2, 0x13, 0xa0, 0x1b, 0x0, 0x10,
- 0x0, 0xd, 0x0, 0x9, 0x40, 0x1b, 0x0, 0x50,
- 0x0, 0xd, 0x0, 0x3a, 0x0, 0x1c, 0x2, 0x80,
- 0x0, 0xd, 0x2, 0x90, 0x0, 0xc, 0xcd, 0xa0,
- 0x0, 0x8, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+6848 "案" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1a, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x2, 0x0, 0x4, 0x50, 0x0, 0x4, 0x0,
- 0x0, 0x69, 0x66, 0x7c, 0x66, 0x66, 0x6e, 0x30,
- 0x1, 0xd1, 0x0, 0x97, 0x0, 0x0, 0x46, 0x0,
- 0x0, 0x66, 0x68, 0xc6, 0x66, 0xa6, 0x7b, 0x40,
- 0x0, 0x0, 0x1c, 0x10, 0x6, 0x90, 0x0, 0x0,
- 0x0, 0x0, 0x15, 0x67, 0xae, 0x30, 0x0, 0x0,
- 0x0, 0x0, 0x1, 0x6a, 0x63, 0x9e, 0x70, 0x0,
- 0x0, 0x25, 0x66, 0x23, 0xa0, 0x1, 0x81, 0x0,
- 0x2, 0x66, 0x66, 0x67, 0xd6, 0x66, 0x6c, 0xb0,
- 0x0, 0x0, 0x0, 0x9a, 0xb7, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x9, 0x82, 0xb1, 0xa2, 0x0, 0x0,
- 0x0, 0x2, 0xa4, 0x3, 0xb0, 0x1b, 0xb5, 0x30,
- 0x2, 0x66, 0x0, 0x3, 0xc0, 0x0, 0x5c, 0xb1,
- 0x3, 0x0, 0x0, 0x1, 0x30, 0x0, 0x0, 0x0,
-
- /* U+689D "條" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0xd2, 0x0, 0x1d, 0x20, 0x0, 0x0,
- 0x0, 0x5, 0xb0, 0x0, 0x69, 0x0, 0x1, 0x0,
- 0x0, 0xb, 0x40, 0x0, 0xc8, 0x66, 0xac, 0x0,
- 0x0, 0x2d, 0x9, 0x4, 0x78, 0x2, 0xd1, 0x0,
- 0x0, 0x9e, 0xd, 0x8, 0x5, 0x8c, 0x20, 0x0,
- 0x2, 0x8d, 0xc, 0x10, 0x3, 0xea, 0x0, 0x0,
- 0x7, 0xd, 0xc, 0x0, 0x68, 0x6, 0xe9, 0x51,
- 0x0, 0xd, 0xc, 0x36, 0x20, 0xb3, 0x17, 0x80,
- 0x0, 0xd, 0xc, 0x0, 0x0, 0xd0, 0x6, 0x20,
- 0x0, 0xd, 0xd, 0x57, 0x66, 0xe6, 0x66, 0x40,
- 0x0, 0xd, 0xd, 0x2, 0xa0, 0xd0, 0x40, 0x0,
- 0x0, 0xd, 0x4, 0xa, 0x50, 0xd0, 0x4c, 0x20,
- 0x0, 0xd, 0x0, 0x66, 0x0, 0xd0, 0x7, 0xc0,
- 0x0, 0xe, 0x3, 0x40, 0x6b, 0xe0, 0x0, 0x50,
- 0x0, 0x5, 0x0, 0x0, 0x3, 0x20, 0x0, 0x0,
-
- /* U+68B0 "械" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x10, 0x0, 0x0, 0xa4, 0x62, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0xa2, 0x1e, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0xa2, 0x4, 0x10,
- 0x5, 0x6e, 0x97, 0x76, 0x66, 0xc7, 0x68, 0x80,
- 0x1, 0x1d, 0x0, 0x51, 0x50, 0x93, 0x0, 0x0,
- 0x0, 0x3e, 0x91, 0x93, 0xb2, 0x93, 0x8, 0x50,
- 0x0, 0x8e, 0x4a, 0x92, 0xb0, 0x74, 0xd, 0x30,
- 0x0, 0xad, 0x18, 0xb7, 0xd9, 0x86, 0x3b, 0x0,
- 0x4, 0x5d, 0x1, 0xa1, 0xb0, 0x49, 0xa3, 0x0,
- 0x7, 0xd, 0x0, 0xb0, 0xb0, 0x1d, 0xb0, 0x0,
- 0x21, 0xd, 0x0, 0xa0, 0xb0, 0xe, 0x40, 0x40,
- 0x0, 0xd, 0x4, 0x50, 0xc0, 0x98, 0xb0, 0x70,
- 0x0, 0xe, 0x8, 0x0, 0x68, 0x30, 0x8a, 0xa0,
- 0x0, 0xe, 0x31, 0x2, 0x71, 0x0, 0x8, 0xe0,
- 0x0, 0x3, 0x0, 0x2, 0x0, 0x0, 0x0, 0x10,
-
- /* U+68EE "森" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa, 0x50, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa, 0x30, 0x0, 0x65, 0x0,
- 0x3, 0x76, 0x66, 0xcf, 0xb7, 0x66, 0x65, 0x0,
- 0x0, 0x0, 0x4, 0xcb, 0x49, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x4b, 0x1a, 0x32, 0xc3, 0x0, 0x0,
- 0x0, 0x6, 0x80, 0xa, 0x40, 0x3d, 0xc6, 0x10,
- 0x2, 0x63, 0xa1, 0xb, 0x40, 0xd3, 0x6a, 0x30,
- 0x1, 0x0, 0xd0, 0x52, 0x0, 0xd0, 0x6, 0x0,
- 0x6, 0x68, 0xf6, 0x64, 0x6b, 0xf9, 0x67, 0x30,
- 0x0, 0x9, 0xf6, 0x0, 0xd, 0xe7, 0x0, 0x0,
- 0x0, 0x39, 0xd4, 0xd0, 0x95, 0xd3, 0xa0, 0x0,
- 0x0, 0x90, 0xd0, 0x45, 0x70, 0xd0, 0x99, 0x0,
- 0x6, 0x0, 0xd0, 0x36, 0x0, 0xd0, 0xc, 0x80,
- 0x10, 0x0, 0xe0, 0x20, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0x0, 0x60, 0x0, 0x0, 0x60, 0x0, 0x0,
-
- /* U+690D "植" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x40, 0x0, 0x9, 0x40, 0x0, 0x0,
- 0x0, 0xd, 0x10, 0x0, 0xb, 0x20, 0x1, 0x0,
- 0x0, 0xd, 0x10, 0x76, 0x6d, 0x76, 0x7d, 0x30,
- 0x4, 0x4d, 0x69, 0x0, 0xb, 0x10, 0x0, 0x0,
- 0x3, 0x2e, 0x22, 0xa, 0x6c, 0x66, 0xb2, 0x0,
- 0x0, 0x1f, 0x40, 0xd, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0x6f, 0x7a, 0xe, 0x66, 0x66, 0xe0, 0x0,
- 0x0, 0xad, 0x1a, 0xd, 0x0, 0x0, 0xd0, 0x0,
- 0x2, 0x7d, 0x10, 0xd, 0x66, 0x66, 0xe0, 0x0,
- 0x7, 0xd, 0x10, 0xd, 0x0, 0x0, 0xd0, 0x0,
- 0x14, 0xd, 0x10, 0xd, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0xd, 0x10, 0xd, 0x66, 0x66, 0xe0, 0x0,
- 0x0, 0xd, 0x10, 0xd, 0x0, 0x0, 0xd3, 0x30,
- 0x0, 0xd, 0x27, 0x67, 0x66, 0x66, 0x77, 0x70,
- 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+691C "検" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x40, 0x0, 0x9, 0x90, 0x0, 0x0,
- 0x0, 0xd, 0x10, 0x0, 0x1e, 0x80, 0x0, 0x0,
- 0x0, 0xc, 0x10, 0x0, 0xa6, 0x1a, 0x20, 0x0,
- 0x14, 0x4d, 0x5b, 0x16, 0x70, 0x1, 0xc9, 0x30,
- 0x2, 0x2e, 0x32, 0x66, 0x66, 0x66, 0xc9, 0x90,
- 0x0, 0x2f, 0x41, 0x20, 0x0, 0xc0, 0x0, 0x0,
- 0x0, 0x7f, 0x99, 0xb, 0x66, 0xd6, 0x6c, 0x10,
- 0x0, 0xbd, 0x1c, 0xd, 0x1, 0xb0, 0xd, 0x0,
- 0x2, 0x7c, 0x10, 0xd, 0x2, 0xa0, 0xd, 0x0,
- 0x7, 0xd, 0x10, 0xe, 0x68, 0xd6, 0x6d, 0x0,
- 0x23, 0xd, 0x10, 0x4, 0x9, 0x95, 0x1, 0x0,
- 0x0, 0xd, 0x10, 0x0, 0x2c, 0xa, 0x30, 0x0,
- 0x0, 0xd, 0x10, 0x1, 0xb2, 0x1, 0xc6, 0x0,
- 0x0, 0xd, 0x10, 0x39, 0x10, 0x0, 0x1c, 0xb1,
- 0x0, 0x6, 0x3, 0x20, 0x0, 0x0, 0x0, 0x0,
-
- /* U+695A "楚" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x10, 0x0, 0x2c, 0x0, 0x0, 0x0,
- 0x0, 0xd0, 0x10, 0x2, 0xb0, 0x0, 0x0, 0x66,
- 0x6e, 0x6a, 0x36, 0x9c, 0x69, 0x60, 0x0, 0xa,
- 0xe4, 0x0, 0x1e, 0xc1, 0x0, 0x0, 0x4, 0xad,
- 0x5a, 0xa, 0x5b, 0x88, 0x0, 0x1, 0xa0, 0xd0,
- 0x48, 0x42, 0xb0, 0xa5, 0x1, 0x70, 0xe, 0x6,
- 0x20, 0x2b, 0x0, 0x0, 0x14, 0x66, 0x76, 0x66,
- 0x66, 0x66, 0xa3, 0x0, 0x11, 0x0, 0x0, 0xd0,
- 0x0, 0x48, 0x20, 0x0, 0x5, 0xc0, 0xd, 0x0,
- 0x3, 0x0, 0x0, 0x0, 0xa6, 0x0, 0xd6, 0x66,
- 0x87, 0x0, 0x0, 0x1c, 0x80, 0xd, 0x0, 0x0,
- 0x0, 0x0, 0x9, 0x33, 0x91, 0xd0, 0x0, 0x0,
- 0x0, 0x4, 0x60, 0x3, 0xce, 0x54, 0x34, 0x46,
- 0x42, 0x60, 0x0, 0x0, 0x5a, 0xce, 0xff, 0xc0,
- 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+696D "業" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x42, 0x0, 0xc1, 0xc, 0x30, 0x50, 0x0,
- 0x0, 0xb, 0x80, 0xd0, 0xd, 0xa, 0x90, 0x0,
- 0x0, 0x1, 0xd0, 0xd0, 0xd, 0x63, 0x0, 0x0,
- 0x4, 0x66, 0x66, 0xd6, 0x6d, 0x66, 0x6a, 0xa0,
- 0x0, 0x0, 0x19, 0x20, 0x6, 0x60, 0x0, 0x0,
- 0x0, 0x0, 0x3, 0x90, 0x8, 0x0, 0x61, 0x0,
- 0x0, 0x26, 0x66, 0x6a, 0x76, 0x66, 0x95, 0x0,
- 0x0, 0x0, 0x0, 0xa, 0x30, 0x5, 0x30, 0x0,
- 0x0, 0x5, 0x66, 0x6c, 0x76, 0x66, 0x50, 0x0,
- 0x3, 0x66, 0x66, 0x6c, 0x85, 0x55, 0x6d, 0x30,
- 0x0, 0x0, 0x1, 0xce, 0x57, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2c, 0x4a, 0x34, 0xa2, 0x0, 0x0,
- 0x0, 0x6, 0xa1, 0xa, 0x30, 0x3c, 0xc7, 0x41,
- 0x4, 0x73, 0x0, 0xa, 0x30, 0x0, 0x5b, 0x90,
- 0x1, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0,
-
- /* U+6975 "極" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x16, 0x66, 0x66, 0xb4, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0x7, 0x60, 0x0,
- 0x15, 0x5e, 0x7a, 0x0, 0x0, 0xc2, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0x86, 0x92, 0xc4, 0x66, 0x90,
- 0x0, 0x2f, 0x40, 0xc0, 0xc0, 0xc0, 0x7, 0x60,
- 0x0, 0x6f, 0x6a, 0xc0, 0xc0, 0xc4, 0x1c, 0x10,
- 0x0, 0xbe, 0xa, 0xc0, 0xc0, 0xc0, 0x9b, 0x0,
- 0x2, 0x9d, 0x0, 0xc0, 0xc0, 0xc0, 0x7c, 0x0,
- 0x7, 0x1d, 0x0, 0xc6, 0xd0, 0xc0, 0x96, 0x90,
- 0x14, 0xd, 0x0, 0xc0, 0x50, 0xc5, 0x20, 0x80,
- 0x0, 0xd, 0x0, 0x20, 0x55, 0xc3, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0xa, 0x50, 0x0, 0x0,
- 0x0, 0xd, 0x5, 0x66, 0x66, 0x66, 0x69, 0xd1,
- 0x0, 0x6, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+697D "楽" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x75, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x3, 0x7, 0x3, 0x0, 0x2, 0x0, 0x8,
- 0xa1, 0xd6, 0x66, 0xd4, 0xa, 0x90, 0x0, 0x9,
- 0x6c, 0x0, 0xc, 0x18, 0x30, 0x0, 0x0, 0x0,
- 0xc6, 0x66, 0xd4, 0x20, 0x0, 0x0, 0x5, 0x5d,
- 0x0, 0xc, 0x15, 0xb9, 0x10, 0x8b, 0x20, 0xd6,
- 0x66, 0xd1, 0x0, 0x8a, 0x2, 0x0, 0xa, 0x6,
- 0x28, 0x0, 0x0, 0x10, 0x56, 0x66, 0x66, 0xd7,
- 0x66, 0x69, 0xe2, 0x1, 0x0, 0x0, 0xcf, 0x71,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xa6, 0xc1, 0xa2,
- 0x0, 0x0, 0x0, 0x1, 0xa4, 0xc, 0x11, 0xc7,
- 0x10, 0x0, 0x4, 0x81, 0x0, 0xc1, 0x0, 0x9f,
- 0xb6, 0x26, 0x30, 0x0, 0xc, 0x10, 0x0, 0x26,
- 0x0, 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0,
-
- /* U+6982 "概" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x0, 0xb6, 0xc4, 0x66, 0x97, 0x80,
- 0x0, 0xc, 0x0, 0xc0, 0xb0, 0x0, 0xc0, 0x0,
- 0x4, 0x5d, 0x95, 0xc0, 0xb0, 0x93, 0xc0, 0x0,
- 0x1, 0x1d, 0x10, 0xd6, 0xc0, 0xb0, 0xc0, 0x0,
- 0x0, 0x4e, 0x30, 0xc0, 0xb1, 0xa1, 0xb0, 0x0,
- 0x0, 0x8e, 0x97, 0xc0, 0xb7, 0xb7, 0xc8, 0xb0,
- 0x0, 0xbc, 0x1a, 0xd6, 0xb1, 0x16, 0x70, 0x0,
- 0x3, 0x6c, 0x0, 0xc2, 0x10, 0xb, 0xe1, 0x0,
- 0x8, 0xc, 0x0, 0xc0, 0xa1, 0x1b, 0xc0, 0x0,
- 0x23, 0xc, 0x0, 0xc4, 0x98, 0x94, 0xc0, 0x0,
- 0x0, 0xc, 0x0, 0xf6, 0x4, 0x90, 0xc0, 0x50,
- 0x0, 0xd, 0x0, 0x40, 0x1a, 0x0, 0xc0, 0x80,
- 0x0, 0xd, 0x0, 0x3, 0x70, 0x0, 0x9b, 0xd2,
- 0x0, 0x4, 0x0, 0x12, 0x0, 0x0, 0x0, 0x0,
-
- /* U+69CB "構" */
- 0x0, 0x0, 0x0, 0x0, 0x20, 0x1, 0x0, 0x0,
- 0x0, 0xd, 0x10, 0x0, 0x95, 0x8, 0x70, 0x0,
- 0x0, 0xc, 0x0, 0x56, 0xb7, 0x6b, 0x8c, 0x70,
- 0x0, 0xc, 0x0, 0x0, 0x92, 0x8, 0x41, 0x0,
- 0x2, 0x2c, 0x29, 0x36, 0xb7, 0x6b, 0x9c, 0x20,
- 0x4, 0x4d, 0x44, 0x20, 0x92, 0x8, 0x42, 0x40,
- 0x0, 0x3e, 0x73, 0x66, 0x76, 0xc7, 0x67, 0x70,
- 0x0, 0x7d, 0x78, 0x3, 0x0, 0xc0, 0x5, 0x0,
- 0x0, 0xbc, 0x16, 0x1d, 0x66, 0xd6, 0x6d, 0x0,
- 0x3, 0x8c, 0x0, 0xd, 0x66, 0xd6, 0x6c, 0x0,
- 0x8, 0xc, 0x0, 0xb, 0x0, 0xc0, 0xc, 0x0,
- 0x23, 0xc, 0x5, 0x6d, 0x66, 0xd6, 0x6e, 0xc1,
- 0x0, 0xc, 0x0, 0xb, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0xc, 0x0, 0xb, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0xd, 0x0, 0x1b, 0x0, 0x7, 0xd9, 0x0,
- 0x0, 0x2, 0x0, 0x2, 0x0, 0x0, 0x30, 0x0,
-
- /* U+69D8 "様" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb, 0x20, 0x0, 0x92, 0x0, 0xb5, 0x0,
- 0x0, 0xc, 0x0, 0x0, 0x3d, 0x1, 0x91, 0x0,
- 0x0, 0xc, 0x0, 0x26, 0x69, 0x98, 0x69, 0x80,
- 0x2, 0x2c, 0x28, 0x0, 0x0, 0xd0, 0x1, 0x0,
- 0x4, 0x4d, 0x44, 0x15, 0x66, 0xe6, 0x6b, 0x10,
- 0x0, 0x1f, 0x70, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0x5f, 0x5a, 0x46, 0x66, 0xd6, 0x69, 0xb0,
- 0x0, 0xad, 0x7, 0x0, 0x0, 0xb3, 0x3, 0x0,
- 0x1, 0x9c, 0x2, 0x66, 0x92, 0xd3, 0x1c, 0x40,
- 0x7, 0x1c, 0x0, 0x0, 0xd2, 0xd7, 0x60, 0x0,
- 0x23, 0xc, 0x0, 0x5, 0x80, 0xd2, 0x80, 0x0,
- 0x0, 0xc, 0x0, 0xb, 0x0, 0xd0, 0xa6, 0x0,
- 0x0, 0xc, 0x0, 0x92, 0x0, 0xd0, 0xd, 0xa0,
- 0x0, 0xd, 0x6, 0x10, 0x7d, 0xd0, 0x1, 0x20,
- 0x0, 0x2, 0x0, 0x0, 0x2, 0x10, 0x0, 0x0,
-
- /* U+6A02 "樂" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x10, 0x7, 0x60, 0x1, 0xd1, 0x0,
- 0x0, 0x3a, 0x0, 0x7a, 0x6a, 0x16, 0x70, 0x0,
- 0x0, 0x91, 0x84, 0xc0, 0xc, 0xa, 0xa, 0x30,
- 0x5, 0x84, 0xd2, 0xc0, 0xc, 0x76, 0x4b, 0x0,
- 0x6, 0x6a, 0x40, 0xc6, 0x6c, 0x76, 0xb2, 0x0,
- 0x0, 0x18, 0x20, 0xc0, 0xc, 0x3, 0x73, 0x0,
- 0x0, 0x80, 0x64, 0xc6, 0x6c, 0x9, 0x7, 0x50,
- 0x8, 0xd9, 0x6c, 0x92, 0x17, 0x9c, 0x85, 0xd0,
- 0x0, 0x0, 0x4, 0x6, 0xa0, 0x10, 0x9, 0x30,
- 0x6, 0x76, 0x66, 0xaf, 0xb8, 0x66, 0x67, 0x40,
- 0x0, 0x0, 0x4, 0xd8, 0x77, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x6a, 0x16, 0x70, 0xb5, 0x0, 0x0,
- 0x0, 0x29, 0x50, 0x6, 0x70, 0xa, 0xd8, 0x50,
- 0x5, 0x50, 0x0, 0x6, 0x70, 0x0, 0x4b, 0x50,
- 0x0, 0x0, 0x0, 0x3, 0x20, 0x0, 0x0, 0x0,
-
- /* U+6A19 "標" */
- 0x0, 0x9, 0x30, 0x0, 0x0, 0x0, 0x5, 0x30,
- 0x0, 0xc, 0x0, 0x67, 0x6c, 0x6c, 0x66, 0x50,
- 0x0, 0xc, 0x0, 0x0, 0xb, 0xb, 0x1, 0x0,
- 0x16, 0x6d, 0x6c, 0x5b, 0x5c, 0x5c, 0x5d, 0x30,
- 0x0, 0xf, 0x0, 0x1a, 0xb, 0xb, 0xc, 0x0,
- 0x0, 0x4f, 0x60, 0x1a, 0xb, 0xb, 0xc, 0x0,
- 0x0, 0x9f, 0x69, 0x2c, 0x66, 0x66, 0x69, 0x0,
- 0x0, 0xac, 0x9, 0x5, 0x66, 0x66, 0x87, 0x0,
- 0x6, 0x3c, 0x0, 0x1, 0x0, 0x0, 0x0, 0x20,
- 0x6, 0xc, 0x1, 0x86, 0x66, 0x96, 0x66, 0xa1,
- 0x20, 0xc, 0x0, 0x5, 0x50, 0xb2, 0x20, 0x0,
- 0x0, 0xc, 0x0, 0x2c, 0x20, 0xb0, 0x69, 0x0,
- 0x0, 0xc, 0x3, 0x90, 0x0, 0xb0, 0x9, 0x90,
- 0x0, 0xc, 0x25, 0x0, 0x5a, 0xb0, 0x0, 0x50,
- 0x0, 0x5, 0x0, 0x0, 0x3, 0x10, 0x0, 0x0,
-
- /* U+6A21 "模" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x30, 0x0, 0xc2, 0xd, 0x20, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0xd0, 0xd, 0x5, 0x30,
- 0x0, 0xd, 0x2, 0x66, 0xe6, 0x6e, 0x66, 0x50,
- 0x16, 0x6e, 0x6d, 0x20, 0xa0, 0x9, 0x0, 0x0,
- 0x0, 0x1f, 0x0, 0xd, 0x66, 0x66, 0xa8, 0x0,
- 0x0, 0x4f, 0x30, 0xd, 0x0, 0x0, 0x85, 0x0,
- 0x0, 0x9f, 0x79, 0xd, 0x66, 0x66, 0xb5, 0x0,
- 0x0, 0xad, 0xd, 0xd, 0x0, 0x0, 0x85, 0x0,
- 0x6, 0x3d, 0x1, 0xe, 0x6b, 0x86, 0xa4, 0x0,
- 0x6, 0xd, 0x0, 0x1, 0xa, 0x30, 0x2, 0x30,
- 0x20, 0xd, 0x6, 0x76, 0x6e, 0x96, 0x67, 0x80,
- 0x0, 0xd, 0x0, 0x0, 0x4a, 0x36, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x1, 0xc1, 0x7, 0x91, 0x0,
- 0x0, 0xd, 0x0, 0x49, 0x20, 0x0, 0x7f, 0xa0,
- 0x0, 0x5, 0x14, 0x20, 0x0, 0x0, 0x2, 0x0,
-
- /* U+6A23 "樣" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x30, 0x0, 0x92, 0x5, 0xa0, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0x39, 0x7, 0x16, 0x0,
- 0x0, 0xd, 0x0, 0x56, 0x66, 0xd6, 0x66, 0x10,
- 0x16, 0x6e, 0x6c, 0x36, 0x66, 0xd6, 0x89, 0x0,
- 0x0, 0x1f, 0x0, 0x0, 0x1, 0xb0, 0x0, 0x10,
- 0x0, 0x5f, 0x60, 0x66, 0x66, 0xa6, 0x67, 0x90,
- 0x0, 0xaf, 0x5b, 0x0, 0x5, 0xc1, 0x0, 0x0,
- 0x1, 0xad, 0x9, 0x0, 0x0, 0x70, 0x0, 0x0,
- 0x7, 0x3d, 0x0, 0x16, 0x66, 0xe1, 0xd, 0x20,
- 0x6, 0xd, 0x3, 0x66, 0x83, 0xd5, 0x83, 0x0,
- 0x20, 0xd, 0x0, 0x2, 0xd2, 0xc7, 0x30, 0x0,
- 0x0, 0xd, 0x0, 0xb, 0x30, 0xc0, 0xc2, 0x0,
- 0x0, 0xd, 0x0, 0x84, 0x0, 0xd0, 0x2e, 0x71,
- 0x0, 0xd, 0x17, 0x20, 0x6b, 0xd0, 0x2, 0x50,
- 0x0, 0x4, 0x0, 0x0, 0x4, 0x20, 0x0, 0x0,
-
- /* U+6A2A "横" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x10, 0x4, 0x90, 0xc, 0x20, 0x0,
- 0x0, 0xd, 0x0, 0x3, 0x90, 0xd, 0x6, 0x0,
- 0x0, 0xd, 0x2, 0x68, 0xb6, 0x6e, 0x66, 0x10,
- 0x16, 0x6e, 0x87, 0x3, 0x90, 0xd, 0x0, 0x10,
- 0x0, 0x3e, 0x7, 0x66, 0x89, 0x69, 0x67, 0x80,
- 0x0, 0x6e, 0x10, 0x10, 0xa, 0x10, 0x2, 0x0,
- 0x0, 0xad, 0x95, 0xc6, 0x6c, 0x66, 0x7c, 0x0,
- 0x0, 0xad, 0x1b, 0xb0, 0xa, 0x10, 0x39, 0x0,
- 0x6, 0x3d, 0x0, 0xb6, 0x6c, 0x66, 0x79, 0x0,
- 0x8, 0xd, 0x0, 0xb0, 0xa, 0x10, 0x39, 0x0,
- 0x21, 0xd, 0x0, 0xc6, 0x6b, 0x66, 0x79, 0x0,
- 0x0, 0xd, 0x0, 0x71, 0x80, 0x14, 0x11, 0x0,
- 0x0, 0xd, 0x0, 0x1c, 0x60, 0x2, 0xb5, 0x0,
- 0x0, 0xe, 0x3, 0x82, 0x0, 0x0, 0xd, 0x40,
- 0x0, 0x5, 0x13, 0x0, 0x0, 0x0, 0x1, 0x20,
-
- /* U+6A39 "樹" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x10, 0x4, 0x90, 0x0, 0xb, 0x10,
- 0x0, 0xd, 0x0, 0x4, 0x81, 0x40, 0xc, 0x0,
- 0x0, 0xd, 0x4, 0x68, 0xb6, 0x50, 0xc, 0x0,
- 0x6, 0x6e, 0x86, 0x3, 0x81, 0x2, 0x2c, 0x70,
- 0x0, 0x1d, 0x0, 0x66, 0x88, 0x54, 0x4d, 0x41,
- 0x0, 0x4e, 0x10, 0x76, 0x69, 0x10, 0xc, 0x0,
- 0x0, 0x9e, 0xa5, 0xc0, 0xc, 0x18, 0xc, 0x0,
- 0x0, 0xbd, 0x18, 0xc0, 0xc, 0xa, 0x4c, 0x0,
- 0x5, 0x5d, 0x0, 0xc6, 0x6b, 0x5, 0x3c, 0x0,
- 0x8, 0xd, 0x0, 0x50, 0xb, 0x20, 0xc, 0x0,
- 0x21, 0xd, 0x0, 0x75, 0x29, 0x0, 0xc, 0x0,
- 0x0, 0xd, 0x0, 0x25, 0x74, 0x50, 0xc, 0x0,
- 0x0, 0xd, 0x7, 0xaa, 0x72, 0x0, 0xc, 0x0,
- 0x0, 0xe, 0x5, 0x20, 0x0, 0x17, 0xdc, 0x0,
- 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x31, 0x0,
-
- /* U+6A4B "橋" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x20, 0x0, 0x2, 0x6a, 0xf6, 0x0,
- 0x0, 0xd, 0x0, 0x35, 0x6d, 0x61, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x12, 0x3d, 0x22, 0x26, 0x30,
- 0x6, 0x6e, 0x87, 0x34, 0xc5, 0x49, 0x44, 0x30,
- 0x0, 0x1e, 0x0, 0x8, 0x60, 0x2, 0xb6, 0x0,
- 0x0, 0x5e, 0x10, 0x76, 0xb6, 0x6b, 0x78, 0xc2,
- 0x0, 0x9e, 0xa7, 0x2, 0x90, 0x9, 0x40, 0x0,
- 0x0, 0xbd, 0x18, 0x2, 0x96, 0x69, 0x20, 0x0,
- 0x5, 0x4d, 0x0, 0xc5, 0x55, 0x55, 0x56, 0xd0,
- 0x7, 0xd, 0x0, 0xd0, 0x66, 0x69, 0x31, 0xa0,
- 0x21, 0xd, 0x0, 0xd0, 0xb0, 0xc, 0x11, 0xa0,
- 0x0, 0xd, 0x0, 0xd0, 0xb6, 0x6d, 0x1, 0xa0,
- 0x0, 0xd, 0x0, 0xd0, 0x40, 0x2, 0x2, 0xa0,
- 0x0, 0xe, 0x0, 0xd0, 0x0, 0x4, 0x9d, 0x80,
- 0x0, 0x4, 0x0, 0x40, 0x0, 0x0, 0x4, 0x0,
-
- /* U+6A5F "機" */
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xf, 0x10, 0x8, 0x40, 0xd2, 0x49, 0x0,
- 0x0, 0xd, 0x0, 0xb, 0x10, 0xd0, 0x93, 0x0,
- 0x0, 0xd, 0x20, 0x62, 0x97, 0xc3, 0x65, 0x90,
- 0x6, 0x6e, 0xa7, 0xda, 0xc0, 0xcb, 0xad, 0x20,
- 0x0, 0x1d, 0x0, 0x8, 0x30, 0xc1, 0x45, 0x0,
- 0x0, 0x4e, 0x10, 0x53, 0x55, 0xc2, 0x62, 0x90,
- 0x0, 0x8e, 0xa5, 0xc7, 0x49, 0xc9, 0xa5, 0xb0,
- 0x0, 0xad, 0x18, 0x9, 0x20, 0xb0, 0x65, 0x0,
- 0x3, 0x5d, 0x2, 0x6d, 0x66, 0xd6, 0x6c, 0xd2,
- 0x7, 0xd, 0x0, 0xc, 0x0, 0x92, 0x1, 0x0,
- 0x13, 0xd, 0x0, 0xd, 0x0, 0x75, 0xe, 0x30,
- 0x0, 0xd, 0x0, 0x38, 0xa3, 0x2b, 0xa9, 0x0,
- 0x0, 0xd, 0x0, 0x91, 0x14, 0xd, 0xb0, 0x32,
- 0x0, 0xd, 0x4, 0x60, 0x4, 0x94, 0xc8, 0x72,
- 0x0, 0xd, 0x35, 0x0, 0x52, 0x0, 0x7, 0xd4,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+6B21 "次" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
- 0x10, 0x0, 0x0, 0xb6, 0x0, 0x0, 0x0, 0xa,
- 0x40, 0x0, 0xf, 0x20, 0x0, 0x0, 0x0, 0x2f,
- 0x23, 0x4, 0xa0, 0x0, 0x0, 0x0, 0x0, 0x91,
- 0x50, 0xa9, 0x66, 0x66, 0xb5, 0x0, 0x0, 0x42,
- 0x1b, 0x3, 0x0, 0x1d, 0x50, 0x0, 0x7, 0x8,
- 0x20, 0xc6, 0x6, 0x20, 0x0, 0x2, 0x52, 0x70,
- 0xd, 0x40, 0x10, 0x0, 0x0, 0x80, 0x60, 0x0,
- 0xd5, 0x0, 0x0, 0x1, 0x38, 0x0, 0x0, 0x3a,
- 0x60, 0x0, 0x0, 0x4d, 0x40, 0x0, 0x8, 0x52,
- 0x60, 0x0, 0x0, 0x94, 0x0, 0x0, 0xc0, 0xa,
- 0x0, 0x0, 0xa, 0x50, 0x0, 0x93, 0x0, 0x5a,
- 0x0, 0x0, 0xc7, 0x0, 0x75, 0x0, 0x0, 0xba,
- 0x0, 0x3, 0x21, 0x83, 0x0, 0x0, 0x0, 0xcb,
- 0x10, 0x1, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+6B32 "欲" */
- 0x0, 0x3, 0x1, 0x0, 0x3, 0xa0, 0x0, 0x0,
- 0x0, 0x4d, 0x3, 0xa2, 0x6, 0x90, 0x0, 0x0,
- 0x1, 0xb1, 0x0, 0x6a, 0xa, 0x20, 0x0, 0x0,
- 0x8, 0x10, 0xb3, 0x2, 0xd, 0x66, 0x69, 0xb0,
- 0x10, 0x4, 0xe2, 0x0, 0x54, 0x10, 0xa, 0x20,
- 0x0, 0xc, 0x27, 0xc2, 0x70, 0xd4, 0x31, 0x0,
- 0x0, 0x93, 0x0, 0x5a, 0x10, 0xc4, 0x0, 0x0,
- 0x6, 0x40, 0x0, 0x10, 0x0, 0xc5, 0x0, 0x0,
- 0x21, 0xb6, 0x66, 0xe0, 0x2, 0xa7, 0x0, 0x0,
- 0x0, 0xc0, 0x0, 0xc0, 0x6, 0x68, 0x0, 0x0,
- 0x0, 0xc0, 0x0, 0xc0, 0xb, 0x15, 0x60, 0x0,
- 0x0, 0xc0, 0x0, 0xc0, 0x48, 0x0, 0xd0, 0x0,
- 0x0, 0xc6, 0x66, 0xd1, 0xa0, 0x0, 0x7c, 0x10,
- 0x0, 0x70, 0x0, 0x57, 0x0, 0x0, 0xc, 0xb1,
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
-
- /* U+6B4C "歌" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x40, 0x78, 0x0, 0x0,
- 0x4, 0x76, 0x66, 0x6d, 0x61, 0xb4, 0x0, 0x0,
- 0x0, 0x66, 0x68, 0xc, 0x0, 0xc0, 0x0, 0x0,
- 0x0, 0x84, 0xb, 0xc, 0x5, 0x96, 0x66, 0xe3,
- 0x0, 0x88, 0x6b, 0xc, 0x8, 0x5, 0x5, 0x60,
- 0x0, 0x72, 0x6, 0x1b, 0x31, 0xf, 0x13, 0x0,
- 0x6, 0x66, 0x66, 0x68, 0xb0, 0x1f, 0x10, 0x0,
- 0x1, 0x0, 0x0, 0x3a, 0x0, 0x3b, 0x40, 0x0,
- 0x1, 0xc6, 0x6c, 0x3a, 0x0, 0x68, 0x70, 0x0,
- 0x0, 0xd0, 0xc, 0x3a, 0x0, 0xa4, 0x90, 0x0,
- 0x0, 0xe6, 0x6c, 0x3a, 0x0, 0xc0, 0x64, 0x0,
- 0x1, 0xb0, 0x5, 0x3a, 0x6, 0x60, 0x1c, 0x0,
- 0x0, 0x0, 0x5, 0x7a, 0x29, 0x0, 0x9, 0xb0,
- 0x0, 0x0, 0x1, 0xc5, 0x70, 0x0, 0x0, 0xa3,
- 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0,
-
- /* U+6B50 "歐" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x3, 0x0, 0x0, 0x16, 0x9, 0x60, 0x0, 0x0,
- 0xc, 0x66, 0x66, 0x65, 0xc, 0x20, 0x0, 0x0,
- 0xc, 0x6, 0x66, 0x85, 0xc, 0x0, 0x0, 0x0,
- 0xc, 0x9, 0x10, 0x84, 0x5a, 0x66, 0x6d, 0x50,
- 0xc, 0x9, 0x10, 0x83, 0x90, 0x51, 0x28, 0x0,
- 0xc, 0xa, 0x66, 0xa5, 0x40, 0xa7, 0x30, 0x0,
- 0xc, 0x3, 0x0, 0x0, 0x0, 0xb6, 0x0, 0x0,
- 0xc, 0x46, 0xc4, 0x98, 0x60, 0xc6, 0x0, 0x0,
- 0xc, 0x53, 0xd0, 0xb6, 0x40, 0xe7, 0x0, 0x0,
- 0xc, 0x53, 0xd0, 0xb6, 0x42, 0xc5, 0x30, 0x0,
- 0xc, 0x58, 0xe0, 0xca, 0x46, 0x71, 0xa0, 0x0,
- 0xc, 0x41, 0x10, 0x51, 0xc, 0x10, 0xa4, 0x0,
- 0xc, 0x0, 0x0, 0x50, 0x84, 0x0, 0x3f, 0x40,
- 0x9, 0x66, 0x66, 0x6a, 0x40, 0x0, 0x7, 0xc1,
- 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0,
-
- /* U+6B61 "歡" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x7, 0x51, 0xb0, 0x0, 0x96, 0x0, 0x0,
- 0x4, 0x7a, 0x86, 0xc8, 0x80, 0xd3, 0x0, 0x0,
- 0x0, 0x6, 0x20, 0x80, 0x1, 0xd0, 0x0, 0x0,
- 0x2, 0x96, 0xa8, 0x6b, 0x36, 0xb6, 0x69, 0xa0,
- 0x2, 0xa2, 0x9a, 0xc, 0xa, 0x22, 0x9, 0x10,
- 0x2, 0xa9, 0x87, 0x68, 0x26, 0x2d, 0x22, 0x0,
- 0x0, 0x2d, 0x38, 0x0, 0x20, 0x3c, 0x0, 0x0,
- 0x0, 0xa9, 0x6a, 0x69, 0x60, 0x4b, 0x0, 0x0,
- 0x3, 0xd3, 0xc, 0x5, 0x0, 0x78, 0x30, 0x0,
- 0x5, 0x88, 0x6d, 0x66, 0x10, 0xa3, 0x70, 0x0,
- 0x0, 0x88, 0x6d, 0x69, 0x0, 0xd0, 0x90, 0x0,
- 0x0, 0x83, 0xc, 0x2, 0x7, 0x60, 0x48, 0x0,
- 0x0, 0x88, 0x69, 0x69, 0x59, 0x0, 0xd, 0x60,
- 0x0, 0x92, 0x0, 0x4, 0x70, 0x0, 0x3, 0xc2,
- 0x0, 0x0, 0x0, 0x32, 0x0, 0x0, 0x0, 0x0,
-
- /* U+6B62 "止" */
- 0x0, 0x0, 0x0, 0x0, 0xb4, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xd1, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xd1, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xd1, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0xe2, 0x0, 0xd1, 0x0, 0x4, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0xd6, 0x66, 0x8a, 0x20,
- 0x0, 0x0, 0xd0, 0x0, 0xc1, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0xc1, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0xc1, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0xc1, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0xc1, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0xc1, 0x0, 0x1, 0x0,
- 0x5, 0x66, 0xe6, 0x66, 0xd6, 0x66, 0x6d, 0xc0,
- 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+6B63 "正" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0,
- 0x0, 0x57, 0x66, 0x66, 0x96, 0x66, 0x6b, 0x60,
- 0x0, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x10, 0x0, 0xe0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xf2, 0x0, 0xe0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0xe6, 0x66, 0xd8, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0xe0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0xe0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0xe0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0xe0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0xe0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0xe0, 0x0, 0xb, 0x30,
- 0x6, 0x76, 0x66, 0x66, 0x66, 0x66, 0x66, 0x50,
-
- /* U+6B64 "此" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x8, 0x10, 0xd, 0x30, 0x0, 0x0,
- 0x0, 0x0, 0xe, 0x0, 0xd, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xe, 0x0, 0xd, 0x0, 0x0, 0x0,
- 0x0, 0x40, 0xd, 0x0, 0xd, 0x0, 0x7, 0x10,
- 0x0, 0xd3, 0xd, 0x0, 0xd, 0x0, 0x8e, 0x40,
- 0x0, 0xc0, 0xd, 0x6b, 0x6d, 0x19, 0x60, 0x0,
- 0x0, 0xc0, 0xd, 0x0, 0xd, 0x60, 0x0, 0x0,
- 0x0, 0xc0, 0xd, 0x0, 0xd, 0x0, 0x0, 0x0,
- 0x0, 0xc0, 0xd, 0x0, 0xd, 0x0, 0x0, 0x0,
- 0x0, 0xc0, 0xd, 0x0, 0xd, 0x0, 0x0, 0x0,
- 0x0, 0xc0, 0xd, 0x3, 0x3d, 0x0, 0x0, 0x50,
- 0x0, 0xc0, 0x4d, 0x72, 0xd, 0x0, 0x0, 0x70,
- 0x17, 0xec, 0x60, 0x0, 0xd, 0x10, 0x4, 0xd0,
- 0x2c, 0x40, 0x0, 0x0, 0x6, 0xbc, 0xcb, 0x80,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+6B65 "步" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe2, 0x0, 0x0, 0x0, 0x0,
- 0x5, 0x0, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xe1, 0x0, 0xe6, 0x66, 0xa9, 0x0, 0x0, 0xd,
- 0x0, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd0,
- 0x0, 0xe0, 0x0, 0x0, 0x10, 0x56, 0x6d, 0x66,
- 0x6d, 0x66, 0x66, 0xbc, 0x10, 0x0, 0x0, 0x0,
- 0xa1, 0x0, 0x0, 0x0, 0x0, 0x3, 0x40, 0xe,
- 0x0, 0x0, 0x60, 0x0, 0x0, 0xc7, 0x0, 0xe0,
- 0x0, 0xad, 0x20, 0x0, 0x69, 0x0, 0xe, 0x0,
- 0x8c, 0x10, 0x0, 0x2a, 0x0, 0x0, 0xf0, 0xaa,
- 0x0, 0x0, 0x17, 0x0, 0x0, 0x6, 0xc6, 0x0,
- 0x0, 0x1, 0x0, 0x0, 0x29, 0xa1, 0x0, 0x0,
- 0x0, 0x0, 0x26, 0x76, 0x10, 0x0, 0x0, 0x0,
- 0x3, 0x43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+6B69 "歩" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xd2, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x72, 0x0, 0xe0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd2, 0x0, 0xe6, 0x66, 0xd2, 0x0,
- 0x0, 0x0, 0xd1, 0x0, 0xe0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd1, 0x0, 0xe0, 0x0, 0x3, 0x20,
- 0x6, 0x76, 0xa6, 0x66, 0xb6, 0x66, 0x6a, 0x90,
- 0x0, 0x0, 0x0, 0x3, 0xd0, 0x23, 0x0, 0x0,
- 0x0, 0x0, 0x98, 0x2, 0xb0, 0x4, 0xb4, 0x0,
- 0x0, 0x4, 0xd2, 0x2, 0xb0, 0x1, 0x5e, 0x70,
- 0x0, 0x1b, 0x10, 0x2, 0xb0, 0x1d, 0xc4, 0x90,
- 0x1, 0x81, 0x0, 0x3, 0xb3, 0xe9, 0x0, 0x0,
- 0x1, 0x0, 0x0, 0x0, 0x8d, 0x40, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x6b, 0x60, 0x0, 0x0, 0x0,
- 0x0, 0x3, 0x88, 0x40, 0x0, 0x0, 0x0, 0x0,
- 0x3, 0x42, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+6B6F "歯" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x10, 0xa, 0x50, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xe1, 0xa, 0x30, 0x2, 0x20, 0x0,
- 0x0, 0x0, 0xd0, 0xa, 0x86, 0x68, 0x70, 0x0,
- 0x0, 0x0, 0xd0, 0xa, 0x30, 0x0, 0x1, 0x0,
- 0x5, 0x66, 0xe6, 0x6c, 0x86, 0x66, 0x6e, 0x80,
- 0x1, 0x0, 0x0, 0x6, 0x30, 0x11, 0x0, 0x0,
- 0x0, 0x92, 0x2a, 0x9, 0x40, 0xa9, 0x5, 0x0,
- 0x0, 0xd0, 0x7, 0x59, 0x34, 0x70, 0xe, 0x10,
- 0x0, 0xd1, 0x66, 0x6b, 0x8a, 0x6d, 0x4e, 0x0,
- 0x0, 0xd0, 0x20, 0x9e, 0x94, 0x0, 0xe, 0x0,
- 0x0, 0xd0, 0x4, 0x89, 0x39, 0xb1, 0xe, 0x0,
- 0x0, 0xd0, 0x38, 0x9, 0x30, 0x98, 0xe, 0x0,
- 0x0, 0xd2, 0x40, 0x8, 0x20, 0x1, 0xe, 0x0,
- 0x1, 0xd6, 0x66, 0x66, 0x66, 0x66, 0x6e, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
-
- /* U+6B72 "歲" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x10, 0xb, 0x50, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc2, 0xa, 0x76, 0x6b, 0x60, 0x0,
- 0x0, 0x0, 0xc0, 0xa, 0x20, 0x0, 0x3, 0x20,
- 0x7, 0x66, 0x96, 0x68, 0x86, 0x76, 0x69, 0x80,
- 0x0, 0x0, 0x0, 0x0, 0x7a, 0xa, 0x41, 0x0,
- 0x0, 0x96, 0x66, 0x66, 0x9c, 0x67, 0x8c, 0x30,
- 0x0, 0xa3, 0x0, 0x0, 0x2c, 0x0, 0x30, 0x0,
- 0x0, 0xa4, 0x77, 0x7b, 0x1e, 0x0, 0xe7, 0x0,
- 0x0, 0xb2, 0x15, 0x50, 0xb, 0x36, 0xb0, 0x0,
- 0x0, 0xc1, 0xb7, 0x5a, 0x66, 0x9d, 0x20, 0x0,
- 0x0, 0xd2, 0x75, 0xac, 0x11, 0xf5, 0x0, 0x10,
- 0x1, 0xa3, 0x7, 0xe1, 0xb, 0xba, 0x0, 0x60,
- 0x6, 0x30, 0x4a, 0x11, 0xb5, 0xa, 0xb3, 0x90,
- 0x7, 0x17, 0x50, 0x68, 0x10, 0x0, 0x8f, 0xc0,
- 0x20, 0x30, 0x5, 0x10, 0x0, 0x0, 0x0, 0x40,
-
- /* U+6B73 "歳" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x20, 0xa, 0x50, 0x1, 0x0, 0x0,
- 0x0, 0x0, 0xc2, 0xa, 0x66, 0x6b, 0x60, 0x0,
- 0x0, 0x0, 0xc0, 0xa, 0x10, 0x0, 0x6, 0x10,
- 0x7, 0x66, 0x96, 0x68, 0x86, 0x76, 0x69, 0x70,
- 0x0, 0x0, 0x0, 0x0, 0x8b, 0xb, 0x41, 0x0,
- 0x0, 0x96, 0x66, 0x66, 0x9c, 0x67, 0x7c, 0x30,
- 0x0, 0xc1, 0x0, 0x1, 0x2b, 0x0, 0x20, 0x0,
- 0x0, 0xc5, 0x77, 0x79, 0x6e, 0x0, 0xe7, 0x0,
- 0x0, 0xc0, 0x5, 0x60, 0xb, 0x36, 0xc0, 0x0,
- 0x0, 0xc0, 0xc6, 0x69, 0x16, 0xad, 0x20, 0x0,
- 0x0, 0xc5, 0x55, 0x64, 0xa1, 0xf5, 0x0, 0x0,
- 0x2, 0xa5, 0x5, 0x60, 0x3b, 0xc9, 0x0, 0x50,
- 0x6, 0x30, 0x6e, 0x21, 0xa4, 0xb, 0xa1, 0x80,
- 0x8, 0x0, 0x1, 0x57, 0x0, 0x0, 0x9f, 0xb0,
- 0x20, 0x0, 0x4, 0x0, 0x0, 0x0, 0x1, 0x40,
-
- /* U+6B77 "歷" */
- 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x9, 0x20,
- 0x0, 0xd6, 0x66, 0x68, 0x66, 0x66, 0x67, 0x40,
- 0x0, 0xd1, 0x37, 0xbb, 0x21, 0x48, 0xc8, 0x0,
- 0x0, 0xd2, 0x15, 0x70, 0x3, 0x2c, 0x0, 0x0,
- 0x0, 0xd4, 0x69, 0xab, 0x36, 0x6d, 0x69, 0x70,
- 0x0, 0xd0, 0xe, 0x91, 0x1, 0xcc, 0x60, 0x0,
- 0x0, 0xd0, 0x5a, 0x8c, 0x18, 0x4c, 0x57, 0x0,
- 0x0, 0xd1, 0x75, 0x71, 0x64, 0xc, 0x9, 0x90,
- 0x0, 0xc5, 0x5, 0x62, 0x35, 0x9, 0x0, 0x0,
- 0x0, 0xa0, 0x0, 0x0, 0x1c, 0x0, 0x0, 0x0,
- 0x3, 0x70, 0xd, 0x10, 0x1c, 0x66, 0xc3, 0x0,
- 0x7, 0x20, 0xc, 0x0, 0x1b, 0x0, 0x0, 0x0,
- 0x9, 0x0, 0xc, 0x0, 0x1b, 0x0, 0x0, 0x10,
- 0x25, 0x56, 0x6d, 0x66, 0x6c, 0x66, 0x6b, 0xd1,
- 0x10, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+6B7B "死" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0x10,
- 0x7, 0x66, 0x97, 0x66, 0x69, 0x66, 0x6a, 0x80,
- 0x0, 0x0, 0xd2, 0x0, 0xc, 0x10, 0x0, 0x0,
- 0x0, 0x1, 0xe0, 0x0, 0xc, 0x10, 0x0, 0x0,
- 0x0, 0x5, 0x80, 0x15, 0xc, 0x10, 0xa, 0x20,
- 0x0, 0xb, 0x76, 0x9d, 0xc, 0x10, 0x9b, 0x20,
- 0x0, 0x2b, 0x0, 0x87, 0xc, 0x18, 0x60, 0x0,
- 0x0, 0xa8, 0x50, 0xd2, 0xc, 0x72, 0x0, 0x0,
- 0x4, 0x60, 0xe3, 0xc0, 0xc, 0x10, 0x0, 0x0,
- 0x15, 0x0, 0x2a, 0x40, 0xc, 0x10, 0x0, 0x10,
- 0x0, 0x0, 0x4b, 0x0, 0xc, 0x10, 0x0, 0x60,
- 0x0, 0x1, 0xb1, 0x0, 0xc, 0x10, 0x1, 0x70,
- 0x0, 0x1a, 0x10, 0x0, 0xc, 0x41, 0x16, 0xd1,
- 0x3, 0x70, 0x0, 0x0, 0x5, 0xab, 0xba, 0x70,
- 0x12, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+6B8A "殊" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x1, 0xc1, 0x0, 0x0,
- 0x5, 0x66, 0x6b, 0x64, 0xc0, 0xd0, 0x0, 0x0,
- 0x0, 0x3b, 0x0, 0x7, 0x70, 0xd0, 0x4, 0x0,
- 0x0, 0x58, 0x0, 0xa, 0x66, 0xe6, 0x79, 0x10,
- 0x0, 0x89, 0x6a, 0x38, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0xb1, 0xe, 0x60, 0x0, 0xd0, 0x0, 0x20,
- 0x0, 0xc0, 0x2b, 0x56, 0x68, 0xe6, 0x69, 0xb1,
- 0x5, 0x88, 0x58, 0x0, 0x1e, 0xd6, 0x0, 0x0,
- 0x7, 0xa, 0x94, 0x0, 0x87, 0xd7, 0x10, 0x0,
- 0x10, 0x0, 0xc0, 0x2, 0xc0, 0xd2, 0x80, 0x0,
- 0x0, 0x5, 0x70, 0xa, 0x10, 0xd0, 0xa5, 0x0,
- 0x0, 0xa, 0x0, 0x83, 0x0, 0xd0, 0x1e, 0x70,
- 0x0, 0x72, 0x7, 0x20, 0x0, 0xe0, 0x4, 0xa2,
- 0x4, 0x30, 0x20, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x1, 0x0, 0x0, 0x0, 0x0, 0x30, 0x0, 0x0,
-
- /* U+6B8B "残" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x9, 0x51, 0x0, 0x0,
- 0x6, 0x67, 0x66, 0xc1, 0xa, 0x34, 0x90, 0x0,
- 0x0, 0xc, 0x0, 0x0, 0xa, 0x40, 0xa5, 0x0,
- 0x0, 0x39, 0x0, 0x0, 0x9, 0x40, 0x16, 0x0,
- 0x0, 0x75, 0x1, 0x54, 0x6b, 0x96, 0x67, 0x20,
- 0x0, 0xb6, 0x69, 0xb1, 0x8, 0x50, 0x0, 0x0,
- 0x1, 0xc0, 0x7, 0x50, 0x7, 0x62, 0x4b, 0x50,
- 0x6, 0x4b, 0xb, 0x26, 0x69, 0xb3, 0x13, 0x0,
- 0x6, 0xa, 0x3c, 0x0, 0x3, 0xa0, 0x6c, 0x0,
- 0x10, 0x0, 0x57, 0x0, 0x0, 0xe3, 0xd1, 0x0,
- 0x0, 0x0, 0xb1, 0x0, 0x0, 0xbd, 0x10, 0x0,
- 0x0, 0x6, 0x50, 0x0, 0x5, 0xcd, 0x10, 0x50,
- 0x0, 0x37, 0x0, 0x1, 0x97, 0x6, 0xc2, 0x80,
- 0x2, 0x60, 0x2, 0x56, 0x10, 0x0, 0x6e, 0xd0,
- 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x60,
-
- /* U+6BB5 "段" */
- 0x0, 0x0, 0x4, 0xa0, 0x10, 0x2, 0x0, 0x0,
- 0x0, 0xa6, 0x86, 0x41, 0xc6, 0x6e, 0x30, 0x0,
- 0x0, 0xc0, 0x0, 0x0, 0xc0, 0xd, 0x0, 0x0,
- 0x0, 0xc0, 0x2, 0x0, 0xd0, 0xd, 0x0, 0x0,
- 0x0, 0xc6, 0x68, 0x51, 0xb0, 0xc, 0x11, 0x0,
- 0x0, 0xc0, 0x0, 0x8, 0x30, 0x6, 0xaa, 0x40,
- 0x0, 0xc0, 0x3, 0x45, 0x22, 0x23, 0x80, 0x0,
- 0x0, 0xc6, 0x66, 0x33, 0x73, 0x38, 0xb0, 0x0,
- 0x0, 0xc0, 0x0, 0x0, 0x60, 0xc, 0x30, 0x0,
- 0x0, 0xc0, 0x14, 0x62, 0x17, 0x3b, 0x0, 0x0,
- 0x27, 0xeb, 0x83, 0x0, 0x8, 0xc2, 0x0, 0x0,
- 0x18, 0xd0, 0x0, 0x0, 0xa, 0xd3, 0x0, 0x0,
- 0x0, 0xc0, 0x0, 0x3, 0xa3, 0x2d, 0x81, 0x0,
- 0x0, 0xd1, 0x4, 0x75, 0x0, 0x1, 0xaf, 0x90,
- 0x0, 0x30, 0x31, 0x0, 0x0, 0x0, 0x2, 0x0,
-
- /* U+6BCD "母" */
- 0x0, 0x1, 0x40, 0x0, 0x0, 0x0, 0x60, 0x0,
- 0x0, 0x3, 0xd6, 0x66, 0x66, 0x67, 0xe1, 0x0,
- 0x0, 0x5, 0xa0, 0x2a, 0x10, 0x3, 0xb0, 0x0,
- 0x0, 0x6, 0x80, 0x8, 0xa0, 0x4, 0xa0, 0x0,
- 0x0, 0x8, 0x60, 0x1, 0x80, 0x5, 0x90, 0x0,
- 0x16, 0x6b, 0x96, 0x66, 0x66, 0x6a, 0xbb, 0xb0,
- 0x1, 0xb, 0x30, 0x20, 0x0, 0x7, 0x70, 0x0,
- 0x0, 0xd, 0x10, 0x1c, 0x20, 0x8, 0x60, 0x0,
- 0x0, 0xf, 0x0, 0x8, 0xb0, 0xa, 0x50, 0x0,
- 0x0, 0x1d, 0x0, 0x1, 0x60, 0xb, 0x40, 0x0,
- 0x0, 0x5d, 0x66, 0x66, 0x66, 0x6d, 0x8c, 0x90,
- 0x0, 0x14, 0x0, 0x0, 0x0, 0xe, 0x10, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x32, 0x3e, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x9, 0xf8, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0,
-
- /* U+6BCE "毎" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc5, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x4, 0xf6, 0x66, 0x66, 0x66, 0xbb, 0x0,
- 0x0, 0xc, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x83, 0x30, 0x0, 0x0, 0x3, 0x30, 0x0,
- 0x5, 0x22, 0xd6, 0x68, 0xc6, 0x6b, 0x90, 0x0,
- 0x0, 0x4, 0xa0, 0x5, 0x80, 0x9, 0x40, 0x0,
- 0x0, 0x5, 0x80, 0x7, 0x70, 0x9, 0x42, 0x0,
- 0x26, 0x6a, 0xa6, 0x6b, 0x96, 0x6c, 0x8b, 0x80,
- 0x0, 0xa, 0x40, 0xa, 0x30, 0xb, 0x20, 0x0,
- 0x0, 0xc, 0x20, 0xc, 0x10, 0xc, 0x20, 0x0,
- 0x0, 0xe, 0x0, 0xd, 0x0, 0xc, 0x14, 0x0,
- 0x0, 0x3e, 0x66, 0x69, 0x66, 0x6e, 0x6a, 0x40,
- 0x0, 0x1, 0x0, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x39, 0xda, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x70, 0x0, 0x0,
-
- /* U+6BCF "每" */
- 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xe5, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x6, 0xe6, 0x66, 0x66, 0x66, 0xcb, 0x0,
- 0x0, 0x1d, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa4, 0x30, 0x0, 0x0, 0x4, 0x30, 0x0,
- 0x6, 0x42, 0xd6, 0x77, 0x66, 0x6b, 0x80, 0x0,
- 0x22, 0x3, 0xa0, 0xa, 0x80, 0x9, 0x40, 0x0,
- 0x0, 0x5, 0x80, 0x1, 0xd0, 0xa, 0x32, 0x0,
- 0x26, 0x6a, 0xa6, 0x66, 0x66, 0x6c, 0x8b, 0x90,
- 0x0, 0x9, 0x40, 0x27, 0x0, 0xc, 0x20, 0x0,
- 0x0, 0xb, 0x20, 0x8, 0xb0, 0xd, 0x10, 0x0,
- 0x0, 0xd, 0x0, 0x1, 0x90, 0xe, 0x4, 0x0,
- 0x0, 0x2e, 0x66, 0x66, 0x66, 0x6f, 0x6a, 0x50,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1d, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x39, 0xc9, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x70, 0x0, 0x0,
-
- /* U+6BD4 "比" */
- 0x26, 0x0, 0x0, 0x9, 0x10, 0x0, 0x0, 0x2c,
- 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x2b, 0x0,
- 0x0, 0xd, 0x0, 0x3, 0x0, 0x2b, 0x0, 0x0,
- 0xd, 0x0, 0x2f, 0x60, 0x2b, 0x0, 0x0, 0xd,
- 0x1, 0xc5, 0x0, 0x2d, 0x66, 0x9b, 0xd, 0xa,
- 0x30, 0x0, 0x2b, 0x0, 0x0, 0xe, 0x71, 0x0,
- 0x0, 0x2b, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0,
- 0x2b, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x2b,
- 0x0, 0x0, 0xd, 0x0, 0x0, 0x10, 0x2b, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0x60, 0x2b, 0x4, 0x75,
- 0xd, 0x0, 0x0, 0x80, 0x4e, 0xd6, 0x0, 0xf,
- 0x21, 0x15, 0xe1, 0x9, 0x10, 0x0, 0x7, 0xbb,
- 0xbb, 0x70,
-
- /* U+6BDB "毛" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x46, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x25, 0x9d, 0xdb, 0x20, 0x0,
- 0x0, 0x35, 0x67, 0x7e, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x0, 0x5, 0x60, 0x0,
- 0x0, 0x23, 0x46, 0x6e, 0x66, 0x66, 0x50, 0x0,
- 0x0, 0x23, 0x10, 0xd, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x9, 0x40,
- 0x0, 0x0, 0x23, 0x5e, 0x66, 0x66, 0x66, 0x40,
- 0x6, 0x65, 0x32, 0x1d, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x40,
- 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x70,
- 0x0, 0x0, 0x0, 0xe, 0x0, 0x0, 0x1, 0xc0,
- 0x0, 0x0, 0x0, 0xb, 0xdd, 0xdd, 0xdd, 0xb1,
-
- /* U+6C0F "氏" */
- 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x1,
- 0x0, 0x3, 0x69, 0xee, 0x80, 0x0, 0xd, 0x66,
- 0x67, 0xb2, 0x0, 0x0, 0x0, 0xd, 0x0, 0x2,
- 0xb0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x1, 0xc0,
- 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0xd0, 0x0,
- 0x1a, 0x10, 0xe, 0x66, 0x66, 0xe6, 0x66, 0x66,
- 0x30, 0xd, 0x0, 0x0, 0xa3, 0x0, 0x0, 0x0,
- 0xd, 0x0, 0x0, 0x69, 0x0, 0x0, 0x0, 0xd,
- 0x0, 0x0, 0x1e, 0x10, 0x0, 0x0, 0xd, 0x0,
- 0x4, 0x18, 0xb0, 0x0, 0x40, 0xd, 0x5, 0x92,
- 0x0, 0xca, 0x0, 0x80, 0x1f, 0xd7, 0x0, 0x0,
- 0xb, 0xd6, 0x90, 0x1d, 0x30, 0x0, 0x0, 0x0,
- 0x6e, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x30,
-
- /* U+6C11 "民" */
- 0x3, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0,
- 0xb7, 0x66, 0x66, 0x66, 0x6e, 0x30, 0x0, 0xb,
- 0x20, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0xb2,
- 0x0, 0x0, 0x0, 0xe, 0x0, 0x0, 0xb, 0x76,
- 0x66, 0xc6, 0x66, 0xe0, 0x0, 0x0, 0xb2, 0x0,
- 0xd, 0x0, 0x1, 0x0, 0x0, 0xb, 0x20, 0x0,
- 0xb2, 0x0, 0x0, 0x50, 0x0, 0xb7, 0x66, 0x6b,
- 0x86, 0x66, 0x89, 0x30, 0xb, 0x20, 0x0, 0x58,
- 0x0, 0x0, 0x0, 0x0, 0xb2, 0x0, 0x0, 0xd0,
- 0x0, 0x0, 0x0, 0xb, 0x20, 0x0, 0x8, 0x80,
- 0x0, 0x11, 0x0, 0xb2, 0x6, 0x50, 0xd, 0x60,
- 0x5, 0x20, 0xc, 0xac, 0x30, 0x0, 0x2d, 0x91,
- 0x92, 0x0, 0xc9, 0x0, 0x0, 0x0, 0x19, 0xff,
- 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x43,
- 0x0,
-
- /* U+6C14 "气" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x97, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xe2, 0x0, 0x0, 0x0, 0x13, 0x0,
- 0x0, 0x7, 0xb6, 0x66, 0x66, 0x66, 0xaa, 0x10,
- 0x0, 0xc, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0,
- 0x0, 0x83, 0x27, 0x66, 0x66, 0x69, 0x60, 0x0,
- 0x3, 0x60, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0,
- 0x5, 0x7, 0x66, 0x66, 0x66, 0x8d, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x2a, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x2b, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1c, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0x30, 0x60,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0xc1, 0x90,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6f, 0xc0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x60,
-
- /* U+6C17 "気" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc4, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2, 0xe0, 0x0, 0x0, 0x0, 0x37, 0x0,
- 0x0, 0x9, 0x86, 0x66, 0x66, 0x66, 0x66, 0x10,
- 0x0, 0x2a, 0x46, 0x66, 0x66, 0x6a, 0x70, 0x0,
- 0x0, 0xa1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0,
- 0x6, 0x26, 0x76, 0x66, 0x66, 0x6d, 0x50, 0x0,
- 0x12, 0x0, 0x0, 0x0, 0xb5, 0xd, 0x0, 0x0,
- 0x0, 0x4, 0x0, 0x4, 0xd1, 0xd, 0x0, 0x0,
- 0x0, 0x0, 0x66, 0x2d, 0x20, 0xc, 0x0, 0x0,
- 0x0, 0x0, 0x3, 0xf9, 0x0, 0xa, 0x20, 0x0,
- 0x0, 0x0, 0x9, 0x7c, 0xa0, 0x8, 0x50, 0x10,
- 0x0, 0x0, 0x95, 0x0, 0xd7, 0x3, 0xb0, 0x50,
- 0x0, 0x18, 0x20, 0x0, 0x35, 0x0, 0xc4, 0x80,
- 0x1, 0x40, 0x0, 0x0, 0x0, 0x0, 0x2e, 0xd0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x60,
-
- /* U+6C34 "水" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x50, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x30, 0x0, 0x30, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x60, 0x2, 0xe6, 0x0,
- 0x5, 0x66, 0x6d, 0x2c, 0x80, 0x2a, 0x20, 0x0,
- 0x1, 0x0, 0x3c, 0xc, 0x67, 0x60, 0x0, 0x0,
- 0x0, 0x0, 0x87, 0xc, 0x2a, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd1, 0xc, 0x27, 0x40, 0x0, 0x0,
- 0x0, 0x5, 0x90, 0xc, 0x21, 0xd1, 0x0, 0x0,
- 0x0, 0xc, 0x10, 0xc, 0x20, 0x7b, 0x0, 0x0,
- 0x0, 0x76, 0x0, 0xc, 0x20, 0xb, 0xb0, 0x0,
- 0x2, 0x80, 0x0, 0xc, 0x20, 0x1, 0xcd, 0x60,
- 0x16, 0x0, 0x2, 0x1d, 0x20, 0x0, 0x9, 0x30,
- 0x0, 0x0, 0x5, 0xde, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x21, 0x0, 0x0, 0x0, 0x0,
-
- /* U+6C37 "氷" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb5, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb, 0x30, 0x0, 0x0, 0x0, 0x5,
- 0x20, 0x0, 0xb3, 0x0, 0x3, 0x0, 0x0, 0xb,
- 0xb0, 0xb, 0x40, 0x6, 0xd0, 0x0, 0x0, 0xc,
- 0x30, 0xb9, 0x3, 0xb1, 0x0, 0x0, 0x0, 0x3,
- 0x1b, 0xa4, 0x80, 0x0, 0x0, 0x57, 0x66, 0xd6,
- 0xb5, 0x90, 0x0, 0x0, 0x0, 0x0, 0x1d, 0xb,
- 0x3b, 0x10, 0x0, 0x0, 0x0, 0x8, 0x60, 0xb3,
- 0x5a, 0x0, 0x0, 0x0, 0x1, 0xc0, 0xb, 0x30,
- 0xc7, 0x0, 0x0, 0x0, 0xa3, 0x0, 0xb3, 0x2,
- 0xf7, 0x0, 0x0, 0x76, 0x0, 0xb, 0x30, 0x5,
- 0xfb, 0x30, 0x66, 0x0, 0x0, 0xc3, 0x0, 0x4,
- 0xb3, 0x32, 0x0, 0x6, 0xdf, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1, 0x40, 0x0, 0x0, 0x0,
-
- /* U+6C38 "永" */
- 0x0, 0x0, 0x0, 0x39, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x2, 0xf2, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x47, 0x66, 0xe3, 0x0, 0x11, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xf1, 0x0, 0x9b, 0x0,
- 0x0, 0x0, 0x2, 0x0, 0xe6, 0x4, 0xb0, 0x0,
- 0x2, 0x86, 0x6d, 0x70, 0xe7, 0x29, 0x0, 0x0,
- 0x0, 0x0, 0x1e, 0x0, 0xe4, 0xa0, 0x0, 0x0,
- 0x0, 0x0, 0x87, 0x0, 0xe0, 0xb1, 0x0, 0x0,
- 0x0, 0x1, 0xd0, 0x0, 0xe0, 0x5b, 0x0, 0x0,
- 0x0, 0x9, 0x40, 0x0, 0xe0, 0xa, 0x90, 0x0,
- 0x0, 0x57, 0x0, 0x0, 0xe0, 0x0, 0xdc, 0x30,
- 0x2, 0x70, 0x2, 0x44, 0xd0, 0x0, 0x1b, 0xa1,
- 0x4, 0x0, 0x0, 0x4e, 0x90, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0,
-
- /* U+6C42 "求" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x31, 0x40, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x10, 0x6d, 0x20, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x10, 0x8, 0x42, 0x0,
- 0x5, 0x66, 0x66, 0x6e, 0x66, 0x66, 0x8e, 0x20,
- 0x0, 0x0, 0x0, 0xd, 0x50, 0x0, 0x0, 0x0,
- 0x0, 0x28, 0x10, 0xd, 0x70, 0x0, 0x80, 0x0,
- 0x0, 0x5, 0xf2, 0xd, 0x71, 0x8, 0xc3, 0x0,
- 0x0, 0x0, 0xb4, 0xd, 0x38, 0x86, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x4e, 0x1a, 0x30, 0x0, 0x0,
- 0x0, 0x0, 0x49, 0x2d, 0x12, 0xd1, 0x0, 0x0,
- 0x0, 0x4b, 0x70, 0xd, 0x10, 0x6d, 0x20, 0x0,
- 0x2d, 0xc2, 0x0, 0xd, 0x10, 0x8, 0xf8, 0x20,
- 0x6, 0x0, 0x1, 0x1e, 0x10, 0x0, 0x5e, 0x80,
- 0x0, 0x0, 0x6, 0xfd, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x31, 0x0, 0x0, 0x0, 0x0,
-
- /* U+6C5A "汚" */
- 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0x25, 0x0,
- 0x0, 0x2d, 0x11, 0x86, 0x7d, 0x66, 0x65, 0x0,
- 0x0, 0xa, 0x20, 0x0, 0x3a, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x3, 0x0, 0x67, 0x0, 0x0, 0x0,
- 0x19, 0x10, 0x46, 0x66, 0xb9, 0x66, 0x67, 0xc1,
- 0x5, 0xd0, 0x60, 0x0, 0xb2, 0x0, 0x0, 0x0,
- 0x0, 0x80, 0x60, 0x0, 0xd0, 0x0, 0x0, 0x0,
- 0x0, 0x5, 0x20, 0x5, 0xd6, 0x66, 0x6b, 0x10,
- 0x0, 0x9, 0x0, 0x1, 0x40, 0x0, 0x4c, 0x0,
- 0x2, 0x49, 0x0, 0x0, 0x0, 0x0, 0x68, 0x0,
- 0x4, 0xe5, 0x0, 0x0, 0x0, 0x0, 0x86, 0x0,
- 0x0, 0xb3, 0x0, 0x0, 0x0, 0x0, 0xb3, 0x0,
- 0x0, 0xd3, 0x0, 0x0, 0x4, 0x13, 0xe0, 0x0,
- 0x0, 0xa3, 0x0, 0x0, 0x1, 0xbf, 0x70, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x14, 0x0, 0x0,
-
- /* U+6C60 "池" */
- 0x0, 0x71, 0x0, 0x0, 0x6, 0x10, 0x0, 0x0,
- 0x3, 0xe0, 0x0, 0x0, 0xd0, 0x0, 0x0, 0x0,
- 0x9, 0x10, 0x30, 0xd, 0x0, 0x0, 0x1, 0x0,
- 0x4, 0xb, 0x30, 0xd0, 0x3, 0x10, 0x3a, 0x10,
- 0x50, 0xb1, 0xd, 0x45, 0xb7, 0x0, 0x7a, 0x5,
- 0x1c, 0x65, 0xd0, 0x8, 0x40, 0x1, 0x55, 0x34,
- 0xb1, 0xd, 0x0, 0x84, 0x0, 0x0, 0x80, 0xb,
- 0x10, 0xd0, 0x9, 0x30, 0x0, 0x17, 0x0, 0xb1,
- 0xd, 0x0, 0xa3, 0x0, 0x9, 0x30, 0xb, 0x10,
- 0xd4, 0xae, 0x0, 0x19, 0xf0, 0x0, 0xb1, 0xe,
- 0x2, 0x33, 0x20, 0x1d, 0x0, 0xb, 0x10, 0x50,
- 0x0, 0x44, 0x4, 0xd0, 0x0, 0xb3, 0x0, 0x0,
- 0x7, 0xc0, 0x3c, 0x0, 0x4, 0xbc, 0xcc, 0xcc,
- 0xb5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+6C7A "決" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x43, 0x0, 0x0, 0xd, 0x20, 0x0, 0x0, 0x0,
- 0xd4, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x0, 0x5,
- 0x60, 0x10, 0xe, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x53, 0x76, 0xe6, 0x6c, 0x60, 0x6, 0x60, 0x6,
- 0x0, 0xd, 0x0, 0xb3, 0x0, 0xc, 0x54, 0x20,
- 0x0, 0xd0, 0xb, 0x30, 0x0, 0x43, 0x80, 0x0,
- 0xd, 0x0, 0xb3, 0x0, 0x0, 0x27, 0x56, 0x66,
- 0xd6, 0x6c, 0x9c, 0x10, 0x9, 0x11, 0x10, 0x49,
- 0x50, 0x0, 0x0, 0x46, 0xb0, 0x0, 0x9, 0x48,
- 0x10, 0x0, 0x0, 0xa8, 0x0, 0x1, 0xd0, 0x2b,
- 0x0, 0x0, 0x8, 0x70, 0x0, 0x95, 0x0, 0xa8,
- 0x0, 0x0, 0xa7, 0x0, 0x68, 0x0, 0x1, 0xda,
- 0x10, 0x4, 0x40, 0x57, 0x0, 0x0, 0x2, 0xdd,
- 0x10, 0x0, 0x12, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+6C88 "沈" */
- 0x0, 0x10, 0x0, 0x0, 0x3b, 0x0, 0x0, 0x0,
- 0x0, 0x87, 0x0, 0x0, 0x3b, 0x0, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0x20, 0x3b, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0x11, 0xb6, 0x7c, 0x66, 0x6e, 0x30,
- 0x15, 0x0, 0x48, 0x70, 0x3a, 0x0, 0x35, 0x0,
- 0x8, 0x90, 0x52, 0x0, 0x49, 0x0, 0x10, 0x0,
- 0x0, 0x63, 0x20, 0x0, 0x6d, 0x50, 0x0, 0x0,
- 0x0, 0x7, 0x0, 0x0, 0x9c, 0x60, 0x0, 0x0,
- 0x0, 0x8, 0x0, 0x0, 0xd8, 0x60, 0x0, 0x0,
- 0x0, 0x65, 0x0, 0x3, 0xb7, 0x60, 0x0, 0x0,
- 0x18, 0xf2, 0x0, 0xa, 0x37, 0x60, 0x0, 0x30,
- 0x0, 0xf0, 0x0, 0x48, 0x7, 0x60, 0x0, 0x60,
- 0x1, 0xf0, 0x2, 0x90, 0x6, 0x60, 0x0, 0xa0,
- 0x3, 0xf0, 0x37, 0x0, 0x3, 0xdb, 0xbb, 0xc1,
- 0x0, 0x31, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+6C92 "沒" */
- 0x0, 0x31, 0x0, 0x2, 0xb0, 0x0, 0x0, 0x0,
- 0x0, 0x1d, 0x30, 0x7, 0x80, 0x0, 0x23, 0x0,
- 0x0, 0x6, 0x71, 0xb, 0x66, 0x66, 0xaa, 0x0,
- 0x0, 0x0, 0x5, 0x38, 0x0, 0x0, 0x85, 0x0,
- 0x8, 0x20, 0x5, 0x90, 0x0, 0x0, 0xb2, 0x0,
- 0x2, 0xe1, 0x47, 0x20, 0x0, 0x2b, 0xc0, 0x0,
- 0x0, 0x81, 0x81, 0x66, 0x66, 0x67, 0x95, 0x0,
- 0x0, 0x2, 0x60, 0x6, 0x0, 0x0, 0xd5, 0x0,
- 0x0, 0x9, 0x10, 0x7, 0x0, 0x5, 0xa0, 0x0,
- 0x4, 0x5a, 0x0, 0x2, 0x80, 0x1d, 0x10, 0x0,
- 0x1, 0xc7, 0x0, 0x0, 0x95, 0xc4, 0x0, 0x0,
- 0x0, 0x95, 0x0, 0x0, 0x1f, 0xa0, 0x0, 0x0,
- 0x0, 0xb5, 0x0, 0x3, 0xc5, 0xab, 0x40, 0x0,
- 0x0, 0x74, 0x3, 0x98, 0x10, 0x5, 0xee, 0xa2,
- 0x0, 0x0, 0x54, 0x0, 0x0, 0x0, 0x5, 0x30,
-
- /* U+6CB9 "油" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xb4, 0x0, 0x0, 0x0,
- 0x4a, 0x10, 0x0, 0xb, 0x10, 0x0, 0x0, 0x0,
- 0x96, 0x0, 0x0, 0xb1, 0x0, 0x0, 0x0, 0x1,
- 0x14, 0x86, 0x6d, 0x66, 0x6b, 0x10, 0x60, 0x0,
- 0x4d, 0x0, 0xb1, 0x0, 0xd0, 0x6, 0xb0, 0x50,
- 0xd0, 0xb, 0x10, 0xd, 0x0, 0xa, 0x7, 0xd,
- 0x0, 0xb1, 0x0, 0xd0, 0x0, 0x3, 0x60, 0xd0,
- 0xb, 0x10, 0xd, 0x0, 0x0, 0x91, 0xd, 0x66,
- 0xd6, 0x66, 0xd0, 0x0, 0x1b, 0x0, 0xd0, 0xb,
- 0x10, 0xd, 0x0, 0x7e, 0x70, 0xd, 0x0, 0xb1,
- 0x0, 0xd0, 0x0, 0xc4, 0x0, 0xd0, 0xb, 0x10,
- 0xd, 0x0, 0xd, 0x40, 0xd, 0x66, 0xc6, 0x66,
- 0xd0, 0x0, 0xe4, 0x0, 0xd0, 0x0, 0x0, 0xd,
- 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x10,
-
- /* U+6CBB "治" */
- 0x1, 0x0, 0x0, 0x0, 0x63, 0x0, 0x0, 0x0,
- 0x1c, 0x40, 0x0, 0xe, 0x50, 0x0, 0x0, 0x0,
- 0x5b, 0x1, 0x7, 0x60, 0x1, 0x0, 0x0, 0x0,
- 0x21, 0x31, 0x90, 0x0, 0x83, 0x0, 0x50, 0x0,
- 0x50, 0x90, 0x0, 0x0, 0xc5, 0x3, 0xd1, 0x6,
- 0xbc, 0xa8, 0x76, 0x67, 0xf0, 0xb, 0x33, 0x44,
- 0x30, 0x0, 0x0, 0x7, 0x0, 0x0, 0x80, 0x3,
- 0x0, 0x0, 0x5, 0x0, 0x0, 0x19, 0x0, 0xe6,
- 0x66, 0x67, 0xc0, 0x0, 0x8, 0x50, 0xd, 0x0,
- 0x0, 0x2a, 0x0, 0x29, 0xf1, 0x0, 0xd0, 0x0,
- 0x2, 0xa0, 0x0, 0x1f, 0x0, 0xd, 0x0, 0x0,
- 0x2a, 0x0, 0x3, 0xe0, 0x0, 0xd6, 0x66, 0x67,
- 0xa0, 0x0, 0x3d, 0x0, 0xd, 0x0, 0x0, 0x2a,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+6CC1 "況" */
- 0x0, 0x30, 0x0, 0x30, 0x0, 0x0, 0x3, 0x0,
- 0x0, 0x1d, 0x20, 0xb7, 0x66, 0x66, 0x7d, 0x0,
- 0x0, 0x8, 0x61, 0xa2, 0x0, 0x0, 0x2b, 0x0,
- 0x0, 0x0, 0x5, 0xa2, 0x0, 0x0, 0x2b, 0x0,
- 0x27, 0x0, 0x41, 0xa2, 0x0, 0x0, 0x2b, 0x0,
- 0x8, 0x90, 0x60, 0xa2, 0x0, 0x0, 0x2b, 0x0,
- 0x1, 0x92, 0x50, 0xb7, 0xd6, 0xe6, 0x7a, 0x0,
- 0x0, 0x8, 0x0, 0x10, 0xd0, 0xd0, 0x0, 0x0,
- 0x0, 0x19, 0x0, 0x0, 0xd0, 0xd0, 0x0, 0x0,
- 0x24, 0xa4, 0x0, 0x2, 0xb0, 0xd0, 0x0, 0x0,
- 0x5, 0xf0, 0x0, 0x7, 0x60, 0xd0, 0x0, 0x20,
- 0x0, 0xf0, 0x0, 0x1c, 0x0, 0xd0, 0x0, 0x60,
- 0x3, 0xf0, 0x1, 0xb2, 0x0, 0xc0, 0x0, 0xb0,
- 0x1, 0xa0, 0x38, 0x10, 0x0, 0x8c, 0xbb, 0xc1,
- 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+6CCA "泊" */
- 0x1, 0x0, 0x0, 0x0, 0x28, 0x0, 0x0, 0x1,
- 0xb2, 0x0, 0x0, 0x5a, 0x0, 0x0, 0x0, 0x79,
- 0x0, 0x0, 0x80, 0x0, 0x10, 0x0, 0x2, 0x5,
- 0xc6, 0x76, 0x66, 0xd5, 0x41, 0x0, 0x51, 0xc0,
- 0x0, 0x0, 0xd1, 0x1d, 0x30, 0x60, 0xc0, 0x0,
- 0x0, 0xd1, 0x6, 0x84, 0x30, 0xc0, 0x0, 0x0,
- 0xd1, 0x0, 0x8, 0x0, 0xd6, 0x66, 0x66, 0xe1,
- 0x0, 0x27, 0x0, 0xc0, 0x0, 0x0, 0xd1, 0x0,
- 0xa2, 0x0, 0xc0, 0x0, 0x0, 0xd1, 0x3b, 0xd0,
- 0x0, 0xc0, 0x0, 0x0, 0xd1, 0x3, 0xb0, 0x0,
- 0xc0, 0x0, 0x0, 0xd1, 0x5, 0xb0, 0x0, 0xd6,
- 0x66, 0x66, 0xe1, 0x5, 0xb0, 0x1, 0xc0, 0x0,
- 0x0, 0xc1, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x10,
-
- /* U+6CD5 "法" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x40, 0x0, 0x0, 0xb, 0x50, 0x0, 0x0,
- 0x0, 0x3d, 0x10, 0x0, 0xb, 0x10, 0x0, 0x0,
- 0x0, 0xa, 0x31, 0x0, 0xb, 0x10, 0x1, 0x0,
- 0x0, 0x0, 0x5, 0x76, 0x6d, 0x66, 0x79, 0x0,
- 0x37, 0x0, 0x50, 0x0, 0xb, 0x10, 0x0, 0x0,
- 0x9, 0x90, 0x60, 0x0, 0xb, 0x10, 0x0, 0x0,
- 0x1, 0x83, 0x40, 0x0, 0xb, 0x10, 0x1, 0x40,
- 0x0, 0x8, 0x18, 0x66, 0x6d, 0x66, 0x67, 0x70,
- 0x0, 0x18, 0x0, 0x0, 0x6d, 0x10, 0x0, 0x0,
- 0x23, 0xb3, 0x0, 0x1, 0xd2, 0x0, 0x0, 0x0,
- 0x5, 0xf0, 0x0, 0x9, 0x40, 0x6, 0x30, 0x0,
- 0x0, 0xe0, 0x0, 0x56, 0x0, 0x0, 0xb5, 0x0,
- 0x3, 0xe0, 0x7, 0xb6, 0x78, 0x76, 0x6e, 0x40,
- 0x1, 0xa0, 0x9, 0xb6, 0x30, 0x0, 0x8, 0x40,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+6CE2 "波" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x50, 0x0, 0x0, 0x2, 0xc0, 0x0, 0x0,
- 0x0, 0x3d, 0x0, 0x0, 0x1, 0xb0, 0x0, 0x0,
- 0x0, 0xa, 0x11, 0x20, 0x1, 0xb0, 0x2, 0x20,
- 0x0, 0x0, 0x5, 0xd6, 0x66, 0xd6, 0x6c, 0xb0,
- 0x19, 0x10, 0x23, 0xd0, 0x1, 0xb0, 0x17, 0x0,
- 0x4, 0xd0, 0x60, 0xd0, 0x1, 0xb0, 0x0, 0x0,
- 0x0, 0x71, 0x60, 0xd5, 0x66, 0xd6, 0x6a, 0x0,
- 0x0, 0x7, 0x10, 0xd0, 0x50, 0x0, 0x78, 0x0,
- 0x0, 0xa, 0x0, 0xc0, 0x33, 0x0, 0xd0, 0x0,
- 0x12, 0x86, 0x3, 0x90, 0x9, 0x9, 0x50, 0x0,
- 0x5, 0xf2, 0x7, 0x40, 0x2, 0xc9, 0x0, 0x0,
- 0x0, 0xe0, 0xb, 0x0, 0x4, 0xcb, 0x0, 0x0,
- 0x0, 0xf0, 0x63, 0x0, 0x89, 0x5, 0xd5, 0x0,
- 0x0, 0xb3, 0x50, 0x68, 0x30, 0x0, 0x3d, 0xc1,
- 0x0, 0x2, 0x4, 0x10, 0x0, 0x0, 0x0, 0x0,
-
- /* U+6CE3 "泣" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x30, 0x0, 0x0, 0x91, 0x0, 0x0, 0x0,
- 0x0, 0x3d, 0x10, 0x0, 0x4d, 0x0, 0x0, 0x0,
- 0x0, 0xa, 0x40, 0x0, 0xb, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2, 0x66, 0x66, 0x66, 0xad, 0x10,
- 0x8, 0x10, 0x4, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x4, 0xe0, 0x50, 0x20, 0x0, 0xa, 0x60, 0x0,
- 0x0, 0x90, 0x70, 0x52, 0x0, 0xd, 0x30, 0x0,
- 0x0, 0x3, 0x50, 0xb, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0x9, 0x10, 0xc, 0x30, 0x39, 0x0, 0x0,
- 0x1, 0x3b, 0x0, 0x9, 0x80, 0x64, 0x0, 0x0,
- 0x5, 0xe7, 0x0, 0x7, 0x80, 0x90, 0x0, 0x0,
- 0x0, 0xa5, 0x0, 0x1, 0x10, 0x80, 0x0, 0x0,
- 0x0, 0xc5, 0x0, 0x0, 0x3, 0x40, 0x7, 0x60,
- 0x0, 0xa4, 0x37, 0x66, 0x66, 0x66, 0x66, 0x50,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+6CE8 "注" */
- 0x0, 0x20, 0x0, 0x0, 0x60, 0x0, 0x0, 0x0,
- 0x6, 0xa0, 0x0, 0x4, 0xe2, 0x0, 0x0, 0x0,
- 0xd, 0x30, 0x0, 0xb, 0x30, 0x1, 0x0, 0x0,
- 0x31, 0x56, 0x66, 0x66, 0x67, 0xf4, 0x32, 0x0,
- 0x50, 0x20, 0xe, 0x0, 0x0, 0x0, 0xc6, 0x7,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0x4, 0xb2, 0x50,
- 0x0, 0xe, 0x0, 0x0, 0x0, 0x1, 0x81, 0x0,
- 0x0, 0xe0, 0x7, 0x30, 0x0, 0xa, 0x2, 0x86,
- 0x6e, 0x66, 0x65, 0x0, 0x6, 0x70, 0x0, 0x0,
- 0xe0, 0x0, 0x0, 0x29, 0xf2, 0x0, 0x0, 0xe,
- 0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0xe0,
- 0x0, 0x0, 0x3, 0xe0, 0x0, 0x0, 0xe, 0x0,
- 0x8, 0x30, 0x4e, 0x4, 0x76, 0x66, 0x66, 0x66,
- 0x75, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+6CF3 "泳" */
- 0x0, 0x40, 0x0, 0x2, 0xa8, 0x0, 0x0, 0x0,
- 0x2, 0xd2, 0x0, 0x0, 0xa7, 0x0, 0x0, 0x0,
- 0x9, 0x40, 0x0, 0x5, 0x20, 0x0, 0x0, 0x0,
- 0x2, 0x25, 0x76, 0xe4, 0x0, 0x20, 0x18, 0x10,
- 0x50, 0x0, 0xe, 0x40, 0x5d, 0x10, 0x6d, 0x7,
- 0x0, 0x30, 0xe6, 0x38, 0x0, 0x0, 0x82, 0x67,
- 0x7f, 0x2e, 0x84, 0x0, 0x0, 0x0, 0x81, 0x3,
- 0xa0, 0xe6, 0x30, 0x0, 0x0, 0xa, 0x0, 0x66,
- 0xe, 0x19, 0x0, 0x0, 0x27, 0x80, 0xb, 0x10,
- 0xe0, 0xb3, 0x0, 0x5, 0xf5, 0x3, 0x90, 0xe,
- 0x3, 0xd1, 0x0, 0xe, 0x30, 0xa0, 0x0, 0xe0,
- 0xa, 0xd3, 0x1, 0xf2, 0x62, 0x11, 0x1f, 0x0,
- 0xb, 0x70, 0xc, 0x20, 0x0, 0x6f, 0xd0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x31, 0x0, 0x0,
- 0x0,
-
- /* U+6D0B "洋" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x10, 0x0, 0x24, 0x0, 0x8, 0x70, 0x0,
- 0x0, 0x78, 0x0, 0xa, 0x80, 0xd, 0x20, 0x0,
- 0x0, 0xd, 0x30, 0x2, 0xd0, 0x46, 0x0, 0x0,
- 0x0, 0x3, 0x4, 0x66, 0x76, 0xa6, 0x7e, 0x30,
- 0x13, 0x0, 0x22, 0x20, 0xc, 0x10, 0x0, 0x0,
- 0x9, 0xa0, 0x60, 0x0, 0xc, 0x10, 0x10, 0x0,
- 0x1, 0xd0, 0x70, 0x66, 0x6d, 0x66, 0xa8, 0x0,
- 0x0, 0x3, 0x50, 0x0, 0xc, 0x10, 0x0, 0x0,
- 0x0, 0x9, 0x0, 0x0, 0xc, 0x10, 0x0, 0x0,
- 0x0, 0x1b, 0x5, 0x66, 0x6d, 0x66, 0x6c, 0x90,
- 0x6, 0xd8, 0x1, 0x0, 0xc, 0x10, 0x0, 0x0,
- 0x0, 0xb5, 0x0, 0x0, 0xc, 0x10, 0x0, 0x0,
- 0x0, 0xd4, 0x0, 0x0, 0xc, 0x10, 0x0, 0x0,
- 0x0, 0xe4, 0x0, 0x0, 0xd, 0x10, 0x0, 0x0,
- 0x0, 0x10, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0,
-
- /* U+6D17 "洗" */
- 0x0, 0x10, 0x0, 0x0, 0x7, 0x20, 0x0, 0x0,
- 0x0, 0x88, 0x0, 0x38, 0xb, 0x10, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0x79, 0xb, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0x4, 0xb8, 0x6c, 0x66, 0xc9, 0x0,
- 0x16, 0x0, 0x41, 0x90, 0xb, 0x0, 0x0, 0x0,
- 0x6, 0xc0, 0x66, 0x10, 0xb, 0x0, 0x0, 0x0,
- 0x0, 0x90, 0x61, 0x0, 0xb, 0x0, 0x6, 0x30,
- 0x0, 0x4, 0x47, 0x67, 0xc6, 0xb8, 0x66, 0x40,
- 0x0, 0x9, 0x0, 0x3, 0xa0, 0x93, 0x0, 0x0,
- 0x0, 0x1b, 0x0, 0x5, 0x80, 0x93, 0x0, 0x0,
- 0x6, 0xe9, 0x0, 0x9, 0x50, 0x93, 0x0, 0x20,
- 0x0, 0x97, 0x0, 0xd, 0x0, 0x93, 0x0, 0x60,
- 0x0, 0xd6, 0x0, 0xa5, 0x0, 0x94, 0x1, 0xa0,
- 0x0, 0xc6, 0x19, 0x40, 0x0, 0x4d, 0xbc, 0xb0,
- 0x0, 0x1, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+6D32 "洲" */
- 0x0, 0x41, 0x0, 0x13, 0x0, 0x0, 0x8, 0x20,
- 0x1, 0xd2, 0x3, 0xc0, 0x9, 0x10, 0xb2, 0x0,
- 0x7, 0x32, 0x2a, 0x0, 0xc0, 0xb, 0x10, 0x0,
- 0x0, 0x42, 0xa0, 0xc, 0x0, 0xb1, 0x8, 0x30,
- 0x50, 0x29, 0x0, 0xc0, 0xb, 0x10, 0x3f, 0x6,
- 0x53, 0x97, 0xc, 0x43, 0xb1, 0x0, 0x50, 0x6b,
- 0x49, 0x76, 0xc0, 0xdb, 0x10, 0x0, 0x65, 0xb5,
- 0x74, 0x3c, 0x5, 0xb1, 0x0, 0xa, 0x0, 0x75,
- 0x0, 0xc0, 0xb, 0x10, 0x36, 0x90, 0xa, 0x20,
- 0xc, 0x0, 0xb1, 0x3, 0xe6, 0x0, 0xb0, 0x0,
- 0xc0, 0xb, 0x10, 0xb, 0x40, 0x66, 0x0, 0xc,
- 0x0, 0xb1, 0x0, 0xe4, 0xa, 0x0, 0x0, 0xd0,
- 0xb, 0x10, 0xa, 0x37, 0x10, 0x0, 0x1, 0x0,
- 0xb2, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x2,
- 0x0,
-
- /* U+6D3B "活" */
- 0x0, 0x30, 0x0, 0x0, 0x0, 0x1, 0x70, 0x0,
- 0x0, 0x2c, 0x10, 0x1, 0x47, 0xbe, 0xc5, 0x0,
- 0x0, 0x8, 0x62, 0x55, 0x4d, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0, 0x0,
- 0x17, 0x0, 0x40, 0x0, 0xc, 0x0, 0x0, 0x20,
- 0x5, 0xc0, 0x56, 0x66, 0x6d, 0x66, 0x68, 0x80,
- 0x0, 0xb1, 0x60, 0x0, 0xc, 0x0, 0x0, 0x0,
- 0x0, 0x5, 0x20, 0x0, 0xc, 0x0, 0x0, 0x0,
- 0x0, 0x9, 0x0, 0xa6, 0x6c, 0x66, 0xb6, 0x0,
- 0x2, 0x58, 0x0, 0xd1, 0x0, 0x0, 0xb3, 0x0,
- 0x4, 0xe4, 0x0, 0xd1, 0x0, 0x0, 0xb2, 0x0,
- 0x0, 0xb3, 0x0, 0xd1, 0x0, 0x0, 0xb2, 0x0,
- 0x0, 0xd2, 0x0, 0xd6, 0x66, 0x66, 0xd2, 0x0,
- 0x0, 0xa2, 0x0, 0xd1, 0x0, 0x0, 0xb3, 0x0,
- 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x40, 0x0,
-
- /* U+6D3E "派" */
- 0x0, 0x33, 0x0, 0x0, 0x0, 0x1, 0x74, 0x0,
- 0x0, 0xc, 0x50, 0x53, 0x56, 0x8a, 0x85, 0x0,
- 0x0, 0x4, 0x60, 0x96, 0x0, 0x0, 0x1, 0x0,
- 0x0, 0x0, 0x13, 0x94, 0x10, 0x16, 0xd9, 0x0,
- 0x1b, 0x20, 0x50, 0x94, 0xc5, 0x82, 0x0, 0x0,
- 0x5, 0xc0, 0x60, 0x94, 0xc0, 0x60, 0x7, 0x10,
- 0x0, 0x42, 0x50, 0x93, 0xc0, 0x60, 0x8a, 0x30,
- 0x0, 0x8, 0x0, 0xa2, 0xc0, 0x77, 0x20, 0x0,
- 0x0, 0xa, 0x0, 0xc0, 0xc0, 0x45, 0x0, 0x0,
- 0x15, 0xa7, 0x0, 0xc0, 0xc0, 0xb, 0x0, 0x0,
- 0x2, 0xe4, 0x4, 0x70, 0xc0, 0x9, 0x40, 0x0,
- 0x0, 0xe3, 0xa, 0x10, 0xc0, 0x12, 0xd3, 0x0,
- 0x1, 0xf2, 0x46, 0x0, 0xd9, 0x50, 0x6f, 0x70,
- 0x0, 0x82, 0x70, 0x0, 0xa3, 0x0, 0x6, 0x30,
- 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+6D41 "流" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x10, 0x0, 0x0, 0x49, 0x0, 0x0, 0x0,
- 0x0, 0x5a, 0x0, 0x0, 0xa, 0x30, 0x9, 0x10,
- 0x0, 0xb, 0x53, 0x86, 0x6d, 0x66, 0x66, 0x30,
- 0x0, 0x1, 0x2, 0x0, 0x86, 0x1, 0x0, 0x0,
- 0x16, 0x0, 0x4, 0x5, 0x50, 0x7, 0x30, 0x0,
- 0x7, 0xb0, 0x50, 0x79, 0x44, 0x45, 0xe2, 0x0,
- 0x0, 0xa0, 0x70, 0x88, 0x53, 0x10, 0x84, 0x0,
- 0x0, 0x3, 0x50, 0x95, 0x8, 0x9, 0x30, 0x0,
- 0x0, 0x9, 0x0, 0xb2, 0xd, 0xc, 0x0, 0x0,
- 0x0, 0x2a, 0x0, 0xc1, 0xd, 0xc, 0x0, 0x0,
- 0x7, 0xf6, 0x0, 0xd0, 0xd, 0xc, 0x0, 0x10,
- 0x0, 0xc4, 0x1, 0xb0, 0xd, 0xc, 0x0, 0x50,
- 0x0, 0xe3, 0x9, 0x30, 0xd, 0xc, 0x0, 0x80,
- 0x0, 0xf3, 0x65, 0x0, 0xd, 0x9, 0xcb, 0xc1,
- 0x0, 0x12, 0x10, 0x0, 0x3, 0x0, 0x0, 0x0,
-
- /* U+6D45 "浅" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x22, 0x0, 0x0, 0xc, 0x10, 0x0, 0x0, 0x0,
- 0xb7, 0x0, 0x0, 0xe0, 0x88, 0x0, 0x0, 0x3,
- 0xa0, 0x10, 0xe, 0x0, 0xd2, 0x0, 0x0, 0x0,
- 0x40, 0x0, 0xe0, 0x1, 0x60, 0x8, 0x40, 0x6,
- 0x34, 0x5e, 0x66, 0x67, 0x30, 0x1f, 0x31, 0x52,
- 0x10, 0xd0, 0x0, 0x10, 0x0, 0x61, 0x70, 0x0,
- 0xd, 0x13, 0x5c, 0x70, 0x0, 0x9, 0x46, 0x66,
- 0xd5, 0x22, 0x0, 0x0, 0x5, 0x60, 0x0, 0x9,
- 0x40, 0xb9, 0x0, 0x11, 0xc1, 0x0, 0x0, 0x59,
- 0xa9, 0x0, 0x3, 0xcd, 0x0, 0x0, 0x1, 0xf8,
- 0x0, 0x10, 0x5, 0xb0, 0x0, 0x3, 0xb9, 0xb0,
- 0x6, 0x0, 0x89, 0x0, 0x17, 0x60, 0x9, 0xb2,
- 0xa0, 0x8, 0x90, 0x33, 0x0, 0x0, 0x8, 0xfb,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x60,
-
- /* U+6D74 "浴" */
- 0x0, 0x40, 0x0, 0x0, 0x80, 0x3, 0x0, 0x0,
- 0x0, 0x4d, 0x20, 0x7, 0xb0, 0x4, 0xb3, 0x0,
- 0x0, 0xb, 0x41, 0x2b, 0x2, 0x0, 0x5f, 0x10,
- 0x0, 0x0, 0x5, 0x80, 0xc, 0x80, 0x8, 0x0,
- 0x19, 0x20, 0x44, 0x0, 0x5c, 0x70, 0x0, 0x0,
- 0x4, 0xf0, 0x70, 0x1, 0xd1, 0x19, 0x0, 0x0,
- 0x0, 0x80, 0x80, 0xb, 0x40, 0x4, 0xc2, 0x0,
- 0x0, 0x4, 0x40, 0x97, 0x0, 0x0, 0x6f, 0xa2,
- 0x0, 0xa, 0x17, 0x3d, 0x66, 0x66, 0xe6, 0x50,
- 0x0, 0x2b, 0x20, 0xe, 0x0, 0x0, 0xe0, 0x0,
- 0x5, 0xe8, 0x0, 0xe, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0xa6, 0x0, 0xe, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0xe6, 0x0, 0xe, 0x66, 0x66, 0xe0, 0x0,
- 0x0, 0xb6, 0x0, 0xd, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x20, 0x0,
-
- /* U+6D77 "海" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x30, 0x0, 0x1c, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x87, 0x0, 0x69, 0x0, 0x0, 0x4, 0x0,
- 0x0, 0x1a, 0x0, 0xb6, 0x66, 0x66, 0x68, 0x40,
- 0x10, 0x0, 0x33, 0x90, 0x0, 0x0, 0x20, 0x0,
- 0xb, 0x10, 0x58, 0xa7, 0x66, 0x66, 0xe3, 0x0,
- 0x6, 0x71, 0x70, 0xc1, 0x56, 0x0, 0xd0, 0x0,
- 0x0, 0x15, 0x0, 0xe0, 0xc, 0x10, 0xd0, 0x0,
- 0x0, 0x7, 0x57, 0xe6, 0x66, 0x66, 0xd6, 0xc2,
- 0x0, 0x7, 0x4, 0x90, 0x41, 0x1, 0xb0, 0x0,
- 0x1, 0x84, 0x6, 0x70, 0x2b, 0x1, 0xb0, 0x0,
- 0x6, 0xf0, 0x9, 0x40, 0x7, 0x2, 0xa0, 0x30,
- 0x0, 0xe0, 0xc, 0x66, 0x66, 0x68, 0xb6, 0x80,
- 0x2, 0xf0, 0x0, 0x0, 0x2, 0x7, 0x70, 0x0,
- 0x1, 0xc0, 0x0, 0x0, 0x3, 0xdf, 0x30, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x23, 0x0, 0x0,
-
- /* U+6D88 "消" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2,
- 0x0, 0x0, 0x0, 0xc, 0x10, 0x10, 0x2, 0xc2,
- 0x6, 0x60, 0xe, 0x0, 0xd5, 0x0, 0x78, 0x0,
- 0xc6, 0xe, 0x7, 0x60, 0x0, 0x1, 0x4, 0x44,
- 0xe, 0x25, 0x0, 0x63, 0x0, 0x42, 0x96, 0x6e,
- 0x66, 0xc1, 0x1e, 0x40, 0x60, 0xd0, 0x0, 0x0,
- 0xe0, 0x6, 0x31, 0x60, 0xd0, 0x0, 0x0, 0xe0,
- 0x0, 0x7, 0x10, 0xe6, 0x66, 0x66, 0xe0, 0x0,
- 0xa, 0x0, 0xd0, 0x0, 0x0, 0xe0, 0x0, 0x67,
- 0x0, 0xe6, 0x66, 0x66, 0xe0, 0x38, 0xf3, 0x0,
- 0xd0, 0x0, 0x0, 0xe0, 0x0, 0xe1, 0x0, 0xd0,
- 0x0, 0x0, 0xe0, 0x0, 0xf0, 0x0, 0xd0, 0x0,
- 0x1, 0xd0, 0x0, 0xf0, 0x1, 0xd0, 0x1, 0x7f,
- 0xa0, 0x0, 0x10, 0x0, 0x20, 0x0, 0x3, 0x0,
-
- /* U+6DBC "涼" */
- 0x0, 0x10, 0x0, 0x0, 0x9, 0x20, 0x0, 0x0,
- 0x0, 0x77, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x0,
- 0x0, 0xd, 0x31, 0x56, 0x66, 0x96, 0x66, 0xd1,
- 0x0, 0x3, 0x4, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x14, 0x0, 0x4, 0x9, 0x66, 0x66, 0x68, 0x0,
- 0x8, 0x80, 0x60, 0xd, 0x0, 0x0, 0x1c, 0x0,
- 0x0, 0xe0, 0x70, 0xd, 0x0, 0x0, 0x1b, 0x0,
- 0x0, 0x14, 0x40, 0xd, 0x66, 0x66, 0x6b, 0x0,
- 0x0, 0xa, 0x0, 0xa, 0x0, 0xd0, 0x16, 0x0,
- 0x0, 0x48, 0x0, 0x5, 0x0, 0xd0, 0x30, 0x0,
- 0x6, 0xf4, 0x0, 0x1e, 0x40, 0xd0, 0x57, 0x0,
- 0x0, 0xc2, 0x0, 0xa3, 0x0, 0xd0, 0xa, 0x80,
- 0x0, 0xe2, 0x6, 0x40, 0x0, 0xc0, 0x1, 0xf0,
- 0x0, 0xc2, 0x33, 0x0, 0x7c, 0xa0, 0x0, 0x20,
- 0x0, 0x0, 0x0, 0x0, 0x4, 0x10, 0x0, 0x0,
-
- /* U+6DF1 "深" */
- 0x0, 0x30, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x6, 0xa0, 0xa, 0x66, 0x66, 0x66, 0xb2, 0x0,
- 0xc, 0x24, 0x90, 0x0, 0x0, 0x38, 0x0, 0x0,
- 0x4, 0x31, 0x89, 0x1, 0x86, 0x0, 0x34, 0x0,
- 0x50, 0x3a, 0x1, 0x0, 0xc7, 0x0, 0xb6, 0x24,
- 0x16, 0x0, 0xa5, 0x1, 0x80, 0x2, 0x57, 0x2,
- 0x0, 0xa, 0x30, 0x3, 0x0, 0x0, 0x80, 0x47,
- 0x68, 0xd9, 0x66, 0xb6, 0x0, 0x36, 0x0, 0x0,
- 0xdc, 0x82, 0x0, 0x0, 0xb, 0x20, 0x0, 0x87,
- 0xa3, 0xa0, 0x0, 0x19, 0xf0, 0x0, 0x49, 0xa,
- 0x35, 0x90, 0x0, 0x1e, 0x0, 0x49, 0x0, 0xa3,
- 0xb, 0xb2, 0x4, 0xd0, 0x55, 0x0, 0xa, 0x30,
- 0xb, 0x50, 0x3b, 0x0, 0x0, 0x0, 0xb4, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0,
- 0x0,
-
- /* U+6DF7 "混" */
- 0x0, 0x32, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x40, 0x87, 0x66, 0x66, 0x6d, 0x0,
- 0x0, 0x4, 0x92, 0x85, 0x0, 0x0, 0x1b, 0x0,
- 0x11, 0x0, 0x5, 0x89, 0x66, 0x66, 0x6b, 0x0,
- 0xa, 0x40, 0x4, 0x85, 0x0, 0x0, 0x1b, 0x0,
- 0x2, 0xe0, 0x60, 0x85, 0x0, 0x0, 0x1b, 0x0,
- 0x0, 0x40, 0x70, 0x77, 0x66, 0x96, 0x68, 0x0,
- 0x0, 0x3, 0x50, 0x92, 0x0, 0xd3, 0x3, 0x0,
- 0x0, 0x9, 0x0, 0xd0, 0x20, 0xd0, 0x4d, 0x40,
- 0x4, 0x5a, 0x0, 0xd6, 0x94, 0xd7, 0x70, 0x0,
- 0x2, 0xc7, 0x0, 0xd0, 0x0, 0xd0, 0x0, 0x20,
- 0x0, 0x95, 0x0, 0xd0, 0x1, 0xd0, 0x0, 0x60,
- 0x0, 0xb5, 0x0, 0xe9, 0x70, 0xd0, 0x0, 0xb0,
- 0x0, 0x74, 0x0, 0x92, 0x0, 0x8c, 0xcc, 0xc1,
-
- /* U+6E05 "清" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x5, 0x0, 0x0, 0x0, 0xb1, 0x0, 0x0, 0x0,
- 0x5d, 0x0, 0x0, 0xd, 0x0, 0x27, 0x0, 0x0,
- 0xc1, 0x47, 0x66, 0xe6, 0x66, 0x61, 0x0, 0x0,
- 0x10, 0x46, 0x6e, 0x66, 0xc1, 0x1, 0xa2, 0x4,
- 0x1, 0x10, 0xd0, 0x0, 0x0, 0x4, 0xe0, 0x66,
- 0x66, 0x6d, 0x66, 0x6b, 0x80, 0x5, 0x42, 0x10,
- 0x0, 0x0, 0x1, 0x0, 0x0, 0x7, 0x0, 0xc6,
- 0x66, 0x66, 0xc5, 0x0, 0x0, 0x90, 0xd, 0x0,
- 0x0, 0xa, 0x20, 0x0, 0x56, 0x0, 0xd6, 0x66,
- 0x66, 0xc2, 0x1, 0x8f, 0x30, 0xd, 0x66, 0x66,
- 0x6c, 0x20, 0x0, 0xd1, 0x0, 0xd0, 0x0, 0x0,
- 0xa2, 0x0, 0xf, 0x0, 0xd, 0x0, 0x0, 0xb,
- 0x20, 0x1, 0xf0, 0x0, 0xd0, 0x0, 0x4b, 0xf0,
- 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x12, 0x0,
-
- /* U+6E07 "渇" */
- 0x0, 0x31, 0x0, 0x86, 0x66, 0x66, 0x93, 0x0,
- 0x1, 0xd3, 0xc, 0x0, 0x0, 0xb, 0x30, 0x0,
- 0x6, 0x71, 0xc0, 0x0, 0x0, 0xb2, 0x0, 0x0,
- 0x0, 0x5c, 0x66, 0x66, 0x6c, 0x20, 0x8, 0x10,
- 0x5, 0xc0, 0x0, 0x0, 0xb2, 0x0, 0x3e, 0x5,
- 0x1c, 0x76, 0x66, 0x6c, 0x20, 0x0, 0x90, 0x70,
- 0x6c, 0x60, 0x0, 0x20, 0x0, 0x0, 0x45, 0x6,
- 0xc6, 0x66, 0x66, 0xb3, 0x0, 0xa, 0x3, 0xa0,
- 0x0, 0x10, 0xd, 0x10, 0x46, 0x93, 0x6a, 0x50,
- 0x8b, 0x0, 0xd0, 0x2, 0xd5, 0x20, 0xa7, 0x72,
- 0x1, 0xd, 0x0, 0xa, 0x40, 0xa, 0x30, 0x0,
- 0x70, 0xd0, 0x0, 0xc4, 0x0, 0x5b, 0xbb, 0xa4,
- 0xd, 0x0, 0x7, 0x30, 0x0, 0x0, 0x0, 0x4c,
- 0xb0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x51,
- 0x0,
-
- /* U+6E08 "済" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x30, 0x0, 0x0, 0xa, 0x30, 0x0, 0x0, 0x1,
- 0xc2, 0x0, 0x0, 0x5a, 0x0, 0x33, 0x0, 0x7,
- 0x71, 0x79, 0x66, 0x66, 0xe7, 0x50, 0x0, 0x0,
- 0x20, 0x54, 0x0, 0x96, 0x0, 0x6, 0x20, 0x5,
- 0x0, 0xb3, 0x79, 0x0, 0x0, 0x1e, 0x22, 0x30,
- 0x2, 0xfc, 0x0, 0x0, 0x0, 0x83, 0x70, 0x6,
- 0xa4, 0x7c, 0x73, 0x10, 0x0, 0x18, 0x57, 0xa0,
- 0x0, 0x1c, 0xcb, 0x10, 0x7, 0x20, 0x2d, 0x66,
- 0x66, 0xe0, 0x0, 0x34, 0xc0, 0x2, 0xa0, 0x0,
- 0xd, 0x0, 0x1, 0xb9, 0x0, 0x4b, 0x66, 0x66,
- 0xd0, 0x0, 0x7, 0x70, 0x7, 0x40, 0x0, 0xd,
- 0x0, 0x0, 0x97, 0x0, 0xb0, 0x0, 0x0, 0xd0,
- 0x0, 0x6, 0x60, 0x64, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0x0, 0x12, 0x0, 0x0, 0x0, 0x60, 0x0,
-
- /* U+6E09 "渉" */
- 0x0, 0x31, 0x0, 0x0, 0x0, 0xc1, 0x0, 0x0,
- 0x0, 0x1d, 0x30, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0x6, 0x71, 0xb, 0x20, 0xd0, 0x3, 0x0,
- 0x0, 0x0, 0x5, 0xc, 0x0, 0xd6, 0x68, 0x10,
- 0x8, 0x20, 0x5, 0xc, 0x0, 0xd0, 0x0, 0x0,
- 0x1, 0xe1, 0x55, 0x6d, 0x66, 0xe6, 0x66, 0xd2,
- 0x0, 0x81, 0x81, 0x10, 0x0, 0xd1, 0x0, 0x0,
- 0x0, 0x3, 0x60, 0x8, 0x70, 0xd0, 0x63, 0x0,
- 0x0, 0x9, 0x0, 0xd, 0x10, 0xd0, 0xb, 0x70,
- 0x4, 0x7a, 0x0, 0x56, 0x0, 0xd0, 0xc4, 0xc0,
- 0x0, 0xb7, 0x0, 0x90, 0x0, 0xdb, 0x80, 0x0,
- 0x0, 0x85, 0x3, 0x10, 0x2, 0xc6, 0x0, 0x0,
- 0x0, 0xb6, 0x0, 0x0, 0x6b, 0x20, 0x0, 0x0,
- 0x0, 0x53, 0x0, 0x69, 0x50, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x15, 0x20, 0x0, 0x0, 0x0, 0x0,
-
- /* U+6E1B "減" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x20, 0x0, 0x0, 0x0, 0x2b, 0x31, 0x0,
- 0x0, 0x78, 0x0, 0x0, 0x0, 0xb, 0x1d, 0x10,
- 0x0, 0xe, 0x11, 0x10, 0x0, 0xc, 0x4, 0x70,
- 0x0, 0x2, 0x6, 0xc6, 0x66, 0x6d, 0x66, 0x71,
- 0x24, 0x0, 0x42, 0xb0, 0x0, 0xc, 0x0, 0x0,
- 0xa, 0x70, 0x61, 0xb4, 0x6a, 0x9c, 0x4, 0x50,
- 0x1, 0xc1, 0x51, 0xa0, 0x0, 0xb, 0xa, 0x60,
- 0x0, 0x7, 0x12, 0xa7, 0x66, 0xbb, 0x1d, 0x0,
- 0x0, 0x9, 0x2, 0x99, 0x31, 0xa8, 0x79, 0x0,
- 0x0, 0x76, 0x4, 0x89, 0x31, 0xa5, 0xe2, 0x0,
- 0x17, 0xf1, 0x6, 0x69, 0x86, 0xa4, 0xd0, 0x20,
- 0x0, 0xe0, 0xa, 0x28, 0x21, 0x7c, 0xa4, 0x60,
- 0x1, 0xf0, 0x1a, 0x0, 0x0, 0xa2, 0x2c, 0x90,
- 0x1, 0xe0, 0x81, 0x0, 0x19, 0x10, 0x5, 0xf1,
- 0x0, 0x1, 0x20, 0x0, 0x40, 0x0, 0x0, 0x31,
-
- /* U+6E21 "渡" */
- 0x0, 0x60, 0x0, 0x0, 0x5, 0x50, 0x0, 0x0,
- 0x0, 0x4c, 0x1, 0x0, 0x0, 0xd1, 0x0, 0x40,
- 0x0, 0xb, 0x13, 0xc6, 0x66, 0x76, 0x66, 0x93,
- 0x12, 0x0, 0x14, 0xa0, 0x2b, 0x1, 0xb0, 0x0,
- 0xa, 0x50, 0x53, 0xa0, 0x1a, 0x1, 0xa2, 0x50,
- 0x2, 0xd0, 0x62, 0xc6, 0x6c, 0x66, 0xc6, 0x50,
- 0x0, 0x22, 0x53, 0x90, 0x1a, 0x1, 0xa0, 0x0,
- 0x0, 0x8, 0x3, 0x90, 0x1a, 0x66, 0x80, 0x0,
- 0x0, 0xa, 0x5, 0x72, 0x66, 0x66, 0x92, 0x0,
- 0x14, 0x96, 0x7, 0x50, 0x33, 0x3, 0xc0, 0x0,
- 0x2, 0xe3, 0x9, 0x20, 0x9, 0x2c, 0x20, 0x0,
- 0x0, 0xd1, 0xc, 0x0, 0x2, 0xf6, 0x0, 0x0,
- 0x0, 0xf2, 0x45, 0x0, 0x4b, 0x5c, 0x70, 0x0,
- 0x0, 0x82, 0x80, 0x48, 0x60, 0x0, 0x9f, 0xc3,
- 0x0, 0x2, 0x4, 0x10, 0x0, 0x0, 0x1, 0x30,
-
- /* U+6E29 "温" */
- 0x0, 0x40, 0x0, 0x20, 0x0, 0x0, 0x30, 0x0,
- 0x0, 0x4c, 0x0, 0xd6, 0x66, 0x66, 0xf1, 0x0,
- 0x0, 0x7, 0x1, 0xd1, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0x0, 0x31, 0xd6, 0x66, 0x66, 0xe0, 0x0,
- 0x9, 0x20, 0x50, 0xd1, 0x0, 0x0, 0xe0, 0x0,
- 0x4, 0xb0, 0x60, 0xd1, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0x23, 0x40, 0xe6, 0x66, 0x66, 0xe0, 0x0,
- 0x0, 0x8, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa, 0xc, 0x66, 0x86, 0x96, 0x6d, 0x0,
- 0x0, 0x58, 0xd, 0x1, 0xa0, 0xc0, 0xc, 0x0,
- 0x7, 0xf5, 0xd, 0x1, 0xa0, 0xc0, 0xc, 0x0,
- 0x0, 0xd3, 0xd, 0x1, 0xa0, 0xc0, 0xc, 0x0,
- 0x0, 0xf2, 0xd, 0x1, 0xa0, 0xc0, 0xc, 0x0,
- 0x0, 0xd4, 0x6e, 0x66, 0xc6, 0xd6, 0x6d, 0xd4,
- 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+6E2F "港" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x60, 0x0, 0x8, 0x60, 0xd, 0x0, 0x0,
- 0x0, 0x4d, 0x0, 0x8, 0x50, 0xd, 0x0, 0x0,
- 0x0, 0xa, 0x12, 0x6b, 0x96, 0x6e, 0x6c, 0x10,
- 0x2, 0x0, 0x40, 0x28, 0x50, 0xd, 0x0, 0x0,
- 0x9, 0x70, 0x50, 0x8, 0x50, 0xd, 0x0, 0x20,
- 0x1, 0xd1, 0x68, 0x6a, 0xa6, 0x6b, 0x66, 0xa1,
- 0x0, 0x15, 0x10, 0xb, 0x40, 0x6, 0x0, 0x0,
- 0x0, 0x8, 0x0, 0x5b, 0x0, 0x5, 0xa0, 0x0,
- 0x0, 0x8, 0x2, 0xcd, 0x66, 0x6c, 0x5d, 0x71,
- 0x2, 0x85, 0x29, 0x1c, 0x0, 0xb, 0x2, 0x70,
- 0x5, 0xf3, 0x50, 0xd, 0x66, 0x6c, 0x11, 0x0,
- 0x0, 0xe0, 0x0, 0xc, 0x0, 0x2, 0x5, 0x0,
- 0x1, 0xf0, 0x0, 0xc, 0x0, 0x0, 0x7, 0x30,
- 0x0, 0xb0, 0x0, 0xb, 0xcc, 0xcc, 0xbc, 0x40,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+6E56 "湖" */
- 0x0, 0x20, 0x0, 0x57, 0x0, 0x0, 0x0, 0x0,
- 0x9, 0x60, 0x5, 0x70, 0xa, 0x66, 0xc3, 0x0,
- 0x19, 0x20, 0x57, 0x0, 0xc0, 0xb, 0x0, 0x0,
- 0x5, 0x59, 0xa9, 0x6c, 0x0, 0xb0, 0x28, 0x0,
- 0x51, 0x57, 0x0, 0xb6, 0x6d, 0x0, 0x88, 0x15,
- 0x5, 0x70, 0xb, 0x0, 0xb0, 0x1, 0x55, 0x12,
- 0x57, 0x30, 0xb0, 0xb, 0x0, 0x0, 0x80, 0xd6,
- 0x6d, 0xc, 0x0, 0xb0, 0x0, 0x8, 0xc, 0x0,
- 0xc0, 0xd6, 0x6d, 0x1, 0x38, 0x50, 0xc0, 0xc,
- 0xc, 0x0, 0xb0, 0x3, 0xe2, 0xd, 0x66, 0xc4,
- 0x80, 0xb, 0x0, 0xd, 0x0, 0xc0, 0x7, 0xb1,
- 0x0, 0xb0, 0x0, 0xf0, 0x8, 0x0, 0x65, 0x4,
- 0x3c, 0x0, 0xa, 0x0, 0x0, 0x54, 0x0, 0x2c,
- 0xb0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+6E90 "源" */
- 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0x2, 0x40,
- 0x0, 0x6c, 0x2, 0xc6, 0x66, 0x78, 0x68, 0x90,
- 0x0, 0xc, 0x5, 0xb0, 0x0, 0x87, 0x0, 0x0,
- 0x0, 0x0, 0x24, 0xb0, 0x86, 0xb6, 0x6b, 0x10,
- 0x18, 0x10, 0x52, 0xb0, 0xd0, 0x0, 0xd, 0x0,
- 0x6, 0xd0, 0x62, 0xb0, 0xd0, 0x0, 0xd, 0x0,
- 0x0, 0x92, 0x53, 0xb0, 0xd6, 0x66, 0x6d, 0x0,
- 0x0, 0x7, 0x13, 0x90, 0xd0, 0x0, 0xd, 0x0,
- 0x0, 0x9, 0x6, 0x80, 0xe6, 0x79, 0x6d, 0x0,
- 0x4, 0x78, 0x9, 0x40, 0x30, 0x3a, 0x1, 0x0,
- 0x2, 0xe5, 0xc, 0x0, 0xd4, 0x3a, 0x82, 0x0,
- 0x0, 0xb3, 0x37, 0x8, 0x60, 0x3a, 0x1d, 0x50,
- 0x0, 0xe3, 0x80, 0x55, 0x0, 0x4a, 0x5, 0xc0,
- 0x0, 0x86, 0x22, 0x30, 0x7, 0xf7, 0x0, 0x40,
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x30, 0x0, 0x0,
-
- /* U+6E96 "準" */
- 0x0, 0x72, 0x0, 0x1a, 0x4, 0x50, 0x0, 0x0,
- 0x0, 0x2c, 0x1, 0x76, 0x0, 0xb0, 0x4, 0x0,
- 0x2, 0x2, 0x41, 0xe6, 0x66, 0xa6, 0x69, 0x20,
- 0x7, 0x70, 0x67, 0xd1, 0x0, 0xd0, 0x24, 0x0,
- 0x0, 0x74, 0x63, 0xc6, 0x66, 0xe6, 0x66, 0x0,
- 0x0, 0x9, 0x10, 0xc1, 0x0, 0xd1, 0x25, 0x0,
- 0x4, 0x97, 0x0, 0xc6, 0x66, 0xd5, 0x54, 0x0,
- 0x0, 0x85, 0x0, 0xc1, 0x0, 0xd0, 0x7, 0x10,
- 0x0, 0x66, 0x0, 0x88, 0x66, 0x66, 0x66, 0x30,
- 0x0, 0x23, 0x0, 0xd, 0x40, 0x0, 0x0, 0x10,
- 0x7, 0x66, 0x66, 0x6e, 0x76, 0x66, 0x67, 0xa0,
- 0x0, 0x0, 0x0, 0xc, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x6, 0x10, 0x0, 0x0, 0x0,
-
- /* U+6E9D "溝" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x20, 0x0, 0x5, 0x70, 0xc, 0x0, 0x0,
- 0x0, 0x69, 0x0, 0x5, 0x60, 0xd, 0x4, 0x0,
- 0x0, 0xd, 0x25, 0x79, 0xa6, 0x6e, 0x67, 0x40,
- 0x0, 0x2, 0x4, 0x59, 0xa6, 0x6e, 0x6b, 0x10,
- 0x33, 0x0, 0x40, 0x16, 0x60, 0xd, 0x0, 0x10,
- 0xa, 0x70, 0x65, 0x78, 0x89, 0x6a, 0x68, 0x90,
- 0x2, 0xb2, 0x50, 0x10, 0xd, 0x0, 0x0, 0x0,
- 0x0, 0x8, 0x0, 0xd6, 0x6e, 0x66, 0xa9, 0x0,
- 0x0, 0x9, 0x0, 0xd0, 0xd, 0x0, 0x76, 0x0,
- 0x0, 0x85, 0x0, 0xd6, 0x6e, 0x66, 0xa6, 0x0,
- 0x18, 0xf0, 0x26, 0xe6, 0x6e, 0x66, 0xaa, 0xa0,
- 0x0, 0xe0, 0x1, 0xd0, 0x0, 0x0, 0x76, 0x0,
- 0x2, 0xe0, 0x0, 0xd0, 0x0, 0x0, 0x76, 0x0,
- 0x2, 0xd0, 0x0, 0xd0, 0x0, 0x29, 0xd4, 0x0,
- 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x70, 0x0,
-
- /* U+6EFF "滿" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x30, 0x0, 0x0, 0xd0, 0x1, 0xb0, 0x0, 0x1,
- 0xc2, 0x0, 0xd, 0x0, 0x1c, 0x5, 0x20, 0x7,
- 0x75, 0x76, 0xe6, 0x66, 0xd6, 0x64, 0x0, 0x0,
- 0x40, 0xd, 0x0, 0x1c, 0x0, 0x6, 0x20, 0x5,
- 0x0, 0xe6, 0xc6, 0xc0, 0x0, 0xd, 0x32, 0x40,
- 0x2, 0xd, 0x0, 0x0, 0x0, 0x65, 0x72, 0xb6,
- 0x66, 0xe6, 0x67, 0xc0, 0x0, 0x8, 0x1b, 0x60,
- 0xd, 0x50, 0x3a, 0x0, 0x5, 0x41, 0xb1, 0xb0,
- 0xd1, 0xc3, 0xa0, 0x12, 0xc0, 0x1b, 0x3d, 0x8d,
- 0x3d, 0xaa, 0x2, 0xbb, 0x1, 0xb7, 0x19, 0xd8,
- 0x2b, 0xa0, 0x5, 0x90, 0x1c, 0x0, 0xd, 0x10,
- 0x3a, 0x0, 0x89, 0x1, 0xb0, 0x0, 0xd0, 0x3,
- 0xa0, 0x6, 0x80, 0x2b, 0x0, 0xd, 0x6, 0xa8,
- 0x0, 0x0, 0x1, 0x50, 0x0, 0x20, 0x8, 0x10,
-
- /* U+6F22 "漢" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x30, 0x0, 0xa, 0x30, 0xb, 0x20, 0x0,
- 0x0, 0x4b, 0x5, 0x6c, 0x66, 0x6d, 0x69, 0x80,
- 0x0, 0xb, 0x31, 0xa, 0x0, 0xc, 0x0, 0x0,
- 0x0, 0x1, 0x4, 0xb, 0x68, 0x6d, 0x0, 0x0,
- 0x7, 0x10, 0x6, 0x3, 0xc, 0x3, 0x0, 0x0,
- 0x3, 0xd1, 0x44, 0xc6, 0x6d, 0x66, 0x98, 0x0,
- 0x0, 0xa1, 0x71, 0xb0, 0xc, 0x0, 0x66, 0x0,
- 0x0, 0x2, 0x61, 0xd6, 0x6d, 0x66, 0x96, 0x0,
- 0x0, 0x9, 0x10, 0x20, 0xc, 0x0, 0x61, 0x0,
- 0x2, 0x3a, 0x0, 0x76, 0x6d, 0x66, 0x63, 0x0,
- 0x4, 0xd7, 0x5, 0x66, 0x6d, 0x66, 0x66, 0xa0,
- 0x0, 0x95, 0x1, 0x0, 0x57, 0x61, 0x0, 0x0,
- 0x0, 0xc5, 0x0, 0x3, 0xa0, 0xa, 0x60, 0x0,
- 0x0, 0x94, 0x0, 0x78, 0x0, 0x0, 0x9e, 0x91,
- 0x0, 0x0, 0x15, 0x10, 0x0, 0x0, 0x2, 0x0,
-
- /* U+6F38 "漸" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x50, 0x0, 0xd, 0x10, 0x0, 0x0, 0x60,
- 0x0, 0x3d, 0x0, 0xd, 0x3, 0x26, 0x79, 0x83,
- 0x0, 0xa, 0x38, 0x6e, 0x68, 0x5a, 0x0, 0x0,
- 0x0, 0x0, 0x3, 0xd, 0x5, 0x3a, 0x0, 0x0,
- 0x9, 0x20, 0x4e, 0x6e, 0x6e, 0x4a, 0x0, 0x50,
- 0x3, 0xe1, 0x5d, 0xd, 0xd, 0x2c, 0x5d, 0x63,
- 0x0, 0x85, 0x1d, 0x6e, 0x6d, 0x29, 0xd, 0x0,
- 0x0, 0x8, 0xd, 0xd, 0xd, 0x29, 0xd, 0x0,
- 0x0, 0x9, 0xe, 0x6e, 0x6d, 0x39, 0xd, 0x0,
- 0x1, 0x86, 0x4, 0xd, 0x3, 0x47, 0xd, 0x0,
- 0x6, 0xf3, 0x67, 0x6e, 0x6a, 0x85, 0xd, 0x0,
- 0x0, 0xe1, 0x0, 0xd, 0x0, 0xa1, 0xd, 0x0,
- 0x0, 0xf1, 0x0, 0xd, 0x1, 0x90, 0xd, 0x0,
- 0x0, 0xc0, 0x0, 0xe, 0x8, 0x10, 0xd, 0x0,
- 0x0, 0x0, 0x0, 0x7, 0x21, 0x0, 0x7, 0x0,
-
- /* U+6FC3 "濃" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x20, 0x0, 0x0, 0xc0, 0xa3, 0x0, 0x0,
- 0x0, 0x78, 0x2, 0x86, 0xd6, 0xc6, 0x6a, 0x0,
- 0x0, 0xe, 0x24, 0x90, 0xb0, 0xa1, 0xd, 0x0,
- 0x0, 0x2, 0x43, 0xb6, 0xd6, 0xc6, 0x6d, 0x0,
- 0x8, 0x10, 0x63, 0x90, 0xb0, 0xa1, 0xd, 0x0,
- 0x3, 0xe1, 0x63, 0x96, 0x66, 0x66, 0x68, 0x0,
- 0x0, 0x96, 0x19, 0x76, 0x66, 0x66, 0x6a, 0x30,
- 0x0, 0x9, 0x9, 0x40, 0x0, 0x0, 0x32, 0x0,
- 0x0, 0x28, 0x9, 0x47, 0x66, 0x66, 0x64, 0x0,
- 0x5, 0xc3, 0x9, 0x89, 0x67, 0x66, 0x67, 0x90,
- 0x2, 0xf0, 0xa, 0x2d, 0x6, 0x1, 0xc3, 0x0,
- 0x0, 0xe0, 0xc, 0xd, 0x2, 0x97, 0x20, 0x0,
- 0x1, 0xf0, 0x28, 0xd, 0x14, 0x3b, 0x50, 0x0,
- 0x0, 0x80, 0x80, 0xe, 0x81, 0x1, 0xaf, 0x91,
- 0x0, 0x1, 0x10, 0x1, 0x0, 0x0, 0x0, 0x0,
-
- /* U+6FDF "濟" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0x20, 0x0, 0x0, 0x4a, 0x0, 0x0, 0x0,
- 0x0, 0xa6, 0x0, 0x0, 0x8, 0x10, 0x6, 0x20,
- 0x0, 0x2d, 0x17, 0x66, 0xa6, 0x98, 0x66, 0x40,
- 0x0, 0x1, 0x40, 0x1, 0x94, 0xa3, 0x29, 0x0,
- 0x29, 0x10, 0x56, 0xca, 0x89, 0x37, 0x91, 0x0,
- 0x6, 0xb3, 0x21, 0xa7, 0x4c, 0xb, 0x45, 0x0,
- 0x0, 0x77, 0x7, 0x49, 0x3c, 0xb, 0x3c, 0x20,
- 0x0, 0x8, 0x18, 0x4d, 0xb, 0x1b, 0x25, 0xa1,
- 0x0, 0x54, 0x20, 0xd2, 0x0, 0x0, 0x96, 0x0,
- 0x13, 0xd0, 0x0, 0xe6, 0x66, 0x66, 0xb5, 0x0,
- 0x7, 0xc0, 0x0, 0xd0, 0x0, 0x0, 0x95, 0x0,
- 0x2, 0xb0, 0x0, 0xc6, 0x66, 0x66, 0xb5, 0x0,
- 0x5, 0xb0, 0x6, 0x50, 0x0, 0x0, 0x95, 0x0,
- 0x2, 0x80, 0x48, 0x0, 0x0, 0x0, 0x95, 0x0,
- 0x0, 0x1, 0x30, 0x0, 0x0, 0x0, 0x52, 0x0,
-
- /* U+7063 "灣" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x10, 0x9, 0x40, 0xa, 0x10, 0x57, 0x0,
- 0x0, 0xa5, 0x26, 0x65, 0x79, 0x94, 0x65, 0x70,
- 0x0, 0x2c, 0x88, 0xa0, 0x46, 0x76, 0x7b, 0x0,
- 0x0, 0x2, 0x27, 0x32, 0x45, 0x50, 0x72, 0x50,
- 0x46, 0x4, 0x99, 0x59, 0x54, 0x66, 0xb5, 0xb0,
- 0xb, 0x66, 0x23, 0x21, 0xb6, 0xc2, 0x31, 0x30,
- 0x3, 0x77, 0xa5, 0x6a, 0xb1, 0xb6, 0x5a, 0xb0,
- 0x0, 0x35, 0x50, 0x22, 0x85, 0x86, 0x54, 0x20,
- 0x0, 0x80, 0x6, 0x76, 0x66, 0x66, 0xe3, 0x0,
- 0x1, 0xb0, 0x5, 0x86, 0x66, 0x66, 0xe0, 0x0,
- 0x3c, 0x90, 0x8, 0x50, 0x0, 0x0, 0x34, 0x0,
- 0x6, 0x80, 0x8, 0x66, 0x66, 0x66, 0x9c, 0x0,
- 0x8, 0x70, 0x0, 0x0, 0x0, 0x0, 0x76, 0x0,
- 0x8, 0x80, 0x0, 0x0, 0x1, 0x53, 0xd1, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x4e, 0x70, 0x0,
-
- /* U+706B "火" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x60, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x40, 0x0, 0x30, 0x0,
- 0x0, 0x2, 0x30, 0xc, 0x30, 0x4, 0xf2, 0x0,
- 0x0, 0x9, 0x10, 0xd, 0x30, 0xc, 0x30, 0x0,
- 0x0, 0x4d, 0x0, 0xe, 0x60, 0x92, 0x0, 0x0,
- 0x2, 0xf5, 0x0, 0x1e, 0x46, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x69, 0x8, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc3, 0x6, 0x50, 0x0, 0x0,
- 0x0, 0x0, 0x5, 0xb0, 0x0, 0xc3, 0x0, 0x0,
- 0x0, 0x0, 0x2c, 0x10, 0x0, 0x2d, 0x40, 0x0,
- 0x0, 0x3, 0xb1, 0x0, 0x0, 0x3, 0xea, 0x30,
- 0x1, 0x76, 0x0, 0x0, 0x0, 0x0, 0x2c, 0x70,
- 0x24, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+707D "災" */
- 0x0, 0x0, 0xa0, 0x2, 0x80, 0x0, 0x91, 0x0,
- 0x0, 0x7, 0x70, 0xa, 0x50, 0x7, 0x80, 0x0,
- 0x0, 0x27, 0x0, 0x45, 0x0, 0x18, 0x0, 0x0,
- 0x0, 0x70, 0x0, 0x80, 0x0, 0x80, 0x0, 0x0,
- 0x0, 0x1b, 0x20, 0x4a, 0x10, 0x1a, 0x10, 0x0,
- 0x0, 0x4, 0xb0, 0x6, 0xa0, 0x3, 0xd0, 0x0,
- 0x0, 0x0, 0x30, 0x0, 0x20, 0x0, 0x60, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x70, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x60, 0xd, 0x70, 0x7, 0x60, 0x0,
- 0x0, 0x8, 0x60, 0xe, 0x51, 0x49, 0x10, 0x0,
- 0x0, 0x4d, 0x10, 0x79, 0xa, 0x40, 0x0, 0x0,
- 0x0, 0x0, 0x2, 0xd1, 0x4, 0x90, 0x0, 0x0,
- 0x0, 0x0, 0x3d, 0x30, 0x0, 0x8c, 0x30, 0x0,
- 0x0, 0x39, 0x91, 0x0, 0x0, 0x5, 0xec, 0x81,
- 0x5, 0x40, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0,
-
- /* U+70B9 "点" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x3b, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x3b, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x3c, 0x66, 0x66, 0xd3, 0x0, 0x0, 0x0, 0x3b,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3b, 0x0,
- 0x1, 0x0, 0x0, 0x1c, 0x66, 0x7a, 0x66, 0x6f,
- 0x20, 0x0, 0xe, 0x0, 0x0, 0x0, 0xe, 0x0,
- 0x0, 0xe, 0x0, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0xe, 0x0, 0x0, 0x0, 0xe, 0x0, 0x0, 0x1f,
- 0x66, 0x66, 0x66, 0x6e, 0x0, 0x0, 0x6, 0x0,
- 0x0, 0x0, 0x4, 0x0, 0x0, 0x60, 0x6, 0x0,
- 0x52, 0x6, 0x30, 0x3, 0x80, 0x9, 0x50, 0x1d,
- 0x0, 0xd3, 0x2f, 0x30, 0x5, 0x70, 0xa, 0x0,
- 0x77, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+70BA "為" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x71, 0x6, 0xa0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x3c, 0xa, 0x60, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x3, 0xe, 0x0, 0x2, 0x0, 0x0,
- 0x0, 0x67, 0x66, 0xab, 0x66, 0x6e, 0x50, 0x0,
- 0x0, 0x0, 0x0, 0xc1, 0x0, 0x1c, 0x0, 0x0,
- 0x0, 0x0, 0x6, 0xb6, 0x66, 0x8a, 0x8a, 0x0,
- 0x0, 0x0, 0x1c, 0x0, 0x0, 0x0, 0xa2, 0x0,
- 0x0, 0x0, 0xa8, 0x66, 0x66, 0x66, 0xd7, 0xa0,
- 0x0, 0x7, 0x50, 0x0, 0x0, 0x0, 0x4, 0xa0,
- 0x0, 0x56, 0x11, 0x10, 0x51, 0x28, 0x6, 0x70,
- 0x5, 0x40, 0x80, 0xa1, 0x1d, 0x18, 0x58, 0x50,
- 0x1, 0x7, 0x80, 0x6a, 0x7, 0x21, 0x2a, 0x30,
- 0x0, 0x1d, 0x20, 0x4, 0x0, 0x0, 0xe, 0x10,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0xdc, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x31, 0x0,
-
- /* U+7121 "無" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9,
- 0x70, 0x0, 0x0, 0x5, 0x0, 0x0, 0x4f, 0x6b,
- 0x66, 0xb6, 0xb7, 0x40, 0x1, 0x9d, 0xb, 0x0,
- 0xb0, 0xd0, 0x0, 0x6, 0xd, 0xb, 0x0, 0xb0,
- 0xd0, 0x0, 0x0, 0xd, 0xb, 0x0, 0xb0, 0xd0,
- 0x60, 0x7, 0x6e, 0x6d, 0x66, 0xd6, 0xe6, 0x83,
- 0x0, 0xd, 0xb, 0x0, 0xb0, 0xd0, 0x0, 0x0,
- 0xd, 0xb, 0x0, 0xb0, 0xd0, 0x0, 0x0, 0xd,
- 0xb, 0x0, 0xb0, 0xd0, 0x83, 0x47, 0x66, 0x66,
- 0x66, 0x66, 0x66, 0x64, 0x0, 0x60, 0x34, 0x0,
- 0x90, 0x6, 0x50, 0x6, 0x70, 0xc, 0x20, 0x5a,
- 0x0, 0xd3, 0x5e, 0x10, 0x9, 0x60, 0xa, 0x0,
- 0x74, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
-
- /* U+7136 "然" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xe3, 0x0, 0x1, 0xd2, 0x0, 0x0,
- 0x0, 0x3, 0xd0, 0x0, 0x1, 0xd2, 0xa1, 0x0,
- 0x0, 0x9, 0xa6, 0x6c, 0x11, 0xd0, 0x98, 0x0,
- 0x0, 0xd, 0x0, 0x4b, 0x1, 0xc0, 0x25, 0x0,
- 0x0, 0x77, 0xb3, 0x87, 0x87, 0xd6, 0x6b, 0x70,
- 0x1, 0xb5, 0x27, 0xd1, 0x4, 0x96, 0x0, 0x0,
- 0x7, 0xa, 0x55, 0x90, 0x7, 0x68, 0x0, 0x0,
- 0x0, 0x2, 0x3c, 0x10, 0xc, 0x12, 0xa0, 0x0,
- 0x0, 0x0, 0x95, 0x0, 0x76, 0x0, 0x98, 0x0,
- 0x0, 0x8, 0x50, 0x6, 0x60, 0x0, 0xd, 0xd2,
- 0x2, 0x72, 0x0, 0x51, 0x0, 0x0, 0x1, 0x10,
- 0x1, 0x6, 0x2, 0x60, 0x8, 0x0, 0x83, 0x0,
- 0x0, 0x4a, 0x0, 0xd2, 0x7, 0xa0, 0x1e, 0x20,
- 0x1, 0xe5, 0x0, 0xb4, 0x2, 0xc0, 0xa, 0x40,
- 0x0, 0x20, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
-
- /* U+7159 "煙" */
- 0x0, 0x8, 0x20, 0x0, 0x0, 0x0, 0x3, 0x20,
- 0x0, 0xd, 0x20, 0x67, 0x6c, 0x6c, 0x67, 0x60,
- 0x0, 0xd, 0x10, 0x0, 0xd, 0xd, 0x0, 0x0,
- 0x0, 0xd, 0x1a, 0x4a, 0x6e, 0x6e, 0x6c, 0x30,
- 0x2, 0x2c, 0x68, 0xc, 0xd, 0xd, 0xd, 0x0,
- 0x7, 0x3c, 0x60, 0xc, 0xd, 0xd, 0xd, 0x0,
- 0x2e, 0x1c, 0x0, 0xc, 0xd, 0xd, 0xd, 0x0,
- 0x13, 0xd, 0x0, 0xd, 0x69, 0x69, 0x6c, 0x0,
- 0x0, 0xe, 0x0, 0x4, 0x0, 0xe1, 0x0, 0x0,
- 0x0, 0xe, 0x60, 0x0, 0x0, 0xd0, 0x2, 0x0,
- 0x0, 0x2a, 0x4c, 0x17, 0x66, 0xe6, 0x78, 0x0,
- 0x0, 0x75, 0xa, 0x50, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0xb0, 0x1, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0x8, 0x20, 0x3, 0x66, 0x66, 0xe6, 0x67, 0xd1,
- 0x22, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
-
- /* U+71B1 "熱" */
- 0x0, 0x0, 0xb3, 0x0, 0x3, 0x80, 0x0, 0x0,
- 0x0, 0xc, 0x4, 0x0, 0x39, 0x0, 0x0, 0x0,
- 0x76, 0xd6, 0x73, 0x25, 0xb4, 0xa0, 0x0, 0x0,
- 0xc, 0x1, 0x44, 0x69, 0x3b, 0x0, 0x6, 0x79,
- 0x68, 0x76, 0x5, 0x72, 0xa0, 0x0, 0x9, 0x82,
- 0xa, 0x82, 0x75, 0x2a, 0x0, 0x7, 0x40, 0xc3,
- 0xb, 0x3d, 0x51, 0xb0, 0x1, 0x26, 0x6d, 0x6c,
- 0x21, 0xce, 0x4d, 0x2, 0x0, 0x20, 0xc0, 0x0,
- 0x83, 0x34, 0x86, 0x60, 0x2, 0x5e, 0x75, 0x66,
- 0x0, 0x1, 0xd9, 0x8, 0xb5, 0x10, 0x4, 0x0,
- 0x0, 0x2, 0x70, 0x1, 0x60, 0x16, 0x1, 0x90,
- 0x8, 0x30, 0x0, 0xa3, 0x0, 0xa4, 0x7, 0x90,
- 0x1e, 0x10, 0x9b, 0x0, 0x5, 0x60, 0x18, 0x0,
- 0xa3, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+71DF "營" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x6, 0x60, 0x0, 0x29, 0x0, 0x0, 0x0,
- 0x6, 0x75, 0x95, 0x33, 0x83, 0xb0, 0x0, 0x9,
- 0x49, 0x82, 0x2b, 0x5a, 0x60, 0x0, 0x0, 0x40,
- 0xc7, 0x85, 0x3a, 0x57, 0x40, 0x0, 0x0, 0x83,
- 0x6, 0x55, 0x70, 0xb, 0x70, 0x0, 0x41, 0x0,
- 0x2, 0x40, 0x0, 0x18, 0x0, 0x2a, 0x66, 0x66,
- 0x66, 0x66, 0x69, 0xd2, 0xd, 0x30, 0xa6, 0x66,
- 0x66, 0xd3, 0x60, 0x0, 0x20, 0xb, 0x0, 0x0,
- 0xc, 0x0, 0x0, 0x0, 0x0, 0xc6, 0x66, 0x66,
- 0xd1, 0x0, 0x0, 0x0, 0x33, 0x0, 0x0, 0x1,
- 0x50, 0x0, 0x0, 0xd, 0x66, 0x66, 0x66, 0x6d,
- 0x50, 0x0, 0x0, 0xc1, 0x0, 0x0, 0x0, 0xb2,
- 0x0, 0x0, 0xc, 0x66, 0x66, 0x66, 0x6d, 0x30,
- 0x0, 0x0, 0x80, 0x0, 0x0, 0x0, 0x51, 0x0,
-
- /* U+722D "爭" */
- 0x0, 0x0, 0x0, 0x0, 0x2, 0x6b, 0x20, 0x0,
- 0x4, 0x56, 0x78, 0x9a, 0x98, 0x73, 0x0, 0x0,
- 0x31, 0x0, 0x81, 0x0, 0x1c, 0x10, 0x0, 0x0,
- 0xc3, 0x2, 0xd0, 0x9, 0x40, 0x0, 0x0, 0x4,
- 0x60, 0x6, 0x4, 0x50, 0x0, 0x0, 0x3, 0x66,
- 0x66, 0x66, 0x76, 0xc4, 0x0, 0x0, 0x0, 0x0,
- 0x2a, 0x0, 0xd, 0x0, 0x2, 0x66, 0x66, 0x67,
- 0xc6, 0x66, 0xe6, 0xd3, 0x1, 0x0, 0x0, 0x2a,
- 0x0, 0xd, 0x0, 0x0, 0x3, 0x66, 0x67, 0xc6,
- 0x66, 0xe0, 0x0, 0x0, 0x1, 0x0, 0x2a, 0x0,
- 0x7, 0x0, 0x0, 0x0, 0x0, 0x2, 0xa0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x20, 0x3a, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x4, 0xbf, 0x70, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+7236 "父" */
- 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xe, 0x80, 0x2, 0x61, 0x0, 0x0,
- 0x0, 0x0, 0xa9, 0x0, 0x0, 0x1a, 0x70, 0x0,
- 0x0, 0x9, 0x70, 0x0, 0x0, 0x0, 0xbb, 0x0,
- 0x0, 0x84, 0x10, 0x0, 0x0, 0x43, 0x1d, 0x20,
- 0x6, 0x10, 0x23, 0x0, 0x0, 0xc6, 0x0, 0x0,
- 0x0, 0x0, 0x8, 0x0, 0x3, 0xc0, 0x0, 0x0,
- 0x0, 0x0, 0x4, 0x50, 0xb, 0x40, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa2, 0x4a, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x2c, 0xc1, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1c, 0xd3, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2, 0xb3, 0x2d, 0x81, 0x0, 0x0,
- 0x0, 0x0, 0x79, 0x10, 0x0, 0x8f, 0xb6, 0x30,
- 0x0, 0x68, 0x30, 0x0, 0x0, 0x1, 0x8d, 0x81,
- 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+7238 "爸" */
- 0x0, 0x0, 0x6, 0x60, 0x0, 0x54, 0x0, 0x0,
- 0x0, 0x0, 0x5c, 0x30, 0x0, 0x5, 0xc4, 0x0,
- 0x0, 0x7, 0x72, 0x40, 0x4, 0xc0, 0x3f, 0x0,
- 0x1, 0x61, 0x0, 0x57, 0x4c, 0x10, 0x1, 0x0,
- 0x0, 0x0, 0x0, 0xa, 0xf4, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x28, 0xb4, 0x8, 0xb8, 0x53, 0x31,
- 0x4, 0x68, 0x92, 0x0, 0x0, 0x8, 0x8a, 0x91,
- 0x0, 0x0, 0xd6, 0x67, 0xc6, 0x6e, 0x30, 0x0,
- 0x0, 0x0, 0xc0, 0x3, 0xa0, 0xd, 0x0, 0x0,
- 0x0, 0x0, 0xc0, 0x3, 0xa0, 0xd, 0x0, 0x0,
- 0x0, 0x0, 0xd6, 0x66, 0x66, 0x6a, 0x2, 0x0,
- 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0, 0x6, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0x0, 0xb, 0x10,
- 0x0, 0x0, 0xbc, 0xcc, 0xcc, 0xcc, 0xcd, 0x30,
-
- /* U+7247 "片" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x2, 0x0, 0x0, 0xc3, 0x0, 0x0, 0x0, 0xf,
- 0x20, 0x0, 0xd1, 0x0, 0x0, 0x0, 0xe, 0x0,
- 0x0, 0xd1, 0x0, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0xd1, 0x0, 0x10, 0x0, 0xe, 0x66, 0x66, 0xe6,
- 0x66, 0xf5, 0x0, 0xe, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1e, 0x66, 0x66, 0x6c, 0x30, 0x0, 0x0,
- 0x3b, 0x0, 0x0, 0xd, 0x10, 0x0, 0x0, 0x67,
- 0x0, 0x0, 0xd, 0x10, 0x0, 0x0, 0xb1, 0x0,
- 0x0, 0xd, 0x10, 0x0, 0x3, 0x90, 0x0, 0x0,
- 0xd, 0x10, 0x0, 0x9, 0x0, 0x0, 0x0, 0xd,
- 0x10, 0x0, 0x50, 0x0, 0x0, 0x0, 0xd, 0x10,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0,
-
- /* U+725B "牛" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2, 0xd1, 0x0, 0x0, 0x0, 0x0,
- 0x9, 0x60, 0x1d, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xe3, 0x1, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x4e,
- 0x66, 0x6e, 0x66, 0x6b, 0xa0, 0x0, 0xa, 0x30,
- 0x1, 0xd0, 0x0, 0x0, 0x0, 0x2, 0x90, 0x0,
- 0x1d, 0x0, 0x0, 0x0, 0x0, 0x80, 0x0, 0x1,
- 0xd0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1d,
- 0x0, 0x0, 0x84, 0x4, 0x76, 0x66, 0x66, 0xe6,
- 0x66, 0x69, 0x80, 0x0, 0x0, 0x0, 0x1d, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xd0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1d, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x1, 0xd0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x2e, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1, 0x30, 0x0, 0x0, 0x0,
-
- /* U+7260 "牠" */
- 0x0, 0x0, 0xc1, 0x0, 0x0, 0x85, 0x0, 0x0,
- 0x0, 0x10, 0xd0, 0x0, 0x0, 0xa2, 0x0, 0x0,
- 0x0, 0xf4, 0xd0, 0x0, 0x90, 0xa2, 0x0, 0x0,
- 0x1, 0xd0, 0xd0, 0x0, 0xc0, 0xa2, 0x5, 0x10,
- 0x4, 0xb6, 0xe9, 0x80, 0xc0, 0xb7, 0x6c, 0x60,
- 0x8, 0x20, 0xd0, 0x26, 0xd6, 0xb2, 0x9, 0x30,
- 0x8, 0x0, 0xd0, 0x31, 0xc0, 0xa2, 0x9, 0x30,
- 0x21, 0x0, 0xd0, 0x10, 0xc0, 0xa2, 0xa, 0x20,
- 0x0, 0x0, 0xe7, 0x20, 0xc0, 0xa2, 0xc, 0x10,
- 0x2, 0x79, 0xd0, 0x0, 0xc0, 0xa6, 0xcd, 0x0,
- 0xb, 0x50, 0xd0, 0x0, 0xc0, 0xa2, 0x31, 0x20,
- 0x0, 0x0, 0xd0, 0x0, 0xc0, 0x71, 0x0, 0x60,
- 0x0, 0x0, 0xd0, 0x0, 0xd0, 0x0, 0x0, 0xc0,
- 0x0, 0x0, 0xd0, 0x0, 0x9b, 0xbb, 0xbc, 0xb1,
- 0x0, 0x0, 0x90, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+7269 "物" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc1, 0x0, 0x78, 0x0, 0x0, 0x0,
- 0x0, 0x50, 0xd0, 0x0, 0xb4, 0x0, 0x0, 0x0,
- 0x0, 0xe2, 0xd0, 0x1, 0xd0, 0x0, 0x0, 0x30,
- 0x2, 0xb0, 0xd3, 0x36, 0x99, 0x97, 0xb6, 0xe0,
- 0x6, 0x96, 0xe6, 0x5a, 0xb, 0x25, 0x91, 0xc0,
- 0x8, 0x0, 0xd0, 0x52, 0xc, 0x8, 0x62, 0xb0,
- 0x13, 0x0, 0xd0, 0x30, 0x75, 0xd, 0x13, 0xb0,
- 0x0, 0x0, 0xd5, 0x41, 0xb0, 0x2c, 0x4, 0xa0,
- 0x0, 0x39, 0xe1, 0x8, 0x10, 0x86, 0x5, 0x90,
- 0xb, 0xa1, 0xd0, 0x43, 0x1, 0xc0, 0x6, 0x70,
- 0x1, 0x0, 0xd0, 0x20, 0xa, 0x30, 0x8, 0x60,
- 0x0, 0x0, 0xd0, 0x0, 0x74, 0x0, 0xa, 0x40,
- 0x0, 0x0, 0xd0, 0x5, 0x40, 0x53, 0x4e, 0x10,
- 0x0, 0x0, 0xe0, 0x41, 0x0, 0xa, 0xf6, 0x0,
- 0x0, 0x0, 0x40, 0x0, 0x0, 0x1, 0x10, 0x0,
-
- /* U+7279 "特" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0xc1, 0x0, 0x1, 0xb0, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x1, 0xd0, 0x0, 0x0,
- 0x3, 0xd1, 0xd0, 0x18, 0x66, 0xe6, 0xa8, 0x0,
- 0x5, 0x90, 0xd0, 0x10, 0x1, 0xd0, 0x0, 0x0,
- 0x7, 0x86, 0xe7, 0xb0, 0x1, 0xd0, 0x0, 0x20,
- 0x9, 0x0, 0xd0, 0x76, 0x66, 0xb6, 0x69, 0xb0,
- 0x6, 0x0, 0xd0, 0x0, 0x0, 0x8, 0x60, 0x0,
- 0x0, 0x0, 0xe6, 0x50, 0x0, 0x9, 0x51, 0x60,
- 0x0, 0x28, 0xe1, 0x57, 0x66, 0x6b, 0x96, 0x71,
- 0xa, 0xc4, 0xd0, 0x7, 0x0, 0x9, 0x50, 0x0,
- 0x3, 0x0, 0xd0, 0x5, 0xc0, 0x9, 0x50, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0xd0, 0x9, 0x50, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x10, 0x9, 0x40, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x5, 0xdf, 0x20, 0x0,
- 0x0, 0x0, 0x60, 0x0, 0x0, 0x22, 0x0, 0x0,
-
- /* U+72AC "犬" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xf, 0x3, 0x30, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xf, 0x0, 0xb9, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1e, 0x0, 0x1f, 0x10, 0x0,
- 0x0, 0x0, 0x0, 0x1d, 0x0, 0x4, 0x3, 0x20,
- 0x5, 0x76, 0x66, 0x7d, 0x76, 0x66, 0x6a, 0xa0,
- 0x0, 0x0, 0x0, 0x59, 0x60, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x86, 0x52, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc2, 0x19, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2, 0xd0, 0x8, 0x30, 0x0, 0x0,
- 0x0, 0x0, 0x9, 0x60, 0x1, 0xc1, 0x0, 0x0,
- 0x0, 0x0, 0x5b, 0x0, 0x0, 0x5d, 0x20, 0x0,
- 0x0, 0x5, 0xa0, 0x0, 0x0, 0x7, 0xf7, 0x10,
- 0x0, 0x86, 0x0, 0x0, 0x0, 0x0, 0x5f, 0xb1,
- 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
-
- /* U+72AF "犯" */
- 0x0, 0x0, 0x0, 0x60, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x72, 0x8, 0xc2, 0xa6, 0x66, 0x6c, 0x20,
- 0x0, 0x9, 0x7b, 0x0, 0xd0, 0x0, 0xe, 0x0,
- 0x0, 0x3, 0xf0, 0x0, 0xd0, 0x0, 0xd, 0x0,
- 0x0, 0x39, 0x84, 0x0, 0xd0, 0x0, 0xd, 0x0,
- 0x4, 0x50, 0x49, 0x0, 0xd0, 0x0, 0xd, 0x0,
- 0x0, 0x0, 0x9c, 0x0, 0xd0, 0x0, 0xd, 0x0,
- 0x0, 0x3, 0xae, 0x0, 0xd0, 0x11, 0x1d, 0x0,
- 0x0, 0x1a, 0xe, 0x0, 0xd0, 0x28, 0xfa, 0x0,
- 0x0, 0x91, 0xe, 0x0, 0xd0, 0x0, 0x40, 0x0,
- 0x6, 0x0, 0xd, 0x0, 0xd0, 0x0, 0x0, 0x40,
- 0x0, 0x0, 0x2c, 0x0, 0xd0, 0x0, 0x0, 0x80,
- 0x0, 0x0, 0x78, 0x0, 0xe0, 0x0, 0x0, 0xd3,
- 0x0, 0x7d, 0xd1, 0x0, 0x7e, 0xdd, 0xdd, 0xd3,
- 0x0, 0x4, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+72B6 "状" */
- 0x0, 0x0, 0xa3, 0x0, 0x19, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0xd1, 0x0, 0x1d, 0x4, 0x91, 0x0,
- 0x1, 0x0, 0xd1, 0x0, 0xd, 0x0, 0x8c, 0x0,
- 0x9, 0x30, 0xc1, 0x0, 0xd, 0x0, 0x6, 0x0,
- 0x2, 0xe1, 0xc1, 0x0, 0xd, 0x0, 0x8, 0x20,
- 0x0, 0xc1, 0xc4, 0x76, 0x6e, 0x86, 0x67, 0x50,
- 0x0, 0x0, 0xc1, 0x0, 0x2b, 0x60, 0x0, 0x0,
- 0x0, 0x3, 0xe1, 0x0, 0x59, 0x70, 0x0, 0x0,
- 0x0, 0x65, 0xc1, 0x0, 0x76, 0x45, 0x0, 0x0,
- 0x1a, 0x70, 0xc1, 0x0, 0xc2, 0xb, 0x0, 0x0,
- 0x29, 0x0, 0xc1, 0x2, 0xb0, 0xa, 0x40, 0x0,
- 0x0, 0x0, 0xc1, 0xa, 0x40, 0x3, 0xd1, 0x0,
- 0x0, 0x0, 0xd1, 0x39, 0x0, 0x0, 0xad, 0x20,
- 0x0, 0x0, 0xd4, 0x90, 0x0, 0x0, 0xd, 0x90,
- 0x0, 0x0, 0x34, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+72C0 "狀" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb, 0x10, 0xa, 0x50, 0x0, 0x0,
- 0x0, 0xc1, 0xd, 0x0, 0xb, 0x23, 0x70, 0x0,
- 0x0, 0xd0, 0xd, 0x0, 0xb, 0x20, 0x97, 0x0,
- 0x0, 0xd0, 0xd, 0x0, 0xb, 0x20, 0x14, 0x0,
- 0x0, 0xd0, 0xd, 0x13, 0x3c, 0x53, 0x35, 0xa0,
- 0x3, 0xc6, 0x6d, 0x24, 0x3c, 0x93, 0x33, 0x31,
- 0x0, 0x0, 0xd, 0x0, 0xd, 0x70, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0x0, 0xd, 0x44, 0x0, 0x0,
- 0x4, 0x9a, 0x6d, 0x0, 0x3b, 0x1a, 0x0, 0x0,
- 0x0, 0x77, 0xd, 0x0, 0x76, 0xb, 0x20, 0x0,
- 0x0, 0xa4, 0xd, 0x0, 0xc1, 0x5, 0xb0, 0x0,
- 0x0, 0xc0, 0xd, 0x3, 0xa0, 0x0, 0xc6, 0x0,
- 0x5, 0x50, 0xd, 0xa, 0x20, 0x0, 0x3f, 0x70,
- 0x7, 0x0, 0xe, 0x54, 0x0, 0x0, 0x5, 0xa2,
- 0x10, 0x0, 0x4, 0x30, 0x0, 0x0, 0x0, 0x0,
-
- /* U+72EC "独" */
- 0x0, 0x0, 0x5, 0x30, 0x0, 0xb1, 0x0, 0x0,
- 0x2, 0x71, 0x1e, 0x40, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x1a, 0xb5, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x9, 0xc0, 0xa, 0x66, 0xe6, 0x6b, 0x20,
- 0x0, 0x84, 0xc2, 0xe, 0x0, 0xe0, 0xe, 0x0,
- 0x6, 0x10, 0x96, 0xe, 0x0, 0xe0, 0xe, 0x0,
- 0x0, 0x2, 0xe9, 0xe, 0x0, 0xe0, 0xe, 0x0,
- 0x0, 0xa, 0x6b, 0xe, 0x0, 0xe0, 0xe, 0x0,
- 0x0, 0x57, 0x2c, 0xf, 0x66, 0xe6, 0x6f, 0x0,
- 0x3, 0x80, 0x2c, 0x8, 0x0, 0xe0, 0x4, 0x0,
- 0x15, 0x0, 0x3b, 0x0, 0x0, 0xe0, 0x35, 0x0,
- 0x0, 0x0, 0x5a, 0x0, 0x0, 0xe0, 0x9, 0x50,
- 0x0, 0x10, 0xa6, 0x46, 0x79, 0xe8, 0x64, 0xf0,
- 0x0, 0x4e, 0xb0, 0x7a, 0x62, 0x0, 0x0, 0x80,
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+72ED "狭" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x6, 0x0, 0xc, 0x20, 0x0, 0x0,
- 0x2, 0x60, 0x3b, 0x10, 0xe, 0x0, 0x0, 0x0,
- 0x0, 0x3a, 0xb0, 0x0, 0xe, 0x0, 0x7, 0x0,
- 0x0, 0x1d, 0x60, 0x76, 0x6e, 0x66, 0x68, 0x20,
- 0x1, 0x92, 0xb0, 0x30, 0xe, 0x0, 0x91, 0x0,
- 0x15, 0x0, 0xe0, 0x49, 0xe, 0x2, 0xc0, 0x0,
- 0x0, 0x4, 0xf3, 0xe, 0x1e, 0x8, 0x10, 0x0,
- 0x0, 0xb, 0x95, 0x4, 0xe, 0x3, 0x3, 0x30,
- 0x0, 0x83, 0x78, 0x86, 0x6d, 0x86, 0x68, 0x70,
- 0x4, 0x50, 0x77, 0x0, 0x58, 0x50, 0x0, 0x0,
- 0x23, 0x0, 0x86, 0x0, 0xa3, 0x17, 0x0, 0x0,
- 0x0, 0x0, 0xa4, 0x3, 0xa0, 0x9, 0x40, 0x0,
- 0x1, 0x33, 0xe0, 0x1b, 0x10, 0x0, 0xd6, 0x0,
- 0x0, 0x6e, 0x44, 0x81, 0x0, 0x0, 0x2d, 0xb1,
- 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x1, 0x0,
-
- /* U+732B "猫" */
- 0x1, 0x0, 0x6, 0x20, 0x55, 0x6, 0x60, 0x0,
- 0x2, 0x70, 0x1e, 0x50, 0x76, 0x8, 0x50, 0x0,
- 0x0, 0x1a, 0xc4, 0x0, 0x75, 0x8, 0x51, 0x40,
- 0x0, 0xa, 0xa2, 0x86, 0xa9, 0x6b, 0x97, 0x81,
- 0x0, 0x82, 0xb1, 0x0, 0x75, 0x8, 0x50, 0x0,
- 0x5, 0x0, 0x95, 0x0, 0x53, 0x5, 0x20, 0x0,
- 0x0, 0x1, 0xe8, 0xc, 0x66, 0x86, 0x6d, 0x20,
- 0x0, 0x9, 0x6a, 0xd, 0x0, 0xd0, 0xd, 0x0,
- 0x0, 0x47, 0x2a, 0xd, 0x0, 0xd0, 0xd, 0x0,
- 0x2, 0x70, 0x2a, 0xd, 0x66, 0xe6, 0x6e, 0x0,
- 0x15, 0x0, 0x49, 0xd, 0x0, 0xd0, 0xd, 0x0,
- 0x0, 0x0, 0x77, 0xd, 0x0, 0xd0, 0xd, 0x0,
- 0x0, 0x44, 0xd2, 0xe, 0x66, 0xe6, 0x6e, 0x0,
- 0x0, 0x1c, 0x70, 0xc, 0x0, 0x0, 0x9, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+733F "猿" */
- 0x0, 0x0, 0x4, 0x0, 0xa, 0x20, 0x0, 0x0,
- 0x5, 0x30, 0x5e, 0x10, 0xe, 0x0, 0x80, 0x0,
- 0x0, 0x67, 0xd2, 0x27, 0x6e, 0x66, 0x62, 0x0,
- 0x0, 0xe, 0x50, 0x0, 0xe, 0x0, 0x6, 0x50,
- 0x0, 0x96, 0x85, 0x76, 0x66, 0x66, 0x66, 0x50,
- 0x16, 0x11, 0xd0, 0x1a, 0x66, 0x66, 0xd2, 0x0,
- 0x0, 0x6, 0xf0, 0xc, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0xb, 0xb3, 0x1d, 0x66, 0x66, 0xe0, 0x0,
- 0x0, 0x82, 0xb3, 0x15, 0x86, 0x50, 0x37, 0x30,
- 0x4, 0x50, 0xb4, 0x3, 0xb0, 0x80, 0x7a, 0x30,
- 0x23, 0x0, 0xc3, 0x3e, 0x70, 0x3c, 0x20, 0x0,
- 0x0, 0x0, 0xe5, 0x65, 0x50, 0xa, 0x70, 0x0,
- 0x0, 0x15, 0xd0, 0x4, 0x77, 0x30, 0xcc, 0x50,
- 0x0, 0x6f, 0x40, 0x6, 0xc1, 0x0, 0x9, 0x80,
- 0x0, 0x1, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
-
- /* U+7372 "獲" */
- 0x0, 0x0, 0x3, 0x0, 0x63, 0x4, 0x80, 0x0,
- 0x5, 0x30, 0x3e, 0x66, 0xb7, 0x68, 0xb8, 0xa0,
- 0x0, 0x76, 0xc3, 0x11, 0x84, 0x14, 0x80, 0x0,
- 0x0, 0xd, 0x60, 0x8, 0x40, 0xc1, 0x0, 0x0,
- 0x0, 0x87, 0x80, 0x1e, 0x66, 0xa6, 0x6c, 0x10,
- 0x7, 0x30, 0xc0, 0x9c, 0x0, 0xd0, 0x24, 0x0,
- 0x10, 0x5, 0xf4, 0x2d, 0x66, 0xe6, 0x66, 0x0,
- 0x0, 0xc, 0xc2, 0xd, 0x55, 0xe5, 0x77, 0x0,
- 0x0, 0x56, 0x93, 0xd, 0x66, 0xc6, 0x69, 0x60,
- 0x2, 0x90, 0x94, 0x6, 0x0, 0x0, 0x40, 0x0,
- 0x7, 0x0, 0xa3, 0x7, 0x96, 0x67, 0xe4, 0x0,
- 0x10, 0x0, 0xb2, 0x0, 0x37, 0x1b, 0x30, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x7, 0xf4, 0x0, 0x0,
- 0x1, 0x8d, 0xa0, 0x2, 0x89, 0x4b, 0xa7, 0x60,
- 0x0, 0x8, 0x14, 0x54, 0x0, 0x0, 0x37, 0x20,
-
- /* U+73A9 "玩" */
- 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x3, 0x0,
- 0x18, 0x6a, 0x6a, 0x54, 0x76, 0x66, 0x78, 0x0,
- 0x0, 0xd, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x10, 0x0, 0x0, 0x0, 0x0, 0x40,
- 0x5, 0x6e, 0x7c, 0x37, 0x98, 0x6b, 0x67, 0x90,
- 0x1, 0xd, 0x10, 0x0, 0xa4, 0xe, 0x0, 0x0,
- 0x0, 0xd, 0x10, 0x0, 0xb3, 0xe, 0x0, 0x0,
- 0x0, 0xd, 0x10, 0x0, 0xe0, 0xe, 0x0, 0x0,
- 0x0, 0xd, 0x10, 0x11, 0xd0, 0xe, 0x0, 0x0,
- 0x0, 0xe, 0x86, 0x26, 0x80, 0xe, 0x0, 0x40,
- 0x3c, 0xc5, 0x0, 0xd, 0x10, 0xe, 0x0, 0x70,
- 0x6, 0x0, 0x0, 0xa4, 0x0, 0xe, 0x0, 0xb0,
- 0x0, 0x0, 0x29, 0x30, 0x0, 0xc, 0xcc, 0xe2,
- 0x0, 0x1, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+73FE "現" */
- 0x0, 0x0, 0x3, 0x2, 0x0, 0x0, 0x3, 0x0,
- 0x7, 0x6a, 0x69, 0x3e, 0x66, 0x66, 0x6e, 0x10,
- 0x0, 0xd, 0x0, 0xd, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0xd, 0x0, 0xd, 0x66, 0x66, 0x6c, 0x0,
- 0x0, 0xd, 0x0, 0xd, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0xd, 0x5, 0xd, 0x33, 0x33, 0x3c, 0x0,
- 0x6, 0x7e, 0x67, 0x2d, 0x33, 0x33, 0x3c, 0x0,
- 0x0, 0xd, 0x0, 0xd, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0xd, 0x0, 0xe, 0x7b, 0x6c, 0x6c, 0x0,
- 0x0, 0xd, 0x0, 0x3, 0x58, 0xd, 0x0, 0x0,
- 0x0, 0xd, 0x14, 0x30, 0xa3, 0xd, 0x0, 0x10,
- 0x16, 0x9b, 0x61, 0x2, 0xb0, 0xd, 0x0, 0x60,
- 0x1a, 0x30, 0x0, 0x1b, 0x20, 0xd, 0x0, 0xa0,
- 0x0, 0x0, 0x3, 0x92, 0x0, 0xc, 0xcc, 0xe3,
- 0x0, 0x0, 0x23, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+7403 "球" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x2, 0xb0, 0x40, 0x0,
- 0x0, 0x0, 0x4, 0x0, 0x1, 0xc0, 0x6a, 0x0,
- 0x7, 0x6d, 0x68, 0x20, 0x1, 0xc0, 0x8, 0x10,
- 0x0, 0xe, 0x0, 0x66, 0x66, 0xd6, 0x68, 0xc1,
- 0x0, 0xe, 0x0, 0x0, 0x1, 0xe0, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0x56, 0x1, 0xe3, 0x8, 0x60,
- 0x7, 0x6e, 0x6a, 0xc, 0x61, 0xc7, 0x3b, 0x20,
- 0x0, 0xe, 0x0, 0x4, 0x51, 0xc8, 0x60, 0x0,
- 0x0, 0xe, 0x0, 0x0, 0x4, 0xc3, 0x80, 0x0,
- 0x0, 0xe, 0x2, 0x32, 0x84, 0xc0, 0xb3, 0x0,
- 0x0, 0x3e, 0x85, 0x9b, 0x11, 0xc0, 0x2e, 0x40,
- 0x2d, 0xa2, 0x1, 0x90, 0x1, 0xc0, 0x6, 0xd3,
- 0x3, 0x0, 0x0, 0x1, 0x12, 0xc0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1, 0x8f, 0x90, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
-
- /* U+7406 "理" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
- 0x0, 0x0, 0x7, 0xc, 0x66, 0x96, 0x6e, 0x0,
- 0x7, 0x6d, 0x67, 0x2c, 0x0, 0xc0, 0xc, 0x0,
- 0x0, 0xd, 0x0, 0xc, 0x0, 0xc0, 0xc, 0x0,
- 0x0, 0xd, 0x0, 0xd, 0x66, 0xd6, 0x6c, 0x0,
- 0x0, 0xd, 0x4, 0xc, 0x0, 0xc0, 0xc, 0x0,
- 0x7, 0x6e, 0x69, 0x2c, 0x0, 0xc0, 0xc, 0x0,
- 0x0, 0xd, 0x0, 0xd, 0x66, 0xd6, 0x6c, 0x0,
- 0x0, 0xd, 0x0, 0x4, 0x0, 0xc0, 0x1, 0x0,
- 0x0, 0xd, 0x0, 0x20, 0x0, 0xc0, 0x3, 0x0,
- 0x0, 0xd, 0x87, 0x27, 0x66, 0xd6, 0x79, 0x10,
- 0x1a, 0xd7, 0x0, 0x0, 0x0, 0xc0, 0x0, 0x0,
- 0x6, 0x0, 0x0, 0x0, 0x0, 0xc0, 0x1, 0x40,
- 0x0, 0x0, 0x7, 0x66, 0x66, 0x86, 0x67, 0x80,
-
- /* U+74B0 "環" */
- 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x4, 0x0,
- 0x7, 0x68, 0x7b, 0x3b, 0x6c, 0x6c, 0x6d, 0x0,
- 0x0, 0xc, 0x0, 0x29, 0xb, 0xb, 0xb, 0x0,
- 0x0, 0xc, 0x0, 0x2b, 0x69, 0x69, 0x6b, 0x0,
- 0x0, 0xc, 0x0, 0x0, 0x0, 0x0, 0x2, 0x40,
- 0x3, 0x4d, 0x68, 0x76, 0x66, 0x66, 0x66, 0x50,
- 0x3, 0x3c, 0x21, 0x7, 0x66, 0x66, 0x95, 0x0,
- 0x0, 0xc, 0x0, 0xc, 0x0, 0x0, 0x75, 0x0,
- 0x0, 0xc, 0x0, 0xc, 0x66, 0x66, 0xa5, 0x0,
- 0x0, 0xc, 0x0, 0x6, 0x4a, 0x50, 0x25, 0x80,
- 0x0, 0x1d, 0x75, 0x2, 0xe1, 0x35, 0x78, 0x20,
- 0x1d, 0xc4, 0x0, 0x3a, 0xc0, 0x7, 0x50, 0x0,
- 0x2, 0x0, 0x5, 0x50, 0xb1, 0x50, 0x9b, 0x40,
- 0x0, 0x0, 0x10, 0x0, 0xe9, 0x0, 0x6, 0x70,
- 0x0, 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0,
-
- /* U+7518 "甘" */
- 0x0, 0x0, 0xa3, 0x0, 0x0, 0x93, 0x0, 0x0,
- 0x0, 0xd, 0x10, 0x0, 0xd, 0x10, 0x0, 0x0,
- 0x0, 0xc1, 0x0, 0x0, 0xc1, 0x0, 0x0, 0x0,
- 0xc, 0x10, 0x0, 0xc, 0x10, 0xb3, 0x37, 0x66,
- 0xd6, 0x66, 0x66, 0xd6, 0x66, 0x40, 0x0, 0xc,
- 0x10, 0x0, 0xc, 0x10, 0x0, 0x0, 0x0, 0xc1,
- 0x0, 0x0, 0xc1, 0x0, 0x0, 0x0, 0xc, 0x10,
- 0x0, 0xc, 0x10, 0x0, 0x0, 0x0, 0xc6, 0x66,
- 0x66, 0xd1, 0x0, 0x0, 0x0, 0xc, 0x10, 0x0,
- 0xc, 0x10, 0x0, 0x0, 0x0, 0xd1, 0x0, 0x0,
- 0xc1, 0x0, 0x0, 0x0, 0xd, 0x10, 0x0, 0xc,
- 0x10, 0x0, 0x0, 0x0, 0xd6, 0x66, 0x66, 0xd2,
- 0x0, 0x0, 0x0, 0xe, 0x10, 0x0, 0xc, 0x20,
- 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x20, 0x0,
- 0x0,
-
- /* U+751A "甚" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x8, 0x70, 0x0, 0xd, 0x20, 0x0, 0x0,
- 0x0, 0x75, 0x0, 0x0, 0xe0, 0x24, 0x0, 0x37,
- 0x6a, 0x96, 0x66, 0x6e, 0x67, 0x80, 0x0, 0x0,
- 0x75, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x0, 0x7,
- 0x96, 0x66, 0x6e, 0x0, 0x0, 0x0, 0x0, 0x75,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0x0, 0x7, 0x96,
- 0x66, 0x6e, 0x0, 0x0, 0x0, 0x0, 0x75, 0x0,
- 0x0, 0xe0, 0x0, 0x2, 0x66, 0x6a, 0x96, 0x66,
- 0x6e, 0x66, 0xc7, 0x1, 0xb, 0x20, 0x22, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xb2, 0xc, 0x80, 0x1a,
- 0x50, 0x0, 0x0, 0xb, 0x26, 0x80, 0x0, 0x1e,
- 0x60, 0x0, 0x0, 0xb6, 0x70, 0x0, 0x0, 0x37,
- 0x0, 0x0, 0xd, 0xa6, 0x66, 0x66, 0x66, 0xc8,
- 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+751F "生" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa, 0x60, 0x0, 0x0, 0x0,
- 0x0, 0x6, 0x90, 0xa, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0xb, 0x70, 0xa, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0x1d, 0x0, 0xa, 0x40, 0x0, 0x82, 0x0,
- 0x0, 0x6a, 0x66, 0x6c, 0x86, 0x66, 0x75, 0x0,
- 0x0, 0xb0, 0x0, 0xa, 0x40, 0x0, 0x0, 0x0,
- 0x4, 0x50, 0x0, 0xa, 0x40, 0x0, 0x0, 0x0,
- 0x7, 0x0, 0x0, 0xa, 0x40, 0x2, 0x30, 0x0,
- 0x0, 0x6, 0x66, 0x6c, 0x86, 0x69, 0x90, 0x0,
- 0x0, 0x0, 0x0, 0xa, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa, 0x40, 0x0, 0x7, 0x20,
- 0x18, 0x66, 0x66, 0x67, 0x66, 0x66, 0x69, 0x60,
-
- /* U+7522 "產" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa1, 0x0, 0x0, 0x0, 0x0,
- 0x36, 0x66, 0x6a, 0x76, 0x66, 0xa7, 0x0, 0x0,
- 0x10, 0x34, 0x0, 0x3d, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0x29, 0xb8, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x27, 0x75, 0xc5, 0x0, 0x0, 0x0, 0x30, 0x33,
- 0x0, 0x0, 0xa0, 0x45, 0x0, 0xa, 0x86, 0x76,
- 0x69, 0x66, 0x66, 0x50, 0x0, 0x94, 0xc, 0x30,
- 0xd2, 0x0, 0x0, 0x0, 0xa, 0x33, 0xd6, 0x6e,
- 0x66, 0x7b, 0x0, 0x0, 0xb1, 0x80, 0x0, 0xd0,
- 0x0, 0x0, 0x0, 0xb, 0x23, 0x0, 0xd, 0x0,
- 0x61, 0x0, 0x0, 0xa1, 0x7, 0x66, 0xe6, 0x66,
- 0x30, 0x0, 0x44, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x7, 0x5, 0x66, 0x66, 0xe6, 0x66, 0x7e,
- 0x31, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+7523 "産" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa2, 0x0, 0x0, 0x0, 0x0,
- 0x36, 0x66, 0x6a, 0x86, 0x66, 0xd8, 0x0, 0x0,
- 0x10, 0x50, 0x0, 0x37, 0x0, 0x0, 0x0, 0x0,
- 0x5, 0x90, 0x7, 0x60, 0x0, 0x0, 0x3, 0x0,
- 0x7, 0x0, 0x70, 0x1, 0x40, 0x0, 0xa8, 0x66,
- 0x66, 0x86, 0x66, 0x77, 0x0, 0xa, 0x30, 0x83,
- 0xd, 0x20, 0x0, 0x0, 0x0, 0xa3, 0xd, 0x10,
- 0xd0, 0x0, 0x30, 0x0, 0xb, 0x26, 0x96, 0x6e,
- 0x66, 0x69, 0x30, 0x0, 0xb0, 0x80, 0x0, 0xd0,
- 0x0, 0x0, 0x0, 0xb, 0x31, 0x56, 0x6e, 0x66,
- 0xa8, 0x0, 0x0, 0x90, 0x1, 0x0, 0xd0, 0x0,
- 0x0, 0x0, 0x54, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x7, 0x5, 0x66, 0x66, 0xe6, 0x66, 0x7e,
- 0x20, 0x10, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+7528 "用" */
- 0x0, 0x12, 0x0, 0x0, 0x0, 0x0, 0x6, 0x0,
- 0x3, 0xd6, 0x66, 0x6d, 0x66, 0x66, 0xe0, 0x0,
- 0x2b, 0x0, 0x1, 0xb0, 0x0, 0x1c, 0x0, 0x2,
- 0xb0, 0x0, 0x1b, 0x0, 0x1, 0xc0, 0x0, 0x2d,
- 0x66, 0x66, 0xd6, 0x66, 0x6c, 0x0, 0x2, 0xb0,
- 0x0, 0x1b, 0x0, 0x1, 0xc0, 0x0, 0x3a, 0x0,
- 0x1, 0xb0, 0x0, 0x1c, 0x0, 0x4, 0xa0, 0x0,
- 0x1b, 0x0, 0x1, 0xc0, 0x0, 0x5b, 0x66, 0x66,
- 0xd6, 0x66, 0x6c, 0x0, 0x7, 0x60, 0x0, 0x1b,
- 0x0, 0x1, 0xc0, 0x0, 0xa3, 0x0, 0x1, 0xb0,
- 0x0, 0x1c, 0x0, 0xc, 0x0, 0x0, 0x1b, 0x0,
- 0x1, 0xc0, 0x4, 0x50, 0x0, 0x1, 0xc0, 0x22,
- 0x5c, 0x0, 0x80, 0x0, 0x0, 0x29, 0x1, 0x6f,
- 0x80, 0x11, 0x0, 0x0, 0x0, 0x0, 0x0, 0x30,
- 0x0,
-
- /* U+7530 "田" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x86,
- 0x66, 0x66, 0x66, 0x66, 0xb3, 0x2b, 0x0, 0x0,
- 0xe0, 0x0, 0xc, 0x12, 0xb0, 0x0, 0xe, 0x0,
- 0x0, 0xc1, 0x2b, 0x0, 0x0, 0xe0, 0x0, 0xc,
- 0x12, 0xb0, 0x0, 0xe, 0x0, 0x0, 0xc1, 0x2b,
- 0x0, 0x0, 0xe0, 0x0, 0xc, 0x12, 0xd6, 0x66,
- 0x6e, 0x66, 0x66, 0xd1, 0x2b, 0x0, 0x0, 0xe0,
- 0x0, 0xc, 0x12, 0xb0, 0x0, 0xe, 0x0, 0x0,
- 0xc1, 0x2b, 0x0, 0x0, 0xe0, 0x0, 0xc, 0x12,
- 0xb0, 0x0, 0xe, 0x0, 0x0, 0xc1, 0x2d, 0x66,
- 0x66, 0x66, 0x66, 0x6d, 0x22, 0x50, 0x0, 0x0,
- 0x0, 0x0, 0x40,
-
- /* U+7531 "由" */
- 0x0, 0x0, 0x0, 0x91, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xd0, 0x0, 0x0, 0x1, 0x20, 0x0, 0xd, 0x0,
- 0x0, 0x60, 0x3d, 0x66, 0x66, 0xe6, 0x66, 0x6f,
- 0x22, 0xb0, 0x0, 0xd, 0x0, 0x0, 0xe0, 0x2b,
- 0x0, 0x0, 0xd0, 0x0, 0xe, 0x2, 0xb0, 0x0,
- 0xd, 0x0, 0x0, 0xe0, 0x2d, 0x66, 0x66, 0xe6,
- 0x66, 0x6e, 0x2, 0xb0, 0x0, 0xd, 0x0, 0x0,
- 0xe0, 0x2b, 0x0, 0x0, 0xd0, 0x0, 0xe, 0x2,
- 0xb0, 0x0, 0xd, 0x0, 0x0, 0xe0, 0x2b, 0x0,
- 0x0, 0xd0, 0x0, 0xe, 0x3, 0xd6, 0x66, 0x66,
- 0x66, 0x66, 0xe0, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0x0,
-
- /* U+7533 "申" */
- 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1f, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xd0, 0x0, 0x0, 0x1, 0x96, 0x66, 0x6e, 0x66,
- 0x66, 0xc1, 0x1d, 0x0, 0x0, 0xd0, 0x0, 0x1d,
- 0x0, 0xd0, 0x0, 0xd, 0x0, 0x1, 0xd0, 0xd,
- 0x0, 0x0, 0xd0, 0x0, 0x1d, 0x0, 0xe6, 0x66,
- 0x6e, 0x66, 0x66, 0xd0, 0xd, 0x0, 0x0, 0xd0,
- 0x0, 0x1d, 0x1, 0xd0, 0x0, 0xd, 0x0, 0x1,
- 0xd0, 0x1e, 0x66, 0x66, 0xe6, 0x66, 0x6d, 0x1,
- 0x70, 0x0, 0xd, 0x0, 0x0, 0x40, 0x0, 0x0,
- 0x0, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0,
-
- /* U+7535 "电" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0xc1, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd,
- 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0xd0, 0x0,
- 0x2, 0x0, 0xb7, 0x66, 0x6e, 0x66, 0x66, 0xf1,
- 0xa, 0x30, 0x0, 0xd0, 0x0, 0x1d, 0x0, 0xa3,
- 0x0, 0xd, 0x0, 0x1, 0xd0, 0xa, 0x86, 0x66,
- 0xe6, 0x66, 0x6d, 0x0, 0xa3, 0x0, 0xd, 0x0,
- 0x1, 0xd0, 0xa, 0x30, 0x0, 0xd0, 0x0, 0x1d,
- 0x0, 0xb8, 0x66, 0x6e, 0x66, 0x66, 0xd0, 0xa,
- 0x20, 0x0, 0xd0, 0x0, 0x3, 0x40, 0x0, 0x0,
- 0xd, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0xe0,
- 0x0, 0x0, 0x76, 0x0, 0x0, 0xb, 0xcc, 0xcc,
- 0xce, 0x70,
-
- /* U+7537 "男" */
- 0x0, 0x86, 0x66, 0x66, 0x66, 0x6a, 0x0, 0x0,
- 0xc0, 0x0, 0xd0, 0x0, 0x1d, 0x0, 0x0, 0xc0,
- 0x0, 0xd0, 0x0, 0x1d, 0x0, 0x0, 0xc6, 0x66,
- 0xe6, 0x66, 0x6d, 0x0, 0x0, 0xc0, 0x0, 0xd0,
- 0x0, 0x1d, 0x0, 0x0, 0xc0, 0x0, 0xd0, 0x0,
- 0x1d, 0x0, 0x0, 0xd6, 0x66, 0xa6, 0x66, 0x6c,
- 0x0, 0x0, 0x10, 0x0, 0xe3, 0x0, 0x0, 0x0,
- 0x6, 0x66, 0x66, 0xf6, 0x66, 0x66, 0xc0, 0x1,
- 0x0, 0x3, 0xa0, 0x0, 0x4, 0xa0, 0x0, 0x0,
- 0x9, 0x40, 0x0, 0x7, 0x60, 0x0, 0x0, 0x3b,
- 0x0, 0x0, 0xa, 0x30, 0x0, 0x4, 0xc1, 0x2,
- 0x41, 0x1d, 0x0, 0x2, 0x97, 0x0, 0x0, 0x3d,
- 0xf7, 0x0, 0x43, 0x0, 0x0, 0x0, 0x2, 0x20,
- 0x0,
-
- /* U+753A "町" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x7,
- 0x66, 0x66, 0xb5, 0x76, 0x68, 0x69, 0xa0, 0xb1,
- 0x1c, 0xd, 0x0, 0x0, 0xe0, 0x0, 0xb, 0x11,
- 0xc0, 0xd0, 0x0, 0xe, 0x0, 0x0, 0xb1, 0x1c,
- 0xd, 0x0, 0x0, 0xe0, 0x0, 0xb, 0x11, 0xc0,
- 0xd0, 0x0, 0xe, 0x0, 0x0, 0xb6, 0x6d, 0x6d,
- 0x0, 0x0, 0xe0, 0x0, 0xb, 0x11, 0xc0, 0xd0,
- 0x0, 0xe, 0x0, 0x0, 0xb1, 0x1c, 0xd, 0x0,
- 0x0, 0xe0, 0x0, 0xb, 0x11, 0xc0, 0xd0, 0x0,
- 0xe, 0x0, 0x0, 0xc6, 0x6c, 0x6e, 0x0, 0x0,
- 0xe0, 0x0, 0xc, 0x10, 0x0, 0xa0, 0x0, 0xe,
- 0x0, 0x0, 0x40, 0x0, 0x0, 0x1, 0x11, 0xd0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0xea, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0,
- 0x0,
-
- /* U+753B "画" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x70, 0x47,
- 0x66, 0x66, 0x66, 0x66, 0x66, 0x83, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xa6,
- 0x69, 0x66, 0xe0, 0x0, 0x2, 0x3, 0xa0, 0xc,
- 0x0, 0xc0, 0xa2, 0xe, 0x12, 0xa0, 0xc, 0x0,
- 0xc0, 0xd0, 0xd, 0x2, 0xa0, 0xc, 0x0, 0xc0,
- 0xd0, 0xd, 0x2, 0xc6, 0x6d, 0x66, 0xc0, 0xd0,
- 0xd, 0x2, 0xa0, 0xc, 0x0, 0xc0, 0xd0, 0xd,
- 0x3, 0xa0, 0xc, 0x0, 0xc0, 0xd0, 0xd, 0x3,
- 0xc6, 0x6d, 0x66, 0xd0, 0xd0, 0xd, 0x3, 0x70,
- 0x0, 0x0, 0x60, 0xd0, 0x2e, 0x66, 0x66, 0x66,
- 0x66, 0x66, 0xe0, 0x4, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+754C "界" */
- 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0,
- 0x0, 0xb, 0x76, 0x6e, 0x66, 0x67, 0xd0, 0x0,
- 0x0, 0xa, 0x20, 0xd, 0x0, 0x3, 0xa0, 0x0,
- 0x0, 0xa, 0x76, 0x6e, 0x66, 0x67, 0xa0, 0x0,
- 0x0, 0xa, 0x20, 0xd, 0x0, 0x3, 0xa0, 0x0,
- 0x0, 0xb, 0x76, 0x8b, 0x67, 0x67, 0xa0, 0x0,
- 0x0, 0x3, 0x1, 0xd0, 0x8, 0x10, 0x10, 0x0,
- 0x0, 0x0, 0xc, 0x50, 0x0, 0xa5, 0x0, 0x0,
- 0x0, 0x3, 0xc6, 0xa0, 0x1, 0xa8, 0xea, 0x71,
- 0x2, 0x77, 0x13, 0x60, 0x1, 0xc0, 0x17, 0x50,
- 0x3, 0x0, 0x6, 0x20, 0x1, 0xc0, 0x0, 0x0,
- 0x0, 0x0, 0x9, 0x0, 0x1, 0xc0, 0x0, 0x0,
- 0x0, 0x0, 0x83, 0x0, 0x1, 0xc0, 0x0, 0x0,
- 0x0, 0x37, 0x20, 0x0, 0x1, 0xc0, 0x0, 0x0,
- 0x2, 0x10, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0,
-
- /* U+7559 "留" */
- 0x0, 0x0, 0x29, 0x90, 0x0, 0x0, 0x0, 0x9,
- 0x57, 0x63, 0x17, 0x77, 0x66, 0xc4, 0xd, 0x0,
- 0x10, 0x0, 0x77, 0x0, 0xc1, 0xd, 0x0, 0x3a,
- 0x10, 0xa3, 0x0, 0xd0, 0xd, 0x0, 0x39, 0xc1,
- 0xb0, 0x0, 0xd0, 0xe, 0x89, 0x30, 0x6a, 0x22,
- 0x68, 0x90, 0xa, 0x40, 0x1, 0x72, 0x0, 0x3b,
- 0x10, 0x0, 0xa6, 0x68, 0x66, 0x66, 0x6b, 0x20,
- 0x0, 0xe0, 0x0, 0x3a, 0x0, 0xe, 0x0, 0x0,
- 0xe0, 0x0, 0x3a, 0x0, 0xe, 0x0, 0x0, 0xf6,
- 0x66, 0x8c, 0x66, 0x6e, 0x0, 0x0, 0xe0, 0x0,
- 0x3a, 0x0, 0xe, 0x0, 0x0, 0xe0, 0x0, 0x3a,
- 0x0, 0xe, 0x0, 0x0, 0xf6, 0x66, 0x67, 0x66,
- 0x6e, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x2,
- 0x0,
-
- /* U+756A "番" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x2, 0x6b, 0xc0, 0x0,
- 0x0, 0x24, 0x56, 0x89, 0xe8, 0x66, 0x20, 0x0,
- 0x0, 0x0, 0x35, 0x0, 0xd0, 0x3d, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0x0, 0xd0, 0x81, 0x0, 0x20,
- 0x4, 0x76, 0x68, 0x7a, 0xe7, 0x76, 0x68, 0x90,
- 0x0, 0x0, 0x1, 0xc3, 0xd2, 0x70, 0x0, 0x0,
- 0x0, 0x0, 0x3b, 0x20, 0xd0, 0x3b, 0x40, 0x0,
- 0x0, 0x18, 0x60, 0x0, 0xe0, 0x1, 0xae, 0xa2,
- 0x4, 0x51, 0xb6, 0x66, 0xa6, 0x66, 0xd4, 0x30,
- 0x0, 0x0, 0xd0, 0x0, 0xd0, 0x0, 0xd0, 0x0,
- 0x0, 0x0, 0xe6, 0x66, 0xe6, 0x66, 0xd0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0xd0, 0x0, 0xd0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0xd0, 0x0, 0xd0, 0x0,
- 0x0, 0x0, 0xe6, 0x66, 0x66, 0x66, 0xc0, 0x0,
- 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+756B "畫" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc2, 0x0, 0x0, 0x0, 0x0,
- 0x6, 0x66, 0x6e, 0x66, 0x6b, 0x20, 0x0, 0x0,
- 0x10, 0x0, 0xd0, 0x0, 0xd0, 0x70, 0x4, 0x76,
- 0x66, 0x6e, 0x66, 0x6e, 0x66, 0x20, 0x0, 0x66,
- 0x55, 0xe5, 0x55, 0xc0, 0x0, 0x0, 0x5, 0x66,
- 0x6e, 0x66, 0x67, 0x80, 0x0, 0x0, 0x10, 0x0,
- 0xd0, 0x0, 0x1, 0x30, 0x0, 0x76, 0x66, 0x67,
- 0x66, 0x66, 0x66, 0x0, 0x0, 0xa6, 0x66, 0x76,
- 0x66, 0xa6, 0x0, 0x0, 0xd, 0x0, 0xd, 0x0,
- 0xa, 0x30, 0x0, 0x0, 0xd6, 0x66, 0xe6, 0x66,
- 0xc3, 0x0, 0x0, 0xd, 0x66, 0x6e, 0x66, 0x6c,
- 0x30, 0x0, 0x0, 0xb0, 0x0, 0x0, 0x0, 0x51,
- 0x40, 0x16, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7f,
- 0x60, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+7570 "異" */
- 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0,
- 0x0, 0xd6, 0x66, 0xd6, 0x66, 0x6e, 0x20, 0x0,
- 0xd, 0x0, 0xb, 0x10, 0x0, 0xd0, 0x0, 0x0,
- 0xd6, 0x66, 0xd6, 0x66, 0x6d, 0x0, 0x0, 0xd,
- 0x0, 0xb, 0x10, 0x0, 0xd0, 0x0, 0x0, 0xd6,
- 0x66, 0x96, 0x66, 0x6d, 0x0, 0x0, 0x5, 0xa,
- 0x10, 0xa, 0x20, 0x30, 0x0, 0x0, 0x0, 0xd0,
- 0x0, 0xd0, 0x1, 0x60, 0x0, 0x76, 0x6e, 0x66,
- 0x6e, 0x66, 0x65, 0x0, 0x0, 0x0, 0xd0, 0x0,
- 0xd0, 0x0, 0x0, 0x6, 0x76, 0x6b, 0x66, 0x6b,
- 0x66, 0x6a, 0x70, 0x0, 0x0, 0x87, 0x0, 0x36,
- 0x20, 0x0, 0x0, 0x2, 0xb9, 0x20, 0x0, 0x19,
- 0xc4, 0x0, 0x28, 0x71, 0x0, 0x0, 0x0, 0x4,
- 0xf2, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2,
- 0x10,
-
- /* U+7576 "當" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x20, 0x0, 0xc3, 0x0, 0x30, 0x0, 0x0, 0x2b,
- 0x10, 0xc0, 0x6, 0xc0, 0x0, 0x1, 0x7, 0x40,
- 0xc0, 0x9, 0x0, 0x0, 0x9, 0x66, 0x66, 0xb6,
- 0x86, 0x66, 0xd7, 0x2b, 0x0, 0x0, 0x0, 0x1,
- 0x3, 0x80, 0x75, 0x8, 0x86, 0x66, 0x6c, 0x52,
- 0x0, 0x0, 0x7, 0x40, 0x0, 0xa, 0x20, 0x0,
- 0x0, 0x7, 0x86, 0x66, 0x6c, 0x30, 0x0, 0x0,
- 0x4, 0x10, 0x0, 0x4, 0x0, 0x0, 0x0, 0xc6,
- 0x66, 0x76, 0x66, 0x7d, 0x0, 0x0, 0xd0, 0x0,
- 0xa2, 0x0, 0x39, 0x0, 0x0, 0xd6, 0x66, 0xc7,
- 0x66, 0x89, 0x0, 0x0, 0xd0, 0x0, 0xa2, 0x0,
- 0x39, 0x0, 0x0, 0xe6, 0x66, 0xc7, 0x66, 0x8a,
- 0x0, 0x0, 0x90, 0x0, 0x0, 0x0, 0x26, 0x0,
-
- /* U+75B2 "疲" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x2, 0x91, 0x0, 0x0, 0x0,
- 0x0, 0x2, 0x0, 0x0, 0x87, 0x0, 0x3, 0x20,
- 0x0, 0x8, 0x86, 0x66, 0x77, 0x66, 0x69, 0x70,
- 0x4, 0x8, 0x40, 0x0, 0xd, 0x20, 0x0, 0x0,
- 0x7, 0x68, 0x40, 0x96, 0x6e, 0x66, 0x6b, 0x10,
- 0x3, 0x98, 0x40, 0xc0, 0xd, 0x0, 0x67, 0x0,
- 0x0, 0x8, 0x40, 0xc0, 0xd, 0x0, 0x30, 0x0,
- 0x0, 0x5b, 0x40, 0xc0, 0xd, 0x0, 0x60, 0x0,
- 0x2d, 0x3a, 0x21, 0xd6, 0x86, 0x67, 0xe2, 0x0,
- 0x1, 0xb, 0x3, 0xa0, 0x60, 0xa, 0x50, 0x0,
- 0x0, 0xb, 0x7, 0x60, 0x27, 0x4b, 0x0, 0x0,
- 0x0, 0x66, 0xc, 0x0, 0x9, 0xd1, 0x0, 0x0,
- 0x0, 0xa0, 0x65, 0x0, 0x5b, 0x8a, 0x40, 0x0,
- 0x6, 0x13, 0x60, 0x48, 0x50, 0x2, 0xaf, 0x90,
- 0x1, 0x1, 0x3, 0x10, 0x0, 0x0, 0x1, 0x0,
-
- /* U+75C5 "病" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1a, 0x10, 0x0, 0x0, 0x0,
- 0x4, 0x0, 0x0, 0x76, 0x0, 0x5, 0x20, 0x0,
- 0xc7, 0x66, 0x66, 0x66, 0x66, 0x64, 0x8, 0x2c,
- 0x10, 0x0, 0x0, 0x0, 0x5, 0x0, 0x49, 0xc3,
- 0x76, 0x66, 0xd6, 0x66, 0x82, 0x0, 0x1c, 0x10,
- 0x0, 0xe, 0x0, 0x0, 0x0, 0x5, 0xd1, 0x86,
- 0x66, 0xe6, 0x66, 0xb1, 0x2b, 0x2d, 0xd, 0x0,
- 0x2b, 0x0, 0xe, 0x0, 0x30, 0xc0, 0xd0, 0x7,
- 0x83, 0x0, 0xe0, 0x0, 0x1b, 0xc, 0x0, 0xc0,
- 0x76, 0xe, 0x0, 0x4, 0x60, 0xc0, 0x83, 0x0,
- 0xe1, 0xe0, 0x0, 0xa1, 0xc, 0x52, 0x0, 0x4,
- 0xe, 0x0, 0x27, 0x0, 0xd0, 0x0, 0x1, 0x32,
- 0xd0, 0x7, 0x0, 0xd, 0x0, 0x0, 0x5, 0xf9,
- 0x1, 0x0, 0x0, 0x10, 0x0, 0x0, 0x1, 0x0,
-
- /* U+75DB "痛" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x85, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0x10, 0x0, 0x2c, 0x0, 0x4, 0x50,
- 0x0, 0x3, 0xc6, 0x66, 0x66, 0x66, 0x66, 0x60,
- 0x8, 0x23, 0xb0, 0x76, 0x66, 0x66, 0xa8, 0x0,
- 0x4, 0xc2, 0xb0, 0x0, 0x33, 0x18, 0x73, 0x0,
- 0x0, 0x82, 0xb0, 0x20, 0xc, 0x60, 0x3, 0x0,
- 0x0, 0x2, 0xb0, 0xe6, 0x6c, 0x76, 0x6e, 0x20,
- 0x0, 0x59, 0xa0, 0xd0, 0xa, 0x20, 0xd, 0x0,
- 0x2c, 0x74, 0x80, 0xe6, 0x6c, 0x76, 0x6e, 0x0,
- 0x5, 0x7, 0x50, 0xd0, 0xa, 0x20, 0xd, 0x0,
- 0x0, 0xb, 0x10, 0xd6, 0x6c, 0x76, 0x6e, 0x0,
- 0x0, 0x2a, 0x0, 0xd0, 0xa, 0x20, 0xd, 0x0,
- 0x0, 0x91, 0x0, 0xd0, 0xa, 0x20, 0xd, 0x0,
- 0x5, 0x30, 0x0, 0xd0, 0xa, 0x35, 0xcd, 0x0,
- 0x1, 0x0, 0x0, 0x40, 0x1, 0x0, 0x21, 0x0,
-
- /* U+767A "発" */
- 0x0, 0x0, 0x0, 0x43, 0x0, 0x32, 0x0, 0x0,
- 0x46, 0x66, 0x8d, 0x43, 0x2c, 0x40, 0x0, 0x0,
- 0x73, 0xb, 0x30, 0x95, 0x1, 0x90, 0x0, 0x2,
- 0x97, 0x70, 0x3, 0x71, 0xa5, 0x0, 0x0, 0x6,
- 0x80, 0x0, 0x6, 0xd2, 0x0, 0x0, 0x7, 0x60,
- 0x0, 0x0, 0x19, 0xdc, 0x71, 0x36, 0x15, 0x7e,
- 0x66, 0xe6, 0x50, 0x63, 0x0, 0x0, 0x0, 0xc0,
- 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0x0,
- 0xd0, 0x0, 0x40, 0x0, 0x76, 0x66, 0xd6, 0x6e,
- 0x66, 0x68, 0x30, 0x0, 0x0, 0x58, 0x0, 0xd0,
- 0x0, 0x0, 0x0, 0x0, 0xc, 0x10, 0xd, 0x0,
- 0x5, 0x0, 0x0, 0x9, 0x30, 0x0, 0xc0, 0x0,
- 0x74, 0x1, 0x57, 0x0, 0x0, 0x8, 0xcb, 0xbd,
- 0x50, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+767C "發" */
- 0x0, 0x0, 0x0, 0x51, 0x10, 0x32, 0x0, 0x0,
- 0x3, 0x86, 0x6f, 0x55, 0xa, 0x20, 0x0, 0x0,
- 0x38, 0x9, 0x70, 0x1a, 0x1, 0xc0, 0x0, 0x0,
- 0x67, 0x80, 0x0, 0x38, 0x61, 0x0, 0x0, 0x8,
- 0x60, 0x0, 0x0, 0x3b, 0x73, 0x10, 0x47, 0x67,
- 0xb6, 0x7, 0x76, 0xc7, 0xb4, 0x1, 0x0, 0xb,
- 0x20, 0x93, 0xd, 0x0, 0x0, 0x3, 0x11, 0xb2,
- 0xb, 0x0, 0xd0, 0x0, 0x0, 0xb6, 0x59, 0x12,
- 0x80, 0x7, 0xbb, 0x70, 0xc, 0x10, 0x11, 0x63,
- 0x33, 0x37, 0x10, 0x0, 0xc6, 0x6c, 0x70, 0x43,
- 0x35, 0xc1, 0x0, 0x0, 0x0, 0xc1, 0x4, 0x30,
- 0xb2, 0x0, 0x0, 0x0, 0xd, 0x0, 0x3, 0xca,
- 0x0, 0x0, 0x0, 0x1, 0xc0, 0x0, 0x96, 0x6b,
- 0x10, 0x0, 0x18, 0xc7, 0x4, 0x72, 0x0, 0x6b,
- 0x0, 0x0, 0x5, 0x3, 0x10, 0x0, 0x0, 0x20,
-
- /* U+767D "白" */
- 0x0, 0x0, 0x1b, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x89, 0x0, 0x0, 0x0, 0x0, 0x0, 0x90, 0x0,
- 0x0, 0x20, 0xd, 0x67, 0x66, 0x66, 0x66, 0xd6,
- 0xe, 0x0, 0x0, 0x0, 0x0, 0xc1, 0xe, 0x0,
- 0x0, 0x0, 0x0, 0xc1, 0xe, 0x0, 0x0, 0x0,
- 0x0, 0xc1, 0xe, 0x66, 0x66, 0x66, 0x66, 0xd1,
- 0xe, 0x0, 0x0, 0x0, 0x0, 0xc1, 0xe, 0x0,
- 0x0, 0x0, 0x0, 0xc1, 0xe, 0x0, 0x0, 0x0,
- 0x0, 0xc1, 0xe, 0x0, 0x0, 0x0, 0x0, 0xc1,
- 0xe, 0x66, 0x66, 0x66, 0x66, 0xd1, 0xe, 0x0,
- 0x0, 0x0, 0x0, 0xc2, 0x2, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+767E "百" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x2,
- 0x86, 0x66, 0x68, 0x96, 0x66, 0x68, 0x90, 0x0,
- 0x0, 0x0, 0x99, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x29,
- 0x66, 0x96, 0x66, 0x6c, 0x0, 0x0, 0x1, 0xd0,
- 0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x1d, 0x0,
- 0x0, 0x0, 0x3c, 0x0, 0x0, 0x1, 0xd0, 0x0,
- 0x0, 0x3, 0xc0, 0x0, 0x0, 0x1e, 0x66, 0x66,
- 0x66, 0x7c, 0x0, 0x0, 0x1, 0xd0, 0x0, 0x0,
- 0x3, 0xc0, 0x0, 0x0, 0x1d, 0x0, 0x0, 0x0,
- 0x3c, 0x0, 0x0, 0x1, 0xd0, 0x0, 0x0, 0x3,
- 0xc0, 0x0, 0x0, 0x1e, 0x66, 0x66, 0x66, 0x7c,
- 0x0, 0x0, 0x2, 0xd0, 0x0, 0x0, 0x3, 0xc0,
- 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+7684 "的" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb,
- 0x30, 0x0, 0x2b, 0x10, 0x0, 0x0, 0xd0, 0x0,
- 0x6, 0xc0, 0x0, 0x1, 0x44, 0x3, 0x0, 0xb3,
- 0x0, 0x10, 0xe7, 0x66, 0xe4, 0x2d, 0x66, 0x6c,
- 0x8d, 0x0, 0xd, 0x9, 0x30, 0x0, 0xb3, 0xd0,
- 0x0, 0xd2, 0x60, 0x0, 0xb, 0x3d, 0x0, 0xd,
- 0x41, 0x40, 0x0, 0xb3, 0xd6, 0x66, 0xd0, 0xa,
- 0x40, 0xc, 0x2d, 0x0, 0xd, 0x0, 0x4b, 0x0,
- 0xc2, 0xd0, 0x0, 0xd0, 0x0, 0x40, 0xd, 0x1d,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0xd1, 0xd0, 0x0,
- 0xd0, 0x0, 0x0, 0xe, 0xe, 0x66, 0x6e, 0x0,
- 0x5, 0x25, 0xd0, 0xd0, 0x0, 0xa0, 0x0, 0x1a,
- 0xf6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0,
-
- /* U+7686 "皆" */
- 0x28, 0x0, 0x0, 0x1b, 0x0, 0x10, 0x0, 0x2a,
- 0x0, 0x0, 0x1c, 0x2, 0xe6, 0x0, 0x2c, 0x66,
- 0xa8, 0x1c, 0x3b, 0x40, 0x0, 0x2a, 0x0, 0x0,
- 0x1d, 0x40, 0x0, 0x40, 0x2a, 0x0, 0x14, 0x1c,
- 0x0, 0x0, 0x70, 0x3d, 0xa9, 0x50, 0xd, 0x0,
- 0x1, 0xe2, 0x2a, 0x20, 0xb, 0x28, 0xbb, 0xbb,
- 0x80, 0x1, 0x0, 0x37, 0x0, 0x2, 0x0, 0x0,
- 0x5, 0xc6, 0x66, 0x66, 0x6c, 0x60, 0x0, 0x4,
- 0xa0, 0x0, 0x0, 0xb, 0x30, 0x0, 0x4, 0xc6,
- 0x66, 0x66, 0x6c, 0x30, 0x0, 0x4, 0xa0, 0x0,
- 0x0, 0xb, 0x30, 0x0, 0x4, 0xa0, 0x0, 0x0,
- 0xb, 0x30, 0x0, 0x5, 0xc6, 0x66, 0x66, 0x6c,
- 0x30, 0x0, 0x1, 0x10, 0x0, 0x0, 0x1, 0x0,
- 0x0,
-
- /* U+76BF "皿" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0,
- 0x0, 0x1c, 0x66, 0xa6, 0x6a, 0x66, 0xf2, 0x0,
- 0x0, 0x1c, 0x0, 0xd0, 0xd, 0x0, 0xe0, 0x0,
- 0x0, 0x1c, 0x0, 0xd0, 0xd, 0x0, 0xe0, 0x0,
- 0x0, 0x1c, 0x0, 0xd0, 0xd, 0x0, 0xe0, 0x0,
- 0x0, 0x1c, 0x0, 0xd0, 0xd, 0x0, 0xe0, 0x0,
- 0x0, 0x1c, 0x0, 0xd0, 0xd, 0x0, 0xe0, 0x0,
- 0x0, 0x1c, 0x0, 0xd0, 0xd, 0x0, 0xe0, 0x0,
- 0x0, 0x1c, 0x0, 0xd0, 0xd, 0x0, 0xe0, 0x0,
- 0x0, 0x1c, 0x0, 0xd0, 0xd, 0x0, 0xe0, 0x0,
- 0x0, 0x1c, 0x0, 0xd0, 0xd, 0x0, 0xe2, 0x90,
- 0x6, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x62,
-
- /* U+76D7 "盗" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x31, 0x0, 0x0, 0xa7, 0x0, 0x0, 0x0, 0x0,
- 0xc3, 0x1, 0x1e, 0x20, 0x0, 0x10, 0x0, 0x4,
- 0x74, 0x29, 0x96, 0x66, 0x6e, 0x60, 0x0, 0x1,
- 0x83, 0x90, 0x86, 0x4, 0x60, 0x0, 0x0, 0xb2,
- 0x70, 0xd, 0x70, 0x20, 0x0, 0x6, 0xe6, 0x0,
- 0x4, 0xb6, 0x30, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0xc3, 0xb, 0x20, 0x0, 0x0, 0xf0, 0x0, 0x95,
- 0x0, 0x3e, 0x82, 0x0, 0x8, 0x4, 0x71, 0x0,
- 0x0, 0x38, 0x10, 0x0, 0x96, 0x66, 0x66, 0x66,
- 0x6d, 0x20, 0x0, 0xd, 0x0, 0xd0, 0xd, 0x0,
- 0xd0, 0x0, 0x0, 0xd0, 0xd, 0x0, 0xd0, 0xd,
- 0x0, 0x0, 0xd, 0x0, 0xd0, 0xd, 0x0, 0xd0,
- 0x0, 0x46, 0xe6, 0x6e, 0x66, 0xe6, 0x6e, 0xab,
- 0x1, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+76EE "目" */
- 0x1, 0x0, 0x0, 0x0, 0x2, 0x1, 0xd6, 0x66,
- 0x66, 0x67, 0xe1, 0x1e, 0x0, 0x0, 0x0, 0x3c,
- 0x0, 0xe0, 0x0, 0x0, 0x3, 0xc0, 0xe, 0x0,
- 0x0, 0x0, 0x3c, 0x0, 0xf6, 0x66, 0x66, 0x67,
- 0xc0, 0xe, 0x0, 0x0, 0x0, 0x3c, 0x0, 0xe0,
- 0x0, 0x0, 0x3, 0xc0, 0xf, 0x66, 0x66, 0x66,
- 0x7c, 0x0, 0xe0, 0x0, 0x0, 0x3, 0xc0, 0xe,
- 0x0, 0x0, 0x0, 0x3c, 0x0, 0xe0, 0x0, 0x0,
- 0x3, 0xc0, 0xf, 0x66, 0x66, 0x66, 0x7c, 0x1,
- 0xd0, 0x0, 0x0, 0x3, 0xc0, 0x1, 0x0, 0x0,
- 0x0, 0x0, 0x0,
-
- /* U+76F4 "直" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x5, 0x90, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x6, 0x70, 0x0, 0x37, 0x0,
- 0x0, 0x76, 0x66, 0x6b, 0x86, 0x66, 0x66, 0x10,
- 0x0, 0x0, 0x30, 0xb, 0x10, 0x5, 0x0, 0x0,
- 0x0, 0x0, 0xe6, 0x66, 0x66, 0x6e, 0x20, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x0, 0xe6, 0x66, 0x66, 0x6e, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x0, 0xe6, 0x66, 0x66, 0x6e, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x0, 0xe6, 0x66, 0x66, 0x6e, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0xd, 0x6, 0x40,
- 0x6, 0x66, 0x76, 0x66, 0x66, 0x67, 0x67, 0x70,
-
- /* U+76F8 "相" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd0, 0x0, 0x96, 0x66, 0x6c, 0x30, 0x0,
- 0xd, 0x0, 0xd, 0x10, 0x0, 0xe0, 0x0, 0x0,
- 0xd0, 0x52, 0xd1, 0x0, 0xe, 0x0, 0x67, 0x6f,
- 0x67, 0x4c, 0x10, 0x0, 0xe0, 0x0, 0x4, 0xf0,
- 0x0, 0xc6, 0x66, 0x6e, 0x0, 0x0, 0x9f, 0x95,
- 0xc, 0x10, 0x0, 0xe0, 0x0, 0xc, 0xd1, 0xe0,
- 0xc1, 0x0, 0xe, 0x0, 0x6, 0x5d, 0x3, 0xc,
- 0x66, 0x66, 0xe0, 0x0, 0xa0, 0xd0, 0x0, 0xc1,
- 0x0, 0xe, 0x0, 0x62, 0xd, 0x0, 0xc, 0x10,
- 0x0, 0xe0, 0x13, 0x0, 0xd0, 0x0, 0xc1, 0x0,
- 0xe, 0x0, 0x0, 0xe, 0x0, 0xd, 0x66, 0x66,
- 0xe0, 0x0, 0x0, 0xe0, 0x0, 0xd1, 0x0, 0xd,
- 0x0, 0x0, 0x3, 0x0, 0x2, 0x0, 0x0, 0x0,
-
- /* U+770B "看" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x3, 0x7b, 0xc0, 0x0,
- 0x0, 0x55, 0x67, 0x7e, 0x97, 0x53, 0x10, 0x0,
- 0x0, 0x0, 0x0, 0x2c, 0x0, 0x0, 0x30, 0x0,
- 0x0, 0x37, 0x66, 0xaa, 0x66, 0x68, 0x90, 0x0,
- 0x0, 0x0, 0x0, 0xd1, 0x0, 0x0, 0x1, 0x30,
- 0x7, 0x66, 0x69, 0xb6, 0x66, 0x66, 0x69, 0x90,
- 0x0, 0x0, 0xc, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x8d, 0x66, 0x66, 0x6c, 0x40, 0x0,
- 0x0, 0x4, 0x8d, 0x0, 0x0, 0xb, 0x20, 0x0,
- 0x0, 0x38, 0xe, 0x66, 0x66, 0x6d, 0x20, 0x0,
- 0x4, 0x50, 0xd, 0x0, 0x0, 0xb, 0x20, 0x0,
- 0x1, 0x0, 0xe, 0x66, 0x66, 0x6d, 0x20, 0x0,
- 0x0, 0x0, 0xd, 0x0, 0x0, 0xb, 0x20, 0x0,
- 0x0, 0x0, 0xe, 0x66, 0x66, 0x6d, 0x20, 0x0,
- 0x0, 0x0, 0x9, 0x0, 0x0, 0x7, 0x10, 0x0,
-
- /* U+771F "真" */
- 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x8, 0x90, 0x0, 0x0, 0x0,
- 0x0, 0x56, 0x66, 0x6b, 0x96, 0x66, 0x6e, 0x30,
- 0x0, 0x20, 0x0, 0xb, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x30, 0xc, 0x10, 0x7, 0x0, 0x0,
- 0x0, 0x0, 0xd6, 0x66, 0x66, 0x6e, 0x0, 0x0,
- 0x0, 0x0, 0xd6, 0x66, 0x66, 0x6c, 0x0, 0x0,
- 0x0, 0x0, 0xc1, 0x0, 0x0, 0x1c, 0x0, 0x0,
- 0x0, 0x0, 0xc6, 0x66, 0x66, 0x6c, 0x0, 0x0,
- 0x0, 0x0, 0xc1, 0x0, 0x0, 0x1c, 0x0, 0x0,
- 0x0, 0x0, 0xc6, 0x66, 0x66, 0x6c, 0x0, 0x0,
- 0x5, 0x66, 0xd6, 0x66, 0x66, 0x6d, 0x68, 0xd1,
- 0x1, 0x0, 0x6, 0x90, 0x3, 0x50, 0x0, 0x0,
- 0x0, 0x0, 0x8a, 0x10, 0x0, 0x3c, 0x60, 0x0,
- 0x0, 0x28, 0x40, 0x0, 0x0, 0x1, 0xc7, 0x0,
- 0x0, 0x30, 0x0, 0x0, 0x0, 0x0, 0x14, 0x0,
-
- /* U+7720 "眠" */
- 0x0, 0x0, 0x5, 0x22, 0x22, 0x22, 0x70, 0xa,
- 0x66, 0xc2, 0xb5, 0x44, 0x44, 0x4e, 0x0, 0xd0,
- 0xd, 0xa, 0x20, 0x0, 0x0, 0xd0, 0xd, 0x0,
- 0xd0, 0xa2, 0x0, 0x0, 0xd, 0x0, 0xd0, 0xd,
- 0xa, 0x76, 0x7a, 0x66, 0xd0, 0xd, 0x66, 0xe0,
- 0xa2, 0x3, 0xa0, 0x0, 0x0, 0xd0, 0xd, 0xa,
- 0x20, 0x2a, 0x0, 0x21, 0xd, 0x0, 0xd0, 0xa7,
- 0x56, 0xd5, 0x58, 0x50, 0xd6, 0x6e, 0xa, 0x20,
- 0xd, 0x0, 0x0, 0xd, 0x0, 0xd0, 0xa2, 0x0,
- 0xa3, 0x0, 0x0, 0xd0, 0xd, 0xa, 0x20, 0x5,
- 0xa0, 0x4, 0xd, 0x66, 0xe0, 0xa2, 0x45, 0xd,
- 0x50, 0x50, 0xd0, 0x8, 0xb, 0xc6, 0x0, 0x3e,
- 0x77, 0x1, 0x0, 0x0, 0x95, 0x0, 0x0, 0x3d,
- 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
- 0x0,
-
- /* U+773E "眾" */
- 0x1, 0x86, 0x66, 0x66, 0x66, 0x69, 0x70, 0x1,
- 0xc0, 0xc, 0x0, 0x30, 0x8, 0x60, 0x0, 0xc0,
- 0xc, 0x0, 0x30, 0x8, 0x40, 0x0, 0xc0, 0xc,
- 0x0, 0x30, 0x8, 0x40, 0x1, 0xd6, 0x66, 0x66,
- 0x66, 0x69, 0x30, 0x0, 0x10, 0x0, 0x0, 0x25,
- 0x9c, 0x10, 0x4, 0x56, 0x78, 0x9c, 0x87, 0x54,
- 0x10, 0x0, 0x3, 0x10, 0x29, 0x0, 0x50, 0x0,
- 0x0, 0xa, 0x70, 0x29, 0x3, 0xe1, 0x0, 0x0,
- 0x1e, 0x0, 0x29, 0x6, 0xc0, 0x0, 0x0, 0x88,
- 0xb3, 0x29, 0xb, 0x85, 0x0, 0x3, 0xa0, 0x1e,
- 0x49, 0x38, 0xc, 0x40, 0x37, 0x0, 0x4, 0x4a,
- 0x70, 0x2, 0xe5, 0x0, 0x0, 0x0, 0x29, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x13, 0x0, 0x0,
- 0x0,
-
- /* U+7740 "着" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x83, 0x0, 0xc, 0x10, 0x0, 0x0,
- 0x0, 0x2, 0xe0, 0x6, 0x40, 0x3, 0x0, 0x28,
- 0x66, 0x69, 0x96, 0x86, 0x68, 0xb1, 0x0, 0x0,
- 0x0, 0x1c, 0x0, 0x4, 0x0, 0x0, 0x0, 0x76,
- 0x6a, 0xa6, 0x66, 0x93, 0x0, 0x0, 0x0, 0x0,
- 0xc0, 0x0, 0x0, 0x6, 0x0, 0x76, 0x66, 0xb9,
- 0x66, 0x66, 0x66, 0x84, 0x0, 0x0, 0x3e, 0x66,
- 0x66, 0x69, 0x40, 0x0, 0x0, 0x29, 0xd0, 0x0,
- 0x0, 0xa3, 0x0, 0x0, 0x38, 0xd, 0x66, 0x66,
- 0x6c, 0x20, 0x0, 0x44, 0x0, 0xd0, 0x0, 0x0,
- 0xa2, 0x0, 0x10, 0x0, 0xd, 0x66, 0x66, 0x6c,
- 0x20, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0, 0xa2,
- 0x0, 0x0, 0x0, 0xd, 0x66, 0x66, 0x6c, 0x30,
- 0x0, 0x0, 0x0, 0x60, 0x0, 0x0, 0x40, 0x0,
-
- /* U+77E5 "知" */
- 0x0, 0x47, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x8, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc1, 0x0, 0x20, 0x10, 0x0, 0x2, 0x0, 0x1c,
- 0x68, 0x7b, 0x1a, 0x76, 0x67, 0xd0, 0x7, 0x22,
- 0xb0, 0x0, 0xa2, 0x0, 0x2a, 0x0, 0x70, 0x2b,
- 0x0, 0xa, 0x20, 0x2, 0xa0, 0x20, 0x2, 0xb0,
- 0x31, 0xa2, 0x0, 0x2a, 0x5, 0x76, 0x7c, 0x69,
- 0x6a, 0x20, 0x2, 0xa0, 0x0, 0x5, 0x80, 0x0,
- 0xa2, 0x0, 0x2a, 0x0, 0x0, 0x89, 0x50, 0xa,
- 0x20, 0x2, 0xa0, 0x0, 0xd, 0x7, 0x90, 0xa2,
- 0x0, 0x2b, 0x0, 0x6, 0x70, 0xc, 0x7a, 0x76,
- 0x67, 0xb0, 0x2, 0xa0, 0x0, 0x37, 0xa2, 0x0,
- 0x2b, 0x2, 0x80, 0x0, 0x0, 0x5, 0x0, 0x1,
- 0x40, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+77ED "短" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xb, 0x40, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0,
- 0xe0, 0x0, 0x76, 0x66, 0x66, 0x89, 0x0, 0x58,
- 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0xb, 0x7c,
- 0x67, 0x2, 0x0, 0x0, 0x30, 0x3, 0x70, 0xd0,
- 0x0, 0xe6, 0x66, 0x6f, 0x10, 0x40, 0xd, 0x0,
- 0xd, 0x0, 0x0, 0xd0, 0x1, 0x11, 0xd1, 0x81,
- 0xd0, 0x0, 0xd, 0x0, 0x45, 0x5d, 0x44, 0x2e,
- 0x66, 0x66, 0xd0, 0x0, 0x3, 0xb0, 0x0, 0xb0,
- 0x0, 0x7, 0x0, 0x0, 0x59, 0x70, 0x3, 0x0,
- 0xb, 0x60, 0x0, 0x9, 0x36, 0x90, 0x92, 0x0,
- 0xe1, 0x0, 0x0, 0xb0, 0xc, 0x6, 0x90, 0x29,
- 0x0, 0x0, 0x64, 0x0, 0x0, 0x24, 0x6, 0x10,
- 0x40, 0x27, 0x0, 0x6, 0x76, 0x66, 0x86, 0x6a,
- 0x42, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+77F3 "石" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
- 0x4, 0x66, 0x66, 0x66, 0x66, 0x66, 0x6d, 0xb0,
- 0x1, 0x0, 0x0, 0x6a, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd2, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x5, 0xa0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x9c, 0x66, 0x66, 0x66, 0xc2, 0x0,
- 0x0, 0x5, 0x9e, 0x0, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0x2a, 0xe, 0x0, 0x0, 0x0, 0xe0, 0x0,
- 0x2, 0x80, 0xe, 0x0, 0x0, 0x0, 0xe0, 0x0,
- 0x15, 0x0, 0xe, 0x0, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0x0, 0xe, 0x66, 0x66, 0x66, 0xe0, 0x0,
- 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0xc0, 0x0,
- 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+7802 "砂" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xd1, 0x0, 0x0,
- 0x16, 0x66, 0x69, 0xa0, 0x0, 0xd0, 0x0, 0x0,
- 0x2, 0x2d, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0x58, 0x0, 0x5, 0xb0, 0xd0, 0x61, 0x0,
- 0x0, 0x93, 0x0, 0x8, 0x60, 0xd0, 0x1d, 0x40,
- 0x0, 0xd0, 0x4, 0xb, 0x0, 0xd0, 0x5, 0xd0,
- 0x4, 0xf6, 0x6e, 0x38, 0x0, 0xe0, 0x0, 0x50,
- 0x9, 0xd0, 0xd, 0x61, 0x0, 0xe0, 0x24, 0x0,
- 0x34, 0xc0, 0xd, 0x40, 0x0, 0xe0, 0xbb, 0x0,
- 0x10, 0xc0, 0xd, 0x0, 0x0, 0x37, 0xc0, 0x0,
- 0x0, 0xc0, 0xd, 0x0, 0x0, 0x5b, 0x0, 0x0,
- 0x0, 0xc6, 0x6d, 0x0, 0x6, 0xa0, 0x0, 0x0,
- 0x0, 0xd0, 0x7, 0x2, 0xa6, 0x0, 0x0, 0x0,
- 0x0, 0x30, 0x3, 0x66, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x11, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+7814 "研" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x50,
- 0x4, 0x66, 0x6a, 0xa6, 0x7e, 0x66, 0xe6, 0x50,
- 0x1, 0x1b, 0x20, 0x0, 0xd, 0x0, 0xd0, 0x0,
- 0x0, 0xc, 0x0, 0x0, 0xd, 0x0, 0xd0, 0x0,
- 0x0, 0x29, 0x0, 0x0, 0xd, 0x0, 0xd0, 0x0,
- 0x0, 0x7b, 0x6b, 0x50, 0xd, 0x0, 0xd0, 0x10,
- 0x0, 0xda, 0xb, 0x37, 0x6e, 0x66, 0xe6, 0xd2,
- 0x4, 0x7a, 0xb, 0x20, 0x1c, 0x0, 0xd0, 0x0,
- 0x6, 0x2a, 0xb, 0x20, 0x2a, 0x0, 0xd0, 0x0,
- 0x0, 0x2a, 0xb, 0x20, 0x57, 0x0, 0xd0, 0x0,
- 0x0, 0x2c, 0x6c, 0x20, 0xb2, 0x0, 0xd0, 0x0,
- 0x0, 0x3a, 0x9, 0x13, 0x90, 0x0, 0xd0, 0x0,
- 0x0, 0x24, 0x0, 0x1a, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0x0, 0x3, 0x70, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x10, 0x0,
-
- /* U+7834 "破" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xb2, 0x0, 0x0,
- 0x1, 0x11, 0x17, 0x20, 0x0, 0xd0, 0x0, 0x0,
- 0x7, 0x5e, 0x75, 0x29, 0x66, 0xe6, 0x6b, 0x50,
- 0x0, 0xe, 0x0, 0xc, 0x0, 0xd0, 0xb, 0x20,
- 0x0, 0x58, 0x0, 0xc, 0x0, 0xd0, 0x11, 0x0,
- 0x0, 0xa2, 0x5, 0xc, 0x0, 0xd0, 0x0, 0x0,
- 0x1, 0xf6, 0x6e, 0xc, 0x66, 0xe6, 0x97, 0x0,
- 0x8, 0xe0, 0xd, 0xd, 0x5, 0x0, 0xa3, 0x0,
- 0x26, 0xc0, 0xd, 0xd, 0x7, 0x0, 0xc0, 0x0,
- 0x20, 0xc0, 0xd, 0x1c, 0x4, 0x45, 0x70, 0x0,
- 0x0, 0xc0, 0xd, 0x48, 0x0, 0xbc, 0x10, 0x0,
- 0x0, 0xc6, 0x6d, 0x82, 0x0, 0xac, 0x10, 0x0,
- 0x0, 0xd0, 0x7, 0x70, 0x9, 0x54, 0xd6, 0x10,
- 0x0, 0x70, 0x6, 0x16, 0x71, 0x0, 0x2c, 0xa0,
- 0x0, 0x0, 0x10, 0x10, 0x0, 0x0, 0x0, 0x0,
-
- /* U+78BA "確" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2, 0x0, 0x0, 0xa5, 0x0, 0x0,
- 0x18, 0x79, 0x6a, 0x32, 0x0, 0xd1, 0x0, 0x40,
- 0x0, 0x49, 0x0, 0x9, 0x68, 0xb6, 0x68, 0xc1,
- 0x0, 0x65, 0x0, 0x2a, 0xa, 0x44, 0x4, 0x0,
- 0x0, 0xa2, 0x2, 0x0, 0x2a, 0xb, 0x30, 0x0,
- 0x0, 0xe5, 0x5e, 0x10, 0xc7, 0x6a, 0x78, 0x90,
- 0x3, 0xf0, 0xc, 0x7, 0xc0, 0xd, 0x0, 0x0,
- 0x8, 0xd0, 0xc, 0x56, 0xc0, 0xd, 0x4, 0x0,
- 0x15, 0xc0, 0xc, 0x20, 0xd6, 0x6e, 0x66, 0x20,
- 0x10, 0xc0, 0xc, 0x0, 0xc0, 0xd, 0x1, 0x0,
- 0x0, 0xc6, 0x6c, 0x0, 0xd6, 0x6e, 0x6a, 0x20,
- 0x0, 0xc0, 0x9, 0x0, 0xc0, 0xd, 0x0, 0x0,
- 0x0, 0xa0, 0x0, 0x0, 0xc0, 0xd, 0x1, 0x50,
- 0x0, 0x0, 0x0, 0x1, 0xd6, 0x66, 0x66, 0x50,
- 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0,
-
- /* U+793A "示" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0,
- 0x0, 0x6, 0x66, 0x66, 0x66, 0x66, 0xa6, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40,
- 0x6, 0x76, 0x66, 0x66, 0x86, 0x66, 0x68, 0xb2,
- 0x0, 0x0, 0x0, 0x3, 0xb0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x59, 0x3, 0xb0, 0x30, 0x0, 0x0,
- 0x0, 0x0, 0xc7, 0x3, 0xb0, 0x19, 0x10, 0x0,
- 0x0, 0x6, 0xb0, 0x3, 0xb0, 0x2, 0xd3, 0x0,
- 0x0, 0x2c, 0x0, 0x3, 0xb0, 0x0, 0x4f, 0x20,
- 0x0, 0xa1, 0x0, 0x3, 0xb0, 0x0, 0xb, 0x90,
- 0x7, 0x10, 0x4, 0x37, 0xb0, 0x0, 0x2, 0x30,
- 0x0, 0x0, 0x1, 0xaf, 0x70, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0,
-
- /* U+793C "礼" */
- 0x0, 0x3, 0x30, 0x0, 0x2a, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x30, 0x2, 0xb0, 0x0, 0x0, 0x0,
- 0x0, 0x75, 0x0, 0x2b, 0x0, 0x0, 0x0, 0x36,
- 0x66, 0x6b, 0x12, 0xb0, 0x0, 0x0, 0x0, 0x10,
- 0x8, 0xa0, 0x2b, 0x0, 0x0, 0x0, 0x0, 0x2,
- 0xc0, 0x2, 0xb0, 0x0, 0x0, 0x0, 0x0, 0xd3,
- 0x0, 0x2b, 0x0, 0x0, 0x0, 0x0, 0xae, 0x97,
- 0x2, 0xb0, 0x0, 0x0, 0x0, 0x92, 0xc1, 0xb5,
- 0x2b, 0x0, 0x0, 0x1, 0x61, 0xc, 0x12, 0x22,
- 0xb0, 0x0, 0x0, 0x0, 0x0, 0xc1, 0x0, 0x2b,
- 0x0, 0x4, 0x0, 0x0, 0xd, 0x10, 0x2, 0xb0,
- 0x0, 0x51, 0x0, 0x0, 0xd1, 0x0, 0x1c, 0x0,
- 0x8, 0x60, 0x0, 0xd, 0x10, 0x0, 0xad, 0xdd,
- 0xd6, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+793E "社" */
- 0x0, 0x6, 0x20, 0x0, 0x0, 0x71, 0x0, 0x0,
- 0x0, 0x1, 0xe1, 0x0, 0x0, 0xe1, 0x0, 0x0,
- 0x0, 0x0, 0x71, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x4, 0x66, 0x6a, 0x90, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0xe, 0x30, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0x78, 0x0, 0x0, 0xe0, 0x8, 0x20,
- 0x0, 0x2, 0xe1, 0x7, 0x66, 0xe6, 0x66, 0x40,
- 0x0, 0xc, 0xdb, 0x60, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x85, 0xc1, 0xd0, 0x0, 0xe0, 0x0, 0x0,
- 0x5, 0x31, 0xc0, 0x10, 0x0, 0xe0, 0x0, 0x0,
- 0x1, 0x1, 0xc0, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x1, 0xc0, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x1, 0xc0, 0x56, 0x66, 0xe6, 0x67, 0xe2,
- 0x0, 0x2, 0xd0, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+7956 "祖" */
- 0x0, 0x26, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0,
- 0x0, 0xa, 0x80, 0xc, 0x66, 0x66, 0xe3, 0x0,
- 0x0, 0x3, 0x50, 0xd, 0x10, 0x0, 0xe0, 0x0,
- 0x7, 0x66, 0x9a, 0xd, 0x10, 0x0, 0xe0, 0x0,
- 0x0, 0x0, 0xd2, 0xd, 0x10, 0x0, 0xe0, 0x0,
- 0x0, 0x7, 0x80, 0xd, 0x66, 0x66, 0xe0, 0x0,
- 0x0, 0x1e, 0x50, 0xc, 0x10, 0x0, 0xe0, 0x0,
- 0x0, 0x9e, 0x6b, 0xc, 0x10, 0x0, 0xe0, 0x0,
- 0x5, 0x4d, 0xc, 0x1c, 0x10, 0x0, 0xe0, 0x0,
- 0x23, 0xd, 0x0, 0xc, 0x66, 0x66, 0xe0, 0x0,
- 0x0, 0xd, 0x0, 0xc, 0x10, 0x0, 0xe0, 0x0,
- 0x0, 0xd, 0x0, 0xc, 0x10, 0x0, 0xe0, 0x0,
- 0x0, 0xd, 0x0, 0xc, 0x10, 0x0, 0xe2, 0x60,
- 0x0, 0xd, 0x7, 0x66, 0x66, 0x66, 0x66, 0x60,
- 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+795D "祝" */
- 0x0, 0x26, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb, 0x70, 0x9, 0x66, 0x66, 0x96, 0x0,
- 0x0, 0x4, 0x50, 0xd, 0x0, 0x0, 0x74, 0x0,
- 0x7, 0x66, 0x7d, 0x1d, 0x0, 0x0, 0x74, 0x0,
- 0x0, 0x0, 0x96, 0xd, 0x0, 0x0, 0x74, 0x0,
- 0x0, 0x2, 0xb0, 0xd, 0x0, 0x0, 0x74, 0x0,
- 0x0, 0xc, 0x50, 0xe, 0x67, 0x68, 0xa5, 0x0,
- 0x0, 0x7e, 0x89, 0x5, 0x48, 0x2b, 0x31, 0x0,
- 0x4, 0x6b, 0x1d, 0x10, 0x48, 0x2b, 0x0, 0x0,
- 0x25, 0xb, 0x11, 0x0, 0x75, 0x2b, 0x0, 0x0,
- 0x0, 0xb, 0x10, 0x0, 0xb1, 0x2b, 0x0, 0x30,
- 0x0, 0xb, 0x10, 0x3, 0x90, 0x2b, 0x0, 0x60,
- 0x0, 0xc, 0x10, 0x1a, 0x0, 0x2b, 0x1, 0x90,
- 0x0, 0xc, 0x22, 0x80, 0x0, 0xd, 0xbc, 0xb0,
- 0x0, 0x5, 0x23, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+795E "神" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x70, 0x0, 0x0, 0xd, 0x10, 0x0, 0x0,
- 0x9, 0x70, 0x0, 0x0, 0xd0, 0x0, 0x0, 0x0,
- 0x35, 0x0, 0x30, 0xd, 0x0, 0x40, 0x17, 0x66,
- 0x7c, 0xd, 0x66, 0xe6, 0x6e, 0x20, 0x0, 0x9,
- 0x50, 0xd0, 0xd, 0x0, 0xd0, 0x0, 0x2, 0xa0,
- 0xd, 0x66, 0xe6, 0x6e, 0x0, 0x0, 0xc8, 0x10,
- 0xd0, 0xd, 0x0, 0xd0, 0x0, 0x8e, 0x2e, 0x1d,
- 0x0, 0xd0, 0xd, 0x0, 0x63, 0xc0, 0x61, 0xd6,
- 0x6e, 0x66, 0xe0, 0x32, 0xc, 0x0, 0xc, 0x0,
- 0xd0, 0x9, 0x0, 0x0, 0xc0, 0x0, 0x0, 0xd,
- 0x0, 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0xd0,
- 0x0, 0x0, 0x0, 0xc0, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0x0, 0xd, 0x10, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0x0, 0x30, 0x0, 0x0, 0x4, 0x0, 0x0,
-
- /* U+796D "祭" */
- 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc5, 0x0, 0x5, 0x0, 0x0, 0x0,
- 0x0, 0x2, 0xe6, 0x69, 0x58, 0x66, 0x7e, 0x20,
- 0x0, 0xa, 0x70, 0xd, 0x26, 0x0, 0x96, 0x0,
- 0x0, 0x39, 0x5b, 0x4a, 0x2, 0x64, 0x50, 0x0,
- 0x0, 0xa7, 0x15, 0xc2, 0x0, 0xa6, 0x0, 0x0,
- 0x6, 0x4, 0xa7, 0x70, 0x0, 0x1c, 0x10, 0x0,
- 0x0, 0x0, 0x5b, 0x66, 0x66, 0xc5, 0xd6, 0x0,
- 0x0, 0x5, 0x70, 0x20, 0x0, 0x0, 0x3d, 0xc1,
- 0x1, 0x74, 0x0, 0x0, 0x0, 0x0, 0x71, 0x0,
- 0x14, 0x7, 0x66, 0x66, 0xd6, 0x66, 0x73, 0x0,
- 0x0, 0x0, 0x1e, 0x50, 0xd0, 0x64, 0x0, 0x0,
- 0x0, 0x0, 0xc7, 0x0, 0xd0, 0x6, 0xc3, 0x0,
- 0x0, 0x1a, 0x30, 0x0, 0xd0, 0x0, 0x4e, 0x0,
- 0x1, 0x60, 0x2, 0x7c, 0xb0, 0x0, 0x4, 0x0,
- 0x0, 0x0, 0x0, 0x5, 0x20, 0x0, 0x0, 0x0,
-
- /* U+7981 "禁" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb, 0x10, 0x0, 0xc, 0x10, 0x0, 0x0,
- 0x0, 0xc0, 0x20, 0x0, 0xd0, 0x2, 0x0, 0x66,
- 0x7e, 0x6a, 0x27, 0x8f, 0x66, 0xa3, 0x0, 0xc,
- 0xf6, 0x10, 0xb, 0xf7, 0x0, 0x0, 0x5, 0x8c,
- 0x3d, 0x5, 0x8d, 0x39, 0x0, 0x2, 0xa0, 0xc0,
- 0x53, 0x80, 0xd0, 0x6d, 0x61, 0x70, 0xc, 0x11,
- 0x50, 0xc, 0x0, 0x40, 0x0, 0x5, 0x66, 0x66,
- 0x66, 0x6c, 0x50, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x30, 0x27, 0x66, 0x66, 0x69, 0x66,
- 0x66, 0x6a, 0x60, 0x0, 0x6, 0x40, 0xc2, 0x4,
- 0x0, 0x0, 0x0, 0x4, 0xd3, 0xc, 0x20, 0x2b,
- 0x40, 0x0, 0x4, 0x90, 0x0, 0xc2, 0x0, 0x1d,
- 0x60, 0x3, 0x40, 0x6, 0xcf, 0x0, 0x0, 0x27,
- 0x0, 0x0, 0x0, 0x4, 0x30, 0x0, 0x0, 0x0,
-
- /* U+79C0 "秀" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x2, 0x46, 0x9d, 0xc0, 0x0,
- 0x0, 0x4, 0x56, 0x67, 0xc2, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1, 0xb0, 0x0, 0x2, 0x30,
- 0x3, 0x76, 0x66, 0x8b, 0xd8, 0x66, 0x68, 0x80,
- 0x0, 0x0, 0x2, 0xd4, 0xb2, 0x50, 0x0, 0x0,
- 0x0, 0x0, 0x2c, 0x21, 0xb0, 0x59, 0x0, 0x0,
- 0x0, 0x5, 0xa1, 0x2, 0x80, 0x4, 0xd8, 0x30,
- 0x1, 0x75, 0x66, 0x86, 0x66, 0xd2, 0x19, 0xa2,
- 0x3, 0x0, 0x0, 0xe0, 0x4, 0xa0, 0x0, 0x0,
- 0x0, 0x0, 0x3, 0xb0, 0xd, 0x86, 0x97, 0x0,
- 0x0, 0x0, 0x9, 0x50, 0x3, 0x0, 0xa3, 0x0,
- 0x0, 0x0, 0x2c, 0x0, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0x1, 0xb1, 0x0, 0x2, 0x2, 0xc0, 0x0,
- 0x0, 0x48, 0x10, 0x0, 0x4, 0xcf, 0x50, 0x0,
- 0x2, 0x20, 0x0, 0x0, 0x0, 0x22, 0x0, 0x0,
-
- /* U+79C1 "私" */
- 0x0, 0x0, 0x0, 0x28, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x14, 0x7b, 0xb8, 0x20, 0x1e, 0x20, 0x0,
- 0x1, 0x32, 0x1d, 0x0, 0x0, 0x4d, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0x0, 0x0, 0x78, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0x4, 0x50, 0xa3, 0x0, 0x0,
- 0x4, 0x76, 0x7e, 0x66, 0x50, 0xd0, 0x0, 0x0,
- 0x0, 0x0, 0x7e, 0x10, 0x2, 0x90, 0x0, 0x0,
- 0x0, 0x1, 0xdd, 0xa8, 0x7, 0x40, 0x0, 0x0,
- 0x0, 0x9, 0x4d, 0xd, 0x3a, 0x0, 0x60, 0x0,
- 0x0, 0x56, 0xd, 0x2, 0x28, 0x0, 0x38, 0x0,
- 0x3, 0x50, 0xd, 0x0, 0x62, 0x0, 0xc, 0x40,
- 0x3, 0x0, 0xd, 0x0, 0xa0, 0x1, 0x29, 0xd0,
- 0x0, 0x0, 0x1d, 0x6, 0xfd, 0x96, 0x33, 0xf1,
- 0x0, 0x0, 0x1e, 0x0, 0x40, 0x0, 0x0, 0x70,
- 0x0, 0x0, 0x14, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+79CB "秋" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x3, 0x60, 0x2, 0xd1, 0x0, 0x0,
- 0x0, 0x36, 0xca, 0x70, 0x2, 0xd0, 0x0, 0x0,
- 0x1, 0x20, 0xe0, 0x0, 0x2, 0xc0, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x32, 0xc0, 0xd, 0x30,
- 0x5, 0x66, 0xe6, 0xd3, 0x83, 0xd0, 0x98, 0x0,
- 0x1, 0x13, 0xf0, 0x3, 0xb4, 0xe5, 0x70, 0x0,
- 0x0, 0x8, 0xf0, 0xa, 0x65, 0xd4, 0x0, 0x0,
- 0x0, 0xc, 0xe9, 0x50, 0x7, 0x95, 0x0, 0x0,
- 0x0, 0x64, 0xe1, 0xe0, 0xa, 0x49, 0x0, 0x0,
- 0x0, 0x90, 0xe0, 0x30, 0xd, 0x19, 0x10, 0x0,
- 0x6, 0x0, 0xe0, 0x0, 0x4a, 0x4, 0x90, 0x0,
- 0x10, 0x0, 0xe0, 0x0, 0xc1, 0x0, 0xc4, 0x0,
- 0x0, 0x0, 0xe0, 0x9, 0x30, 0x0, 0x3f, 0x50,
- 0x0, 0x0, 0xe2, 0x82, 0x0, 0x0, 0x7, 0x91,
- 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+79CD "种" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2, 0x60, 0x0, 0x3b, 0x0, 0x0,
- 0x1, 0x47, 0xba, 0x81, 0x0, 0x2a, 0x0, 0x0,
- 0x1, 0x0, 0xd0, 0x0, 0x0, 0x2a, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x41, 0x3a, 0x11, 0x70,
- 0x6, 0x66, 0xe6, 0xd3, 0xe5, 0x6c, 0x56, 0xc0,
- 0x0, 0x2, 0xd0, 0x0, 0xd0, 0x2a, 0x2, 0xa0,
- 0x0, 0x7, 0xe6, 0x0, 0xd0, 0x2a, 0x2, 0xa0,
- 0x0, 0xc, 0xd5, 0xd0, 0xd0, 0x2a, 0x2, 0xa0,
- 0x0, 0x65, 0xd0, 0x80, 0xe6, 0x7c, 0x67, 0xb0,
- 0x1, 0x90, 0xd0, 0x0, 0x80, 0x2a, 0x1, 0x30,
- 0x7, 0x0, 0xd0, 0x0, 0x0, 0x2a, 0x0, 0x0,
- 0x10, 0x0, 0xd0, 0x0, 0x0, 0x2a, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0x2a, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0x3b, 0x0, 0x0,
- 0x0, 0x0, 0x50, 0x0, 0x0, 0x13, 0x0, 0x0,
-
- /* U+79D1 "科" */
- 0x0, 0x0, 0x1, 0x70, 0x0, 0x0, 0xc2, 0x0,
- 0x0, 0x36, 0xbb, 0x81, 0x0, 0x0, 0xd0, 0x0,
- 0x2, 0x20, 0xd0, 0x0, 0x56, 0x0, 0xd0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0xb, 0x50, 0xd0, 0x0,
- 0x0, 0x0, 0xd0, 0x53, 0x2, 0x10, 0xd0, 0x0,
- 0x7, 0x66, 0xf6, 0x64, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0x4, 0xf1, 0x0, 0x57, 0x0, 0xd0, 0x0,
- 0x0, 0xb, 0xe8, 0x80, 0xd, 0x10, 0xd0, 0x0,
- 0x0, 0x48, 0xd0, 0xd1, 0x2, 0x0, 0xd4, 0xd1,
- 0x0, 0xa0, 0xd0, 0x10, 0x35, 0x66, 0xd3, 0x0,
- 0x7, 0x10, 0xd0, 0x26, 0x30, 0x0, 0xd0, 0x0,
- 0x11, 0x0, 0xd0, 0x0, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0x0, 0x60, 0x0, 0x0, 0x0, 0x80, 0x0,
-
- /* U+79D8 "秘" */
- 0x0, 0x0, 0x3, 0x40, 0x2, 0x0, 0x0, 0x0,
- 0x0, 0x37, 0xbb, 0x80, 0x5, 0x90, 0x19, 0x0,
- 0x3, 0x20, 0xc0, 0x0, 0x0, 0xd2, 0x4d, 0x0,
- 0x0, 0x0, 0xc0, 0x0, 0x18, 0x40, 0x78, 0x0,
- 0x0, 0x0, 0xc0, 0x70, 0x1d, 0x0, 0xb4, 0x0,
- 0x6, 0x68, 0xd6, 0x62, 0xc, 0x0, 0xf0, 0x0,
- 0x0, 0x9, 0xd5, 0x2, 0xc, 0x4, 0xb6, 0x0,
- 0x0, 0xc, 0xc8, 0x88, 0xc, 0xb, 0x56, 0x80,
- 0x0, 0x74, 0xc0, 0x5d, 0x1c, 0x2d, 0x1, 0xf1,
- 0x1, 0x80, 0xc0, 0x5c, 0xc, 0xc4, 0x0, 0x90,
- 0x6, 0x0, 0xc0, 0x0, 0xf, 0xa0, 0x4, 0x0,
- 0x0, 0x0, 0xc0, 0x0, 0x6d, 0x0, 0x7, 0x0,
- 0x0, 0x0, 0xc0, 0x7, 0x7d, 0x0, 0xc, 0x20,
- 0x0, 0x1, 0xd2, 0x62, 0xb, 0xcc, 0xcc, 0x20,
- 0x0, 0x1, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+79FB "移" */
- 0x0, 0x0, 0x3, 0x30, 0x0, 0x90, 0x0, 0x0,
- 0x0, 0x37, 0xbb, 0x70, 0x7, 0x80, 0x1, 0x0,
- 0x2, 0x31, 0xd0, 0x0, 0x2b, 0x66, 0x6e, 0x50,
- 0x0, 0x0, 0xd0, 0x0, 0x88, 0x30, 0x79, 0x0,
- 0x0, 0x0, 0xd0, 0x74, 0x2, 0xa6, 0xa0, 0x0,
- 0x7, 0x67, 0xe6, 0x62, 0x0, 0x79, 0x0, 0x0,
- 0x0, 0x7, 0xe0, 0x0, 0x18, 0x59, 0x10, 0x0,
- 0x0, 0xc, 0xea, 0x54, 0x60, 0x8b, 0x10, 0x10,
- 0x0, 0x47, 0xd1, 0xc0, 0x6, 0xc6, 0x67, 0xe1,
- 0x0, 0xa0, 0xd0, 0x10, 0x6a, 0x0, 0xb, 0x50,
- 0x5, 0x20, 0xd0, 0x6, 0x35, 0x80, 0x88, 0x0,
- 0x3, 0x0, 0xe0, 0x10, 0x0, 0x88, 0x90, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x3, 0xa6, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x5, 0x87, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x32, 0x31, 0x0, 0x0, 0x0, 0x0,
-
- /* U+7A0B "程" */
- 0x0, 0x0, 0x17, 0x70, 0x30, 0x0, 0x3, 0x0,
- 0x3, 0x58, 0xd6, 0x40, 0xe6, 0x66, 0x6e, 0x30,
- 0x0, 0x1, 0xb0, 0x0, 0xd0, 0x0, 0xd, 0x0,
- 0x0, 0x1, 0xb0, 0x0, 0xd0, 0x0, 0xd, 0x0,
- 0x5, 0x66, 0xd6, 0xc1, 0xe6, 0x66, 0x6e, 0x0,
- 0x2, 0x6, 0xb0, 0x0, 0xc0, 0x0, 0x8, 0x0,
- 0x0, 0xa, 0xd5, 0x0, 0x0, 0x0, 0x4, 0x30,
- 0x0, 0xd, 0xb7, 0x94, 0x76, 0x7c, 0x66, 0x40,
- 0x0, 0x57, 0xb0, 0x80, 0x0, 0x3a, 0x0, 0x0,
- 0x0, 0xa1, 0xb0, 0x0, 0x0, 0x3a, 0x5, 0x0,
- 0x4, 0x31, 0xb0, 0x1, 0x86, 0x7c, 0x66, 0x30,
- 0x5, 0x1, 0xb0, 0x0, 0x0, 0x3a, 0x0, 0x0,
- 0x0, 0x1, 0xb0, 0x0, 0x0, 0x3a, 0x0, 0x30,
- 0x0, 0x2, 0xc0, 0x47, 0x66, 0x68, 0x67, 0x91,
- 0x0, 0x1, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+7A2E "種" */
- 0x0, 0x0, 0x2, 0x0, 0x0, 0x25, 0xa4, 0x0,
- 0x1, 0x48, 0xba, 0x14, 0x56, 0xe5, 0x31, 0x0,
- 0x3, 0x1b, 0x10, 0x0, 0x0, 0xd0, 0x3, 0x40,
- 0x0, 0xb, 0x10, 0x57, 0x66, 0xe6, 0x66, 0x50,
- 0x4, 0x5c, 0x6c, 0x23, 0x0, 0xd0, 0x3, 0x0,
- 0x2, 0x2f, 0x21, 0xd, 0x66, 0xe6, 0x6e, 0x0,
- 0x0, 0x4f, 0x81, 0xc, 0x0, 0xd0, 0x1c, 0x0,
- 0x0, 0xae, 0x3b, 0xd, 0x66, 0xe6, 0x6c, 0x0,
- 0x1, 0x9b, 0x18, 0xc, 0x0, 0xd0, 0x1c, 0x0,
- 0x8, 0x1b, 0x10, 0xc, 0x66, 0xe6, 0x6a, 0x0,
- 0x23, 0xb, 0x10, 0x0, 0x0, 0xd0, 0x4, 0x0,
- 0x0, 0xb, 0x10, 0x28, 0x66, 0xe6, 0x69, 0x30,
- 0x0, 0xb, 0x10, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0xc, 0x21, 0x66, 0x66, 0xe6, 0x6a, 0xc0,
- 0x0, 0x4, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
-
- /* U+7A4D "積" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x45, 0x0, 0x0, 0xc1, 0x0, 0x0,
- 0x3, 0x6c, 0x96, 0x26, 0x66, 0xe6, 0x6b, 0x50,
- 0x0, 0xc, 0x0, 0x2, 0x0, 0xd0, 0x2, 0x0,
- 0x0, 0xc, 0x2, 0x3, 0x76, 0xe6, 0x67, 0x0,
- 0x18, 0x6e, 0x7a, 0x10, 0x0, 0xd0, 0x3, 0x60,
- 0x0, 0x2f, 0x30, 0x57, 0x66, 0x66, 0x67, 0x50,
- 0x0, 0x8f, 0x66, 0xb, 0x66, 0x66, 0x6e, 0x10,
- 0x0, 0xbc, 0xc, 0xc, 0x0, 0x0, 0xd, 0x0,
- 0x4, 0x5c, 0x0, 0xc, 0x66, 0x66, 0x6d, 0x0,
- 0x8, 0xc, 0x0, 0xc, 0x66, 0x66, 0x6d, 0x0,
- 0x31, 0xc, 0x0, 0xc, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0xc, 0x0, 0xc, 0x76, 0x66, 0x6d, 0x0,
- 0x0, 0xd, 0x0, 0x2, 0xc7, 0x1, 0x66, 0x0,
- 0x0, 0xc, 0x0, 0x58, 0x20, 0x0, 0x6, 0xb0,
- 0x0, 0x1, 0x3, 0x10, 0x0, 0x0, 0x0, 0x50,
-
- /* U+7A76 "究" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x20, 0x0, 0x4b, 0x0, 0x0, 0x30, 0x0, 0x39,
- 0x67, 0x66, 0x76, 0x66, 0x7e, 0x10, 0xc, 0x31,
- 0xd4, 0x0, 0x65, 0x7, 0x20, 0x0, 0x33, 0xb3,
- 0x63, 0x0, 0x5e, 0x70, 0x0, 0x5, 0x50, 0xb,
- 0x30, 0x0, 0x2c, 0x0, 0x0, 0x6, 0x77, 0xe7,
- 0x77, 0xc0, 0x0, 0x0, 0x0, 0x10, 0xd, 0x0,
- 0x2b, 0x0, 0x0, 0x0, 0x0, 0x3, 0xa0, 0x2,
- 0xb0, 0x0, 0x0, 0x0, 0x0, 0x76, 0x0, 0x3a,
- 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x3, 0xa0,
- 0x0, 0x20, 0x0, 0x8, 0x70, 0x0, 0x3a, 0x0,
- 0x15, 0x0, 0x5, 0xa0, 0x0, 0x3, 0xa0, 0x3,
- 0xb0, 0x5, 0x70, 0x0, 0x0, 0xc, 0xcc, 0xd8,
- 0x3, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+7A7A "空" */
- 0x0, 0x0, 0x0, 0x29, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x6a, 0x0, 0x0, 0x0, 0x0,
- 0x76, 0x66, 0x66, 0x96, 0x66, 0x6a, 0x20, 0x2b,
- 0x0, 0x41, 0x0, 0x0, 0x1, 0xc4, 0xa, 0x70,
- 0x2e, 0x60, 0x4, 0x95, 0x41, 0x0, 0x0, 0x3c,
- 0x30, 0x0, 0x0, 0x9e, 0x40, 0x0, 0x67, 0x0,
- 0x0, 0x0, 0x0, 0x7c, 0x0, 0x41, 0x56, 0x66,
- 0x66, 0x66, 0xd4, 0x10, 0x0, 0x1, 0x10, 0xb,
- 0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb3,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0x30,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb3, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0x30, 0x0,
- 0x2, 0x0, 0x56, 0x66, 0x66, 0xd8, 0x66, 0x67,
- 0xf4, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+7A93 "窓" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x6, 0x70, 0x0, 0x0, 0x0, 0x0,
- 0x10, 0x0, 0xe, 0x40, 0x0, 0x1, 0x0, 0x38,
- 0x66, 0x66, 0x86, 0x66, 0x69, 0xd0, 0xd, 0x20,
- 0x4c, 0x0, 0x47, 0x40, 0x81, 0x2, 0x51, 0x89,
- 0x26, 0x70, 0x18, 0xe2, 0x0, 0x3, 0x50, 0x3,
- 0xd5, 0x2, 0x4, 0x30, 0x0, 0x0, 0x4, 0xa1,
- 0x0, 0x66, 0x0, 0x0, 0x0, 0xb, 0xb7, 0x77,
- 0x66, 0xe4, 0x0, 0x0, 0x0, 0x88, 0x53, 0x10,
- 0x6, 0x80, 0x0, 0x0, 0x2, 0x50, 0x84, 0x0,
- 0x1, 0x0, 0x0, 0x5, 0x2d, 0x0, 0xe3, 0x2,
- 0x46, 0x0, 0x3, 0x72, 0xb0, 0x4, 0x0, 0x60,
- 0xa7, 0x4, 0xe2, 0x2c, 0x0, 0x0, 0x8, 0x43,
- 0x90, 0x1, 0x0, 0xdd, 0xdd, 0xdd, 0xe6, 0x0,
- 0x0,
-
- /* U+7ACB "立" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x48, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x80, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x4, 0x60, 0x0, 0x15, 0x0,
- 0x1, 0x86, 0x66, 0x66, 0x66, 0x66, 0x89, 0x20,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x42, 0x0, 0x0,
- 0x0, 0x0, 0x60, 0x0, 0x0, 0x9c, 0x0, 0x0,
- 0x0, 0x0, 0x37, 0x0, 0x0, 0xc4, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0x10, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0x0, 0x9, 0x80, 0x3, 0x90, 0x0, 0x0,
- 0x0, 0x0, 0x6, 0xc0, 0x8, 0x30, 0x0, 0x0,
- 0x0, 0x0, 0x4, 0xa0, 0x9, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x26, 0x0, 0x0, 0x10,
- 0x16, 0x66, 0x66, 0x66, 0x96, 0x66, 0x6b, 0xd1,
- 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+7AD9 "站" */
- 0x0, 0x2, 0x0, 0x0, 0x0, 0x82, 0x0, 0x0,
- 0x0, 0xa, 0x30, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0x6, 0xa0, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0x1, 0x40, 0x44, 0x0, 0xd1, 0x13, 0x80,
- 0x6, 0x66, 0x66, 0x77, 0x0, 0xd5, 0x55, 0x50,
- 0x0, 0x10, 0x8, 0x50, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0x70, 0xc, 0x30, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0x74, 0xd, 0x0, 0x96, 0xe6, 0x6c, 0x30,
- 0x0, 0x5a, 0x19, 0x0, 0xd0, 0x0, 0xd, 0x0,
- 0x0, 0x3b, 0x43, 0x0, 0xd0, 0x0, 0xd, 0x0,
- 0x0, 0x2, 0x60, 0x33, 0xd0, 0x0, 0xd, 0x0,
- 0x1, 0x48, 0xb7, 0x20, 0xd0, 0x0, 0xd, 0x0,
- 0xa, 0xa3, 0x0, 0x0, 0xe6, 0x66, 0x6e, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xd0, 0x0, 0xb, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0,
-
- /* U+7AE5 "童" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x2, 0xb0, 0x0, 0x0, 0x0,
- 0x0, 0x5, 0x66, 0x66, 0xd6, 0x66, 0xc6, 0x0,
- 0x0, 0x2, 0x6, 0x60, 0x0, 0xc3, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd0, 0x4, 0x40, 0x4, 0x0,
- 0x2, 0x76, 0x55, 0x65, 0x57, 0x55, 0x59, 0x50,
- 0x0, 0x1, 0x86, 0x66, 0x66, 0x66, 0xa1, 0x0,
- 0x0, 0x1, 0xb0, 0x0, 0xd0, 0x0, 0xd0, 0x0,
- 0x0, 0x1, 0xd6, 0x66, 0xe6, 0x66, 0xe0, 0x0,
- 0x0, 0x1, 0xb0, 0x0, 0xd0, 0x0, 0xd0, 0x0,
- 0x0, 0x1, 0xd6, 0x66, 0xe6, 0x66, 0xe0, 0x0,
- 0x0, 0x1, 0x30, 0x0, 0xd0, 0x0, 0x33, 0x0,
- 0x0, 0x18, 0x66, 0x66, 0xe6, 0x66, 0x7a, 0x20,
- 0x0, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0, 0x40,
- 0x6, 0x76, 0x66, 0x66, 0xa6, 0x66, 0x66, 0xa5,
-
- /* U+7AEF "端" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x41, 0x0, 0x2, 0x0, 0xb1, 0x0, 0x0,
- 0x0, 0x1c, 0x0, 0xd, 0x10, 0xb0, 0xc, 0x20,
- 0x0, 0x9, 0x0, 0xc, 0x0, 0xb0, 0xc, 0x0,
- 0x5, 0x66, 0x6c, 0x2d, 0x66, 0xd6, 0x6d, 0x0,
- 0x0, 0x0, 0x33, 0x4, 0x0, 0x0, 0x5, 0x0,
- 0x1, 0x40, 0x78, 0x56, 0x66, 0x66, 0x66, 0xb1,
- 0x0, 0x90, 0x92, 0x11, 0x6, 0x60, 0x0, 0x0,
- 0x0, 0xb1, 0xa0, 0x12, 0x7, 0x0, 0x1, 0x40,
- 0x0, 0xa1, 0x80, 0x2d, 0x6d, 0x6d, 0x6a, 0x90,
- 0x0, 0x12, 0x41, 0x4b, 0xc, 0xc, 0x7, 0x60,
- 0x0, 0x3a, 0x84, 0x1b, 0xc, 0xc, 0x7, 0x60,
- 0xc, 0xa2, 0x0, 0x1b, 0xc, 0xc, 0x7, 0x60,
- 0x0, 0x0, 0x0, 0x1b, 0xc, 0xb, 0x7, 0x60,
- 0x0, 0x0, 0x0, 0x2b, 0x5, 0x2, 0x7d, 0x50,
- 0x0, 0x0, 0x0, 0x12, 0x0, 0x0, 0x6, 0x0,
-
- /* U+7B11 "笑" */
- 0x0, 0x2, 0xa0, 0x0, 0x0, 0x91, 0x0, 0x0,
- 0x0, 0x8, 0x80, 0x4, 0x5, 0xc0, 0x3, 0x10,
- 0x0, 0x1d, 0x77, 0x69, 0x4c, 0x78, 0x69, 0x80,
- 0x0, 0x93, 0xc, 0x10, 0x65, 0x5, 0xa0, 0x0,
- 0x5, 0x40, 0x9, 0x32, 0x50, 0x1, 0xa0, 0x0,
- 0x2, 0x0, 0x0, 0x14, 0x68, 0xcf, 0x50, 0x0,
- 0x0, 0x4, 0x56, 0x6d, 0x62, 0x11, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x10, 0x0, 0x0, 0x0,
- 0x5, 0x66, 0x66, 0x6e, 0x66, 0x66, 0x6e, 0x50,
- 0x1, 0x0, 0x0, 0x3a, 0x41, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa4, 0x9, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x6, 0x90, 0x3, 0xb1, 0x0, 0x0,
- 0x0, 0x0, 0x87, 0x0, 0x0, 0x3d, 0x82, 0x0,
- 0x1, 0x57, 0x10, 0x0, 0x0, 0x1, 0xaf, 0x80,
- 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
-
- /* U+7B26 "符" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0xc1, 0x0, 0x0, 0x96, 0x0, 0x0,
- 0x0, 0x8, 0x90, 0x2, 0x20, 0xd1, 0x0, 0x50,
- 0x0, 0x1c, 0x69, 0x76, 0x57, 0x86, 0xb6, 0x72,
- 0x0, 0x92, 0x1, 0xc0, 0x28, 0x0, 0x95, 0x0,
- 0x5, 0x20, 0x7, 0x30, 0x70, 0x1, 0x31, 0x0,
- 0x0, 0x0, 0x5c, 0x20, 0x0, 0x3, 0xc0, 0x0,
- 0x0, 0x1, 0xd2, 0x56, 0x66, 0x67, 0xc6, 0xc5,
- 0x0, 0xb, 0xc0, 0x11, 0x0, 0x3, 0xa0, 0x0,
- 0x0, 0x76, 0xa0, 0x8, 0x10, 0x3, 0xa0, 0x0,
- 0x6, 0x22, 0xa0, 0x3, 0xd0, 0x3, 0xa0, 0x0,
- 0x0, 0x2, 0xa0, 0x0, 0xc0, 0x3, 0xa0, 0x0,
- 0x0, 0x2, 0xa0, 0x0, 0x0, 0x3, 0xa0, 0x0,
- 0x0, 0x2, 0xa0, 0x0, 0x0, 0x3, 0x90, 0x0,
- 0x0, 0x2, 0xb0, 0x0, 0x3, 0x9d, 0x80, 0x0,
- 0x0, 0x1, 0x20, 0x0, 0x0, 0x5, 0x0, 0x0,
-
- /* U+7B2C "第" */
- 0x0, 0x1, 0xb1, 0x0, 0x3, 0x90, 0x0, 0x0,
- 0x0, 0x9a, 0x0, 0x70, 0x98, 0x0, 0x53, 0x0,
- 0x4b, 0x7b, 0x66, 0x6b, 0x7b, 0x66, 0x40, 0x28,
- 0x0, 0xa3, 0x18, 0x0, 0xb3, 0x0, 0x2, 0x5,
- 0x68, 0x67, 0x66, 0x68, 0xb2, 0x0, 0x0, 0x10,
- 0x0, 0xd, 0x0, 0xd, 0x0, 0x0, 0x3, 0x20,
- 0x0, 0xd0, 0x0, 0xd0, 0x0, 0x0, 0x99, 0x66,
- 0x6e, 0x66, 0x6c, 0x0, 0x0, 0xd, 0x10, 0x0,
- 0xd0, 0x0, 0x1, 0x0, 0x3, 0xd6, 0x66, 0xae,
- 0x66, 0x66, 0xc7, 0x0, 0x1, 0x0, 0xb5, 0xd0,
- 0x0, 0xc, 0x10, 0x0, 0x1, 0xa5, 0xd, 0x0,
- 0x0, 0xe0, 0x0, 0x4, 0xa2, 0x0, 0xd0, 0x19,
- 0xd9, 0x0, 0x47, 0x40, 0x0, 0xd, 0x0, 0x6,
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x60, 0x0, 0x0,
- 0x0,
-
- /* U+7B46 "筆" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x4, 0xd0, 0x0, 0x0, 0xe2, 0x0, 0x0,
- 0x0, 0xa, 0x60, 0x5, 0x16, 0xa0, 0x0, 0x70,
- 0x0, 0x2d, 0x6b, 0x66, 0x5c, 0x67, 0xb6, 0x72,
- 0x0, 0xa2, 0x5, 0xc0, 0x74, 0x0, 0x7b, 0x0,
- 0x6, 0x30, 0x0, 0xa3, 0xb0, 0x0, 0x1a, 0x0,
- 0x1, 0x1, 0x86, 0x68, 0xc6, 0x66, 0xe2, 0x0,
- 0x0, 0x0, 0x0, 0x3, 0xa0, 0x0, 0xe4, 0x60,
- 0x0, 0x76, 0x66, 0x68, 0xc6, 0x66, 0xe6, 0x50,
- 0x0, 0x1, 0x66, 0x68, 0xc6, 0x66, 0xe0, 0x0,
- 0x0, 0x0, 0x20, 0x3, 0xa0, 0x0, 0x40, 0x0,
- 0x0, 0x3, 0x66, 0x68, 0xc6, 0x6a, 0xa0, 0x0,
- 0x0, 0x0, 0x0, 0x3, 0xa0, 0x0, 0x8, 0x30,
- 0x2, 0x86, 0x66, 0x68, 0xc6, 0x66, 0x66, 0x50,
- 0x0, 0x0, 0x0, 0x3, 0xa0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x2, 0x30, 0x0, 0x0, 0x0,
-
- /* U+7B49 "等" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x3, 0xc1, 0x0, 0x0, 0xc4, 0x0, 0x0,
- 0x0, 0xa, 0xa0, 0x6, 0x23, 0xd0, 0x0, 0x60,
- 0x0, 0x2d, 0x79, 0x66, 0x4a, 0x6a, 0x76, 0x61,
- 0x0, 0xa1, 0xc, 0x20, 0x44, 0x2, 0xc0, 0x0,
- 0x6, 0x20, 0x7, 0x30, 0xe1, 0x0, 0x80, 0x0,
- 0x0, 0x4, 0x76, 0x66, 0xe6, 0x66, 0x9a, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0x0,
- 0x5, 0x76, 0x66, 0x66, 0xd6, 0x66, 0x66, 0xc2,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x10, 0x0,
- 0x0, 0x56, 0x66, 0x66, 0x66, 0x6e, 0x67, 0xc1,
- 0x0, 0x10, 0x5, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x0, 0x6, 0x90, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd0, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x18, 0xeb, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x51, 0x0, 0x0,
-
- /* U+7B54 "答" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2, 0xb1, 0x0, 0x5, 0xa0, 0x0, 0x0,
- 0x0, 0x8, 0xb0, 0x4, 0xa, 0x60, 0x2, 0x20,
- 0x0, 0xd, 0x87, 0x67, 0x6b, 0x6a, 0x67, 0x50,
- 0x0, 0x84, 0xc, 0x3, 0x61, 0x5, 0xa0, 0x0,
- 0x3, 0x60, 0x8, 0x3e, 0x70, 0x0, 0xb0, 0x0,
- 0x2, 0x0, 0x2, 0xd4, 0x46, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x3c, 0x20, 0x4, 0xa4, 0x0, 0x0,
- 0x0, 0x7, 0x80, 0x0, 0x0, 0x89, 0xda, 0x72,
- 0x3, 0x73, 0x37, 0x66, 0x66, 0x61, 0x17, 0x70,
- 0x1, 0x0, 0x30, 0x0, 0x0, 0x5, 0x0, 0x0,
- 0x0, 0x0, 0xe6, 0x66, 0x66, 0x6e, 0x30, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0x0, 0xe6, 0x66, 0x66, 0x6e, 0x0, 0x0,
- 0x0, 0x0, 0x40, 0x0, 0x0, 0x3, 0x0, 0x0,
-
- /* U+7B56 "策" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x4a, 0x0, 0x0, 0x68, 0x0, 0x0, 0x0,
- 0xb, 0x50, 0x15, 0xd, 0x40, 0x6, 0x0, 0x5,
- 0xa8, 0x86, 0x5a, 0x88, 0x96, 0x61, 0x2, 0x90,
- 0xc, 0x3, 0x30, 0xd, 0x10, 0x0, 0x50, 0x0,
- 0x40, 0xa4, 0x0, 0x40, 0x50, 0x6, 0x76, 0x66,
- 0x6c, 0x76, 0x66, 0x6a, 0x40, 0x0, 0x20, 0x0,
- 0xb2, 0x0, 0x4, 0x0, 0x0, 0xd, 0x66, 0x6c,
- 0x76, 0x66, 0xe0, 0x0, 0x0, 0xc0, 0x0, 0xc2,
- 0x0, 0xd, 0x0, 0x0, 0xc, 0x0, 0x7f, 0x70,
- 0x56, 0xc0, 0x0, 0x0, 0xa0, 0x69, 0xb3, 0x70,
- 0x85, 0x0, 0x0, 0x0, 0x87, 0xb, 0x22, 0xa2,
- 0x0, 0x0, 0x2, 0x93, 0x0, 0xb2, 0x1, 0xab,
- 0x63, 0x6, 0x50, 0x0, 0xb, 0x20, 0x0, 0x4b,
- 0x31, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0,
-
- /* U+7B97 "算" */
- 0x0, 0x0, 0x20, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0x2, 0xe1, 0x0, 0x0, 0xd3, 0x0, 0x0,
- 0x0, 0x9, 0x96, 0x6b, 0x65, 0xc6, 0x66, 0xc1,
- 0x0, 0x19, 0x7, 0x60, 0x9, 0x0, 0x94, 0x0,
- 0x0, 0x91, 0x21, 0x60, 0x40, 0x0, 0x66, 0x0,
- 0x4, 0x10, 0xe6, 0x66, 0x66, 0x67, 0xd0, 0x0,
- 0x0, 0x0, 0xe6, 0x66, 0x66, 0x67, 0xb0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0x3, 0xb0, 0x0,
- 0x0, 0x0, 0xe6, 0x66, 0x66, 0x67, 0xb0, 0x0,
- 0x0, 0x0, 0xe6, 0x66, 0x66, 0x67, 0xb0, 0x0,
- 0x0, 0x0, 0x90, 0xf0, 0x0, 0xe1, 0x50, 0x0,
- 0x0, 0x0, 0x1, 0xd0, 0x0, 0xe0, 0x0, 0x80,
- 0x6, 0x76, 0x69, 0xc6, 0x66, 0xe6, 0x66, 0x73,
- 0x0, 0x0, 0x1c, 0x20, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x4, 0xa2, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x52, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0,
-
- /* U+7BA1 "管" */
- 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0xa7, 0x0, 0x0, 0xb5, 0x0, 0x0, 0x0,
- 0x2e, 0x66, 0x88, 0x2d, 0x66, 0x6c, 0x20, 0xa,
- 0x15, 0x40, 0x7, 0x3, 0x60, 0x0, 0x5, 0x20,
- 0x1a, 0xa, 0x10, 0xb, 0x0, 0x0, 0x13, 0x0,
- 0x0, 0x75, 0x0, 0x0, 0x62, 0x2, 0xb6, 0x66,
- 0x66, 0x66, 0x66, 0x6e, 0x70, 0xc4, 0x9, 0x66,
- 0x66, 0x6a, 0x43, 0x40, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0xa2, 0x0, 0x0, 0x0, 0xd, 0x66, 0x66,
- 0x6c, 0x20, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0x61, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0,
- 0x60, 0x0, 0x0, 0x0, 0xd6, 0x66, 0x66, 0x6d,
- 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x1, 0xb0,
- 0x0, 0x0, 0x0, 0xe6, 0x66, 0x66, 0x6c, 0x0,
- 0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0x20, 0x0,
-
- /* U+7BC0 "節" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x4, 0xc0, 0x0, 0x4, 0xc0, 0x0, 0x0, 0x0,
- 0xb9, 0x66, 0xc5, 0xa9, 0x66, 0x9c, 0x10, 0x48,
- 0x7, 0x80, 0x19, 0x2, 0x92, 0x0, 0x18, 0x0,
- 0xa, 0x16, 0x0, 0x3, 0xd0, 0x5, 0x3, 0x0,
- 0x5, 0x3, 0x0, 0x7, 0x0, 0x0, 0xd6, 0x66,
- 0xe1, 0xd6, 0x66, 0xe1, 0x0, 0xd, 0x66, 0x6d,
- 0xd, 0x0, 0xd, 0x0, 0x0, 0xc0, 0x0, 0xd0,
- 0xd0, 0x0, 0xd0, 0x0, 0xc, 0x0, 0xd, 0xd,
- 0x0, 0xd, 0x0, 0x0, 0xd6, 0x66, 0xa0, 0xd0,
- 0x0, 0xd0, 0x0, 0xc, 0x1, 0x60, 0xd, 0x0,
- 0xd, 0x0, 0x0, 0xc0, 0x8, 0x80, 0xd0, 0x3b,
- 0xa0, 0x0, 0x1d, 0x78, 0x3f, 0x1d, 0x0, 0x20,
- 0x0, 0x0, 0xc4, 0x0, 0x60, 0xd0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0,
-
- /* U+7BC4 "範" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc5, 0x0, 0x0, 0x79, 0x0, 0x10, 0x0,
- 0x4f, 0x76, 0x6d, 0x3d, 0x86, 0x6d, 0x30, 0xb,
- 0x24, 0x80, 0x5, 0x60, 0x87, 0x0, 0x6, 0x30,
- 0x49, 0x70, 0x70, 0x0, 0xb7, 0x1, 0x41, 0x1b,
- 0x52, 0x70, 0x20, 0x5, 0x30, 0x2, 0x65, 0xc6,
- 0x55, 0x1d, 0x66, 0xd3, 0x0, 0xa, 0x6c, 0x66,
- 0xc1, 0xb0, 0xb, 0x0, 0x0, 0xc0, 0xa1, 0xb,
- 0xb, 0x0, 0xb0, 0x0, 0xc, 0x6c, 0x66, 0xb0,
- 0xb0, 0xb, 0x0, 0x0, 0xc0, 0xa1, 0xb, 0xb,
- 0x0, 0xc0, 0x0, 0xb, 0x6c, 0x66, 0x90, 0xb3,
- 0x8c, 0x0, 0x4, 0x66, 0xc6, 0x6b, 0x2b, 0x0,
- 0x3, 0x0, 0x11, 0xa, 0x10, 0x0, 0xb0, 0x0,
- 0x70, 0x0, 0x0, 0xb2, 0x0, 0xc, 0xbb, 0xbe,
- 0x40, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+7C21 "簡" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa6, 0x0, 0x0, 0xf4, 0x0, 0x10, 0x0,
- 0x2e, 0x76, 0x7b, 0x6d, 0x76, 0x6c, 0x60, 0xa,
- 0x23, 0xa0, 0x9, 0x4, 0xb2, 0x0, 0x6, 0x20,
- 0x8, 0x23, 0x0, 0x5, 0x51, 0x0, 0xc, 0x66,
- 0x6c, 0x19, 0x76, 0x67, 0xd0, 0x0, 0xd0, 0x0,
- 0xb0, 0x92, 0x0, 0x1b, 0x0, 0xd, 0x66, 0x6c,
- 0x9, 0x76, 0x66, 0xb0, 0x0, 0xd6, 0x66, 0xc0,
- 0xa7, 0x66, 0x6b, 0x0, 0xd, 0x0, 0x21, 0x2,
- 0x5, 0x1, 0xb0, 0x0, 0xd0, 0xd, 0x66, 0x66,
- 0xe1, 0x1b, 0x0, 0xd, 0x0, 0xc6, 0x66, 0x6d,
- 0x1, 0xb0, 0x0, 0xd0, 0xc, 0x0, 0x1, 0xd0,
- 0x1b, 0x0, 0xd, 0x0, 0xb6, 0x66, 0x6a, 0x1,
- 0xb0, 0x0, 0xd0, 0x0, 0x0, 0x0, 0x26, 0xaa,
- 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x6, 0x10,
-
- /* U+7C73 "米" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x60, 0x0, 0x0, 0x0,
- 0x0, 0x6, 0x0, 0xc, 0x20, 0xa, 0x90, 0x0,
- 0x0, 0x5, 0xb0, 0xc, 0x20, 0x2e, 0x20, 0x0,
- 0x0, 0x0, 0xe6, 0xc, 0x20, 0xa4, 0x0, 0x0,
- 0x0, 0x0, 0x74, 0xc, 0x25, 0x50, 0x1, 0x0,
- 0x5, 0x66, 0x66, 0x6d, 0x7a, 0x66, 0x6f, 0x50,
- 0x1, 0x0, 0x0, 0xcf, 0x71, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x5, 0xbc, 0x38, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x1d, 0x1c, 0x27, 0x50, 0x0, 0x0,
- 0x0, 0x0, 0xc4, 0xc, 0x20, 0xc4, 0x0, 0x0,
- 0x0, 0xa, 0x50, 0xc, 0x20, 0x2e, 0x80, 0x0,
- 0x0, 0x93, 0x0, 0xc, 0x20, 0x2, 0xee, 0x70,
- 0x16, 0x10, 0x0, 0xc, 0x20, 0x0, 0x1a, 0x20,
- 0x10, 0x0, 0x0, 0xd, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0,
-
- /* U+7CBE "精" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x9, 0x50, 0x0, 0x0, 0xd2, 0x0, 0x0,
- 0x1, 0xa, 0x22, 0x10, 0x0, 0xd0, 0x5, 0x10,
- 0x7, 0x3a, 0x29, 0x64, 0x76, 0xe6, 0x66, 0x30,
- 0x1, 0xda, 0x38, 0x0, 0x0, 0xd0, 0x5, 0x0,
- 0x0, 0x4a, 0x51, 0x1, 0x76, 0xe6, 0x65, 0x0,
- 0x18, 0x6d, 0x7a, 0x60, 0x0, 0xd0, 0x2, 0x50,
- 0x0, 0xf, 0x20, 0x7, 0x66, 0x66, 0x66, 0x50,
- 0x0, 0x5f, 0x95, 0x1, 0xa6, 0x66, 0x7b, 0x0,
- 0x0, 0xac, 0x2e, 0x21, 0xc0, 0x0, 0x3a, 0x0,
- 0x2, 0x8a, 0x23, 0x1, 0xd6, 0x66, 0x7a, 0x0,
- 0x8, 0x1a, 0x20, 0x1, 0xc0, 0x0, 0x3a, 0x0,
- 0x23, 0xa, 0x20, 0x1, 0xd6, 0x66, 0x7a, 0x0,
- 0x10, 0xa, 0x20, 0x1, 0xc0, 0x0, 0x3a, 0x0,
- 0x0, 0xb, 0x30, 0x1, 0xc0, 0x17, 0x99, 0x0,
- 0x0, 0x5, 0x0, 0x1, 0x60, 0x0, 0x92, 0x0,
-
- /* U+7CD6 "糖" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa, 0x30, 0x0, 0x1, 0xb3, 0x0, 0x0,
- 0x1, 0xc, 0x13, 0x3, 0x0, 0x34, 0x3, 0x60,
- 0x8, 0x1c, 0x1d, 0x4e, 0x66, 0xb8, 0x66, 0x50,
- 0x5, 0x8c, 0x66, 0xd, 0x0, 0xb1, 0x3, 0x0,
- 0x2, 0x4c, 0x60, 0xd, 0x37, 0xd7, 0x6e, 0x0,
- 0x6, 0x6d, 0x6b, 0x6d, 0x0, 0xb1, 0xd, 0x40,
- 0x1, 0xf, 0x10, 0xc, 0x66, 0xd7, 0x6e, 0x61,
- 0x0, 0x4f, 0x81, 0xc, 0x0, 0xb1, 0xd, 0x0,
- 0x0, 0x9e, 0x4d, 0x1b, 0x37, 0xd7, 0x6c, 0x0,
- 0x1, 0x9c, 0x16, 0x39, 0x10, 0x81, 0x3, 0x0,
- 0x7, 0x1c, 0x10, 0x65, 0x87, 0x66, 0x6e, 0x10,
- 0x14, 0xc, 0x10, 0xa0, 0x82, 0x0, 0xd, 0x0,
- 0x0, 0xc, 0x12, 0x60, 0x82, 0x0, 0xd, 0x0,
- 0x0, 0xc, 0x17, 0x0, 0x87, 0x66, 0x6e, 0x0,
- 0x0, 0x5, 0x10, 0x0, 0x30, 0x0, 0x2, 0x0,
-
- /* U+7CFB "系" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1, 0x47, 0xcf, 0x30, 0x0,
- 0x14, 0x56, 0x7b, 0xa6, 0x42, 0x10, 0x0, 0x0,
- 0x0, 0x2, 0xd7, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x3, 0xa1, 0x0, 0xb, 0x30, 0x0, 0x0, 0x28,
- 0x93, 0x34, 0x5c, 0x71, 0x0, 0x0, 0x3, 0xe9,
- 0x64, 0xa9, 0x10, 0x0, 0x0, 0x0, 0x0, 0x5,
- 0x92, 0x1, 0x61, 0x0, 0x0, 0x0, 0x6a, 0x40,
- 0x0, 0x15, 0xe6, 0x0, 0x0, 0xdf, 0xa8, 0x8e,
- 0x54, 0x35, 0xf0, 0x0, 0x2, 0x3, 0x0, 0xe0,
- 0x10, 0x4, 0x0, 0x0, 0x2, 0xf5, 0xe, 0x5,
- 0x82, 0x0, 0x0, 0x2, 0xc4, 0x0, 0xe0, 0x3,
- 0xe9, 0x0, 0x4, 0x91, 0x12, 0x1e, 0x0, 0x2,
- 0xf5, 0x5, 0x30, 0x0, 0x4e, 0xc0, 0x0, 0x5,
- 0x30, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0,
-
- /* U+7D00 "紀" */
- 0x0, 0x0, 0x90, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x6, 0x90, 0x4, 0x76, 0x66, 0x6e, 0x20,
- 0x0, 0x1a, 0x0, 0x0, 0x0, 0x0, 0xe, 0x0,
- 0x0, 0x91, 0xa, 0x50, 0x0, 0x0, 0xe, 0x0,
- 0xa, 0xa7, 0x7b, 0x0, 0x0, 0x0, 0xe, 0x0,
- 0x4, 0x41, 0xa1, 0x0, 0x86, 0x66, 0x6e, 0x0,
- 0x0, 0xa, 0x15, 0x30, 0xe0, 0x0, 0x8, 0x0,
- 0x2, 0xa2, 0x15, 0xe0, 0xe0, 0x0, 0x0, 0x0,
- 0xa, 0xe9, 0x62, 0xc1, 0xe0, 0x0, 0x0, 0x0,
- 0x2, 0x20, 0x2, 0x10, 0xe0, 0x0, 0x0, 0x0,
- 0x1, 0x16, 0x12, 0xa0, 0xe0, 0x0, 0x0, 0x30,
- 0x6, 0x24, 0xa0, 0xd4, 0xe0, 0x0, 0x0, 0x60,
- 0xc, 0x31, 0xe0, 0x61, 0xd1, 0x0, 0x2, 0xa0,
- 0x19, 0x0, 0x20, 0x0, 0x8e, 0xdd, 0xde, 0xc0,
-
- /* U+7D04 "約" */
- 0x0, 0x0, 0x81, 0x0, 0x4, 0x80, 0x0, 0x0,
- 0x0, 0x2c, 0x10, 0x0, 0x99, 0x0, 0x0, 0x0,
- 0xa, 0x10, 0x0, 0xd, 0x10, 0x0, 0x0, 0x8,
- 0x40, 0x87, 0x4, 0xc6, 0x66, 0xb9, 0x8, 0xb7,
- 0x6d, 0x10, 0x91, 0x0, 0x8, 0x50, 0x47, 0x2a,
- 0x20, 0x44, 0x0, 0x0, 0x94, 0x0, 0x9, 0x34,
- 0x41, 0x10, 0x0, 0xa, 0x30, 0x1a, 0x30, 0x1e,
- 0x10, 0xb5, 0x0, 0xb3, 0x9, 0xea, 0x85, 0xa4,
- 0x2, 0xf4, 0xb, 0x20, 0x12, 0x0, 0x3, 0x0,
- 0x7, 0x20, 0xc1, 0x0, 0x33, 0x30, 0xa1, 0x0,
- 0x0, 0xd, 0x0, 0x45, 0xd, 0x6, 0xa0, 0x0,
- 0x0, 0xe0, 0xc, 0x50, 0xd2, 0x29, 0x0, 0x0,
- 0x2c, 0x0, 0xa1, 0x3, 0x0, 0x0, 0x5, 0xcf,
- 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x40,
- 0x0,
-
- /* U+7D19 "紙" */
- 0x0, 0x3, 0x70, 0x0, 0x0, 0x0, 0x34, 0x0,
- 0x0, 0xb5, 0x0, 0x30, 0x36, 0xbb, 0x70, 0x0,
- 0x57, 0x0, 0xa, 0x64, 0xb2, 0x0, 0x0, 0x29,
- 0x0, 0xc2, 0xa1, 0xa, 0x20, 0x0, 0x1e, 0x87,
- 0xa8, 0xa, 0x10, 0xa2, 0x0, 0x0, 0x73, 0x49,
- 0x0, 0xa1, 0x9, 0x20, 0x50, 0x0, 0x39, 0x7,
- 0xa, 0x66, 0xb8, 0x68, 0x40, 0x59, 0x1, 0xa6,
- 0xa1, 0x6, 0x60, 0x0, 0xe, 0xc9, 0x66, 0xaa,
- 0x10, 0x39, 0x0, 0x0, 0x20, 0x0, 0x11, 0xa1,
- 0x0, 0xd0, 0x0, 0x3, 0x5, 0xa, 0x2a, 0x10,
- 0xb, 0x30, 0x40, 0x90, 0xb2, 0x4a, 0xa1, 0x11,
- 0x3c, 0x8, 0x2d, 0x9, 0x50, 0x2b, 0x85, 0x0,
- 0x8d, 0x95, 0x70, 0x0, 0x0, 0xc4, 0x0, 0x0,
- 0x7a, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+7D20 "素" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x3, 0xb0, 0x0, 0x0, 0x0, 0x3,
- 0x66, 0x66, 0x8c, 0x66, 0x68, 0xc0, 0x0, 0x0,
- 0x0, 0x3, 0xa0, 0x0, 0x10, 0x0, 0x0, 0x28,
- 0x66, 0x8c, 0x66, 0x88, 0x0, 0x0, 0x0, 0x0,
- 0x3, 0xa0, 0x0, 0x1, 0x60, 0x67, 0x66, 0x6d,
- 0xa6, 0x66, 0x66, 0x67, 0x10, 0x0, 0x29, 0x60,
- 0x7, 0xc0, 0x0, 0x0, 0x0, 0x2f, 0x97, 0x6c,
- 0x91, 0x0, 0x0, 0x0, 0x0, 0x20, 0x69, 0x20,
- 0x57, 0x0, 0x0, 0x0, 0x38, 0xc7, 0x56, 0x76,
- 0xac, 0x0, 0x0, 0x8, 0xc8, 0x55, 0xa0, 0x0,
- 0xa0, 0x0, 0x0, 0x5, 0xd1, 0x3a, 0x17, 0x50,
- 0x0, 0x0, 0x5, 0xb2, 0x3, 0xa0, 0x6, 0xe5,
- 0x0, 0x17, 0x40, 0x39, 0xe9, 0x0, 0x4, 0xe0,
- 0x1, 0x0, 0x0, 0x7, 0x0, 0x0, 0x1, 0x0,
-
- /* U+7D30 "細" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x67, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0x30, 0x8, 0x66, 0x66, 0x6c, 0x30, 0x7,
- 0x50, 0x0, 0xd0, 0xd, 0x0, 0xd0, 0x3, 0x80,
- 0xd, 0x1d, 0x0, 0xd0, 0xd, 0x2, 0xe7, 0x7a,
- 0x70, 0xd0, 0xd, 0x0, 0xd0, 0x8, 0x35, 0x80,
- 0xd, 0x0, 0xd0, 0xd, 0x0, 0x3, 0x92, 0x40,
- 0xd0, 0xd, 0x0, 0xd0, 0x4, 0xa0, 0xc, 0x2d,
- 0x66, 0xe6, 0x6e, 0x1, 0xfb, 0x97, 0xa7, 0xd0,
- 0xd, 0x0, 0xd0, 0x4, 0x0, 0x2, 0x1d, 0x0,
- 0xd0, 0xd, 0x0, 0x20, 0x50, 0xa0, 0xd0, 0xd,
- 0x0, 0xd0, 0x9, 0xb, 0x27, 0x9d, 0x0, 0xd0,
- 0xd, 0x1, 0xd0, 0x87, 0x15, 0xd6, 0x6c, 0x66,
- 0xe0, 0x48, 0x1, 0x0, 0xd, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x20,
-
- /* U+7D39 "紹" */
- 0x0, 0x0, 0x70, 0x0, 0x0, 0x0, 0x1, 0x0,
- 0x0, 0x4c, 0x10, 0x56, 0x88, 0x66, 0xc7, 0x0,
- 0xb, 0x10, 0x0, 0x9, 0x50, 0xc, 0x20, 0x8,
- 0x20, 0x75, 0x0, 0xb2, 0x0, 0xd0, 0x9, 0x95,
- 0x5d, 0x20, 0x1d, 0x0, 0xe, 0x0, 0x78, 0x3b,
- 0x20, 0x7, 0x60, 0x1, 0xd0, 0x0, 0x9, 0x36,
- 0x1, 0x90, 0x17, 0xaa, 0x0, 0xa, 0x30, 0x59,
- 0x60, 0x0, 0x9, 0x30, 0xb, 0xd9, 0x86, 0xd0,
- 0xc6, 0x66, 0x6d, 0x40, 0x22, 0x0, 0x32, 0xd,
- 0x0, 0x0, 0xc1, 0x0, 0x34, 0x22, 0xb0, 0xd0,
- 0x0, 0xc, 0x10, 0x26, 0x1d, 0xb, 0x5d, 0x0,
- 0x0, 0xc1, 0xa, 0x60, 0xd0, 0x21, 0xe6, 0x66,
- 0x6d, 0x10, 0x91, 0x0, 0x0, 0xc, 0x0, 0x0,
- 0xb1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+7D42 "終" */
- 0x0, 0x0, 0x80, 0x0, 0xb, 0x30, 0x0, 0x0,
- 0x0, 0x7, 0x90, 0x0, 0x3d, 0x0, 0x2, 0x0,
- 0x0, 0x1b, 0x0, 0x0, 0xa7, 0x66, 0x8e, 0x10,
- 0x0, 0x91, 0xa, 0x43, 0x95, 0x0, 0xa5, 0x0,
- 0xa, 0xa7, 0x7b, 0x16, 0x8, 0x3, 0xb0, 0x0,
- 0x5, 0x52, 0xa0, 0x0, 0x2, 0xac, 0x10, 0x0,
- 0x0, 0xa, 0x16, 0x10, 0x0, 0xda, 0x0, 0x0,
- 0x1, 0xa2, 0x4, 0xb0, 0xa, 0x48, 0xc3, 0x0,
- 0xa, 0xd9, 0x74, 0xb3, 0x72, 0x40, 0x6f, 0xb2,
- 0x2, 0x10, 0x3, 0x32, 0x0, 0x6d, 0x11, 0x10,
- 0x2, 0x16, 0x6, 0x60, 0x0, 0x9, 0x20, 0x0,
- 0x6, 0x25, 0x80, 0xf0, 0x28, 0x61, 0x0, 0x0,
- 0xd, 0x23, 0xb0, 0x30, 0x0, 0x5e, 0x80, 0x0,
- 0x1a, 0x0, 0x0, 0x0, 0x0, 0x2, 0xe4, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x21, 0x0,
-
- /* U+7D44 "組" */
- 0x0, 0x0, 0x90, 0x0, 0x0, 0x0, 0x1, 0x0,
- 0x0, 0x7, 0x90, 0x0, 0xd6, 0x66, 0x7e, 0x10,
- 0x0, 0x1b, 0x0, 0x0, 0xe0, 0x0, 0x1c, 0x0,
- 0x0, 0xa1, 0x9, 0x40, 0xe0, 0x0, 0x1c, 0x0,
- 0xb, 0x97, 0x7c, 0x0, 0xe0, 0x0, 0x1c, 0x0,
- 0x6, 0x52, 0xb0, 0x0, 0xe6, 0x66, 0x6c, 0x0,
- 0x0, 0x1a, 0x16, 0x20, 0xe0, 0x0, 0x1c, 0x0,
- 0x2, 0xb1, 0x3, 0xd0, 0xe0, 0x0, 0x1c, 0x0,
- 0xc, 0xd9, 0x74, 0xd1, 0xe0, 0x0, 0x1c, 0x0,
- 0x2, 0x10, 0x3, 0x20, 0xe6, 0x66, 0x6c, 0x0,
- 0x1, 0x25, 0x15, 0x80, 0xe0, 0x0, 0x1c, 0x0,
- 0x4, 0x43, 0xa0, 0xe0, 0xe0, 0x0, 0x1c, 0x0,
- 0xb, 0x41, 0xd0, 0x20, 0xe0, 0x0, 0x1c, 0x10,
- 0xa, 0x0, 0x1, 0x66, 0xe6, 0x66, 0x6e, 0xe3,
- 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
-
- /* U+7D4C "経" */
- 0x0, 0x2, 0x70, 0x0, 0x0, 0x0, 0x3, 0x0,
- 0x0, 0x9, 0x60, 0x17, 0xa6, 0x66, 0x8f, 0x20,
- 0x0, 0x2a, 0x0, 0x0, 0x62, 0x0, 0xb6, 0x0,
- 0x0, 0x90, 0xa, 0x10, 0xa, 0x6, 0xa0, 0x0,
- 0xa, 0x85, 0x79, 0x0, 0x5, 0xbb, 0x0, 0x0,
- 0x7, 0x75, 0xb0, 0x0, 0x6, 0xdb, 0x10, 0x0,
- 0x0, 0xa, 0x15, 0x0, 0x87, 0x5, 0xeb, 0x71,
- 0x0, 0xa2, 0x7, 0x66, 0x10, 0xb4, 0x7, 0x30,
- 0xb, 0xb9, 0x78, 0xa0, 0x0, 0xb2, 0x1, 0x0,
- 0x4, 0x40, 0x1, 0x34, 0x76, 0xd7, 0x6b, 0x20,
- 0x1, 0x15, 0x8, 0x30, 0x0, 0xb2, 0x0, 0x0,
- 0x7, 0x25, 0x72, 0xd0, 0x0, 0xb2, 0x0, 0x0,
- 0x1e, 0x13, 0xb0, 0x80, 0x0, 0xb2, 0x2, 0x70,
- 0x18, 0x0, 0x10, 0x57, 0x66, 0x66, 0x66, 0x50,
-
- /* U+7D50 "結" */
- 0x0, 0x1, 0x70, 0x0, 0x0, 0x93, 0x0, 0x0,
- 0x0, 0x8, 0x80, 0x0, 0x0, 0xa2, 0x0, 0x0,
- 0x0, 0x2a, 0x0, 0x0, 0x0, 0xa2, 0x0, 0x0,
- 0x0, 0xa0, 0xa, 0x35, 0x66, 0xc7, 0x67, 0xc1,
- 0xc, 0x86, 0x7b, 0x0, 0x0, 0xa2, 0x0, 0x0,
- 0x7, 0x43, 0xa0, 0x0, 0x0, 0xa2, 0x0, 0x0,
- 0x0, 0x2a, 0x6, 0x11, 0x66, 0xc7, 0x6c, 0x20,
- 0x4, 0xa0, 0x16, 0xc0, 0x10, 0x0, 0x0, 0x0,
- 0xd, 0xc9, 0x63, 0xd0, 0x96, 0x66, 0x6b, 0x10,
- 0x1, 0x0, 0x4, 0x10, 0xd0, 0x0, 0xd, 0x0,
- 0x2, 0x16, 0x23, 0xa0, 0xd0, 0x0, 0xd, 0x0,
- 0x6, 0x33, 0xb0, 0xd2, 0xd0, 0x0, 0xd, 0x0,
- 0xd, 0x21, 0xc0, 0x20, 0xe6, 0x66, 0x6d, 0x0,
- 0x18, 0x0, 0x0, 0x0, 0xd0, 0x0, 0xc, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
-
- /* U+7D61 "絡" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x3, 0x30, 0x0, 0xd, 0x40, 0x0, 0x0,
- 0x0, 0xa, 0x60, 0x0, 0x4c, 0x0, 0x0, 0x0,
- 0x0, 0x29, 0x0, 0x0, 0xa8, 0x66, 0x6e, 0x20,
- 0x0, 0x90, 0x9, 0x2, 0xc0, 0x0, 0x7a, 0x0,
- 0xa, 0x63, 0x7a, 0x8, 0x18, 0x3, 0xc0, 0x0,
- 0xa, 0x86, 0xb0, 0x31, 0x3, 0x9c, 0x10, 0x0,
- 0x0, 0xa, 0x14, 0x0, 0x2, 0xcb, 0x10, 0x0,
- 0x0, 0xa2, 0xa, 0x20, 0x59, 0x13, 0xd8, 0x30,
- 0xc, 0xa8, 0x79, 0xa6, 0x40, 0x0, 0x19, 0xa2,
- 0x7, 0x50, 0x2, 0x40, 0xe6, 0x66, 0x8c, 0x0,
- 0x0, 0x12, 0x5, 0x0, 0xd0, 0x0, 0x2a, 0x0,
- 0x2, 0x57, 0x27, 0x70, 0xd0, 0x0, 0x2a, 0x0,
- 0x9, 0x45, 0x92, 0xa0, 0xd0, 0x0, 0x2a, 0x0,
- 0x1e, 0x13, 0x50, 0x0, 0xe6, 0x66, 0x7b, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x30, 0x0, 0x12, 0x0,
-
- /* U+7D66 "給" */
- 0x0, 0x0, 0x70, 0x0, 0x0, 0x84, 0x0, 0x0,
- 0x0, 0x4, 0xb0, 0x0, 0x0, 0xf8, 0x0, 0x0,
- 0x0, 0xb, 0x10, 0x0, 0x7, 0x86, 0x10, 0x0,
- 0x0, 0x73, 0x9, 0x30, 0xc, 0x10, 0xa0, 0x0,
- 0x5, 0xb6, 0x6b, 0x0, 0x93, 0x0, 0x5a, 0x0,
- 0x3, 0x83, 0xb1, 0x6, 0x40, 0x0, 0x29, 0xd5,
- 0x0, 0x8, 0x26, 0x43, 0x76, 0x66, 0xa4, 0x70,
- 0x0, 0x94, 0x4, 0xa0, 0x0, 0x0, 0x0, 0x0,
- 0x6, 0xea, 0x85, 0xd2, 0x96, 0x66, 0x6c, 0x10,
- 0x0, 0x30, 0x2, 0x21, 0xb0, 0x0, 0xd, 0x0,
- 0x0, 0x42, 0x56, 0x61, 0xb0, 0x0, 0xd, 0x0,
- 0x4, 0x60, 0xd1, 0xf2, 0xb0, 0x0, 0xd, 0x0,
- 0xd, 0x40, 0xd0, 0x42, 0xd6, 0x66, 0x6d, 0x0,
- 0x5, 0x0, 0x0, 0x2, 0xb0, 0x0, 0xd, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0,
-
- /* U+7D71 "統" */
- 0x0, 0x5, 0x50, 0x0, 0x8, 0x40, 0x0, 0x0,
- 0x0, 0xc, 0x30, 0x0, 0x1, 0xf1, 0x0, 0x0,
- 0x0, 0x75, 0x0, 0x36, 0x66, 0x96, 0x6c, 0x70,
- 0x2, 0x80, 0x1c, 0x11, 0xb, 0x40, 0x0, 0x0,
- 0x2e, 0x76, 0xb6, 0x0, 0x78, 0x2, 0x40, 0x0,
- 0x8, 0x36, 0x70, 0x6, 0x60, 0x0, 0x96, 0x0,
- 0x0, 0x38, 0x7, 0x2e, 0x97, 0x54, 0x4f, 0x0,
- 0x5, 0x90, 0xa, 0x61, 0x62, 0x6, 0x14, 0x0,
- 0x1f, 0xb9, 0x77, 0xa0, 0xb3, 0xd, 0x0, 0x0,
- 0x3, 0x0, 0x5, 0x10, 0xc1, 0xd, 0x0, 0x0,
- 0x4, 0x8, 0x8, 0x60, 0xd0, 0xd, 0x0, 0x10,
- 0xa, 0xb, 0x22, 0xb3, 0xa0, 0xd, 0x0, 0x50,
- 0x4c, 0x7, 0x10, 0x1b, 0x20, 0xd, 0x0, 0x80,
- 0x11, 0x0, 0x3, 0x82, 0x0, 0x9, 0xdd, 0xc0,
- 0x0, 0x0, 0x22, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+7D75 "絵" */
- 0x0, 0x4, 0x30, 0x0, 0x1, 0x90, 0x0, 0x0,
- 0x0, 0xc, 0x50, 0x0, 0x7, 0xe1, 0x0, 0x0,
- 0x0, 0x58, 0x0, 0x0, 0xd, 0x28, 0x0, 0x0,
- 0x1, 0x90, 0xa, 0x0, 0x86, 0x5, 0x80, 0x0,
- 0x1c, 0x55, 0x98, 0x4, 0x80, 0x0, 0x99, 0x0,
- 0xa, 0x56, 0x90, 0x46, 0x0, 0x2, 0x6a, 0xd2,
- 0x0, 0x39, 0x6, 0x20, 0x76, 0x66, 0x50, 0x10,
- 0x4, 0x90, 0x9, 0x50, 0x0, 0x0, 0x2, 0x0,
- 0x1f, 0xb9, 0x77, 0xa7, 0x67, 0x66, 0x6a, 0x40,
- 0x4, 0x0, 0x2, 0x10, 0x9, 0x90, 0x0, 0x0,
- 0x2, 0x7, 0xa, 0x30, 0x3c, 0x0, 0x10, 0x0,
- 0x8, 0x8, 0x64, 0xc0, 0xb1, 0x0, 0x82, 0x0,
- 0xd, 0x5, 0x70, 0x5a, 0x53, 0x45, 0x7e, 0x10,
- 0x16, 0x0, 0x0, 0xc, 0x95, 0x31, 0xa, 0x40,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+7D93 "經" */
- 0x0, 0x7, 0x20, 0x0, 0x0, 0x0, 0x3, 0x0,
- 0x0, 0xc, 0x10, 0x47, 0x66, 0x66, 0x6a, 0x60,
- 0x0, 0x74, 0x0, 0x3, 0x50, 0x92, 0x28, 0x0,
- 0x1, 0x80, 0x46, 0x9, 0x62, 0xc0, 0x96, 0x0,
- 0x1b, 0x44, 0xb3, 0x29, 0x9, 0x13, 0x70, 0x0,
- 0xa, 0x58, 0x60, 0x53, 0x8, 0x5, 0x60, 0x0,
- 0x0, 0x29, 0x21, 0xc, 0x33, 0xc0, 0xa7, 0x0,
- 0x1, 0xa0, 0xb, 0x6, 0x90, 0xc1, 0x19, 0x0,
- 0xe, 0x99, 0x8d, 0x30, 0x10, 0x0, 0x3, 0x0,
- 0x8, 0x40, 0x4, 0x17, 0x66, 0xb6, 0x68, 0x30,
- 0x1, 0x4, 0x9, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0x6, 0x28, 0x36, 0x90, 0x0, 0xd0, 0x0, 0x0,
- 0xc, 0x26, 0x81, 0x50, 0x0, 0xd0, 0x0, 0x10,
- 0x1b, 0x1, 0x10, 0x46, 0x66, 0xe6, 0x6a, 0xc0,
- 0x0, 0x0, 0x0, 0x11, 0x0, 0x0, 0x0, 0x0,
-
- /* U+7D9A "続" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x4, 0x30, 0x0, 0x0, 0xb2, 0x0, 0x0,
- 0x0, 0xb, 0x40, 0x0, 0x0, 0xd0, 0x1, 0x10,
- 0x0, 0x38, 0x0, 0x18, 0x66, 0xe6, 0x69, 0x80,
- 0x0, 0x90, 0x18, 0x0, 0x0, 0xd0, 0x1, 0x0,
- 0x9, 0x74, 0x95, 0x0, 0x76, 0xb6, 0x7a, 0x0,
- 0x8, 0x66, 0x80, 0x2, 0x0, 0x0, 0x0, 0x10,
- 0x0, 0x9, 0x13, 0xa, 0x66, 0x66, 0x67, 0xe1,
- 0x0, 0x91, 0xb, 0x4a, 0x23, 0x2, 0x7, 0x40,
- 0xa, 0xb9, 0x7b, 0x51, 0x4c, 0xd, 0x22, 0x0,
- 0x5, 0x50, 0x3, 0x10, 0x58, 0xd, 0x10, 0x0,
- 0x1, 0x4, 0x8, 0x20, 0x75, 0xc, 0x10, 0x20,
- 0x5, 0x26, 0x44, 0xb0, 0xb1, 0xc, 0x10, 0x50,
- 0xa, 0x33, 0xa0, 0x66, 0x60, 0xc, 0x10, 0xa0,
- 0x9, 0x0, 0x21, 0x75, 0x0, 0xa, 0xdc, 0xe1,
- 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+7DAD "維" */
- 0x0, 0x8, 0x10, 0x0, 0x67, 0x43, 0x0, 0x0,
- 0x0, 0x2c, 0x0, 0x0, 0xa5, 0xe, 0x30, 0x0,
- 0x0, 0x92, 0x0, 0x0, 0xe0, 0x6, 0x31, 0x20,
- 0x4, 0x50, 0x76, 0x5, 0xd6, 0x6a, 0x68, 0x80,
- 0x2c, 0x66, 0xd2, 0xb, 0xb0, 0x1c, 0x0, 0x0,
- 0x8, 0x2a, 0x30, 0x46, 0xb0, 0x1c, 0x1, 0x0,
- 0x0, 0x56, 0x42, 0x52, 0xc6, 0x6d, 0x6b, 0x50,
- 0x5, 0x80, 0x1d, 0x2, 0xb0, 0x1c, 0x0, 0x0,
- 0x2f, 0xa8, 0x6c, 0x32, 0xb0, 0x1c, 0x0, 0x0,
- 0x5, 0x0, 0x12, 0x2, 0xc6, 0x6d, 0x6b, 0x50,
- 0x3, 0x14, 0x1a, 0x12, 0xb0, 0x1c, 0x0, 0x0,
- 0x8, 0xc, 0x18, 0x92, 0xb0, 0x1c, 0x0, 0x0,
- 0x4b, 0xb, 0x31, 0x32, 0xb0, 0x1c, 0x3, 0x70,
- 0x64, 0x1, 0x0, 0x2, 0xc6, 0x66, 0x66, 0x50,
- 0x0, 0x0, 0x0, 0x1, 0x30, 0x0, 0x0, 0x0,
-
- /* U+7DB2 "網" */
- 0x0, 0x5, 0x10, 0x1, 0x0, 0x0, 0x0, 0x30,
- 0x0, 0xc, 0x20, 0x1d, 0x66, 0x66, 0x76, 0xf2,
- 0x0, 0x65, 0x0, 0x1b, 0x17, 0x1, 0xe1, 0xd0,
- 0x1, 0x80, 0x48, 0x1b, 0x7, 0x77, 0x30, 0xd0,
- 0xd, 0x76, 0xc2, 0x1b, 0x56, 0x8a, 0xa6, 0xd0,
- 0x6, 0x27, 0x50, 0x1b, 0x13, 0x30, 0x0, 0xd0,
- 0x0, 0x47, 0x24, 0x1b, 0x0, 0xc5, 0x0, 0xd0,
- 0x4, 0x90, 0x1d, 0x3c, 0x56, 0x98, 0xb7, 0xd0,
- 0xe, 0xc9, 0x6a, 0x5b, 0x1d, 0x0, 0x0, 0xd0,
- 0x3, 0x0, 0x11, 0x1b, 0xd, 0x0, 0x0, 0xd0,
- 0x4, 0x7, 0x29, 0x1b, 0x2e, 0x66, 0xc2, 0xd0,
- 0x9, 0xc, 0xc, 0x5b, 0x3, 0x0, 0x0, 0xd0,
- 0x3d, 0xb, 0x23, 0x2b, 0x0, 0x1, 0x11, 0xd0,
- 0x34, 0x0, 0x0, 0x1b, 0x0, 0x1, 0x6f, 0x90,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0,
-
- /* U+7DD1 "緑" */
- 0x0, 0x5, 0x20, 0x0, 0x0, 0x0, 0x50, 0x0,
- 0x0, 0xc, 0x20, 0x7, 0x66, 0x66, 0xe2, 0x0,
- 0x0, 0x64, 0x0, 0x0, 0x0, 0x0, 0xe0, 0x0,
- 0x2, 0x80, 0x48, 0x3, 0x76, 0x66, 0xe0, 0x0,
- 0xd, 0x76, 0xb2, 0x0, 0x0, 0x0, 0xe1, 0x20,
- 0x7, 0x27, 0x40, 0x37, 0x66, 0xa6, 0xa8, 0x90,
- 0x0, 0x47, 0x24, 0x0, 0x0, 0xe2, 0x5, 0x0,
- 0x4, 0x80, 0x1d, 0x2a, 0x30, 0xe4, 0x5b, 0x20,
- 0xe, 0xb8, 0x5a, 0x43, 0xd0, 0xe7, 0x40, 0x0,
- 0x2, 0x1, 0x33, 0x0, 0x35, 0xe4, 0x30, 0x0,
- 0x4, 0x19, 0xd, 0x10, 0x83, 0xe0, 0xa0, 0x0,
- 0xa, 0xb, 0x37, 0x7b, 0x20, 0xe0, 0x4c, 0x10,
- 0x4d, 0x6, 0x20, 0x81, 0x0, 0xe0, 0x8, 0xb1,
- 0x12, 0x0, 0x0, 0x0, 0x6d, 0xd0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x3, 0x20, 0x0, 0x0,
-
- /* U+7DD2 "緒" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x7, 0x20, 0x0, 0x6, 0x60, 0x0, 0x0,
- 0x0, 0xc, 0x10, 0x0, 0x6, 0x60, 0x9, 0x20,
- 0x0, 0x73, 0x0, 0x5, 0x69, 0x9b, 0x7b, 0x0,
- 0x2, 0x70, 0x58, 0x2, 0x5, 0x60, 0xc2, 0x0,
- 0x1d, 0x66, 0xc2, 0x0, 0x5, 0x66, 0x80, 0x10,
- 0x9, 0x48, 0x50, 0x76, 0x68, 0xae, 0x67, 0xc1,
- 0x0, 0x37, 0x23, 0x0, 0x2, 0xb1, 0x0, 0x0,
- 0x3, 0x90, 0xc, 0x10, 0x3b, 0x10, 0x4, 0x0,
- 0xe, 0xb8, 0x7b, 0x55, 0xc6, 0x66, 0x6d, 0x0,
- 0x4, 0x10, 0x2, 0x67, 0xa0, 0x0, 0xb, 0x0,
- 0x3, 0x5, 0x38, 0x1, 0xc6, 0x66, 0x6b, 0x0,
- 0x9, 0xc, 0xd, 0x21, 0xa0, 0x0, 0xb, 0x0,
- 0x1d, 0xb, 0x36, 0x22, 0xa0, 0x0, 0xb, 0x0,
- 0x35, 0x2, 0x0, 0x2, 0xc6, 0x66, 0x6b, 0x0,
- 0x0, 0x0, 0x0, 0x1, 0x20, 0x0, 0x2, 0x0,
-
- /* U+7DDA "線" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x5, 0x0, 0x0, 0x4, 0xa0, 0x0, 0x0,
- 0x0, 0xd, 0x20, 0x2, 0x9, 0x10, 0x4, 0x0,
- 0x0, 0x74, 0x0, 0xd, 0x66, 0x66, 0x6e, 0x0,
- 0x2, 0x80, 0x44, 0xd, 0x0, 0x0, 0xd, 0x0,
- 0x1c, 0x44, 0xc3, 0xd, 0x66, 0x66, 0x6d, 0x0,
- 0xa, 0x59, 0x50, 0xd, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0x38, 0x40, 0xd, 0x66, 0xa6, 0x6c, 0x0,
- 0x2, 0x90, 0x48, 0x2, 0x0, 0xf0, 0x1, 0x10,
- 0x1e, 0xa8, 0x7e, 0x57, 0x95, 0xd5, 0xb, 0x70,
- 0x6, 0x20, 0x23, 0x0, 0xc5, 0xd8, 0x82, 0x0,
- 0x4, 0x25, 0x49, 0x3, 0x90, 0xd4, 0x70, 0x0,
- 0xa, 0xd, 0xd, 0xa, 0x10, 0xd0, 0xb4, 0x0,
- 0x79, 0xb, 0x1, 0x82, 0x0, 0xd0, 0x1e, 0x90,
- 0x31, 0x0, 0x15, 0x11, 0x7c, 0xc0, 0x3, 0x10,
- 0x0, 0x0, 0x0, 0x0, 0x5, 0x20, 0x0, 0x0,
-
- /* U+7DE0 "締" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x5, 0x10, 0x0, 0x8, 0x70, 0x0, 0x0,
- 0x0, 0xd, 0x20, 0x0, 0x0, 0xc2, 0x5, 0x10,
- 0x0, 0x65, 0x0, 0x57, 0x66, 0x66, 0x77, 0x50,
- 0x1, 0x80, 0x46, 0x0, 0xa3, 0x3, 0xd0, 0x0,
- 0xb, 0x44, 0xb4, 0x0, 0x49, 0x8, 0x20, 0x0,
- 0xa, 0x58, 0x60, 0x76, 0x66, 0x68, 0x66, 0xe2,
- 0x0, 0x28, 0x23, 0xe0, 0x0, 0xb0, 0x4, 0x30,
- 0x2, 0xa0, 0xb, 0x20, 0x0, 0xc0, 0x1, 0x0,
- 0xe, 0xa8, 0x7c, 0x2a, 0x66, 0xd6, 0x6d, 0x10,
- 0x6, 0x30, 0x13, 0xc, 0x0, 0xc0, 0xc, 0x0,
- 0x2, 0x22, 0x38, 0xc, 0x0, 0xc0, 0xc, 0x0,
- 0x8, 0xc, 0xc, 0x3c, 0x0, 0xc2, 0x3b, 0x0,
- 0x2c, 0xc, 0x23, 0x9, 0x0, 0xc1, 0xa6, 0x0,
- 0x45, 0x1, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x30, 0x0, 0x0,
-
- /* U+7DE9 "緩" */
- 0x0, 0x5, 0x20, 0x0, 0x0, 0x14, 0x8b, 0x10,
- 0x0, 0xd, 0x40, 0x25, 0x68, 0x75, 0x63, 0x10,
- 0x0, 0x58, 0x0, 0x6, 0x5, 0x60, 0x98, 0x0,
- 0x1, 0x90, 0x47, 0x6, 0x70, 0xa0, 0xa0, 0x0,
- 0xb, 0x55, 0xc4, 0x27, 0x76, 0x67, 0x7c, 0x30,
- 0x7, 0x48, 0x60, 0x0, 0xd, 0x0, 0x0, 0x0,
- 0x0, 0x38, 0x24, 0x56, 0x6d, 0x66, 0x67, 0xc1,
- 0x3, 0x80, 0x1d, 0x31, 0x68, 0x0, 0x0, 0x0,
- 0xe, 0xc9, 0x5a, 0x40, 0xa8, 0x66, 0x78, 0x0,
- 0x2, 0x0, 0x11, 0x1, 0xc8, 0x0, 0xc5, 0x0,
- 0x5, 0x8, 0x2a, 0x8, 0x42, 0x88, 0x80, 0x0,
- 0xb, 0xb, 0x3c, 0x58, 0x0, 0xac, 0x0, 0x0,
- 0x5b, 0x6, 0x24, 0x70, 0x7, 0x9a, 0xa1, 0x0,
- 0x0, 0x0, 0x3, 0x2, 0x84, 0x0, 0x7f, 0xb2,
- 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x1, 0x20,
-
- /* U+7DF4 "練" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x6, 0x40, 0x0, 0x0, 0xb0, 0x0, 0x0,
- 0x0, 0xc, 0x20, 0x0, 0x0, 0xc0, 0x0, 0x20,
- 0x0, 0x55, 0x0, 0x57, 0x66, 0xd6, 0x67, 0x80,
- 0x1, 0x80, 0x39, 0x0, 0x0, 0xc0, 0x0, 0x0,
- 0xc, 0x76, 0xb3, 0xb, 0x66, 0xd6, 0x6d, 0x20,
- 0x7, 0x36, 0x60, 0xc, 0x50, 0xc1, 0x9c, 0x0,
- 0x0, 0x28, 0x14, 0xc, 0x49, 0xc6, 0x4c, 0x0,
- 0x1, 0xa0, 0xb, 0x1c, 0x4, 0xc4, 0xc, 0x0,
- 0xd, 0xb9, 0x7b, 0x5c, 0x6c, 0xe9, 0x6b, 0x0,
- 0x4, 0x20, 0x3, 0x1, 0x2c, 0xc7, 0x0, 0x0,
- 0x2, 0x5, 0xb, 0x10, 0xa3, 0xc2, 0x70, 0x0,
- 0x7, 0x18, 0x47, 0x75, 0x60, 0xc0, 0x96, 0x0,
- 0xd, 0x6, 0x81, 0x56, 0x0, 0xc0, 0xc, 0xb2,
- 0x19, 0x0, 0x2, 0x40, 0x0, 0xd0, 0x1, 0x30,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x30, 0x0, 0x0,
-
- /* U+7E3D "總" */
- 0x0, 0x5, 0x30, 0x0, 0x1, 0xc0, 0x0, 0x0,
- 0x0, 0xc2, 0x0, 0x30, 0x64, 0x0, 0x40, 0x0,
- 0x65, 0x0, 0xc, 0x56, 0xa5, 0x5e, 0x20, 0x18,
- 0x3, 0x90, 0xc0, 0x9b, 0x68, 0xd0, 0xd, 0x87,
- 0xc2, 0xc, 0x36, 0x6, 0x8d, 0x0, 0x62, 0x65,
- 0x0, 0xc3, 0x39, 0xc0, 0xd0, 0x0, 0x29, 0x14,
- 0xc, 0x2, 0xac, 0x6d, 0x0, 0x1a, 0x0, 0xb1,
- 0xc3, 0x50, 0x5, 0xd0, 0xd, 0xa8, 0x7b, 0x5b,
- 0x78, 0x77, 0x7b, 0x0, 0x42, 0x1, 0x21, 0x7,
- 0x1b, 0x10, 0x20, 0x2, 0x22, 0x93, 0x41, 0xc0,
- 0x69, 0x9, 0x60, 0x70, 0xc3, 0x9b, 0xc, 0x0,
- 0x24, 0x1e, 0xd, 0xb, 0x5, 0xc0, 0xc0, 0x0,
- 0x62, 0x14, 0x80, 0x0, 0x0, 0xd, 0xcc, 0xce,
- 0x60,
-
- /* U+7E3E "績" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x5, 0x40, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0xb, 0x20, 0x36, 0x66, 0xe6, 0x6d, 0x50,
- 0x0, 0x46, 0x0, 0x11, 0x0, 0xd0, 0x12, 0x0,
- 0x0, 0x90, 0x28, 0x5, 0x76, 0xe6, 0x78, 0x0,
- 0xa, 0x75, 0xa4, 0x22, 0x22, 0xd2, 0x25, 0x90,
- 0x7, 0x56, 0x70, 0x56, 0x44, 0x44, 0x46, 0x41,
- 0x0, 0x19, 0x13, 0xe, 0x66, 0x66, 0x6e, 0x30,
- 0x1, 0xa1, 0xb, 0x1d, 0x66, 0x66, 0x6e, 0x0,
- 0xb, 0xc9, 0x8b, 0x5d, 0x0, 0x0, 0xd, 0x0,
- 0x4, 0x30, 0x2, 0xe, 0x66, 0x66, 0x6e, 0x0,
- 0x1, 0x15, 0xa, 0xe, 0x66, 0x66, 0x6e, 0x0,
- 0x6, 0x2a, 0x38, 0x66, 0x22, 0x2, 0x6, 0x0,
- 0xd, 0x17, 0x61, 0x11, 0xd7, 0x2, 0xa7, 0x0,
- 0x6, 0x0, 0x0, 0x2a, 0x30, 0x0, 0xa, 0xb0,
- 0x0, 0x0, 0x1, 0x30, 0x0, 0x0, 0x0, 0x40,
-
- /* U+7E54 "織" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x6, 0x0, 0x6, 0x50, 0x9, 0x10, 0x0,
- 0x0, 0x49, 0x0, 0x0, 0xa3, 0x2b, 0x20, 0x0,
- 0x0, 0x90, 0x1, 0x96, 0x68, 0x4b, 0xb, 0x0,
- 0x5, 0x30, 0x90, 0x73, 0xc, 0x2b, 0x8, 0x20,
- 0x3b, 0x57, 0x90, 0x39, 0x26, 0xb, 0x0, 0x0,
- 0x18, 0x3b, 0x4, 0x66, 0x96, 0x6c, 0x68, 0xb0,
- 0x0, 0x82, 0x51, 0x30, 0x2, 0xa, 0x3, 0x0,
- 0x6, 0x50, 0x85, 0xc6, 0x6d, 0x1a, 0xe, 0x10,
- 0x3e, 0xa7, 0x79, 0xc0, 0xc, 0x9, 0x78, 0x0,
- 0x5, 0x0, 0x11, 0xc6, 0x6c, 0x7, 0xe1, 0x0,
- 0x2, 0x31, 0xa3, 0xc0, 0xc, 0x6, 0xb0, 0x20,
- 0x9, 0x39, 0x59, 0xc0, 0xc, 0xb, 0xd0, 0x60,
- 0x5b, 0xd, 0x1, 0xc6, 0x6b, 0x72, 0x6a, 0x90,
- 0x43, 0x0, 0x0, 0x40, 0x6, 0x20, 0x8, 0xb0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10,
-
- /* U+7E70 "繰" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x9, 0x20, 0x2, 0x96, 0x66, 0x90, 0x0,
- 0x0, 0x2b, 0x0, 0x2, 0xc0, 0x0, 0xb0, 0x0,
- 0x0, 0x91, 0x0, 0x2, 0xc0, 0x0, 0xa0, 0x0,
- 0x4, 0x50, 0x74, 0x2, 0xa6, 0x66, 0x70, 0x0,
- 0x1e, 0x86, 0xc0, 0x66, 0x69, 0x8, 0x69, 0x20,
- 0x5, 0xa, 0x20, 0x92, 0xc, 0xc, 0xb, 0x10,
- 0x0, 0x65, 0x43, 0x97, 0x6c, 0xd, 0x6c, 0x10,
- 0x5, 0x80, 0x2d, 0x71, 0x5, 0x28, 0x5, 0x0,
- 0xf, 0xb9, 0x6c, 0x10, 0x0, 0xd0, 0x7, 0x30,
- 0x4, 0x0, 0x11, 0x47, 0x6c, 0xe7, 0x66, 0x60,
- 0x2, 0x32, 0x47, 0x0, 0x59, 0xb8, 0x0, 0x0,
- 0x9, 0xd, 0xd, 0x3, 0x90, 0xb3, 0xb1, 0x0,
- 0x59, 0xc, 0x12, 0x57, 0x0, 0xc0, 0x7e, 0x71,
- 0x42, 0x0, 0x5, 0x20, 0x0, 0xc0, 0x7, 0x20,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0,
-
- /* U+7E7C "繼" */
- 0x0, 0x7, 0x0, 0x50, 0x20, 0x0, 0x10, 0x0,
- 0x0, 0x2c, 0x0, 0xc1, 0xb2, 0x0, 0xb1, 0x0,
- 0x0, 0x92, 0x0, 0xc6, 0x36, 0x87, 0x29, 0x40,
- 0x4, 0x50, 0x83, 0xc9, 0x8a, 0xa, 0x88, 0x0,
- 0x1d, 0x76, 0xb0, 0xc1, 0x84, 0x11, 0x83, 0x10,
- 0x7, 0x19, 0x10, 0xca, 0x86, 0x9c, 0x74, 0xa0,
- 0x0, 0x74, 0x51, 0xc1, 0x0, 0x12, 0x5, 0x30,
- 0x6, 0x60, 0x4b, 0xc6, 0x76, 0x66, 0x88, 0x40,
- 0x1f, 0xb8, 0x4c, 0xc0, 0xa3, 0x0, 0xa2, 0x0,
- 0x3, 0x0, 0x0, 0xc5, 0x45, 0x76, 0x37, 0x50,
- 0x3, 0x31, 0x81, 0xc7, 0x7a, 0xa, 0x98, 0x0,
- 0x9, 0x29, 0x4a, 0xc0, 0x83, 0x3, 0x72, 0x60,
- 0x4b, 0xd, 0x5, 0xc9, 0x86, 0x8c, 0x75, 0x90,
- 0x42, 0x0, 0x0, 0xe6, 0x66, 0x86, 0x6b, 0xb0,
- 0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0,
-
- /* U+7E8C "續" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2, 0x10, 0x0, 0x0, 0xc1, 0x1, 0x0,
- 0x0, 0x9, 0x70, 0x47, 0x66, 0xd6, 0x69, 0x80,
- 0x0, 0x1a, 0x0, 0x3, 0x44, 0xd4, 0x59, 0x0,
- 0x0, 0x91, 0x6, 0x4, 0x32, 0x22, 0x25, 0x0,
- 0x7, 0x62, 0x79, 0xd, 0x6c, 0x6c, 0x6c, 0x40,
- 0xa, 0x87, 0xb0, 0xc, 0xb, 0xb, 0xa, 0x10,
- 0x0, 0xa, 0x13, 0xc, 0x68, 0x68, 0x6a, 0x10,
- 0x0, 0x93, 0xa, 0x16, 0x76, 0x66, 0x6a, 0x0,
- 0xa, 0xa8, 0x8b, 0x77, 0x60, 0x0, 0x1a, 0x0,
- 0x5, 0x61, 0x2, 0x27, 0x96, 0x66, 0x7a, 0x0,
- 0x1, 0x12, 0x24, 0x7, 0x95, 0x55, 0x6a, 0x0,
- 0x7, 0xb, 0xc, 0x27, 0x96, 0x66, 0x7a, 0x0,
- 0xd, 0xa, 0x46, 0x33, 0x8b, 0x2, 0x86, 0x0,
- 0x29, 0x2, 0x0, 0x39, 0x60, 0x0, 0x9, 0xc0,
- 0x0, 0x0, 0x2, 0x30, 0x0, 0x0, 0x0, 0x50,
-
- /* U+7EDF "统" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc3, 0x0, 0x4, 0x80, 0x0, 0x0, 0x0,
- 0x4c, 0x0, 0x0, 0xc, 0x40, 0x1, 0x0, 0xb,
- 0x10, 0x17, 0x66, 0x96, 0x6a, 0xb0, 0x6, 0x50,
- 0x5a, 0x0, 0x6a, 0x0, 0x0, 0x4, 0xa3, 0x4d,
- 0x30, 0x19, 0x2, 0x0, 0x0, 0x59, 0x4a, 0x40,
- 0x8, 0x0, 0xb, 0x70, 0x0, 0x7, 0x60, 0xb,
- 0x98, 0x8b, 0x6d, 0x70, 0x6, 0x70, 0x1, 0x75,
- 0xf0, 0xd0, 0x24, 0x4, 0xfb, 0x86, 0x20, 0x1d,
- 0xd, 0x0, 0x0, 0x6, 0x0, 0x0, 0x2, 0xb0,
- 0xd0, 0x0, 0x0, 0x0, 0x3, 0x50, 0x58, 0xd,
- 0x0, 0x0, 0x49, 0xb8, 0x30, 0xb, 0x30, 0xd0,
- 0x6, 0x4, 0x70, 0x0, 0x7, 0x90, 0xc, 0x0,
- 0x90, 0x0, 0x0, 0x18, 0x50, 0x0, 0x8d, 0xcd,
- 0x20, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+7F3A "缺" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa, 0x30, 0x0, 0x0, 0xd2, 0x0, 0x0,
- 0x0, 0x1d, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0x56, 0x0, 0x60, 0x0, 0xd0, 0x3, 0x0,
- 0x0, 0xa6, 0xc6, 0x74, 0x77, 0xe6, 0x6d, 0x0,
- 0x2, 0x50, 0xc0, 0x0, 0x0, 0xd0, 0x1b, 0x0,
- 0x3, 0x0, 0xc0, 0x2, 0x0, 0xc0, 0x1b, 0x0,
- 0x7, 0x66, 0xd6, 0x8b, 0x10, 0xc0, 0x1b, 0x0,
- 0x0, 0x10, 0xc0, 0x14, 0x76, 0xd6, 0x6b, 0xa6,
- 0x0, 0xd0, 0xc0, 0xa3, 0x4, 0x86, 0x0, 0x0,
- 0x0, 0xc0, 0xc0, 0xb1, 0x9, 0x46, 0x10, 0x0,
- 0x0, 0xc0, 0xc0, 0xb1, 0xc, 0x1, 0x90, 0x0,
- 0x1, 0xd8, 0xb6, 0xc1, 0x84, 0x0, 0xa4, 0x0,
- 0x0, 0xa2, 0x0, 0x36, 0x70, 0x0, 0x2e, 0x50,
- 0x0, 0x0, 0x0, 0x65, 0x0, 0x0, 0x5, 0xd4,
- 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+7F6E "置" */
- 0x0, 0x28, 0x77, 0x77, 0x77, 0x77, 0x98, 0x0,
- 0x0, 0x2b, 0x0, 0xe0, 0xc, 0x10, 0x78, 0x0,
- 0x0, 0x2b, 0x0, 0xe0, 0xc, 0x10, 0x78, 0x0,
- 0x0, 0x3d, 0x77, 0x99, 0x79, 0x77, 0xa7, 0x0,
- 0x0, 0x0, 0x0, 0x9, 0x60, 0x0, 0x54, 0x0,
- 0x0, 0x78, 0x77, 0x7d, 0x77, 0x77, 0x76, 0x0,
- 0x0, 0x0, 0xa7, 0x7d, 0x77, 0x7d, 0x30, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0x0, 0xf7, 0x77, 0x77, 0x7e, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0x0, 0xf7, 0x77, 0x77, 0x7e, 0x0, 0x0,
- 0x0, 0x0, 0xf7, 0x77, 0x77, 0x7e, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0xe, 0x0, 0x10,
- 0x6, 0x77, 0xf7, 0x77, 0x77, 0x7e, 0x7b, 0xd1,
- 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+7F8E "美" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x5, 0x50, 0x0, 0x88, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x50, 0xb, 0x10, 0x10, 0x0, 0x27,
- 0x66, 0xa7, 0x68, 0x76, 0x6e, 0x50, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x3, 0x66,
- 0x66, 0xe6, 0x66, 0xb8, 0x0, 0x0, 0x2, 0x0,
- 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xd0, 0x0, 0x0, 0xb1, 0x18, 0x66, 0x66, 0x6b,
- 0x66, 0x66, 0x66, 0x30, 0x0, 0x0, 0x0, 0xf2,
- 0x0, 0x4, 0x0, 0x4, 0x76, 0x66, 0x8c, 0x86,
- 0x66, 0x94, 0x0, 0x0, 0x0, 0xb, 0x47, 0x10,
- 0x0, 0x0, 0x0, 0x0, 0x4, 0xb0, 0xa, 0x30,
- 0x0, 0x0, 0x0, 0x4, 0xb1, 0x0, 0x1b, 0x93,
- 0x0, 0x0, 0x48, 0x60, 0x0, 0x0, 0x7, 0xef,
- 0x71, 0x42, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40,
-
- /* U+7FA9 "義" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa, 0x30, 0x1, 0xd1, 0x0, 0x0,
- 0x0, 0x0, 0x4, 0x90, 0x7, 0x30, 0x73, 0x0,
- 0x0, 0x66, 0x66, 0x6b, 0x76, 0x66, 0x76, 0x0,
- 0x0, 0x5, 0x66, 0x6c, 0x76, 0x69, 0xb0, 0x0,
- 0x0, 0x1, 0x0, 0xa, 0x20, 0x0, 0x5, 0x0,
- 0x3, 0x76, 0x66, 0x69, 0x66, 0x66, 0x7b, 0x30,
- 0x0, 0x0, 0x0, 0x48, 0x1b, 0x27, 0x20, 0x0,
- 0x0, 0x45, 0x7d, 0x86, 0x1e, 0x2, 0xe1, 0x0,
- 0x0, 0x0, 0xc, 0x0, 0xc, 0x10, 0x27, 0x40,
- 0x8, 0x66, 0x6d, 0x66, 0x6b, 0x96, 0x76, 0x50,
- 0x0, 0x0, 0xc, 0x4, 0x6, 0x70, 0xa9, 0x0,
- 0x3, 0x57, 0xae, 0x61, 0x2, 0xc6, 0xc1, 0x0,
- 0x4, 0xa4, 0xc, 0x0, 0x0, 0xdb, 0x0, 0x50,
- 0x0, 0x3, 0x2c, 0x0, 0x4a, 0x7c, 0x51, 0x80,
- 0x0, 0x2, 0xbb, 0x26, 0x30, 0x1, 0x8d, 0xf0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+7FD2 "習" */
- 0x26, 0x66, 0x6b, 0x14, 0x66, 0x69, 0x70, 0x40,
- 0x0, 0xe0, 0x32, 0x0, 0x86, 0x3, 0xd3, 0xd,
- 0x1, 0xc7, 0x8, 0x60, 0x5, 0x40, 0xd0, 0x1,
- 0x60, 0x86, 0x0, 0x16, 0x5d, 0x0, 0x27, 0x8a,
- 0x64, 0xa8, 0x0, 0xe0, 0x8d, 0x40, 0x85, 0x44,
- 0x0, 0x2, 0xc4, 0x0, 0x0, 0x0, 0x2, 0x0,
- 0x46, 0x0, 0x0, 0x30, 0x0, 0xc6, 0x66, 0x66,
- 0x66, 0x8d, 0x0, 0xc, 0x10, 0x0, 0x0, 0x3,
- 0xb0, 0x0, 0xc6, 0x66, 0x66, 0x66, 0x7b, 0x0,
- 0xc, 0x10, 0x0, 0x0, 0x3, 0xb0, 0x0, 0xc1,
- 0x0, 0x0, 0x0, 0x3b, 0x0, 0xd, 0x66, 0x66,
- 0x66, 0x67, 0xb0, 0x0, 0x40, 0x0, 0x0, 0x0,
- 0x12, 0x0,
-
- /* U+8001 "老" */
- 0x0, 0x0, 0x0, 0x4a, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x4a, 0x0, 0x2, 0xb1, 0x0,
- 0x0, 0x0, 0x0, 0x4a, 0x12, 0x89, 0xb1, 0x0,
- 0x0, 0x27, 0x66, 0x8c, 0x55, 0x8d, 0x10, 0x0,
- 0x0, 0x0, 0x0, 0x4a, 0x1, 0xd2, 0x0, 0x0,
- 0x5, 0x66, 0x66, 0x8c, 0x6c, 0xa6, 0x6d, 0x80,
- 0x2, 0x0, 0x0, 0x0, 0xb6, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x2c, 0x40, 0x1, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0xb1, 0x0, 0xad, 0x0, 0x0,
- 0x0, 0x4, 0xbe, 0x10, 0x4c, 0x71, 0x0, 0x0,
- 0x4, 0x86, 0xd, 0x58, 0x50, 0x0, 0x40, 0x0,
- 0x12, 0x0, 0xd, 0x30, 0x0, 0x0, 0x60, 0x0,
- 0x0, 0x0, 0xd, 0x20, 0x0, 0x0, 0x95, 0x0,
- 0x0, 0x0, 0x8, 0xed, 0xdd, 0xdd, 0xf8, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+8003 "考" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x20, 0x0, 0x20, 0x0,
- 0x0, 0x0, 0x0, 0xe, 0x0, 0x6, 0xd0, 0x0,
- 0x0, 0x5, 0x66, 0x6e, 0x6c, 0x6d, 0x20, 0x0,
- 0x0, 0x0, 0x0, 0xe, 0x1, 0xc2, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe, 0x1c, 0x30, 0x1, 0x80,
- 0x7, 0x66, 0x66, 0x67, 0xe6, 0x66, 0x66, 0x62,
- 0x0, 0x0, 0x0, 0x2c, 0x20, 0x0, 0x11, 0x0,
- 0x0, 0x0, 0x5, 0xb9, 0x86, 0x66, 0x99, 0x0,
- 0x0, 0x1, 0x95, 0x6, 0x70, 0x0, 0x0, 0x0,
- 0x1, 0x56, 0x0, 0xd, 0x76, 0x66, 0xb3, 0x0,
- 0x2, 0x0, 0x0, 0x3, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xb0, 0x0,
- 0x0, 0x0, 0x0, 0x1, 0x0, 0x6, 0x70, 0x0,
- 0x0, 0x0, 0x0, 0x1, 0x6b, 0xae, 0x20, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x3, 0x72, 0x0, 0x0,
-
- /* U+8005 "者" */
- 0x0, 0x0, 0x0, 0x19, 0x10, 0x0, 0x10, 0x0,
- 0x0, 0x0, 0x0, 0x1c, 0x1, 0x5, 0xd0, 0x0,
- 0x0, 0x6, 0x66, 0x6d, 0x7e, 0x4e, 0x30, 0x0,
- 0x0, 0x0, 0x0, 0x1c, 0x0, 0xc5, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1c, 0xa, 0x60, 0x4, 0x40,
- 0x6, 0x76, 0x66, 0x68, 0xc9, 0x66, 0x68, 0x80,
- 0x0, 0x0, 0x0, 0xa, 0x50, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa, 0xd8, 0x66, 0x6c, 0x30, 0x0,
- 0x0, 0x0, 0x7e, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0x29, 0x4e, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x5, 0x40, 0xe, 0x66, 0x66, 0x6e, 0x0, 0x0,
- 0x0, 0x0, 0xe, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0x0, 0xe, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0x0, 0xe, 0x66, 0x66, 0x6e, 0x0, 0x0,
- 0x0, 0x0, 0x5, 0x0, 0x0, 0x3, 0x0, 0x0,
-
- /* U+800C "而" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x2,
- 0x86, 0x66, 0x66, 0x87, 0x66, 0x67, 0xc4, 0x0,
- 0x0, 0x0, 0xd, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x3, 0x70, 0x0, 0x0, 0x0, 0x0, 0x86,
- 0x66, 0x96, 0x66, 0x66, 0xb3, 0x0, 0xb, 0x20,
- 0x3a, 0x0, 0xd0, 0xe, 0x10, 0x0, 0xb2, 0x3,
- 0xa0, 0xd, 0x0, 0xe0, 0x0, 0xb, 0x20, 0x3a,
- 0x0, 0xd0, 0xe, 0x0, 0x0, 0xb2, 0x3, 0xa0,
- 0xd, 0x0, 0xe0, 0x0, 0xb, 0x20, 0x3a, 0x0,
- 0xd0, 0xe, 0x0, 0x0, 0xb2, 0x3, 0xa0, 0xd,
- 0x0, 0xe0, 0x0, 0xb, 0x20, 0x3a, 0x0, 0xd0,
- 0xe, 0x0, 0x0, 0xc2, 0x3, 0xa0, 0xd, 0x10,
- 0xe0, 0x0, 0xb, 0x10, 0x12, 0x0, 0x35, 0xec,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0,
- 0x0,
-
- /* U+8033 "耳" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x10,
- 0x4, 0x76, 0xf6, 0x66, 0x66, 0xe6, 0x66, 0x30,
- 0x0, 0x0, 0xf0, 0x0, 0x0, 0xd1, 0x0, 0x0,
- 0x0, 0x0, 0xf0, 0x0, 0x0, 0xd1, 0x0, 0x0,
- 0x0, 0x0, 0xf6, 0x66, 0x66, 0xe1, 0x0, 0x0,
- 0x0, 0x0, 0xf0, 0x0, 0x0, 0xd1, 0x0, 0x0,
- 0x0, 0x0, 0xf0, 0x0, 0x0, 0xd1, 0x0, 0x0,
- 0x0, 0x0, 0xf6, 0x66, 0x66, 0xe1, 0x0, 0x0,
- 0x0, 0x0, 0xf0, 0x0, 0x0, 0xd1, 0x0, 0x0,
- 0x0, 0x0, 0xf0, 0x0, 0x0, 0xd1, 0x17, 0x90,
- 0x2, 0x45, 0xe5, 0x55, 0x55, 0xe6, 0x43, 0x10,
- 0x4, 0x20, 0x0, 0x0, 0x0, 0xe1, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xe1, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xe1, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0,
-
- /* U+805E "聞" */
- 0x19, 0x66, 0x68, 0x80, 0x96, 0x66, 0x7a, 0x0,
- 0xc0, 0x0, 0x57, 0xd, 0x0, 0x2, 0xb0, 0xd,
- 0x66, 0x69, 0x70, 0xd6, 0x66, 0x7b, 0x0, 0xc0,
- 0x0, 0x57, 0xd, 0x0, 0x2, 0xb0, 0xd, 0x66,
- 0x69, 0x60, 0xd6, 0x66, 0x7b, 0x0, 0xc0, 0x0,
- 0x0, 0x0, 0x2, 0x2, 0xb0, 0xc, 0x6, 0x69,
- 0x66, 0x78, 0xa6, 0x2b, 0x0, 0xc0, 0x1, 0xc0,
- 0x5, 0x80, 0x2, 0xb0, 0xc, 0x0, 0x1d, 0x66,
- 0x98, 0x0, 0x2b, 0x0, 0xc0, 0x1, 0xd6, 0x69,
- 0x80, 0x2, 0xb0, 0xc, 0x0, 0x1c, 0x0, 0x58,
- 0x3, 0x2b, 0x0, 0xc2, 0x35, 0xd5, 0x59, 0xb6,
- 0xa5, 0xb0, 0xc, 0x12, 0x10, 0x0, 0x58, 0x12,
- 0x3a, 0x1, 0xc0, 0x0, 0x0, 0x4, 0x50, 0x6f,
- 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20,
- 0x0,
-
- /* U+806F "聯" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x20, 0xc5, 0x0, 0x56, 0x0,
- 0x7, 0xa6, 0x6b, 0x95, 0x90, 0x10, 0xa0, 0x0,
- 0x0, 0xd0, 0xd, 0x18, 0x8, 0x85, 0x31, 0xd1,
- 0x0, 0xd0, 0xd, 0x7a, 0xa8, 0xd, 0x7b, 0x30,
- 0x0, 0xd6, 0x6d, 0x2, 0x75, 0x2, 0x53, 0x50,
- 0x0, 0xd0, 0xd, 0x27, 0x19, 0x46, 0x63, 0xc2,
- 0x0, 0xd0, 0xd, 0x7a, 0x55, 0x56, 0x73, 0x62,
- 0x0, 0xd6, 0x6d, 0x0, 0x2, 0x90, 0xb0, 0x0,
- 0x0, 0xd0, 0xd, 0xb, 0x21, 0xa0, 0xc0, 0xb0,
- 0x0, 0xd0, 0xd, 0x3c, 0x1, 0xa0, 0xc0, 0xc0,
- 0x16, 0xea, 0x8d, 0xc, 0x57, 0xa0, 0xc0, 0xc0,
- 0xb, 0x50, 0xd, 0x7, 0x44, 0x80, 0xd6, 0x90,
- 0x0, 0x0, 0xd, 0x0, 0xa, 0x20, 0xc0, 0x0,
- 0x0, 0x0, 0xe, 0x3, 0x84, 0x0, 0xc0, 0x0,
- 0x0, 0x0, 0x3, 0x33, 0x0, 0x0, 0x40, 0x0,
-
- /* U+8072 "聲" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb1, 0x1, 0x6, 0x33, 0x70, 0x0,
- 0x6, 0x76, 0xd6, 0x7a, 0x1b, 0x33, 0xc0, 0x0,
- 0x1, 0x33, 0xc3, 0x61, 0x37, 0x0, 0xd7, 0x91,
- 0x0, 0x73, 0x33, 0x53, 0x82, 0x22, 0x56, 0x30,
- 0x0, 0xd6, 0xc6, 0xd3, 0x29, 0x44, 0xc5, 0x0,
- 0x0, 0xc0, 0xc0, 0xb0, 0x1, 0x9a, 0x50, 0x0,
- 0x1, 0xc6, 0x66, 0x60, 0x4, 0x7a, 0x83, 0x10,
- 0x5, 0x50, 0x0, 0x3, 0x41, 0x0, 0x8a, 0x90,
- 0x7, 0x37, 0xa8, 0x66, 0x66, 0x6d, 0x64, 0x0,
- 0x0, 0x0, 0x88, 0x66, 0x66, 0x6c, 0x0, 0x0,
- 0x0, 0x0, 0x84, 0x0, 0x0, 0x1c, 0x0, 0x0,
- 0x0, 0x0, 0x88, 0x66, 0x66, 0x6c, 0x2, 0x40,
- 0x2, 0x45, 0xa8, 0x66, 0x66, 0x6d, 0x57, 0x80,
- 0x1, 0x10, 0x0, 0x0, 0x0, 0x1d, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x15, 0x0, 0x0,
-
- /* U+8077 "職" */
- 0x0, 0x0, 0x0, 0x40, 0x80, 0x4, 0x50, 0x0,
- 0x7, 0xb6, 0x6b, 0x83, 0x75, 0x45, 0x82, 0x0,
- 0x0, 0xc0, 0xc, 0x37, 0x66, 0x86, 0x88, 0x40,
- 0x0, 0xc0, 0xc, 0x7, 0x2, 0xc4, 0x82, 0xa0,
- 0x0, 0xd6, 0x6c, 0x7, 0x56, 0x24, 0x80, 0x0,
- 0x0, 0xc0, 0xc, 0x57, 0x79, 0x68, 0xb8, 0xb0,
- 0x0, 0xc0, 0xc, 0x12, 0x0, 0x13, 0x83, 0x50,
- 0x0, 0xd6, 0x6c, 0xd, 0x69, 0x92, 0x98, 0x70,
- 0x0, 0xc0, 0xc, 0xc, 0x5, 0x70, 0xab, 0x0,
- 0x0, 0xc0, 0xc, 0x1d, 0x69, 0x70, 0xca, 0x0,
- 0x4, 0xd9, 0x7d, 0x2c, 0x5, 0x70, 0xb4, 0x2,
- 0x9, 0x50, 0xc, 0xd, 0x69, 0x73, 0xa9, 0x32,
- 0x0, 0x0, 0xc, 0x8, 0x2, 0x38, 0xa, 0xc0,
- 0x0, 0x0, 0xc, 0x0, 0x1, 0x60, 0x1, 0xd1,
- 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0,
-
- /* U+807D "聽" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x40, 0x0, 0x4a, 0x0, 0x0,
- 0x7, 0xb6, 0x6a, 0xaa, 0x44, 0x98, 0x47, 0xa0,
- 0x0, 0xc6, 0x6b, 0x21, 0x10, 0x80, 0x1, 0x0,
- 0x0, 0xc0, 0x9, 0x22, 0x96, 0xa7, 0x7b, 0x60,
- 0x0, 0xc6, 0x6b, 0x21, 0xa1, 0xa5, 0x68, 0x40,
- 0x0, 0xc0, 0x9, 0x21, 0xa1, 0xa5, 0x68, 0x40,
- 0x7, 0xa6, 0x6b, 0x21, 0xa1, 0xa5, 0x68, 0x40,
- 0x0, 0x0, 0x49, 0x22, 0xb6, 0x66, 0x69, 0x20,
- 0x5, 0x8b, 0x59, 0x22, 0x22, 0x22, 0x25, 0x90,
- 0x0, 0x38, 0x39, 0x23, 0x53, 0x53, 0x33, 0x30,
- 0x4, 0x8b, 0x59, 0x20, 0x29, 0x4a, 0x4, 0x10,
- 0x0, 0x38, 0x9, 0x24, 0x4c, 0x8, 0x14, 0xd1,
- 0x8, 0x97, 0x39, 0x3e, 0xc, 0x0, 0x7, 0x71,
- 0x3, 0x0, 0xa, 0x32, 0xb, 0xbb, 0xbc, 0x0,
- 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+8089 "肉" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa6, 0x0, 0x0, 0x0, 0x10, 0x0, 0xa,
- 0x40, 0x0, 0x1, 0xd, 0x66, 0x66, 0xd7, 0x66,
- 0x67, 0xf1, 0xe1, 0x0, 0xe, 0x0, 0x0, 0x1d,
- 0xd, 0x10, 0x7, 0x99, 0x70, 0x1, 0xd0, 0xd1,
- 0x3, 0xa0, 0x8, 0xe2, 0x1d, 0xd, 0x14, 0x70,
- 0xa7, 0x9, 0x61, 0xd0, 0xd3, 0x20, 0xe, 0x20,
- 0x0, 0x1d, 0xd, 0x10, 0x6, 0xb7, 0x10, 0x1,
- 0xd0, 0xd1, 0x2, 0xc0, 0x1c, 0x80, 0x1d, 0xd,
- 0x12, 0xa1, 0x0, 0x1e, 0x41, 0xd0, 0xe3, 0x50,
- 0x0, 0x0, 0x31, 0x1d, 0xe, 0x10, 0x0, 0x0,
- 0x5, 0x68, 0xd0, 0xe1, 0x0, 0x0, 0x0, 0x4,
- 0xf7, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
-
- /* U+80A9 "肩" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x7, 0x80, 0x0, 0x0, 0x0, 0x3,
- 0x0, 0x0, 0xa0, 0x0, 0x14, 0x0, 0xe, 0x66,
- 0x66, 0x66, 0x66, 0x9a, 0x0, 0xe, 0x10, 0x0,
- 0x0, 0x0, 0x68, 0x0, 0xd, 0x66, 0x66, 0x66,
- 0x66, 0x98, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0,
- 0x20, 0x0, 0xd, 0xc, 0x66, 0x66, 0x66, 0xe3,
- 0x0, 0xd, 0xc, 0x10, 0x0, 0x0, 0xe0, 0x0,
- 0xd, 0xc, 0x66, 0x66, 0x66, 0xe0, 0x0, 0x2a,
- 0xc, 0x10, 0x0, 0x0, 0xe0, 0x0, 0x75, 0xc,
- 0x66, 0x66, 0x66, 0xe0, 0x0, 0xb0, 0xc, 0x10,
- 0x0, 0x0, 0xe0, 0x5, 0x40, 0xc, 0x10, 0x1,
- 0x10, 0xe0, 0x16, 0x0, 0xd, 0x10, 0x1, 0x7f,
- 0xc0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x2, 0x10,
-
- /* U+80AF "肯" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x3, 0x0, 0xe, 0x10, 0x0, 0x0, 0x0,
- 0x2, 0xf2, 0x0, 0xe0, 0x0, 0x70, 0x0, 0x0,
- 0x1e, 0x0, 0xf, 0x66, 0x67, 0x30, 0x0, 0x1,
- 0xe0, 0x0, 0xe0, 0x0, 0x5, 0x2, 0x86, 0x6a,
- 0x66, 0x6a, 0x66, 0x66, 0xa6, 0x0, 0x1, 0x0,
- 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0xa8, 0x66,
- 0x66, 0x66, 0xf4, 0x0, 0x0, 0xa, 0x40, 0x0,
- 0x0, 0xe, 0x0, 0x0, 0x0, 0xa8, 0x66, 0x66,
- 0x66, 0xf0, 0x0, 0x0, 0xa, 0x40, 0x0, 0x0,
- 0xe, 0x0, 0x0, 0x0, 0xa8, 0x66, 0x66, 0x66,
- 0xf0, 0x0, 0x0, 0xa, 0x40, 0x0, 0x0, 0xe,
- 0x0, 0x0, 0x0, 0xa4, 0x0, 0x0, 0x0, 0xe0,
- 0x0, 0x0, 0xb, 0x50, 0x0, 0x17, 0xee, 0x0,
- 0x0, 0x0, 0x40, 0x0, 0x0, 0x3, 0x20, 0x0,
-
- /* U+80B2 "育" */
- 0x0, 0x0, 0x0, 0x93, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x48, 0x0, 0x1, 0x90, 0x47, 0x66,
- 0x6d, 0xa6, 0x66, 0x66, 0x62, 0x0, 0x1, 0x98,
- 0x10, 0x16, 0x20, 0x0, 0x0, 0x7a, 0x43, 0x34,
- 0x46, 0xeb, 0x0, 0x0, 0x6a, 0x76, 0x43, 0x10,
- 0xc, 0x20, 0x0, 0xa, 0x66, 0x66, 0x66, 0xc2,
- 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0xe, 0x66, 0x66, 0x66, 0xe0, 0x0, 0x0,
- 0xe, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0xe,
- 0x66, 0x66, 0x66, 0xe0, 0x0, 0x0, 0xe, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x21, 0xe0, 0x0, 0x0, 0xe, 0x0, 0x0, 0x4c,
- 0xc0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x1, 0x0,
- 0x0,
-
- /* U+80CC "背" */
- 0x0, 0x0, 0x3, 0x90, 0xa, 0x10, 0x0, 0x0,
- 0x2, 0x66, 0x67, 0xb0, 0xe, 0x0, 0x8d, 0x0,
- 0x0, 0x10, 0x3, 0xb0, 0xe, 0x67, 0x51, 0x10,
- 0x0, 0x2, 0x57, 0xb0, 0xe, 0x0, 0x0, 0x60,
- 0xb, 0xc6, 0x23, 0xb0, 0xc, 0xca, 0xac, 0xd0,
- 0x0, 0x0, 0x2, 0x60, 0x0, 0x34, 0x33, 0x0,
- 0x0, 0x0, 0xb6, 0x66, 0x66, 0x6c, 0x80, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0xb, 0x40, 0x0,
- 0x0, 0x0, 0xf6, 0x66, 0x66, 0x6d, 0x30, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0xb, 0x30, 0x0,
- 0x0, 0x0, 0xf6, 0x66, 0x66, 0x6d, 0x30, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0xb, 0x30, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0xc, 0x30, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x16, 0xcf, 0x10, 0x0,
- 0x0, 0x0, 0x60, 0x0, 0x0, 0x23, 0x0, 0x0,
-
- /* U+80F8 "胸" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x20, 0x3, 0x0, 0xb2, 0x0, 0x0, 0x0,
- 0x0, 0xd6, 0x6e, 0x21, 0xc0, 0x0, 0x0, 0x0,
- 0x0, 0xd0, 0xd, 0x7, 0x96, 0x66, 0x66, 0xb0,
- 0x0, 0xd0, 0xd, 0xa, 0x0, 0x52, 0x0, 0xc0,
- 0x0, 0xd6, 0x6e, 0x42, 0x50, 0xc6, 0x0, 0xc0,
- 0x0, 0xd0, 0xd, 0x11, 0x44, 0xd0, 0x0, 0xc0,
- 0x0, 0xd0, 0xd, 0xc, 0x1c, 0x70, 0xc0, 0xc0,
- 0x0, 0xd0, 0xd, 0xc, 0xa, 0x40, 0xb0, 0xc0,
- 0x0, 0xe6, 0x6e, 0xc, 0x19, 0xb0, 0xb0, 0xb0,
- 0x0, 0xc0, 0xd, 0xc, 0x61, 0xb0, 0xb0, 0xb0,
- 0x2, 0xa0, 0xd, 0xc, 0x30, 0x40, 0xb1, 0xb0,
- 0x5, 0x60, 0xd, 0x9, 0x66, 0x66, 0xa2, 0xa0,
- 0x8, 0x13, 0x3e, 0x0, 0x0, 0x14, 0x38, 0x80,
- 0x6, 0x1, 0xba, 0x0, 0x0, 0x1, 0x8f, 0x30,
- 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
-
- /* U+80FD "能" */
- 0x0, 0x9, 0x10, 0x0, 0x40, 0x0, 0x0, 0x0,
- 0x6, 0xa1, 0x0, 0xc, 0x30, 0x21, 0x0, 0x2,
- 0x90, 0x8, 0x0, 0xc1, 0x2d, 0x60, 0x3, 0x91,
- 0x11, 0x7c, 0xc, 0x77, 0x10, 0x0, 0x6b, 0x85,
- 0x42, 0xc1, 0xc1, 0x0, 0x23, 0x0, 0x40, 0x0,
- 0x61, 0xb, 0x40, 0x5, 0x90, 0xe, 0x55, 0x5e,
- 0x20, 0x4a, 0xaa, 0xa5, 0x0, 0xe6, 0x66, 0xe0,
- 0x7, 0x10, 0x1, 0x0, 0xe, 0x0, 0xd, 0x0,
- 0xe0, 0x9, 0xb0, 0x0, 0xe0, 0x0, 0xd0, 0xd,
- 0x9, 0x70, 0x0, 0xe, 0x66, 0x6e, 0x0, 0xd5,
- 0x0, 0x1, 0x0, 0xe0, 0x0, 0xd0, 0xd, 0x0,
- 0x0, 0x60, 0xe, 0x0, 0xd, 0x0, 0xd0, 0x0,
- 0x1a, 0x0, 0xe0, 0x4c, 0xd0, 0xa, 0xcc, 0xcd,
- 0xb0, 0x3, 0x0, 0x21, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+8131 "脱" */
- 0x0, 0x30, 0x4, 0x1, 0x20, 0x1, 0x90, 0x0,
- 0x0, 0xd6, 0x6e, 0x10, 0xb2, 0x6, 0x70, 0x0,
- 0x0, 0xd0, 0xd, 0x0, 0x77, 0x9, 0x0, 0x0,
- 0x0, 0xd0, 0xd, 0x5, 0x43, 0x37, 0x44, 0x0,
- 0x0, 0xd6, 0x6d, 0xd, 0x44, 0x44, 0x87, 0x0,
- 0x0, 0xd0, 0xd, 0xd, 0x0, 0x0, 0x56, 0x0,
- 0x0, 0xd0, 0xd, 0xd, 0x0, 0x0, 0x56, 0x0,
- 0x0, 0xd6, 0x6d, 0xd, 0x6b, 0x5a, 0x96, 0x0,
- 0x0, 0xc0, 0xd, 0x7, 0x1d, 0xc, 0x10, 0x0,
- 0x0, 0xc0, 0xd, 0x0, 0x2b, 0xc, 0x0, 0x0,
- 0x0, 0xa0, 0xd, 0x0, 0x49, 0xc, 0x0, 0x10,
- 0x3, 0x60, 0xd, 0x0, 0x85, 0xc, 0x0, 0x50,
- 0x7, 0x13, 0x4d, 0x2, 0xc0, 0xd, 0x0, 0xa0,
- 0x6, 0x0, 0x89, 0x38, 0x10, 0xb, 0xbb, 0xb0,
- 0x10, 0x0, 0x1, 0x20, 0x0, 0x0, 0x0, 0x0,
-
- /* U+814A "腊" */
- 0x0, 0x30, 0x4, 0x0, 0x76, 0xa, 0x30, 0x0,
- 0x0, 0xd6, 0x6e, 0x10, 0x84, 0xc, 0x0, 0x0,
- 0x0, 0xd0, 0xd, 0x26, 0xb8, 0x6d, 0x7c, 0x10,
- 0x0, 0xd0, 0xd, 0x1, 0x84, 0xc, 0x0, 0x0,
- 0x0, 0xd6, 0x6d, 0x0, 0x84, 0xc, 0x0, 0x0,
- 0x0, 0xd0, 0xd, 0x46, 0xb8, 0x6d, 0x6b, 0x90,
- 0x0, 0xd0, 0xd, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd3, 0x3d, 0x4, 0x0, 0x0, 0x33, 0x0,
- 0x0, 0xd3, 0x3d, 0xc, 0x66, 0x66, 0xa9, 0x0,
- 0x0, 0xc0, 0xd, 0xc, 0x0, 0x0, 0x66, 0x0,
- 0x0, 0xb0, 0xd, 0xc, 0x66, 0x66, 0xa6, 0x0,
- 0x3, 0x80, 0xd, 0xc, 0x0, 0x0, 0x66, 0x0,
- 0x7, 0x22, 0x1d, 0xc, 0x66, 0x66, 0xa6, 0x0,
- 0x6, 0x3, 0xca, 0xd, 0x0, 0x0, 0x66, 0x0,
- 0x10, 0x0, 0x10, 0x1, 0x0, 0x0, 0x0, 0x0,
-
- /* U+8155 "腕" */
- 0x0, 0x0, 0x0, 0x0, 0x1, 0x80, 0x0, 0x0,
- 0x0, 0xb6, 0x6d, 0x1, 0x0, 0x96, 0x0, 0x0,
- 0x0, 0xd0, 0xd, 0xa, 0x66, 0x97, 0x67, 0xb0,
- 0x0, 0xd0, 0xd, 0x49, 0x71, 0x0, 0x6, 0x20,
- 0x0, 0xd3, 0x3d, 0x21, 0xd0, 0x0, 0x1, 0x0,
- 0x0, 0xd2, 0x2d, 0x5, 0x82, 0x3a, 0x6d, 0x10,
- 0x0, 0xd0, 0xd, 0xa, 0x6a, 0x9b, 0xc, 0x0,
- 0x0, 0xd0, 0xd, 0x1a, 0x9, 0x4b, 0xc, 0x0,
- 0x0, 0xe6, 0x6d, 0x67, 0x5c, 0x1b, 0xc, 0x0,
- 0x0, 0xc0, 0xd, 0x10, 0x6b, 0xb, 0xc, 0x0,
- 0x2, 0xa0, 0xd, 0x0, 0x84, 0xb, 0x99, 0x10,
- 0x5, 0x60, 0xd, 0x2, 0xa0, 0xb, 0x0, 0x50,
- 0x8, 0x11, 0x2c, 0x9, 0x0, 0xb, 0x0, 0xa0,
- 0x7, 0x3, 0xc9, 0x71, 0x0, 0xc, 0xbb, 0xc2,
- 0x10, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+8166 "腦" */
- 0x0, 0x30, 0x4, 0x1, 0x90, 0x16, 0x4, 0x10,
- 0xd, 0x66, 0xe1, 0x6a, 0x6, 0x90, 0xc5, 0x0,
- 0xd0, 0xd, 0xa, 0x0, 0xa0, 0x28, 0x0, 0xd,
- 0x0, 0xd4, 0x30, 0x62, 0x8, 0x0, 0x0, 0xd6,
- 0x6d, 0xa, 0x21, 0xa2, 0x49, 0x10, 0xd, 0x0,
- 0xd0, 0x4d, 0x33, 0xe0, 0x6c, 0x0, 0xd0, 0xd,
- 0x0, 0x8b, 0x35, 0x0, 0x40, 0xd, 0x66, 0xd0,
- 0xb6, 0x96, 0x66, 0xd3, 0x0, 0xc0, 0xd, 0xd,
- 0x0, 0x4, 0x5c, 0x0, 0xc, 0x0, 0xd0, 0xd2,
- 0x61, 0xc3, 0xc0, 0x0, 0xa0, 0xd, 0xd, 0x1,
- 0xe8, 0xc, 0x0, 0x36, 0x0, 0xd0, 0xd0, 0x67,
- 0xc5, 0xc0, 0x7, 0x10, 0xc, 0xd, 0x55, 0x2,
- 0x9c, 0x0, 0x60, 0x6e, 0x90, 0xd6, 0x66, 0x66,
- 0xd1, 0x20, 0x0, 0x30, 0x7, 0x0, 0x0, 0x6,
- 0x0,
-
- /* U+8170 "腰" */
- 0x0, 0x30, 0x4, 0x0, 0x0, 0x0, 0x0, 0x10,
- 0x0, 0xe6, 0x6e, 0x57, 0x69, 0x69, 0x69, 0x90,
- 0x0, 0xd0, 0xc, 0x0, 0xc, 0xc, 0x0, 0x0,
- 0x0, 0xd0, 0xc, 0x3a, 0x6d, 0x6d, 0x6c, 0x30,
- 0x0, 0xd6, 0x6c, 0x29, 0xc, 0xc, 0xb, 0x10,
- 0x0, 0xd0, 0xc, 0x29, 0xc, 0xc, 0xb, 0x10,
- 0x0, 0xd0, 0xc, 0x3b, 0x6a, 0x6a, 0x6d, 0x20,
- 0x0, 0xd3, 0x3c, 0x13, 0xc, 0x30, 0x3, 0x0,
- 0x0, 0xd3, 0x3c, 0x0, 0x2c, 0x0, 0x2, 0x70,
- 0x0, 0xc0, 0xc, 0x66, 0xc7, 0x68, 0xb6, 0x61,
- 0x1, 0xa0, 0xc, 0x2, 0xa0, 0x8, 0x30, 0x0,
- 0x4, 0x60, 0xc, 0x5, 0x85, 0x3a, 0x0, 0x0,
- 0x7, 0x11, 0x1c, 0x0, 0x4, 0xdb, 0x82, 0x0,
- 0x7, 0x4, 0xe9, 0x2, 0x88, 0x0, 0x5e, 0x30,
- 0x10, 0x0, 0x22, 0x44, 0x0, 0x0, 0x1, 0x20,
-
- /* U+819D "膝" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x30, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0x1, 0xc6, 0xd5, 0x46, 0x66, 0xe6, 0x6d, 0x70,
- 0x1, 0xb0, 0xc1, 0x11, 0x1c, 0xe3, 0x0, 0x0,
- 0x1, 0xb0, 0xc1, 0x0, 0xa3, 0xc4, 0xb7, 0x0,
- 0x1, 0xd6, 0xd1, 0x9, 0x22, 0x50, 0xc, 0x80,
- 0x1, 0xb0, 0xc2, 0x70, 0xb, 0xc0, 0x1, 0x40,
- 0x1, 0xb0, 0xc1, 0x0, 0x89, 0x9, 0x20, 0x0,
- 0x1, 0xb0, 0xc1, 0x7, 0x80, 0x92, 0xb9, 0x30,
- 0x1, 0xc6, 0xd1, 0x77, 0x0, 0xd0, 0x67, 0xc2,
- 0x2, 0x90, 0xc3, 0x3, 0xb0, 0xd7, 0x82, 0x0,
- 0x4, 0x70, 0xc1, 0x0, 0x35, 0xe2, 0x0, 0x0,
- 0x7, 0x30, 0xc1, 0x4, 0x92, 0xd5, 0xb5, 0x0,
- 0x8, 0x0, 0xc0, 0xab, 0x0, 0xd0, 0x1c, 0x60,
- 0x6, 0x2a, 0xd0, 0x10, 0x4b, 0xc0, 0x1, 0x30,
- 0x10, 0x0, 0x10, 0x0, 0x3, 0x30, 0x0, 0x0,
-
- /* U+81C9 "臉" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x30, 0x3, 0x0, 0x5, 0xc0, 0x0, 0x0,
- 0x0, 0xd6, 0x7c, 0x0, 0xc, 0x63, 0x0, 0x0,
- 0x0, 0xc0, 0x29, 0x0, 0x66, 0x7, 0x20, 0x0,
- 0x0, 0xb0, 0x29, 0x2, 0x80, 0x1, 0xa4, 0x0,
- 0x0, 0xd6, 0x79, 0x26, 0x56, 0x69, 0x6a, 0xb1,
- 0x0, 0xb0, 0x29, 0x31, 0x2, 0x2, 0x0, 0x30,
- 0x0, 0xb0, 0x29, 0xd, 0x6d, 0x1d, 0x67, 0xb0,
- 0x0, 0xc4, 0x69, 0xb, 0xb, 0xb, 0x1, 0x90,
- 0x0, 0xb1, 0x39, 0xc, 0x6c, 0xd, 0x66, 0x90,
- 0x1, 0xa0, 0x29, 0x6, 0x43, 0x5, 0x52, 0x20,
- 0x2, 0x70, 0x29, 0x2, 0xb0, 0x0, 0xd1, 0x0,
- 0x6, 0x30, 0x29, 0x7, 0x91, 0x2, 0xd1, 0x0,
- 0x7, 0x4, 0x78, 0x9, 0x1d, 0x1a, 0x28, 0x90,
- 0x14, 0x2, 0xc2, 0x61, 0x2, 0x63, 0x0, 0xa1,
- 0x0, 0x0, 0x0, 0x10, 0x0, 0x10, 0x0, 0x0,
-
- /* U+81EA "自" */
- 0x0, 0x2, 0xc2, 0x0, 0x0, 0x0, 0x0, 0x69,
- 0x0, 0x0, 0x0, 0x40, 0x9, 0x0, 0x0, 0x17,
- 0xe, 0x66, 0x66, 0x66, 0x68, 0xd1, 0xe1, 0x0,
- 0x0, 0x0, 0x3b, 0xd, 0x10, 0x0, 0x0, 0x3,
- 0xb0, 0xd6, 0x66, 0x66, 0x66, 0x8b, 0xd, 0x10,
- 0x0, 0x0, 0x3, 0xb0, 0xd1, 0x0, 0x0, 0x0,
- 0x3b, 0xd, 0x66, 0x66, 0x66, 0x68, 0xb0, 0xd1,
- 0x0, 0x0, 0x0, 0x3b, 0xd, 0x10, 0x0, 0x0,
- 0x3, 0xb0, 0xe1, 0x0, 0x0, 0x0, 0x3b, 0xe,
- 0x66, 0x66, 0x66, 0x68, 0xc0, 0x70, 0x0, 0x0,
- 0x0, 0x25, 0x0,
-
- /* U+81F3 "至" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x35, 0x0,
- 0x47, 0x66, 0x6a, 0xa6, 0x66, 0x68, 0x81, 0x0,
- 0x0, 0x1, 0xd2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xb3, 0x1, 0x73, 0x0, 0x0, 0x0, 0x0,
- 0x93, 0x0, 0x0, 0xab, 0x10, 0x0, 0x4, 0xa4,
- 0x23, 0x45, 0x66, 0xde, 0x10, 0x0, 0x7e, 0xa7,
- 0x5c, 0x50, 0x0, 0xc1, 0x0, 0x0, 0x0, 0x0,
- 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb,
- 0x30, 0x2, 0x70, 0x0, 0x5, 0x76, 0x66, 0xd8,
- 0x66, 0x88, 0x10, 0x0, 0x0, 0x0, 0xb, 0x30,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb3, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0x30, 0x0,
- 0x1c, 0x31, 0x86, 0x66, 0x66, 0x66, 0x66, 0x66,
- 0x64,
-
- /* U+81FA "臺" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xe1, 0x0, 0x3, 0x90,
- 0x4, 0x76, 0x66, 0x66, 0xe6, 0x66, 0x76, 0x62,
- 0x0, 0x7, 0x66, 0x66, 0xc6, 0x66, 0xb5, 0x0,
- 0x0, 0x2, 0x86, 0x66, 0x66, 0x66, 0xc1, 0x0,
- 0x0, 0x2, 0xb0, 0x0, 0x0, 0x1, 0xd0, 0x0,
- 0x0, 0x2, 0xc6, 0x66, 0x66, 0x66, 0xb0, 0x0,
- 0x1, 0xa6, 0x66, 0x66, 0x66, 0x66, 0x66, 0xd1,
- 0xb, 0x50, 0x0, 0x0, 0x0, 0x3, 0x65, 0x81,
- 0x8, 0x6, 0x66, 0xcc, 0x66, 0x86, 0x52, 0x0,
- 0x0, 0x1, 0x57, 0x30, 0x0, 0x19, 0x80, 0x0,
- 0x0, 0x6, 0xeb, 0xa9, 0xe6, 0x54, 0xa7, 0x0,
- 0x0, 0x0, 0x0, 0x1, 0xd0, 0x1, 0xa1, 0x0,
- 0x0, 0x6, 0x66, 0x66, 0xe6, 0x66, 0x62, 0x0,
- 0x2, 0x66, 0x66, 0x66, 0xe6, 0x66, 0x6c, 0x90,
- 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+8207 "與" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0x29, 0x50, 0x0, 0x0, 0x0, 0x0,
- 0xa6, 0xa7, 0xa3, 0x3, 0x66, 0xb8, 0x0, 0xe,
- 0x0, 0xa, 0x76, 0x81, 0x8, 0x50, 0x0, 0xd0,
- 0x50, 0xa3, 0x0, 0x0, 0x94, 0x0, 0xc, 0x66,
- 0x3d, 0x76, 0xd4, 0x7c, 0x30, 0x0, 0xc1, 0x0,
- 0x20, 0xd, 0x0, 0xa3, 0x0, 0xc, 0x15, 0x1c,
- 0x20, 0xc0, 0xa, 0x20, 0x0, 0xb7, 0x63, 0xd0,
- 0xc, 0x27, 0xc2, 0x0, 0xb, 0x20, 0xd, 0x0,
- 0xc0, 0xb, 0x20, 0x16, 0xc6, 0x55, 0xd5, 0x5d,
- 0x55, 0xdb, 0x60, 0x31, 0x11, 0x51, 0x11, 0x22,
- 0x11, 0x10, 0x0, 0x0, 0xad, 0x20, 0x0, 0x69,
- 0x40, 0x0, 0x0, 0xa9, 0x0, 0x0, 0x0, 0x1c,
- 0xc1, 0x3, 0xa3, 0x0, 0x0, 0x0, 0x0, 0xc,
- 0x61, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+8208 "興" */
- 0x0, 0x0, 0x33, 0x0, 0x2, 0x10, 0x0, 0x0,
- 0x9, 0x96, 0xc6, 0x66, 0x98, 0x7b, 0x70, 0x0,
- 0xd0, 0xc, 0x0, 0x56, 0x50, 0x93, 0x0, 0xc,
- 0x32, 0xc5, 0x66, 0x85, 0xa, 0x20, 0x0, 0xb5,
- 0x3c, 0x36, 0x87, 0x65, 0xd1, 0x0, 0xa, 0x10,
- 0xc6, 0x5b, 0x65, 0xc, 0x10, 0x0, 0xa5, 0x3c,
- 0x65, 0xb5, 0x50, 0xd0, 0x0, 0xa, 0x74, 0xc6,
- 0x9c, 0x56, 0x7e, 0x0, 0x0, 0xa3, 0xc, 0x10,
- 0x15, 0x50, 0xd0, 0x1, 0x6c, 0x86, 0xd6, 0x66,
- 0x99, 0x6e, 0xd6, 0x1, 0x0, 0x6, 0x0, 0x2,
- 0x20, 0x0, 0x0, 0x0, 0x9, 0xd2, 0x0, 0x5,
- 0xb6, 0x0, 0x0, 0x9, 0x80, 0x0, 0x0, 0x1,
- 0xce, 0x10, 0x38, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0xc4, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+8209 "舉" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x22, 0x6d, 0x5c, 0x3, 0x12, 0x36, 0x0,
- 0x0, 0x5a, 0x20, 0x1d, 0x68, 0x46, 0x7b, 0x0,
- 0x0, 0x4a, 0x48, 0x1c, 0x0, 0x3, 0x68, 0x0,
- 0x0, 0x2b, 0x33, 0x5d, 0x6c, 0x75, 0x86, 0x0,
- 0x0, 0x2a, 0x7, 0x5, 0xb, 0x20, 0x65, 0x0,
- 0x0, 0x1d, 0x66, 0x2d, 0xc, 0x47, 0xb4, 0x0,
- 0x0, 0xc, 0x0, 0x1c, 0xc, 0x10, 0x86, 0x50,
- 0x6, 0x76, 0x6d, 0x97, 0x76, 0x86, 0x66, 0x60,
- 0x0, 0x0, 0x7b, 0x1, 0xa0, 0x8, 0x0, 0x0,
- 0x0, 0x6, 0x96, 0x76, 0xb6, 0xb4, 0xb1, 0x0,
- 0x1, 0x85, 0x0, 0x1, 0x90, 0x0, 0x6e, 0xa1,
- 0x4, 0x6, 0x76, 0x66, 0xb6, 0x69, 0xb4, 0x20,
- 0x0, 0x0, 0x0, 0x1, 0x90, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1, 0x90, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0,
-
- /* U+822A "航" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd2, 0x0, 0x2, 0x20, 0x0, 0x0,
- 0x0, 0x11, 0x80, 0x10, 0x0, 0xc2, 0x0, 0x0,
- 0x0, 0xc7, 0x66, 0xe0, 0x0, 0x52, 0x5, 0x0,
- 0x0, 0xc2, 0x0, 0xd5, 0x66, 0x66, 0x69, 0x30,
- 0x0, 0xc1, 0xa0, 0xd0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc1, 0x91, 0xd0, 0x87, 0x66, 0xc0, 0x0,
- 0x0, 0xc1, 0x0, 0xd0, 0x84, 0x1, 0xb0, 0x0,
- 0x17, 0xd6, 0x66, 0xd0, 0x84, 0x1, 0xb0, 0x0,
- 0x0, 0xc1, 0x50, 0xd0, 0x93, 0x1, 0xb0, 0x0,
- 0x0, 0xb0, 0xa3, 0xd0, 0xa2, 0x1, 0xb0, 0x0,
- 0x0, 0xa0, 0x42, 0xd0, 0xb0, 0x1, 0xb0, 0x0,
- 0x3, 0x70, 0x0, 0xd0, 0xa0, 0x1, 0xb0, 0x60,
- 0x7, 0x10, 0x33, 0xc5, 0x40, 0x1, 0xb0, 0xa0,
- 0x15, 0x0, 0x3e, 0x86, 0x0, 0x0, 0xcc, 0xd1,
- 0x10, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
-
- /* U+822C "般" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd1, 0x0, 0x10, 0x0, 0x20, 0x0,
- 0x0, 0x24, 0x40, 0x40, 0x3c, 0x66, 0xe1, 0x0,
- 0x0, 0x98, 0x66, 0xe2, 0x39, 0x0, 0xd0, 0x0,
- 0x0, 0x95, 0x50, 0xd0, 0x48, 0x0, 0xd0, 0x0,
- 0x0, 0x93, 0xb2, 0xd0, 0x74, 0x0, 0xdc, 0xe4,
- 0x0, 0x93, 0x41, 0xd0, 0xa0, 0x0, 0x0, 0x0,
- 0x0, 0x93, 0x0, 0xd6, 0x44, 0x44, 0x78, 0x0,
- 0x7, 0xc8, 0x66, 0xd0, 0x26, 0x22, 0x99, 0x0,
- 0x0, 0xa5, 0x40, 0xd0, 0x6, 0x0, 0xd1, 0x0,
- 0x0, 0xb1, 0xc2, 0xd0, 0x5, 0x35, 0x90, 0x0,
- 0x0, 0xc0, 0x51, 0xd0, 0x0, 0xbd, 0x10, 0x0,
- 0x1, 0xa0, 0x0, 0xd0, 0x0, 0xbc, 0x10, 0x0,
- 0x6, 0x30, 0x32, 0xc0, 0x1a, 0x44, 0xe6, 0x0,
- 0x7, 0x0, 0x3d, 0x75, 0x81, 0x0, 0x2d, 0xd2,
- 0x20, 0x0, 0x1, 0x31, 0x0, 0x0, 0x0, 0x20,
-
- /* U+8239 "船" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd2, 0x0, 0x4, 0x0, 0x50, 0x0,
- 0x0, 0x25, 0x40, 0x40, 0xd, 0x66, 0xe2, 0x0,
- 0x0, 0xd6, 0x66, 0xe1, 0xc, 0x0, 0xd0, 0x0,
- 0x0, 0xd1, 0x20, 0xd0, 0xc, 0x0, 0xd0, 0x0,
- 0x0, 0xd0, 0xb1, 0xd0, 0x2a, 0x0, 0xd0, 0x0,
- 0x0, 0xd0, 0x51, 0xd0, 0x64, 0x0, 0xac, 0xd1,
- 0x15, 0xe5, 0x55, 0xd2, 0x60, 0x0, 0x0, 0x0,
- 0x2, 0xd1, 0x11, 0xd3, 0x11, 0x0, 0x5, 0x0,
- 0x0, 0xc1, 0x50, 0xd0, 0x2d, 0x66, 0x6e, 0x10,
- 0x0, 0xb0, 0xb2, 0xd0, 0x1b, 0x0, 0x1c, 0x0,
- 0x0, 0xa0, 0x31, 0xd0, 0x1b, 0x0, 0x1c, 0x0,
- 0x4, 0x50, 0x0, 0xd0, 0x1b, 0x0, 0x1c, 0x0,
- 0x8, 0x0, 0x44, 0xc0, 0x2d, 0x66, 0x6c, 0x0,
- 0x15, 0x0, 0x1b, 0x50, 0x2b, 0x0, 0x1a, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+826F "良" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x5, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc,
- 0x40, 0x0, 0x0, 0x0, 0xb6, 0x66, 0x96, 0x66,
- 0xe1, 0x0, 0xb, 0x20, 0x0, 0x0, 0x1d, 0x0,
- 0x0, 0xb2, 0x0, 0x0, 0x1, 0xd0, 0x0, 0xb,
- 0x76, 0x66, 0x66, 0x6d, 0x0, 0x0, 0xb2, 0x0,
- 0x0, 0x1, 0xd0, 0x0, 0xb, 0x76, 0x66, 0x66,
- 0x6d, 0x0, 0x0, 0xb2, 0x6, 0x0, 0x0, 0x77,
- 0x0, 0xb, 0x20, 0x26, 0x0, 0x7c, 0x70, 0x0,
- 0xb2, 0x0, 0x87, 0x73, 0x0, 0x0, 0xb, 0x20,
- 0x13, 0xb6, 0x0, 0x0, 0x0, 0xb5, 0x86, 0x0,
- 0x9d, 0x84, 0x10, 0xc, 0xb1, 0x0, 0x0, 0x2a,
- 0xfe, 0x40, 0x10, 0x0, 0x0, 0x0, 0x0, 0x10,
-
- /* U+8272 "色" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc, 0x60, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x5e, 0x66, 0x6a, 0xa0, 0x0, 0x0,
- 0x0, 0x1, 0xd2, 0x0, 0x2d, 0x50, 0x0, 0x0,
- 0x0, 0xa, 0x50, 0x0, 0x92, 0x0, 0x0, 0x0,
- 0x0, 0x7d, 0x66, 0x68, 0x86, 0x66, 0xc1, 0x0,
- 0x5, 0x4d, 0x0, 0xa, 0x20, 0x0, 0xd0, 0x0,
- 0x1, 0xd, 0x0, 0xa, 0x20, 0x0, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0xa, 0x20, 0x0, 0xd0, 0x0,
- 0x0, 0xd, 0x66, 0x67, 0x66, 0x66, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x70,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x2, 0xc1,
- 0x0, 0xa, 0xdc, 0xcc, 0xcc, 0xcc, 0xcd, 0xa0,
-
- /* U+8282 "节" */
- 0x0, 0x0, 0x7, 0x20, 0x1, 0x80, 0x0, 0x0,
- 0x0, 0x0, 0xb, 0x30, 0x1, 0xd0, 0x2, 0x0,
- 0x26, 0x66, 0x6d, 0x76, 0x66, 0xe6, 0x6e, 0x90,
- 0x1, 0x0, 0xb, 0x20, 0x1, 0xd0, 0x0, 0x0,
- 0x0, 0x0, 0xa, 0x10, 0x0, 0x90, 0x0, 0x0,
- 0x0, 0x56, 0x66, 0x66, 0x66, 0x66, 0xc1, 0x0,
- 0x0, 0x10, 0x0, 0x77, 0x0, 0x1, 0xe0, 0x0,
- 0x0, 0x0, 0x0, 0x77, 0x0, 0x1, 0xd0, 0x0,
- 0x0, 0x0, 0x0, 0x77, 0x0, 0x1, 0xd0, 0x0,
- 0x0, 0x0, 0x0, 0x77, 0x0, 0x1, 0xd0, 0x0,
- 0x0, 0x0, 0x0, 0x77, 0x4, 0x44, 0xd0, 0x0,
- 0x0, 0x0, 0x0, 0x77, 0x0, 0x5e, 0x80, 0x0,
- 0x0, 0x0, 0x0, 0x77, 0x0, 0x1, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x78, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
-
- /* U+82B1 "花" */
- 0x0, 0x0, 0x7, 0x50, 0x4, 0x60, 0x0, 0x0,
- 0x0, 0x0, 0x8, 0x60, 0x5, 0x80, 0x2, 0x10,
- 0x7, 0x66, 0x6b, 0x96, 0x69, 0xb6, 0x6c, 0x90,
- 0x0, 0x0, 0x8, 0x60, 0x5, 0x80, 0x0, 0x0,
- 0x0, 0x0, 0x7, 0x20, 0x3, 0x30, 0x0, 0x0,
- 0x0, 0x0, 0x5d, 0x0, 0x8, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc3, 0x0, 0xe, 0x0, 0x6d, 0x0,
- 0x0, 0x6, 0xd0, 0x0, 0xd, 0x6, 0xc2, 0x0,
- 0x0, 0x2b, 0xd0, 0x0, 0xe, 0xa8, 0x0, 0x0,
- 0x1, 0x91, 0xd0, 0x0, 0x7e, 0x20, 0x0, 0x0,
- 0x16, 0x0, 0xd0, 0x57, 0x2d, 0x0, 0x0, 0x20,
- 0x0, 0x0, 0xd0, 0x0, 0xd, 0x0, 0x0, 0x60,
- 0x0, 0x0, 0xe0, 0x0, 0xe, 0x0, 0x0, 0xb0,
- 0x0, 0x0, 0xe0, 0x0, 0xc, 0xdc, 0xcd, 0xd1,
- 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+82E5 "若" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x7, 0x70, 0x1, 0xd1, 0x0, 0x0,
- 0x0, 0x0, 0x7, 0x60, 0x0, 0xd0, 0x5, 0x10,
- 0x2, 0x76, 0x6a, 0xa6, 0x66, 0xe6, 0x68, 0x60,
- 0x0, 0x0, 0x8, 0x64, 0x0, 0xe0, 0x0, 0x0,
- 0x0, 0x0, 0x3, 0x1e, 0x50, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x4c, 0x0, 0x0, 0x1, 0x50,
- 0x5, 0x66, 0x66, 0xd9, 0x66, 0x66, 0x68, 0x92,
- 0x0, 0x0, 0x4, 0xb0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x1d, 0x10, 0x0, 0x2, 0x40, 0x0,
- 0x0, 0x1, 0xce, 0x66, 0x66, 0x69, 0xb0, 0x0,
- 0x0, 0x2a, 0x3d, 0x0, 0x0, 0x5, 0x80, 0x0,
- 0x4, 0x60, 0xd, 0x0, 0x0, 0x5, 0x80, 0x0,
- 0x1, 0x0, 0xe, 0x66, 0x66, 0x69, 0x90, 0x0,
- 0x0, 0x0, 0xd, 0x0, 0x0, 0x5, 0x80, 0x0,
- 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+82E6 "苦" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0x20, 0x0, 0xb1, 0x0, 0x0,
- 0x0, 0x0, 0xe, 0x0, 0x0, 0xd0, 0x6, 0x40,
- 0x17, 0x66, 0x6e, 0x66, 0x66, 0xe6, 0x67, 0x70,
- 0x0, 0x0, 0xe, 0x3, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0x0, 0x3, 0xc, 0x40, 0x20, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x0, 0x0, 0x8, 0x30,
- 0x27, 0x66, 0x66, 0x6e, 0x66, 0x66, 0x67, 0x50,
- 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x9, 0x66, 0x6e, 0x66, 0x68, 0x70, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0x7, 0x60, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0x7, 0x60, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0x7, 0x60, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0x7, 0x60, 0x0,
- 0x0, 0xd, 0x66, 0x66, 0x66, 0x6a, 0x60, 0x0,
- 0x0, 0x5, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0,
-
- /* U+82F1 "英" */
- 0x0, 0x0, 0xb, 0x20, 0x1, 0x91, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0x0, 0x1, 0xc0, 0x7, 0x60,
- 0x8, 0x66, 0x6e, 0x66, 0x66, 0xd6, 0x66, 0x50,
- 0x0, 0x0, 0xd, 0x9, 0x31, 0xb0, 0x0, 0x0,
- 0x0, 0x0, 0x2, 0xc, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0xa, 0x66, 0x6d, 0x66, 0x6b, 0x80, 0x0,
- 0x0, 0xc, 0x0, 0xd, 0x0, 0x8, 0x50, 0x0,
- 0x0, 0xc, 0x0, 0xd, 0x0, 0x8, 0x50, 0x0,
- 0x0, 0xc, 0x0, 0xe, 0x0, 0x8, 0x54, 0x30,
- 0x28, 0x68, 0x66, 0x8d, 0x86, 0x67, 0x68, 0x70,
- 0x0, 0x0, 0x0, 0xa5, 0x26, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x6, 0xb0, 0x6, 0x80, 0x0, 0x0,
- 0x0, 0x0, 0x6b, 0x10, 0x0, 0x5d, 0x61, 0x0,
- 0x0, 0x48, 0x40, 0x0, 0x0, 0x2, 0xbf, 0x90,
- 0x4, 0x10, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0,
-
- /* U+8336 "茶" */
- 0x0, 0x0, 0xb, 0x40, 0x0, 0xb1, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0x10, 0x0, 0xd0, 0x6, 0x80,
- 0x6, 0x66, 0x6e, 0x66, 0x66, 0xe6, 0x66, 0x61,
- 0x0, 0x0, 0xd, 0x8, 0xb0, 0xc0, 0x0, 0x0,
- 0x0, 0x0, 0x2, 0x4c, 0x44, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x4, 0xc1, 0x4, 0x70, 0x0, 0x0,
- 0x0, 0x0, 0x79, 0x2, 0x40, 0x3c, 0x71, 0x0,
- 0x0, 0x47, 0x20, 0x3, 0xc0, 0x0, 0x9f, 0xc3,
- 0x4, 0x26, 0x66, 0x68, 0xc6, 0x6a, 0xd2, 0x10,
- 0x0, 0x2, 0x1, 0x3, 0xa0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x6d, 0x3, 0xa1, 0x83, 0x0, 0x0,
- 0x0, 0x3, 0xb1, 0x3, 0xa0, 0xb, 0x80, 0x0,
- 0x0, 0x39, 0x1, 0x4, 0xa0, 0x0, 0xc8, 0x0,
- 0x2, 0x40, 0x0, 0x8f, 0x70, 0x0, 0x24, 0x0,
- 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0,
-
- /* U+8377 "荷" */
- 0x0, 0x0, 0xa, 0x40, 0x5, 0x70, 0x0, 0x0,
- 0x0, 0x0, 0xb, 0x20, 0x6, 0x80, 0x7, 0x20,
- 0x7, 0x66, 0x6d, 0x76, 0x69, 0xb6, 0x68, 0x60,
- 0x0, 0x0, 0xb, 0x20, 0x6, 0x80, 0x0, 0x0,
- 0x0, 0x0, 0xd3, 0x0, 0x1, 0x10, 0x2, 0x10,
- 0x0, 0x7, 0x84, 0x76, 0x66, 0x66, 0x9b, 0x90,
- 0x0, 0x1d, 0x0, 0x0, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0x9f, 0x33, 0x86, 0x6c, 0x10, 0xe0, 0x0,
- 0x5, 0x5e, 0x4, 0xa0, 0xd, 0x0, 0xe0, 0x0,
- 0x24, 0xe, 0x3, 0xa0, 0xd, 0x0, 0xe0, 0x0,
- 0x0, 0xe, 0x3, 0xa0, 0xd, 0x0, 0xe0, 0x0,
- 0x0, 0xe, 0x4, 0xc6, 0x6c, 0x0, 0xe0, 0x0,
- 0x0, 0xe, 0x3, 0x60, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0xe, 0x0, 0x0, 0x1, 0x6b, 0xd0, 0x0,
- 0x0, 0x7, 0x0, 0x0, 0x0, 0x6, 0x30, 0x0,
-
- /* U+83D3 "菓" */
- 0x0, 0x0, 0xb, 0x10, 0x3, 0x90, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x3b, 0x1, 0x90, 0x8,
- 0x66, 0x6e, 0x66, 0x67, 0xc6, 0x67, 0x30, 0x0,
- 0x0, 0xb0, 0x0, 0x29, 0x20, 0x0, 0x0, 0xc,
- 0x66, 0x6a, 0x66, 0x6c, 0x70, 0x0, 0x0, 0xc0,
- 0x0, 0xe0, 0x0, 0xb3, 0x0, 0x0, 0xc, 0x66,
- 0x6e, 0x66, 0x6c, 0x30, 0x0, 0x0, 0xc0, 0x0,
- 0xe0, 0x0, 0xb3, 0x0, 0x0, 0xa, 0x66, 0x6e,
- 0x66, 0x69, 0x20, 0x0, 0x26, 0x66, 0x66, 0xe6,
- 0x66, 0x6e, 0x70, 0x0, 0x10, 0x2, 0xce, 0x35,
- 0x0, 0x0, 0x0, 0x0, 0x3, 0xb1, 0xe0, 0x68,
- 0x0, 0x0, 0x0, 0x6, 0x80, 0xe, 0x0, 0x6d,
- 0x61, 0x0, 0x46, 0x20, 0x0, 0xe0, 0x0, 0x3c,
- 0xe3, 0x10, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+83DC "菜" */
- 0x0, 0x0, 0xa, 0x30, 0xb, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0xb2, 0x0, 0xe0, 0x1, 0xb2, 0x27,
- 0x66, 0x6d, 0x76, 0x6e, 0x66, 0x66, 0x40, 0x0,
- 0x0, 0x81, 0x0, 0x95, 0xa5, 0x0, 0x0, 0x35,
- 0x56, 0x78, 0x98, 0x65, 0x30, 0x0, 0x0, 0x10,
- 0x2, 0x70, 0x0, 0xa4, 0x0, 0x0, 0x7, 0x80,
- 0x7, 0x70, 0x2c, 0x0, 0x0, 0x0, 0xd, 0x0,
- 0x62, 0x9, 0x10, 0x0, 0x0, 0x0, 0x0, 0xd,
- 0x42, 0x10, 0x1c, 0x23, 0x76, 0x66, 0x6e, 0xe9,
- 0x76, 0x66, 0x64, 0x0, 0x0, 0x9, 0x6c, 0x18,
- 0x0, 0x0, 0x0, 0x0, 0x9, 0x60, 0xc1, 0x1b,
- 0x20, 0x0, 0x0, 0x29, 0x30, 0xc, 0x10, 0x2c,
- 0xa4, 0x10, 0x56, 0x0, 0x0, 0xd1, 0x0, 0x7,
- 0xe5, 0x20, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+843D "落" */
- 0x0, 0x0, 0x9, 0x20, 0xa, 0x30, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0x0, 0xc, 0x0, 0x6, 0x90,
- 0x7, 0x66, 0x6e, 0x66, 0x6d, 0x66, 0x66, 0x61,
- 0x0, 0x72, 0x6, 0x3, 0x94, 0x0, 0x0, 0x0,
- 0x0, 0x2e, 0x2, 0x9, 0x86, 0x67, 0x80, 0x0,
- 0x0, 0x3, 0x4, 0x19, 0x50, 0xc, 0x30, 0x0,
- 0x9, 0x30, 0x50, 0x81, 0x53, 0xa4, 0x0, 0x0,
- 0x2, 0xb0, 0x73, 0x30, 0x1f, 0x90, 0x0, 0x0,
- 0x0, 0x5, 0x40, 0x1, 0xb3, 0x7b, 0x40, 0x0,
- 0x0, 0xb, 0x0, 0x5a, 0x10, 0x2, 0xde, 0xa2,
- 0x5, 0xaa, 0x25, 0x4c, 0x66, 0x67, 0xd2, 0x30,
- 0x0, 0x97, 0x0, 0x2a, 0x0, 0x1, 0xb0, 0x0,
- 0x0, 0x97, 0x0, 0x2a, 0x0, 0x1, 0xb0, 0x0,
- 0x0, 0x86, 0x0, 0x2c, 0x66, 0x66, 0xc0, 0x0,
- 0x0, 0x0, 0x0, 0x13, 0x0, 0x0, 0x20, 0x0,
-
- /* U+8449 "葉" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa, 0x20, 0x1, 0xc0, 0x1, 0x0,
- 0x6, 0x66, 0x6c, 0x66, 0x66, 0xd6, 0x6d, 0xa0,
- 0x0, 0x0, 0xa, 0x0, 0x0, 0xb0, 0x0, 0x0,
- 0x0, 0x0, 0xb1, 0x84, 0x0, 0x71, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0xa3, 0x0, 0xd0, 0x25, 0x0,
- 0x1, 0x76, 0xe6, 0xc7, 0x66, 0xe6, 0x66, 0x0,
- 0x0, 0x0, 0xd0, 0xa5, 0x44, 0xd0, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x52, 0x22, 0x70, 0x60, 0x0,
- 0x0, 0x1, 0xb6, 0x6b, 0x96, 0x66, 0x61, 0x0,
- 0x0, 0x0, 0x0, 0xa, 0x50, 0x0, 0x2b, 0x0,
- 0x3, 0x66, 0x66, 0xef, 0xa9, 0x66, 0x66, 0x20,
- 0x0, 0x0, 0xb, 0x8a, 0x54, 0x60, 0x0, 0x0,
- 0x0, 0x3, 0xb4, 0xa, 0x50, 0x4b, 0x50, 0x0,
- 0x3, 0x65, 0x0, 0xa, 0x60, 0x1, 0xaf, 0x80,
- 0x1, 0x0, 0x0, 0x6, 0x20, 0x0, 0x2, 0x0,
-
- /* U+8457 "著" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x9, 0x50, 0xa, 0x60, 0x1, 0x0,
- 0x3, 0x66, 0x6b, 0x86, 0x6c, 0x76, 0x6f, 0x60,
- 0x0, 0x10, 0x9, 0x31, 0xa, 0x20, 0x0, 0x0,
- 0x0, 0x0, 0x6, 0x1c, 0x35, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x8, 0x5, 0xd2, 0x0,
- 0x0, 0x3, 0x76, 0x6e, 0x66, 0x8d, 0x40, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x7, 0xb1, 0x7, 0x50,
- 0x4, 0x76, 0x66, 0x66, 0xe8, 0x66, 0x66, 0x50,
- 0x0, 0x0, 0x0, 0x3a, 0x30, 0x0, 0x30, 0x0,
- 0x0, 0x0, 0x1e, 0x96, 0x66, 0x67, 0xd0, 0x0,
- 0x0, 0x17, 0x8d, 0x0, 0x0, 0x2, 0xa0, 0x0,
- 0x5, 0x40, 0xd, 0x66, 0x66, 0x67, 0xa0, 0x0,
- 0x0, 0x0, 0xd, 0x0, 0x0, 0x2, 0xa0, 0x0,
- 0x0, 0x0, 0xe, 0x66, 0x66, 0x67, 0xb0, 0x0,
- 0x0, 0x0, 0x6, 0x0, 0x0, 0x1, 0x30, 0x0,
-
- /* U+8535 "蔵" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa, 0x50, 0x6, 0x70, 0x1, 0x0,
- 0x4, 0x66, 0x6c, 0x76, 0x69, 0xa6, 0x6e, 0xa0,
- 0x1, 0x10, 0xa, 0x20, 0x6, 0x72, 0x0, 0x0,
- 0x0, 0x0, 0x3, 0x0, 0x4, 0x38, 0x70, 0x0,
- 0x0, 0x13, 0x0, 0x0, 0x4, 0xb0, 0x4a, 0x20,
- 0x0, 0x3c, 0x66, 0x66, 0x67, 0xc6, 0x66, 0x40,
- 0x0, 0x3a, 0x86, 0x87, 0xa2, 0xb0, 0x5, 0x0,
- 0x0, 0x29, 0x81, 0x92, 0x10, 0xc0, 0x1f, 0x20,
- 0x0, 0x39, 0x86, 0x86, 0xd2, 0xc0, 0x78, 0x0,
- 0x0, 0x48, 0x81, 0x0, 0xc0, 0x94, 0xd1, 0x0,
- 0x0, 0x66, 0x86, 0x96, 0xa0, 0x5e, 0x60, 0x0,
- 0x0, 0x92, 0x81, 0x92, 0x40, 0x6f, 0x20, 0x60,
- 0x0, 0x90, 0x86, 0x76, 0x88, 0x73, 0xd3, 0x80,
- 0x5, 0x10, 0x0, 0x1, 0x73, 0x0, 0x3e, 0x90,
- 0x2, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x40,
-
- /* U+8584 "薄" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2, 0xb0, 0x3, 0xb0, 0x0, 0x0, 0x16,
- 0x66, 0x7c, 0x66, 0x7c, 0x66, 0xca, 0x0, 0x40,
- 0x2, 0xa0, 0x3, 0x87, 0x30, 0x0, 0x5, 0xa0,
- 0x0, 0x0, 0xb3, 0x19, 0x51, 0x0, 0x9, 0x3,
- 0x76, 0x6d, 0x66, 0x67, 0x50, 0x30, 0x2, 0x28,
- 0x66, 0xd6, 0x69, 0x70, 0x1, 0xd1, 0x60, 0xa1,
- 0xc, 0x10, 0x76, 0x0, 0x6, 0x16, 0xa, 0x76,
- 0xd6, 0x6a, 0x60, 0x0, 0x7, 0x10, 0xa7, 0x6d,
- 0x66, 0xa6, 0x0, 0x2, 0xa0, 0x8, 0x10, 0x90,
- 0x55, 0x20, 0x4, 0xc8, 0x27, 0x66, 0x66, 0x6c,
- 0x89, 0xa0, 0x6, 0x70, 0x2, 0x81, 0x0, 0xb2,
- 0x0, 0x0, 0x97, 0x0, 0x5, 0x70, 0xb, 0x20,
- 0x0, 0x9, 0x80, 0x0, 0x0, 0x5a, 0xe1, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x33, 0x0, 0x0,
-
- /* U+85AC "薬" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa, 0x40, 0xa, 0x40, 0x1, 0x0,
- 0x6, 0x66, 0x6c, 0x76, 0x6d, 0x66, 0x6d, 0x90,
- 0x1, 0x0, 0xa, 0x13, 0xb, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x76, 0x8, 0x78, 0x69, 0x60, 0x29, 0x0,
- 0x0, 0xa, 0x4c, 0x0, 0x8, 0x36, 0xa4, 0x0,
- 0x0, 0x0, 0x1c, 0x66, 0x6b, 0x61, 0x0, 0x0,
- 0x1, 0x58, 0x5c, 0x0, 0x8, 0x47, 0x93, 0x0,
- 0x9, 0x60, 0xc, 0x66, 0x6b, 0x40, 0x3e, 0x0,
- 0x0, 0x0, 0x4, 0x7, 0x33, 0x0, 0x5, 0x0,
- 0x7, 0x66, 0x66, 0x9d, 0x96, 0x66, 0x8c, 0x50,
- 0x0, 0x0, 0x7, 0xba, 0x56, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0xa7, 0x9, 0x30, 0x98, 0x20, 0x0,
- 0x2, 0x66, 0x10, 0x9, 0x40, 0x5, 0xdf, 0x70,
- 0x11, 0x0, 0x0, 0x5, 0x10, 0x0, 0x2, 0x0,
-
- /* U+85DD "藝" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x9, 0x60, 0x2, 0xb0, 0x1, 0x20,
- 0x7, 0x66, 0x6b, 0x86, 0x67, 0xc6, 0x6b, 0xa0,
- 0x0, 0x0, 0x26, 0x20, 0x1, 0x60, 0x0, 0x0,
- 0x0, 0x0, 0xb2, 0x40, 0x0, 0xb1, 0x0, 0x0,
- 0x0, 0x76, 0xc6, 0x65, 0x56, 0xd6, 0xc1, 0x0,
- 0x4, 0x76, 0xa6, 0x7b, 0x20, 0xb0, 0xd0, 0x0,
- 0x0, 0x95, 0xa2, 0x76, 0x5, 0xb0, 0xd0, 0x0,
- 0x6, 0x37, 0xd6, 0x77, 0x8, 0x99, 0xc1, 0x20,
- 0x0, 0x0, 0xb3, 0x51, 0x46, 0x3, 0x7a, 0x60,
- 0x0, 0xca, 0x73, 0x13, 0x31, 0x47, 0x9, 0x60,
- 0x0, 0x1, 0x75, 0x55, 0x55, 0x54, 0x63, 0x0,
- 0x2, 0x86, 0x66, 0x9b, 0x66, 0x66, 0x77, 0x0,
- 0x0, 0x0, 0x6, 0x93, 0x2, 0x85, 0x0, 0x0,
- 0x0, 0x6, 0xeb, 0xa9, 0x76, 0x5b, 0x80, 0x0,
- 0x0, 0x2, 0x52, 0x0, 0x0, 0x0, 0x20, 0x0,
-
- /* U+8607 "蘇" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x9, 0x20, 0x3, 0x90, 0x0, 0x0,
- 0x5, 0x66, 0x6c, 0x66, 0x67, 0xb6, 0x6b, 0xa0,
- 0x1, 0x0, 0xa, 0x0, 0x2, 0x90, 0x0, 0x0,
- 0x0, 0x8, 0x72, 0x0, 0x0, 0x11, 0x67, 0x0,
- 0x0, 0x1e, 0x69, 0x70, 0x46, 0x9c, 0x64, 0x0,
- 0x0, 0xa3, 0x8, 0x10, 0x0, 0x28, 0x0, 0x0,
- 0x6, 0xd5, 0xa6, 0xc3, 0x56, 0x7b, 0x6c, 0x40,
- 0x1, 0xb0, 0xb0, 0xb0, 0x22, 0xfd, 0x0, 0x0,
- 0x0, 0xb6, 0xc6, 0xc0, 0x6, 0x99, 0x60, 0x0,
- 0x0, 0xb0, 0xb0, 0xb0, 0xb, 0x38, 0x91, 0x0,
- 0x0, 0xb6, 0xc6, 0xc0, 0x64, 0x28, 0x3b, 0x0,
- 0x0, 0x30, 0x0, 0x32, 0x50, 0x28, 0x9, 0xb0,
- 0x0, 0x57, 0x46, 0xa4, 0x0, 0x39, 0x0, 0x0,
- 0x9, 0x68, 0x3a, 0x43, 0x0, 0x39, 0x0, 0x0,
- 0x3, 0x0, 0x0, 0x0, 0x0, 0x11, 0x0, 0x0,
-
- /* U+8655 "處" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe, 0x66, 0x69, 0xb0, 0x0,
- 0x0, 0x30, 0x0, 0xd, 0x0, 0x0, 0x3, 0x20,
- 0x0, 0x99, 0x66, 0x6c, 0x66, 0x66, 0x6c, 0x80,
- 0x0, 0x94, 0x0, 0xe, 0x22, 0x4a, 0x26, 0x0,
- 0x0, 0x86, 0x87, 0x7e, 0x53, 0x20, 0x4, 0x0,
- 0x0, 0x84, 0x0, 0xd, 0x0, 0x0, 0x58, 0x0,
- 0x0, 0x93, 0x9, 0x16, 0x9a, 0xaa, 0x94, 0x0,
- 0x0, 0xa2, 0x3e, 0x66, 0x95, 0x75, 0xa0, 0x0,
- 0x0, 0xb0, 0x93, 0x6, 0x86, 0x50, 0xc0, 0x10,
- 0x0, 0xb2, 0x67, 0x1c, 0x9, 0x20, 0xc0, 0x60,
- 0x2, 0x75, 0x3, 0xe5, 0x17, 0x0, 0xc9, 0xd0,
- 0x6, 0x0, 0x1a, 0x6b, 0xa4, 0x20, 0x0, 0x0,
- 0x23, 0x4, 0x71, 0x0, 0x38, 0xce, 0xff, 0xb1,
- 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+884C "行" */
- 0x0, 0x6, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0xd3, 0x2, 0x66, 0x66, 0x6e, 0x40, 0x0,
- 0xa3, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x63,
- 0x8, 0x10, 0x0, 0x0, 0x0, 0x0, 0x21, 0x3,
- 0xd2, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0xc3,
- 0x37, 0x66, 0x68, 0x67, 0xb3, 0x0, 0x9d, 0x0,
- 0x0, 0x2, 0xb0, 0x0, 0x0, 0x66, 0xe0, 0x0,
- 0x0, 0x2b, 0x0, 0x0, 0x45, 0xd, 0x0, 0x0,
- 0x2, 0xb0, 0x0, 0x1, 0x0, 0xd0, 0x0, 0x0,
- 0x2b, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x2,
- 0xb0, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0, 0x2b,
- 0x0, 0x0, 0x0, 0xd, 0x0, 0x3, 0x26, 0xa0,
- 0x0, 0x0, 0x0, 0xd0, 0x0, 0x3a, 0xf7, 0x0,
- 0x0, 0x0, 0x3, 0x0, 0x0, 0x4, 0x0, 0x0,
- 0x0,
-
- /* U+8853 "術" */
- 0x0, 0x7, 0x50, 0x9, 0x20, 0x0, 0x0, 0x10,
- 0x0, 0xc, 0x10, 0xd, 0x31, 0x4, 0x76, 0xb1,
- 0x0, 0x83, 0x0, 0xd, 0xc, 0x20, 0x0, 0x0,
- 0x3, 0x41, 0xb0, 0xd, 0x5, 0x10, 0x0, 0x0,
- 0x2, 0x9, 0x84, 0x4d, 0x4a, 0x20, 0x0, 0x51,
- 0x0, 0x2d, 0x3, 0x9f, 0x22, 0x17, 0x6e, 0x63,
- 0x0, 0xae, 0x10, 0xbe, 0x30, 0x0, 0xd, 0x0,
- 0x6, 0x2d, 0x0, 0xbd, 0x69, 0x0, 0xd, 0x0,
- 0x1, 0xd, 0x4, 0x6d, 0xa, 0x50, 0xd, 0x0,
- 0x0, 0xd, 0x8, 0xd, 0x1, 0x0, 0xd, 0x0,
- 0x0, 0xd, 0x16, 0xd, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0xd, 0x50, 0xd, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0xd, 0x0, 0xd, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0xd, 0x0, 0xd, 0x0, 0x18, 0xdb, 0x0,
- 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x40, 0x0,
-
- /* U+8868 "表" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x10, 0x0, 0x26, 0x0,
- 0x0, 0x76, 0x66, 0x6d, 0x66, 0x66, 0x77, 0x10,
- 0x0, 0x0, 0x0, 0xc, 0x10, 0x1, 0x40, 0x0,
- 0x0, 0x6, 0x66, 0x6d, 0x66, 0x67, 0x81, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x10, 0x0, 0x3, 0x10,
- 0x6, 0x66, 0x66, 0x6e, 0x66, 0x66, 0x6b, 0x90,
- 0x0, 0x0, 0x0, 0xb8, 0x50, 0x1, 0xa0, 0x0,
- 0x0, 0x0, 0x9, 0x90, 0x90, 0x1b, 0x50, 0x0,
- 0x0, 0x0, 0xae, 0x0, 0x39, 0x70, 0x0, 0x0,
- 0x0, 0x2a, 0x6d, 0x0, 0x9, 0x50, 0x0, 0x0,
- 0x16, 0x50, 0x1d, 0x0, 0x20, 0xa8, 0x0, 0x0,
- 0x0, 0x0, 0x1d, 0x38, 0x40, 0x7, 0xfa, 0x71,
- 0x0, 0x0, 0x3f, 0x90, 0x0, 0x0, 0x29, 0x40,
- 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+88AB "被" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x38, 0x0, 0x0, 0x0, 0xd1, 0x0, 0x0,
- 0x0, 0xa, 0x50, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0x1, 0x11, 0x3, 0x0, 0xd0, 0x2, 0x20,
- 0x6, 0x76, 0xba, 0xe, 0x66, 0xe6, 0x6c, 0xa0,
- 0x0, 0x0, 0xd1, 0xd, 0x0, 0xd0, 0x17, 0x0,
- 0x0, 0x6, 0x74, 0x1d, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0xe, 0x1c, 0x2e, 0x66, 0xe6, 0x78, 0x0,
- 0x0, 0x8e, 0x71, 0x1c, 0x31, 0x0, 0x88, 0x0,
- 0x5, 0x3d, 0x77, 0x2a, 0x6, 0x0, 0xd1, 0x0,
- 0x12, 0xd, 0xd, 0x48, 0x8, 0x16, 0x80, 0x0,
- 0x0, 0xd, 0x1, 0x74, 0x1, 0xbc, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0xb0, 0x2, 0xd9, 0x0, 0x0,
- 0x0, 0xd, 0x4, 0x60, 0x4a, 0x16, 0xc4, 0x0,
- 0x0, 0xd, 0x18, 0x27, 0x50, 0x0, 0x4d, 0xb1,
- 0x0, 0x2, 0x20, 0x20, 0x0, 0x0, 0x0, 0x0,
-
- /* U+88CF "裏" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x78, 0x0, 0x0, 0x0, 0x36, 0x66,
- 0x66, 0x6d, 0x66, 0x66, 0xc5, 0x0, 0x12, 0x0,
- 0x0, 0x0, 0x5, 0x0, 0x0, 0x2c, 0x66, 0x6d,
- 0x66, 0x6e, 0x0, 0x0, 0x2c, 0x66, 0x6d, 0x66,
- 0x6d, 0x0, 0x0, 0x2a, 0x0, 0x1c, 0x0, 0xd,
- 0x0, 0x0, 0x28, 0x66, 0x6d, 0x66, 0x66, 0x0,
- 0x0, 0x76, 0x66, 0x6d, 0x66, 0x6b, 0x40, 0x0,
- 0x0, 0x0, 0x1c, 0x0, 0x0, 0x53, 0x28, 0x66,
- 0x66, 0xf9, 0x66, 0x69, 0x64, 0x0, 0x0, 0x2c,
- 0x67, 0x0, 0x6c, 0x30, 0x0, 0x18, 0xd7, 0x1,
- 0xa8, 0x40, 0x0, 0x16, 0x71, 0x77, 0x5, 0x49,
- 0xb7, 0x42, 0x0, 0x0, 0x9d, 0x92, 0x0, 0x28,
- 0xc4, 0x0, 0x0, 0x33, 0x0, 0x0, 0x0, 0x0,
-
- /* U+88DC "補" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x19, 0x0, 0x0, 0x0, 0xb4, 0x20, 0x0,
- 0x0, 0x6, 0xa0, 0x0, 0x0, 0xd0, 0xb4, 0x0,
- 0x0, 0x0, 0x50, 0x0, 0x0, 0xd0, 0x38, 0x10,
- 0x7, 0x66, 0xc8, 0x76, 0x66, 0xe6, 0x69, 0x70,
- 0x0, 0x0, 0xd0, 0x2, 0x0, 0xd0, 0x4, 0x0,
- 0x0, 0x6, 0x82, 0xe, 0x66, 0xe6, 0x6e, 0x20,
- 0x0, 0xe, 0x1b, 0x4d, 0x0, 0xd0, 0xd, 0x0,
- 0x0, 0x9e, 0x56, 0xd, 0x66, 0xe6, 0x6d, 0x0,
- 0x5, 0x4c, 0x95, 0xd, 0x0, 0xd0, 0xd, 0x0,
- 0x33, 0xc, 0x1e, 0x2d, 0x0, 0xd0, 0xd, 0x0,
- 0x0, 0xc, 0x4, 0xd, 0x66, 0xe6, 0x6d, 0x0,
- 0x0, 0xc, 0x0, 0xd, 0x0, 0xd0, 0xd, 0x0,
- 0x0, 0xc, 0x0, 0xd, 0x0, 0xd0, 0xd, 0x0,
- 0x0, 0xd, 0x10, 0xd, 0x0, 0xc3, 0x9c, 0x0,
- 0x0, 0x4, 0x0, 0x6, 0x0, 0x20, 0x32, 0x0,
-
- /* U+88E1 "裡" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x19, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x6, 0xa0, 0xb, 0x66, 0x66, 0x6d, 0x10,
- 0x0, 0x0, 0x50, 0xc, 0x0, 0xd0, 0xc, 0x0,
- 0x7, 0x66, 0xc9, 0xc, 0x0, 0xd0, 0xc, 0x0,
- 0x0, 0x0, 0xe0, 0xd, 0x66, 0xe6, 0x6c, 0x0,
- 0x0, 0x7, 0x82, 0xc, 0x0, 0xd0, 0xc, 0x0,
- 0x0, 0x1e, 0x1b, 0x4c, 0x0, 0xd0, 0xc, 0x0,
- 0x0, 0x9e, 0x56, 0xd, 0x66, 0xe6, 0x6c, 0x0,
- 0x6, 0x3c, 0x95, 0xa, 0x0, 0xd0, 0x4, 0x0,
- 0x33, 0xc, 0xe, 0x30, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0xc, 0x4, 0x37, 0x66, 0xe6, 0x6d, 0x20,
- 0x0, 0xc, 0x0, 0x1, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0xc, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x10,
- 0x0, 0xd, 0x13, 0x66, 0x66, 0xe6, 0x6a, 0xc0,
- 0x0, 0x4, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
-
- /* U+88FD "製" */
- 0x0, 0x18, 0xb, 0x10, 0x0, 0x0, 0x6, 0x0,
- 0x0, 0x85, 0xc, 0x2, 0x50, 0x0, 0xd, 0x0,
- 0x3, 0x86, 0x6d, 0x66, 0x60, 0xb3, 0xc, 0x0,
- 0x6, 0x75, 0x5d, 0x56, 0xb2, 0xd0, 0xc, 0x0,
- 0x0, 0x76, 0x6d, 0x66, 0x80, 0xd0, 0xc, 0x0,
- 0x0, 0xc0, 0xc, 0x2, 0x90, 0xd0, 0xc, 0x0,
- 0x0, 0xc0, 0xc, 0x37, 0x80, 0x20, 0xc, 0x0,
- 0x0, 0xb0, 0xd, 0x9, 0x20, 0x6, 0xca, 0x0,
- 0x0, 0x0, 0x3, 0x4, 0xa0, 0x0, 0x38, 0x0,
- 0x6, 0x76, 0x66, 0xc7, 0x96, 0x66, 0x89, 0x50,
- 0x0, 0x0, 0x2c, 0x40, 0x42, 0x6, 0xc1, 0x0,
- 0x0, 0x18, 0x9d, 0x0, 0x6, 0x76, 0x0, 0x0,
- 0x15, 0x50, 0xd, 0x16, 0x60, 0x8a, 0x40, 0x0,
- 0x0, 0x0, 0xf, 0xb2, 0x0, 0x3, 0xbf, 0x70,
- 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+8907 "複" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x36, 0x0, 0x0, 0x95, 0x0, 0x0, 0x0,
- 0x0, 0xa, 0x60, 0x0, 0xe1, 0x0, 0x3, 0x40,
- 0x0, 0x2, 0x40, 0x4, 0xb6, 0x66, 0x66, 0x60,
- 0x6, 0x55, 0xc7, 0xa, 0xa6, 0x66, 0x6a, 0x10,
- 0x0, 0x1, 0xe0, 0x43, 0xd0, 0x0, 0xd, 0x0,
- 0x0, 0x7, 0x72, 0x30, 0xd6, 0x66, 0x6d, 0x0,
- 0x0, 0x1e, 0xb, 0x40, 0xd0, 0x0, 0xd, 0x0,
- 0x0, 0x9d, 0x45, 0x0, 0xda, 0x86, 0x6b, 0x0,
- 0x5, 0x4c, 0xa4, 0x0, 0x1c, 0x0, 0x13, 0x0,
- 0x13, 0xc, 0xd, 0x20, 0x9a, 0x66, 0xba, 0x0,
- 0x0, 0xc, 0x2, 0x6, 0x45, 0x11, 0xc0, 0x0,
- 0x0, 0xc, 0x0, 0x21, 0x0, 0x9c, 0x20, 0x0,
- 0x0, 0xc, 0x0, 0x0, 0x5, 0xcb, 0x30, 0x0,
- 0x0, 0xd, 0x0, 0x16, 0x85, 0x2, 0xbc, 0x81,
- 0x0, 0x3, 0x4, 0x30, 0x0, 0x0, 0x1, 0x10,
-
- /* U+897F "西" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0,
- 0x76, 0x66, 0x67, 0x66, 0x86, 0x66, 0xc5, 0x0,
- 0x0, 0x3, 0xa0, 0xd, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x3a, 0x0, 0xd0, 0x0, 0x0, 0x0, 0x86,
- 0x67, 0xc6, 0x6e, 0x66, 0x6c, 0x0, 0xd, 0x0,
- 0x39, 0x0, 0xd0, 0x1, 0xb0, 0x0, 0xd0, 0x5,
- 0x80, 0xd, 0x0, 0x1b, 0x0, 0xd, 0x0, 0x75,
- 0x0, 0xd0, 0x1, 0xb0, 0x0, 0xd0, 0xb, 0x10,
- 0xd, 0x0, 0x1b, 0x0, 0xd, 0x4, 0x60, 0x0,
- 0xcc, 0xd4, 0xb0, 0x0, 0xd1, 0x70, 0x0, 0x0,
- 0x0, 0x1b, 0x0, 0xd, 0x20, 0x0, 0x0, 0x0,
- 0x1, 0xb0, 0x0, 0xd6, 0x66, 0x66, 0x66, 0x66,
- 0x6c, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x1,
- 0xa0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+8981 "要" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9, 0x0,
- 0x2, 0x76, 0x66, 0xc6, 0x6c, 0x66, 0x68, 0x40,
- 0x0, 0x0, 0x0, 0xd0, 0xd, 0x0, 0x10, 0x0,
- 0x0, 0xd, 0x66, 0xe6, 0x6e, 0x66, 0xe3, 0x0,
- 0x0, 0xd, 0x0, 0xd0, 0xd, 0x0, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0xd0, 0xd, 0x0, 0xd0, 0x0,
- 0x0, 0xe, 0x66, 0x96, 0x66, 0x66, 0xc0, 0x0,
- 0x0, 0x1, 0x0, 0xd5, 0x0, 0x0, 0x1, 0x0,
- 0x6, 0x66, 0x68, 0xd6, 0x66, 0x66, 0x6d, 0xa0,
- 0x0, 0x0, 0xc, 0x20, 0x2, 0xd0, 0x0, 0x0,
- 0x0, 0x0, 0x89, 0x10, 0xb, 0x40, 0x0, 0x0,
- 0x0, 0x0, 0x3, 0x68, 0xdd, 0x40, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x5b, 0x63, 0x9e, 0xa1, 0x0,
- 0x0, 0x25, 0x88, 0x50, 0x0, 0x0, 0x8b, 0x0,
- 0x4, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+898B "見" */
- 0x0, 0x3, 0x0, 0x0, 0x0, 0x6, 0x10, 0x0,
- 0x0, 0xb, 0x86, 0x66, 0x66, 0x6e, 0x40, 0x0,
- 0x0, 0xa, 0x30, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0xa, 0x86, 0x66, 0x66, 0x6e, 0x0, 0x0,
- 0x0, 0xa, 0x30, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0xa, 0x86, 0x66, 0x66, 0x6e, 0x0, 0x0,
- 0x0, 0xa, 0x30, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0xa, 0x30, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0xa, 0x87, 0xa6, 0x6a, 0x6f, 0x0, 0x0,
- 0x0, 0x8, 0x13, 0xb0, 0x1d, 0x5, 0x0, 0x0,
- 0x0, 0x0, 0x6, 0x90, 0x1d, 0x0, 0x0, 0x40,
- 0x0, 0x0, 0xb, 0x40, 0x1d, 0x0, 0x0, 0x60,
- 0x0, 0x0, 0x7a, 0x0, 0x1d, 0x0, 0x3, 0x90,
- 0x0, 0x48, 0x60, 0x0, 0xd, 0xcc, 0xce, 0xb0,
- 0x24, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+898F "規" */
- 0x0, 0x9, 0x30, 0x2, 0x0, 0x0, 0x5, 0x0,
- 0x0, 0xb, 0x10, 0xe, 0x66, 0x66, 0x6e, 0x10,
- 0x0, 0xb, 0x10, 0xd, 0x0, 0x0, 0xd, 0x0,
- 0x5, 0x6d, 0x7b, 0x1d, 0x66, 0x66, 0x6d, 0x0,
- 0x1, 0xb, 0x10, 0xd, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0xb, 0x10, 0xd, 0x33, 0x33, 0x3d, 0x0,
- 0x26, 0x6d, 0x6a, 0x7d, 0x22, 0x22, 0x2d, 0x0,
- 0x2, 0xc, 0x10, 0xd, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0xd, 0x10, 0xe, 0x6b, 0x6a, 0x6d, 0x0,
- 0x0, 0xd, 0x74, 0x6, 0x1d, 0xd, 0x2, 0x0,
- 0x0, 0x29, 0xa, 0x70, 0x3b, 0xd, 0x0, 0x0,
- 0x0, 0x82, 0x1, 0x90, 0x86, 0xd, 0x0, 0x40,
- 0x2, 0x70, 0x0, 0x3, 0xa0, 0xd, 0x0, 0x80,
- 0x16, 0x0, 0x0, 0x66, 0x0, 0xd, 0xcc, 0xd1,
- 0x10, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+8996 "視" */
- 0x0, 0x8, 0x0, 0x3, 0x0, 0x0, 0x5, 0x0,
- 0x0, 0x5, 0xb0, 0xe, 0x66, 0x66, 0x6e, 0x0,
- 0x0, 0x0, 0x71, 0xd, 0x0, 0x0, 0xd, 0x0,
- 0x7, 0x66, 0xab, 0xd, 0x66, 0x66, 0x6d, 0x0,
- 0x0, 0x0, 0xc2, 0xd, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0x6, 0x70, 0xd, 0x66, 0x66, 0x6d, 0x0,
- 0x0, 0x2f, 0x30, 0xd, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0x9c, 0x88, 0xd, 0x0, 0x0, 0xd, 0x0,
- 0x7, 0x1b, 0x1b, 0x5e, 0x6b, 0x6a, 0x6d, 0x0,
- 0x20, 0xb, 0x11, 0x15, 0x1d, 0xd, 0x2, 0x0,
- 0x0, 0xb, 0x10, 0x0, 0x4a, 0xd, 0x0, 0x0,
- 0x0, 0xb, 0x10, 0x0, 0xa4, 0xd, 0x0, 0x40,
- 0x0, 0xb, 0x10, 0x5, 0x80, 0xd, 0x0, 0x70,
- 0x0, 0xc, 0x11, 0x65, 0x0, 0xd, 0xcc, 0xc0,
- 0x0, 0x2, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+899A "覚" */
- 0x0, 0x2, 0x0, 0x26, 0x0, 0x7, 0x40, 0x0,
- 0x0, 0x0, 0xc3, 0xa, 0x60, 0xc, 0x30, 0x0,
- 0x0, 0x30, 0x57, 0x3, 0x50, 0x54, 0x2, 0x10,
- 0x2, 0xa6, 0x66, 0x66, 0x66, 0x76, 0x6b, 0xb0,
- 0xc, 0x50, 0x10, 0x0, 0x0, 0x3, 0x9, 0x0,
- 0x5, 0x0, 0xe6, 0x66, 0x66, 0x6e, 0x40, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x0, 0xd6, 0x66, 0x66, 0x6d, 0x0, 0x0,
- 0x0, 0x0, 0xd6, 0x66, 0x66, 0x6d, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x0, 0xd6, 0xb8, 0x6c, 0x6d, 0x0, 0x0,
- 0x0, 0x0, 0x10, 0xe1, 0xd, 0x0, 0x0, 0x50,
- 0x0, 0x0, 0x9, 0x80, 0xd, 0x0, 0x2, 0x70,
- 0x0, 0x26, 0x84, 0x0, 0xd, 0xcc, 0xce, 0xa0,
- 0x3, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+89AA "親" */
- 0x0, 0x4, 0x50, 0x0, 0x20, 0x0, 0x3, 0x0,
- 0x0, 0x0, 0xc2, 0x31, 0xc6, 0x66, 0x6b, 0x50,
- 0x3, 0x86, 0x78, 0xa4, 0xb0, 0x0, 0x9, 0x10,
- 0x0, 0x54, 0x6, 0x70, 0xb6, 0x66, 0x6b, 0x10,
- 0x0, 0xd, 0x7, 0x0, 0xb0, 0x0, 0x9, 0x10,
- 0x7, 0x67, 0x88, 0x79, 0xb6, 0x66, 0x6b, 0x10,
- 0x0, 0x0, 0xc0, 0x0, 0xb0, 0x0, 0x9, 0x10,
- 0x0, 0x0, 0xc0, 0x40, 0xb0, 0x0, 0x9, 0x20,
- 0x3, 0x76, 0xd6, 0x73, 0xb7, 0xa6, 0xab, 0x20,
- 0x0, 0x30, 0xc1, 0x0, 0x54, 0x81, 0xa2, 0x0,
- 0x0, 0xb5, 0xc2, 0x80, 0x6, 0x61, 0xa0, 0x0,
- 0x3, 0x70, 0xc0, 0x79, 0xa, 0x21, 0xa0, 0x40,
- 0x7, 0x10, 0xc0, 0x6, 0x39, 0x1, 0xa0, 0x70,
- 0x0, 0x3c, 0xb0, 0x4, 0x60, 0x0, 0xcb, 0xe2,
- 0x0, 0x0, 0x0, 0x21, 0x0, 0x0, 0x0, 0x0,
-
- /* U+89BA "覺" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x23, 0x8a, 0x13, 0x49, 0x46, 0x96, 0x0,
- 0x0, 0x3b, 0x0, 0x7, 0xc7, 0x10, 0x84, 0x0,
- 0x0, 0x1c, 0x69, 0x31, 0x4, 0x37, 0xc2, 0x0,
- 0x0, 0xb, 0x4, 0x6, 0x8a, 0x0, 0xb1, 0x0,
- 0x0, 0xd, 0x65, 0x36, 0x98, 0x27, 0xd0, 0x0,
- 0x5, 0x7b, 0x66, 0x66, 0x67, 0x66, 0xb8, 0xb0,
- 0x1e, 0x10, 0x74, 0x44, 0x44, 0x48, 0x18, 0x10,
- 0x2, 0x0, 0xd2, 0x22, 0x22, 0x2c, 0x0, 0x0,
- 0x0, 0x0, 0xd6, 0x66, 0x66, 0x6d, 0x0, 0x0,
- 0x0, 0x0, 0xd6, 0x66, 0x66, 0x6d, 0x0, 0x0,
- 0x0, 0x0, 0xd6, 0x66, 0x66, 0x6d, 0x0, 0x0,
- 0x0, 0x0, 0x50, 0xc1, 0xb, 0x4, 0x0, 0x50,
- 0x0, 0x0, 0x8, 0x70, 0xb, 0x0, 0x0, 0x80,
- 0x0, 0x15, 0x74, 0x0, 0xd, 0xbb, 0xbc, 0xd0,
- 0x3, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+89C0 "觀" */
- 0x0, 0x47, 0x9, 0x10, 0x20, 0x0, 0x3, 0x0,
- 0x0, 0x57, 0xc, 0x33, 0xc6, 0x66, 0x6c, 0x40,
- 0x7, 0x9a, 0x6d, 0x64, 0xc0, 0x0, 0xa, 0x0,
- 0x2, 0x36, 0x25, 0x12, 0xc6, 0x66, 0x6c, 0x0,
- 0xb, 0x6c, 0x6a, 0x97, 0xc0, 0x0, 0xa, 0x0,
- 0xb, 0x5c, 0x4a, 0x85, 0xc6, 0x66, 0x6c, 0x0,
- 0x4, 0x74, 0x80, 0x0, 0xc0, 0x0, 0xa, 0x0,
- 0x0, 0xc1, 0x72, 0x30, 0xc0, 0x0, 0xa, 0x10,
- 0x7, 0xb6, 0xa6, 0x83, 0xc7, 0xa7, 0xac, 0x10,
- 0x19, 0xb6, 0xc6, 0x91, 0x44, 0x82, 0x92, 0x0,
- 0x3, 0x90, 0xb1, 0x0, 0x6, 0x62, 0x90, 0x0,
- 0x3, 0xb6, 0xc6, 0xa1, 0xa, 0x22, 0x90, 0x40,
- 0x3, 0x90, 0xb1, 0x40, 0x39, 0x2, 0x90, 0x70,
- 0x3, 0xa6, 0x66, 0x67, 0x60, 0x0, 0xdb, 0xd1,
- 0x0, 0x0, 0x0, 0x21, 0x0, 0x0, 0x0, 0x0,
-
- /* U+89D2 "角" */
- 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x8a, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1e, 0x76, 0x67, 0xc1, 0x0, 0x0, 0x0,
- 0x9, 0x70, 0x0, 0x89, 0x10, 0x0, 0x0, 0x4,
- 0xc0, 0x0, 0x8, 0x0, 0x2, 0x0, 0x2, 0xcd,
- 0x66, 0x6b, 0x66, 0x68, 0xe0, 0x3, 0x80, 0xd0,
- 0x0, 0xe0, 0x0, 0x3a, 0x0, 0x10, 0xe, 0x66,
- 0x6e, 0x66, 0x68, 0xa0, 0x0, 0x0, 0xd0, 0x0,
- 0xe0, 0x0, 0x3a, 0x0, 0x0, 0xd, 0x0, 0xe,
- 0x0, 0x3, 0xa0, 0x0, 0x1, 0xd6, 0x66, 0xe6,
- 0x66, 0x8a, 0x0, 0x0, 0x48, 0x0, 0xe, 0x0,
- 0x3, 0xa0, 0x0, 0x9, 0x30, 0x0, 0xe0, 0x0,
- 0x3a, 0x0, 0x3, 0xa0, 0x0, 0xe, 0x0, 0x3,
- 0xa0, 0x2, 0x80, 0x0, 0x0, 0xe0, 0x49, 0xd9,
- 0x0, 0x40, 0x0, 0x0, 0x1, 0x0, 0x7, 0x10,
-
- /* U+89E3 "解" */
- 0x0, 0x6, 0x60, 0x0, 0x0, 0x0, 0x2, 0x10,
- 0x0, 0xc, 0x20, 0x0, 0x66, 0xd6, 0x6b, 0x60,
- 0x0, 0x3c, 0x6c, 0x70, 0x3, 0xb0, 0x9, 0x30,
- 0x0, 0xa2, 0xa, 0x0, 0xa, 0x40, 0xb, 0x20,
- 0x4, 0xd6, 0x97, 0xa3, 0x58, 0x4, 0x9d, 0x0,
- 0x15, 0xc0, 0xc0, 0xc3, 0x33, 0xa, 0x31, 0x0,
- 0x0, 0xc1, 0xc1, 0xc0, 0xe, 0x2d, 0x0, 0x0,
- 0x0, 0xd5, 0xd5, 0xd0, 0x6b, 0x6e, 0x6c, 0x30,
- 0x0, 0xc0, 0xc0, 0xc0, 0xa0, 0xd, 0x0, 0x0,
- 0x0, 0xd6, 0xd6, 0xd3, 0x10, 0xd, 0x0, 0x40,
- 0x0, 0xb0, 0xc0, 0xc4, 0x76, 0x6e, 0x66, 0x81,
- 0x2, 0x80, 0xc0, 0xc0, 0x0, 0xd, 0x0, 0x0,
- 0x7, 0x20, 0xc0, 0xc0, 0x0, 0xd, 0x0, 0x0,
- 0x7, 0x0, 0x56, 0xd0, 0x0, 0xe, 0x0, 0x0,
- 0x20, 0x0, 0x0, 0x40, 0x0, 0x5, 0x0, 0x0,
-
- /* U+89E6 "触" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x7, 0x80, 0x0, 0x0, 0x9, 0x10, 0x0,
- 0x0, 0xc, 0x31, 0x0, 0x0, 0xc, 0x0, 0x0,
- 0x0, 0x3c, 0x6c, 0x80, 0x0, 0xc, 0x0, 0x0,
- 0x0, 0xb2, 0xa, 0x0, 0x20, 0xc, 0x3, 0x0,
- 0x6, 0xd6, 0x97, 0xc3, 0xb6, 0x6d, 0x6c, 0x40,
- 0x14, 0xc0, 0xb0, 0xb0, 0xa1, 0xc, 0xa, 0x10,
- 0x0, 0xc6, 0xc6, 0xd0, 0xa1, 0xc, 0xa, 0x10,
- 0x0, 0xc0, 0xb0, 0xb0, 0xa1, 0xc, 0xa, 0x10,
- 0x0, 0xc0, 0xb0, 0xb0, 0xb4, 0x3c, 0x3b, 0x10,
- 0x0, 0xd6, 0xc6, 0xd0, 0x93, 0x3c, 0x37, 0x10,
- 0x0, 0xb0, 0xb0, 0xb0, 0x0, 0xc, 0x11, 0x0,
- 0x2, 0x80, 0xb0, 0xb0, 0x0, 0xc, 0x9, 0x10,
- 0x7, 0x10, 0xb0, 0xb2, 0x45, 0x6d, 0x57, 0xb0,
- 0x6, 0x0, 0x56, 0xe4, 0xb6, 0x30, 0x0, 0x90,
- 0x10, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0,
-
- /* U+8A00 "言" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2, 0xa2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x7a, 0x0, 0x0, 0x10, 0x36, 0x66, 0x66,
- 0x78, 0x66, 0x67, 0xe3, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xa2, 0x0, 0x0, 0x27, 0x66, 0x66, 0x66, 0x64,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0,
- 0x0, 0x37, 0x66, 0x66, 0x66, 0xa7, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1b,
- 0x66, 0x66, 0x66, 0xd4, 0x0, 0x0, 0x1e, 0x0,
- 0x0, 0x0, 0xd1, 0x0, 0x0, 0x1e, 0x0, 0x0,
- 0x0, 0xd1, 0x0, 0x0, 0x1e, 0x66, 0x66, 0x66,
- 0xe1, 0x0, 0x0, 0x1e, 0x0, 0x0, 0x0, 0xd1,
- 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x10, 0x0,
-
- /* U+8A08 "計" */
- 0x0, 0x5, 0x50, 0x0, 0x0, 0xb, 0x10, 0x0,
- 0x0, 0x0, 0xd3, 0x1, 0x0, 0xe, 0x0, 0x0,
- 0x6, 0x66, 0xb6, 0x8c, 0x10, 0xd, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x1, 0x44, 0x44, 0xa0, 0x0, 0xd, 0x0, 0x30,
- 0x0, 0x32, 0x22, 0x22, 0x86, 0x6e, 0x66, 0x94,
- 0x0, 0x0, 0x0, 0x60, 0x0, 0xd, 0x0, 0x0,
- 0x1, 0x76, 0x66, 0x73, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x10, 0x0, 0xd, 0x0, 0x0,
- 0x3, 0xc6, 0x66, 0xe1, 0x0, 0xd, 0x0, 0x0,
- 0x2, 0xa0, 0x0, 0xd0, 0x0, 0xd, 0x0, 0x0,
- 0x2, 0xa0, 0x0, 0xd0, 0x0, 0xe, 0x0, 0x0,
- 0x2, 0xc6, 0x66, 0xd0, 0x0, 0xe, 0x0, 0x0,
- 0x3, 0xa0, 0x0, 0xd0, 0x0, 0x1e, 0x0, 0x0,
- 0x1, 0x20, 0x0, 0x10, 0x0, 0x2, 0x0, 0x0,
-
- /* U+8A0A "訊" */
- 0x0, 0x7, 0x30, 0x0, 0x0, 0x1, 0x50, 0x0,
- 0x0, 0x2, 0xf0, 0x17, 0xd7, 0x68, 0xc0, 0x0,
- 0x6, 0x66, 0xc6, 0xa4, 0xb2, 0x3, 0xa0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xb2, 0x3, 0x90, 0x0,
- 0x1, 0x66, 0x68, 0x70, 0xb2, 0x3, 0x90, 0x0,
- 0x0, 0x20, 0x0, 0x0, 0xb2, 0x3, 0x90, 0x0,
- 0x0, 0x0, 0x4, 0x27, 0xd8, 0xc4, 0x90, 0x0,
- 0x1, 0x76, 0x66, 0x40, 0xb2, 0x1, 0xa0, 0x0,
- 0x0, 0x0, 0x0, 0x10, 0xb2, 0x0, 0xc0, 0x0,
- 0x3, 0xc6, 0x68, 0xc0, 0xb2, 0x0, 0xd0, 0x0,
- 0x2, 0xa0, 0x3, 0xa0, 0xb2, 0x0, 0xb2, 0x30,
- 0x2, 0xa0, 0x3, 0xa0, 0xb2, 0x0, 0x68, 0x70,
- 0x2, 0xc6, 0x67, 0xa0, 0xb2, 0x0, 0xd, 0xc0,
- 0x3, 0xa0, 0x3, 0xa0, 0xb2, 0x0, 0x3, 0xe0,
- 0x1, 0x20, 0x0, 0x0, 0x10, 0x0, 0x0, 0x10,
-
- /* U+8A0E "討" */
- 0x0, 0x6, 0x20, 0x0, 0x0, 0x1, 0xb1, 0x0,
- 0x0, 0x1, 0xe1, 0x0, 0x0, 0x1, 0xe0, 0x0,
- 0x6, 0x66, 0xc6, 0xa8, 0x0, 0x1, 0xe0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xe0, 0x50,
- 0x1, 0x66, 0x68, 0x94, 0x65, 0x56, 0xe6, 0x83,
- 0x0, 0x20, 0x0, 0x0, 0x0, 0x1, 0xe0, 0x0,
- 0x0, 0x0, 0x3, 0x11, 0x70, 0x1, 0xe0, 0x0,
- 0x1, 0x76, 0x67, 0x50, 0x6a, 0x1, 0xe0, 0x0,
- 0x0, 0x0, 0x0, 0x10, 0xe, 0x21, 0xe0, 0x0,
- 0x3, 0xb6, 0x67, 0xd0, 0x3, 0x1, 0xe0, 0x0,
- 0x2, 0xa0, 0x3, 0xa0, 0x0, 0x1, 0xe0, 0x0,
- 0x2, 0xa0, 0x3, 0xa0, 0x0, 0x1, 0xe0, 0x0,
- 0x2, 0xc6, 0x67, 0xa0, 0x2, 0x2, 0xe0, 0x0,
- 0x3, 0xa0, 0x3, 0xa0, 0x3, 0xaf, 0xc0, 0x0,
- 0x1, 0x20, 0x0, 0x10, 0x0, 0x6, 0x10, 0x0,
-
- /* U+8A13 "訓" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x9, 0x30, 0x0, 0x74, 0x2, 0x0, 0xb0,
- 0x0, 0x5, 0xc0, 0x10, 0xa4, 0xd, 0x20, 0xd0,
- 0x6, 0x67, 0x86, 0x94, 0x93, 0xd, 0x0, 0xd0,
- 0x0, 0x0, 0x0, 0x10, 0x93, 0xd, 0x0, 0xd0,
- 0x1, 0x76, 0x67, 0x70, 0x93, 0xd, 0x0, 0xd0,
- 0x0, 0x0, 0x0, 0x0, 0x93, 0xd, 0x0, 0xd0,
- 0x0, 0x76, 0x69, 0x70, 0xa3, 0xd, 0x0, 0xd0,
- 0x0, 0x0, 0x0, 0x0, 0xb2, 0xd, 0x0, 0xd0,
- 0x2, 0x86, 0x67, 0x90, 0xc0, 0xd, 0x0, 0xd0,
- 0x3, 0xa0, 0x3, 0xa0, 0xc0, 0xd, 0x0, 0xd0,
- 0x2, 0xa0, 0x3, 0xa3, 0x90, 0xd, 0x0, 0xd0,
- 0x2, 0xa0, 0x3, 0xa9, 0x30, 0xd, 0x0, 0xd0,
- 0x3, 0xc6, 0x67, 0xa8, 0x0, 0x8, 0x0, 0xd0,
- 0x2, 0x40, 0x1, 0x80, 0x0, 0x0, 0x0, 0xd0,
- 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x10,
-
- /* U+8A18 "記" */
- 0x0, 0x8, 0x10, 0x0, 0x0, 0x0, 0x2, 0x0,
- 0x0, 0x6, 0xa0, 0x2, 0x76, 0x66, 0x6f, 0x30,
- 0x7, 0x67, 0x96, 0xa5, 0x0, 0x0, 0xe, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe, 0x0,
- 0x1, 0x66, 0x66, 0xa0, 0x0, 0x0, 0xe, 0x0,
- 0x0, 0x10, 0x0, 0x0, 0x85, 0x55, 0x5e, 0x0,
- 0x0, 0x0, 0x3, 0x30, 0xc1, 0x0, 0x9, 0x0,
- 0x1, 0x76, 0x66, 0x50, 0xc1, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x20, 0xc1, 0x0, 0x0, 0x0,
- 0x3, 0xc6, 0x66, 0xe0, 0xc1, 0x0, 0x0, 0x0,
- 0x2, 0xa0, 0x0, 0xd0, 0xc1, 0x0, 0x0, 0x40,
- 0x2, 0xa0, 0x0, 0xd0, 0xc1, 0x0, 0x0, 0x70,
- 0x2, 0xc6, 0x66, 0xd0, 0xc2, 0x0, 0x0, 0xc0,
- 0x3, 0xa0, 0x0, 0xd0, 0x5d, 0xdd, 0xde, 0xc1,
- 0x1, 0x20, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
-
- /* U+8A2A "訪" */
- 0x0, 0x54, 0x0, 0x0, 0x4, 0x70, 0x0, 0x0,
- 0x0, 0xe, 0x20, 0x0, 0x0, 0xa9, 0x0, 0x0,
- 0x37, 0x6b, 0x69, 0x70, 0x0, 0x37, 0x1, 0x10,
- 0x0, 0x0, 0x0, 0x7, 0x5b, 0x55, 0x58, 0x70,
- 0x5, 0x66, 0x6a, 0x0, 0xf, 0x0, 0x0, 0x0,
- 0x1, 0x0, 0x0, 0x0, 0xe, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x3, 0x0, 0x1e, 0x66, 0x6e, 0x20,
- 0x5, 0x66, 0x66, 0x0, 0x2a, 0x0, 0xe, 0x0,
- 0x0, 0x0, 0x2, 0x0, 0x57, 0x0, 0xd, 0x0,
- 0xb, 0x66, 0x6e, 0x10, 0x83, 0x0, 0xc, 0x0,
- 0xb, 0x10, 0xd, 0x0, 0xb0, 0x0, 0x2b, 0x0,
- 0xb, 0x10, 0xd, 0x4, 0x60, 0x0, 0x49, 0x0,
- 0xb, 0x66, 0x6d, 0x9, 0x1, 0x30, 0x96, 0x0,
- 0xc, 0x10, 0xc, 0x61, 0x0, 0x4e, 0xd0, 0x0,
- 0x1, 0x0, 0x0, 0x10, 0x0, 0x2, 0x0, 0x0,
-
- /* U+8A2D "設" */
- 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x68, 0x0, 0x0, 0x96, 0x6b, 0x40, 0x0,
- 0x0, 0xd, 0x22, 0x0, 0xe0, 0xb, 0x20, 0x0,
- 0x37, 0x69, 0x69, 0x50, 0xd0, 0xb, 0x20, 0x0,
- 0x0, 0x0, 0x1, 0x0, 0xc0, 0xb, 0x20, 0x0,
- 0x6, 0x66, 0x69, 0x5, 0x70, 0xa, 0x42, 0x30,
- 0x0, 0x0, 0x0, 0xa, 0x0, 0x4, 0xaa, 0x70,
- 0x3, 0x66, 0x79, 0x56, 0x66, 0x66, 0xd4, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x50, 0x3, 0xf5, 0x0,
- 0x3, 0x0, 0x4, 0x0, 0x60, 0xa, 0x90, 0x0,
- 0xb, 0x66, 0x6d, 0x0, 0x27, 0x3d, 0x0, 0x0,
- 0xb, 0x10, 0x1c, 0x0, 0xa, 0xc2, 0x0, 0x0,
- 0xb, 0x10, 0x1c, 0x0, 0xa, 0xc1, 0x0, 0x0,
- 0xb, 0x66, 0x6c, 0x0, 0x93, 0x4d, 0x40, 0x0,
- 0xb, 0x10, 0x8, 0x38, 0x10, 0x4, 0xec, 0x71,
- 0x1, 0x0, 0x2, 0x20, 0x0, 0x0, 0x18, 0x10,
-
- /* U+8A31 "許" */
- 0x0, 0x46, 0x0, 0x0, 0x48, 0x0, 0x0, 0x0,
- 0x0, 0xd5, 0x0, 0x7, 0x70, 0x0, 0x0, 0x27,
- 0x6a, 0x77, 0x80, 0xb1, 0x0, 0x12, 0x0, 0x0,
- 0x0, 0x0, 0x1c, 0x6a, 0x67, 0x80, 0x4, 0x66,
- 0x79, 0x7, 0x20, 0xc1, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0x70, 0xc, 0x10, 0x0, 0x3, 0x66, 0x78,
- 0x30, 0x0, 0xc1, 0x0, 0x0, 0x1, 0x0, 0x0,
- 0x22, 0x2d, 0x32, 0x95, 0x2, 0x0, 0x4, 0x5,
- 0x33, 0xd4, 0x33, 0x30, 0xb6, 0x66, 0xe0, 0x0,
- 0xc, 0x10, 0x0, 0xb, 0x10, 0x1c, 0x0, 0x0,
- 0xc1, 0x0, 0x0, 0xb1, 0x1, 0xc0, 0x0, 0xc,
- 0x10, 0x0, 0xb, 0x66, 0x6c, 0x0, 0x0, 0xd1,
- 0x0, 0x0, 0xc1, 0x0, 0x90, 0x0, 0xd, 0x10,
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0,
- 0x0,
-
- /* U+8A33 "訳" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x75, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
- 0x0, 0x1d, 0x1, 0x1a, 0x76, 0x66, 0x6e, 0x20,
- 0x37, 0x67, 0x67, 0x5a, 0x30, 0x0, 0xd, 0x0,
- 0x0, 0x0, 0x2, 0xa, 0x30, 0x0, 0xd, 0x0,
- 0x4, 0x76, 0x66, 0xa, 0x30, 0x0, 0xd, 0x0,
- 0x0, 0x0, 0x0, 0x9, 0x87, 0x66, 0x6e, 0x0,
- 0x4, 0x66, 0x78, 0xa, 0x34, 0x20, 0x3, 0x0,
- 0x0, 0x0, 0x0, 0xa, 0x21, 0x60, 0x0, 0x0,
- 0x8, 0x66, 0x6a, 0xb, 0x10, 0x90, 0x0, 0x0,
- 0xc, 0x0, 0xd, 0xc, 0x0, 0xa1, 0x0, 0x0,
- 0xc, 0x0, 0xd, 0xb, 0x0, 0x49, 0x0, 0x0,
- 0xc, 0x0, 0xd, 0x47, 0x0, 0xc, 0x40, 0x0,
- 0xc, 0x66, 0x6d, 0x91, 0x0, 0x2, 0xe3, 0x0,
- 0x7, 0x0, 0x4, 0x60, 0x0, 0x0, 0x6f, 0x90,
- 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x4, 0x10,
-
- /* U+8A34 "訴" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x6, 0x80, 0x0, 0x0, 0x0, 0x29, 0x60, 0x0,
- 0xd, 0x30, 0x10, 0xa7, 0x99, 0x64, 0x2, 0x76,
- 0x86, 0x77, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x2, 0x0, 0xd0, 0x0, 0x0, 0x0, 0x37, 0x66,
- 0x80, 0xe, 0x66, 0x66, 0xa8, 0x0, 0x0, 0x0,
- 0x0, 0xd0, 0xc, 0x20, 0x0, 0x37, 0x66, 0x90,
- 0xd, 0x10, 0xc2, 0x0, 0x0, 0x0, 0x0, 0x1,
- 0xc0, 0x6e, 0x60, 0x0, 0x76, 0x66, 0xa1, 0x3a,
- 0x0, 0xc9, 0xe3, 0xa, 0x20, 0xd, 0x5, 0x70,
- 0xc, 0x25, 0x90, 0xa2, 0x0, 0xd0, 0xa2, 0x0,
- 0xc2, 0x0, 0xa, 0x20, 0xd, 0x1b, 0x0, 0xc,
- 0x20, 0x0, 0xa7, 0x66, 0xd8, 0x20, 0x0, 0xc2,
- 0x0, 0x8, 0x10, 0x5, 0x50, 0x0, 0xc, 0x20,
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x10, 0x0,
-
- /* U+8A55 "評" */
- 0x0, 0x54, 0x0, 0x0, 0x0, 0x0, 0x6, 0x0,
- 0x0, 0xd, 0x40, 0x4, 0x66, 0xd6, 0x66, 0x20,
- 0x27, 0x6a, 0x79, 0x64, 0x0, 0xc1, 0x8, 0x20,
- 0x0, 0x0, 0x0, 0x5, 0x90, 0xc1, 0x1e, 0x20,
- 0x4, 0x66, 0x78, 0x0, 0xe3, 0xc1, 0x66, 0x0,
- 0x1, 0x0, 0x0, 0x0, 0xa3, 0xc1, 0x80, 0x0,
- 0x0, 0x0, 0x23, 0x0, 0x0, 0xc2, 0x11, 0x10,
- 0x5, 0x66, 0x64, 0x27, 0x66, 0xd6, 0x6a, 0x90,
- 0x1, 0x0, 0x2, 0x0, 0x0, 0xc1, 0x0, 0x0,
- 0xc, 0x66, 0x6e, 0x10, 0x0, 0xc1, 0x0, 0x0,
- 0xb, 0x10, 0xd, 0x0, 0x0, 0xc1, 0x0, 0x0,
- 0xb, 0x10, 0xd, 0x0, 0x0, 0xc1, 0x0, 0x0,
- 0xb, 0x66, 0x6d, 0x0, 0x0, 0xd1, 0x0, 0x0,
- 0xc, 0x10, 0xd, 0x0, 0x0, 0xd1, 0x0, 0x0,
- 0x2, 0x0, 0x1, 0x0, 0x0, 0x20, 0x0, 0x0,
-
- /* U+8A66 "試" */
- 0x0, 0x53, 0x0, 0x0, 0x0, 0x92, 0x0, 0x0,
- 0x0, 0xe2, 0x0, 0x0, 0xc, 0x19, 0x70, 0x26,
- 0x6b, 0x68, 0x80, 0x0, 0xc1, 0xb, 0x0, 0x0,
- 0x0, 0x4, 0x55, 0x5d, 0x55, 0xb4, 0x4, 0x66,
- 0x78, 0x10, 0x0, 0xb1, 0x0, 0x0, 0x11, 0x0,
- 0x0, 0x0, 0xa, 0x30, 0x0, 0x0, 0x0, 0x12,
- 0x24, 0x49, 0x94, 0x0, 0x0, 0x56, 0x66, 0x61,
- 0x2d, 0x27, 0x60, 0x0, 0x0, 0x0, 0x1, 0x0,
- 0xd0, 0x48, 0x0, 0x0, 0xb6, 0x66, 0xe0, 0xd,
- 0x0, 0xc0, 0x0, 0xb, 0x10, 0x1c, 0x0, 0xd0,
- 0x2b, 0x20, 0x20, 0xb1, 0x1, 0xc2, 0x7d, 0x60,
- 0x4a, 0x24, 0xb, 0x66, 0x6c, 0x57, 0x0, 0x0,
- 0xbc, 0x40, 0xb1, 0x1, 0xc0, 0x0, 0x0, 0x1,
- 0xb7, 0x4, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x10,
-
- /* U+8A71 "話" */
- 0x0, 0x54, 0x0, 0x0, 0x0, 0x0, 0x6, 0x20,
- 0x0, 0xe, 0x20, 0x3, 0x57, 0x9b, 0xdc, 0x70,
- 0x27, 0x6a, 0x68, 0x61, 0x11, 0xd0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0x3, 0x44, 0x56, 0x0, 0x0, 0xd0, 0x2, 0x70,
- 0x2, 0x22, 0x21, 0x46, 0x66, 0xe6, 0x66, 0x50,
- 0x0, 0x0, 0x13, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0x5, 0x66, 0x64, 0x1, 0x0, 0xd0, 0x2, 0x0,
- 0x1, 0x0, 0x2, 0xd, 0x66, 0x96, 0x7e, 0x0,
- 0xb, 0x66, 0x7d, 0xd, 0x0, 0x0, 0x1c, 0x0,
- 0xb, 0x10, 0x1c, 0xd, 0x0, 0x0, 0x1c, 0x0,
- 0xb, 0x10, 0x1c, 0xd, 0x0, 0x0, 0x1c, 0x0,
- 0xb, 0x66, 0x6c, 0xd, 0x66, 0x66, 0x6c, 0x0,
- 0xb, 0x10, 0x1b, 0xd, 0x0, 0x0, 0x1c, 0x0,
- 0x1, 0x0, 0x0, 0x2, 0x0, 0x0, 0x1, 0x0,
-
- /* U+8A72 "該" */
- 0x0, 0x52, 0x0, 0x0, 0x7, 0x40, 0x0, 0x0,
- 0x0, 0x1e, 0x20, 0x0, 0x0, 0xe3, 0x0, 0x0,
- 0x26, 0x6c, 0x68, 0x80, 0x0, 0x42, 0x1, 0x60,
- 0x0, 0x0, 0x0, 0x17, 0x67, 0x96, 0x66, 0x71,
- 0x4, 0x66, 0x78, 0x0, 0xa, 0x90, 0x10, 0x0,
- 0x1, 0x10, 0x0, 0x0, 0x78, 0x0, 0x8c, 0x0,
- 0x0, 0x0, 0x12, 0xa, 0xa6, 0x77, 0xe3, 0x0,
- 0x5, 0x66, 0x66, 0x7, 0x74, 0x2c, 0x30, 0x0,
- 0x0, 0x0, 0x1, 0x0, 0x1, 0xb3, 0x1e, 0x30,
- 0xb, 0x66, 0x6e, 0x0, 0x49, 0x10, 0xb9, 0x0,
- 0xb, 0x10, 0x1c, 0x26, 0x30, 0x9, 0x90, 0x0,
- 0xb, 0x10, 0x1c, 0x0, 0x0, 0xa8, 0x96, 0x0,
- 0xb, 0x66, 0x6c, 0x0, 0x2b, 0x50, 0xa, 0xa0,
- 0xc, 0x10, 0x1c, 0x7, 0x81, 0x0, 0x1, 0xf0,
- 0x4, 0x0, 0x1, 0x20, 0x0, 0x0, 0x0, 0x20,
-
- /* U+8A73 "詳" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x45, 0x0, 0x1, 0x50, 0x0, 0xb7, 0x0,
- 0x0, 0xe, 0x30, 0x10, 0x87, 0x1, 0xd1, 0x0,
- 0x27, 0x69, 0x68, 0x80, 0x2d, 0x6, 0x40, 0x0,
- 0x0, 0x0, 0x0, 0x36, 0x68, 0x6b, 0x6a, 0x90,
- 0x4, 0x66, 0x79, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x1, 0x0, 0x0, 0x0, 0x0, 0xe0, 0x1, 0x0,
- 0x0, 0x0, 0x23, 0x4, 0x76, 0xe6, 0x8a, 0x0,
- 0x5, 0x66, 0x64, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0x1, 0x0, 0x2, 0x0, 0x0, 0xe0, 0x0, 0x10,
- 0xb, 0x65, 0x6e, 0x47, 0x66, 0xe6, 0x69, 0xa0,
- 0xb, 0x10, 0x1c, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0xb, 0x10, 0x1c, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0xb, 0x66, 0x6c, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0xb, 0x10, 0x9, 0x0, 0x0, 0xf0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0,
-
- /* U+8A8C "誌" */
- 0x0, 0x64, 0x0, 0x0, 0x0, 0x92, 0x0, 0x0,
- 0x0, 0xf, 0x20, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0x27, 0x6b, 0x68, 0x70, 0x0, 0xd0, 0x3, 0x10,
- 0x0, 0x0, 0x0, 0x17, 0x55, 0xe5, 0x59, 0x70,
- 0x4, 0x66, 0x78, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0x1, 0x10, 0x0, 0x0, 0x0, 0xd0, 0x3, 0x0,
- 0x0, 0x0, 0x13, 0x4, 0x76, 0x96, 0x79, 0x0,
- 0x5, 0x66, 0x65, 0x0, 0x2, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x1, 0x0, 0x20, 0xb4, 0x0, 0x0,
- 0xb, 0x66, 0x6e, 0x2, 0xd2, 0x4c, 0x6, 0x0,
- 0xb, 0x10, 0x1c, 0x16, 0xd0, 0x1, 0x5, 0xd0,
- 0xb, 0x10, 0x1c, 0x86, 0xd0, 0x0, 0x50, 0xb2,
- 0xb, 0x66, 0x6c, 0xa1, 0xc2, 0x0, 0xa1, 0x0,
- 0xb, 0x10, 0x1c, 0x0, 0x5b, 0xcc, 0xa1, 0x0,
- 0x4, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+8A8D "認" */
- 0x0, 0x56, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
- 0x0, 0xd, 0x30, 0x4, 0x77, 0x86, 0x6d, 0x40,
- 0x27, 0x69, 0x68, 0x61, 0x6, 0x70, 0xd, 0x0,
- 0x0, 0x0, 0x0, 0x7, 0x9, 0x50, 0xd, 0x0,
- 0x4, 0x66, 0x78, 0x2d, 0xd, 0x0, 0xe, 0x0,
- 0x1, 0x10, 0x0, 0x12, 0x68, 0x0, 0x3c, 0x0,
- 0x0, 0x0, 0x12, 0x2, 0xb0, 0x38, 0xb7, 0x0,
- 0x5, 0x66, 0x64, 0x17, 0x1, 0x43, 0x80, 0x0,
- 0x2, 0x0, 0x2, 0x0, 0x20, 0x95, 0x0, 0x0,
- 0xb, 0x66, 0x6e, 0x2, 0xd2, 0x4a, 0x14, 0x0,
- 0xb, 0x10, 0x1c, 0x26, 0xd0, 0x0, 0x7, 0x80,
- 0xb, 0x10, 0x1c, 0xa5, 0xd0, 0x0, 0x60, 0xc0,
- 0xb, 0x66, 0x6c, 0x60, 0xc2, 0x0, 0xc1, 0x0,
- 0xb, 0x10, 0x1c, 0x0, 0x4b, 0xcc, 0xa1, 0x0,
- 0x3, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+8A95 "誕" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x81, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0,
- 0x0, 0x4a, 0x4, 0x76, 0xd1, 0x15, 0xad, 0x50,
- 0x27, 0x69, 0x97, 0x5, 0xa0, 0x43, 0xc0, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x20, 0x0, 0xc0, 0x0,
- 0x5, 0x66, 0xa1, 0x2c, 0x0, 0x60, 0xc0, 0x0,
- 0x0, 0x0, 0x0, 0xa5, 0x20, 0xc0, 0xd8, 0x50,
- 0x4, 0x66, 0xa2, 0xb6, 0xd6, 0xc0, 0xc1, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xe1, 0xc0, 0xc0, 0x0,
- 0x7, 0x66, 0xa5, 0x11, 0xd0, 0xc0, 0xc0, 0x0,
- 0xa, 0x10, 0xa3, 0x86, 0x70, 0xc0, 0xc1, 0x0,
- 0xa, 0x10, 0xa2, 0x5e, 0x11, 0xc6, 0x98, 0x60,
- 0xa, 0x10, 0xa2, 0x6b, 0xa0, 0x0, 0x0, 0x0,
- 0xa, 0x66, 0xb4, 0x90, 0x5d, 0xa6, 0x43, 0x30,
- 0x5, 0x0, 0x27, 0x0, 0x0, 0x5a, 0xdf, 0x60,
- 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+8A98 "誘" */
- 0x0, 0x82, 0x0, 0x0, 0x0, 0x37, 0xc6, 0x0,
- 0x0, 0x3b, 0x10, 0x5, 0x78, 0xe5, 0x43, 0x0,
- 0x27, 0x68, 0x87, 0x0, 0x0, 0xd0, 0x2, 0x10,
- 0x0, 0x0, 0x10, 0x66, 0x6a, 0xe7, 0x68, 0x70,
- 0x5, 0x66, 0xa1, 0x0, 0x4b, 0xd6, 0x10, 0x0,
- 0x0, 0x0, 0x0, 0x4, 0xa0, 0xd0, 0xc3, 0x0,
- 0x5, 0x65, 0xa1, 0x76, 0x0, 0xe0, 0x2d, 0x90,
- 0x0, 0x0, 0x2, 0x15, 0x66, 0x86, 0x91, 0x10,
- 0x8, 0x55, 0xa3, 0x2, 0x4a, 0x2, 0xc1, 0x0,
- 0xb, 0x10, 0xb2, 0x0, 0x68, 0x8, 0x62, 0x20,
- 0xb, 0x10, 0xb2, 0x0, 0xb4, 0x7, 0x6b, 0x90,
- 0xb, 0x10, 0xb2, 0x2, 0xc0, 0x0, 0xa, 0x40,
- 0xc, 0x66, 0xc2, 0x1b, 0x20, 0x0, 0xd, 0x10,
- 0x6, 0x0, 0x14, 0x81, 0x0, 0x39, 0xc9, 0x0,
- 0x0, 0x0, 0x21, 0x0, 0x0, 0x2, 0x60, 0x0,
-
- /* U+8A9E "語" */
- 0x0, 0x53, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0,
- 0x0, 0xe, 0x20, 0x37, 0x6b, 0x66, 0x79, 0x0,
- 0x26, 0x6b, 0x6a, 0x30, 0x3c, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x5, 0x9c, 0x55, 0xc1, 0x0,
- 0x4, 0x66, 0x77, 0x0, 0x77, 0x0, 0xe0, 0x0,
- 0x1, 0x10, 0x0, 0x0, 0x95, 0x0, 0xd0, 0x0,
- 0x0, 0x0, 0x12, 0x11, 0xb5, 0x12, 0xd3, 0x90,
- 0x5, 0x66, 0x65, 0x45, 0x55, 0x55, 0x55, 0x50,
- 0x0, 0x0, 0x1, 0x4, 0x11, 0x11, 0x26, 0x0,
- 0xb, 0x66, 0x6d, 0xb, 0x75, 0x55, 0x7c, 0x0,
- 0xb, 0x10, 0x1c, 0xb, 0x30, 0x0, 0x3a, 0x0,
- 0xb, 0x10, 0x1c, 0xb, 0x30, 0x0, 0x3a, 0x0,
- 0xb, 0x66, 0x6c, 0xb, 0x76, 0x66, 0x8b, 0x0,
- 0xb, 0x10, 0xb, 0xb, 0x20, 0x0, 0x3a, 0x0,
- 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
-
- /* U+8AAA "說" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x44, 0x0, 0x0, 0xc, 0x27, 0x0, 0x0,
- 0x0, 0xd, 0x30, 0x0, 0x69, 0x8, 0x10, 0x0,
- 0x27, 0x6a, 0x69, 0x70, 0xc0, 0x2, 0xa0, 0x0,
- 0x0, 0x0, 0x0, 0x9, 0x30, 0x0, 0x7c, 0x20,
- 0x4, 0x66, 0x79, 0x54, 0xa6, 0x66, 0x9e, 0x70,
- 0x1, 0x0, 0x0, 0x10, 0xd0, 0x0, 0x75, 0x0,
- 0x0, 0x0, 0x13, 0x0, 0xd0, 0x0, 0x75, 0x0,
- 0x5, 0x66, 0x65, 0x0, 0xd0, 0x0, 0x76, 0x0,
- 0x1, 0x0, 0x2, 0x0, 0xe9, 0x7a, 0xa5, 0x0,
- 0xb, 0x66, 0x6f, 0x10, 0x1a, 0x2d, 0x0, 0x0,
- 0xb, 0x10, 0xd, 0x0, 0xc, 0xd, 0x0, 0x0,
- 0xb, 0x10, 0xd, 0x0, 0x2a, 0xd, 0x0, 0x40,
- 0xb, 0x66, 0x6d, 0x0, 0x92, 0xd, 0x0, 0x70,
- 0xb, 0x10, 0xc, 0x7, 0x30, 0xa, 0xbc, 0xa0,
- 0x1, 0x0, 0x0, 0x41, 0x0, 0x0, 0x0, 0x0,
-
- /* U+8AAC "説" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x64, 0x0, 0x3, 0x40, 0x0, 0xd3, 0x0,
- 0x0, 0xf, 0x20, 0x0, 0xb3, 0x5, 0xb0, 0x0,
- 0x27, 0x6b, 0x6a, 0x30, 0x79, 0xa, 0x10, 0x0,
- 0x0, 0x0, 0x0, 0x6, 0x55, 0x58, 0x58, 0x0,
- 0x5, 0x66, 0x6a, 0xd, 0x22, 0x22, 0x4b, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x3a, 0x0,
- 0x4, 0x66, 0x69, 0xd, 0x0, 0x0, 0x3a, 0x0,
- 0x1, 0x10, 0x0, 0xd, 0x55, 0x55, 0x7a, 0x0,
- 0x3, 0x0, 0x6, 0xb, 0x3b, 0x1d, 0x33, 0x0,
- 0xb, 0x66, 0x6e, 0x0, 0x2a, 0xd, 0x0, 0x0,
- 0xb, 0x10, 0xd, 0x0, 0x48, 0xd, 0x0, 0x30,
- 0xb, 0x10, 0xd, 0x0, 0xa3, 0xd, 0x0, 0x60,
- 0xb, 0x66, 0x6d, 0x5, 0x80, 0xd, 0x0, 0xa0,
- 0x9, 0x0, 0x4, 0x77, 0x0, 0xa, 0xbb, 0xd1,
- 0x0, 0x0, 0x5, 0x10, 0x0, 0x0, 0x0, 0x0,
-
- /* U+8AAD "読" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x72, 0x0, 0x0, 0x1, 0xc0, 0x0, 0x0,
- 0x0, 0x3a, 0x1, 0x0, 0x1, 0xd0, 0x2, 0x0,
- 0x27, 0x68, 0x87, 0x57, 0x66, 0xe6, 0x6a, 0x60,
- 0x0, 0x0, 0x10, 0x0, 0x1, 0xd0, 0x0, 0x0,
- 0x5, 0x66, 0x93, 0x6, 0x66, 0xa6, 0x6a, 0x0,
- 0x0, 0x0, 0x0, 0x12, 0x0, 0x0, 0x0, 0x10,
- 0x5, 0x66, 0xa3, 0x68, 0x66, 0x66, 0x6a, 0xc0,
- 0x0, 0x0, 0x0, 0xd1, 0x41, 0x3, 0x8, 0x10,
- 0x8, 0x66, 0xa3, 0x0, 0xa6, 0xe, 0x10, 0x0,
- 0xc, 0x10, 0xb2, 0x0, 0xb3, 0xd, 0x0, 0x0,
- 0xb, 0x10, 0xb2, 0x0, 0xe0, 0xd, 0x0, 0x40,
- 0xb, 0x10, 0xb2, 0x4, 0xa0, 0xd, 0x0, 0x50,
- 0xc, 0x66, 0xc2, 0x1c, 0x10, 0xd, 0x2, 0x70,
- 0x7, 0x0, 0x22, 0x92, 0x0, 0x9, 0xcd, 0xa0,
- 0x0, 0x0, 0x24, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+8AB0 "誰" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x64, 0x0, 0x0, 0x69, 0x53, 0x0, 0x0,
- 0x0, 0xe, 0x20, 0x0, 0xb3, 0xd, 0x40, 0x0,
- 0x37, 0x6b, 0x6a, 0x61, 0xc0, 0x4, 0x14, 0x40,
- 0x0, 0x0, 0x0, 0x6, 0xc6, 0x6d, 0x66, 0x50,
- 0x5, 0x66, 0x78, 0xc, 0xb0, 0x1c, 0x0, 0x0,
- 0x1, 0x0, 0x0, 0x66, 0xb0, 0x1c, 0x4, 0x0,
- 0x0, 0x0, 0x13, 0x52, 0xc6, 0x6d, 0x68, 0x50,
- 0x6, 0x66, 0x65, 0x2, 0xb0, 0x1c, 0x0, 0x0,
- 0x0, 0x0, 0x1, 0x2, 0xb0, 0x1c, 0x0, 0x0,
- 0xb, 0x66, 0x6e, 0x2, 0xc6, 0x6d, 0x6b, 0x50,
- 0xb, 0x10, 0x1c, 0x2, 0xb0, 0x1c, 0x0, 0x0,
- 0xb, 0x10, 0x1c, 0x2, 0xb0, 0x1c, 0x0, 0x0,
- 0xb, 0x76, 0x6c, 0x2, 0xb0, 0x1c, 0x3, 0x70,
- 0xb, 0x10, 0x1c, 0x2, 0xc6, 0x66, 0x66, 0x50,
- 0x4, 0x0, 0x1, 0x1, 0x30, 0x0, 0x0, 0x0,
-
- /* U+8AB2 "課" */
- 0x0, 0x52, 0x0, 0x4, 0x0, 0x0, 0x5, 0x0,
- 0x0, 0x1f, 0x0, 0xd, 0x66, 0xe6, 0x7d, 0x0,
- 0x27, 0x6b, 0x6a, 0x2d, 0x0, 0xd0, 0x2b, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x66, 0xe6, 0x7b, 0x0,
- 0x5, 0x66, 0x88, 0xd, 0x0, 0xd0, 0x2b, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x66, 0xe6, 0x7b, 0x0,
- 0x4, 0x66, 0x87, 0x7, 0x0, 0xd0, 0x14, 0x0,
- 0x1, 0x0, 0x0, 0x11, 0x11, 0xd1, 0x14, 0x70,
- 0x7, 0x66, 0x69, 0x34, 0x3e, 0xe8, 0x33, 0x30,
- 0xa, 0x20, 0x3a, 0x0, 0x4a, 0xd8, 0x0, 0x0,
- 0xa, 0x20, 0x3a, 0x0, 0xc2, 0xd4, 0x70, 0x0,
- 0xa, 0x20, 0x3a, 0x8, 0x50, 0xd0, 0xb3, 0x0,
- 0xa, 0x76, 0x7a, 0x66, 0x0, 0xd0, 0x2e, 0x80,
- 0x6, 0x10, 0x5, 0x30, 0x0, 0xe0, 0x2, 0x40,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0,
-
- /* U+8ABF "調" */
- 0x0, 0x83, 0x0, 0x4, 0x0, 0x0, 0x1, 0x60,
- 0x0, 0x2f, 0x0, 0xe, 0x66, 0xa8, 0x67, 0xc0,
- 0x27, 0x6a, 0x6a, 0x3d, 0x0, 0x84, 0x3, 0xa0,
- 0x0, 0x0, 0x0, 0xd, 0x17, 0xb8, 0xa4, 0xa0,
- 0x5, 0x76, 0x6a, 0xd, 0x0, 0x84, 0x3, 0xa0,
- 0x0, 0x0, 0x0, 0xd, 0x0, 0x84, 0x44, 0xa0,
- 0x2, 0x33, 0x37, 0xd, 0x66, 0x66, 0x66, 0xa0,
- 0x2, 0x32, 0x22, 0xc, 0x8, 0x66, 0x93, 0xa0,
- 0x3, 0x0, 0x4, 0xc, 0xc, 0x1, 0xb3, 0xa0,
- 0xc, 0x66, 0x6e, 0x2b, 0xc, 0x1, 0xb3, 0xa0,
- 0xb, 0x10, 0x1c, 0x48, 0xd, 0x66, 0xb3, 0xa0,
- 0xb, 0x10, 0x1c, 0x83, 0x6, 0x0, 0x43, 0xa0,
- 0xc, 0x66, 0x6a, 0xa0, 0x0, 0x3, 0x36, 0x90,
- 0x4, 0x0, 0x5, 0x20, 0x0, 0x0, 0x5e, 0x50,
- 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x1, 0x0,
-
- /* U+8AC7 "談" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x93, 0x0, 0x0, 0x9, 0x40, 0x0, 0x0,
- 0x0, 0x2f, 0x1, 0x0, 0x5a, 0x30, 0x4e, 0x20,
- 0x37, 0x69, 0x6a, 0x34, 0x8a, 0x39, 0xb3, 0x0,
- 0x0, 0x0, 0x0, 0x1e, 0x3b, 0xb2, 0x0, 0x0,
- 0x6, 0x66, 0x97, 0x1, 0x1f, 0x77, 0x30, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xa8, 0x1, 0xb9, 0x0,
- 0x5, 0x66, 0x96, 0x19, 0x58, 0x60, 0xb, 0x0,
- 0x1, 0x0, 0x0, 0x20, 0x9, 0x60, 0x2, 0x0,
- 0x3, 0x0, 0x5, 0x0, 0x7b, 0x70, 0x9e, 0x10,
- 0xb, 0x66, 0x6e, 0x1c, 0x4d, 0x99, 0x40, 0x0,
- 0xb, 0x10, 0x1c, 0x26, 0x2c, 0x72, 0x0, 0x0,
- 0xb, 0x10, 0x1c, 0x0, 0xa5, 0x1b, 0x0, 0x0,
- 0xb, 0x66, 0x6c, 0x4, 0xa0, 0x9, 0xa1, 0x0,
- 0xc, 0x10, 0x9, 0x58, 0x0, 0x0, 0xce, 0x81,
- 0x2, 0x0, 0x5, 0x30, 0x0, 0x0, 0x7, 0x20,
-
- /* U+8ACB "請" */
- 0x0, 0x63, 0x0, 0x0, 0x0, 0xa1, 0x0, 0x0,
- 0x0, 0xf, 0x10, 0x0, 0x0, 0xd0, 0x3, 0x10,
- 0x26, 0x5a, 0x5a, 0x47, 0x66, 0xe6, 0x68, 0x60,
- 0x0, 0x0, 0x0, 0x5, 0x66, 0xe6, 0x6b, 0x10,
- 0x5, 0x76, 0x7a, 0x1, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x46, 0x66, 0xe6, 0x69, 0xc0,
- 0x0, 0x0, 0x14, 0x11, 0x0, 0x0, 0x2, 0x0,
- 0x5, 0x66, 0x65, 0xb, 0x66, 0x66, 0x6e, 0x10,
- 0x1, 0x0, 0x2, 0xb, 0x21, 0x11, 0x1d, 0x0,
- 0xb, 0x66, 0x6e, 0xb, 0x65, 0x55, 0x5d, 0x0,
- 0xb, 0x10, 0x1c, 0xb, 0x76, 0x66, 0x6d, 0x0,
- 0xb, 0x10, 0x1c, 0xb, 0x20, 0x0, 0xd, 0x0,
- 0xb, 0x66, 0x6c, 0xb, 0x20, 0x0, 0xd, 0x0,
- 0x8, 0x0, 0x6, 0xb, 0x20, 0x18, 0xeb, 0x0,
- 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x41, 0x0,
-
- /* U+8AD6 "論" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x61, 0x0, 0x0, 0x2, 0xc1, 0x0, 0x0,
- 0x0, 0x2c, 0x0, 0x0, 0x9, 0xc0, 0x0, 0x0,
- 0x27, 0x6b, 0x6c, 0x30, 0x2d, 0x26, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xb3, 0x9, 0x30, 0x0,
- 0x3, 0x44, 0x92, 0xa, 0x40, 0x3, 0xd5, 0x0,
- 0x2, 0x22, 0x22, 0x93, 0x76, 0x6a, 0x7d, 0xb1,
- 0x0, 0x0, 0x44, 0x2, 0x0, 0x0, 0x4, 0x10,
- 0x5, 0x66, 0x62, 0xd, 0x6c, 0x6c, 0x6d, 0x20,
- 0x1, 0x0, 0x20, 0xc, 0xc, 0xc, 0xc, 0x0,
- 0xa, 0x65, 0xd5, 0xd, 0x6d, 0x6d, 0x6d, 0x0,
- 0xa, 0x10, 0xb1, 0xc, 0xc, 0xc, 0xc, 0x0,
- 0xa, 0x10, 0xb1, 0xc, 0xc, 0xc, 0xc, 0x0,
- 0xa, 0x66, 0xc1, 0xc, 0xb, 0x9, 0xc, 0x0,
- 0xb, 0x10, 0xa1, 0xc, 0x0, 0x4, 0x9e, 0x0,
- 0x3, 0x0, 0x10, 0x2, 0x0, 0x0, 0x34, 0x0,
-
- /* U+8AF8 "諸" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x73, 0x0, 0x0, 0xc, 0x10, 0x0, 0x0,
- 0x0, 0x1c, 0x1, 0x0, 0xd, 0x0, 0xb, 0x70,
- 0x27, 0x68, 0x78, 0x26, 0x6e, 0x6c, 0x6d, 0x0,
- 0x0, 0x0, 0x10, 0x2, 0xd, 0x0, 0xc3, 0x0,
- 0x5, 0x66, 0xa2, 0x0, 0xd, 0x9, 0x61, 0x10,
- 0x0, 0x0, 0x1, 0x76, 0x6a, 0xad, 0x69, 0x90,
- 0x5, 0x66, 0xb1, 0x0, 0x7, 0xa0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x3, 0xa7, 0x0, 0x5, 0x0,
- 0x3, 0x0, 0x40, 0x1d, 0x76, 0x66, 0x8d, 0x0,
- 0xa, 0x76, 0xc8, 0x6b, 0x20, 0x0, 0x3a, 0x0,
- 0xa, 0x20, 0xb2, 0xb, 0x76, 0x66, 0x7a, 0x0,
- 0xa, 0x20, 0xb2, 0xb, 0x20, 0x0, 0x3a, 0x0,
- 0xa, 0x75, 0xc2, 0xb, 0x76, 0x66, 0x7a, 0x0,
- 0x7, 0x10, 0x61, 0xa, 0x10, 0x0, 0x28, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+8B02 "謂" */
- 0x0, 0x56, 0x0, 0x3, 0x0, 0x0, 0x1, 0x30,
- 0x0, 0xe, 0x31, 0xe, 0x66, 0xe6, 0x69, 0xb0,
- 0x37, 0x59, 0x58, 0x5d, 0x0, 0xd0, 0x5, 0x80,
- 0x0, 0x0, 0x1, 0xd, 0x66, 0xe6, 0x69, 0x80,
- 0x6, 0x66, 0x6a, 0xd, 0x0, 0xd0, 0x5, 0x80,
- 0x0, 0x0, 0x0, 0xe, 0x66, 0x86, 0x69, 0x70,
- 0x5, 0x66, 0x6b, 0x4, 0x10, 0x0, 0x5, 0x0,
- 0x0, 0x0, 0x0, 0x4, 0xb6, 0x66, 0x6e, 0x10,
- 0x7, 0x66, 0x6a, 0x4, 0xb5, 0x55, 0x5d, 0x0,
- 0xb, 0x10, 0xd, 0x4, 0x80, 0x0, 0xd, 0x0,
- 0xb, 0x10, 0xd, 0x4, 0xb6, 0x66, 0x6d, 0x0,
- 0xb, 0x10, 0xd, 0x4, 0x80, 0x0, 0xd, 0x0,
- 0xc, 0x66, 0x6d, 0x4, 0x80, 0x0, 0xd, 0x0,
- 0xa, 0x0, 0x9, 0x4, 0x80, 0x17, 0xda, 0x0,
- 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x30, 0x0,
-
- /* U+8B1B "講" */
- 0x0, 0x61, 0x0, 0x0, 0x83, 0x4, 0x60, 0x0,
- 0x0, 0x2e, 0x0, 0x0, 0xa2, 0x5, 0x62, 0x40,
- 0x26, 0x5b, 0x69, 0x66, 0xc7, 0x69, 0xa6, 0x50,
- 0x0, 0x0, 0x0, 0x16, 0xc7, 0x69, 0xa9, 0x30,
- 0x5, 0x66, 0xb2, 0x2, 0xa2, 0x5, 0x60, 0x20,
- 0x0, 0x0, 0x1, 0x76, 0x96, 0x77, 0x86, 0xa2,
- 0x2, 0x33, 0x81, 0x2, 0x0, 0xd1, 0x4, 0x0,
- 0x3, 0x33, 0x31, 0xc, 0x66, 0xd6, 0x6d, 0x0,
- 0x4, 0x11, 0x60, 0xc, 0x0, 0xc0, 0xb, 0x0,
- 0xc, 0x55, 0xd2, 0xc, 0x66, 0xd6, 0x6b, 0x0,
- 0xc, 0x0, 0xc0, 0xc, 0x0, 0xc0, 0xb, 0x50,
- 0xc, 0x0, 0xc1, 0x7d, 0x66, 0x76, 0x6d, 0x61,
- 0xc, 0x66, 0xd0, 0xc, 0x0, 0x0, 0xb, 0x0,
- 0x9, 0x0, 0x50, 0xc, 0x0, 0x6, 0xba, 0x0,
- 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x42, 0x0,
-
- /* U+8B1D "謝" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x70, 0x0, 0x3, 0xa0, 0x0, 0x9, 0x0,
- 0x0, 0x6a, 0x0, 0x6, 0x22, 0x0, 0xc, 0x0,
- 0x26, 0x7a, 0x96, 0xc7, 0x6d, 0x10, 0xc, 0x0,
- 0x0, 0x0, 0x0, 0xc0, 0xc, 0x0, 0xc, 0x20,
- 0x5, 0x66, 0xa0, 0xc6, 0x6d, 0x47, 0x6e, 0x90,
- 0x1, 0x0, 0x0, 0xc0, 0xc, 0x0, 0xc, 0x0,
- 0x0, 0x0, 0x50, 0xc6, 0x6d, 0x34, 0xc, 0x0,
- 0x5, 0x66, 0x61, 0xc0, 0xc, 0xb, 0x4c, 0x0,
- 0x2, 0x0, 0x25, 0xb5, 0x8d, 0x5, 0x5c, 0x0,
- 0xa, 0x66, 0xd1, 0x1, 0xcc, 0x0, 0xc, 0x0,
- 0xa, 0x10, 0xc0, 0x9, 0x3c, 0x0, 0xc, 0x0,
- 0xa, 0x10, 0xc0, 0x47, 0xc, 0x0, 0xc, 0x0,
- 0xa, 0x66, 0xd3, 0x70, 0xc, 0x1, 0x1c, 0x0,
- 0x7, 0x0, 0x44, 0x3, 0xbd, 0x5, 0xe8, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x11, 0x0, 0x20, 0x0,
-
- /* U+8B58 "識" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x15, 0x0, 0x0, 0x80, 0x0, 0xa2, 0x0, 0x0,
- 0xb5, 0x0, 0x8, 0x52, 0xb, 0x11, 0x2, 0x6a,
- 0x7a, 0x57, 0x66, 0x93, 0xb0, 0xa4, 0x0, 0x0,
- 0x1, 0x80, 0xd, 0x2b, 0x3, 0x80, 0x56, 0x78,
- 0xb, 0x34, 0x50, 0xb0, 0x0, 0x0, 0x0, 0x5,
- 0x86, 0xa6, 0x6d, 0x6c, 0x50, 0x22, 0x46, 0x11,
- 0x0, 0x10, 0xb0, 0x61, 0x4, 0x44, 0x30, 0xd6,
- 0x6d, 0xa, 0x1e, 0x20, 0x30, 0x15, 0xc, 0x0,
- 0xc0, 0x97, 0xa0, 0xc, 0x55, 0xd0, 0xd6, 0x6c,
- 0x6, 0xe3, 0x0, 0xc0, 0xc, 0xc, 0x0, 0xc0,
- 0x5d, 0x2, 0xc, 0x0, 0xc0, 0xc0, 0xc, 0xd,
- 0xd1, 0x60, 0xc6, 0x6c, 0xd, 0x66, 0xb8, 0x53,
- 0xb9, 0xa, 0x0, 0x90, 0x40, 0x6, 0x50, 0x6,
- 0xb0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x2,
-
- /* U+8B70 "議" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x81, 0x0, 0x0, 0x84, 0x2, 0xd0, 0x0,
- 0x0, 0x59, 0x0, 0x0, 0x1d, 0x7, 0x25, 0x0,
- 0x37, 0x69, 0x89, 0x37, 0x67, 0xc6, 0x67, 0x40,
- 0x0, 0x0, 0x0, 0x2, 0x33, 0xc3, 0x64, 0x0,
- 0x5, 0x66, 0xa0, 0x2, 0x43, 0xc3, 0x32, 0x0,
- 0x0, 0x0, 0x0, 0x46, 0x55, 0xc5, 0x59, 0x90,
- 0x4, 0x66, 0xa0, 0x0, 0x6, 0x37, 0x21, 0x0,
- 0x1, 0x0, 0x0, 0x47, 0xe6, 0x49, 0x1c, 0x0,
- 0x5, 0x22, 0x71, 0x0, 0xc0, 0x1a, 0x4, 0x50,
- 0xc, 0x44, 0xd3, 0x76, 0xd6, 0x6d, 0x67, 0x70,
- 0xc, 0x0, 0xc0, 0x0, 0xc5, 0x2b, 0x2d, 0x0,
- 0xc, 0x0, 0xc1, 0xaa, 0xd0, 0x8, 0xc2, 0x0,
- 0xc, 0x66, 0xd0, 0x20, 0xc0, 0x1b, 0xc1, 0x40,
- 0x8, 0x0, 0x70, 0x39, 0xe4, 0x70, 0x4d, 0xb0,
- 0x0, 0x0, 0x0, 0x1, 0x20, 0x0, 0x1, 0x70,
-
- /* U+8B77 "護" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x82, 0x0, 0x0, 0x85, 0x9, 0x40, 0x0,
- 0x0, 0x2c, 0x1, 0x56, 0xa8, 0x6b, 0x87, 0xc0,
- 0x37, 0x69, 0x79, 0x21, 0x75, 0x28, 0x30, 0x0,
- 0x0, 0x0, 0x0, 0x9, 0x60, 0xd1, 0x3, 0x0,
- 0x6, 0x65, 0xa1, 0x1f, 0x55, 0xc5, 0x5a, 0x30,
- 0x0, 0x0, 0x0, 0x9d, 0x66, 0xd6, 0x78, 0x0,
- 0x4, 0x55, 0xa5, 0x3c, 0x0, 0xc0, 0x13, 0x0,
- 0x1, 0x11, 0x10, 0xc, 0x66, 0xd6, 0x67, 0x0,
- 0x6, 0x33, 0x81, 0xc, 0x66, 0xa6, 0x69, 0x90,
- 0xc, 0x22, 0xc1, 0x38, 0x66, 0x66, 0xa2, 0x0,
- 0xc, 0x0, 0xc0, 0x1, 0x60, 0x4, 0xc3, 0x0,
- 0xc, 0x0, 0xc0, 0x0, 0x28, 0x4a, 0x0, 0x0,
- 0xc, 0x66, 0xd0, 0x0, 0xb, 0xe1, 0x0, 0x0,
- 0xa, 0x0, 0x80, 0x6, 0xb4, 0x6e, 0x84, 0x20,
- 0x0, 0x0, 0x5, 0x73, 0x0, 0x3, 0xae, 0x80,
-
- /* U+8B8A "變" */
- 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1d, 0x10, 0x8, 0x40, 0x0, 0x86, 0x0,
- 0x0, 0xa6, 0x12, 0x76, 0x6a, 0x22, 0xc1, 0x0,
- 0x9, 0x80, 0xc1, 0x56, 0x6a, 0x4d, 0x17, 0x50,
- 0x6, 0x38, 0x30, 0x20, 0x4, 0x25, 0x38, 0x0,
- 0x0, 0x54, 0x61, 0x88, 0x78, 0x1, 0x91, 0x60,
- 0x4, 0xb2, 0x28, 0x86, 0x6b, 0xc, 0x50, 0xb0,
- 0x0, 0x10, 0x40, 0xa1, 0xb, 0x2, 0x1, 0x0,
- 0x2, 0x49, 0x48, 0x96, 0x69, 0x7, 0x63, 0xb0,
- 0x9, 0x17, 0x3a, 0x0, 0x0, 0x35, 0x85, 0x50,
- 0x0, 0x0, 0xc9, 0x66, 0x66, 0xc8, 0x74, 0x0,
- 0x0, 0x9, 0x34, 0x20, 0x5, 0xb0, 0x0, 0x0,
- 0x0, 0x61, 0x0, 0x83, 0x3c, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0xd1, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x5, 0xb6, 0x8c, 0x63, 0x10, 0x0,
- 0x1, 0x57, 0x85, 0x0, 0x1, 0x8c, 0xfd, 0x40,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+8B93 "讓" */
- 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0,
- 0x0, 0x70, 0x0, 0x0, 0x4, 0xb0, 0x0, 0x0,
- 0x0, 0x69, 0x0, 0x56, 0x66, 0xe6, 0x6a, 0xb0,
- 0x38, 0x8a, 0xa7, 0x12, 0x2, 0x1, 0x2, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x6d, 0x2c, 0x6d, 0x20,
- 0x5, 0x65, 0xa1, 0xc, 0x6c, 0xc, 0x6c, 0x0,
- 0x0, 0x0, 0x0, 0x4, 0x43, 0x6, 0x3, 0x0,
- 0x0, 0x0, 0x50, 0x22, 0x85, 0x29, 0x59, 0x30,
- 0x6, 0x66, 0x50, 0x44, 0x95, 0x4a, 0x54, 0x20,
- 0x3, 0x0, 0x30, 0x7, 0xa7, 0x6b, 0x7a, 0x20,
- 0xb, 0x66, 0xc3, 0x0, 0x72, 0x8, 0x22, 0x70,
- 0xb, 0x0, 0xb0, 0x76, 0x9d, 0xa6, 0x6a, 0x50,
- 0xb, 0x0, 0xb0, 0x3, 0xe1, 0x56, 0x85, 0x0,
- 0xb, 0x66, 0xc1, 0x78, 0xa0, 0x3a, 0xa1, 0x0,
- 0x6, 0x0, 0x5, 0x10, 0xba, 0x20, 0x7f, 0x90,
- 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x1, 0x0,
-
- /* U+8BA1 "计" */
- 0x0, 0x42, 0x0, 0x0, 0x7, 0x30, 0x0, 0x0,
- 0x0, 0xc5, 0x0, 0x0, 0xb4, 0x0, 0x0, 0x0,
- 0x3, 0xa0, 0x0, 0xb, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb3, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb, 0x30, 0x0, 0x1, 0x66, 0xc4,
- 0x36, 0x66, 0xd8, 0x66, 0xc7, 0x0, 0xd, 0x0,
- 0x10, 0xb, 0x30, 0x0, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0xb3, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0xb, 0x30, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0xb3, 0x0, 0x0, 0x0, 0xd, 0x5, 0x20, 0xb,
- 0x30, 0x0, 0x0, 0x0, 0xd7, 0x60, 0x0, 0xb3,
- 0x0, 0x0, 0x0, 0xe, 0xb0, 0x0, 0xb, 0x30,
- 0x0, 0x0, 0x0, 0x61, 0x0, 0x0, 0xc4, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0,
- 0x0,
-
- /* U+8BDE "诞" */
- 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x15, 0x0,
- 0x3b, 0x4, 0x69, 0x70, 0x3, 0x9d, 0x90, 0x0,
- 0xb2, 0x0, 0xb2, 0x36, 0x4d, 0x0, 0x0, 0x0,
- 0x0, 0x1b, 0x0, 0x0, 0xd0, 0x0, 0x0, 0x0,
- 0x7, 0x50, 0x7, 0xd, 0x0, 0x3, 0x7b, 0x61,
- 0xd0, 0x40, 0xd0, 0xd6, 0xc3, 0x0, 0xa2, 0x29,
- 0x7d, 0xc, 0xd, 0x0, 0x0, 0xa, 0x21, 0x3,
- 0x90, 0xc0, 0xd0, 0x0, 0x0, 0xa2, 0x5, 0x66,
- 0xc, 0xd, 0x0, 0x0, 0xa, 0x20, 0x8b, 0x20,
- 0xc0, 0xd0, 0x71, 0x0, 0xa2, 0x64, 0xd0, 0x4b,
- 0x66, 0x66, 0x30, 0xb, 0xb1, 0x9b, 0x70, 0x0,
- 0x0, 0x0, 0x0, 0xa4, 0x66, 0x6, 0xc9, 0x64,
- 0x22, 0x10, 0x0, 0x64, 0x0, 0x0, 0x59, 0xce,
- 0xe3, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+8C50 "豐" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x5, 0x10, 0xb0, 0xc2, 0xa, 0x3, 0x0, 0x0,
- 0xb1, 0x2d, 0x7c, 0x26, 0xd6, 0xc1, 0x0, 0xb,
- 0x12, 0xb1, 0xc0, 0xb, 0x1c, 0x0, 0x0, 0xb2,
- 0x7d, 0x5c, 0x37, 0xd6, 0xc0, 0x0, 0xb, 0x26,
- 0xd7, 0xc2, 0x6d, 0x7c, 0x0, 0x0, 0xd0, 0x1b,
- 0xc, 0x1, 0xb0, 0xc0, 0x0, 0x8, 0x66, 0x66,
- 0x66, 0x66, 0x67, 0x0, 0x2, 0x76, 0x66, 0x66,
- 0x66, 0x66, 0xa9, 0x0, 0x0, 0x21, 0x0, 0x0,
- 0x0, 0x30, 0x0, 0x0, 0x5, 0xb6, 0x66, 0x66,
- 0x6d, 0x10, 0x0, 0x0, 0x59, 0x0, 0x0, 0x0,
- 0xb0, 0x0, 0x0, 0x6, 0xa8, 0x66, 0x67, 0x9a,
- 0x0, 0x0, 0x0, 0x0, 0x95, 0x0, 0x79, 0x0,
- 0x10, 0x5, 0x66, 0x68, 0xa6, 0x6b, 0x66, 0x6e,
- 0x70, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+8C61 "象" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x8, 0xe6, 0x66, 0xab, 0x0, 0x0, 0x0, 0x7,
- 0xa0, 0x0, 0x29, 0x10, 0x0, 0x0, 0x8, 0xe6,
- 0x66, 0x6b, 0x66, 0x6d, 0x10, 0x5, 0x1d, 0x0,
- 0xa, 0x50, 0x0, 0xe0, 0x0, 0x0, 0xd6, 0x66,
- 0xf6, 0x66, 0x6e, 0x0, 0x0, 0x9, 0x0, 0xaa,
- 0x0, 0x0, 0x80, 0x0, 0x0, 0x1, 0xa5, 0x85,
- 0x3, 0xc9, 0x10, 0x0, 0x5, 0x71, 0x6a, 0xb7,
- 0x80, 0x0, 0x0, 0x4, 0x1, 0x97, 0x1c, 0x76,
- 0x20, 0x0, 0x0, 0x16, 0x81, 0x1b, 0x6b, 0xc,
- 0x20, 0x0, 0x14, 0x0, 0x6a, 0x13, 0xb0, 0x3e,
- 0x71, 0x0, 0x5, 0x95, 0x10, 0x79, 0x0, 0x3d,
- 0xa1, 0x46, 0x20, 0x6, 0xfe, 0x20, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x3, 0x10, 0x0, 0x0, 0x0,
-
- /* U+8CA0 "負" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa, 0xa0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x5f, 0x76, 0x6a, 0x80, 0x0, 0x0, 0x3, 0xd2,
- 0x0, 0x1d, 0x50, 0x0, 0x0, 0x3b, 0x10, 0x0,
- 0x82, 0x0, 0x0, 0x5, 0x76, 0x33, 0x35, 0x63,
- 0x39, 0x0, 0x1, 0xd, 0x33, 0x33, 0x33, 0x3e,
- 0x10, 0x0, 0xd, 0x66, 0x66, 0x66, 0x6e, 0x0,
- 0x0, 0xd, 0x10, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0xd, 0x66, 0x66, 0x66, 0x6e, 0x0, 0x0, 0xd,
- 0x10, 0x0, 0x0, 0xe, 0x0, 0x0, 0xd, 0x66,
- 0x66, 0x66, 0x6e, 0x0, 0x0, 0x7, 0x28, 0x0,
- 0x5, 0x18, 0x0, 0x0, 0x3, 0xd7, 0x0, 0x1,
- 0xab, 0x20, 0x0, 0x78, 0x10, 0x0, 0x0, 0x7,
- 0xe0, 0x3, 0x10, 0x0, 0x0, 0x0, 0x0, 0x30,
-
- /* U+8CA1 "財" */
- 0x2, 0x0, 0x3, 0x0, 0x0, 0x1, 0xa0, 0x0,
- 0xb, 0x76, 0x6d, 0x40, 0x0, 0x1, 0xc0, 0x0,
- 0xa, 0x20, 0xc, 0x10, 0x0, 0x1, 0xc0, 0x0,
- 0xa, 0x20, 0xc, 0x10, 0x0, 0x1, 0xc1, 0x70,
- 0xa, 0x76, 0x6d, 0x16, 0x66, 0x6e, 0xd6, 0x61,
- 0xa, 0x20, 0xc, 0x10, 0x0, 0x4c, 0xc0, 0x0,
- 0xa, 0x76, 0x6d, 0x10, 0x0, 0xc3, 0xc0, 0x0,
- 0xa, 0x20, 0xc, 0x10, 0x7, 0x81, 0xc0, 0x0,
- 0xa, 0x20, 0xc, 0x10, 0x3b, 0x1, 0xc0, 0x0,
- 0xa, 0x76, 0x6d, 0x11, 0xa0, 0x1, 0xc0, 0x0,
- 0x8, 0x20, 0x6, 0x18, 0x0, 0x1, 0xc0, 0x0,
- 0x0, 0xb6, 0x37, 0x40, 0x0, 0x1, 0xc0, 0x0,
- 0x5, 0x90, 0x9, 0x60, 0x0, 0x1, 0xc0, 0x0,
- 0x28, 0x0, 0x2, 0x80, 0x2, 0x8e, 0xa0, 0x0,
- 0x20, 0x0, 0x0, 0x0, 0x0, 0x5, 0x10, 0x0,
-
- /* U+8CA7 "貧" */
- 0x0, 0x0, 0x37, 0x0, 0x25, 0x0, 0x0, 0x0,
- 0x0, 0x2c, 0x40, 0x0, 0x73, 0x0, 0x0, 0x0,
- 0x49, 0x10, 0x0, 0x0, 0xb9, 0x30, 0x1, 0x54,
- 0x37, 0xc9, 0x66, 0x6e, 0x7c, 0xc2, 0x0, 0x0,
- 0x79, 0x0, 0x1, 0xd0, 0x0, 0x0, 0x3, 0x94,
- 0x0, 0x16, 0xb6, 0x0, 0x0, 0x4, 0x48, 0x66,
- 0x66, 0x69, 0x6a, 0x0, 0x0, 0x1, 0xb0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0x1d, 0x66, 0x66,
- 0x66, 0x6d, 0x0, 0x0, 0x1, 0xd6, 0x66, 0x66,
- 0x66, 0xd0, 0x0, 0x0, 0x1b, 0x0, 0x0, 0x0,
- 0xd, 0x0, 0x0, 0x1, 0xc6, 0x76, 0x66, 0x66,
- 0xa0, 0x0, 0x0, 0x1, 0x7d, 0x20, 0x5, 0x89,
- 0x30, 0x0, 0x6, 0xa5, 0x0, 0x0, 0x0, 0x3d,
- 0x50, 0x4, 0x10, 0x0, 0x0, 0x0, 0x0, 0x12,
- 0x0,
-
- /* U+8CA9 "販" */
- 0x1, 0x10, 0x0, 0x30, 0x0, 0x0, 0x39, 0x50,
- 0x3, 0xc6, 0x66, 0xe0, 0x86, 0x79, 0x86, 0x40,
- 0x2, 0xa0, 0x0, 0xd0, 0xd0, 0x0, 0x0, 0x0,
- 0x2, 0xb4, 0x44, 0xd0, 0xd0, 0x0, 0x0, 0x0,
- 0x2, 0xb1, 0x11, 0xd0, 0xd6, 0x66, 0x6a, 0x10,
- 0x2, 0xa0, 0x0, 0xd0, 0xc3, 0x20, 0x1d, 0x0,
- 0x2, 0xc6, 0x66, 0xd0, 0xc0, 0x60, 0x49, 0x0,
- 0x2, 0xa0, 0x0, 0xd0, 0xc0, 0x80, 0x84, 0x0,
- 0x2, 0xa0, 0x0, 0xd0, 0xb0, 0x81, 0xd0, 0x0,
- 0x2, 0xc6, 0x66, 0xd1, 0x90, 0x3b, 0x80, 0x0,
- 0x2, 0x71, 0x20, 0x75, 0x50, 0xf, 0x20, 0x0,
- 0x0, 0x6b, 0x2b, 0x8, 0x0, 0x96, 0xc0, 0x0,
- 0x0, 0xb1, 0x9, 0x47, 0x8, 0x30, 0x6d, 0x20,
- 0x7, 0x20, 0x0, 0x51, 0x61, 0x0, 0x7, 0xa1,
- 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+8CAC "責" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd1, 0x0, 0x1, 0x0, 0x2,
- 0x66, 0x66, 0x6e, 0x66, 0x67, 0xe2, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x50, 0x0, 0x0, 0x27,
- 0x66, 0x6e, 0x66, 0x68, 0x30, 0x0, 0x22, 0x22,
- 0x22, 0xe2, 0x22, 0x25, 0xb0, 0x15, 0x55, 0x44,
- 0x44, 0x44, 0x48, 0x44, 0x10, 0x3, 0xc6, 0x66,
- 0x66, 0x66, 0xd3, 0x0, 0x0, 0x3c, 0x66, 0x66,
- 0x66, 0x6d, 0x10, 0x0, 0x3, 0xa0, 0x0, 0x0,
- 0x0, 0xc1, 0x0, 0x0, 0x3c, 0x66, 0x66, 0x66,
- 0x6d, 0x10, 0x0, 0x3, 0xa0, 0x0, 0x0, 0x0,
- 0xc1, 0x0, 0x0, 0x39, 0x6b, 0x66, 0x76, 0x69,
- 0x10, 0x0, 0x0, 0x1b, 0xc2, 0x2, 0x8a, 0x71,
- 0x0, 0x0, 0x7a, 0x30, 0x0, 0x0, 0x9, 0xe0,
- 0x0, 0x51, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0,
-
- /* U+8CB7 "買" */
- 0x3, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0xb7,
- 0x67, 0xc6, 0x6e, 0x66, 0xe3, 0xb, 0x20, 0x3a,
- 0x0, 0xd0, 0xd, 0x0, 0xb2, 0x3, 0xa0, 0xd,
- 0x0, 0xd0, 0x9, 0x66, 0x66, 0x66, 0x66, 0x6a,
- 0x0, 0x6, 0x66, 0x66, 0x66, 0x6c, 0x20, 0x0,
- 0x96, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x9, 0x96,
- 0x66, 0x66, 0x6e, 0x0, 0x0, 0x96, 0x0, 0x0,
- 0x0, 0xe0, 0x0, 0x9, 0x96, 0x66, 0x66, 0x6e,
- 0x0, 0x0, 0x96, 0x0, 0x0, 0x0, 0xe0, 0x0,
- 0x8, 0x88, 0x76, 0x66, 0x6a, 0x0, 0x0, 0x4,
- 0xe8, 0x0, 0x38, 0x93, 0x0, 0x29, 0x81, 0x0,
- 0x0, 0x2, 0xc6, 0x34, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x20,
-
- /* U+8CB8 "貸" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xa9, 0xb, 0x48, 0x50, 0x0, 0x0,
- 0x0, 0xa8, 0x0, 0x85, 0x1c, 0x2, 0x0, 0x0,
- 0xae, 0x15, 0x58, 0xc6, 0x66, 0xc2, 0x4, 0x71,
- 0xd0, 0x0, 0x9, 0x40, 0x0, 0x10, 0x10, 0xd,
- 0x0, 0x0, 0x1c, 0x40, 0x4, 0x0, 0x0, 0xb0,
- 0x0, 0x0, 0x1c, 0xb8, 0x50, 0x0, 0x39, 0x66,
- 0x66, 0x66, 0x6f, 0x96, 0x0, 0x3, 0xa0, 0x0,
- 0x0, 0x1, 0xd0, 0x0, 0x0, 0x3c, 0x66, 0x66,
- 0x66, 0x6d, 0x0, 0x0, 0x3, 0xc6, 0x66, 0x66,
- 0x66, 0xd0, 0x0, 0x0, 0x3a, 0x0, 0x0, 0x0,
- 0x1d, 0x0, 0x0, 0x3, 0xb6, 0x86, 0x66, 0x66,
- 0xa0, 0x0, 0x0, 0x1, 0xbb, 0x0, 0x5, 0x98,
- 0x20, 0x0, 0x7, 0xa4, 0x0, 0x0, 0x0, 0x5f,
- 0x0, 0x4, 0x10, 0x0, 0x0, 0x0, 0x0, 0x30,
-
- /* U+8CBB "費" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb2, 0xb, 0x10, 0x0, 0x0, 0x1,
- 0x76, 0x6d, 0x66, 0xd6, 0x6c, 0x30, 0x0, 0x3,
- 0x0, 0xc0, 0xc, 0x0, 0xc0, 0x0, 0x0, 0xe8,
- 0x6d, 0x66, 0xd6, 0x69, 0x0, 0x0, 0x2e, 0x66,
- 0xc6, 0x6d, 0x66, 0x66, 0xd0, 0x0, 0x1, 0xa2,
- 0x0, 0xc0, 0x2, 0x68, 0x0, 0x15, 0x71, 0x0,
- 0x8, 0x0, 0x7a, 0x10, 0x2, 0x1d, 0x66, 0x66,
- 0x66, 0x7d, 0x0, 0x0, 0x1, 0xd6, 0x66, 0x66,
- 0x67, 0xb0, 0x0, 0x0, 0x1b, 0x0, 0x0, 0x0,
- 0x2b, 0x0, 0x0, 0x1, 0xd6, 0x66, 0x66, 0x67,
- 0xb0, 0x0, 0x0, 0x1d, 0x66, 0x66, 0x66, 0x7b,
- 0x0, 0x0, 0x0, 0x4c, 0x50, 0x4, 0x78, 0x40,
- 0x0, 0x1, 0x8a, 0x30, 0x0, 0x0, 0x2b, 0xa0,
- 0x1, 0x51, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0,
-
- /* U+8CBF "貿" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x6d, 0x40, 0x0, 0x0, 0x10, 0x2, 0xa6,
- 0x40, 0x17, 0x88, 0x66, 0xc7, 0x2, 0xa0, 0x28,
- 0x0, 0x85, 0x0, 0xb2, 0x2, 0xa0, 0x1a, 0x80,
- 0xc1, 0x0, 0xd0, 0x4, 0xc9, 0x61, 0x48, 0x61,
- 0x68, 0xb0, 0x1, 0x80, 0x0, 0x65, 0x0, 0x8,
- 0x20, 0x0, 0x9, 0x67, 0x66, 0x66, 0x6c, 0x10,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0xe, 0x66, 0x66, 0x66, 0x6e, 0x0, 0x0, 0xe,
- 0x66, 0x66, 0x66, 0x6e, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0x0, 0xe, 0x0, 0x0, 0xd, 0x68, 0x66,
- 0x66, 0x6c, 0x0, 0x0, 0x1, 0xac, 0x10, 0x6,
- 0xa7, 0x10, 0x0, 0x5a, 0x40, 0x0, 0x0, 0x7,
- 0xe0, 0x4, 0x10, 0x0, 0x0, 0x0, 0x0, 0x20,
-
- /* U+8CC3 "賃" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x69, 0x0, 0x0, 0x25, 0x95, 0x0, 0x0,
- 0x2d, 0x24, 0x57, 0xd7, 0x55, 0x40, 0x0, 0x1c,
- 0xa0, 0x0, 0xc, 0x10, 0x2, 0x40, 0x19, 0x3b,
- 0x56, 0x66, 0xd6, 0x66, 0x77, 0x1, 0x1, 0xb0,
- 0x0, 0xc, 0x10, 0x3, 0x0, 0x0, 0x18, 0x6,
- 0x66, 0x96, 0x67, 0x90, 0x0, 0x1, 0x96, 0x66,
- 0x66, 0x66, 0xc1, 0x0, 0x0, 0x1b, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0x1, 0xd6, 0x66, 0x66,
- 0x66, 0xd0, 0x0, 0x0, 0x1d, 0x66, 0x66, 0x66,
- 0x6d, 0x0, 0x0, 0x1, 0xb0, 0x0, 0x0, 0x0,
- 0xd0, 0x0, 0x0, 0x1c, 0x67, 0x66, 0x66, 0x6b,
- 0x0, 0x0, 0x0, 0x1b, 0xa0, 0x2, 0x69, 0x50,
- 0x0, 0x0, 0x6a, 0x30, 0x0, 0x0, 0x19, 0xb0,
- 0x0, 0x41, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0,
-
- /* U+8CC7 "資" */
- 0x0, 0x0, 0x0, 0x11, 0x0, 0x0, 0x0, 0x0,
- 0x54, 0x0, 0x8, 0x90, 0x0, 0x0, 0x0, 0x0,
- 0xd1, 0x51, 0xd7, 0x66, 0x66, 0xa0, 0x0, 0x1,
- 0x62, 0x57, 0x7, 0x40, 0x64, 0x0, 0x24, 0x84,
- 0x19, 0x0, 0xe7, 0x2, 0x0, 0x0, 0x6a, 0x3,
- 0x0, 0x88, 0x66, 0x0, 0x0, 0x5, 0x80, 0x0,
- 0x79, 0x0, 0xaa, 0x41, 0x0, 0x68, 0x13, 0x73,
- 0x0, 0x0, 0x9c, 0x50, 0x0, 0x2d, 0x66, 0x66,
- 0x66, 0x7e, 0x0, 0x0, 0x2, 0xd6, 0x66, 0x66,
- 0x67, 0xc0, 0x0, 0x0, 0x2b, 0x0, 0x0, 0x0,
- 0x2c, 0x0, 0x0, 0x2, 0xd6, 0x66, 0x66, 0x67,
- 0xc0, 0x0, 0x0, 0x2d, 0x76, 0x66, 0x66, 0x7c,
- 0x0, 0x0, 0x0, 0x3c, 0x90, 0x0, 0x59, 0x71,
- 0x0, 0x0, 0x7a, 0x40, 0x0, 0x0, 0x6, 0xe0,
- 0x0, 0x41, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0,
-
- /* U+8CEA "質" */
- 0x0, 0x0, 0x3, 0x80, 0x0, 0x17, 0x70, 0x0,
- 0x96, 0x76, 0x51, 0xb6, 0x86, 0x40, 0x0, 0xa3,
- 0x0, 0x51, 0xd0, 0x0, 0x61, 0x0, 0xb7, 0x6e,
- 0x63, 0xe6, 0x9a, 0x63, 0x1, 0xc0, 0xc, 0x4,
- 0x90, 0x57, 0x0, 0x9, 0x20, 0xd, 0x1a, 0x0,
- 0x57, 0x0, 0x41, 0x28, 0x67, 0xa6, 0x66, 0xa3,
- 0x0, 0x0, 0x2c, 0x0, 0x0, 0x0, 0xb3, 0x0,
- 0x0, 0x2d, 0x66, 0x66, 0x66, 0xd2, 0x0, 0x0,
- 0x2c, 0x0, 0x0, 0x0, 0xb2, 0x0, 0x0, 0x2d,
- 0x66, 0x66, 0x66, 0xd2, 0x0, 0x0, 0x2d, 0x66,
- 0x66, 0x66, 0xc2, 0x0, 0x0, 0x1, 0x8b, 0x0,
- 0x27, 0x83, 0x0, 0x0, 0x4a, 0x60, 0x0, 0x0,
- 0x3d, 0x60, 0x4, 0x30, 0x0, 0x0, 0x0, 0x1,
- 0x40,
-
- /* U+8CFD "賽" */
- 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x66, 0x66, 0x6a, 0x86, 0x66, 0x6a, 0x10,
- 0x4, 0xc0, 0x6, 0x30, 0x9, 0x10, 0x57, 0x0,
- 0x0, 0x37, 0x6b, 0x86, 0x6d, 0x67, 0x90, 0x0,
- 0x0, 0x4, 0x4a, 0x74, 0x4d, 0x46, 0x60, 0x0,
- 0x0, 0x3, 0x19, 0x41, 0x1c, 0x11, 0x26, 0x0,
- 0x3, 0x76, 0x7e, 0x66, 0x69, 0x76, 0x66, 0x10,
- 0x0, 0x3, 0xf3, 0x11, 0x11, 0xc6, 0x0, 0x0,
- 0x2, 0x76, 0xc4, 0x44, 0x44, 0xba, 0xd9, 0x71,
- 0x13, 0x0, 0xc6, 0x66, 0x66, 0xc3, 0x6, 0x30,
- 0x0, 0x0, 0xc6, 0x66, 0x66, 0xc3, 0x0, 0x0,
- 0x0, 0x0, 0xd6, 0x66, 0x66, 0xc3, 0x0, 0x0,
- 0x0, 0x0, 0x57, 0x80, 0x4, 0x70, 0x0, 0x0,
- 0x0, 0x3, 0x96, 0x0, 0x0, 0x3d, 0x70, 0x0,
- 0x0, 0x33, 0x0, 0x0, 0x0, 0x0, 0x60, 0x0,
-
- /* U+8D39 "费" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x10, 0xc1, 0x0, 0x0, 0x3, 0x66,
- 0x6e, 0x66, 0xe6, 0x6a, 0x30, 0x0, 0x10, 0xd,
- 0x0, 0xd0, 0xb, 0x20, 0x2, 0xb6, 0x6e, 0x66,
- 0xe6, 0x6d, 0x10, 0x6, 0x80, 0xd, 0x0, 0xd0,
- 0x4, 0x22, 0x6, 0x76, 0xaa, 0x66, 0xe6, 0x66,
- 0xc7, 0x0, 0x7, 0x70, 0x0, 0xd0, 0x18, 0xc0,
- 0x15, 0x69, 0x66, 0x66, 0x86, 0x95, 0x10, 0x0,
- 0xd, 0x0, 0x63, 0x0, 0xd1, 0x0, 0x0, 0xd,
- 0x0, 0xc5, 0x0, 0xd0, 0x0, 0x0, 0xd, 0x0,
- 0xf1, 0x0, 0xd0, 0x0, 0x0, 0x7, 0x7, 0xa2,
- 0x63, 0x40, 0x0, 0x0, 0x0, 0x6c, 0x10, 0x17,
- 0xe8, 0x0, 0x1, 0x58, 0x60, 0x0, 0x0, 0x2e,
- 0x40, 0x13, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+8D64 "赤" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x1, 0xe1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x5,
- 0x66, 0x66, 0xe6, 0x66, 0xc7, 0x0, 0x0, 0x11,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd0, 0x0, 0x0, 0x0, 0x36, 0x66, 0x66,
- 0x6e, 0x66, 0x66, 0x6e, 0x40, 0x10, 0x0, 0xe0,
- 0x2, 0xb0, 0x0, 0x0, 0x0, 0x5c, 0xe, 0x0,
- 0x2b, 0x50, 0x0, 0x0, 0xc, 0x51, 0xc0, 0x2,
- 0xb1, 0xa2, 0x0, 0x5, 0x70, 0x59, 0x0, 0x2b,
- 0x2, 0xe2, 0x1, 0x70, 0xb, 0x30, 0x2, 0xb0,
- 0x9, 0x80, 0x40, 0x4, 0xa0, 0x0, 0x2b, 0x0,
- 0x12, 0x0, 0x2, 0x90, 0x0, 0x3, 0xb0, 0x0,
- 0x0, 0x5, 0x60, 0x0, 0x29, 0xf9, 0x0, 0x0,
- 0x2, 0x10, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
-
- /* U+8D70 "走" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x50, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x20, 0x1, 0x0, 0x0,
- 0x0, 0x16, 0x66, 0x6d, 0x76, 0x6d, 0x80, 0x0,
- 0x0, 0x1, 0x0, 0xb, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x20, 0x0, 0x1, 0x0,
- 0x16, 0x66, 0x66, 0x6d, 0x76, 0x66, 0x8f, 0x30,
- 0x1, 0x0, 0x0, 0xa, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0x5, 0xa0, 0xb, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x7, 0x90, 0xb, 0x20, 0x3, 0x70, 0x0,
- 0x0, 0xa, 0x50, 0xb, 0x76, 0x66, 0x61, 0x0,
- 0x0, 0xe, 0x60, 0xb, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x58, 0x9, 0x2b, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0xb0, 0x1, 0xbf, 0x85, 0x43, 0x33, 0x40,
- 0x8, 0x10, 0x0, 0x3, 0x7b, 0xde, 0xfe, 0x20,
- 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+8D77 "起" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x1d, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0x4, 0x0,
- 0x0, 0x56, 0x6d, 0x6d, 0x17, 0x66, 0x6e, 0x10,
- 0x0, 0x10, 0xc, 0x0, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0x0, 0xc, 0x0, 0x0, 0x0, 0xd, 0x0,
- 0x3, 0x66, 0x6d, 0x6b, 0x78, 0x66, 0x6e, 0x0,
- 0x1, 0x10, 0xd, 0x10, 0xd, 0x0, 0x8, 0x0,
- 0x0, 0x44, 0xd, 0x0, 0xd, 0x0, 0x0, 0x0,
- 0x0, 0x79, 0xd, 0x7, 0xd, 0x0, 0x0, 0x50,
- 0x0, 0x94, 0xd, 0x66, 0x2d, 0x0, 0x0, 0x70,
- 0x0, 0xb4, 0xd, 0x0, 0xc, 0x21, 0x12, 0xd1,
- 0x0, 0xb7, 0x3d, 0x0, 0x3, 0x9a, 0xa9, 0x60,
- 0x2, 0x70, 0xae, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x7, 0x10, 0x6, 0xd9, 0x53, 0x22, 0x23, 0x42,
- 0x6, 0x0, 0x0, 0x4, 0x8a, 0xce, 0xee, 0x70,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+8D85 "超" */
- 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xe2, 0x0, 0x0, 0x0, 0x1, 0x10,
- 0x0, 0x0, 0xd0, 0x0, 0x67, 0xb6, 0x6a, 0x80,
- 0x3, 0x66, 0xe6, 0xb5, 0x0, 0xe0, 0x9, 0x50,
- 0x0, 0x10, 0xd0, 0x0, 0x3, 0xa0, 0xa, 0x30,
- 0x0, 0x0, 0xd0, 0x0, 0x9, 0x30, 0xc, 0x10,
- 0x5, 0x66, 0xe6, 0xb8, 0x38, 0x2, 0xcc, 0x0,
- 0x2, 0x0, 0xd0, 0x3, 0x70, 0x0, 0x11, 0x0,
- 0x0, 0x71, 0xd0, 0x1, 0x3a, 0x66, 0x6d, 0x40,
- 0x0, 0xe0, 0xd0, 0x26, 0x2b, 0x0, 0xd, 0x0,
- 0x0, 0xc0, 0xd6, 0x65, 0x3b, 0x0, 0xd, 0x0,
- 0x2, 0xb0, 0xd0, 0x0, 0x2b, 0x0, 0xd, 0x0,
- 0x4, 0x77, 0xd0, 0x0, 0x2d, 0x66, 0x6e, 0x0,
- 0x8, 0x13, 0xe1, 0x0, 0x38, 0x0, 0x5, 0x0,
- 0x7, 0x0, 0x2a, 0xa5, 0x31, 0x11, 0x1, 0x10,
- 0x32, 0x0, 0x0, 0x26, 0x9b, 0xde, 0xef, 0x90,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+8D8A "越" */
- 0x0, 0x0, 0xa0, 0x0, 0x0, 0x83, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0xa2, 0x86, 0x0,
- 0x3, 0x55, 0xd5, 0xc3, 0x0, 0xa2, 0x1b, 0x0,
- 0x1, 0x21, 0xd1, 0x10, 0x96, 0xc7, 0x6b, 0x80,
- 0x0, 0x0, 0xd0, 0x0, 0xd0, 0x93, 0x0, 0x0,
- 0x16, 0x66, 0xd6, 0x98, 0xd0, 0x84, 0xd, 0x10,
- 0x0, 0x0, 0xb2, 0x0, 0xd0, 0x66, 0x5a, 0x0,
- 0x0, 0xb3, 0xc1, 0x0, 0xd0, 0x3a, 0xb1, 0x0,
- 0x0, 0xd1, 0xc6, 0xa7, 0xd2, 0x2e, 0x80, 0x30,
- 0x0, 0xe0, 0xc1, 0x0, 0xe7, 0x1d, 0x80, 0x70,
- 0x2, 0xd1, 0xc1, 0x0, 0x60, 0xa2, 0xb8, 0x80,
- 0x5, 0x68, 0xd1, 0x0, 0x18, 0x10, 0xb, 0x90,
- 0x8, 0x0, 0x7b, 0x73, 0x40, 0x0, 0x0, 0x30,
- 0x16, 0x0, 0x1, 0x6b, 0xde, 0xee, 0xff, 0x80,
- 0x10, 0x0, 0x0, 0x0, 0x0, 0x1, 0x11, 0x0,
-
- /* U+8DA3 "趣" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xa, 0x12, 0x66, 0x66, 0xb5, 0x0, 0x0, 0x0,
- 0xa2, 0x71, 0xc0, 0xc0, 0x0, 0x20, 0x5, 0x6c,
- 0x65, 0xc, 0xc, 0x27, 0x6b, 0x60, 0x0, 0xa1,
- 0x0, 0xd5, 0xd0, 0x0, 0xc0, 0x26, 0x6c, 0x69,
- 0x7c, 0xc, 0x5, 0xc, 0x0, 0x10, 0x66, 0x0,
- 0xc0, 0xc0, 0x39, 0x80, 0x4, 0x46, 0x50, 0xd,
- 0x6d, 0x0, 0xb4, 0x0, 0x77, 0x69, 0xa3, 0xc0,
- 0xc0, 0x1a, 0xb0, 0x8, 0x46, 0x50, 0xc, 0x6d,
- 0x58, 0x2a, 0x40, 0xa4, 0x65, 0x1d, 0x82, 0xc2,
- 0x40, 0x44, 0xa, 0x4b, 0x50, 0x0, 0xc, 0x10,
- 0x0, 0x1, 0x60, 0x3a, 0x73, 0x10, 0x40, 0x0,
- 0x12, 0x40, 0x0, 0x3, 0x8c, 0xdf, 0xff, 0xff,
- 0x50, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+8DB3 "足" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x96, 0x66, 0x66, 0x6c, 0x30, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x0, 0xe6, 0x67, 0xb6, 0x6e, 0x0, 0x0,
- 0x0, 0x0, 0x10, 0x2, 0xb0, 0x2, 0x0, 0x0,
- 0x0, 0x2, 0x30, 0x2, 0xb0, 0x0, 0x20, 0x0,
- 0x0, 0x6, 0xd0, 0x2, 0xd6, 0x67, 0xd3, 0x0,
- 0x0, 0xa, 0x60, 0x2, 0xb0, 0x0, 0x0, 0x0,
- 0x0, 0xe, 0x81, 0x2, 0xb0, 0x0, 0x0, 0x0,
- 0x0, 0x76, 0x1b, 0x42, 0xb0, 0x0, 0x0, 0x0,
- 0x0, 0xa0, 0x0, 0xad, 0xd5, 0x42, 0x23, 0x40,
- 0x7, 0x10, 0x0, 0x2, 0x8b, 0xde, 0xfe, 0x30,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+8DDF "跟" */
- 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x1, 0x0,
- 0x0, 0xc6, 0x66, 0xe0, 0xc6, 0x66, 0x6f, 0x10,
- 0x0, 0xc0, 0x1, 0xa0, 0xd0, 0x0, 0xd, 0x0,
- 0x0, 0xc0, 0x1, 0xa0, 0xd0, 0x0, 0xd, 0x0,
- 0x0, 0xc0, 0x1, 0xa0, 0xd6, 0x66, 0x6d, 0x0,
- 0x0, 0xc6, 0xc7, 0x80, 0xd0, 0x0, 0xd, 0x0,
- 0x0, 0x0, 0xc0, 0x0, 0xd6, 0x66, 0x6d, 0x0,
- 0x0, 0xd0, 0xc0, 0x40, 0xd0, 0x60, 0x6, 0x10,
- 0x0, 0xc0, 0xc6, 0x82, 0xd0, 0x80, 0xb, 0x80,
- 0x0, 0xc0, 0xc0, 0x0, 0xd0, 0x56, 0x94, 0x0,
- 0x0, 0xc0, 0xc0, 0x0, 0xd0, 0xc, 0x10, 0x0,
- 0x0, 0xc0, 0xc6, 0x51, 0xd0, 0x24, 0xc1, 0x0,
- 0x5, 0xeb, 0x70, 0x0, 0xd9, 0x40, 0x5e, 0x82,
- 0xa, 0x40, 0x0, 0x0, 0xb4, 0x0, 0x2, 0x70,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+8DEF "路" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xd, 0x30, 0x0, 0x0,
- 0x0, 0xb6, 0x68, 0x90, 0x3c, 0x0, 0x4, 0x0,
- 0x0, 0xd0, 0x4, 0x70, 0x88, 0x66, 0x7e, 0x20,
- 0x0, 0xd0, 0x4, 0x70, 0xa5, 0x0, 0x95, 0x0,
- 0x0, 0xd0, 0x4, 0x75, 0x26, 0x34, 0xb0, 0x0,
- 0x0, 0xe6, 0xc8, 0x66, 0x0, 0xbd, 0x10, 0x0,
- 0x0, 0x10, 0xc0, 0x0, 0x2, 0xdc, 0x80, 0x0,
- 0x1, 0x90, 0xd6, 0x70, 0x3a, 0x10, 0x8e, 0x82,
- 0x0, 0xb0, 0xc1, 0x15, 0xc6, 0x66, 0x6c, 0x91,
- 0x0, 0xb0, 0xc0, 0x41, 0xa3, 0x0, 0x1c, 0x0,
- 0x0, 0xb0, 0xc0, 0x0, 0xa3, 0x0, 0x1c, 0x0,
- 0x0, 0xb3, 0xd6, 0x40, 0xa3, 0x0, 0x1c, 0x0,
- 0xa, 0xc6, 0x10, 0x0, 0xa7, 0x66, 0x6c, 0x0,
- 0x1, 0x0, 0x0, 0x0, 0xa2, 0x0, 0x1b, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0,
-
- /* U+8EAB "身" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd2, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x20, 0x64, 0x0, 0x4, 0x0, 0x0, 0x0,
- 0xd, 0x66, 0x66, 0x66, 0xe2, 0x0, 0x0, 0x0,
- 0xd1, 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0xc,
- 0x66, 0x66, 0x66, 0xe0, 0x40, 0x0, 0x0, 0xc1,
- 0x0, 0x0, 0xe, 0x1e, 0x50, 0x0, 0xc, 0x66,
- 0x66, 0x66, 0xeb, 0x50, 0x0, 0x0, 0xc1, 0x0,
- 0x0, 0x1e, 0x60, 0x0, 0x36, 0x6d, 0x66, 0x66,
- 0x6c, 0xf0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x1b,
- 0x4e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4b, 0x20,
- 0xe0, 0x0, 0x0, 0x0, 0x1, 0x97, 0x0, 0xe,
- 0x0, 0x0, 0x0, 0x7, 0x82, 0x0, 0x0, 0xe0,
- 0x0, 0x3, 0x56, 0x10, 0x0, 0x17, 0xed, 0x0,
- 0x0, 0x10, 0x0, 0x0, 0x0, 0x4, 0x10, 0x0,
-
- /* U+8ECA "車" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc4, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc, 0x0, 0x0, 0x32, 0x0, 0x27,
- 0x66, 0x66, 0xd6, 0x66, 0x68, 0x70, 0x0, 0x1,
- 0x0, 0xc, 0x0, 0x3, 0x20, 0x0, 0x0, 0xd6,
- 0x66, 0xd6, 0x66, 0xb8, 0x0, 0x0, 0xd, 0x0,
- 0xc, 0x0, 0x9, 0x40, 0x0, 0x0, 0xd6, 0x66,
- 0xd6, 0x66, 0xb4, 0x0, 0x0, 0xd, 0x0, 0xc,
- 0x0, 0x9, 0x40, 0x0, 0x0, 0xd6, 0x66, 0xd6,
- 0x66, 0xb4, 0x0, 0x0, 0xa, 0x0, 0xc, 0x0,
- 0x5, 0x20, 0x0, 0x0, 0x0, 0x0, 0xc0, 0x0,
- 0x0, 0xa2, 0x17, 0x66, 0x66, 0x6d, 0x66, 0x66,
- 0x67, 0x50, 0x0, 0x0, 0x0, 0xc0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xc, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x60, 0x0, 0x0, 0x0,
-
- /* U+8EDF "軟" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc3, 0x0, 0x4, 0xb0, 0x0, 0x0,
- 0x0, 0x0, 0xc0, 0x22, 0x7, 0x70, 0x0, 0x0,
- 0x4, 0x76, 0xd6, 0x77, 0xb, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0xc0, 0x20, 0x1d, 0x66, 0x69, 0xc0,
- 0x2, 0xc6, 0xd6, 0xd4, 0x73, 0x83, 0x9, 0x30,
- 0x1, 0xb0, 0xc0, 0xc0, 0x70, 0xc3, 0x2, 0x0,
- 0x1, 0xd6, 0xd6, 0xd3, 0x0, 0xc4, 0x0, 0x0,
- 0x1, 0xb0, 0xc0, 0xc0, 0x0, 0xd6, 0x0, 0x0,
- 0x1, 0xd6, 0xd6, 0xd0, 0x1, 0xc7, 0x0, 0x0,
- 0x1, 0x70, 0xc0, 0x50, 0x6, 0x88, 0x20, 0x0,
- 0x5, 0x66, 0xd6, 0x7c, 0x1c, 0x13, 0x90, 0x0,
- 0x1, 0x0, 0xc0, 0x0, 0x67, 0x0, 0xc4, 0x0,
- 0x0, 0x0, 0xc0, 0x4, 0x90, 0x0, 0x2e, 0x60,
- 0x0, 0x0, 0xd0, 0x46, 0x0, 0x0, 0x4, 0xa2,
- 0x0, 0x0, 0x40, 0x10, 0x0, 0x0, 0x0, 0x0,
-
- /* U+8EE2 "転" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd3, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc0, 0x13, 0x0, 0x0, 0x5, 0x0,
- 0x4, 0x76, 0xd6, 0x77, 0x28, 0x66, 0x69, 0x20,
- 0x0, 0x0, 0xc0, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x2, 0xc6, 0xd6, 0xc5, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0xb0, 0xc0, 0xa1, 0x0, 0x0, 0x0, 0x30,
- 0x1, 0xd6, 0xd6, 0xc3, 0x86, 0x76, 0x66, 0xa2,
- 0x1, 0xb0, 0xc0, 0xa1, 0x0, 0x79, 0x0, 0x0,
- 0x1, 0xd6, 0xd6, 0xc2, 0x0, 0xc1, 0x0, 0x0,
- 0x1, 0x80, 0xc0, 0x51, 0x4, 0x70, 0x10, 0x0,
- 0x5, 0x66, 0xd6, 0x9b, 0x9, 0x0, 0x37, 0x0,
- 0x1, 0x0, 0xc0, 0x0, 0x72, 0x0, 0x8, 0x70,
- 0x0, 0x0, 0xc0, 0x3, 0xec, 0x98, 0x65, 0xe0,
- 0x0, 0x0, 0xd0, 0x0, 0x30, 0x0, 0x0, 0x60,
- 0x0, 0x0, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+8EFD "軽" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa, 0x80, 0x0, 0x0, 0x0, 0x15, 0x0,
- 0x0, 0xa, 0x20, 0x54, 0x86, 0x66, 0xbb, 0x0,
- 0x7, 0x6c, 0x76, 0x82, 0x32, 0x1, 0xc0, 0x0,
- 0x1, 0xa, 0x20, 0x20, 0x8, 0xa, 0x30, 0x0,
- 0xb, 0x7c, 0x76, 0xf1, 0x4, 0xc6, 0x0, 0x0,
- 0xa, 0x2a, 0x20, 0xc0, 0x7, 0xaa, 0x10, 0x0,
- 0xa, 0x7c, 0x76, 0xc0, 0x84, 0x3, 0xda, 0x50,
- 0xa, 0x2a, 0x20, 0xd5, 0x0, 0xc4, 0x6, 0x10,
- 0xa, 0x7c, 0x76, 0xc0, 0x0, 0xd0, 0x1, 0x0,
- 0x8, 0x1a, 0x20, 0x52, 0x75, 0xe5, 0x7b, 0x10,
- 0x26, 0x6c, 0x76, 0xa7, 0x0, 0xd0, 0x0, 0x0,
- 0x1, 0xa, 0x20, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0xa, 0x20, 0x0, 0x0, 0xd0, 0x3, 0x20,
- 0x0, 0xa, 0x20, 0x27, 0x66, 0x96, 0x69, 0x70,
- 0x0, 0x6, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+8F03 "較" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa, 0x80, 0x0, 0x1, 0xa2, 0x0, 0x0,
- 0x0, 0xa, 0x20, 0x40, 0x0, 0x4b, 0x0, 0x0,
- 0x7, 0x6c, 0x76, 0x92, 0x11, 0x13, 0x17, 0x20,
- 0x0, 0xa, 0x20, 0x22, 0x68, 0x65, 0x55, 0x30,
- 0xa, 0x7c, 0x76, 0xe2, 0xc, 0x60, 0x64, 0x0,
- 0xa, 0x2a, 0x20, 0xc0, 0x58, 0x0, 0x8, 0xa0,
- 0xa, 0x7c, 0x76, 0xc1, 0xa2, 0x0, 0x50, 0xc1,
- 0xa, 0x2a, 0x20, 0xc7, 0x6, 0x0, 0xe3, 0x0,
- 0xa, 0x7c, 0x76, 0xc0, 0x7, 0x14, 0x90, 0x0,
- 0x8, 0x1a, 0x20, 0x50, 0x2, 0x9b, 0x20, 0x0,
- 0x26, 0x6c, 0x76, 0xb7, 0x0, 0xaa, 0x0, 0x0,
- 0x1, 0xa, 0x20, 0x0, 0x4, 0xac, 0x40, 0x0,
- 0x0, 0xa, 0x20, 0x0, 0x77, 0x1, 0xd9, 0x30,
- 0x0, 0xa, 0x20, 0x37, 0x20, 0x0, 0x9, 0x40,
- 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+8F09 "載" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0x10, 0x3, 0xc3, 0x10, 0x0,
- 0x0, 0x56, 0x6d, 0x6d, 0x33, 0xa0, 0xc3, 0x0,
- 0x0, 0x10, 0xb, 0x0, 0x3, 0xa0, 0x43, 0x30,
- 0x17, 0x66, 0x6a, 0x66, 0x67, 0xc6, 0x67, 0xb2,
- 0x0, 0x0, 0x1c, 0x3, 0x12, 0xa0, 0x0, 0x0,
- 0x2, 0x76, 0x6d, 0x68, 0x61, 0xa0, 0x4, 0x0,
- 0x0, 0x86, 0x6d, 0x69, 0x30, 0xc0, 0xe, 0x40,
- 0x0, 0xd0, 0xb, 0xc, 0x10, 0xd0, 0x4a, 0x0,
- 0x0, 0xd6, 0x6d, 0x6d, 0x0, 0xc0, 0xc3, 0x0,
- 0x0, 0xd0, 0xb, 0xc, 0x0, 0x8a, 0xa0, 0x0,
- 0x0, 0xc6, 0x6d, 0x69, 0x0, 0x4f, 0x10, 0x0,
- 0x5, 0x66, 0x6d, 0x69, 0xa1, 0xcc, 0x50, 0x5,
- 0x1, 0x0, 0xb, 0x0, 0x2a, 0x21, 0xd5, 0x44,
- 0x0, 0x0, 0x1c, 0x5, 0x70, 0x0, 0x1c, 0xe4,
- 0x0, 0x0, 0x4, 0x1, 0x0, 0x0, 0x0, 0x43,
-
- /* U+8F15 "輕" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xa, 0x80, 0x0, 0x0, 0x0, 0x1, 0x0,
- 0x0, 0xa, 0x20, 0x52, 0x76, 0x66, 0x6a, 0x70,
- 0x17, 0x6c, 0x76, 0x82, 0x46, 0x57, 0xb, 0x30,
- 0x1, 0xa, 0x20, 0x20, 0x93, 0xa3, 0x4b, 0x0,
- 0xb, 0x7c, 0x76, 0xe3, 0x80, 0x60, 0x90, 0x0,
- 0xa, 0x2a, 0x20, 0xc3, 0x51, 0x70, 0x92, 0x0,
- 0xa, 0x7c, 0x76, 0xc0, 0x95, 0x77, 0x1e, 0x20,
- 0xa, 0x2a, 0x20, 0xc0, 0x3b, 0x28, 0x6, 0x30,
- 0xa, 0x4a, 0x32, 0xc0, 0x0, 0x0, 0x8, 0x0,
- 0xa, 0x5b, 0x54, 0x80, 0x66, 0xd6, 0x66, 0x30,
- 0x36, 0x6c, 0x76, 0x79, 0x0, 0xc1, 0x0, 0x0,
- 0x1, 0xa, 0x20, 0x0, 0x0, 0xc1, 0x0, 0x0,
- 0x0, 0xa, 0x20, 0x0, 0x0, 0xc1, 0x0, 0x10,
- 0x0, 0xa, 0x20, 0x16, 0x66, 0xd6, 0x68, 0xe2,
- 0x0, 0x9, 0x20, 0x1, 0x0, 0x0, 0x0, 0x0,
-
- /* U+8F2A "輪" */
- 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0x30, 0x0, 0x1, 0xe2, 0x0, 0x0,
- 0x0, 0xc, 0x5, 0x10, 0x6, 0xb2, 0x0, 0x0,
- 0x7, 0x6d, 0x66, 0x40, 0xd, 0x29, 0x0, 0x0,
- 0x1, 0xc, 0x2, 0x0, 0x87, 0x3, 0xb0, 0x0,
- 0xc, 0x6d, 0x6d, 0x44, 0x80, 0x1, 0xae, 0x70,
- 0xb, 0x1c, 0xc, 0x45, 0x37, 0x66, 0x54, 0x10,
- 0xb, 0x6d, 0x6d, 0x12, 0x0, 0x0, 0x4, 0x0,
- 0xb, 0x1c, 0xc, 0xc, 0x6c, 0x6c, 0x6d, 0x30,
- 0xb, 0x6d, 0x6d, 0xc, 0xb, 0xb, 0xc, 0x0,
- 0x8, 0xc, 0x5, 0xc, 0xb, 0xb, 0xc, 0x0,
- 0x26, 0x6d, 0x6b, 0x7c, 0x6c, 0x6c, 0x6d, 0x0,
- 0x1, 0xc, 0x0, 0xc, 0xb, 0xb, 0xc, 0x0,
- 0x0, 0xc, 0x0, 0xc, 0xb, 0xb, 0xc, 0x0,
- 0x0, 0xc, 0x0, 0xc, 0x7, 0x6, 0x7d, 0x0,
- 0x0, 0x5, 0x0, 0x2, 0x0, 0x0, 0x2, 0x0,
-
- /* U+8F38 "輸" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x9, 0x30, 0x0, 0x3, 0xb1, 0x0, 0x0,
- 0x0, 0xc, 0x2, 0x0, 0x9, 0xb4, 0x0, 0x0,
- 0x17, 0x6d, 0x69, 0x50, 0x2e, 0x27, 0x10, 0x0,
- 0x0, 0xc, 0x1, 0x0, 0xc5, 0x2, 0xb1, 0x0,
- 0xb, 0x6d, 0x6d, 0x58, 0x77, 0x68, 0x8e, 0x70,
- 0xc, 0x1c, 0xc, 0x54, 0x0, 0x10, 0x6, 0x20,
- 0xb, 0x6d, 0x6d, 0xb, 0x66, 0xd1, 0xc, 0x0,
- 0xb, 0x1c, 0xc, 0xc, 0x1, 0xba, 0x2b, 0x0,
- 0xc, 0x6d, 0x6d, 0xc, 0x56, 0xbb, 0xb, 0x0,
- 0x9, 0xc, 0x5, 0xc, 0x1, 0xbb, 0xb, 0x0,
- 0x26, 0x6d, 0x6b, 0x8c, 0x66, 0xbb, 0xb, 0x0,
- 0x1, 0xc, 0x0, 0xc, 0x1, 0xba, 0x1b, 0x0,
- 0x0, 0xc, 0x0, 0xc, 0x1, 0xb0, 0xb, 0x0,
- 0x0, 0xc, 0x10, 0xc, 0x3b, 0x83, 0xab, 0x0,
- 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+8F9B "辛" */
- 0x0, 0x0, 0x0, 0x65, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xf4, 0x0, 0x1, 0x0, 0x0,
- 0x46, 0x66, 0x6c, 0x76, 0x68, 0xd1, 0x0, 0x0,
- 0x2, 0x20, 0x0, 0x39, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0x30, 0x8, 0x80, 0x0, 0x0, 0x0, 0x0,
- 0x7a, 0x0, 0xa0, 0x0, 0x10, 0x5, 0x66, 0x67,
- 0x96, 0x88, 0x66, 0x7f, 0x40, 0x10, 0x0, 0x0,
- 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb,
- 0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xb3,
- 0x0, 0x68, 0x0, 0x0, 0x47, 0x66, 0x6d, 0x86,
- 0x66, 0x61, 0x0, 0x0, 0x0, 0x0, 0xb3, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0x30, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xb4, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+8F9E "辞" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x1, 0x30, 0x1, 0xb0, 0x0, 0x0,
- 0x0, 0x26, 0xad, 0xa0, 0x0, 0x92, 0x2, 0x0,
- 0x3, 0x43, 0xd0, 0x5, 0x76, 0x66, 0x69, 0x30,
- 0x0, 0x0, 0xd0, 0x0, 0x40, 0x0, 0x92, 0x0,
- 0x0, 0x0, 0xd0, 0x51, 0x49, 0x2, 0xe1, 0x0,
- 0x6, 0x66, 0xe6, 0x63, 0xe, 0x7, 0x40, 0x0,
- 0x0, 0x0, 0xd0, 0x1, 0x12, 0x18, 0x13, 0x50,
- 0x0, 0x10, 0xd0, 0x36, 0x54, 0xd4, 0x44, 0x40,
- 0x1, 0xe6, 0x76, 0xe0, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0xd0, 0x1, 0xb0, 0x0, 0xd0, 0x6, 0x0,
- 0x0, 0xd0, 0x1, 0xb5, 0x76, 0xe6, 0x66, 0x10,
- 0x0, 0xd0, 0x1, 0xb0, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0xe6, 0x66, 0xb0, 0x0, 0xd0, 0x0, 0x0,
- 0x1, 0xb0, 0x0, 0x40, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0,
-
- /* U+8FA6 "辦" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x43, 0x0, 0xb, 0x20, 0x6, 0x50, 0x0,
- 0x0, 0xe, 0x0, 0xc, 0x0, 0x0, 0xd0, 0x0,
- 0x5, 0x6b, 0x95, 0xc, 0x1, 0x66, 0x78, 0x90,
- 0x1, 0x0, 0x72, 0x6d, 0x6d, 0x20, 0x5, 0x20,
- 0x1, 0xa0, 0xc0, 0xb, 0xb, 0x19, 0xc, 0x30,
- 0x0, 0xa4, 0x50, 0xb, 0xb, 0xc, 0x28, 0x0,
- 0x7, 0x6b, 0x7a, 0x2a, 0xb, 0x56, 0x96, 0xd2,
- 0x0, 0xc, 0x0, 0x47, 0x19, 0x10, 0xc0, 0x0,
- 0x0, 0xc, 0x10, 0x83, 0x28, 0x0, 0xc0, 0x0,
- 0x5, 0x6c, 0x74, 0xb0, 0x47, 0x46, 0xd7, 0xa0,
- 0x0, 0x38, 0x4, 0x60, 0x65, 0x10, 0xc0, 0x0,
- 0x0, 0x83, 0xa, 0x0, 0xa2, 0x0, 0xc0, 0x0,
- 0x1, 0x90, 0x72, 0x3c, 0xc0, 0x0, 0xc0, 0x0,
- 0x7, 0x15, 0x30, 0x1, 0x0, 0x0, 0xd0, 0x0,
- 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40, 0x0,
-
- /* U+8FB2 "農" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x1, 0xd0, 0xd, 0x20, 0x10, 0x0,
- 0x0, 0xe, 0x66, 0xd6, 0x6e, 0x66, 0xd3, 0x0,
- 0x0, 0xd, 0x0, 0xb0, 0xd, 0x0, 0xd0, 0x0,
- 0x0, 0xd, 0x66, 0xd6, 0x6e, 0x66, 0xe0, 0x0,
- 0x0, 0xd, 0x0, 0xb0, 0xd, 0x0, 0xd0, 0x0,
- 0x0, 0xb, 0x66, 0x76, 0x67, 0x66, 0xa0, 0x0,
- 0x0, 0x9, 0x66, 0x66, 0x66, 0x66, 0xb8, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0,
- 0x0, 0xd, 0x47, 0x66, 0x66, 0x68, 0x10, 0x0,
- 0x0, 0xe, 0x66, 0x66, 0x66, 0x66, 0x7d, 0x20,
- 0x0, 0x1c, 0xb, 0x11, 0x50, 0x4, 0x60, 0x0,
- 0x0, 0x67, 0xb, 0x10, 0x47, 0x3a, 0x20, 0x0,
- 0x0, 0xb0, 0xb, 0x11, 0x43, 0xd5, 0x0, 0x0,
- 0x7, 0x20, 0xe, 0xc6, 0x0, 0x19, 0xeb, 0x60,
- 0x21, 0x0, 0x4, 0x0, 0x0, 0x0, 0x5, 0x0,
-
- /* U+8FBA "辺" */
- 0x0, 0x82, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2e, 0x20, 0x0, 0x0, 0x0, 0x7, 0x0,
- 0x0, 0xa, 0x34, 0x76, 0xb9, 0x66, 0x6d, 0x10,
- 0x0, 0x0, 0x0, 0x0, 0xa3, 0x0, 0x1b, 0x0,
- 0x0, 0x7, 0x0, 0x0, 0xc1, 0x0, 0x2a, 0x0,
- 0x27, 0x6e, 0x30, 0x0, 0xd0, 0x0, 0x39, 0x0,
- 0x0, 0xd, 0x0, 0x4, 0x90, 0x0, 0x48, 0x0,
- 0x0, 0xd, 0x0, 0x9, 0x40, 0x0, 0x67, 0x0,
- 0x0, 0xd, 0x0, 0x1b, 0x0, 0x0, 0x76, 0x0,
- 0x0, 0xd, 0x0, 0x82, 0x0, 0x0, 0xb3, 0x0,
- 0x0, 0xd, 0x4, 0x50, 0x2, 0x56, 0xe0, 0x0,
- 0x2, 0xa9, 0x74, 0x0, 0x0, 0x2d, 0x40, 0x0,
- 0x2e, 0x30, 0x4b, 0x41, 0x0, 0x0, 0x1, 0x21,
- 0x2, 0x0, 0x1, 0x8c, 0xef, 0xff, 0xff, 0x80,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
-
- /* U+8FBC "込" */
- 0x0, 0x50, 0x0, 0x0, 0x50, 0x0, 0x0, 0x0,
- 0x0, 0x6c, 0x0, 0x0, 0x70, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x30, 0x0, 0x33, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0,
- 0x0, 0x3, 0x0, 0x0, 0x2e, 0x0, 0x0, 0x0,
- 0x17, 0x6e, 0x50, 0x0, 0x79, 0x50, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0xd0, 0xa0, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x7, 0x60, 0x74, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x2a, 0x0, 0x1d, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x90, 0x0, 0x7, 0xb0, 0x0,
- 0x0, 0xd, 0x6, 0x0, 0x0, 0x0, 0xbd, 0x40,
- 0x2, 0xaa, 0x80, 0x0, 0x0, 0x0, 0x8, 0x40,
- 0x1e, 0x50, 0x4a, 0x41, 0x0, 0x0, 0x0, 0x10,
- 0x2, 0x0, 0x1, 0x7b, 0xde, 0xee, 0xff, 0x71,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+8FCE "迎" */
- 0x0, 0x30, 0x0, 0x0, 0x1a, 0x10, 0x0, 0x0,
- 0x0, 0x69, 0x0, 0x56, 0x84, 0x10, 0x1, 0x0,
- 0x0, 0xf, 0x10, 0xd0, 0x0, 0xd6, 0x6d, 0x30,
- 0x0, 0x2, 0x0, 0xd0, 0x0, 0xd0, 0xd, 0x0,
- 0x0, 0x1, 0x0, 0xd0, 0x0, 0xd0, 0xd, 0x0,
- 0x7, 0x6e, 0x20, 0xd0, 0x0, 0xd0, 0xd, 0x0,
- 0x0, 0xd, 0x0, 0xd0, 0x0, 0xd0, 0xd, 0x0,
- 0x0, 0xd, 0x0, 0xd0, 0x2, 0xd0, 0xd, 0x0,
- 0x0, 0xd, 0x0, 0xd7, 0x70, 0xd0, 0xd, 0x0,
- 0x0, 0xd, 0x1, 0xf6, 0x0, 0xd3, 0xad, 0x0,
- 0x0, 0xd, 0x0, 0x10, 0x0, 0xd0, 0x11, 0x0,
- 0x4, 0xb6, 0x80, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0x2d, 0x10, 0x2a, 0x74, 0x32, 0x42, 0x24, 0x51,
- 0x0, 0x0, 0x0, 0x37, 0xab, 0xcd, 0xdd, 0x30,
-
- /* U+8FD1 "近" */
- 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x62, 0x0,
- 0x0, 0x4b, 0x0, 0x16, 0x47, 0x9a, 0x85, 0x0,
- 0x0, 0xc, 0x20, 0x1c, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0x0, 0x1c, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2, 0x0, 0x1c, 0x0, 0x0, 0x2, 0x30,
- 0x18, 0x6e, 0x30, 0x1d, 0x66, 0x6c, 0x67, 0x60,
- 0x0, 0xd, 0x0, 0x1b, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x39, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x65, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0xa0, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0xd, 0x4, 0x50, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x5a, 0x43, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x9, 0x80, 0x49, 0x30, 0x0, 0x2, 0x0, 0x10,
- 0x19, 0x0, 0x1, 0x8c, 0xde, 0xff, 0xff, 0x91,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
-
- /* U+8FD4 "返" */
- 0x0, 0x30, 0x0, 0x0, 0x0, 0x3, 0x80, 0x0,
- 0x0, 0x3b, 0x0, 0x65, 0x78, 0x99, 0x82, 0x0,
- 0x0, 0xc, 0x30, 0xa3, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x3, 0x0, 0xa3, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa8, 0x66, 0x66, 0xc2, 0x0,
- 0x17, 0x6c, 0x30, 0xb2, 0x0, 0x2, 0xd0, 0x0,
- 0x1, 0xd, 0x0, 0xc3, 0x10, 0x9, 0x50, 0x0,
- 0x0, 0xd, 0x0, 0xc0, 0x47, 0x3c, 0x0, 0x0,
- 0x0, 0xd, 0x1, 0xa0, 0x1, 0xf9, 0x0, 0x0,
- 0x0, 0xd, 0x6, 0x30, 0x9, 0x68, 0xc1, 0x0,
- 0x0, 0xd, 0x8, 0x0, 0x95, 0x0, 0x8b, 0x0,
- 0x0, 0x1c, 0x40, 0x37, 0x10, 0x0, 0x5, 0x0,
- 0x7, 0x90, 0x58, 0x51, 0x0, 0x0, 0x1, 0x20,
- 0x19, 0x0, 0x1, 0x7c, 0xef, 0xff, 0xff, 0x60,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+8FEB "迫" */
- 0x0, 0x0, 0x0, 0x0, 0x28, 0x0, 0x0, 0x0,
- 0x0, 0x74, 0x0, 0x0, 0x59, 0x0, 0x0, 0x0,
- 0x0, 0xf, 0x30, 0x10, 0x80, 0x0, 0x30, 0x0,
- 0x0, 0x9, 0x20, 0xb7, 0x76, 0x66, 0xf2, 0x0,
- 0x0, 0x0, 0x0, 0xb3, 0x0, 0x0, 0xe0, 0x0,
- 0x14, 0x4a, 0x20, 0xb3, 0x0, 0x0, 0xe0, 0x0,
- 0x3, 0x1d, 0x10, 0xb7, 0x66, 0x66, 0xe0, 0x0,
- 0x0, 0xd, 0x0, 0xb3, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0xd, 0x0, 0xb3, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0xd, 0x0, 0xb3, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0xd, 0x0, 0xb7, 0x66, 0x66, 0xe0, 0x0,
- 0x1, 0x99, 0x80, 0x91, 0x0, 0x0, 0x90, 0x0,
- 0x2e, 0x40, 0x3a, 0x64, 0x22, 0x22, 0x34, 0x50,
- 0x3, 0x0, 0x0, 0x58, 0xbc, 0xde, 0xee, 0x30,
-
- /* U+8FFD "追" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x10, 0x0, 0x0, 0xc, 0x10, 0x0, 0x0,
- 0x0, 0x95, 0x0, 0x0, 0x56, 0x0, 0x10, 0x0,
- 0x0, 0x2f, 0x0, 0xb6, 0x86, 0x66, 0xe1, 0x0,
- 0x0, 0x6, 0x0, 0xc0, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0x0, 0x0, 0xc0, 0x0, 0x0, 0xd0, 0x0,
- 0x16, 0x6b, 0x30, 0xc6, 0x55, 0x55, 0xd0, 0x0,
- 0x1, 0xd, 0x0, 0xc0, 0x0, 0x0, 0x10, 0x0,
- 0x0, 0xd, 0x0, 0xc6, 0x66, 0x66, 0x98, 0x0,
- 0x0, 0xd, 0x0, 0xc0, 0x0, 0x0, 0x76, 0x0,
- 0x0, 0xd, 0x0, 0xc0, 0x0, 0x0, 0x76, 0x0,
- 0x0, 0xd, 0x0, 0xd6, 0x66, 0x66, 0xa6, 0x0,
- 0x1, 0x99, 0x70, 0xd0, 0x0, 0x0, 0x64, 0x0,
- 0x2e, 0x40, 0x3a, 0x61, 0x0, 0x0, 0x0, 0x20,
- 0x4, 0x0, 0x1, 0x7b, 0xde, 0xee, 0xff, 0x60,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x11, 0x0,
-
- /* U+9000 "退" */
- 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x87, 0x0, 0x4a, 0x66, 0x66, 0xe1, 0x0,
- 0x0, 0x1f, 0x0, 0x3a, 0x0, 0x0, 0xe0, 0x0,
- 0x0, 0x2, 0x0, 0x3c, 0x66, 0x66, 0xe0, 0x0,
- 0x0, 0x0, 0x0, 0x3a, 0x0, 0x0, 0xe0, 0x0,
- 0x6, 0x6c, 0x30, 0x3a, 0x0, 0x0, 0xe0, 0x0,
- 0x1, 0xe, 0x0, 0x3c, 0x66, 0x66, 0xb2, 0x0,
- 0x0, 0xe, 0x0, 0x3a, 0x10, 0x0, 0x8a, 0x0,
- 0x0, 0xe, 0x0, 0x3a, 0x6, 0x77, 0x30, 0x0,
- 0x0, 0xe, 0x0, 0x3a, 0x1, 0x4b, 0x70, 0x0,
- 0x0, 0xe, 0x0, 0x3c, 0x85, 0x0, 0xab, 0x0,
- 0x2, 0x97, 0x80, 0x3d, 0x20, 0x0, 0x9, 0x0,
- 0x1e, 0x20, 0x1a, 0x74, 0x21, 0x11, 0x23, 0x41,
- 0x0, 0x0, 0x0, 0x59, 0xbd, 0xef, 0xff, 0x40,
-
- /* U+9001 "送" */
- 0x0, 0x20, 0x0, 0x14, 0x0, 0x7, 0x30, 0x0,
- 0x0, 0x78, 0x0, 0x9, 0x60, 0xd, 0x20, 0x0,
- 0x0, 0xf, 0x10, 0x3, 0xb0, 0x46, 0x0, 0x0,
- 0x0, 0x3, 0x0, 0x56, 0x66, 0xa6, 0x7c, 0x10,
- 0x0, 0x0, 0x0, 0x10, 0xb, 0x20, 0x0, 0x0,
- 0x27, 0x6d, 0x10, 0x0, 0xc, 0x10, 0x2, 0x10,
- 0x0, 0xd, 0x6, 0x66, 0x6e, 0x66, 0x6a, 0x80,
- 0x0, 0xd, 0x0, 0x0, 0x1d, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0x6b, 0x60, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x1, 0xc1, 0x2c, 0x60, 0x0,
- 0x0, 0xd, 0x0, 0xa, 0x20, 0x1, 0xd7, 0x0,
- 0x0, 0x8b, 0x62, 0x71, 0x0, 0x0, 0x28, 0x0,
- 0x2d, 0x50, 0x5b, 0x40, 0x0, 0x0, 0x1, 0x21,
- 0x4, 0x0, 0x1, 0x8c, 0xcd, 0xee, 0xff, 0x70,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
-
- /* U+9003 "逃" */
- 0x0, 0x10, 0x0, 0x0, 0x91, 0x92, 0x0, 0x0,
- 0x0, 0x76, 0x0, 0x0, 0xd0, 0xd0, 0x0, 0x0,
- 0x0, 0x1f, 0x4, 0x10, 0xd0, 0xd0, 0x3e, 0x10,
- 0x0, 0x4, 0x1, 0xd0, 0xd0, 0xd2, 0xa1, 0x0,
- 0x0, 0x0, 0x0, 0xa0, 0xd0, 0xd5, 0x0, 0x0,
- 0x5, 0x6c, 0x20, 0x0, 0xd0, 0xd0, 0x0, 0x0,
- 0x1, 0xd, 0x0, 0x7, 0xe0, 0xd7, 0x92, 0x0,
- 0x0, 0xd, 0x5, 0xa1, 0xd0, 0xd0, 0x6d, 0x0,
- 0x0, 0xd, 0x1b, 0x13, 0xa0, 0xd0, 0x3, 0x20,
- 0x0, 0xd, 0x0, 0x9, 0x30, 0xd0, 0x0, 0x60,
- 0x0, 0xd, 0x0, 0x37, 0x0, 0xc3, 0x14, 0xb0,
- 0x0, 0x4b, 0x42, 0x50, 0x0, 0x49, 0x99, 0x50,
- 0xc, 0x70, 0x59, 0x41, 0x0, 0x0, 0x12, 0x31,
- 0x3, 0x0, 0x1, 0x7b, 0xde, 0xff, 0xff, 0x90,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+900F "透" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x38, 0x60, 0x0,
- 0x0, 0x93, 0x0, 0x45, 0x7d, 0x75, 0x30, 0x0,
- 0x0, 0x3e, 0x0, 0x0, 0xc, 0x0, 0x5, 0x10,
- 0x0, 0x4, 0x7, 0x66, 0xce, 0x96, 0x67, 0x50,
- 0x0, 0x0, 0x0, 0x7, 0x6c, 0x28, 0x0, 0x0,
- 0x14, 0x4a, 0x10, 0x75, 0xc, 0x3, 0xc8, 0x40,
- 0x3, 0x1d, 0x26, 0x76, 0x6a, 0x69, 0x28, 0x40,
- 0x0, 0xd, 0x0, 0x12, 0xc0, 0xc, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x3, 0x90, 0x7a, 0xa5, 0x0,
- 0x0, 0xd, 0x0, 0x9, 0x20, 0x10, 0xa3, 0x0,
- 0x0, 0xd, 0x0, 0x38, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0x6b, 0x32, 0x60, 0x2, 0x8b, 0x90, 0x0,
- 0x1d, 0x50, 0x59, 0x30, 0x0, 0x17, 0x0, 0x10,
- 0x5, 0x0, 0x2, 0x8c, 0xde, 0xee, 0xef, 0x70,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x11, 0x0,
-
- /* U+9010 "逐" */
- 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10,
- 0x0, 0x6a, 0x2, 0x76, 0x67, 0x76, 0x6a, 0xa0,
- 0x0, 0xe, 0x10, 0x0, 0x1c, 0x20, 0x0, 0x0,
- 0x0, 0x1, 0x0, 0x1, 0xa7, 0x0, 0x9, 0x30,
- 0x0, 0x0, 0x0, 0x37, 0x6, 0x50, 0x88, 0x10,
- 0x16, 0x6c, 0x32, 0x20, 0x2b, 0xc7, 0x20, 0x0,
- 0x0, 0xd, 0x0, 0x4, 0x80, 0x85, 0x0, 0x0,
- 0x0, 0xd, 0x1, 0x64, 0x2, 0xeb, 0x70, 0x0,
- 0x0, 0xd, 0x2, 0x0, 0x3c, 0x5a, 0x3d, 0x20,
- 0x0, 0xd, 0x0, 0x7, 0x90, 0x3a, 0x6, 0xc0,
- 0x0, 0xd, 0x3, 0x73, 0x0, 0x68, 0x0, 0x60,
- 0x0, 0x78, 0x61, 0x0, 0x5b, 0xe2, 0x0, 0x0,
- 0x1d, 0x40, 0x39, 0x41, 0x3, 0x30, 0x0, 0x0,
- 0x4, 0x0, 0x1, 0x7b, 0xde, 0xee, 0xef, 0xa1,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x11, 0x0,
-
- /* U+9019 "這" */
- 0x0, 0x70, 0x0, 0x0, 0x9, 0x10, 0x0, 0x0,
- 0x0, 0x5d, 0x0, 0x0, 0x7, 0x70, 0x0, 0x0,
- 0x0, 0xb, 0x3, 0x66, 0x67, 0x76, 0x8d, 0x10,
- 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2, 0x0, 0x26, 0x66, 0x67, 0xd1, 0x0,
- 0x18, 0x6f, 0x40, 0x2, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x17, 0x66, 0x67, 0xc0, 0x0,
- 0x0, 0xd, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x39, 0x66, 0x66, 0xc4, 0x0,
- 0x0, 0xd, 0x0, 0x2a, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0x2a, 0x0, 0x0, 0xd0, 0x0,
- 0x3, 0xb8, 0x70, 0x2c, 0x66, 0x66, 0xe0, 0x0,
- 0x3e, 0x10, 0x2a, 0x76, 0x0, 0x0, 0x11, 0x31,
- 0x1, 0x0, 0x0, 0x5a, 0xce, 0xff, 0xff, 0x60,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+901A "通" */
- 0x0, 0x10, 0x0, 0x56, 0x66, 0x66, 0xa2, 0x0,
- 0x0, 0xb4, 0x0, 0x11, 0x20, 0x8, 0x83, 0x0,
- 0x0, 0x4c, 0x0, 0x0, 0x4c, 0x61, 0x0, 0x0,
- 0x0, 0x3, 0x1, 0xa6, 0x6d, 0x86, 0x6c, 0x10,
- 0x0, 0x0, 0x0, 0xc0, 0xd, 0x0, 0xd, 0x0,
- 0x17, 0x6d, 0x30, 0xc0, 0xd, 0x0, 0xd, 0x0,
- 0x1, 0xd, 0x0, 0xd6, 0x6e, 0x66, 0x6d, 0x0,
- 0x0, 0xd, 0x0, 0xc0, 0xd, 0x0, 0xd, 0x0,
- 0x0, 0xd, 0x0, 0xd6, 0x6e, 0x66, 0x6d, 0x0,
- 0x0, 0xd, 0x0, 0xc0, 0xd, 0x0, 0xd, 0x0,
- 0x0, 0xd, 0x0, 0xc0, 0xd, 0x0, 0xd, 0x0,
- 0x0, 0x6a, 0x51, 0xa0, 0x8, 0x5, 0xcb, 0x0,
- 0x1c, 0x60, 0x49, 0x41, 0x0, 0x0, 0x22, 0x21,
- 0x6, 0x0, 0x1, 0x7b, 0xef, 0xff, 0xff, 0x80,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x11, 0x0,
-
- /* U+901F "速" */
- 0x0, 0x0, 0x0, 0x0, 0xa, 0x20, 0x0, 0x0,
- 0x1, 0x91, 0x0, 0x0, 0xd, 0x0, 0x2, 0x0,
- 0x0, 0x7c, 0x7, 0x66, 0x6e, 0x66, 0x6a, 0x30,
- 0x0, 0x16, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xa6, 0x6e, 0x66, 0xd4, 0x0,
- 0x1, 0x16, 0x10, 0xd0, 0xd, 0x0, 0xd0, 0x0,
- 0x17, 0x5d, 0x20, 0xd0, 0xd, 0x0, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0xc6, 0x9f, 0x66, 0xc0, 0x0,
- 0x0, 0xd, 0x0, 0x11, 0xbe, 0x51, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0xa, 0x2d, 0x1a, 0xa1, 0x0,
- 0x0, 0xd, 0x1, 0x81, 0xd, 0x0, 0x7d, 0x0,
- 0x0, 0x7a, 0x65, 0x0, 0xe, 0x0, 0x4, 0x0,
- 0x1d, 0x50, 0x49, 0x30, 0x8, 0x0, 0x1, 0x21,
- 0x3, 0x0, 0x1, 0x7c, 0xde, 0xef, 0xff, 0x70,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+9020 "造" */
- 0x0, 0x10, 0x0, 0x0, 0xa, 0x20, 0x0, 0x0,
- 0x0, 0xa6, 0x0, 0x2b, 0x1d, 0x0, 0x0, 0x0,
- 0x0, 0x2f, 0x0, 0x5b, 0xd, 0x0, 0x81, 0x0,
- 0x0, 0x4, 0x0, 0x96, 0x6e, 0x66, 0x63, 0x0,
- 0x0, 0x0, 0x0, 0x70, 0xd, 0x0, 0x0, 0x0,
- 0x3, 0x39, 0x12, 0x0, 0xd, 0x0, 0x7, 0x40,
- 0x5, 0x3d, 0x16, 0x66, 0x66, 0x66, 0x66, 0x50,
- 0x0, 0xd, 0x0, 0x9, 0x66, 0x66, 0xa2, 0x0,
- 0x0, 0xd, 0x0, 0xd, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0xd, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0xd, 0x0, 0x0, 0xd0, 0x0,
- 0x2, 0xa9, 0x50, 0xe, 0x66, 0x66, 0xd0, 0x0,
- 0x2e, 0x30, 0x5a, 0x43, 0x0, 0x0, 0x0, 0x11,
- 0x2, 0x0, 0x1, 0x8b, 0xdd, 0xef, 0xff, 0x90,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+9023 "連" */
- 0x0, 0x50, 0x0, 0x0, 0xa, 0x30, 0x0, 0x0,
- 0x0, 0x5a, 0x0, 0x0, 0xc, 0x0, 0x25, 0x0,
- 0x0, 0xd, 0x13, 0x76, 0x6d, 0x66, 0x65, 0x0,
- 0x0, 0x0, 0x0, 0x86, 0x6d, 0x66, 0xa3, 0x0,
- 0x0, 0x4, 0x0, 0xc0, 0xc, 0x0, 0xb1, 0x0,
- 0x27, 0x5e, 0x40, 0xc6, 0x6d, 0x66, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0xc0, 0xc, 0x0, 0xb0, 0x0,
- 0x0, 0xd, 0x0, 0xc6, 0x6d, 0x66, 0xd1, 0x0,
- 0x0, 0xd, 0x0, 0x70, 0xc, 0x0, 0x50, 0x0,
- 0x0, 0xd, 0x26, 0x66, 0x6d, 0x66, 0x6c, 0x50,
- 0x0, 0x1e, 0x1, 0x0, 0xc, 0x0, 0x0, 0x0,
- 0x6, 0xc5, 0x91, 0x0, 0xc, 0x0, 0x0, 0x0,
- 0x2d, 0x10, 0x2b, 0x84, 0x27, 0x22, 0x34, 0x50,
- 0x0, 0x0, 0x0, 0x38, 0xab, 0xcc, 0xcc, 0x20,
-
- /* U+902E "逮" */
- 0x0, 0x20, 0x0, 0x0, 0xb, 0x10, 0x0, 0x0,
- 0x0, 0x78, 0x0, 0x0, 0xd, 0x0, 0x50, 0x0,
- 0x0, 0xe, 0x10, 0x76, 0x6e, 0x66, 0xe2, 0x0,
- 0x0, 0x1, 0x0, 0x0, 0xd, 0x0, 0xe3, 0x40,
- 0x0, 0x0, 0x7, 0x66, 0x6e, 0x66, 0xe6, 0x50,
- 0x17, 0x6e, 0x40, 0x56, 0x6e, 0x66, 0xe0, 0x0,
- 0x0, 0xd, 0x1, 0x40, 0xd, 0x0, 0x40, 0x0,
- 0x0, 0xd, 0x0, 0x7b, 0xd, 0x8, 0xc0, 0x0,
- 0x0, 0xd, 0x0, 0x5, 0x3d, 0x73, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x58, 0x3d, 0x78, 0x20, 0x0,
- 0x0, 0xd, 0xd, 0x70, 0xd, 0x1, 0xc8, 0x0,
- 0x0, 0x87, 0x50, 0x7, 0x8d, 0x0, 0x7, 0x0,
- 0x1c, 0x30, 0x49, 0x30, 0x86, 0x0, 0x0, 0x10,
- 0x4, 0x0, 0x1, 0x8c, 0xdd, 0xde, 0xff, 0xa0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
-
- /* U+9031 "週" */
- 0x0, 0x71, 0x0, 0x40, 0x0, 0x0, 0x5, 0x0,
- 0x0, 0x2e, 0x20, 0xd6, 0x6a, 0xb6, 0x6e, 0x10,
- 0x0, 0x8, 0x30, 0xc0, 0x7, 0x54, 0xc, 0x0,
- 0x0, 0x0, 0x0, 0xc0, 0x7a, 0x97, 0x1c, 0x0,
- 0x0, 0x6, 0x0, 0xc0, 0x7, 0x52, 0xc, 0x0,
- 0x27, 0x6e, 0x30, 0xb4, 0x77, 0x68, 0x5c, 0x0,
- 0x0, 0xd, 0x0, 0xb0, 0x86, 0x6a, 0xc, 0x0,
- 0x0, 0xd, 0x0, 0xa0, 0xc0, 0xc, 0xc, 0x0,
- 0x0, 0xd, 0x2, 0x60, 0xc0, 0xb, 0xc, 0x0,
- 0x0, 0xd, 0x6, 0x20, 0xd6, 0x6b, 0xc, 0x0,
- 0x0, 0xd, 0x7, 0x0, 0x40, 0x0, 0xb, 0x0,
- 0x3, 0xa8, 0x82, 0x0, 0x0, 0x15, 0xd8, 0x0,
- 0x2e, 0x20, 0x4a, 0x41, 0x0, 0x0, 0x10, 0x11,
- 0x2, 0x0, 0x1, 0x7b, 0xde, 0xee, 0xff, 0xb1,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+9032 "進" */
- 0x0, 0x51, 0x0, 0x1a, 0x27, 0x30, 0x0, 0x0,
- 0x0, 0x3e, 0x10, 0x5c, 0x11, 0xe0, 0x0, 0x0,
- 0x0, 0xa, 0x30, 0xa4, 0x0, 0x50, 0x26, 0x0,
- 0x0, 0x0, 0x1, 0xf7, 0x66, 0xc6, 0x66, 0x10,
- 0x0, 0x5, 0x7, 0xc2, 0x0, 0xc0, 0x10, 0x0,
- 0x7, 0x6e, 0x57, 0x97, 0x66, 0xd6, 0xa6, 0x0,
- 0x0, 0xd, 0x10, 0x92, 0x0, 0xc0, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x97, 0x66, 0xd6, 0xb7, 0x0,
- 0x0, 0xd, 0x0, 0x92, 0x0, 0xc0, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x92, 0x0, 0xc0, 0x1, 0x0,
- 0x0, 0xd, 0x0, 0x97, 0x66, 0xc6, 0x8d, 0x20,
- 0x3, 0xc8, 0x90, 0x81, 0x0, 0x0, 0x0, 0x0,
- 0x2e, 0x30, 0x3b, 0x62, 0x0, 0x0, 0x12, 0x31,
- 0x2, 0x0, 0x0, 0x7c, 0xef, 0xff, 0xff, 0x70,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
-
- /* U+9045 "遅" */
- 0x0, 0x61, 0x0, 0x40, 0x0, 0x0, 0x4, 0x0,
- 0x0, 0x3d, 0x0, 0xd6, 0x66, 0x66, 0x6e, 0x30,
- 0x0, 0xb, 0x20, 0xd0, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0x0, 0x0, 0xd6, 0x66, 0x66, 0x6d, 0x0,
- 0x0, 0x3, 0x0, 0xd0, 0x75, 0x4, 0xb0, 0x0,
- 0x18, 0x6e, 0x50, 0xc0, 0xc, 0x9, 0x27, 0x0,
- 0x0, 0xd, 0x0, 0xc6, 0x76, 0xe6, 0x66, 0x10,
- 0x0, 0xd, 0x1, 0x93, 0x66, 0xe6, 0x88, 0x0,
- 0x0, 0xd, 0x5, 0x40, 0x10, 0xd0, 0x0, 0x0,
- 0x0, 0xd, 0x8, 0x47, 0x66, 0xe6, 0x69, 0xa0,
- 0x0, 0xd, 0x23, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0x2, 0xb9, 0x90, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0x2e, 0x40, 0x4b, 0x40, 0x0, 0x60, 0x0, 0x10,
- 0x3, 0x0, 0x1, 0x7c, 0xdd, 0xdd, 0xef, 0x81,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
-
- /* U+904A "遊" */
- 0x0, 0x81, 0x0, 0x43, 0x0, 0x8, 0x0, 0x0,
- 0x0, 0x3e, 0x10, 0xe, 0x0, 0x3b, 0x10, 0x0,
- 0x0, 0x9, 0x10, 0x3, 0x10, 0xa7, 0x46, 0xa0,
- 0x0, 0x0, 0x7, 0xa6, 0x89, 0x82, 0x22, 0x20,
- 0x0, 0x5, 0x0, 0xb0, 0x15, 0x46, 0x6a, 0x60,
- 0x27, 0x6f, 0x30, 0xc6, 0xc5, 0x0, 0x38, 0x10,
- 0x0, 0xd, 0x0, 0xc0, 0xb1, 0x0, 0xd0, 0x0,
- 0x0, 0xd, 0x1, 0xa0, 0xc3, 0x66, 0xc7, 0xc1,
- 0x0, 0xd, 0x5, 0x50, 0xc0, 0x0, 0xb0, 0x0,
- 0x0, 0xd, 0x9, 0x0, 0xc0, 0x0, 0xb0, 0x0,
- 0x0, 0xd, 0x43, 0x36, 0x80, 0x0, 0xa0, 0x0,
- 0x3, 0xaa, 0x60, 0x2c, 0x10, 0x4c, 0x80, 0x0,
- 0x2e, 0x20, 0x68, 0x20, 0x0, 0x2, 0x0, 0x11,
- 0x1, 0x0, 0x2, 0x8b, 0xcd, 0xdd, 0xef, 0x70,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x11, 0x0,
-
- /* U+904B "運" */
- 0x1, 0x70, 0x1, 0x40, 0x0, 0x0, 0x6, 0x0,
- 0x0, 0x7c, 0x5, 0x96, 0x66, 0x66, 0x7e, 0x40,
- 0x0, 0xd, 0xd, 0x20, 0xb, 0x30, 0x51, 0x0,
- 0x0, 0x0, 0x3, 0x76, 0x6d, 0x66, 0x97, 0x0,
- 0x0, 0x1, 0x0, 0x30, 0xb, 0x0, 0x40, 0x0,
- 0x17, 0x6e, 0x30, 0xb6, 0x6d, 0x66, 0xd3, 0x0,
- 0x0, 0xd, 0x0, 0xb6, 0x6d, 0x66, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0xb0, 0xb, 0x0, 0xb0, 0x0,
- 0x0, 0xd, 0x0, 0xb6, 0x6d, 0x66, 0xd1, 0x0,
- 0x0, 0xd, 0x0, 0x30, 0xb, 0x0, 0x25, 0x0,
- 0x0, 0xd, 0x7, 0x66, 0x6d, 0x66, 0x67, 0x40,
- 0x2, 0xa9, 0x50, 0x0, 0xb, 0x0, 0x0, 0x0,
- 0x2e, 0x30, 0x59, 0x30, 0x9, 0x0, 0x0, 0x10,
- 0x2, 0x0, 0x1, 0x8c, 0xde, 0xee, 0xef, 0x60,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+904E "過" */
- 0x0, 0x70, 0x0, 0x4, 0x0, 0x0, 0x40, 0x0,
- 0x0, 0x4d, 0x0, 0xf, 0x66, 0x66, 0xc0, 0x0,
- 0x0, 0xc, 0x10, 0xf, 0x66, 0x91, 0xa0, 0x0,
- 0x0, 0x0, 0x0, 0xe, 0x4, 0x81, 0xa0, 0x0,
- 0x0, 0x5, 0x1, 0xe, 0x4, 0x71, 0xa2, 0x0,
- 0x27, 0x6f, 0x2a, 0x78, 0x66, 0x76, 0x7d, 0x40,
- 0x0, 0xd, 0xa, 0x20, 0x86, 0x69, 0x1c, 0x0,
- 0x0, 0xd, 0x9, 0x20, 0xc0, 0xc, 0xc, 0x0,
- 0x0, 0xd, 0x9, 0x20, 0xc0, 0xc, 0xc, 0x0,
- 0x0, 0xd, 0x9, 0x20, 0xd6, 0x6d, 0xc, 0x0,
- 0x0, 0xd, 0xa, 0x30, 0x60, 0x4, 0xd, 0x0,
- 0x3, 0xa9, 0x56, 0x10, 0x0, 0x2, 0x9b, 0x0,
- 0x3e, 0x20, 0x5a, 0x41, 0x0, 0x0, 0x0, 0x20,
- 0x2, 0x0, 0x1, 0x7c, 0xde, 0xff, 0xff, 0x50,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
-
- /* U+9053 "道" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x60, 0x0, 0x7, 0x10, 0x6, 0x80, 0x0,
- 0x0, 0x4d, 0x0, 0x3, 0xd0, 0xc, 0x20, 0x0,
- 0x0, 0xc, 0x10, 0x0, 0x80, 0x53, 0x6, 0x40,
- 0x0, 0x0, 0x6, 0x76, 0x6d, 0x66, 0x66, 0x50,
- 0x0, 0x2, 0x0, 0x5, 0x29, 0x22, 0x72, 0x0,
- 0x17, 0x6e, 0x40, 0x1d, 0x33, 0x33, 0xd2, 0x0,
- 0x0, 0xd, 0x0, 0xd, 0x66, 0x66, 0xe0, 0x0,
- 0x0, 0xd, 0x0, 0xc, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0xd, 0x66, 0x66, 0xe0, 0x0,
- 0x0, 0xd, 0x0, 0xc, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0xd, 0x66, 0x66, 0xe0, 0x0,
- 0x4, 0xa3, 0x80, 0x1a, 0x0, 0x0, 0x90, 0x0,
- 0xb, 0x10, 0x1a, 0x73, 0x10, 0x0, 0x12, 0x30,
- 0x0, 0x0, 0x0, 0x48, 0xbd, 0xee, 0xff, 0x60,
-
- /* U+9054 "達" */
- 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0,
- 0x0, 0x85, 0x0, 0x0, 0xb, 0x70, 0x0, 0x0,
- 0x0, 0xe, 0x20, 0x56, 0x6c, 0x76, 0xd3, 0x0,
- 0x0, 0x5, 0x10, 0x10, 0xa, 0x20, 0x0, 0x0,
- 0x0, 0x0, 0x5, 0x66, 0x6c, 0x76, 0x6c, 0x90,
- 0x0, 0x7, 0x1, 0x6, 0x40, 0xa, 0x20, 0x0,
- 0x28, 0x6e, 0x30, 0x1, 0xe0, 0x49, 0x4, 0x0,
- 0x0, 0xd, 0x3, 0x76, 0x89, 0x96, 0x69, 0x30,
- 0x0, 0xd, 0x0, 0x0, 0xa, 0x20, 0x60, 0x0,
- 0x0, 0xd, 0x0, 0x57, 0x6c, 0x76, 0x72, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0xa, 0x20, 0x8, 0x10,
- 0x0, 0xd, 0x6, 0x66, 0x6c, 0x76, 0x66, 0x30,
- 0x5, 0xb8, 0x70, 0x0, 0xa, 0x20, 0x0, 0x0,
- 0x3e, 0x20, 0x4a, 0x41, 0x8, 0x10, 0x0, 0x10,
- 0x1, 0x0, 0x1, 0x7c, 0xde, 0xef, 0xff, 0x40,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+9055 "違" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x70, 0x0, 0x0, 0x95, 0x0, 0x0, 0x0,
- 0x0, 0x6d, 0x0, 0x57, 0xc6, 0x6b, 0x50, 0x0,
- 0x0, 0xd, 0x10, 0x0, 0x90, 0xa, 0x10, 0x0,
- 0x0, 0x0, 0x5, 0x66, 0xb6, 0x6c, 0x6c, 0x60,
- 0x0, 0x4, 0x1, 0x22, 0x0, 0x0, 0x40, 0x0,
- 0x37, 0x6f, 0x30, 0x1c, 0x66, 0x67, 0xc0, 0x0,
- 0x0, 0xd, 0x0, 0x1c, 0x66, 0x67, 0xa0, 0x0,
- 0x0, 0xd, 0x0, 0x14, 0xc, 0x1, 0x50, 0x0,
- 0x0, 0xd, 0x4, 0x76, 0x6d, 0x66, 0xa3, 0x0,
- 0x0, 0xd, 0x0, 0x95, 0xc, 0x0, 0x3, 0x0,
- 0x0, 0xd, 0x2, 0xe6, 0x6d, 0x66, 0x69, 0x50,
- 0x4, 0xb9, 0x50, 0x0, 0xc, 0x0, 0x0, 0x0,
- 0x4e, 0x20, 0x79, 0x20, 0x7, 0x0, 0x0, 0x10,
- 0x1, 0x0, 0x3, 0xad, 0xdd, 0xde, 0xff, 0x60,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+9060 "遠" */
- 0x0, 0x30, 0x0, 0x0, 0x8, 0x60, 0x0, 0x0,
- 0x0, 0x3b, 0x0, 0x0, 0x8, 0x30, 0x70, 0x0,
- 0x0, 0xb, 0x50, 0x76, 0x6b, 0x86, 0x63, 0x0,
- 0x0, 0x1, 0x15, 0x66, 0x6b, 0x86, 0x69, 0x80,
- 0x0, 0x1, 0x2, 0x20, 0x0, 0x0, 0x40, 0x0,
- 0x28, 0x6f, 0x20, 0xc7, 0x66, 0x66, 0xe2, 0x0,
- 0x0, 0xd, 0x0, 0xb1, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0xd, 0x0, 0xc6, 0x7e, 0x66, 0xa0, 0x0,
- 0x0, 0xd, 0x0, 0x12, 0xcd, 0x0, 0x78, 0x0,
- 0x0, 0xd, 0x0, 0x69, 0x2c, 0x5a, 0x50, 0x0,
- 0x0, 0xd, 0x25, 0x30, 0xc, 0x1, 0xa9, 0x0,
- 0x3, 0xb9, 0x50, 0x0, 0x1d, 0x0, 0x8, 0x20,
- 0x3e, 0x20, 0x49, 0x30, 0x6, 0x0, 0x0, 0x10,
- 0x1, 0x0, 0x1, 0x7b, 0xcd, 0xee, 0xff, 0x81,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+9069 "適" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x50, 0x0, 0x0, 0xa, 0x20, 0x0, 0x0,
- 0x0, 0x79, 0x0, 0x0, 0x5, 0x40, 0x3, 0x0,
- 0x0, 0x1e, 0x3, 0x77, 0x66, 0x69, 0x69, 0x50,
- 0x0, 0x0, 0x0, 0x3, 0xa0, 0x1b, 0x10, 0x0,
- 0x0, 0x3, 0x0, 0x96, 0xb6, 0xa7, 0x6a, 0x10,
- 0x27, 0x6f, 0x40, 0xc0, 0x6, 0x70, 0xc, 0x0,
- 0x0, 0xd, 0x0, 0xc3, 0x7a, 0x8a, 0x4c, 0x0,
- 0x0, 0xd, 0x0, 0xc0, 0x6, 0x41, 0xc, 0x0,
- 0x0, 0xd, 0x0, 0xc0, 0xd7, 0x7d, 0xc, 0x0,
- 0x0, 0xd, 0x0, 0xc0, 0xc0, 0xc, 0xc, 0x0,
- 0x0, 0xd, 0x0, 0xc0, 0xd6, 0x6c, 0xc, 0x0,
- 0x3, 0xa9, 0x50, 0xa0, 0x30, 0x5, 0x7c, 0x0,
- 0x3e, 0x20, 0x59, 0x30, 0x0, 0x0, 0x54, 0x11,
- 0x2, 0x0, 0x1, 0x8c, 0xde, 0xee, 0xff, 0x71,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
-
- /* U+9078 "選" */
- 0x0, 0x71, 0x0, 0x20, 0x20, 0x30, 0x4, 0x0,
- 0x0, 0x3e, 0x10, 0xc6, 0xa3, 0xb6, 0x6d, 0x0,
- 0x0, 0xa, 0x20, 0xc6, 0xa1, 0xb6, 0x6b, 0x0,
- 0x0, 0x0, 0x0, 0xb0, 0x22, 0xb0, 0x6, 0x30,
- 0x0, 0x3, 0x0, 0xb6, 0x69, 0x87, 0x57, 0x80,
- 0x27, 0x6f, 0x30, 0x3, 0x91, 0x17, 0x32, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0xc0, 0x2d, 0x17, 0x0,
- 0x0, 0xd, 0x1, 0x76, 0xd6, 0x7c, 0x66, 0x20,
- 0x0, 0xd, 0x0, 0x0, 0xc0, 0x2b, 0x1, 0x30,
- 0x0, 0xd, 0x17, 0x66, 0x96, 0x77, 0x66, 0x70,
- 0x0, 0xd, 0x0, 0x7, 0xc0, 0x29, 0x70, 0x0,
- 0x4, 0xca, 0x61, 0x85, 0x0, 0x0, 0x8a, 0x0,
- 0x3f, 0x30, 0x5b, 0x30, 0x0, 0x0, 0x2, 0x0,
- 0x2, 0x0, 0x1, 0x8b, 0xcc, 0xdd, 0xde, 0x91,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x11, 0x0,
-
- /* U+907F "避" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x40, 0x0, 0x0, 0x0, 0x8, 0x30, 0x0,
- 0x0, 0x79, 0x9, 0x66, 0xc3, 0x2, 0xb0, 0x40,
- 0x0, 0xd, 0xa, 0x10, 0xc4, 0x76, 0x67, 0x60,
- 0x0, 0x0, 0xa, 0x10, 0xc0, 0x70, 0xd, 0x10,
- 0x0, 0x1, 0xa, 0x65, 0xd1, 0x67, 0x46, 0x0,
- 0x17, 0x6f, 0x2b, 0x0, 0x24, 0x77, 0x96, 0xc2,
- 0x0, 0xd, 0xb, 0x20, 0x22, 0x11, 0xa0, 0x0,
- 0x0, 0xd, 0xa, 0xe6, 0xa7, 0x1, 0xa0, 0x0,
- 0x0, 0xd, 0x26, 0xd0, 0x77, 0x77, 0xc6, 0xb1,
- 0x0, 0xd, 0x60, 0xd0, 0x75, 0x1, 0xa0, 0x0,
- 0x0, 0xd, 0x30, 0xe6, 0xa5, 0x1, 0xa0, 0x0,
- 0x1, 0x97, 0x50, 0x80, 0x42, 0x2, 0xb0, 0x0,
- 0xd, 0x20, 0x4a, 0x41, 0x0, 0x0, 0x20, 0x11,
- 0x0, 0x0, 0x0, 0x7b, 0xde, 0xee, 0xff, 0xa1,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+9084 "還" */
- 0x0, 0x92, 0x0, 0x86, 0x66, 0x66, 0x6b, 0x10,
- 0x0, 0x3e, 0x10, 0xd0, 0xb0, 0xb, 0xc, 0x0,
- 0x0, 0xa, 0x10, 0xd0, 0xb0, 0xb, 0xc, 0x0,
- 0x0, 0x0, 0x0, 0xd6, 0x86, 0x68, 0x6a, 0x10,
- 0x0, 0x2, 0x6, 0x65, 0x55, 0x55, 0x57, 0xa0,
- 0x17, 0x6f, 0x20, 0x56, 0x66, 0x66, 0x85, 0x0,
- 0x0, 0xd, 0x0, 0x84, 0x0, 0x0, 0x65, 0x0,
- 0x0, 0xd, 0x0, 0x88, 0x87, 0x66, 0x95, 0x0,
- 0x0, 0xd, 0x0, 0x25, 0xc1, 0x0, 0x95, 0x0,
- 0x0, 0xd, 0x0, 0x5d, 0x55, 0x99, 0x40, 0x0,
- 0x0, 0xd, 0x7, 0x65, 0x50, 0x4b, 0xc3, 0x0,
- 0x0, 0x9a, 0x50, 0x7, 0xd9, 0x30, 0x5d, 0x0,
- 0x1d, 0x40, 0x68, 0x32, 0x40, 0x0, 0x1, 0x0,
- 0x16, 0x0, 0x2, 0x8c, 0xdd, 0xee, 0xef, 0x71,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
-
- /* U+908A "邊" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x20, 0x0, 0x0, 0x7, 0x60, 0x10, 0x0,
- 0x0, 0x79, 0x0, 0xd, 0x67, 0x66, 0xd2, 0x0,
- 0x0, 0xe, 0x40, 0xd, 0x66, 0x66, 0xd0, 0x0,
- 0x0, 0x4, 0x0, 0xd, 0x66, 0x66, 0xd0, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x66, 0x66, 0xd1, 0x0,
- 0x13, 0x3a, 0x10, 0x24, 0x5, 0x70, 0x32, 0x0,
- 0x14, 0x3e, 0x25, 0x96, 0x86, 0x86, 0x6b, 0x70,
- 0x0, 0xd, 0x7, 0x27, 0x86, 0x55, 0x94, 0x0,
- 0x0, 0xd, 0x2, 0x75, 0x56, 0x95, 0x7c, 0x30,
- 0x0, 0xd, 0x0, 0x0, 0xa8, 0x66, 0x93, 0x0,
- 0x0, 0xd, 0x0, 0x6, 0x90, 0x0, 0xc1, 0x0,
- 0x4, 0xc9, 0x80, 0x76, 0x0, 0x49, 0xa0, 0x0,
- 0x3d, 0x10, 0x5d, 0x62, 0x0, 0x6, 0x11, 0x20,
- 0x1, 0x0, 0x1, 0x8c, 0xee, 0xff, 0xff, 0x50,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+90A3 "那" */
- 0x0, 0x0, 0x0, 0x2, 0x2, 0x0, 0x2, 0x0,
- 0x37, 0x6b, 0x66, 0xe3, 0xc6, 0x66, 0xf4, 0x0,
- 0x0, 0xc1, 0xd, 0xc, 0x0, 0x3a, 0x0, 0x0,
- 0xc, 0x10, 0xd0, 0xc0, 0x8, 0x20, 0x1, 0x66,
- 0xd6, 0x6e, 0xc, 0x0, 0x80, 0x0, 0x2, 0xc,
- 0x0, 0xd0, 0xc0, 0x23, 0x0, 0x0, 0x0, 0xc0,
- 0xd, 0xc, 0x0, 0x70, 0x0, 0x0, 0xc, 0x0,
- 0xd0, 0xc0, 0x2, 0x80, 0x3, 0x76, 0xd6, 0x6e,
- 0xc, 0x0, 0xb, 0x10, 0x0, 0x37, 0x0, 0xd0,
- 0xc0, 0x0, 0x94, 0x0, 0x8, 0x20, 0xd, 0xc,
- 0x14, 0x4d, 0x40, 0x1, 0x90, 0x0, 0xd0, 0xc0,
- 0x3d, 0xa0, 0x0, 0x91, 0x39, 0xcb, 0xc, 0x0,
- 0x10, 0x0, 0x62, 0x0, 0x8, 0x10, 0xd1, 0x0,
- 0x0, 0x10, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0,
- 0x0,
-
- /* U+90AA "邪" */
- 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x10,
- 0x1, 0x76, 0x66, 0xa8, 0xa4, 0xb6, 0x6a, 0xd0,
- 0x0, 0x10, 0x0, 0xd0, 0x2, 0xa0, 0xb, 0x40,
- 0x0, 0x6a, 0x0, 0xd0, 0x2, 0xa0, 0x1a, 0x0,
- 0x0, 0xb3, 0x0, 0xd0, 0x2, 0xa0, 0x62, 0x0,
- 0x3, 0xe6, 0x66, 0xe7, 0xe5, 0xa0, 0x70, 0x0,
- 0x0, 0x20, 0xd, 0xd0, 0x2, 0xa0, 0x61, 0x0,
- 0x0, 0x0, 0x68, 0xd0, 0x2, 0xa0, 0x9, 0x0,
- 0x0, 0x1, 0xc0, 0xd0, 0x2, 0xa0, 0x5, 0x60,
- 0x0, 0x9, 0x30, 0xd0, 0x2, 0xa0, 0x2, 0xc0,
- 0x0, 0x65, 0x0, 0xd0, 0x2, 0xa2, 0x27, 0xc0,
- 0x5, 0x40, 0x0, 0xd0, 0x2, 0xa1, 0x9f, 0x50,
- 0x12, 0x1, 0x66, 0xc0, 0x2, 0xa0, 0x1, 0x0,
- 0x0, 0x0, 0x1b, 0x60, 0x3, 0xa0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x1, 0x10, 0x0, 0x0,
-
- /* U+90E8 "部" */
- 0x0, 0x0, 0x71, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x4c, 0x0, 0x0, 0x95, 0x55, 0x90,
- 0x3, 0x66, 0x6b, 0x68, 0xb0, 0xd1, 0x17, 0x90,
- 0x0, 0x11, 0x0, 0x25, 0x0, 0xd0, 0xb, 0x10,
- 0x0, 0xb, 0x20, 0x79, 0x0, 0xd0, 0x19, 0x0,
- 0x0, 0x6, 0x70, 0xa0, 0x0, 0xd0, 0x52, 0x0,
- 0x16, 0x66, 0x67, 0x96, 0xb7, 0xd0, 0x60, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xd0, 0x18, 0x0,
- 0x0, 0x86, 0x66, 0x6c, 0x20, 0xd0, 0x7, 0x40,
- 0x0, 0xb2, 0x0, 0xd, 0x0, 0xd0, 0x2, 0xa0,
- 0x0, 0xa2, 0x0, 0xd, 0x0, 0xd0, 0x3, 0xc0,
- 0x0, 0xa2, 0x0, 0xd, 0x0, 0xd4, 0xae, 0x60,
- 0x0, 0xb7, 0x66, 0x6d, 0x0, 0xd0, 0x24, 0x0,
- 0x0, 0xa1, 0x0, 0x9, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x50, 0x0, 0x0,
-
- /* U+90F5 "郵" */
- 0x0, 0x0, 0x37, 0xc1, 0x2, 0x0, 0x2, 0x0,
- 0x67, 0x9d, 0x64, 0x10, 0xc6, 0x6b, 0xd0, 0x0,
- 0x0, 0xc0, 0x0, 0xc, 0x0, 0xc2, 0x4, 0x78,
- 0x6d, 0x68, 0xa5, 0xc0, 0x37, 0x0, 0x0, 0xb0,
- 0xc0, 0xc0, 0xc, 0x8, 0x0, 0x0, 0xb, 0xc,
- 0xc, 0x0, 0xc0, 0x60, 0x0, 0x27, 0xd6, 0xd6,
- 0xd8, 0x4c, 0x5, 0x30, 0x0, 0xb, 0xc, 0xc,
- 0x0, 0xc0, 0x8, 0x20, 0x0, 0xb0, 0xc0, 0xc1,
- 0xc, 0x0, 0xc, 0x5, 0x69, 0x6d, 0x69, 0x86,
- 0xc0, 0x0, 0xa2, 0x0, 0x0, 0xc0, 0x0, 0xc,
- 0x0, 0xd, 0x30, 0x0, 0xc, 0x56, 0x50, 0xc3,
- 0x8f, 0xc0, 0x2c, 0xda, 0x62, 0x0, 0xc, 0x0,
- 0x30, 0x0, 0x40, 0x0, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0,
- 0x0,
-
- /* U+90FD "都" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x66, 0x0, 0x0, 0x0, 0x0, 0x10,
- 0x0, 0x0, 0x65, 0x2, 0x90, 0xc6, 0x67, 0xe1,
- 0x0, 0x76, 0xa9, 0xbb, 0xa0, 0xd0, 0x7, 0x70,
- 0x0, 0x0, 0x65, 0x3d, 0x0, 0xd0, 0xb, 0x0,
- 0x0, 0x0, 0x66, 0xc2, 0x31, 0xd0, 0x27, 0x0,
- 0x7, 0x66, 0x6c, 0x96, 0x75, 0xd0, 0x60, 0x0,
- 0x0, 0x0, 0x68, 0x1, 0x0, 0xd0, 0x44, 0x0,
- 0x0, 0xb, 0xb6, 0x6d, 0x40, 0xd0, 0xa, 0x10,
- 0x2, 0x7d, 0x0, 0xd, 0x0, 0xd0, 0x4, 0xa0,
- 0x2, 0xd, 0x66, 0x6e, 0x0, 0xd0, 0x0, 0xe0,
- 0x0, 0xd, 0x0, 0xd, 0x0, 0xd2, 0x36, 0xd0,
- 0x0, 0xd, 0x0, 0xd, 0x0, 0xd0, 0x6f, 0x50,
- 0x0, 0xd, 0x66, 0x6e, 0x10, 0xd0, 0x1, 0x0,
- 0x0, 0xd, 0x0, 0x9, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0x3, 0x0, 0x0, 0x0, 0x60, 0x0, 0x0,
-
- /* U+914D "配" */
- 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x1, 0x0,
- 0x7, 0x67, 0x89, 0x69, 0x57, 0x66, 0x6d, 0x30,
- 0x0, 0x5, 0x6c, 0x0, 0x0, 0x0, 0xc, 0x10,
- 0x2, 0x79, 0xad, 0x6a, 0x10, 0x0, 0xc, 0x10,
- 0x3, 0xa5, 0x5c, 0xd, 0x0, 0x0, 0xc, 0x10,
- 0x2, 0xa6, 0x4c, 0xd, 0x8, 0x66, 0x6d, 0x10,
- 0x2, 0xa9, 0xc, 0xd, 0xd, 0x0, 0x8, 0x0,
- 0x2, 0xb7, 0x9, 0xbd, 0xd, 0x0, 0x0, 0x0,
- 0x2, 0xc0, 0x0, 0xd, 0xd, 0x0, 0x0, 0x0,
- 0x2, 0xc6, 0x66, 0x6d, 0xd, 0x0, 0x0, 0x0,
- 0x2, 0xa0, 0x0, 0xd, 0xd, 0x0, 0x0, 0x40,
- 0x2, 0xa0, 0x0, 0xd, 0xd, 0x0, 0x0, 0x60,
- 0x2, 0xc6, 0x66, 0x6d, 0xc, 0x10, 0x0, 0xc0,
- 0x3, 0xa0, 0x0, 0xd, 0x7, 0xcb, 0xbc, 0xc0,
- 0x1, 0x30, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0,
-
- /* U+9152 "酒" */
- 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x40,
- 0x0, 0x77, 0x7, 0x66, 0x6a, 0x69, 0x67, 0x80,
- 0x0, 0xc, 0x1, 0x0, 0x1b, 0x28, 0x0, 0x0,
- 0x0, 0x0, 0x5, 0x96, 0x6c, 0x7b, 0x6a, 0x20,
- 0x8, 0x20, 0x51, 0xd0, 0x1a, 0x28, 0xd, 0x10,
- 0x1, 0xe0, 0x70, 0xd0, 0x39, 0x28, 0xd, 0x0,
- 0x0, 0x41, 0x70, 0xd0, 0x74, 0x19, 0xd, 0x0,
- 0x0, 0x7, 0x20, 0xd0, 0x90, 0xc, 0x9e, 0x0,
- 0x0, 0xb, 0x0, 0xd6, 0x10, 0x0, 0xd, 0x0,
- 0x5, 0xba, 0x0, 0xe6, 0x66, 0x66, 0x6e, 0x0,
- 0x0, 0x68, 0x0, 0xd0, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0x58, 0x0, 0xd0, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0x69, 0x0, 0xe6, 0x66, 0x66, 0x6e, 0x0,
- 0x0, 0x26, 0x0, 0xd0, 0x0, 0x0, 0xc, 0x0,
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0,
-
- /* U+9154 "酔" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x2, 0x0, 0xd1, 0x0, 0x0,
- 0x27, 0x6a, 0x96, 0x79, 0x0, 0xc0, 0x0, 0x0,
- 0x0, 0xb, 0xa0, 0x0, 0x56, 0xe6, 0xc4, 0x0,
- 0x3, 0x1b, 0xa0, 0x51, 0x1, 0xb0, 0xa1, 0x0,
- 0xb, 0x5c, 0xc6, 0xd3, 0x5, 0x70, 0xb0, 0x10,
- 0xb, 0xa, 0xa0, 0xc0, 0xb, 0x0, 0xb0, 0x50,
- 0xb, 0x18, 0xa0, 0xc0, 0x83, 0x13, 0xb7, 0xc1,
- 0xb, 0x53, 0xa2, 0xc4, 0x20, 0x2b, 0x13, 0x20,
- 0xb, 0x60, 0x39, 0xe0, 0x0, 0x28, 0x0, 0x0,
- 0xb, 0x0, 0x0, 0xc4, 0x76, 0x7b, 0x69, 0x70,
- 0xb, 0x66, 0x66, 0xd0, 0x0, 0x18, 0x0, 0x0,
- 0xb, 0x0, 0x0, 0xc0, 0x0, 0x18, 0x0, 0x0,
- 0xb, 0x66, 0x66, 0xd0, 0x0, 0x29, 0x0, 0x0,
- 0xb, 0x0, 0x0, 0xb0, 0x0, 0x29, 0x0, 0x0,
- 0x2, 0x0, 0x0, 0x10, 0x0, 0x11, 0x0, 0x0,
-
- /* U+9178 "酸" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xa4, 0x0, 0x0,
- 0x27, 0x68, 0x86, 0x95, 0x8, 0x70, 0x31, 0x0,
- 0x0, 0xb, 0xb0, 0x1, 0x73, 0x1, 0x3c, 0x30,
- 0x3, 0xb, 0xb0, 0x55, 0xeb, 0x86, 0x46, 0xa0,
- 0xb, 0x7c, 0xc6, 0xd0, 0x16, 0x20, 0x62, 0x10,
- 0xa, 0x2a, 0xb0, 0xc0, 0x5a, 0x20, 0x1c, 0x80,
- 0xa, 0x38, 0xb0, 0xc4, 0x54, 0xa0, 0x0, 0xd0,
- 0xa, 0x64, 0x99, 0xc1, 0xb, 0x96, 0x69, 0x10,
- 0xa, 0x70, 0x1, 0xc0, 0x49, 0x0, 0x87, 0x0,
- 0xa, 0x10, 0x0, 0xc1, 0x87, 0x1, 0xc0, 0x0,
- 0xa, 0x66, 0x66, 0xc5, 0x3, 0x6a, 0x40, 0x0,
- 0xa, 0x10, 0x0, 0xc0, 0x0, 0xba, 0x0, 0x0,
- 0xa, 0x66, 0x66, 0xc0, 0x6, 0x9b, 0x50, 0x0,
- 0xb, 0x10, 0x0, 0xb1, 0x84, 0x0, 0xbd, 0x80,
- 0x4, 0x0, 0x0, 0x34, 0x0, 0x0, 0x6, 0x20,
-
- /* U+91AB "醫" */
- 0x0, 0x96, 0x66, 0x8a, 0x8, 0x66, 0xb0, 0x0,
- 0x0, 0xc1, 0xa0, 0x10, 0xc, 0x0, 0xb0, 0x0,
- 0x0, 0xc7, 0x7a, 0x74, 0x37, 0x0, 0xa8, 0x30,
- 0x0, 0xc6, 0x6c, 0x79, 0x56, 0x66, 0x92, 0x0,
- 0x0, 0xc0, 0x68, 0x40, 0x5, 0x12, 0xb1, 0x0,
- 0x0, 0xc2, 0x60, 0x81, 0x1, 0x9e, 0x70, 0x0,
- 0x2, 0xd8, 0x66, 0x6a, 0x57, 0x70, 0x79, 0x0,
- 0x5, 0x66, 0x66, 0x66, 0x96, 0x66, 0x66, 0xc1,
- 0x1, 0x1, 0x0, 0xd0, 0xc, 0x0, 0x30, 0x0,
- 0x0, 0xd, 0x66, 0xe6, 0x6d, 0x66, 0xd3, 0x0,
- 0x0, 0xb, 0x6, 0x60, 0xc, 0x33, 0xb0, 0x0,
- 0x0, 0xb, 0x33, 0x0, 0x3, 0x55, 0xc0, 0x0,
- 0x0, 0xd, 0x66, 0x66, 0x66, 0x66, 0xc0, 0x0,
- 0x0, 0xd, 0x66, 0x66, 0x66, 0x66, 0xd0, 0x0,
- 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x60, 0x0,
-
- /* U+91CD "重" */
- 0x0, 0x0, 0x0, 0x0, 0x14, 0x8c, 0x10, 0x0,
- 0x2, 0x45, 0x67, 0xe7, 0x54, 0x31, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0x0, 0x0, 0x35, 0x0, 0x57,
- 0x66, 0x66, 0xe6, 0x66, 0x67, 0x70, 0x0, 0x3,
- 0x0, 0xd, 0x0, 0x5, 0x0, 0x0, 0x0, 0xb8,
- 0x66, 0xe6, 0x66, 0xe2, 0x0, 0x0, 0xa, 0x30,
- 0xd, 0x0, 0xd, 0x0, 0x0, 0x0, 0xa8, 0x66,
- 0xe6, 0x66, 0xe0, 0x0, 0x0, 0xa, 0x30, 0xd,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0xa7, 0x66, 0xe6,
- 0x66, 0xc0, 0x0, 0x0, 0x0, 0x0, 0xd, 0x0,
- 0x2, 0x60, 0x0, 0x6, 0x76, 0x66, 0xe6, 0x66,
- 0x66, 0x10, 0x0, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x5, 0x13, 0x76, 0x66, 0x66, 0xa6, 0x66, 0x66,
- 0xa7,
-
- /* U+91CE "野" */
- 0x1, 0x20, 0x0, 0x4, 0x0, 0x0, 0x4, 0x0,
- 0x1, 0xd6, 0xc7, 0x6e, 0x37, 0x66, 0x7e, 0x60,
- 0x1, 0xb0, 0xa2, 0xd, 0x1, 0x40, 0x81, 0x0,
- 0x1, 0xd6, 0xc7, 0x6e, 0x0, 0x5e, 0x20, 0x0,
- 0x1, 0xb0, 0xa2, 0xd, 0x0, 0x9, 0x60, 0x10,
- 0x1, 0xb0, 0xa2, 0xd, 0x57, 0x69, 0x68, 0xe1,
- 0x1, 0xd6, 0xc7, 0x6e, 0x0, 0xd, 0x8, 0x30,
- 0x1, 0x70, 0xa2, 0x7, 0x0, 0xd, 0x3, 0x0,
- 0x0, 0x0, 0xa2, 0x2, 0x0, 0xd, 0x0, 0x0,
- 0x3, 0x76, 0xc7, 0x6c, 0x50, 0xd, 0x0, 0x0,
- 0x0, 0x0, 0xa2, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x0, 0xa2, 0x24, 0x40, 0xd, 0x0, 0x0,
- 0x6, 0x8a, 0xb8, 0x40, 0x0, 0xd, 0x0, 0x0,
- 0xa, 0x51, 0x0, 0x0, 0x6, 0xde, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x22, 0x0, 0x0,
-
- /* U+91CF "量" */
- 0x0, 0x6, 0x66, 0x66, 0x66, 0x6b, 0x10, 0x0,
- 0x0, 0x9, 0x30, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x9, 0x86, 0x66, 0x66, 0x6e, 0x0, 0x0,
- 0x0, 0x9, 0x86, 0x66, 0x66, 0x6e, 0x0, 0x0,
- 0x0, 0x7, 0x10, 0x0, 0x0, 0x5, 0x2, 0x30,
- 0x27, 0x66, 0x66, 0x66, 0x66, 0x66, 0x68, 0x70,
- 0x0, 0x8, 0x66, 0x66, 0x66, 0x69, 0x30, 0x0,
- 0x0, 0xc, 0x0, 0xd, 0x0, 0xa, 0x20, 0x0,
- 0x0, 0xc, 0x66, 0x6e, 0x66, 0x6c, 0x20, 0x0,
- 0x0, 0xc, 0x0, 0xd, 0x0, 0xa, 0x20, 0x0,
- 0x0, 0xb, 0x66, 0x6e, 0x66, 0x69, 0x10, 0x0,
- 0x0, 0x46, 0x66, 0x6e, 0x66, 0x67, 0xc1, 0x0,
- 0x0, 0x11, 0x0, 0xd, 0x0, 0x0, 0x1, 0x0,
- 0x5, 0x66, 0x66, 0x6e, 0x66, 0x66, 0x6d, 0x90,
- 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+91D1 "金" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x3d, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xba, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x4, 0xd0, 0x82, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x1d, 0x30, 0xb, 0x30, 0x0, 0x0,
- 0x0, 0x0, 0xb3, 0x0, 0x1, 0xc7, 0x0, 0x0,
- 0x0, 0x1a, 0x30, 0x0, 0x0, 0x3a, 0xe9, 0x50,
- 0x5, 0x70, 0x67, 0x6b, 0x66, 0x93, 0x4b, 0x50,
- 0x11, 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe, 0x0, 0x0, 0x70, 0x0,
- 0x0, 0x57, 0x66, 0x6e, 0x66, 0x66, 0x61, 0x0,
- 0x0, 0x3, 0x70, 0xe, 0x0, 0x79, 0x0, 0x0,
- 0x0, 0x0, 0x9a, 0xe, 0x0, 0xd2, 0x0, 0x0,
- 0x0, 0x0, 0x1e, 0xe, 0x5, 0x50, 0x0, 0x0,
- 0x16, 0x66, 0x67, 0x6e, 0x6a, 0x66, 0x6c, 0x80,
- 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+91DD "針" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb3, 0x0, 0x0, 0x1d, 0x20, 0x0,
- 0x0, 0x4, 0xe3, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0xb, 0x37, 0xb1, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x49, 0x0, 0x86, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0xa0, 0x1, 0x10, 0x0, 0xd, 0x0, 0x0,
- 0x7, 0x36, 0xa7, 0x60, 0x0, 0xd, 0x0, 0x80,
- 0x1, 0x0, 0xd0, 0x2, 0x86, 0x6e, 0x66, 0x62,
- 0x0, 0x0, 0xd0, 0x70, 0x0, 0xd, 0x0, 0x0,
- 0x1, 0x86, 0xe6, 0x62, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x60, 0xd0, 0xb3, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x94, 0xd1, 0xb0, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x65, 0xd5, 0x11, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x25, 0xe8, 0x62, 0x0, 0xe, 0x0, 0x0,
- 0x4, 0xd6, 0x10, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0,
-
- /* U+9244 "鉄" */
- 0x0, 0x1, 0xb2, 0x0, 0x0, 0x74, 0x0, 0x0,
- 0x0, 0x6, 0xd2, 0x0, 0x41, 0x94, 0x0, 0x0,
- 0x0, 0xd, 0x28, 0xa0, 0xe4, 0x93, 0x0, 0x0,
- 0x0, 0x67, 0x0, 0xa6, 0xc0, 0x93, 0x7, 0x0,
- 0x1, 0x90, 0x4, 0x26, 0x96, 0xb8, 0x67, 0x20,
- 0x7, 0x37, 0xe6, 0x3a, 0x0, 0xa2, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x13, 0x0, 0xb1, 0x0, 0x10,
- 0x2, 0x66, 0xe6, 0xa6, 0x75, 0xd7, 0x57, 0xb1,
- 0x0, 0x20, 0xd0, 0x30, 0x0, 0xc6, 0x0, 0x0,
- 0x0, 0x90, 0xd1, 0xe1, 0x5, 0x88, 0x0, 0x0,
- 0x0, 0xa3, 0xd6, 0x40, 0xc, 0x14, 0x80, 0x0,
- 0x0, 0x51, 0xd5, 0x52, 0x67, 0x0, 0xb5, 0x0,
- 0x4, 0x9b, 0xa5, 0x13, 0x80, 0x0, 0x2e, 0x80,
- 0x4, 0x60, 0x0, 0x45, 0x0, 0x0, 0x3, 0xa2,
- 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
-
- /* U+925B "鉛" */
- 0x0, 0x1, 0xc2, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x7, 0xd2, 0x0, 0x58, 0x66, 0xa4, 0x0,
- 0x0, 0xd, 0x18, 0xb0, 0x59, 0x0, 0xb1, 0x0,
- 0x0, 0x66, 0x0, 0x94, 0x58, 0x0, 0xb1, 0x0,
- 0x1, 0xa1, 0x15, 0x10, 0x66, 0x0, 0xb1, 0x0,
- 0x7, 0x26, 0xd5, 0x20, 0xa1, 0x0, 0xb2, 0x0,
- 0x0, 0x0, 0xd0, 0x3, 0x70, 0x0, 0x5b, 0xb0,
- 0x2, 0x55, 0xd6, 0xc5, 0x10, 0x0, 0x1, 0x0,
- 0x0, 0x21, 0xd1, 0x30, 0xd6, 0x66, 0x8d, 0x0,
- 0x0, 0x80, 0xd1, 0xe1, 0xd0, 0x0, 0x2a, 0x0,
- 0x0, 0xa3, 0xd6, 0x40, 0xd0, 0x0, 0x2a, 0x0,
- 0x0, 0x61, 0xd4, 0x42, 0xd0, 0x0, 0x2a, 0x0,
- 0x3, 0x8a, 0xb6, 0x10, 0xd6, 0x66, 0x7a, 0x0,
- 0x4, 0x70, 0x0, 0x0, 0xd0, 0x0, 0x27, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
-
- /* U+9280 "銀" */
- 0x0, 0x9, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x3f, 0x30, 0x9, 0x66, 0x66, 0xa3, 0x0,
- 0x0, 0xa5, 0x6b, 0x1c, 0x10, 0x0, 0xd1, 0x0,
- 0x2, 0xa0, 0x8, 0x7c, 0x10, 0x0, 0xd0, 0x0,
- 0xa, 0x10, 0x22, 0xc, 0x66, 0x66, 0xe0, 0x0,
- 0x42, 0x7d, 0x64, 0xc, 0x10, 0x0, 0xd0, 0x0,
- 0x0, 0xc, 0x0, 0xc, 0x43, 0x33, 0xd0, 0x0,
- 0x5, 0x6d, 0x6c, 0x2c, 0x27, 0x11, 0x65, 0x0,
- 0x2, 0xc, 0x3, 0xc, 0x16, 0x10, 0x7a, 0x10,
- 0x8, 0xc, 0xd, 0x3c, 0x11, 0x96, 0x40, 0x0,
- 0x7, 0x7c, 0x36, 0xc, 0x10, 0x86, 0x0, 0x0,
- 0x3, 0x3c, 0x45, 0x3c, 0x13, 0x2b, 0x91, 0x0,
- 0x28, 0xba, 0x61, 0xd, 0xa3, 0x0, 0x8f, 0x70,
- 0x18, 0x0, 0x0, 0x8, 0x10, 0x0, 0x0, 0x0,
-
- /* U+9322 "錢" */
- 0x0, 0x1, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0xe, 0x50, 0x0, 0xb6, 0xb, 0x40, 0x0,
- 0x0, 0x5c, 0x72, 0x0, 0x69, 0x25, 0x9b, 0x10,
- 0x0, 0xb2, 0x1d, 0x46, 0x6e, 0x31, 0x40, 0x0,
- 0x5, 0x60, 0x3, 0x30, 0xb, 0x4a, 0xb1, 0x0,
- 0x18, 0x56, 0x7a, 0x0, 0x6, 0xf7, 0x0, 0x20,
- 0x20, 0x1a, 0x20, 0x3, 0x88, 0x7d, 0x40, 0x70,
- 0x0, 0xa, 0x21, 0x53, 0x72, 0x66, 0xce, 0xc0,
- 0x6, 0x6c, 0x7d, 0x30, 0x95, 0x2c, 0x4, 0x30,
- 0x1, 0xa, 0x23, 0x0, 0x59, 0x36, 0x6b, 0x30,
- 0x7, 0x1a, 0x2b, 0x78, 0x7e, 0x20, 0x10, 0x0,
- 0x4, 0x9a, 0x3a, 0x0, 0xc, 0x25, 0xd0, 0x0,
- 0x1, 0x4a, 0x53, 0x40, 0x5, 0xbd, 0x10, 0x0,
- 0x4, 0x7d, 0x95, 0x0, 0x3, 0xf7, 0x0, 0x50,
- 0xd, 0x60, 0x0, 0x1, 0x77, 0x2d, 0x93, 0x80,
- 0x0, 0x0, 0x0, 0x34, 0x10, 0x0, 0x7c, 0xd0,
-
- /* U+932F "錯" */
- 0x0, 0xb, 0x40, 0x0, 0x85, 0xa, 0x30, 0x0,
- 0x0, 0x4e, 0x40, 0x0, 0x95, 0xc, 0x20, 0x0,
- 0x0, 0xb3, 0x5c, 0x36, 0xb9, 0x6d, 0x9b, 0x0,
- 0x5, 0x70, 0x7, 0x50, 0x95, 0xc, 0x20, 0x0,
- 0x19, 0x33, 0x55, 0x0, 0x95, 0xc, 0x20, 0x0,
- 0x30, 0x4c, 0x32, 0x56, 0xb9, 0x6d, 0x7b, 0x80,
- 0x0, 0xb, 0x10, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x3, 0x3c, 0x5c, 0x4, 0x0, 0x0, 0x43, 0x0,
- 0x4, 0x3c, 0x44, 0xb, 0x76, 0x66, 0xb8, 0x0,
- 0x7, 0xb, 0x1c, 0x4b, 0x30, 0x0, 0x95, 0x0,
- 0x6, 0x7b, 0x38, 0xb, 0x76, 0x66, 0xb5, 0x0,
- 0x3, 0x5b, 0x54, 0x3b, 0x30, 0x0, 0x95, 0x0,
- 0x17, 0xab, 0x72, 0xb, 0x76, 0x66, 0xb5, 0x0,
- 0xa, 0x10, 0x0, 0xb, 0x20, 0x0, 0x62, 0x0,
- 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0,
-
- /* U+9332 "録" */
- 0x0, 0x9, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x5e, 0x20, 0x5, 0x76, 0x66, 0xc5, 0x0,
- 0x0, 0xb3, 0x89, 0x0, 0x0, 0x0, 0xd0, 0x0,
- 0x4, 0x80, 0xa, 0x40, 0x66, 0x66, 0xe0, 0x0,
- 0xa, 0x22, 0x45, 0x0, 0x0, 0x0, 0xd0, 0x0,
- 0x41, 0x5d, 0x32, 0x36, 0x66, 0x66, 0xe9, 0x90,
- 0x0, 0xd, 0x0, 0x1, 0x0, 0xd0, 0x1, 0x0,
- 0x16, 0x6e, 0x6d, 0x17, 0x40, 0xe0, 0x2e, 0x20,
- 0x2, 0xd, 0x3, 0x0, 0xe0, 0xd6, 0x81, 0x0,
- 0x8, 0xd, 0xd, 0x40, 0x21, 0xd7, 0x0, 0x0,
- 0x7, 0x6d, 0x37, 0x0, 0x63, 0xd2, 0xa0, 0x0,
- 0x3, 0x3d, 0x45, 0x4a, 0x20, 0xd0, 0x7b, 0x10,
- 0x28, 0xba, 0x61, 0x94, 0x0, 0xd0, 0xa, 0x60,
- 0x17, 0x0, 0x0, 0x0, 0x6e, 0xa0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0,
-
- /* U+9577 "長" */
- 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x50, 0x0,
- 0x0, 0x0, 0xb8, 0x66, 0x66, 0x66, 0x71, 0x0,
- 0x0, 0x0, 0xb3, 0x0, 0x0, 0x2, 0x0, 0x0,
- 0x0, 0x0, 0xb8, 0x66, 0x66, 0x6a, 0x30, 0x0,
- 0x0, 0x0, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb8, 0x66, 0x66, 0x6c, 0x50, 0x0,
- 0x0, 0x0, 0xb3, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb3, 0x0, 0x0, 0x0, 0x3, 0x70,
- 0x6, 0x76, 0xe6, 0x6a, 0x66, 0x66, 0x66, 0x50,
- 0x0, 0x1, 0xd0, 0x2, 0x60, 0x8, 0xb0, 0x0,
- 0x0, 0x1, 0xd0, 0x0, 0x75, 0x85, 0x10, 0x0,
- 0x0, 0x1, 0xd0, 0x3, 0xa, 0x60, 0x0, 0x0,
- 0x0, 0x1, 0xd4, 0x82, 0x0, 0x8c, 0x51, 0x0,
- 0x0, 0x3, 0xf9, 0x0, 0x0, 0x3, 0xbf, 0xa1,
- 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x2, 0x0,
-
- /* U+9589 "閉" */
- 0x50, 0x0, 0x70, 0x4, 0x0, 0x7, 0xe, 0x66,
- 0x6e, 0x10, 0xe6, 0x66, 0xf2, 0xe0, 0x0, 0xd0,
- 0xd, 0x0, 0xe, 0xe, 0x66, 0x6d, 0x0, 0xd6,
- 0x66, 0xe0, 0xe6, 0x66, 0xd0, 0xe, 0x66, 0x6e,
- 0xe, 0x0, 0x4, 0x1, 0x60, 0x0, 0xe0, 0xe0,
- 0x0, 0x0, 0xd1, 0x0, 0xe, 0xe, 0x5, 0x66,
- 0x6e, 0x67, 0xa0, 0xe0, 0xe0, 0x10, 0x1c, 0xe0,
- 0x0, 0xe, 0xe, 0x0, 0xb, 0x3d, 0x0, 0x0,
- 0xe0, 0xe0, 0x19, 0x20, 0xd0, 0x0, 0xe, 0xe,
- 0x26, 0x0, 0xd, 0x0, 0x0, 0xe0, 0xe0, 0x0,
- 0x3b, 0xd0, 0x0, 0xd, 0xe, 0x0, 0x0, 0x11,
- 0x1, 0x8e, 0xa0, 0x40, 0x0, 0x0, 0x0, 0x0,
- 0x40, 0x0,
-
- /* U+958B "開" */
- 0x40, 0x0, 0x60, 0x4, 0x0, 0x6, 0xf, 0x66,
- 0x6e, 0x10, 0xe6, 0x66, 0xf1, 0xe6, 0x66, 0xd0,
- 0xe, 0x66, 0x6e, 0xe, 0x0, 0xd, 0x0, 0xe0,
- 0x0, 0xe0, 0xe6, 0x66, 0xd0, 0xe, 0x66, 0x6e,
- 0xe, 0x0, 0x3, 0x0, 0x60, 0x0, 0xe0, 0xe0,
- 0x16, 0x66, 0x66, 0xb2, 0xe, 0xe, 0x0, 0x2c,
- 0x2, 0xa0, 0x0, 0xe0, 0xe0, 0x0, 0xc0, 0x2a,
- 0x2, 0xe, 0xe, 0x7, 0x6d, 0x67, 0xc7, 0xa0,
- 0xe0, 0xe0, 0x0, 0xc0, 0x2a, 0x0, 0xe, 0xe,
- 0x0, 0x57, 0x2, 0xa0, 0x0, 0xe0, 0xe0, 0x49,
- 0x0, 0x2a, 0x0, 0xd, 0xe, 0x13, 0x0, 0x1,
- 0x11, 0x7d, 0xb0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x41, 0x0,
-
- /* U+9593 "間" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0x66,
- 0x6b, 0x0, 0x96, 0x66, 0xc1, 0xe0, 0x1, 0xc0,
- 0xd, 0x0, 0xe, 0xe, 0x66, 0x6c, 0x0, 0xd6,
- 0x66, 0xe0, 0xe0, 0x1, 0xc0, 0xd, 0x0, 0xe,
- 0xe, 0x66, 0x6c, 0x0, 0xd6, 0x66, 0xe0, 0xe0,
- 0x0, 0x10, 0x4, 0x0, 0xe, 0xe, 0x0, 0x96,
- 0x66, 0x97, 0x0, 0xe0, 0xe0, 0xd, 0x10, 0x8,
- 0x50, 0xe, 0xe, 0x0, 0xd1, 0x0, 0x85, 0x0,
- 0xe0, 0xe0, 0xd, 0x66, 0x6b, 0x50, 0xe, 0xe,
- 0x0, 0xd1, 0x0, 0x85, 0x0, 0xe0, 0xe0, 0xd,
- 0x66, 0x6b, 0x50, 0xe, 0xe, 0x0, 0x80, 0x0,
- 0x42, 0x0, 0xd0, 0xe0, 0x0, 0x0, 0x0, 0x18,
- 0xdb, 0x5, 0x0, 0x0, 0x0, 0x0, 0x5, 0x10,
-
- /* U+95A2 "関" */
- 0xa6, 0x66, 0xb1, 0xa, 0x66, 0x6c, 0x1e, 0x0,
- 0xd, 0x0, 0xd0, 0x0, 0xe0, 0xe6, 0x66, 0xd0,
- 0xd, 0x66, 0x6e, 0xe, 0x0, 0xd, 0x0, 0xd0,
- 0x0, 0xe0, 0xe6, 0x66, 0xd0, 0xe, 0x66, 0x6e,
- 0xe, 0x0, 0x34, 0x0, 0x70, 0x0, 0xe0, 0xe0,
- 0x0, 0xc1, 0x1b, 0x0, 0xe, 0xe, 0x2, 0x68,
- 0x69, 0x69, 0x40, 0xe0, 0xe0, 0x2, 0x7, 0x60,
- 0x0, 0xe, 0xe, 0x6, 0x76, 0xb8, 0x66, 0xa0,
- 0xe0, 0xe0, 0x0, 0x1d, 0x73, 0x0, 0xe, 0xe,
- 0x0, 0x1b, 0x20, 0x7d, 0x10, 0xe0, 0xe0, 0x58,
- 0x10, 0x0, 0x31, 0xe, 0xe, 0x0, 0x0, 0x0,
- 0x1, 0x7b, 0xd0, 0x60, 0x0, 0x0, 0x0, 0x0,
- 0x52, 0x0,
-
- /* U+95DC "關" */
- 0x96, 0x66, 0xa1, 0x8, 0x66, 0x6b, 0x3d, 0x0,
- 0xb, 0x0, 0xd0, 0x0, 0xd0, 0xe6, 0x66, 0xc0,
- 0xd, 0x66, 0x6e, 0xd, 0x66, 0x6c, 0x0, 0xd6,
- 0x66, 0xe0, 0xd0, 0x1, 0x70, 0x6, 0x70, 0xd,
- 0xd, 0x0, 0x73, 0x11, 0x92, 0x30, 0xd0, 0xd0,
- 0xa9, 0xb6, 0x97, 0xa9, 0xd, 0xd, 0x2, 0x63,
- 0x42, 0x72, 0x50, 0xd0, 0xd0, 0x98, 0x69, 0x69,
- 0x59, 0xd, 0xd, 0x9, 0x15, 0x65, 0x70, 0x60,
- 0xd0, 0xd0, 0xc6, 0x86, 0x4a, 0x6d, 0xd, 0xd,
- 0x2, 0x6, 0x44, 0x70, 0x50, 0xd0, 0xd0, 0x3,
- 0x80, 0x57, 0x0, 0xd, 0xd, 0x1, 0x30, 0x1,
- 0x10, 0x6c, 0xc0, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x21, 0x0,
-
- /* U+95F0 "闰" */
- 0x0, 0x83, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0,
- 0x2f, 0x2, 0x86, 0x66, 0x66, 0xe2, 0xa, 0x16,
- 0x0, 0x0, 0x0, 0x0, 0xe0, 0xe, 0x0, 0x0,
- 0x0, 0x1, 0x50, 0xe0, 0xd, 0x6, 0x76, 0x7c,
- 0x66, 0x60, 0xe0, 0xd, 0x0, 0x0, 0x2b, 0x0,
- 0x0, 0xe0, 0xd, 0x0, 0x0, 0x2b, 0x3, 0x0,
- 0xe0, 0xd, 0x0, 0x76, 0x7d, 0x68, 0x40, 0xe0,
- 0xd, 0x0, 0x0, 0x2b, 0x0, 0x0, 0xe0, 0xd,
- 0x0, 0x0, 0x2b, 0x0, 0x0, 0xe0, 0xd, 0x26,
- 0x66, 0x7d, 0x66, 0xe3, 0xe0, 0xd, 0x2, 0x0,
- 0x0, 0x0, 0x0, 0xe0, 0xd, 0x0, 0x0, 0x0,
- 0x0, 0x22, 0xe0, 0xd, 0x0, 0x0, 0x0, 0x0,
- 0x5d, 0xc0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1,
- 0x0,
-
- /* U+9633 "阳" */
- 0x40, 0x1, 0x40, 0x0, 0x0, 0x0, 0xe, 0x66,
- 0xad, 0x19, 0x66, 0x66, 0xb2, 0xd0, 0xb, 0x20,
- 0xc0, 0x0, 0xd, 0xd, 0x1, 0x90, 0xc, 0x0,
- 0x0, 0xd0, 0xd0, 0x51, 0x0, 0xc0, 0x0, 0xd,
- 0xd, 0x5, 0x10, 0xc, 0x0, 0x0, 0xd0, 0xd0,
- 0x8, 0x10, 0xd6, 0x66, 0x6d, 0xd, 0x0, 0x18,
- 0xc, 0x0, 0x0, 0xd0, 0xd0, 0x0, 0xb0, 0xc0,
- 0x0, 0xd, 0xd, 0x24, 0x98, 0xc, 0x0, 0x0,
- 0xd0, 0xd0, 0x8a, 0x0, 0xc0, 0x0, 0xd, 0xd,
- 0x0, 0x0, 0xd, 0x66, 0x66, 0xd0, 0xd0, 0x0,
- 0x0, 0xc0, 0x0, 0xd, 0xd, 0x0, 0x0, 0x6,
- 0x0, 0x0, 0x60, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+9644 "附" */
- 0x20, 0x3, 0x0, 0x73, 0x0, 0x82, 0x0, 0xe6,
- 0x6e, 0x10, 0xd1, 0x0, 0xd0, 0x0, 0xd0, 0x56,
- 0x4, 0x80, 0x0, 0xc0, 0x0, 0xd0, 0x90, 0xa,
- 0x10, 0x0, 0xc0, 0x0, 0xd0, 0x80, 0x2f, 0x25,
- 0x66, 0xd7, 0xa0, 0xd0, 0x50, 0x7c, 0x1, 0x0,
- 0xc0, 0x0, 0xd0, 0x55, 0x2c, 0x2, 0x0, 0xc0,
- 0x0, 0xd0, 0xa, 0xc, 0x3, 0xb1, 0xc0, 0x0,
- 0xd0, 0xd, 0xc, 0x0, 0x85, 0xc0, 0x0, 0xd3,
- 0x4c, 0xc, 0x0, 0x0, 0xc0, 0x0, 0xd4, 0xd3,
- 0xc, 0x0, 0x0, 0xc0, 0x0, 0xd0, 0x0, 0xc,
- 0x0, 0x0, 0xc0, 0x0, 0xd0, 0x0, 0xc, 0x0,
- 0x21, 0xd0, 0x0, 0xd0, 0x0, 0xb, 0x0, 0x2c,
- 0xc0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+964D "降" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x30,
- 0x4, 0x0, 0x68, 0x0, 0x0, 0x0, 0xe6, 0x6f,
- 0x30, 0xb7, 0x66, 0xaa, 0x0, 0xd0, 0x39, 0x2,
- 0xc1, 0x2, 0xd1, 0x0, 0xd0, 0x72, 0x8, 0x18,
- 0x1c, 0x20, 0x0, 0xd0, 0x60, 0x32, 0x3, 0xe3,
- 0x0, 0x0, 0xd0, 0x60, 0x0, 0x2a, 0x6b, 0x61,
- 0x0, 0xd0, 0x18, 0x5, 0x80, 0x83, 0x7d, 0xa1,
- 0xd0, 0xa, 0x51, 0x0, 0xc1, 0x6, 0x0, 0xd0,
- 0x8, 0x67, 0x66, 0xd6, 0x66, 0x10, 0xd5, 0x3d,
- 0x3c, 0x20, 0xc0, 0x0, 0x0, 0xd2, 0xe7, 0x3a,
- 0x0, 0xc0, 0x1, 0x60, 0xd0, 0x0, 0x57, 0x66,
- 0xd6, 0x66, 0x50, 0xd0, 0x0, 0x0, 0x0, 0xc0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0x0, 0xc0, 0x0,
- 0x0, 0x70, 0x0, 0x0, 0x0, 0x70, 0x0, 0x0,
-
- /* U+9650 "限" */
- 0x2, 0x0, 0x30, 0x20, 0x0, 0x3, 0x10, 0x0,
- 0xe6, 0x7d, 0xd, 0x66, 0x66, 0xc6, 0x0, 0xd,
- 0x6, 0x60, 0xd0, 0x0, 0xb, 0x30, 0x0, 0xd0,
- 0x90, 0xd, 0x0, 0x0, 0xb3, 0x0, 0xd, 0x7,
- 0x0, 0xd6, 0x66, 0x6c, 0x30, 0x0, 0xd0, 0x50,
- 0xd, 0x0, 0x0, 0xb3, 0x0, 0xd, 0x6, 0x20,
- 0xd6, 0x66, 0x6c, 0x30, 0x0, 0xd0, 0xa, 0xd,
- 0x6, 0x0, 0x45, 0x0, 0xd, 0x0, 0xc0, 0xd0,
- 0x61, 0x8, 0xd2, 0x0, 0xd2, 0x2e, 0xd, 0x2,
- 0x88, 0x50, 0x0, 0xd, 0x4f, 0x90, 0xd0, 0xa,
- 0x40, 0x0, 0x0, 0xd0, 0x20, 0xd, 0x1, 0x3d,
- 0x30, 0x0, 0xd, 0x0, 0x0, 0xd8, 0x60, 0x2e,
- 0xa4, 0x0, 0xe0, 0x0, 0xd, 0x50, 0x0, 0x2c,
- 0x60, 0x5, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+9662 "院" */
- 0x0, 0x0, 0x0, 0x0, 0x34, 0x0, 0x0, 0x1,
- 0xc6, 0x6e, 0x0, 0x0, 0xd0, 0x0, 0x0, 0xb,
- 0x3, 0x72, 0x96, 0x6a, 0x66, 0xa6, 0x0, 0xb0,
- 0x70, 0x86, 0x0, 0x0, 0x8, 0x0, 0xb, 0x5,
- 0x4, 0x0, 0x0, 0x6, 0x0, 0x0, 0xb0, 0x30,
- 0x2, 0x86, 0x66, 0x50, 0x0, 0xb, 0x5, 0x30,
- 0x0, 0x0, 0x0, 0x10, 0x0, 0xb0, 0xb, 0x38,
- 0x67, 0x68, 0x6b, 0x30, 0xb, 0x0, 0xb2, 0x3,
- 0x91, 0xb0, 0x0, 0x0, 0xb2, 0x3d, 0x20, 0x57,
- 0x1b, 0x0, 0x0, 0xb, 0x1c, 0x80, 0x9, 0x41,
- 0xb0, 0x2, 0x0, 0xb0, 0x0, 0x0, 0xd0, 0x1b,
- 0x0, 0x60, 0xb, 0x0, 0x0, 0xa4, 0x1, 0xb0,
- 0xb, 0x1, 0xb0, 0x2, 0x82, 0x0, 0xc, 0xbc,
- 0xc1, 0x15, 0x1, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+9664 "除" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10,
- 0x1, 0x10, 0x2, 0xd1, 0x0, 0x0, 0xa7, 0x6c,
- 0x80, 0xa, 0x94, 0x0, 0x0, 0x92, 0xd, 0x0,
- 0x3c, 0x8, 0x20, 0x0, 0x92, 0x55, 0x0, 0xb2,
- 0x0, 0xc3, 0x0, 0x92, 0x70, 0x8, 0x40, 0x0,
- 0x2d, 0xa3, 0x92, 0x60, 0x63, 0x76, 0x86, 0xb3,
- 0x95, 0x92, 0x28, 0x0, 0x0, 0xc1, 0x0, 0x0,
- 0x92, 0xb, 0x20, 0x0, 0xc1, 0x1, 0x40, 0x92,
- 0x9, 0x68, 0x66, 0xd6, 0x67, 0x70, 0x96, 0x5d,
- 0x30, 0x60, 0xc1, 0x20, 0x0, 0x93, 0xb6, 0x6,
- 0xd1, 0xc1, 0x28, 0x0, 0x92, 0x0, 0x2b, 0x0,
- 0xc1, 0x3, 0xd1, 0xa2, 0x1, 0x80, 0x0, 0xc0,
- 0x0, 0x96, 0xa2, 0x2, 0x1, 0x6c, 0xe0, 0x0,
- 0x10, 0x40, 0x0, 0x0, 0x3, 0x20, 0x0, 0x0,
-
- /* U+9678 "陸" */
- 0x11, 0x0, 0x20, 0x0, 0xc, 0x10, 0x0, 0x3,
- 0xc6, 0x6d, 0x50, 0x0, 0xd0, 0x0, 0x0, 0x2a,
- 0x1, 0xb0, 0x66, 0x6e, 0x66, 0xc2, 0x2, 0xa0,
- 0x72, 0x1, 0x0, 0xd0, 0x0, 0x0, 0x2a, 0x6,
- 0x0, 0x0, 0xd, 0x0, 0x5, 0x2, 0xa0, 0x51,
- 0x86, 0x76, 0x76, 0x66, 0x82, 0x2a, 0x5, 0x30,
- 0xc, 0x70, 0x39, 0x40, 0x2, 0xa0, 0xb, 0x9,
- 0x50, 0xc1, 0x1d, 0x30, 0x2a, 0x0, 0xe4, 0x10,
- 0xd, 0x0, 0x21, 0x2, 0xc6, 0xa9, 0x0, 0x0,
- 0xd0, 0x5, 0x0, 0x2a, 0x28, 0x1, 0x86, 0x6e,
- 0x66, 0x72, 0x2, 0xa0, 0x0, 0x0, 0x0, 0xd0,
- 0x0, 0x0, 0x2a, 0x0, 0x0, 0x0, 0xd, 0x0,
- 0x3, 0x3, 0xa0, 0x7, 0x66, 0x66, 0xa6, 0x67,
- 0xa2, 0x12, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+967D "陽" */
- 0x40, 0x1, 0x40, 0x52, 0x22, 0x26, 0x10, 0xc6,
- 0x6a, 0xb0, 0xd4, 0x44, 0x4d, 0x20, 0xb1, 0xb,
- 0x10, 0xd6, 0x66, 0x6e, 0x0, 0xb1, 0x27, 0x0,
- 0xd0, 0x0, 0xd, 0x0, 0xb1, 0x60, 0x0, 0xe6,
- 0x66, 0x6e, 0x0, 0xb1, 0x51, 0x0, 0x70, 0x0,
- 0x4, 0x0, 0xb1, 0xa, 0x27, 0x66, 0x66, 0x66,
- 0xb4, 0xb1, 0x8, 0x40, 0x2d, 0x0, 0x0, 0x0,
- 0xb1, 0x7, 0x70, 0xb8, 0x86, 0x86, 0xd3, 0xb6,
- 0x7d, 0x39, 0x42, 0xb2, 0xb0, 0xd0, 0xb1, 0x85,
- 0x62, 0xb, 0x19, 0x50, 0xd0, 0xb1, 0x0, 0x1,
- 0x92, 0x4a, 0x2, 0xb0, 0xb1, 0x0, 0x15, 0x3,
- 0xa0, 0x5, 0x90, 0xb1, 0x0, 0x0, 0x66, 0x5,
- 0xbe, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0x43,
- 0x0,
-
- /* U+968E "階" */
- 0x12, 0x0, 0x41, 0x60, 0x0, 0x90, 0x0, 0x3,
- 0xb6, 0x6e, 0x4d, 0x0, 0xd, 0x3, 0x10, 0x29,
- 0x4, 0x70, 0xd0, 0x51, 0xd2, 0xc5, 0x2, 0x90,
- 0x90, 0xe, 0x66, 0x3e, 0x60, 0x10, 0x29, 0x24,
- 0x0, 0xd0, 0x1, 0xd0, 0x5, 0x2, 0x90, 0x70,
- 0xd, 0x76, 0xe, 0x0, 0xa0, 0x29, 0x4, 0x71,
- 0xc3, 0x11, 0x8b, 0xba, 0x12, 0x90, 0xd, 0x0,
- 0x7, 0x80, 0x0, 0x0, 0x29, 0x11, 0xe0, 0xa6,
- 0xa6, 0x66, 0xb1, 0x2, 0x95, 0xf6, 0xd, 0x0,
- 0x0, 0xd, 0x0, 0x29, 0x0, 0x0, 0xd6, 0x66,
- 0x66, 0xd0, 0x2, 0x90, 0x0, 0xd, 0x0, 0x0,
- 0xd, 0x0, 0x39, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0xd0, 0x3, 0x90, 0x0, 0xd, 0x66, 0x66, 0x6d,
- 0x0, 0x10, 0x0, 0x0, 0x30, 0x0, 0x0, 0x20,
- 0x0,
-
- /* U+969B "際" */
- 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x5,
- 0x0, 0x44, 0xd, 0x50, 0x40, 0x0, 0x0, 0xc8,
- 0x7d, 0x82, 0xf6, 0xa8, 0x66, 0xc3, 0xc, 0x1,
- 0xc0, 0xa6, 0xc, 0x43, 0x1b, 0x0, 0xc0, 0x63,
- 0x38, 0x95, 0xa0, 0x67, 0x10, 0xc, 0x6, 0x7,
- 0x93, 0xa2, 0x7, 0x60, 0x0, 0xc0, 0x60, 0x2,
- 0x57, 0x0, 0xc, 0x50, 0xc, 0x2, 0x80, 0x47,
- 0x0, 0x2, 0x4c, 0x90, 0xc0, 0xb, 0x43, 0x18,
- 0x66, 0x64, 0x0, 0xc, 0x0, 0xa4, 0x0, 0x0,
- 0x0, 0x6, 0x0, 0xc4, 0xad, 0x6, 0x76, 0x6e,
- 0x66, 0x62, 0xc, 0x3, 0x10, 0x6, 0x40, 0xd0,
- 0x50, 0x0, 0xc0, 0x0, 0x4, 0xc3, 0xd, 0x3,
- 0xc2, 0xc, 0x0, 0x5, 0x70, 0x0, 0xd0, 0x5,
- 0xd0, 0xd0, 0x2, 0x20, 0x17, 0xdb, 0x0, 0x4,
- 0x4, 0x0, 0x0, 0x0, 0x5, 0x10, 0x0, 0x0,
-
- /* U+969C "障" */
- 0x0, 0x0, 0x0, 0x4, 0x60, 0x0, 0x0, 0xb6,
- 0x8d, 0x0, 0x0, 0xc0, 0x6, 0x0, 0xc1, 0x76,
- 0x7, 0x97, 0x66, 0xd6, 0x30, 0xb1, 0xa0, 0x0,
- 0xc, 0x4, 0x90, 0x0, 0xb1, 0x71, 0x66, 0x6c,
- 0x6a, 0x66, 0xc5, 0xb2, 0x40, 0x22, 0x0, 0x0,
- 0x3, 0x0, 0xb1, 0x43, 0xb, 0x76, 0x66, 0x6c,
- 0x50, 0xb1, 0xb, 0xb, 0x20, 0x0, 0xb, 0x20,
- 0xb1, 0xd, 0xb, 0x76, 0x66, 0x6c, 0x20, 0xb5,
- 0x4e, 0xb, 0x76, 0x66, 0x6c, 0x20, 0xb3, 0xd5,
- 0x5, 0x0, 0xd0, 0x4, 0x30, 0xb1, 0x2, 0x86,
- 0x66, 0xe6, 0x66, 0xa6, 0xb1, 0x0, 0x0, 0x0,
- 0xd0, 0x0, 0x0, 0xc1, 0x0, 0x0, 0x0, 0xd0,
- 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x60, 0x0,
- 0x0,
-
- /* U+96A3 "隣" */
- 0x20, 0x3, 0x0, 0x20, 0x29, 0x3, 0x0, 0xc,
- 0x66, 0xe5, 0x8, 0x62, 0xb0, 0xd5, 0x0, 0xc0,
- 0x3a, 0x0, 0x7, 0x2b, 0x64, 0x0, 0xc, 0x9,
- 0x10, 0x67, 0x7a, 0xd9, 0x69, 0x60, 0xc2, 0x40,
- 0x0, 0x1b, 0x4b, 0x72, 0x0, 0xc, 0x7, 0x0,
- 0x58, 0x2, 0xb0, 0xac, 0x70, 0xc0, 0x37, 0x32,
- 0x20, 0x29, 0x2, 0x21, 0xc, 0x0, 0xc0, 0x5c,
- 0x0, 0x0, 0xd0, 0x0, 0xc1, 0xd, 0x1c, 0x78,
- 0xc4, 0x7d, 0x69, 0xc, 0x4e, 0x88, 0x70, 0x95,
- 0x51, 0xc0, 0x0, 0xc0, 0x13, 0x4a, 0x2c, 0xc,
- 0x1c, 0x5, 0xc, 0x0, 0x0, 0x3a, 0x41, 0x86,
- 0xd6, 0x61, 0xc0, 0x0, 0x7, 0x70, 0x0, 0xc,
- 0x0, 0xd, 0x0, 0x7, 0x40, 0x0, 0x0, 0xd0,
- 0x0, 0x30, 0x3, 0x0, 0x0, 0x0, 0x4, 0x0,
- 0x0,
-
- /* U+96A8 "隨" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4,
- 0x11, 0x50, 0x0, 0x0, 0xd2, 0x0, 0x0, 0xc5,
- 0x7d, 0x30, 0x46, 0x6e, 0x66, 0xa3, 0xc, 0x7,
- 0x34, 0x91, 0x19, 0x30, 0x2, 0x0, 0xc0, 0x70,
- 0xc, 0x8, 0x96, 0xb6, 0x80, 0xc, 0x22, 0x0,
- 0x5, 0x66, 0x6d, 0x67, 0x70, 0xc0, 0x90, 0x3,
- 0x1, 0x10, 0x0, 0x10, 0xc, 0x4, 0x87, 0xd5,
- 0x2b, 0x66, 0x6d, 0x0, 0xc0, 0xd, 0xc, 0x1,
- 0xa0, 0x0, 0xc0, 0xc, 0x1, 0xd0, 0xc0, 0x1c,
- 0x66, 0x6c, 0x0, 0xc5, 0xe4, 0xc, 0x1, 0xc6,
- 0x66, 0xc0, 0xc, 0x0, 0x0, 0xc0, 0x2a, 0x0,
- 0xc, 0x0, 0xc0, 0x0, 0x1a, 0x22, 0xa0, 0x38,
- 0xa0, 0xc, 0x0, 0x3a, 0x6, 0x84, 0x10, 0x42,
- 0x10, 0xb0, 0x5, 0x20, 0x2, 0x9d, 0xee, 0xf8,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+96BB "隻" */
- 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x8, 0x5, 0x90, 0x0, 0x0, 0x0, 0x0,
- 0x8, 0xb0, 0xd, 0x0, 0x0, 0x10, 0x0, 0x3,
- 0xf6, 0x66, 0x76, 0x66, 0x9c, 0x10, 0x1, 0xac,
- 0x0, 0xe, 0x0, 0x2, 0x0, 0x1, 0x71, 0xd6,
- 0x66, 0xe6, 0x66, 0xa1, 0x0, 0x20, 0xc, 0x0,
- 0xe, 0x0, 0x6, 0x0, 0x0, 0x0, 0xd6, 0x66,
- 0xe6, 0x66, 0x62, 0x0, 0x0, 0xd, 0x66, 0x6e,
- 0x66, 0x66, 0xd2, 0x0, 0x0, 0x60, 0x0, 0x0,
- 0x2, 0x0, 0x0, 0x0, 0x77, 0x66, 0x66, 0x67,
- 0xf3, 0x0, 0x0, 0x0, 0x8, 0x10, 0x2, 0xc4,
- 0x0, 0x0, 0x0, 0x0, 0x9, 0x56, 0xc2, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x5e, 0xe6, 0x10, 0x0,
- 0x0, 0x0, 0x47, 0x85, 0x0, 0x6b, 0xcb, 0xa9,
- 0x13, 0x41, 0x0, 0x0, 0x0, 0x0, 0x24, 0x20,
-
- /* U+96C6 "集" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x4c, 0x5, 0x70, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb5, 0x0, 0xc2, 0x0, 0x2, 0x0,
- 0x0, 0x4, 0xe6, 0x66, 0xa6, 0x66, 0x6b, 0x10,
- 0x0, 0x1d, 0xa0, 0x0, 0xc0, 0x0, 0x20, 0x0,
- 0x0, 0x94, 0xc6, 0x66, 0xd6, 0x66, 0x93, 0x0,
- 0x6, 0x12, 0xa0, 0x0, 0xc0, 0x0, 0x60, 0x0,
- 0x0, 0x2, 0xc6, 0x66, 0xd6, 0x66, 0x62, 0x0,
- 0x0, 0x3, 0xc6, 0x66, 0xd6, 0x66, 0x7b, 0x0,
- 0x0, 0x3, 0x90, 0x1, 0xa0, 0x0, 0x0, 0x0,
- 0x5, 0x66, 0x66, 0x66, 0xd6, 0x66, 0x66, 0xd2,
- 0x1, 0x0, 0x0, 0x98, 0xb5, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x1a, 0x51, 0xb0, 0x94, 0x0, 0x0,
- 0x0, 0x4, 0x92, 0x1, 0xb0, 0x9, 0xb5, 0x20,
- 0x3, 0x64, 0x0, 0x2, 0xc0, 0x0, 0x3b, 0xd3,
- 0x1, 0x0, 0x0, 0x1, 0x20, 0x0, 0x0, 0x0,
-
- /* U+96D1 "雑" */
- 0x0, 0xa, 0x10, 0x0, 0x2, 0x5, 0x0, 0x0,
- 0x0, 0xd, 0x2, 0x0, 0x3e, 0x9, 0x60, 0x0,
- 0x3, 0x6e, 0x6e, 0x10, 0x66, 0x4, 0x52, 0x0,
- 0x0, 0x1b, 0xb, 0x0, 0xb7, 0x6a, 0x69, 0x60,
- 0x0, 0x65, 0x38, 0x42, 0xf2, 0xd, 0x0, 0x0,
- 0x2, 0x90, 0x2b, 0xb9, 0xc2, 0xd, 0x0, 0x0,
- 0x15, 0x1, 0xb0, 0x5, 0xa7, 0x6e, 0x6b, 0x20,
- 0x0, 0x1, 0xb0, 0x20, 0xa2, 0xd, 0x0, 0x0,
- 0x6, 0x66, 0xd6, 0x84, 0xa2, 0xd, 0x0, 0x0,
- 0x0, 0x31, 0xb2, 0x0, 0xa7, 0x6e, 0x6c, 0x20,
- 0x0, 0xd4, 0xb4, 0x80, 0xa2, 0xd, 0x0, 0x0,
- 0x5, 0x51, 0xb0, 0x88, 0xa2, 0xd, 0x0, 0x0,
- 0x17, 0x1, 0xb0, 0x4, 0xb2, 0xd, 0x2, 0x50,
- 0x0, 0x3a, 0xa0, 0x0, 0xb7, 0x66, 0x66, 0x50,
- 0x0, 0x3, 0x10, 0x0, 0x50, 0x0, 0x0, 0x0,
-
- /* U+96D6 "雖" */
- 0x0, 0x0, 0x0, 0x0, 0x34, 0x30, 0x0, 0x0,
- 0x86, 0x66, 0xd3, 0x7, 0xb7, 0xa0, 0x0, 0x8,
- 0x20, 0xc, 0x0, 0xb2, 0xa, 0x1, 0x0, 0x82,
- 0x0, 0xc0, 0x1d, 0x66, 0x86, 0xb2, 0x9, 0x7a,
- 0x6d, 0x17, 0xc0, 0x1b, 0x0, 0x0, 0x20, 0xc0,
- 0x0, 0x7c, 0x1, 0xb0, 0x0, 0x28, 0x6d, 0x66,
- 0xb0, 0xd6, 0x6c, 0x6b, 0x2, 0x90, 0xc0, 0x4a,
- 0xc, 0x1, 0xb0, 0x0, 0x29, 0xc, 0x4, 0xa0,
- 0xc0, 0x1b, 0x0, 0x2, 0xb6, 0xd6, 0x8a, 0xd,
- 0x66, 0xc6, 0xb0, 0x13, 0xc, 0x3, 0x10, 0xc0,
- 0x1b, 0x0, 0x0, 0x0, 0xc0, 0x73, 0xc, 0x1,
- 0xb0, 0x0, 0x45, 0x7d, 0x88, 0xc0, 0xc0, 0x1b,
- 0x6, 0x26, 0x95, 0x10, 0xc, 0xd, 0x66, 0x66,
- 0x63, 0x0, 0x0, 0x0, 0x0, 0x30, 0x0, 0x0,
- 0x0,
-
- /* U+96D9 "雙" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x7, 0x28, 0x0, 0x27, 0x39, 0x0, 0x0,
- 0x0, 0x4c, 0xa, 0x10, 0x78, 0xa, 0x3, 0x0,
- 0x0, 0xd7, 0x68, 0x85, 0xc6, 0x6a, 0x68, 0x20,
- 0x7, 0xe0, 0x1a, 0x23, 0xf0, 0x1a, 0x2, 0x0,
- 0x13, 0xc6, 0x6c, 0x76, 0xc6, 0x6c, 0x66, 0x0,
- 0x0, 0xc0, 0x1a, 0x20, 0xc0, 0x1a, 0x2, 0x0,
- 0x0, 0xc6, 0x6c, 0x62, 0xc6, 0x6c, 0x66, 0x0,
- 0x0, 0xc3, 0x4b, 0x54, 0xc0, 0x1a, 0x5, 0x10,
- 0x0, 0xa3, 0x33, 0x32, 0xa6, 0x66, 0x66, 0x30,
- 0x0, 0x56, 0x76, 0x66, 0x66, 0x6b, 0x50, 0x0,
- 0x0, 0x0, 0x26, 0x0, 0x0, 0x98, 0x0, 0x0,
- 0x0, 0x0, 0x2, 0x82, 0x5a, 0x30, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x4d, 0xd3, 0x0, 0x0, 0x0,
- 0x0, 0x3, 0x78, 0x50, 0x17, 0xbb, 0x98, 0x83,
- 0x4, 0x52, 0x0, 0x0, 0x0, 0x1, 0x46, 0x50,
-
- /* U+96E2 "離" */
- 0x0, 0x8, 0x0, 0x0, 0x24, 0x11, 0x0, 0x0,
- 0x0, 0x84, 0x5, 0x16, 0xc0, 0xb1, 0x0, 0x46,
- 0x66, 0x97, 0x62, 0x93, 0x7, 0x40, 0x0, 0x93,
- 0x6b, 0x36, 0xd, 0x66, 0x86, 0xb2, 0xb, 0xa,
- 0x80, 0xc3, 0xf0, 0xd, 0x0, 0x0, 0xc4, 0x9,
- 0xc, 0x6d, 0x0, 0xd0, 0x0, 0x2c, 0x68, 0x66,
- 0xc1, 0xd6, 0x6e, 0x6a, 0x0, 0x0, 0xc2, 0x2,
- 0xd, 0x0, 0xd0, 0x0, 0x2a, 0x6b, 0x55, 0xd2,
- 0xd0, 0xd, 0x0, 0x2, 0x97, 0x15, 0xb, 0xd,
- 0x66, 0xe6, 0xb0, 0x2b, 0xc8, 0xa4, 0xb0, 0xd0,
- 0xd, 0x0, 0x2, 0x94, 0x1, 0xb, 0xd, 0x0,
- 0xd0, 0x0, 0x29, 0x0, 0x0, 0xb0, 0xd0, 0xd,
- 0x5, 0x2, 0x90, 0x5, 0xcb, 0xd, 0x66, 0x66,
- 0x63, 0x13, 0x0, 0x1, 0x0, 0x30, 0x0, 0x0,
- 0x0,
-
- /* U+96E3 "難" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x16, 0x2, 0x60, 0x4, 0xc5, 0x40, 0x0,
- 0x0, 0x29, 0x2, 0xb0, 0x7, 0xa0, 0xe1, 0x0,
- 0x5, 0x8b, 0x67, 0xd8, 0x5b, 0x20, 0x50, 0x60,
- 0x0, 0x29, 0x2, 0xb0, 0x1f, 0x66, 0xd6, 0x72,
- 0x0, 0x28, 0xc7, 0x70, 0x6e, 0x0, 0xc0, 0x0,
- 0x0, 0x86, 0xd6, 0x69, 0x6d, 0x0, 0xc0, 0x0,
- 0x0, 0xc0, 0xc0, 0xb, 0xd, 0x66, 0xd6, 0x90,
- 0x0, 0xd6, 0xd6, 0x6b, 0xd, 0x0, 0xc0, 0x0,
- 0x0, 0x30, 0xc0, 0x5, 0xd, 0x0, 0xc0, 0x0,
- 0x0, 0x76, 0xd6, 0x66, 0xd, 0x66, 0xd6, 0xa0,
- 0x5, 0x76, 0xd6, 0x6a, 0x4d, 0x0, 0xc0, 0x0,
- 0x0, 0x1, 0x93, 0x10, 0xd, 0x0, 0xc0, 0x0,
- 0x0, 0xa, 0x21, 0xd3, 0xd, 0x0, 0xc0, 0x40,
- 0x1, 0x82, 0x0, 0x44, 0xd, 0x66, 0x76, 0x73,
- 0x3, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
-
- /* U+96E8 "雨" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x30, 0x67,
- 0x66, 0x66, 0x86, 0x66, 0x68, 0xc1, 0x0, 0x0,
- 0x0, 0xd0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x0,
- 0xd0, 0x0, 0x5, 0x0, 0xd, 0x66, 0x66, 0xe6,
- 0x66, 0x6e, 0x20, 0xc, 0x16, 0x20, 0xd1, 0x50,
- 0xe, 0x0, 0xc, 0x11, 0xe3, 0xd0, 0x6c, 0xe,
- 0x0, 0xc, 0x10, 0x53, 0xd0, 0x8, 0xe, 0x0,
- 0xc, 0x10, 0x0, 0xd0, 0x0, 0xe, 0x0, 0xc,
- 0x1a, 0x50, 0xd1, 0x93, 0xe, 0x0, 0xc, 0x11,
- 0xe0, 0xd0, 0x2e, 0xe, 0x0, 0xc, 0x10, 0x10,
- 0xd0, 0x3, 0xe, 0x0, 0xc, 0x10, 0x0, 0xd0,
- 0x15, 0x5f, 0x0, 0xc, 0x10, 0x0, 0x90, 0x2,
- 0xca, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10,
- 0x0,
-
- /* U+96EA "雪" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x50, 0x0,
- 0x4, 0x76, 0x66, 0xd6, 0x66, 0x66, 0x0, 0x1,
- 0x20, 0x0, 0xd, 0x0, 0x0, 0x5, 0x10, 0x59,
- 0x66, 0x66, 0xe6, 0x66, 0x66, 0xe5, 0xd, 0x45,
- 0x66, 0x1d, 0x5, 0x66, 0x42, 0x0, 0x30, 0x0,
- 0x0, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x66,
- 0x1d, 0x5, 0x66, 0x20, 0x0, 0x0, 0x0, 0x0,
- 0x70, 0x0, 0x10, 0x0, 0x0, 0x37, 0x66, 0x66,
- 0x66, 0x6b, 0x90, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x76, 0x0, 0x0, 0x6, 0x66, 0x66, 0x66,
- 0x6a, 0x60, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0,
- 0x76, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7,
- 0x60, 0x0, 0x6, 0x76, 0x66, 0x66, 0x66, 0xa6,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x10,
- 0x0,
-
- /* U+96F2 "雲" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x56, 0x66, 0x66, 0x66, 0x98, 0x0, 0x0, 0x20,
- 0x0, 0xa3, 0x0, 0x0, 0x0, 0x9, 0x66, 0x66,
- 0xc8, 0x66, 0x66, 0xb1, 0x59, 0x0, 0x0, 0xa3,
- 0x0, 0x1, 0xc3, 0x82, 0x56, 0x60, 0xa3, 0x56,
- 0x64, 0x10, 0x0, 0x0, 0x0, 0xa3, 0x0, 0x0,
- 0x0, 0x0, 0x56, 0x60, 0xa2, 0x56, 0x61, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x30, 0x0, 0x0,
- 0x76, 0x66, 0x66, 0x66, 0x95, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x70, 0x47, 0x66, 0x6b,
- 0x76, 0x66, 0x66, 0x83, 0x0, 0x0, 0x8b, 0x40,
- 0x35, 0x0, 0x0, 0x0, 0x49, 0x30, 0x0, 0x4,
- 0xd4, 0x0, 0x5, 0xfc, 0xba, 0x87, 0x65, 0x7e,
- 0x0, 0x0, 0x41, 0x0, 0x0, 0x0, 0x4, 0x0,
-
- /* U+96FB "電" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x56, 0x66, 0x66, 0x66, 0x99, 0x0, 0x2, 0x10,
- 0x0, 0xe0, 0x0, 0x0, 0x10, 0x9, 0x66, 0x66,
- 0xe6, 0x66, 0x66, 0xd5, 0x5a, 0x0, 0x0, 0xe0,
- 0x0, 0x0, 0x90, 0x42, 0x46, 0x60, 0xe0, 0x26,
- 0x65, 0x20, 0x0, 0x45, 0x50, 0xd0, 0x26, 0x64,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
- 0x0, 0xc6, 0x66, 0x96, 0x66, 0x7e, 0x0, 0x0,
- 0xd0, 0x0, 0xe0, 0x0, 0x1b, 0x0, 0x0, 0xd6,
- 0x66, 0xe6, 0x66, 0x6b, 0x0, 0x0, 0xd0, 0x0,
- 0xe0, 0x0, 0x1b, 0x0, 0x0, 0xd6, 0x66, 0xe6,
- 0x66, 0x6b, 0x40, 0x0, 0x40, 0x0, 0xe0, 0x0,
- 0x1, 0x72, 0x0, 0x0, 0x0, 0xbd, 0xbb, 0xbb,
- 0xd6,
-
- /* U+9700 "需" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x20, 0x0,
- 0x5, 0x66, 0x68, 0xb6, 0x66, 0x64, 0x0, 0x7,
- 0x66, 0x66, 0x8b, 0x66, 0x66, 0x7c, 0x11, 0xd0,
- 0x0, 0x4, 0x90, 0x0, 0x7, 0x20, 0x13, 0x6,
- 0x63, 0x49, 0x46, 0x63, 0x10, 0x0, 0x1, 0x66,
- 0x34, 0x94, 0x66, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x11, 0x0, 0x0, 0x61, 0x0, 0x76, 0x66, 0x6d,
- 0x66, 0x66, 0x66, 0x40, 0x0, 0x30, 0x4, 0x30,
- 0x0, 0x0, 0x40, 0x0, 0xe, 0x66, 0xe6, 0x6e,
- 0x66, 0x7c, 0x0, 0x0, 0xd0, 0xd, 0x0, 0xd0,
- 0x2, 0xa0, 0x0, 0xd, 0x0, 0xd0, 0xd, 0x0,
- 0x2a, 0x0, 0x0, 0xd0, 0xd, 0x0, 0xd0, 0x2,
- 0xa0, 0x0, 0xd, 0x0, 0x90, 0x7, 0x5, 0xc9,
- 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x3, 0x0,
- 0x0,
-
- /* U+9707 "震" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x46, 0x66, 0x66, 0x66, 0xd6, 0x0, 0x0,
- 0x21, 0x10, 0xa, 0x20, 0x0, 0x2, 0x0, 0x9,
- 0x66, 0x66, 0xc7, 0x66, 0x66, 0xf3, 0x3, 0xd2,
- 0x66, 0x3a, 0x25, 0x66, 0x53, 0x0, 0x11, 0x0,
- 0x0, 0xa3, 0x0, 0x0, 0x0, 0x0, 0x13, 0x66,
- 0x38, 0x15, 0x66, 0x50, 0x0, 0x3, 0xb6, 0x66,
- 0x66, 0x66, 0x6a, 0x40, 0x0, 0x3a, 0x16, 0x66,
- 0x66, 0x6a, 0x50, 0x0, 0x3, 0xa0, 0x20, 0x0,
- 0x0, 0x0, 0x40, 0x0, 0x3c, 0x69, 0x67, 0x66,
- 0x66, 0x6b, 0x30, 0x5, 0x80, 0xd0, 0x25, 0x0,
- 0xb4, 0x0, 0x0, 0x84, 0xd, 0x0, 0x66, 0x84,
- 0x0, 0x0, 0xb, 0x0, 0xd0, 0x52, 0x7a, 0x30,
- 0x0, 0x6, 0x20, 0xe, 0xa1, 0x0, 0x3b, 0xfc,
- 0x70, 0x20, 0x0, 0x30, 0x0, 0x0, 0x1, 0x40,
-
- /* U+9752 "青" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xd, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe, 0x0, 0x0, 0x58, 0x0,
- 0x5, 0x76, 0x66, 0x6e, 0x66, 0x66, 0x66, 0x10,
- 0x0, 0x26, 0x66, 0x6e, 0x66, 0x68, 0xb0, 0x0,
- 0x0, 0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x10,
- 0x6, 0x66, 0x66, 0x6d, 0x66, 0x66, 0x6b, 0xc0,
- 0x1, 0x0, 0x20, 0x0, 0x0, 0x4, 0x0, 0x0,
- 0x0, 0x0, 0xe6, 0x66, 0x66, 0x6e, 0x20, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0x0, 0xe6, 0x66, 0x66, 0x6e, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0x0, 0xe6, 0x66, 0x66, 0x6e, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0xe, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x6, 0xce, 0x0, 0x0,
- 0x0, 0x0, 0x70, 0x0, 0x0, 0x43, 0x0, 0x0,
-
- /* U+9759 "静" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x91, 0x0, 0xa, 0x40, 0x0, 0x0,
- 0x0, 0x11, 0xc1, 0x42, 0x1d, 0x0, 0x60, 0x0,
- 0x3, 0x65, 0xd5, 0x53, 0x87, 0x68, 0xd2, 0x0,
- 0x1, 0x66, 0xd6, 0xa4, 0x60, 0x8, 0x10, 0x0,
- 0x0, 0x10, 0xc0, 0x3, 0x76, 0x97, 0x6d, 0x30,
- 0x7, 0x66, 0xa6, 0x79, 0x0, 0xc0, 0xc, 0x0,
- 0x0, 0x30, 0x0, 0x40, 0x0, 0xc0, 0xc, 0x70,
- 0x0, 0xd6, 0x66, 0xd4, 0x76, 0xd6, 0x6d, 0x52,
- 0x0, 0xd6, 0x66, 0xb0, 0x0, 0xc0, 0xc, 0x0,
- 0x0, 0xc0, 0x0, 0xb1, 0x66, 0xd6, 0x6d, 0x0,
- 0x0, 0xd6, 0x66, 0xb0, 0x10, 0xc0, 0x4, 0x0,
- 0x0, 0xc0, 0x0, 0xb0, 0x0, 0xc0, 0x0, 0x0,
- 0x0, 0xc0, 0x0, 0xb0, 0x0, 0xc0, 0x0, 0x0,
- 0x0, 0xc0, 0x5a, 0x90, 0x59, 0xd0, 0x0, 0x0,
- 0x0, 0x40, 0x6, 0x10, 0x5, 0x40, 0x0, 0x0,
-
- /* U+975E "非" */
- 0x0, 0x0, 0x0, 0x91, 0xa, 0x20, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe0, 0xd, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe0, 0xd, 0x10, 0x1, 0x0,
- 0x4, 0x76, 0x66, 0xe0, 0xd, 0x66, 0x6a, 0x50,
- 0x0, 0x0, 0x0, 0xe0, 0xd, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe0, 0xd, 0x10, 0x0, 0x0,
- 0x0, 0x56, 0x66, 0xe0, 0xd, 0x66, 0x6c, 0x20,
- 0x0, 0x10, 0x0, 0xe0, 0xd, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe0, 0xd, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe0, 0xd, 0x10, 0x1, 0x50,
- 0x7, 0x66, 0x66, 0xe0, 0xd, 0x66, 0x66, 0x70,
- 0x0, 0x0, 0x0, 0xe0, 0xd, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe0, 0xd, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xe0, 0xd, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x40, 0x3, 0x0, 0x0, 0x0,
-
- /* U+9762 "面" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xa0,
- 0x18, 0x66, 0x66, 0x6f, 0x76, 0x66, 0x66, 0x61,
- 0x0, 0x0, 0x0, 0x3a, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x20, 0x0, 0x61, 0x0, 0x0, 0x5, 0x0,
- 0x0, 0xd6, 0x66, 0xd6, 0x6d, 0x66, 0x6e, 0x10,
- 0x0, 0xd1, 0x0, 0xc0, 0xd, 0x0, 0xd, 0x0,
- 0x0, 0xc1, 0x0, 0xd6, 0x6e, 0x0, 0xd, 0x0,
- 0x0, 0xc1, 0x0, 0xc0, 0xd, 0x0, 0xd, 0x0,
- 0x0, 0xc1, 0x0, 0xc0, 0xd, 0x0, 0xd, 0x0,
- 0x0, 0xc1, 0x0, 0xd6, 0x6e, 0x0, 0xd, 0x0,
- 0x0, 0xc1, 0x0, 0xc0, 0xd, 0x0, 0xe, 0x0,
- 0x0, 0xc1, 0x0, 0xc0, 0xd, 0x0, 0xe, 0x0,
- 0x0, 0xd6, 0x66, 0xd6, 0x6e, 0x66, 0x6e, 0x0,
- 0x0, 0xd1, 0x0, 0x0, 0x0, 0x0, 0xe, 0x0,
- 0x0, 0x10, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0,
-
- /* U+9769 "革" */
- 0x0, 0x0, 0xa, 0x20, 0x0, 0x90, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0x0, 0x0, 0xd0, 0x8, 0x10,
- 0x2, 0x86, 0x6e, 0x66, 0x66, 0xe6, 0x66, 0x30,
- 0x0, 0x0, 0xd, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0x0, 0xd, 0x6b, 0x76, 0xa0, 0x0, 0x0,
- 0x0, 0x2, 0x0, 0xb, 0x20, 0x0, 0x30, 0x0,
- 0x0, 0xd, 0x66, 0x6d, 0x76, 0x66, 0xf1, 0x0,
- 0x0, 0xd, 0x10, 0xb, 0x20, 0x0, 0xe0, 0x0,
- 0x0, 0xd, 0x66, 0x6d, 0x76, 0x66, 0xe0, 0x0,
- 0x0, 0x8, 0x0, 0xb, 0x20, 0x0, 0x30, 0x0,
- 0x0, 0x0, 0x0, 0xb, 0x20, 0x0, 0x3, 0x90,
- 0x7, 0x66, 0x66, 0x6d, 0x76, 0x66, 0x66, 0x61,
- 0x0, 0x0, 0x0, 0xb, 0x20, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xc, 0x30, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x6, 0x10, 0x0, 0x0, 0x0,
-
- /* U+9774 "靴" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x66, 0x7, 0x40, 0x8, 0x17, 0x10, 0x0,
- 0x0, 0x66, 0x8, 0x52, 0xe, 0x1c, 0x0, 0x0,
- 0x6, 0xa9, 0x6b, 0x84, 0x48, 0xc, 0x0, 0x0,
- 0x0, 0x66, 0x8, 0x40, 0x81, 0xc, 0x4, 0xa0,
- 0x0, 0x68, 0xc9, 0x30, 0xa0, 0xc, 0xb, 0x30,
- 0x0, 0x20, 0xc0, 0x53, 0xe2, 0xc, 0x48, 0x0,
- 0x0, 0xd6, 0xd6, 0xd6, 0xb0, 0xc, 0x90, 0x0,
- 0x0, 0xc0, 0xc0, 0xc1, 0xb0, 0xd, 0x20, 0x0,
- 0x0, 0xd6, 0xd6, 0xc0, 0xb0, 0x7d, 0x0, 0x0,
- 0x0, 0x30, 0xc0, 0x10, 0xb3, 0x1c, 0x0, 0x0,
- 0x5, 0x66, 0xd6, 0xa6, 0xb0, 0xc, 0x0, 0x10,
- 0x1, 0x0, 0xc0, 0x0, 0xb0, 0xc, 0x0, 0x60,
- 0x0, 0x0, 0xc0, 0x0, 0xb0, 0xb, 0x0, 0x90,
- 0x0, 0x0, 0xd0, 0x0, 0xc1, 0x8, 0xcb, 0xe2,
- 0x0, 0x0, 0x50, 0x0, 0x30, 0x0, 0x0, 0x0,
-
- /* U+97F3 "音" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x1, 0xb2, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x7, 0x70, 0x0, 0x70, 0x0, 0x3,
- 0x76, 0x76, 0x66, 0x68, 0x68, 0x30, 0x0, 0x0,
- 0xa, 0x20, 0x1, 0xf2, 0x0, 0x0, 0x0, 0x0,
- 0x5c, 0x0, 0x75, 0x0, 0x0, 0x0, 0x0, 0x1,
- 0x60, 0x8, 0x0, 0x1b, 0x30, 0x76, 0x66, 0x66,
- 0x66, 0x66, 0x66, 0x64, 0x0, 0x0, 0x40, 0x0,
- 0x0, 0x7, 0x0, 0x0, 0x0, 0xe, 0x66, 0x66,
- 0x66, 0xe2, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0,
- 0xe, 0x0, 0x0, 0x0, 0xe, 0x66, 0x66, 0x66,
- 0xe0, 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0xe,
- 0x0, 0x0, 0x0, 0xe, 0x66, 0x66, 0x66, 0xe0,
- 0x0, 0x0, 0x0, 0xe0, 0x0, 0x0, 0xd, 0x0,
- 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x10, 0x0,
-
- /* U+97FF "響" */
- 0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x23, 0x1, 0x28, 0x10, 0x0, 0x10, 0x0, 0xb4,
- 0xb, 0x66, 0xc3, 0xc6, 0xc3, 0x28, 0x15, 0x7b,
- 0x66, 0xc0, 0xb2, 0x60, 0x49, 0x86, 0xb, 0x0,
- 0xb0, 0xb4, 0x20, 0x5, 0x34, 0x8b, 0x68, 0x70,
- 0xb0, 0x92, 0xa, 0x6b, 0x2b, 0x36, 0xa0, 0xb2,
- 0x75, 0x0, 0x68, 0x9, 0x80, 0x40, 0xb3, 0xa0,
- 0x36, 0x40, 0x0, 0x46, 0x0, 0x36, 0x0, 0x1,
- 0x76, 0xb9, 0x66, 0xb8, 0x66, 0x10, 0x0, 0x0,
- 0x18, 0x3, 0x81, 0x0, 0x71, 0x56, 0x58, 0x55,
- 0x55, 0x55, 0x85, 0x53, 0x0, 0xd, 0x66, 0x66,
- 0x66, 0xd2, 0x0, 0x0, 0xd, 0x66, 0x66, 0x66,
- 0xd0, 0x0, 0x0, 0xd, 0x66, 0x66, 0x66, 0xd0,
- 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x30, 0x0,
-
- /* U+9803 "頃" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x44, 0x0,
- 0xa1, 0x0, 0x7, 0x66, 0xe6, 0x66, 0x50, 0xd,
- 0x0, 0x0, 0x0, 0x19, 0x0, 0x0, 0x0, 0xd0,
- 0x0, 0x2, 0xb6, 0x76, 0x6d, 0x30, 0xd, 0x0,
- 0x20, 0x2b, 0x0, 0x0, 0xd0, 0x0, 0xd6, 0x69,
- 0x21, 0xd6, 0x66, 0x6e, 0x0, 0xd, 0x0, 0x0,
- 0x1b, 0x0, 0x0, 0xd0, 0x0, 0xd0, 0x0, 0x1,
- 0xd6, 0x66, 0x6e, 0x0, 0xd, 0x0, 0x0, 0x1b,
- 0x0, 0x0, 0xd0, 0x0, 0xd0, 0x5, 0x31, 0xb0,
- 0x0, 0xd, 0x0, 0xd, 0x5a, 0x20, 0x2a, 0x76,
- 0x66, 0xa0, 0x0, 0xfa, 0x0, 0x0, 0xd, 0x30,
- 0x71, 0x0, 0x3, 0x0, 0x0, 0xa, 0x50, 0x1,
- 0xd3, 0x0, 0x0, 0x0, 0x17, 0x20, 0x0, 0x5,
- 0xa0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1,
- 0x0,
-
- /* U+9805 "項" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x30,
- 0x0, 0x0, 0x4, 0x7, 0x66, 0xd6, 0x66, 0x50,
- 0x6, 0x7c, 0x67, 0x20, 0x1, 0x90, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x3, 0x97, 0x76, 0x6c, 0x30,
- 0x0, 0xd, 0x0, 0x3, 0xa0, 0x0, 0xd, 0x0,
- 0x0, 0xd, 0x0, 0x2, 0xc6, 0x66, 0x6e, 0x0,
- 0x0, 0xd, 0x0, 0x2, 0xa0, 0x0, 0xd, 0x0,
- 0x0, 0xd, 0x0, 0x2, 0xa0, 0x0, 0xd, 0x0,
- 0x0, 0xd, 0x0, 0x2, 0xc6, 0x66, 0x6e, 0x0,
- 0x0, 0xd, 0x36, 0x32, 0xa0, 0x0, 0xd, 0x0,
- 0x15, 0xac, 0x50, 0x3, 0xb6, 0x66, 0x6c, 0x0,
- 0x1d, 0x50, 0x0, 0x0, 0xc, 0x30, 0x71, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x96, 0x0, 0x2c, 0x20,
- 0x0, 0x0, 0x0, 0x7, 0x30, 0x0, 0x6, 0xa0,
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x20,
-
- /* U+9808 "須" */
- 0x0, 0x2, 0x10, 0x0, 0x0, 0x0, 0x6, 0x0,
- 0x0, 0x9a, 0x6, 0x66, 0xb8, 0x66, 0x73, 0x0,
- 0x5a, 0x0, 0x0, 0xa, 0x10, 0x0, 0x0, 0x48,
- 0x0, 0x0, 0xa6, 0x96, 0x66, 0xd0, 0x43, 0x0,
- 0x20, 0xd, 0x0, 0x0, 0x2b, 0x0, 0x0, 0x1e,
- 0x40, 0xe6, 0x66, 0x67, 0xb0, 0x0, 0xb, 0x50,
- 0xd, 0x0, 0x0, 0x2b, 0x0, 0x1a, 0x30, 0x0,
- 0xd0, 0x0, 0x2, 0xb0, 0x36, 0x0, 0x0, 0xe,
- 0x66, 0x66, 0x7b, 0x0, 0x0, 0x3, 0xd1, 0xd0,
- 0x0, 0x2, 0xb0, 0x0, 0x2, 0xd4, 0xd, 0x66,
- 0x66, 0x79, 0x0, 0x3, 0xb2, 0x0, 0x8, 0x60,
- 0x71, 0x0, 0x5, 0x70, 0x0, 0x5, 0xc1, 0x2,
- 0xc2, 0x2, 0x10, 0x0, 0x6, 0x70, 0x0, 0x6,
- 0xa0, 0x0, 0x0, 0x1, 0x10, 0x0, 0x0, 0x2,
- 0x0,
-
- /* U+9817 "頗" */
- 0x0, 0x0, 0x92, 0x0, 0x0, 0x0, 0x0, 0x60,
- 0x0, 0x0, 0xc0, 0x4, 0x76, 0xa8, 0x66, 0x82,
- 0x0, 0x10, 0xc0, 0x20, 0x0, 0xb2, 0x0, 0x0,
- 0x1, 0xc6, 0xd6, 0xc6, 0x96, 0x96, 0x67, 0xc0,
- 0x1, 0xb0, 0xc0, 0x80, 0xd0, 0x0, 0x2, 0xa0,
- 0x1, 0xb0, 0xc0, 0x20, 0xd4, 0x44, 0x45, 0xa0,
- 0x1, 0xc6, 0xd6, 0xb2, 0xd2, 0x22, 0x24, 0xa0,
- 0x2, 0xa0, 0x0, 0xc0, 0xd0, 0x0, 0x2, 0xa0,
- 0x3, 0x92, 0x4, 0x70, 0xd6, 0x66, 0x67, 0xa0,
- 0x4, 0x71, 0x8b, 0x20, 0xd0, 0x0, 0x2, 0xb0,
- 0x6, 0x40, 0x6d, 0x0, 0xd6, 0x66, 0x67, 0x90,
- 0x8, 0x2, 0x98, 0x80, 0x8, 0x80, 0x61, 0x0,
- 0x6, 0x28, 0x0, 0x80, 0x4c, 0x10, 0x1c, 0x40,
- 0x22, 0x40, 0x0, 0x5, 0x70, 0x0, 0x3, 0xd0,
- 0x0, 0x0, 0x0, 0x12, 0x0, 0x0, 0x0, 0x20,
-
- /* U+9818 "領" */
- 0x0, 0x3, 0x50, 0x0, 0x0, 0x0, 0x4, 0x30,
- 0x0, 0x8, 0x90, 0x6, 0x66, 0xc7, 0x66, 0x60,
- 0x0, 0xd, 0x66, 0x0, 0x0, 0xa0, 0x0, 0x0,
- 0x0, 0x49, 0x8, 0x90, 0xa6, 0x86, 0x6c, 0x30,
- 0x0, 0xa3, 0x0, 0xd2, 0xd0, 0x0, 0xc, 0x0,
- 0x5, 0x40, 0xb1, 0x20, 0xd6, 0x66, 0x6d, 0x0,
- 0x15, 0x0, 0x74, 0x0, 0xd0, 0x0, 0xc, 0x0,
- 0x1, 0x55, 0x55, 0xa0, 0xd0, 0x0, 0xc, 0x0,
- 0x0, 0x31, 0x15, 0xb1, 0xd6, 0x66, 0x6d, 0x0,
- 0x0, 0x0, 0xa, 0x0, 0xd0, 0x0, 0xc, 0x10,
- 0x0, 0x71, 0x53, 0x0, 0xc6, 0x66, 0x6c, 0x0,
- 0x0, 0xb, 0x80, 0x0, 0xa, 0x50, 0x62, 0x0,
- 0x0, 0x1, 0xe3, 0x0, 0x79, 0x0, 0xc, 0x40,
- 0x0, 0x0, 0x53, 0x6, 0x50, 0x0, 0x3, 0xd0,
- 0x0, 0x0, 0x0, 0x11, 0x0, 0x0, 0x0, 0x20,
-
- /* U+982D "頭" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0x5,
- 0x76, 0x66, 0xa7, 0x76, 0x7c, 0x66, 0x73, 0x0,
- 0x0, 0x0, 0x0, 0x3, 0x70, 0x0, 0x0, 0x96,
- 0x66, 0xb2, 0x2a, 0x75, 0x55, 0xe1, 0xd, 0x0,
- 0xd, 0x2, 0xb0, 0x0, 0xd, 0x0, 0xd0, 0x0,
- 0xd0, 0x2c, 0x66, 0x66, 0xd0, 0xd, 0x0, 0xd,
- 0x2, 0xb0, 0x0, 0xd, 0x0, 0xb6, 0x66, 0x80,
- 0x2b, 0x0, 0x0, 0xd0, 0x3, 0x0, 0x35, 0x2,
- 0xc6, 0x66, 0x6d, 0x0, 0x64, 0x8, 0x60, 0x2b,
- 0x0, 0x0, 0xd0, 0x2, 0xb0, 0x90, 0x2, 0xb6,
- 0x66, 0x6b, 0x0, 0x4, 0x29, 0x54, 0x1, 0xd2,
- 0x53, 0x0, 0x8d, 0xa7, 0x30, 0x0, 0xb5, 0x0,
- 0xa6, 0x1, 0x0, 0x0, 0x2, 0x82, 0x0, 0x1,
- 0xf0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x3,
- 0x0,
-
- /* U+983C "頼" */
- 0x0, 0x0, 0x93, 0x0, 0x0, 0x0, 0x0, 0x60,
- 0x0, 0x0, 0xc0, 0x0, 0x67, 0x6d, 0x66, 0x72,
- 0x4, 0x66, 0xd6, 0x6c, 0x10, 0xa, 0x0, 0x0,
- 0x1, 0x10, 0xc0, 0x0, 0xa, 0x77, 0x66, 0xd1,
- 0x1, 0x41, 0xc1, 0x15, 0xd, 0x0, 0x0, 0xd0,
- 0x1, 0xb4, 0xd4, 0x5c, 0xe, 0x66, 0x66, 0xd0,
- 0x1, 0xa0, 0xc0, 0x2b, 0xd, 0x0, 0x0, 0xd0,
- 0x1, 0xa1, 0xc1, 0x2b, 0xc, 0x0, 0x0, 0xd0,
- 0x2, 0x99, 0xf5, 0x56, 0xd, 0x66, 0x66, 0xd0,
- 0x0, 0xb, 0xe7, 0x30, 0xd, 0x0, 0x0, 0xd0,
- 0x0, 0x38, 0xc0, 0xc6, 0xd, 0x66, 0x66, 0xb0,
- 0x0, 0x90, 0xc0, 0x19, 0x1, 0xd2, 0x53, 0x0,
- 0x6, 0x0, 0xc0, 0x0, 0x9, 0x60, 0xa, 0x70,
- 0x0, 0x0, 0xc0, 0x0, 0x64, 0x0, 0x1, 0xe0,
- 0x0, 0x0, 0x30, 0x1, 0x10, 0x0, 0x0, 0x20,
-
- /* U+984C "題" */
- 0x0, 0x30, 0x0, 0x60, 0x0, 0x0, 0x1, 0x40,
- 0x0, 0xc6, 0x66, 0xd2, 0x76, 0x79, 0x66, 0x70,
- 0x0, 0xb0, 0x0, 0xc0, 0x0, 0x54, 0x1, 0x0,
- 0x0, 0xc6, 0x66, 0xc0, 0x2b, 0x76, 0x6e, 0x10,
- 0x0, 0xc1, 0x11, 0xc0, 0x1a, 0x0, 0xc, 0x0,
- 0x0, 0xb5, 0x55, 0x90, 0x1c, 0x66, 0x6c, 0x0,
- 0x0, 0x0, 0x0, 0x16, 0x1b, 0x22, 0x2c, 0x0,
- 0x5, 0x76, 0xd6, 0x66, 0x3b, 0x44, 0x4c, 0x0,
- 0x0, 0xa0, 0xc0, 0x0, 0x1c, 0x55, 0x5c, 0x0,
- 0x0, 0xb0, 0xc6, 0x88, 0x14, 0x40, 0x12, 0x0,
- 0x2, 0xc0, 0xc0, 0x0, 0x8, 0x80, 0x85, 0x0,
- 0x5, 0x57, 0xc0, 0x0, 0x56, 0x0, 0xd, 0x10,
- 0x8, 0x1, 0xd6, 0x11, 0x20, 0x0, 0x2, 0x21,
- 0x5, 0x0, 0x6, 0xcd, 0xdd, 0xde, 0xef, 0x90,
- 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+9854 "顔" */
- 0x0, 0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x60,
- 0x0, 0x0, 0x76, 0x6, 0x76, 0x6c, 0x66, 0x72,
- 0x2, 0x96, 0x66, 0xd6, 0x10, 0x28, 0x0, 0x0,
- 0x0, 0xa, 0x2, 0xb0, 0x39, 0x86, 0x66, 0xd0,
- 0x0, 0x8, 0x36, 0x12, 0x2a, 0x0, 0x1, 0xb0,
- 0x3, 0xb6, 0x67, 0x69, 0x5c, 0x66, 0x66, 0xb0,
- 0x2, 0x90, 0x0, 0xa2, 0x2a, 0x0, 0x1, 0xb0,
- 0x2, 0x90, 0x2a, 0x50, 0x2c, 0x66, 0x66, 0xb0,
- 0x3, 0x83, 0x40, 0x49, 0x2a, 0x0, 0x1, 0xc0,
- 0x3, 0x80, 0x5, 0xc3, 0x2a, 0x0, 0x1, 0xc0,
- 0x4, 0x62, 0x65, 0x2, 0x3b, 0x66, 0x66, 0x90,
- 0x7, 0x21, 0x0, 0x6e, 0x32, 0xe1, 0x63, 0x0,
- 0x7, 0x0, 0x2a, 0x80, 0xb, 0x30, 0xb, 0x60,
- 0x13, 0x25, 0x61, 0x0, 0x82, 0x0, 0x2, 0xd0,
- 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x10,
-
- /* U+9858 "願" */
- 0x1, 0x0, 0x0, 0x20, 0x0, 0x0, 0x6, 0x20,
- 0x8, 0x76, 0x86, 0x96, 0x76, 0xc8, 0x66, 0x40,
- 0x8, 0x30, 0xa1, 0x0, 0x0, 0xa0, 0x0, 0x0,
- 0x8, 0x57, 0x96, 0xa1, 0xb6, 0x86, 0x6d, 0x40,
- 0x8, 0x58, 0x0, 0xb0, 0xd0, 0x0, 0xb, 0x10,
- 0x8, 0x4b, 0x66, 0xc0, 0xd6, 0x66, 0x6d, 0x10,
- 0x8, 0x48, 0x0, 0xb0, 0xc0, 0x0, 0xb, 0x10,
- 0x9, 0x3b, 0x76, 0xc0, 0xc6, 0x66, 0x6d, 0x10,
- 0xa, 0x11, 0x92, 0x10, 0xc0, 0x0, 0xb, 0x10,
- 0x9, 0x18, 0x93, 0x10, 0xd0, 0x0, 0xb, 0x10,
- 0x7, 0x75, 0x92, 0xa0, 0xc6, 0x66, 0x6b, 0x10,
- 0x42, 0x70, 0x92, 0x86, 0xb, 0x60, 0x64, 0x0,
- 0x23, 0x13, 0xb2, 0x22, 0x69, 0x0, 0xa, 0x70,
- 0x0, 0x7, 0xd0, 0x4, 0x60, 0x0, 0x1, 0xe0,
- 0x0, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x10,
-
- /* U+985E "類" */
- 0x0, 0x0, 0x92, 0x0, 0x0, 0x0, 0x0, 0x70,
- 0x3, 0x70, 0xd0, 0xb5, 0x67, 0x6d, 0x76, 0x62,
- 0x0, 0xb3, 0xd2, 0x90, 0x0, 0xa, 0x0, 0x10,
- 0x5, 0x76, 0xea, 0x6d, 0x2c, 0x67, 0x56, 0xe1,
- 0x2, 0x1d, 0xe7, 0x30, 0xd, 0x0, 0x0, 0xc0,
- 0x0, 0xa3, 0xd0, 0xb6, 0xe, 0x66, 0x66, 0xc0,
- 0x7, 0x10, 0xd0, 0x14, 0xd, 0x0, 0x0, 0xc0,
- 0x0, 0x0, 0x73, 0xa0, 0xd, 0x66, 0x66, 0xc0,
- 0x0, 0x0, 0xd2, 0x53, 0xd, 0x0, 0x0, 0xc0,
- 0x8, 0x76, 0xe6, 0x6c, 0x4d, 0x0, 0x0, 0xd0,
- 0x0, 0x3, 0xc3, 0x0, 0xc, 0x66, 0x66, 0xa0,
- 0x0, 0xa, 0x46, 0xb2, 0x0, 0xd4, 0x64, 0x0,
- 0x0, 0x48, 0x0, 0x58, 0x9, 0x60, 0xa, 0x70,
- 0x4, 0x60, 0x0, 0x0, 0x73, 0x0, 0x1, 0xe0,
- 0x2, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x10,
-
- /* U+986F "顯" */
- 0x0, 0x10, 0x0, 0x2, 0x0, 0x0, 0x0, 0x71,
- 0x0, 0xd6, 0x66, 0x6e, 0x67, 0x6d, 0x76, 0x63,
- 0x0, 0xd6, 0x66, 0x6c, 0x0, 0xb, 0x0, 0x10,
- 0x0, 0xc0, 0x0, 0xc, 0xc, 0x78, 0x67, 0xe1,
- 0x0, 0xd6, 0x66, 0x6a, 0xc, 0x0, 0x0, 0xc0,
- 0x0, 0x47, 0x0, 0x53, 0xd, 0x66, 0x66, 0xc0,
- 0x0, 0x82, 0x21, 0x84, 0x1c, 0x0, 0x0, 0xc0,
- 0x7, 0x5b, 0x49, 0x6b, 0x2d, 0x66, 0x66, 0xc0,
- 0x0, 0x84, 0x2, 0x74, 0xc, 0x0, 0x0, 0xc0,
- 0xc, 0x87, 0xad, 0x78, 0x6c, 0x0, 0x0, 0xc0,
- 0x2, 0x0, 0x41, 0x1, 0x3c, 0x66, 0x66, 0xa0,
- 0x0, 0x56, 0x17, 0x18, 0x10, 0xd3, 0x72, 0x0,
- 0x7, 0x64, 0x85, 0x85, 0x86, 0x70, 0xc, 0x40,
- 0x8, 0x11, 0x20, 0x10, 0x46, 0x0, 0x3, 0xc0,
- 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x10,
-
- /* U+98A8 "風" */
- 0x0, 0x9, 0x66, 0x66, 0x66, 0x67, 0x90, 0x0,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0x14, 0x80, 0x0,
- 0x0, 0xd, 0x0, 0x35, 0x9c, 0xc5, 0x80, 0x0,
- 0x0, 0xd, 0x36, 0x5d, 0x0, 0x4, 0x80, 0x0,
- 0x0, 0xd, 0x0, 0xd, 0x0, 0x4, 0x80, 0x0,
- 0x0, 0xd, 0xb, 0x6e, 0x66, 0xc4, 0x80, 0x0,
- 0x0, 0xd, 0xd, 0xd, 0x2, 0xa4, 0x80, 0x0,
- 0x0, 0xd, 0xd, 0xd, 0x2, 0xa3, 0x80, 0x0,
- 0x0, 0xc, 0xe, 0x6e, 0x67, 0xa3, 0x80, 0x0,
- 0x0, 0x1b, 0x3, 0xd, 0x1, 0x21, 0xa0, 0x0,
- 0x0, 0x48, 0x0, 0xd, 0x0, 0x92, 0xc0, 0x20,
- 0x0, 0x93, 0x23, 0x5e, 0x98, 0x8c, 0xa3, 0x70,
- 0x1, 0x90, 0xda, 0x62, 0x0, 0xb, 0x3c, 0xa0,
- 0x7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0xd0,
- 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10,
-
- /* U+98DB "飛" */
- 0x0, 0x56, 0x66, 0x66, 0x69, 0x50, 0x0, 0x0,
- 0x0, 0x11, 0x0, 0x10, 0x7, 0x20, 0xa2, 0x0,
- 0x0, 0x0, 0x37, 0xa5, 0x7, 0x1a, 0x82, 0x0,
- 0x0, 0x3, 0xe6, 0xa1, 0x7, 0x82, 0x0, 0x0,
- 0x0, 0x7b, 0x90, 0xa1, 0x5, 0x66, 0xa1, 0x0,
- 0x2, 0x12, 0x90, 0xa1, 0x1, 0xd1, 0x43, 0x60,
- 0x0, 0x2, 0x90, 0xa1, 0x3, 0x7e, 0x74, 0x80,
- 0x8, 0x67, 0xb6, 0xc7, 0x6d, 0x25, 0xdf, 0xc0,
- 0x0, 0x3, 0x80, 0xa1, 0xc, 0x2, 0x82, 0x40,
- 0x0, 0x5, 0x70, 0xa1, 0xc, 0x57, 0x30, 0x0,
- 0x0, 0x7, 0x40, 0xa1, 0xa, 0x4a, 0x50, 0x0,
- 0x0, 0xb, 0x0, 0xa1, 0x7, 0x51, 0xc0, 0x20,
- 0x0, 0x37, 0x0, 0xa2, 0x1, 0xc0, 0x0, 0x70,
- 0x1, 0x80, 0x0, 0xa2, 0x0, 0x4b, 0x40, 0xa0,
- 0x6, 0x0, 0x0, 0x60, 0x0, 0x2, 0x8c, 0xc0,
-
- /* U+98DF "食" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1e, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb9, 0x70, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x8, 0xb0, 0x19, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x7a, 0xa, 0x21, 0xb7, 0x0, 0x0,
- 0x0, 0x8, 0x70, 0x5, 0x90, 0xa, 0xfa, 0x72,
- 0x3, 0x72, 0xd6, 0x66, 0x76, 0x8c, 0x29, 0x80,
- 0x1, 0x0, 0xe0, 0x0, 0x0, 0x3a, 0x0, 0x0,
- 0x0, 0x0, 0xe6, 0x66, 0x66, 0x8a, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x0, 0x0, 0x3a, 0x0, 0x0,
- 0x0, 0x0, 0xe6, 0x66, 0x66, 0x89, 0x30, 0x0,
- 0x0, 0x0, 0xe0, 0x25, 0x10, 0xa, 0x90, 0x0,
- 0x0, 0x0, 0xe0, 0x1, 0x89, 0x91, 0x0, 0x0,
- 0x0, 0x0, 0xe0, 0x47, 0x31, 0xad, 0x50, 0x0,
- 0x0, 0x0, 0xfc, 0x40, 0x0, 0x5, 0xf2, 0x0,
- 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x31, 0x0,
-
- /* U+98EF "飯" */
- 0x0, 0x0, 0xb2, 0x0, 0x0, 0x0, 0x5, 0x0,
- 0x0, 0x4, 0xd1, 0x0, 0x54, 0x68, 0xaa, 0x40,
- 0x0, 0xb, 0x27, 0x91, 0x94, 0x0, 0x0, 0x0,
- 0x0, 0x74, 0x60, 0x69, 0x93, 0x0, 0x0, 0x0,
- 0x3, 0x60, 0x76, 0x1, 0x93, 0x0, 0x1, 0x0,
- 0x14, 0x96, 0x67, 0xb1, 0x98, 0x66, 0x6b, 0x80,
- 0x0, 0xc0, 0x0, 0xc0, 0x93, 0x40, 0xb, 0x10,
- 0x0, 0xc6, 0x66, 0xd0, 0x93, 0x50, 0xb, 0x0,
- 0x0, 0xc0, 0x0, 0xc0, 0xa2, 0x60, 0x56, 0x0,
- 0x0, 0xc6, 0x66, 0xb0, 0xb0, 0x35, 0xb0, 0x0,
- 0x0, 0xc0, 0x8, 0x0, 0xb0, 0xb, 0x60, 0x0,
- 0x0, 0xc0, 0x19, 0xa1, 0x90, 0x3c, 0x90, 0x0,
- 0x0, 0xda, 0x80, 0xa6, 0x21, 0x90, 0x97, 0x0,
- 0x0, 0x93, 0x0, 0x5, 0x17, 0x0, 0xc, 0xa1,
- 0x0, 0x0, 0x0, 0x20, 0x40, 0x0, 0x0, 0x30,
-
- /* U+98F2 "飲" */
- 0x0, 0x0, 0xa2, 0x0, 0x6, 0x60, 0x0, 0x0,
- 0x0, 0x4, 0xe1, 0x0, 0xa, 0x50, 0x0, 0x0,
- 0x0, 0xb, 0x28, 0x90, 0xc, 0x0, 0x0, 0x0,
- 0x0, 0x65, 0x50, 0x79, 0x3c, 0x66, 0x6c, 0x60,
- 0x2, 0x70, 0x75, 0x1, 0x81, 0x10, 0xc, 0x10,
- 0x14, 0x86, 0x77, 0xa3, 0x70, 0xf2, 0x35, 0x0,
- 0x0, 0xc0, 0x0, 0xc5, 0x0, 0xf1, 0x40, 0x0,
- 0x0, 0xc6, 0x66, 0xd0, 0x1, 0xe3, 0x0, 0x0,
- 0x0, 0xc0, 0x0, 0xc0, 0x3, 0xa5, 0x0, 0x0,
- 0x0, 0xc6, 0x66, 0xb0, 0x6, 0x77, 0x0, 0x0,
- 0x0, 0xc0, 0x8, 0x0, 0xa, 0x28, 0x20, 0x0,
- 0x0, 0xc0, 0x28, 0xa0, 0x1b, 0x2, 0xb0, 0x0,
- 0x0, 0xdb, 0x70, 0x90, 0x81, 0x0, 0x89, 0x0,
- 0x0, 0x72, 0x0, 0x6, 0x20, 0x0, 0xb, 0xc2,
- 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x10,
-
- /* U+9928 "館" */
- 0x0, 0x0, 0xa1, 0x0, 0x0, 0x74, 0x0, 0x0,
- 0x0, 0x5, 0xd0, 0x0, 0x20, 0xe, 0x20, 0x20,
- 0x0, 0xc, 0x3a, 0x62, 0x96, 0x68, 0x66, 0xe3,
- 0x0, 0x86, 0x30, 0xce, 0x30, 0x0, 0x4, 0x50,
- 0x4, 0x60, 0xb1, 0x0, 0x41, 0x11, 0x28, 0x0,
- 0x14, 0x96, 0x96, 0xa0, 0xb5, 0x44, 0x5c, 0x0,
- 0x0, 0xc0, 0x0, 0xc0, 0xa2, 0x0, 0x1b, 0x0,
- 0x0, 0xd6, 0x66, 0xc0, 0xa7, 0x66, 0x6b, 0x0,
- 0x0, 0xc0, 0x0, 0xc0, 0xa2, 0x0, 0x1, 0x0,
- 0x0, 0xd6, 0x66, 0xa0, 0xa7, 0x66, 0x6c, 0x60,
- 0x0, 0xc0, 0x7, 0x0, 0xa2, 0x0, 0xa, 0x20,
- 0x0, 0xc0, 0x19, 0x90, 0xa2, 0x0, 0xa, 0x20,
- 0x1, 0xeb, 0x70, 0xa0, 0xa7, 0x66, 0x6c, 0x20,
- 0x0, 0xa2, 0x0, 0x0, 0xb2, 0x0, 0x8, 0x10,
- 0x0, 0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0,
-
- /* U+9996 "首" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x16, 0x0, 0x0, 0xc2, 0x0, 0x0,
- 0x0, 0x0, 0x7, 0xa0, 0x4, 0x90, 0x0, 0x0,
- 0x0, 0x0, 0x1, 0xd0, 0x8, 0x0, 0x8, 0x30,
- 0x6, 0x66, 0x66, 0x6e, 0x66, 0x66, 0x67, 0x50,
- 0x0, 0x0, 0x0, 0x38, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb6, 0x86, 0x66, 0x6d, 0x30, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x0, 0xe6, 0x66, 0x66, 0x6e, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x0, 0xe6, 0x66, 0x66, 0x6e, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x0, 0xe6, 0x66, 0x66, 0x6e, 0x0, 0x0,
- 0x0, 0x0, 0xd0, 0x0, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0x0, 0x20, 0x0, 0x0, 0x2, 0x0, 0x0,
-
- /* U+9999 "香" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1, 0x49, 0xe5, 0x0, 0x0,
- 0x14, 0x56, 0x7d, 0x75, 0x31, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc1, 0x0, 0x0, 0x10, 0x5, 0x66,
- 0x66, 0x6d, 0x66, 0x66, 0x6e, 0x30, 0x10, 0x0,
- 0x3c, 0xd4, 0x50, 0x0, 0x0, 0x0, 0x0, 0x2c,
- 0x1c, 0x16, 0x70, 0x0, 0x0, 0x0, 0x3a, 0x10,
- 0xc1, 0x6, 0xc5, 0x0, 0x0, 0x57, 0x20, 0x7,
- 0x0, 0x8, 0xcf, 0x71, 0x52, 0xd, 0x66, 0x66,
- 0x66, 0xe1, 0x30, 0x0, 0x0, 0xd0, 0x0, 0x0,
- 0xc, 0x0, 0x0, 0x0, 0xd, 0x66, 0x66, 0x66,
- 0xc0, 0x0, 0x0, 0x0, 0xd0, 0x0, 0x0, 0xc,
- 0x0, 0x0, 0x0, 0xd, 0x0, 0x0, 0x0, 0xc0,
- 0x0, 0x0, 0x0, 0xd6, 0x66, 0x66, 0x6d, 0x0,
- 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x20, 0x0,
-
- /* U+99C4 "駄" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0x0,
- 0x0, 0x96, 0x66, 0x6b, 0x0, 0x97, 0x0, 0x0,
- 0x0, 0xd0, 0xa1, 0x0, 0x0, 0x93, 0x0, 0x0,
- 0x0, 0xd0, 0xa1, 0x23, 0x0, 0x93, 0x0, 0x0,
- 0x0, 0xe6, 0xc6, 0x64, 0x0, 0x92, 0x0, 0x30,
- 0x0, 0xd0, 0xa1, 0x12, 0x76, 0xc9, 0x67, 0x80,
- 0x0, 0xd6, 0xc6, 0x75, 0x0, 0xb6, 0x0, 0x0,
- 0x0, 0xd0, 0xa1, 0x0, 0x0, 0xc7, 0x0, 0x0,
- 0x0, 0xe5, 0x95, 0x5e, 0x10, 0xb6, 0x10, 0x0,
- 0x0, 0x90, 0x0, 0xd, 0x3, 0x84, 0x50, 0x0,
- 0x0, 0x24, 0x29, 0xc, 0x8, 0x30, 0xa0, 0x0,
- 0x5, 0x54, 0xc7, 0x3a, 0xb, 0x0, 0xb1, 0x0,
- 0xb, 0x46, 0x30, 0x58, 0x57, 0x60, 0x5a, 0x0,
- 0x4, 0x1, 0x21, 0xb4, 0x90, 0x77, 0xe, 0x50,
- 0x0, 0x0, 0x5f, 0x97, 0x10, 0x16, 0x4, 0xd2,
- 0x0, 0x0, 0x0, 0x11, 0x0, 0x0, 0x0, 0x0,
-
- /* U+99C5 "駅" */
- 0x0, 0x53, 0x33, 0x38, 0x13, 0x0, 0x0, 0x50,
- 0x0, 0xd3, 0xb5, 0x33, 0x2d, 0x66, 0x67, 0xc0,
- 0x0, 0xc0, 0xa2, 0x31, 0x1c, 0x0, 0x2, 0xa0,
- 0x0, 0xd6, 0xc7, 0x63, 0x1c, 0x0, 0x2, 0xa0,
- 0x0, 0xc0, 0xa2, 0x20, 0x1c, 0x0, 0x2, 0xa0,
- 0x0, 0xd6, 0xc7, 0x74, 0xd, 0x68, 0x67, 0xa0,
- 0x0, 0xc0, 0xa2, 0x0, 0xc, 0x6, 0x0, 0x0,
- 0x0, 0xd5, 0x95, 0x6d, 0x2b, 0x7, 0x0, 0x0,
- 0x0, 0x80, 0x0, 0x2a, 0x39, 0x8, 0x0, 0x0,
- 0x1, 0x23, 0x39, 0x49, 0x56, 0x6, 0x50, 0x0,
- 0x7, 0x45, 0xc4, 0x87, 0x82, 0x1, 0xc0, 0x0,
- 0xd, 0x37, 0x30, 0x84, 0xa0, 0x0, 0x98, 0x0,
- 0x4, 0x0, 0x10, 0xd4, 0x50, 0x0, 0xd, 0x80,
- 0x0, 0x0, 0x5f, 0x77, 0x0, 0x0, 0x2, 0xa3,
- 0x0, 0x0, 0x1, 0x20, 0x0, 0x0, 0x0, 0x0,
-
- /* U+9A12 "騒" */
- 0x0, 0x30, 0x0, 0x32, 0x12, 0x22, 0x27, 0x0,
- 0x0, 0xe6, 0xd6, 0x63, 0x48, 0x44, 0x6e, 0x20,
- 0x0, 0xd0, 0xc0, 0x20, 0x4, 0x40, 0x96, 0x0,
- 0x0, 0xe6, 0xd6, 0x83, 0x0, 0xa5, 0xc0, 0x0,
- 0x0, 0xd0, 0xc0, 0x0, 0x0, 0x3f, 0x40, 0x0,
- 0x0, 0xd6, 0xd6, 0xa2, 0x4, 0x94, 0xca, 0x50,
- 0x0, 0xd0, 0xc0, 0x1, 0x54, 0xd, 0x6, 0x71,
- 0x0, 0xe5, 0xc5, 0x6b, 0x56, 0x6e, 0x69, 0x30,
- 0x0, 0x40, 0x0, 0x39, 0x66, 0xd, 0xc, 0x10,
- 0x0, 0x23, 0x38, 0x48, 0x66, 0xd, 0xc, 0x0,
- 0x6, 0x36, 0xa8, 0x76, 0x79, 0x6e, 0x6d, 0x0,
- 0xc, 0x29, 0x30, 0x84, 0x10, 0xd, 0x23, 0x0,
- 0x14, 0x0, 0x0, 0xc1, 0x0, 0xd, 0x3c, 0x60,
- 0x0, 0x2, 0x7e, 0x81, 0xdc, 0xa7, 0x41, 0xc0,
- 0x0, 0x0, 0x2, 0x0, 0x20, 0x0, 0x0, 0x0,
-
- /* U+9A13 "験" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x20, 0x0, 0x50, 0x0, 0x5a, 0x0, 0x0,
- 0x0, 0xd6, 0xd6, 0x62, 0x0, 0xc8, 0x0, 0x0,
- 0x0, 0xc0, 0xc0, 0x20, 0x7, 0x80, 0x80, 0x0,
- 0x0, 0xd6, 0xd6, 0x71, 0x59, 0x0, 0x4d, 0x61,
- 0x0, 0xc0, 0xc0, 0x5, 0x88, 0x6a, 0x78, 0x60,
- 0x0, 0xd6, 0xd6, 0x91, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0xc0, 0xc0, 0x0, 0xb6, 0x6e, 0x6d, 0x20,
- 0x0, 0xd5, 0xc5, 0x96, 0xc0, 0xd, 0xc, 0x0,
- 0x0, 0x60, 0x0, 0x84, 0xc0, 0xd, 0xc, 0x0,
- 0x1, 0x24, 0x29, 0x93, 0xc6, 0x6d, 0x6d, 0x0,
- 0xa, 0x55, 0xa8, 0xb2, 0x30, 0x4b, 0x2, 0x0,
- 0x2d, 0x36, 0x20, 0xb1, 0x0, 0xb3, 0x60, 0x0,
- 0x12, 0x0, 0x1, 0xc0, 0x8, 0x50, 0x85, 0x0,
- 0x0, 0x2, 0x7e, 0x62, 0x83, 0x0, 0xb, 0xb1,
- 0x0, 0x0, 0x1, 0x13, 0x0, 0x0, 0x0, 0x10,
-
- /* U+9A57 "驗" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x20, 0x0, 0x50, 0x0, 0x77, 0x0, 0x0,
- 0x0, 0xd6, 0xc6, 0x71, 0x0, 0xc6, 0x0, 0x0,
- 0x0, 0xc0, 0xc0, 0x10, 0x8, 0x44, 0x70, 0x0,
- 0x0, 0xd6, 0xd6, 0x80, 0x38, 0x0, 0x99, 0x0,
- 0x0, 0xc0, 0xc0, 0x3, 0x86, 0x66, 0xaa, 0xc2,
- 0x0, 0xd6, 0xd6, 0x83, 0x0, 0x0, 0x1, 0x0,
- 0x0, 0xc0, 0xc0, 0x1, 0xc6, 0xc6, 0x8c, 0x40,
- 0x0, 0xd5, 0xc4, 0xa5, 0xb0, 0xb5, 0x49, 0x10,
- 0x0, 0xa0, 0x0, 0xb2, 0xb0, 0xb5, 0x49, 0x10,
- 0x1, 0x23, 0x26, 0xb1, 0xd6, 0xa6, 0x8b, 0x10,
- 0x7, 0x63, 0xa8, 0xc0, 0x2c, 0x10, 0x65, 0x0,
- 0xc, 0x54, 0x40, 0xc0, 0x5a, 0x0, 0xa2, 0x0,
- 0x13, 0x0, 0x2, 0xb0, 0xb5, 0x70, 0xa9, 0x10,
- 0x0, 0x1, 0x7f, 0x48, 0x30, 0xa7, 0x13, 0x90,
- 0x0, 0x0, 0x1, 0x21, 0x0, 0x12, 0x0, 0x10,
-
- /* U+9AD4 "體" */
- 0x0, 0x10, 0x3, 0x0, 0x1, 0xb0, 0xb0, 0x0,
- 0x0, 0xc6, 0x6d, 0x30, 0x1, 0xc0, 0xc0, 0x30,
- 0x0, 0xc6, 0x7b, 0x0, 0xd6, 0xd5, 0xd7, 0xc0,
- 0x0, 0xc3, 0x7b, 0x0, 0xd4, 0xd3, 0xc6, 0x90,
- 0x3, 0xc3, 0x7b, 0x20, 0xd3, 0xc2, 0xc5, 0x90,
- 0xb, 0x76, 0x67, 0xc5, 0xd4, 0xd3, 0xc6, 0xa0,
- 0x47, 0x86, 0x69, 0x60, 0x71, 0x11, 0x12, 0x60,
- 0x0, 0xd0, 0xa, 0x25, 0x76, 0x66, 0x66, 0x72,
- 0x0, 0xd6, 0x6c, 0x10, 0x67, 0x66, 0x6a, 0x50,
- 0x0, 0xd0, 0xa, 0x10, 0x84, 0x0, 0x9, 0x30,
- 0x0, 0xd6, 0x6c, 0x10, 0x88, 0x66, 0x6b, 0x30,
- 0x0, 0xd0, 0xa, 0x10, 0x46, 0x0, 0x77, 0x0,
- 0x0, 0xd0, 0xa, 0x10, 0x4, 0x80, 0xa1, 0x0,
- 0x0, 0xd1, 0x8e, 0x16, 0x66, 0x86, 0xa6, 0xc3,
- 0x0, 0x30, 0x1, 0x2, 0x0, 0x0, 0x0, 0x0,
-
- /* U+9AD8 "高" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2b, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x63, 0x0, 0x0, 0x15, 0x6, 0x76,
- 0x66, 0x66, 0x66, 0x66, 0x66, 0x60, 0x0, 0x8,
- 0x66, 0x66, 0x66, 0x80, 0x0, 0x0, 0x0, 0xd1,
- 0x0, 0x0, 0x38, 0x0, 0x0, 0x0, 0xd, 0x66,
- 0x66, 0x68, 0x80, 0x0, 0x0, 0x0, 0x90, 0x0,
- 0x0, 0x24, 0x0, 0x0, 0xa, 0x66, 0x66, 0x66,
- 0x66, 0x66, 0xd2, 0x0, 0xd0, 0x2, 0x0, 0x0,
- 0x30, 0xe, 0x0, 0xd, 0x0, 0xe6, 0x66, 0x7d,
- 0x0, 0xe0, 0x0, 0xd0, 0xd, 0x0, 0x1, 0xb0,
- 0xe, 0x0, 0xd, 0x0, 0xe6, 0x66, 0x6b, 0x0,
- 0xe0, 0x0, 0xd0, 0x9, 0x0, 0x1, 0x60, 0xe,
- 0x0, 0xd, 0x0, 0x0, 0x0, 0x0, 0x6b, 0xd0,
- 0x0, 0x30, 0x0, 0x0, 0x0, 0x0, 0x33, 0x0,
-
- /* U+9AEA "髪" */
- 0x0, 0x2, 0x0, 0x4, 0x0, 0x0, 0x30, 0x0,
- 0x0, 0xe, 0x66, 0x66, 0x10, 0x6, 0xc3, 0x0,
- 0x0, 0xe, 0x66, 0x6a, 0x3, 0xa6, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0x14, 0x24, 0x0, 0x5b, 0x0,
- 0x0, 0xe, 0x55, 0x55, 0x10, 0x29, 0x71, 0x0,
- 0x5, 0x7a, 0x96, 0x67, 0x95, 0x50, 0x4, 0x60,
- 0x0, 0x8, 0x80, 0x73, 0x0, 0x3, 0xa9, 0x40,
- 0x0, 0xcb, 0x76, 0x5c, 0x16, 0x75, 0x0, 0x0,
- 0x0, 0x20, 0x0, 0x77, 0x10, 0x0, 0x3, 0x0,
- 0x6, 0x65, 0x56, 0xd7, 0x55, 0x55, 0x6a, 0x70,
- 0x0, 0x0, 0x9, 0xa6, 0x66, 0x68, 0x10, 0x0,
- 0x0, 0x0, 0x78, 0x60, 0x0, 0xa9, 0x10, 0x0,
- 0x0, 0x7, 0x60, 0x8, 0x5c, 0x50, 0x0, 0x0,
- 0x1, 0x73, 0x0, 0x29, 0xab, 0x40, 0x0, 0x0,
- 0x3, 0x2, 0x67, 0x61, 0x1, 0x7c, 0xca, 0x70,
- 0x0, 0x33, 0x0, 0x0, 0x0, 0x0, 0x14, 0x10,
-
- /* U+9B5A "魚" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb, 0x60, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x6, 0xc1, 0x0, 0x60, 0x0, 0x0, 0x0,
- 0x3, 0xc6, 0x66, 0xbc, 0x20, 0x0, 0x0, 0x3,
- 0xa0, 0x0, 0x9, 0x0, 0x10, 0x0, 0x3, 0x9b,
- 0x66, 0x6b, 0x66, 0x6e, 0x50, 0x4, 0x41, 0xb0,
- 0x0, 0xe0, 0x0, 0xd1, 0x0, 0x0, 0x1b, 0x0,
- 0xe, 0x0, 0xd, 0x10, 0x0, 0x1, 0xd6, 0x66,
- 0xe6, 0x66, 0xe1, 0x0, 0x0, 0x1b, 0x0, 0xe,
- 0x0, 0xd, 0x10, 0x0, 0x1, 0xd6, 0x66, 0xd6,
- 0x66, 0xe1, 0x0, 0x0, 0x16, 0x0, 0x0, 0x0,
- 0x5, 0x0, 0x0, 0x6, 0x4, 0x30, 0x56, 0x1,
- 0x92, 0x0, 0x5, 0xa0, 0xe, 0x0, 0xc5, 0x2,
- 0xf4, 0x3, 0xe2, 0x0, 0xd2, 0x6, 0x70, 0x8,
- 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+9CE5 "鳥" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc, 0x30, 0x0, 0x0, 0x0, 0x0,
- 0x2, 0x3, 0x50, 0x0, 0x30, 0x0, 0x0, 0x0,
- 0xd6, 0x66, 0x66, 0x6c, 0x50, 0x0, 0x0, 0xd,
- 0x66, 0x66, 0x66, 0xc2, 0x0, 0x0, 0x0, 0xd0,
- 0x0, 0x0, 0xa, 0x20, 0x0, 0x0, 0xd, 0x66,
- 0x66, 0x66, 0xc3, 0x0, 0x0, 0x0, 0xd0, 0x0,
- 0x0, 0x2, 0x0, 0x62, 0x0, 0xd, 0x66, 0x66,
- 0x66, 0x66, 0x66, 0x40, 0x0, 0xd6, 0x66, 0x66,
- 0x66, 0x67, 0xc0, 0x0, 0x6, 0x0, 0x0, 0x3,
- 0x0, 0x4a, 0x0, 0x3, 0x4, 0x4, 0x70, 0x3b,
- 0x6, 0x80, 0x0, 0x80, 0xa4, 0xa, 0x60, 0x96,
- 0x85, 0x0, 0x78, 0x5, 0x80, 0x24, 0x11, 0x1c,
- 0x30, 0x9, 0x10, 0x1, 0x0, 0x3, 0x9d, 0xd0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x61, 0x0,
-
- /* U+9E97 "麗" */
- 0x2, 0x33, 0x33, 0x54, 0x23, 0x33, 0x38, 0x10,
- 0x2, 0x73, 0x33, 0x62, 0x27, 0x33, 0x63, 0x10,
- 0x0, 0xc6, 0x86, 0xd0, 0xe, 0x86, 0xd2, 0x0,
- 0x0, 0xc0, 0x81, 0xc0, 0xd, 0x29, 0xc0, 0x0,
- 0x0, 0xa0, 0x10, 0x96, 0x6a, 0x2, 0x94, 0x0,
- 0x0, 0x79, 0x66, 0xa6, 0x79, 0x66, 0x79, 0x20,
- 0x0, 0x76, 0x0, 0xc0, 0x9, 0x20, 0x23, 0x0,
- 0x0, 0x7a, 0x66, 0xd6, 0x6b, 0x76, 0x9a, 0x0,
- 0x0, 0x7a, 0x66, 0xc6, 0x6b, 0x76, 0x97, 0x0,
- 0x0, 0x85, 0xb, 0x0, 0x8, 0x40, 0x21, 0x0,
- 0x0, 0xa3, 0xd, 0x68, 0x89, 0x25, 0xc8, 0x0,
- 0x0, 0xc0, 0xc, 0x0, 0x9, 0x73, 0x0, 0x50,
- 0x2, 0x70, 0xc, 0x47, 0x48, 0x20, 0x0, 0xb0,
- 0x7, 0x0, 0x1d, 0x60, 0x5, 0xdc, 0xcd, 0xc0,
- 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+9EBC "麼" */
- 0x0, 0x0, 0x0, 0x5, 0x70, 0x0, 0x0, 0x0,
- 0x0, 0x50, 0x0, 0x0, 0xb2, 0x0, 0x8, 0x40,
- 0x0, 0xd6, 0x66, 0x96, 0x66, 0x68, 0x66, 0x50,
- 0x0, 0xc0, 0x0, 0xd1, 0x0, 0x1c, 0x0, 0x0,
- 0x0, 0xc3, 0x77, 0xd7, 0x57, 0x8d, 0x68, 0x40,
- 0x0, 0xc0, 0xa, 0xd7, 0x10, 0xba, 0x70, 0x0,
- 0x0, 0xc0, 0x65, 0xc3, 0x77, 0x6a, 0x4a, 0x20,
- 0x0, 0xc5, 0x30, 0xc0, 0x33, 0x29, 0x5, 0x70,
- 0x0, 0xb0, 0x0, 0x27, 0xb0, 0x0, 0x0, 0x0,
- 0x0, 0xb0, 0x4, 0x73, 0x0, 0x5e, 0x20, 0x0,
- 0x1, 0x90, 0x9d, 0x97, 0x6b, 0x81, 0x0, 0x0,
- 0x4, 0x50, 0x0, 0x6, 0x71, 0x2, 0x60, 0x0,
- 0x8, 0x0, 0x37, 0x73, 0x34, 0x55, 0xb6, 0x0,
- 0x6, 0x0, 0x9d, 0xa7, 0x53, 0x10, 0x2b, 0x0,
- 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+9EC4 "黄" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc2, 0x0, 0xb3, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0x0, 0xc, 0x10, 0x72, 0x0, 0x7,
- 0x66, 0xe6, 0x66, 0xd6, 0x66, 0x40, 0x0, 0x0,
- 0xd, 0x0, 0xc, 0x10, 0x4, 0x3, 0x76, 0x66,
- 0xa6, 0xa6, 0x96, 0x66, 0xa6, 0x0, 0x1, 0x0,
- 0xd, 0x0, 0x2, 0x0, 0x0, 0x0, 0xc6, 0x66,
- 0xe6, 0x66, 0xc5, 0x0, 0x0, 0xc, 0x10, 0xd,
- 0x0, 0xb, 0x20, 0x0, 0x0, 0xc6, 0x66, 0xe6,
- 0x66, 0xc2, 0x0, 0x0, 0xc, 0x10, 0xd, 0x0,
- 0xb, 0x20, 0x0, 0x0, 0xc6, 0x66, 0xd6, 0x66,
- 0xc2, 0x0, 0x0, 0x6, 0x2c, 0x30, 0x4, 0x44,
- 0x0, 0x0, 0x0, 0x3d, 0x70, 0x0, 0x3, 0xb9,
- 0x10, 0x0, 0x89, 0x10, 0x0, 0x0, 0x0, 0x9d,
- 0x0, 0x51, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50,
-
- /* U+9ED2 "黒" */
- 0x0, 0x30, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0,
- 0xe6, 0x66, 0x7b, 0x66, 0x6e, 0x40, 0x0, 0xd0,
- 0x0, 0x2a, 0x0, 0xd, 0x0, 0x0, 0xd6, 0x66,
- 0x7c, 0x66, 0x6e, 0x0, 0x0, 0xd0, 0x0, 0x2a,
- 0x0, 0xd, 0x0, 0x0, 0xe6, 0x66, 0x7c, 0x66,
- 0x6e, 0x0, 0x0, 0x60, 0x0, 0x2a, 0x0, 0x3,
- 0x0, 0x4, 0x66, 0x66, 0x7c, 0x66, 0x6d, 0x70,
- 0x1, 0x10, 0x0, 0x2a, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x2a, 0x0, 0x1, 0xd3, 0x57, 0x66,
- 0x66, 0x66, 0x66, 0x67, 0x64, 0x0, 0x60, 0x35,
- 0x0, 0x90, 0x8, 0x20, 0x3, 0x90, 0xd, 0x0,
- 0x87, 0x4, 0xd0, 0xd, 0x50, 0xa, 0x10, 0x36,
- 0x0, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+9EDE "點" */
- 0x3, 0x0, 0x0, 0x30, 0x0, 0xa3, 0x0, 0x0,
- 0x9, 0x66, 0xc6, 0xd2, 0x0, 0xd0, 0x0, 0x0,
- 0x9, 0x42, 0xb8, 0xc0, 0x0, 0xd0, 0x0, 0x0,
- 0x9, 0x2a, 0xc4, 0xc0, 0x0, 0xd5, 0x56, 0xa0,
- 0x9, 0x67, 0xd6, 0xd0, 0x0, 0xd0, 0x0, 0x0,
- 0x6, 0x1, 0xb0, 0x50, 0x0, 0xd0, 0x0, 0x0,
- 0x0, 0x11, 0xb1, 0x70, 0x0, 0xd0, 0x0, 0x0,
- 0x4, 0x65, 0xc5, 0x51, 0x96, 0xe6, 0x6b, 0x10,
- 0x0, 0x1, 0xb0, 0x41, 0xc0, 0x0, 0xd, 0x0,
- 0x4, 0x69, 0xa5, 0x10, 0xc0, 0x0, 0xd, 0x0,
- 0xb, 0x50, 0x0, 0x40, 0xc0, 0x0, 0xd, 0x0,
- 0x2, 0x6, 0x9, 0x38, 0xc0, 0x0, 0xd, 0x0,
- 0x9, 0x9, 0x2a, 0x8, 0xd6, 0x66, 0x6d, 0x0,
- 0x2a, 0x2, 0x0, 0x0, 0xc0, 0x0, 0xd, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x40, 0x0, 0x1, 0x0,
-
- /* U+9EE8 "黨" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2, 0x50, 0xb, 0x30, 0x18, 0x0, 0x0,
- 0x0, 0x0, 0x88, 0xb, 0x0, 0x96, 0x0, 0x0,
- 0x0, 0x95, 0x58, 0x5b, 0x57, 0x75, 0x5a, 0x70,
- 0x6, 0x70, 0x47, 0x66, 0x66, 0x91, 0x18, 0x10,
- 0x8, 0x10, 0x56, 0x0, 0x0, 0xc0, 0x10, 0x0,
- 0x0, 0x0, 0x5a, 0x66, 0x66, 0xc0, 0x0, 0x0,
- 0x0, 0xa, 0x66, 0x66, 0x66, 0x66, 0xb2, 0x0,
- 0x0, 0xd, 0x8, 0x18, 0x30, 0x90, 0xc0, 0x0,
- 0x0, 0xd, 0x3, 0x48, 0x35, 0x20, 0xc0, 0x0,
- 0x0, 0xd, 0x66, 0x6b, 0x86, 0x66, 0xa0, 0x0,
- 0x0, 0x47, 0x55, 0x5b, 0x85, 0x55, 0x97, 0x0,
- 0x5, 0x66, 0x66, 0x6b, 0x86, 0x66, 0x6b, 0x80,
- 0x1, 0x13, 0x2, 0x30, 0x5, 0x0, 0x13, 0x0,
- 0x0, 0x94, 0x0, 0xb0, 0x9, 0x20, 0xb, 0x10,
- 0x2, 0x70, 0x0, 0x30, 0x2, 0x0, 0x3, 0x0,
-
- /* U+9F13 "鼓" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb4, 0x0, 0x0, 0xd, 0x10, 0x0,
- 0x0, 0x0, 0xc0, 0x0, 0x20, 0xd, 0x0, 0x0,
- 0x7, 0x66, 0xd6, 0x67, 0x60, 0xd, 0x0, 0x20,
- 0x0, 0x0, 0xc0, 0x0, 0x57, 0x6e, 0x66, 0xa1,
- 0x1, 0x86, 0xb6, 0x6a, 0x30, 0xd, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1, 0x0, 0xd, 0x0, 0x0,
- 0x0, 0xd6, 0x66, 0x6e, 0x38, 0x69, 0x6b, 0x90,
- 0x0, 0xd1, 0x0, 0x1b, 0x4, 0x10, 0xd, 0x10,
- 0x0, 0xd6, 0x66, 0x6c, 0x0, 0x70, 0x59, 0x0,
- 0x0, 0x70, 0x0, 0x25, 0x0, 0x81, 0xc1, 0x0,
- 0x0, 0x26, 0x1, 0xd0, 0x0, 0x2e, 0x60, 0x0,
- 0x0, 0xb, 0x4, 0x20, 0x0, 0x6d, 0x80, 0x0,
- 0x0, 0x14, 0x48, 0x76, 0x47, 0x70, 0x9b, 0x10,
- 0x1e, 0xc8, 0x41, 0x2, 0x73, 0x0, 0x8, 0xd3,
- 0x0, 0x0, 0x0, 0x23, 0x0, 0x0, 0x0, 0x0,
-
- /* U+9F3B "鼻" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xc, 0x10, 0x1, 0x0, 0x0, 0x0,
- 0xb, 0x67, 0x76, 0x66, 0xe1, 0x0, 0x0, 0x0,
- 0xc6, 0x66, 0x66, 0x6c, 0x0, 0x0, 0x0, 0xc,
- 0x10, 0x0, 0x0, 0xc0, 0x0, 0x0, 0x0, 0xc6,
- 0x66, 0x66, 0x6c, 0x0, 0x0, 0x0, 0xc, 0x66,
- 0x66, 0x66, 0xc0, 0x0, 0x0, 0xb, 0x65, 0x55,
- 0x85, 0x55, 0xb5, 0x0, 0x0, 0xd6, 0x66, 0x6d,
- 0x66, 0x6c, 0x20, 0x0, 0xc, 0x0, 0x0, 0xb0,
- 0x0, 0xa2, 0x0, 0x0, 0xd6, 0x66, 0x68, 0x66,
- 0x6c, 0x20, 0x4, 0x66, 0x66, 0x66, 0x66, 0x66,
- 0x67, 0xc1, 0x11, 0x0, 0xa5, 0x0, 0xc, 0x0,
- 0x0, 0x0, 0x0, 0x2c, 0x0, 0x0, 0xc0, 0x0,
- 0x0, 0x0, 0x3a, 0x20, 0x0, 0xc, 0x0, 0x0,
- 0x0, 0x33, 0x0, 0x0, 0x0, 0x40, 0x0, 0x0,
-
- /* U+F001 "" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x49, 0xdc,
- 0x0, 0x0, 0x0, 0x0, 0x16, 0xbf, 0xff, 0xff,
- 0x0, 0x0, 0x3, 0x8d, 0xff, 0xff, 0xff, 0xff,
- 0x0, 0x0, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xff,
- 0x0, 0x0, 0xff, 0xff, 0xea, 0x51, 0x0, 0xff,
- 0x0, 0x0, 0xff, 0x83, 0x0, 0x0, 0x0, 0xff,
- 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff,
- 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff,
- 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0xff,
- 0x0, 0x0, 0xff, 0x0, 0x0, 0x2b, 0xff, 0xff,
- 0x0, 0x0, 0xff, 0x0, 0x0, 0xdf, 0xff, 0xff,
- 0x2b, 0xff, 0xff, 0x0, 0x0, 0xdf, 0xff, 0xfd,
- 0xdf, 0xff, 0xff, 0x0, 0x0, 0x2b, 0xff, 0xb2,
- 0xdf, 0xff, 0xfd, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x2b, 0xff, 0xb2, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+F008 "" */
- 0xd0, 0xf, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xd,
- 0xff, 0xff, 0xc8, 0x88, 0x88, 0x8c, 0xff, 0xff,
- 0xf0, 0xf, 0x80, 0x0, 0x0, 0x8, 0xf0, 0xf,
- 0xf0, 0xf, 0x80, 0x0, 0x0, 0x8, 0xf0, 0xf,
- 0xff, 0xff, 0x80, 0x0, 0x0, 0x8, 0xff, 0xff,
- 0xf0, 0xf, 0xec, 0xcc, 0xcc, 0xce, 0xf0, 0xf,
- 0xf0, 0xf, 0xec, 0xcc, 0xcc, 0xce, 0xf0, 0xf,
- 0xff, 0xff, 0x80, 0x0, 0x0, 0x8, 0xff, 0xff,
- 0xf0, 0xf, 0x80, 0x0, 0x0, 0x8, 0xf0, 0xf,
- 0xf0, 0xf, 0x80, 0x0, 0x0, 0x8, 0xf0, 0xf,
- 0xff, 0xff, 0xc8, 0x88, 0x88, 0x8c, 0xff, 0xff,
- 0xd0, 0xf, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xd,
-
- /* U+F00B "" */
- 0xdf, 0xff, 0x73, 0xff, 0xff, 0xff, 0xff, 0xfd,
- 0xff, 0xff, 0xa5, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xa5, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xdf, 0xff, 0x73, 0xff, 0xff, 0xff, 0xff, 0xfd,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xdf, 0xff, 0x73, 0xff, 0xff, 0xff, 0xff, 0xfd,
- 0xff, 0xff, 0xa5, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xa5, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xdf, 0xff, 0x73, 0xff, 0xff, 0xff, 0xff, 0xfd,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xdf, 0xff, 0x73, 0xff, 0xff, 0xff, 0xff, 0xfd,
- 0xff, 0xff, 0xa5, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xa5, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xdf, 0xff, 0x73, 0xff, 0xff, 0xff, 0xff, 0xfd,
-
- /* U+F00C "" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0xb1,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbf, 0xfc,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xb, 0xff, 0xfb,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xbf, 0xff, 0xc0,
- 0x1b, 0xa0, 0x0, 0x0, 0xb, 0xff, 0xfc, 0x0,
- 0xcf, 0xfb, 0x0, 0x0, 0xbf, 0xff, 0xc0, 0x0,
- 0xbf, 0xff, 0xb0, 0xb, 0xff, 0xfc, 0x0, 0x0,
- 0xc, 0xff, 0xfb, 0xbf, 0xff, 0xc0, 0x0, 0x0,
- 0x0, 0xcf, 0xff, 0xff, 0xfb, 0x0, 0x0, 0x0,
- 0x0, 0xc, 0xff, 0xff, 0xb0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xbf, 0xfb, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb, 0xb0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+F00D "" */
- 0x3, 0x0, 0x0, 0x0, 0x3, 0x8, 0xfc, 0x10,
- 0x0, 0x1c, 0xf8, 0xff, 0xfc, 0x10, 0x1c, 0xff,
- 0xf5, 0xff, 0xfc, 0x2c, 0xff, 0xf5, 0x5, 0xff,
- 0xff, 0xff, 0xf5, 0x0, 0x5, 0xff, 0xff, 0xf5,
- 0x0, 0x0, 0x1d, 0xff, 0xfd, 0x10, 0x0, 0x1c,
- 0xff, 0xff, 0xfc, 0x10, 0x1c, 0xff, 0xf9, 0xff,
- 0xfc, 0x1c, 0xff, 0xf5, 0x5, 0xff, 0xfc, 0xdf,
- 0xf5, 0x0, 0x5, 0xff, 0xd1, 0xa4, 0x0, 0x0,
- 0x4, 0xa1,
-
- /* U+F011 "" */
- 0x0, 0x0, 0x0, 0x4f, 0xe0, 0x0, 0x0, 0x0,
- 0x0, 0x2, 0x10, 0x6f, 0xf1, 0x3, 0x10, 0x0,
- 0x0, 0x5f, 0xd0, 0x6f, 0xf1, 0x3f, 0xd1, 0x0,
- 0x3, 0xff, 0xf1, 0x6f, 0xf1, 0x5f, 0xfd, 0x0,
- 0xd, 0xff, 0x40, 0x6f, 0xf1, 0x9, 0xff, 0x70,
- 0x4f, 0xf7, 0x0, 0x6f, 0xf1, 0x0, 0xcf, 0xe0,
- 0x9f, 0xf0, 0x0, 0x6f, 0xf1, 0x0, 0x5f, 0xf3,
- 0xbf, 0xc0, 0x0, 0x6f, 0xf1, 0x0, 0x2f, 0xf5,
- 0xbf, 0xc0, 0x0, 0x4f, 0xe0, 0x0, 0x1f, 0xf6,
- 0xaf, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x4f, 0xf4,
- 0x6f, 0xf4, 0x0, 0x0, 0x0, 0x0, 0xaf, 0xf0,
- 0xf, 0xfe, 0x10, 0x0, 0x0, 0x5, 0xff, 0xa0,
- 0x6, 0xff, 0xd3, 0x0, 0x0, 0x7f, 0xff, 0x20,
- 0x0, 0x9f, 0xff, 0xda, 0xbe, 0xff, 0xf4, 0x0,
- 0x0, 0x6, 0xff, 0xff, 0xff, 0xfd, 0x30, 0x0,
- 0x0, 0x0, 0x17, 0xbd, 0xca, 0x50, 0x0, 0x0,
-
- /* U+F013 "" */
- 0x0, 0x0, 0x0, 0x8b, 0xb8, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0x0,
- 0x0, 0x30, 0x6, 0xff, 0xff, 0x60, 0x3, 0x0,
- 0x4, 0xfd, 0xdf, 0xff, 0xff, 0xfd, 0xef, 0x40,
- 0xd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd0,
- 0x4f, 0xff, 0xff, 0xf9, 0x9f, 0xff, 0xff, 0xf4,
- 0x8, 0xff, 0xff, 0x20, 0x2, 0xff, 0xff, 0x80,
- 0x0, 0xff, 0xf9, 0x0, 0x0, 0x9f, 0xff, 0x0,
- 0x0, 0xff, 0xf9, 0x0, 0x0, 0x9f, 0xff, 0x0,
- 0x8, 0xff, 0xff, 0x20, 0x2, 0xff, 0xff, 0x80,
- 0x4f, 0xff, 0xff, 0xf9, 0x9f, 0xff, 0xff, 0xf4,
- 0xd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd0,
- 0x4, 0xfe, 0xdf, 0xff, 0xff, 0xfd, 0xdf, 0x40,
- 0x0, 0x30, 0x6, 0xff, 0xff, 0x60, 0x3, 0x0,
- 0x0, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x8b, 0xb8, 0x0, 0x0, 0x0,
-
- /* U+F015 "" */
- 0x0, 0x0, 0x0, 0x3, 0xdd, 0x30, 0x3f, 0xf3,
- 0x0, 0x0, 0x0, 0x0, 0x6f, 0xff, 0xf5, 0x4f,
- 0xf4, 0x0, 0x0, 0x0, 0x9, 0xff, 0x99, 0xff,
- 0xbf, 0xf4, 0x0, 0x0, 0x1, 0xbf, 0xf6, 0x22,
- 0x6f, 0xff, 0xf4, 0x0, 0x0, 0x2d, 0xfe, 0x35,
- 0xff, 0x53, 0xef, 0xf4, 0x0, 0x4, 0xff, 0xc1,
- 0x8f, 0xff, 0xf8, 0x2d, 0xfe, 0x40, 0x7f, 0xfa,
- 0x1a, 0xff, 0xff, 0xff, 0xa1, 0xaf, 0xf7, 0xcf,
- 0x82, 0xdf, 0xff, 0xff, 0xff, 0xfd, 0x28, 0xfc,
- 0x14, 0xe, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0,
- 0x41, 0x0, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xf0, 0x0, 0x0, 0xf, 0xff, 0xf9, 0x0, 0x8f,
- 0xff, 0xf0, 0x0, 0x0, 0xf, 0xff, 0xf8, 0x0,
- 0x8f, 0xff, 0xf0, 0x0, 0x0, 0xf, 0xff, 0xf8,
- 0x0, 0x8f, 0xff, 0xf0, 0x0, 0x0, 0xe, 0xff,
- 0xf6, 0x0, 0x6f, 0xff, 0xe0, 0x0,
-
- /* U+F019 "" */
- 0x0, 0x0, 0x0, 0xdf, 0xfd, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0x0,
- 0x0, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x0,
- 0x0, 0xb, 0xff, 0xff, 0xff, 0xff, 0xb0, 0x0,
- 0x0, 0x0, 0xbf, 0xff, 0xff, 0xfb, 0x0, 0x0,
- 0x0, 0x0, 0xb, 0xff, 0xff, 0xb0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xbf, 0xfb, 0x0, 0x0, 0x0,
- 0xdf, 0xff, 0xfc, 0x1b, 0xb1, 0xcf, 0xff, 0xfd,
- 0xff, 0xff, 0xff, 0xc2, 0x2c, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xe0, 0xff,
- 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd,
-
- /* U+F01C "" */
- 0x0, 0x4, 0xef, 0xff, 0xff, 0xff, 0xfe, 0x40,
- 0x0, 0x0, 0x1e, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xe1, 0x0, 0x0, 0xaf, 0xb0, 0x0, 0x0, 0x0,
- 0xb, 0xfa, 0x0, 0x5, 0xff, 0x10, 0x0, 0x0,
- 0x0, 0x1, 0xff, 0x50, 0x1e, 0xf6, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x6f, 0xe1, 0xaf, 0xb0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xb, 0xfa, 0xff, 0xff,
- 0xff, 0x80, 0x0, 0x8, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf1, 0x0, 0x1f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xf8,
-
- /* U+F021 "" */
- 0x0, 0x0, 0x6, 0xbd, 0xda, 0x50, 0x2, 0xff,
- 0x0, 0x5, 0xef, 0xff, 0xff, 0xfe, 0x42, 0xff,
- 0x0, 0x7f, 0xff, 0xa7, 0x7b, 0xff, 0xf9, 0xff,
- 0x5, 0xff, 0xc1, 0x0, 0x0, 0x2c, 0xff, 0xff,
- 0xe, 0xfc, 0x0, 0x0, 0x2, 0x22, 0xdf, 0xff,
- 0x5f, 0xf2, 0x0, 0x0, 0xf, 0xff, 0xff, 0xff,
- 0x8f, 0xb0, 0x0, 0x0, 0xf, 0xff, 0xff, 0xff,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xff, 0xff, 0xff, 0xf0, 0x0, 0x0, 0xb, 0xf8,
- 0xff, 0xff, 0xff, 0xf0, 0x0, 0x0, 0x2f, 0xf4,
- 0xff, 0xfd, 0x22, 0x20, 0x0, 0x0, 0xcf, 0xe0,
- 0xff, 0xff, 0xc2, 0x0, 0x0, 0x2c, 0xff, 0x40,
- 0xff, 0x9f, 0xff, 0xb7, 0x6a, 0xff, 0xf7, 0x0,
- 0xff, 0x24, 0xdf, 0xff, 0xff, 0xfe, 0x50, 0x0,
- 0xff, 0x20, 0x5, 0xac, 0xdb, 0x60, 0x0, 0x0,
-
- /* U+F026 "" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8d,
- 0x0, 0x0, 0x8, 0xff, 0x0, 0x0, 0x8f, 0xff,
- 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff,
- 0x0, 0x0, 0x8f, 0xff, 0x0, 0x0, 0x8, 0xff,
- 0x0, 0x0, 0x0, 0x8d, 0x0, 0x0, 0x0, 0x0,
-
- /* U+F027 "" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x8d, 0x0, 0x0, 0x0, 0x0, 0x8, 0xff,
- 0x0, 0x0, 0x0, 0x0, 0x8f, 0xff, 0x0, 0x0,
- 0xcf, 0xff, 0xff, 0xff, 0x1, 0x50, 0xff, 0xff,
- 0xff, 0xff, 0x6, 0xf7, 0xff, 0xff, 0xff, 0xff,
- 0x0, 0xbe, 0xff, 0xff, 0xff, 0xff, 0x0, 0xae,
- 0xff, 0xff, 0xff, 0xff, 0x5, 0xf8, 0xdf, 0xff,
- 0xff, 0xff, 0x2, 0x60, 0x0, 0x0, 0x9f, 0xff,
- 0x0, 0x0, 0x0, 0x0, 0x9, 0xff, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x9e, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0,
-
- /* U+F028 "" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0x10,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f,
- 0xd2, 0x0, 0x0, 0x0, 0x0, 0x8d, 0x0, 0x0,
- 0x3, 0xee, 0x10, 0x0, 0x0, 0x8, 0xff, 0x0,
- 0xa, 0xb1, 0x2f, 0xb0, 0x0, 0x0, 0x8f, 0xff,
- 0x0, 0x5, 0xfc, 0x7, 0xf4, 0xdf, 0xff, 0xff,
- 0xff, 0x2, 0x50, 0x5f, 0x60, 0xf9, 0xff, 0xff,
- 0xff, 0xff, 0x6, 0xf7, 0xd, 0xc0, 0xbd, 0xff,
- 0xff, 0xff, 0xff, 0x0, 0xae, 0x9, 0xf0, 0x9f,
- 0xff, 0xff, 0xff, 0xff, 0x0, 0xae, 0x9, 0xf0,
- 0x8f, 0xff, 0xff, 0xff, 0xff, 0x6, 0xf7, 0xd,
- 0xc0, 0xad, 0xdf, 0xff, 0xff, 0xff, 0x2, 0x50,
- 0x5f, 0x60, 0xe9, 0x0, 0x0, 0x8f, 0xff, 0x0,
- 0x5, 0xfc, 0x6, 0xf4, 0x0, 0x0, 0x8, 0xff,
- 0x0, 0xa, 0xb1, 0x2f, 0xb0, 0x0, 0x0, 0x0,
- 0x8d, 0x0, 0x0, 0x2, 0xee, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x1f, 0xd2, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0x10, 0x0,
-
- /* U+F03E "" */
- 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8,
- 0xff, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0x20, 0x2f, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xfc, 0x0, 0xc, 0xff, 0xff, 0xee, 0xff, 0xff,
- 0xff, 0x20, 0x2f, 0xff, 0xfe, 0x22, 0xef, 0xff,
- 0xff, 0xfc, 0xff, 0xff, 0xe2, 0x0, 0x2e, 0xff,
- 0xff, 0xfe, 0x4e, 0xfe, 0x20, 0x0, 0x2, 0xff,
- 0xff, 0xe2, 0x2, 0xc2, 0x0, 0x0, 0x0, 0xff,
- 0xff, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff,
- 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8,
-
- /* U+F043 "" */
- 0x0, 0x0, 0x4e, 0x40, 0x0, 0x0, 0x0, 0xb,
- 0xfb, 0x0, 0x0, 0x0, 0x1, 0xff, 0xf1, 0x0,
- 0x0, 0x0, 0x9f, 0xff, 0x90, 0x0, 0x0, 0x2f,
- 0xff, 0xff, 0x30, 0x0, 0xc, 0xff, 0xff, 0xfc,
- 0x0, 0x7, 0xff, 0xff, 0xff, 0xf8, 0x2, 0xff,
- 0xff, 0xff, 0xff, 0xf2, 0x9f, 0xff, 0xff, 0xff,
- 0xff, 0x9e, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff,
- 0x2f, 0xff, 0xff, 0xff, 0xfe, 0xf2, 0xbf, 0xff,
- 0xff, 0xfe, 0x9f, 0xa1, 0xbf, 0xff, 0xff, 0x92,
- 0xff, 0xa2, 0x2f, 0xff, 0xf2, 0x4, 0xff, 0xff,
- 0xff, 0xf4, 0x0, 0x2, 0x9e, 0xfe, 0x92, 0x0,
-
- /* U+F048 "" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x30, 0x0,
- 0x1, 0xcc, 0xff, 0x40, 0x0, 0x2d, 0xff, 0xff,
- 0x40, 0x3, 0xef, 0xff, 0xff, 0x40, 0x3f, 0xff,
- 0xff, 0xff, 0x44, 0xff, 0xff, 0xff, 0xff, 0x9f,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xaf, 0xff,
- 0xff, 0xff, 0xff, 0x45, 0xff, 0xff, 0xff, 0xff,
- 0x40, 0x4f, 0xff, 0xff, 0xff, 0x40, 0x3, 0xef,
- 0xff, 0xff, 0x40, 0x0, 0x2e, 0xff, 0xff, 0x30,
- 0x0, 0x1, 0xcc, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+F04B "" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8f,
- 0x91, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff,
- 0x70, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, 0xfd,
- 0x40, 0x0, 0x0, 0x0, 0xff, 0xff, 0xff, 0xfa,
- 0x10, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xf7,
- 0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd5,
- 0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xb2,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xb2, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xd5, 0x0, 0xff, 0xff, 0xff, 0xff,
- 0xf7, 0x0, 0x0, 0xff, 0xff, 0xff, 0xfa, 0x10,
- 0x0, 0x0, 0xff, 0xff, 0xfd, 0x40, 0x0, 0x0,
- 0x0, 0xff, 0xff, 0x70, 0x0, 0x0, 0x0, 0x0,
- 0x8e, 0xa1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+F04C "" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8f,
- 0xff, 0xf8, 0x0, 0x8f, 0xff, 0xf8, 0xff, 0xff,
- 0xff, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0xff,
- 0xff, 0xff, 0x7f, 0xff, 0xf7, 0x0, 0x7f, 0xff,
- 0xf7,
-
- /* U+F04D "" */
- 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xf8,
-
- /* U+F051 "" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0xcc, 0x10, 0x0,
- 0x3, 0xff, 0xff, 0xd2, 0x0, 0x4, 0xff, 0xff,
- 0xfe, 0x30, 0x4, 0xff, 0xff, 0xff, 0xf4, 0x4,
- 0xff, 0xff, 0xff, 0xff, 0x54, 0xff, 0xff, 0xff,
- 0xff, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xf9, 0xff, 0xff, 0xff, 0xff, 0x44, 0xff, 0xff,
- 0xff, 0xf3, 0x4, 0xff, 0xff, 0xfe, 0x30, 0x4,
- 0xff, 0xff, 0xd2, 0x0, 0x4, 0xff, 0xcc, 0x10,
- 0x0, 0x3, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+F052 "" */
- 0x0, 0x0, 0x0, 0x2d, 0xd2, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x1, 0xef, 0xfe, 0x10, 0x0, 0x0,
- 0x0, 0x0, 0x1d, 0xff, 0xff, 0xd1, 0x0, 0x0,
- 0x0, 0x0, 0xcf, 0xff, 0xff, 0xfc, 0x0, 0x0,
- 0x0, 0xb, 0xff, 0xff, 0xff, 0xff, 0xb0, 0x0,
- 0x0, 0xaf, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x0,
- 0x9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x90,
- 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
- 0x8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
- 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
- 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
- 0xc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
-
- /* U+F053 "" */
- 0x0, 0x0, 0x0, 0x1a, 0x40, 0x0, 0x0, 0x1,
- 0xdf, 0xf0, 0x0, 0x0, 0x1d, 0xff, 0xa0, 0x0,
- 0x1, 0xdf, 0xfa, 0x0, 0x0, 0x1d, 0xff, 0xa0,
- 0x0, 0x1, 0xdf, 0xfa, 0x0, 0x0, 0xc, 0xff,
- 0xa0, 0x0, 0x0, 0xd, 0xff, 0x80, 0x0, 0x0,
- 0x1, 0xdf, 0xf8, 0x0, 0x0, 0x0, 0x1d, 0xff,
- 0x80, 0x0, 0x0, 0x1, 0xdf, 0xf8, 0x0, 0x0,
- 0x0, 0x1d, 0xff, 0x80, 0x0, 0x0, 0x1, 0xdf,
- 0xf0, 0x0, 0x0, 0x0, 0x1b, 0x50,
-
- /* U+F054 "" */
- 0x4, 0xa1, 0x0, 0x0, 0x0, 0xf, 0xfd, 0x10,
- 0x0, 0x0, 0xa, 0xff, 0xd1, 0x0, 0x0, 0x0,
- 0xaf, 0xfd, 0x10, 0x0, 0x0, 0xa, 0xff, 0xd1,
- 0x0, 0x0, 0x0, 0xaf, 0xfd, 0x10, 0x0, 0x0,
- 0xa, 0xff, 0xc0, 0x0, 0x0, 0x8, 0xff, 0xd0,
- 0x0, 0x0, 0x8f, 0xfd, 0x10, 0x0, 0x8, 0xff,
- 0xd1, 0x0, 0x0, 0x8f, 0xfd, 0x10, 0x0, 0x8,
- 0xff, 0xd1, 0x0, 0x0, 0xf, 0xfd, 0x10, 0x0,
- 0x0, 0x5, 0xb1, 0x0, 0x0, 0x0,
-
- /* U+F067 "" */
- 0x0, 0x0, 0x4, 0xff, 0x40, 0x0, 0x0, 0x0,
- 0x0, 0x8, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0,
- 0x8, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, 0x8,
- 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, 0x8, 0xff,
- 0x80, 0x0, 0x0, 0x48, 0x88, 0x8c, 0xff, 0xc8,
- 0x88, 0x84, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x48, 0x88, 0x8c, 0xff, 0xc8, 0x88, 0x84, 0x0,
- 0x0, 0x8, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0,
- 0x8, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, 0x8,
- 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, 0x8, 0xff,
- 0x80, 0x0, 0x0, 0x0, 0x0, 0x4, 0xff, 0x40,
- 0x0, 0x0,
-
- /* U+F068 "" */
- 0x14, 0x44, 0x44, 0x44, 0x44, 0x44, 0x41, 0xef,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x7b, 0xbb, 0xbb,
- 0xbb, 0xbb, 0xbb, 0xb7,
-
- /* U+F06E "" */
- 0x0, 0x0, 0x5, 0xad, 0xff, 0xda, 0x50, 0x0,
- 0x0, 0x0, 0x4, 0xdf, 0xfc, 0x88, 0xcf, 0xfd,
- 0x40, 0x0, 0x0, 0x7f, 0xfe, 0x40, 0x0, 0x4,
- 0xef, 0xf7, 0x0, 0x7, 0xff, 0xf4, 0x0, 0x9e,
- 0x80, 0x4f, 0xff, 0x70, 0x4f, 0xff, 0xc0, 0x0,
- 0xaf, 0xf8, 0xc, 0xff, 0xf4, 0xdf, 0xff, 0x80,
- 0x9a, 0xff, 0xfe, 0x8, 0xff, 0xfd, 0xdf, 0xff,
- 0x80, 0xef, 0xff, 0xfe, 0x8, 0xff, 0xfd, 0x4f,
- 0xff, 0xc0, 0x8f, 0xff, 0xf8, 0xc, 0xff, 0xf4,
- 0x7, 0xff, 0xf4, 0x8, 0xee, 0x80, 0x4f, 0xff,
- 0x70, 0x0, 0x7f, 0xfe, 0x40, 0x0, 0x4, 0xef,
- 0xf8, 0x0, 0x0, 0x4, 0xdf, 0xfc, 0x88, 0xcf,
- 0xfd, 0x40, 0x0, 0x0, 0x0, 0x5, 0xad, 0xff,
- 0xda, 0x50, 0x0, 0x0,
-
- /* U+F070 "" */
- 0x8c, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xdf, 0xe4, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x1b, 0xff, 0x80, 0x49,
- 0xdf, 0xfd, 0xa5, 0x0, 0x0, 0x0, 0x0, 0x7f,
- 0xff, 0xff, 0xd8, 0x8c, 0xff, 0xd4, 0x0, 0x0,
- 0x0, 0x4, 0xef, 0xf8, 0x0, 0x0, 0x4e, 0xff,
- 0x70, 0x0, 0x0, 0x0, 0x1c, 0xff, 0x69, 0xe8,
- 0x4, 0xff, 0xf7, 0x0, 0x4, 0xe3, 0x0, 0x9f,
- 0xfe, 0xff, 0x80, 0xcf, 0xff, 0x40, 0xd, 0xff,
- 0x70, 0x5, 0xff, 0xff, 0xe0, 0x8f, 0xff, 0xd0,
- 0xd, 0xff, 0xf7, 0x0, 0x2d, 0xff, 0xe0, 0x8f,
- 0xff, 0xd0, 0x4, 0xff, 0xfc, 0x0, 0x0, 0xaf,
- 0xf8, 0xcf, 0xff, 0x30, 0x0, 0x7f, 0xff, 0x40,
- 0x0, 0x6, 0xff, 0xff, 0xf7, 0x0, 0x0, 0x8,
- 0xff, 0xf4, 0x0, 0x0, 0x3e, 0xff, 0xa0, 0x0,
- 0x0, 0x0, 0x4d, 0xff, 0xc8, 0x82, 0x1, 0xbf,
- 0xf7, 0x0, 0x0, 0x0, 0x0, 0x5a, 0xdf, 0xfc,
- 0x10, 0x8, 0xff, 0xa0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x4e, 0xfd, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xc8,
-
- /* U+F071 "" */
- 0x0, 0x0, 0x0, 0x0, 0x2d, 0xd2, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbf, 0xfb,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5,
- 0xff, 0xff, 0x50, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xd, 0xff, 0xff, 0xd0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x7f, 0xff, 0xff, 0xf7, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x1, 0xff, 0xd8, 0x8d,
- 0xff, 0x10, 0x0, 0x0, 0x0, 0x0, 0xa, 0xff,
- 0xa0, 0xa, 0xff, 0xa0, 0x0, 0x0, 0x0, 0x0,
- 0x3f, 0xff, 0xb0, 0xb, 0xff, 0xf3, 0x0, 0x0,
- 0x0, 0x0, 0xcf, 0xff, 0xc0, 0xc, 0xff, 0xfc,
- 0x0, 0x0, 0x0, 0x5, 0xff, 0xff, 0xd0, 0xd,
- 0xff, 0xff, 0x50, 0x0, 0x0, 0xe, 0xff, 0xff,
- 0xf9, 0x9f, 0xff, 0xff, 0xe0, 0x0, 0x0, 0x8f,
- 0xff, 0xff, 0xe2, 0x2e, 0xff, 0xff, 0xf8, 0x0,
- 0x2, 0xff, 0xff, 0xff, 0x90, 0x9, 0xff, 0xff,
- 0xff, 0x10, 0xa, 0xff, 0xff, 0xff, 0xe3, 0x3e,
- 0xff, 0xff, 0xff, 0xa0, 0xf, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x8, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80,
-
- /* U+F074 "" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd8, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x80,
- 0xff, 0xff, 0x70, 0x0, 0x7, 0xff, 0xff, 0xf8,
- 0xff, 0xff, 0xf6, 0x0, 0x6f, 0xff, 0xff, 0xfd,
- 0x78, 0x8e, 0xff, 0x15, 0xff, 0xe8, 0xff, 0xe2,
- 0x0, 0x2, 0xe5, 0x4f, 0xfe, 0x20, 0xfe, 0x20,
- 0x0, 0x0, 0x13, 0xff, 0xf3, 0x0, 0x52, 0x0,
- 0x0, 0x0, 0x3f, 0xff, 0x31, 0x0, 0x52, 0x0,
- 0x0, 0x2, 0xef, 0xf4, 0x5e, 0x20, 0xfe, 0x20,
- 0x78, 0x8e, 0xff, 0x51, 0xff, 0xe8, 0xff, 0xe2,
- 0xff, 0xff, 0xf6, 0x0, 0x6f, 0xff, 0xff, 0xfd,
- 0xff, 0xff, 0x70, 0x0, 0x7, 0xff, 0xff, 0xf8,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x80,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd8, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+F077 "" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x1, 0xdd, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x1d, 0xff, 0xd1, 0x0, 0x0, 0x0, 0x1, 0xdf,
- 0xff, 0xfd, 0x10, 0x0, 0x0, 0x1d, 0xff, 0x99,
- 0xff, 0xd1, 0x0, 0x1, 0xdf, 0xf9, 0x0, 0x9f,
- 0xfd, 0x10, 0x1d, 0xff, 0x90, 0x0, 0x9, 0xff,
- 0xd1, 0xbf, 0xf9, 0x0, 0x0, 0x0, 0x9f, 0xfb,
- 0x5f, 0x90, 0x0, 0x0, 0x0, 0x9, 0xf5, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+F078 "" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5f,
- 0x90, 0x0, 0x0, 0x0, 0x9, 0xf5, 0xbf, 0xf9,
- 0x0, 0x0, 0x0, 0x9f, 0xfb, 0x1d, 0xff, 0x90,
- 0x0, 0x9, 0xff, 0xd1, 0x1, 0xdf, 0xf9, 0x0,
- 0x9f, 0xfd, 0x10, 0x0, 0x1d, 0xff, 0x99, 0xff,
- 0xd1, 0x0, 0x0, 0x1, 0xdf, 0xff, 0xfd, 0x10,
- 0x0, 0x0, 0x0, 0x1d, 0xff, 0xd1, 0x0, 0x0,
- 0x0, 0x0, 0x1, 0xdd, 0x10, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+F079 "" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x1d, 0xd1, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x1, 0xdf, 0xfd, 0x10,
- 0xef, 0xff, 0xff, 0xff, 0xd0, 0x0, 0x1d, 0xff,
- 0xff, 0xd1, 0xaf, 0xff, 0xff, 0xff, 0xf0, 0x0,
- 0xcf, 0xcf, 0xfc, 0xfc, 0x0, 0x0, 0x0, 0xf,
- 0xf0, 0x0, 0x6b, 0x1f, 0xf1, 0xb6, 0x0, 0x0,
- 0x0, 0xf, 0xf0, 0x0, 0x0, 0xf, 0xf0, 0x0,
- 0x0, 0x0, 0x0, 0xf, 0xf0, 0x0, 0x0, 0xf,
- 0xf0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xf0, 0x0,
- 0x0, 0xf, 0xf0, 0x0, 0x0, 0x0, 0x6b, 0x1f,
- 0xf1, 0xb6, 0x0, 0xf, 0xf0, 0x0, 0x0, 0x0,
- 0xcf, 0xcf, 0xfc, 0xfc, 0x0, 0xf, 0xff, 0xff,
- 0xff, 0xfa, 0x1d, 0xff, 0xff, 0xd1, 0x0, 0xd,
- 0xff, 0xff, 0xff, 0xfe, 0x1, 0xdf, 0xfd, 0x10,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1d,
- 0xd1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0,
-
- /* U+F07B "" */
- 0x8f, 0xff, 0xff, 0xe2, 0x0, 0x0, 0x0, 0x0,
- 0xff, 0xff, 0xff, 0xfe, 0x20, 0x0, 0x0, 0x0,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8,
-
- /* U+F093 "" */
- 0x0, 0x0, 0x0, 0xb, 0xb0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xbf, 0xfb, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xb, 0xff, 0xff, 0xb0, 0x0, 0x0,
- 0x0, 0x0, 0xbf, 0xff, 0xff, 0xfb, 0x0, 0x0,
- 0x0, 0xb, 0xff, 0xff, 0xff, 0xff, 0xb0, 0x0,
- 0x0, 0x4f, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x0,
- 0x0, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0x0,
- 0xdf, 0xff, 0xf0, 0xdf, 0xfd, 0xf, 0xff, 0xfd,
- 0xff, 0xff, 0xf9, 0x0, 0x0, 0x9f, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xe0, 0xff,
- 0xdf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfd,
-
- /* U+F095 "" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0xea,
- 0x62, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0xff,
- 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9f,
- 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf,
- 0xff, 0xff, 0xd0, 0x0, 0x0, 0x0, 0x0, 0x2,
- 0xff, 0xff, 0xfb, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x3, 0xef, 0xff, 0x70, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x4, 0xff, 0xf2, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xbf, 0xfb, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x6f, 0xff, 0x30, 0x0, 0x0, 0x2,
- 0x0, 0x0, 0x4f, 0xff, 0x90, 0x0, 0x2, 0x8f,
- 0xf3, 0x0, 0x6f, 0xff, 0xd0, 0x0, 0xa, 0xff,
- 0xff, 0xe4, 0xbf, 0xff, 0xd1, 0x0, 0x0, 0xef,
- 0xff, 0xff, 0xff, 0xff, 0xd1, 0x0, 0x0, 0xa,
- 0xff, 0xff, 0xff, 0xff, 0x90, 0x0, 0x0, 0x0,
- 0x6f, 0xff, 0xff, 0xfb, 0x30, 0x0, 0x0, 0x0,
- 0x2, 0xff, 0xdb, 0x72, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+F0C4 "" */
- 0x8, 0xee, 0x80, 0x0, 0x0, 0x6, 0x61, 0x8,
- 0xff, 0xff, 0x80, 0x0, 0x2d, 0xff, 0xd0, 0xef,
- 0x33, 0xfe, 0x0, 0x2e, 0xff, 0xf3, 0xe, 0xf3,
- 0x3f, 0xe0, 0x2e, 0xff, 0xf3, 0x0, 0x8f, 0xff,
- 0xff, 0x6e, 0xff, 0xf3, 0x0, 0x0, 0x8e, 0xff,
- 0xff, 0xff, 0xf3, 0x0, 0x0, 0x0, 0x2, 0xef,
- 0xff, 0xf3, 0x0, 0x0, 0x0, 0x0, 0x2e, 0xff,
- 0xff, 0x30, 0x0, 0x0, 0x8, 0xef, 0xff, 0xff,
- 0xff, 0x30, 0x0, 0x8, 0xff, 0xff, 0xf6, 0xef,
- 0xff, 0x30, 0x0, 0xef, 0x33, 0xfe, 0x2, 0xef,
- 0xff, 0x30, 0xe, 0xf3, 0x3f, 0xe0, 0x2, 0xef,
- 0xff, 0x30, 0x8f, 0xff, 0xf8, 0x0, 0x2, 0xdf,
- 0xfd, 0x0, 0x8e, 0xe8, 0x0, 0x0, 0x0, 0x66,
- 0x10,
-
- /* U+F0C5 "" */
- 0x0, 0x0, 0xdf, 0xff, 0xff, 0xd, 0x20, 0x0,
- 0x0, 0xff, 0xff, 0xff, 0xf, 0xe2, 0x0, 0x0,
- 0xff, 0xff, 0xff, 0xf, 0xfd, 0xdf, 0xf0, 0xff,
- 0xff, 0xff, 0x20, 0x0, 0xff, 0xf0, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0xdf, 0xff,
- 0xff, 0xff, 0xfd, 0xff, 0xf9, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0,
- 0x0, 0xdf, 0xff, 0xff, 0xff, 0xfd, 0x0, 0x0,
-
- /* U+F0C7 "" */
- 0x8f, 0xff, 0xff, 0xff, 0xff, 0xc2, 0x0, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0x20, 0xff, 0x0,
- 0x0, 0x0, 0x1, 0xff, 0xe2, 0xff, 0x0, 0x0,
- 0x0, 0x0, 0xff, 0xfc, 0xff, 0x0, 0x0, 0x0,
- 0x0, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xfb, 0x11, 0xbf, 0xff, 0xff, 0xff,
- 0xff, 0xf1, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xff,
- 0xf1, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xfb,
- 0x11, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xf8,
-
- /* U+F0C9 "" */
- 0x12, 0x22, 0x22, 0x22, 0x22, 0x22, 0x21, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x12, 0x22, 0x22,
- 0x22, 0x22, 0x22, 0x21, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x12, 0x22, 0x22, 0x22, 0x22,
- 0x22, 0x21, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x12, 0x22, 0x22, 0x22, 0x22, 0x22, 0x21, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x12, 0x22,
- 0x22, 0x22, 0x22, 0x22, 0x21, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0x12, 0x22, 0x22, 0x22, 0x22,
- 0x22, 0x21,
-
- /* U+F0E0 "" */
- 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
- 0x9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x90,
- 0xd2, 0x5f, 0xff, 0xff, 0xff, 0xff, 0xf5, 0x2d,
- 0xff, 0x62, 0xcf, 0xff, 0xff, 0xfc, 0x26, 0xff,
- 0xff, 0xfa, 0x18, 0xff, 0xff, 0x81, 0xaf, 0xff,
- 0xff, 0xff, 0xe3, 0x4d, 0xd4, 0x3e, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0x81, 0x18, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8,
-
- /* U+F0E7 "" */
- 0x0, 0xdf, 0xff, 0xfd, 0x0, 0x0, 0x1, 0xff,
- 0xff, 0xfc, 0x0, 0x0, 0x3, 0xff, 0xff, 0xf7,
- 0x0, 0x0, 0x6, 0xff, 0xff, 0xf2, 0x0, 0x0,
- 0x8, 0xff, 0xff, 0xd0, 0x0, 0x0, 0xa, 0xff,
- 0xff, 0xff, 0xff, 0xd0, 0xc, 0xff, 0xff, 0xff,
- 0xff, 0xa0, 0xe, 0xff, 0xff, 0xff, 0xff, 0x20,
- 0xd, 0xff, 0xff, 0xff, 0xf8, 0x0, 0x0, 0x0,
- 0xa, 0xff, 0xe0, 0x0, 0x0, 0x0, 0xe, 0xff,
- 0x50, 0x0, 0x0, 0x0, 0x2f, 0xfc, 0x0, 0x0,
- 0x0, 0x0, 0x5f, 0xf3, 0x0, 0x0, 0x0, 0x0,
- 0x9f, 0xa0, 0x0, 0x0, 0x0, 0x0, 0xdf, 0x10,
- 0x0, 0x0, 0x0, 0x0, 0xd7, 0x0, 0x0, 0x0,
-
- /* U+F0EA "" */
- 0x0, 0x4, 0xee, 0x40, 0x0, 0x0, 0x0, 0xdf,
- 0xff, 0x99, 0xff, 0xfd, 0x0, 0x0, 0xff, 0xff,
- 0x99, 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0x0, 0x0, 0xff, 0xff, 0x90, 0x0,
- 0x0, 0x0, 0x0, 0xff, 0xff, 0xd, 0xff, 0xff,
- 0xd, 0x20, 0xff, 0xff, 0xf, 0xff, 0xff, 0xf,
- 0xe2, 0xff, 0xff, 0xf, 0xff, 0xff, 0xf, 0xfd,
- 0xff, 0xff, 0xf, 0xff, 0xff, 0x20, 0x0, 0xff,
- 0xff, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf,
- 0xff, 0xff, 0xff, 0xff, 0xdf, 0xff, 0xf, 0xff,
- 0xff, 0xff, 0xff, 0x0, 0x0, 0xf, 0xff, 0xff,
- 0xff, 0xff, 0x0, 0x0, 0xf, 0xff, 0xff, 0xff,
- 0xff, 0x0, 0x0, 0xd, 0xff, 0xff, 0xff, 0xfd,
-
- /* U+F0F3 "" */
- 0x0, 0x0, 0x0, 0xcc, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x2, 0xff, 0x30, 0x0, 0x0, 0x0, 0x1,
- 0xbf, 0xff, 0xfc, 0x20, 0x0, 0x0, 0x1e, 0xff,
- 0xff, 0xff, 0xe1, 0x0, 0x0, 0x9f, 0xff, 0xff,
- 0xff, 0xf8, 0x0, 0x0, 0xef, 0xff, 0xff, 0xff,
- 0xfd, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x0, 0x1, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0,
- 0x3, 0xff, 0xff, 0xff, 0xff, 0xff, 0x30, 0x8,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x1e, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xe1, 0xcf, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfc, 0xcf, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xe, 0xff, 0xe0, 0x0,
- 0x0, 0x0, 0x0, 0x4, 0xee, 0x40, 0x0, 0x0,
-
- /* U+F11C "" */
- 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xf8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0x0, 0xf0, 0xf, 0x0, 0xf0,
- 0xf, 0x0, 0xff, 0xff, 0x0, 0xf0, 0xf, 0x0,
- 0xf0, 0xf, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x8,
- 0x80, 0x88, 0x8, 0x80, 0x8f, 0xff, 0xff, 0xf8,
- 0x8, 0x80, 0x88, 0x8, 0x80, 0x8f, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xf, 0x0,
- 0xff, 0xff, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xf,
- 0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xf8,
-
- /* U+F124 "" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
- 0xaf, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4,
- 0xcf, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x6,
- 0xdf, 0xff, 0xff, 0xa0, 0x0, 0x0, 0x0, 0x17,
- 0xef, 0xff, 0xff, 0xff, 0x30, 0x0, 0x0, 0x18,
- 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x2a,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xf4, 0x0, 0x8,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xd0, 0x0,
- 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x60,
- 0x0, 0x8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff,
- 0xf7, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff,
- 0xff, 0xf1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xff, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xff, 0xff, 0x10, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0xff, 0xfa, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xff, 0xf2, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x8f, 0x80, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0,
-
- /* U+F15B "" */
- 0xdf, 0xff, 0xff, 0xf0, 0xd2, 0x0, 0xff, 0xff,
- 0xff, 0xf0, 0xfe, 0x20, 0xff, 0xff, 0xff, 0xf0,
- 0xff, 0xe2, 0xff, 0xff, 0xff, 0xf0, 0xff, 0xfd,
- 0xff, 0xff, 0xff, 0xf2, 0x0, 0x0, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xdf, 0xff, 0xff, 0xff, 0xff, 0xfd,
-
- /* U+F1EB "" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x4, 0x9c, 0xef, 0xfe,
- 0xc9, 0x40, 0x0, 0x0, 0x0, 0x7, 0xef, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x70, 0x0, 0x4, 0xdf,
- 0xff, 0xfc, 0xa8, 0x8a, 0xcf, 0xff, 0xfd, 0x40,
- 0x6f, 0xff, 0xd5, 0x0, 0x0, 0x0, 0x0, 0x5d,
- 0xff, 0xf6, 0xcf, 0xf6, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x6f, 0xfc, 0x1a, 0x30, 0x0, 0x5a,
- 0xdf, 0xfd, 0xa5, 0x0, 0x3, 0xa1, 0x0, 0x0,
- 0x4d, 0xff, 0xff, 0xff, 0xff, 0xd4, 0x0, 0x0,
- 0x0, 0x5, 0xff, 0xfe, 0xa8, 0x8a, 0xef, 0xff,
- 0x50, 0x0, 0x0, 0x1, 0xdf, 0x70, 0x0, 0x0,
- 0x7, 0xfd, 0x10, 0x0, 0x0, 0x0, 0x12, 0x0,
- 0x0, 0x0, 0x0, 0x21, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x4e, 0xe4, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xef, 0xfe, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xef, 0xfe,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x4e, 0xe4, 0x0, 0x0, 0x0, 0x0,
-
- /* U+F240 "" */
- 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xf0, 0xff, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xf, 0xfd, 0xff, 0xf,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf, 0xff,
- 0xff, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0x0, 0xff, 0xff, 0xf, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0x0, 0xff, 0xff, 0xf, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xf, 0xff, 0xff, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xfd,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xf0, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0x80,
-
- /* U+F241 "" */
- 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xf0, 0xff, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xf, 0xfd, 0xff, 0xf,
- 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0, 0xf, 0xff,
- 0xff, 0xf, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0,
- 0x0, 0xff, 0xff, 0xf, 0xff, 0xff, 0xff, 0xff,
- 0xf0, 0x0, 0x0, 0xff, 0xff, 0xf, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0x0, 0xf, 0xff, 0xff, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xfd,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xf0, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0x80,
-
- /* U+F242 "" */
- 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xf0, 0xff, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xf, 0xfd, 0xff, 0xf,
- 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0xf, 0xff,
- 0xff, 0xf, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0,
- 0x0, 0xff, 0xff, 0xf, 0xff, 0xff, 0xff, 0x0,
- 0x0, 0x0, 0x0, 0xff, 0xff, 0xf, 0xff, 0xff,
- 0xff, 0x0, 0x0, 0x0, 0xf, 0xff, 0xff, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xfd,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xf0, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0x80,
-
- /* U+F243 "" */
- 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xf0, 0xff, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xf, 0xfd, 0xff, 0xf,
- 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xff,
- 0xff, 0xf, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xff, 0xff, 0xf, 0xff, 0xf0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xff, 0xff, 0xf, 0xff, 0xf0,
- 0x0, 0x0, 0x0, 0x0, 0xf, 0xff, 0xff, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xfd,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xf0, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0x80,
-
- /* U+F244 "" */
- 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0x80, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xf0, 0xff, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xf, 0xfd, 0xff, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xff,
- 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xf, 0xff, 0xff, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xfd,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xf0, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0x80,
-
- /* U+F287 "" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7,
- 0xfd, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x1, 0xcf, 0xff, 0xf5, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0xb9, 0x29, 0xfe, 0x10, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0x10, 0x2,
- 0x0, 0x0, 0x0, 0x0, 0x3, 0xdf, 0x80, 0xa,
- 0x90, 0x0, 0x0, 0x0, 0x3, 0x70, 0x0, 0xdf,
- 0xff, 0x77, 0xf7, 0x55, 0x55, 0x55, 0x55, 0x8f,
- 0xd3, 0xf, 0xff, 0xfd, 0xcc, 0xdf, 0xdc, 0xcc,
- 0xcc, 0xcd, 0xff, 0xb0, 0x8f, 0xfe, 0x10, 0x0,
- 0xaa, 0x0, 0x0, 0x0, 0x4d, 0x40, 0x0, 0x46,
- 0x10, 0x0, 0x1, 0xf2, 0x2, 0x33, 0x10, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x9, 0xb1, 0xcf,
- 0xf9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xa, 0xff, 0xff, 0x90, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xbf, 0xf9, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x22,
- 0x0, 0x0, 0x0,
-
- /* U+F293 "" */
- 0x0, 0x18, 0xdf, 0xfd, 0x92, 0x0, 0x2, 0xef,
- 0xfb, 0xef, 0xff, 0x30, 0xd, 0xff, 0xfa, 0x2e,
- 0xff, 0xe0, 0x4f, 0xff, 0xfa, 0x3, 0xff, 0xf5,
- 0x9f, 0xfa, 0xfa, 0x35, 0x4f, 0xfa, 0xcf, 0xc0,
- 0x8a, 0x3d, 0xb, 0xfd, 0xef, 0xfb, 0x3, 0x12,
- 0x8f, 0xfe, 0xff, 0xff, 0xb0, 0x6, 0xff, 0xff,
- 0xff, 0xff, 0xd1, 0x8, 0xff, 0xff, 0xef, 0xfd,
- 0x11, 0x10, 0x9f, 0xff, 0xdf, 0xd1, 0x59, 0x3b,
- 0xb, 0xfd, 0xaf, 0xd7, 0xfa, 0x38, 0x1d, 0xfb,
- 0x5f, 0xff, 0xfa, 0x1, 0xdf, 0xf7, 0xd, 0xff,
- 0xfa, 0x1d, 0xff, 0xf1, 0x3, 0xef, 0xfc, 0xdf,
- 0xff, 0x50, 0x0, 0x18, 0xdf, 0xfe, 0xa3, 0x0,
-
- /* U+F2ED "" */
- 0x0, 0x0, 0x7f, 0xff, 0xf7, 0x0, 0x0, 0xef,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xef, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0xf, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0xf, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xf0, 0xf, 0xf9, 0x9f, 0x99, 0xf9, 0x9f,
- 0xf0, 0xf, 0xf8, 0x8f, 0x88, 0xf8, 0x8f, 0xf0,
- 0xf, 0xf8, 0x8f, 0x88, 0xf8, 0x8f, 0xf0, 0xf,
- 0xf8, 0x8f, 0x88, 0xf8, 0x8f, 0xf0, 0xf, 0xf8,
- 0x8f, 0x88, 0xf8, 0x8f, 0xf0, 0xf, 0xf8, 0x8f,
- 0x88, 0xf8, 0x8f, 0xf0, 0xf, 0xf8, 0x8f, 0x88,
- 0xf8, 0x8f, 0xf0, 0xf, 0xf9, 0x9f, 0x99, 0xf9,
- 0x9f, 0xf0, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xf0, 0x8, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80,
-
- /* U+F304 "" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xa0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8f, 0xff,
- 0xb0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xd, 0xff,
- 0xff, 0xa0, 0x0, 0x0, 0x0, 0x0, 0x8a, 0x1d,
- 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0x8f, 0xfa,
- 0x1d, 0xff, 0x70, 0x0, 0x0, 0x0, 0x8f, 0xff,
- 0xfa, 0x1d, 0x80, 0x0, 0x0, 0x0, 0x8f, 0xff,
- 0xff, 0xfa, 0x0, 0x0, 0x0, 0x0, 0x8f, 0xff,
- 0xff, 0xff, 0x80, 0x0, 0x0, 0x0, 0x8f, 0xff,
- 0xff, 0xff, 0x80, 0x0, 0x0, 0x0, 0x8f, 0xff,
- 0xff, 0xff, 0x80, 0x0, 0x0, 0x0, 0x8f, 0xff,
- 0xff, 0xff, 0x80, 0x0, 0x0, 0x0, 0x6f, 0xff,
- 0xff, 0xff, 0x80, 0x0, 0x0, 0x0, 0xb, 0xff,
- 0xff, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, 0xdf,
- 0xff, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, 0xe,
- 0xff, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0xde, 0xdb, 0x60, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
- 0x0,
-
- /* U+F55A "" */
- 0x0, 0x0, 0x1b, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xe4, 0x0, 0x1, 0xdf, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x0, 0x1d, 0xff, 0xff,
- 0xfa, 0xef, 0xfe, 0xaf, 0xff, 0xff, 0x1, 0xdf,
- 0xff, 0xff, 0xa0, 0x2e, 0xe2, 0xa, 0xff, 0xff,
- 0x1d, 0xff, 0xff, 0xff, 0xe2, 0x2, 0x20, 0x2e,
- 0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xfe, 0x20,
- 0x2, 0xef, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xff,
- 0xfe, 0x20, 0x2, 0xef, 0xff, 0xff, 0x1d, 0xff,
- 0xff, 0xff, 0xe2, 0x2, 0x20, 0x2e, 0xff, 0xff,
- 0x1, 0xdf, 0xff, 0xff, 0xa0, 0x2e, 0xe2, 0xa,
- 0xff, 0xff, 0x0, 0x1d, 0xff, 0xff, 0xfa, 0xef,
- 0xfe, 0xaf, 0xff, 0xff, 0x0, 0x1, 0xdf, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0,
- 0x1b, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe4,
-
- /* U+F7C2 "" */
- 0x0, 0x8, 0xff, 0xff, 0xff, 0xe4, 0x0, 0x8f,
- 0xff, 0xff, 0xff, 0xfe, 0x8, 0xf8, 0xf, 0xb,
- 0x40, 0xff, 0x8f, 0xf8, 0xf, 0xb, 0x40, 0xff,
- 0xff, 0xf8, 0xf, 0xb, 0x40, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff,
- 0xff, 0xfe, 0x4e, 0xff, 0xff, 0xff, 0xff, 0xe4,
-
- /* U+F8A2 "" */
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3,
- 0xe0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0, 0x2,
- 0xef, 0x10, 0x0, 0xbf, 0x0, 0x0, 0x0, 0x0,
- 0x7f, 0xf1, 0x0, 0xcf, 0xf1, 0x0, 0x0, 0x0,
- 0x7, 0xff, 0x11, 0xcf, 0xff, 0x77, 0x77, 0x77,
- 0x77, 0xbf, 0xf1, 0xcf, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0x17, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xe0, 0x7, 0xff, 0xf1, 0x0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0xff, 0x10,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0xa0,
- 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
-
- /* U+FF08 "(" */
- 0x0, 0x0, 0x0, 0x0, 0x42, 0x0, 0x73, 0x0,
- 0x65, 0x0, 0x2b, 0x0, 0x8, 0x50, 0x0, 0xb3,
- 0x0, 0xc, 0x20, 0x0, 0xa3, 0x0, 0x6, 0x70,
- 0x0, 0xb, 0x0, 0x0, 0x29, 0x0, 0x0, 0x28,
- 0x0, 0x0, 0x2,
-
- /* U+FF09 ")" */
- 0x0, 0x0, 0x2, 0x60, 0x0, 0x2, 0x80, 0x0,
- 0x4, 0x80, 0x0, 0xb, 0x30, 0x0, 0x59, 0x0,
- 0x2, 0xd0, 0x0, 0x1e, 0x0, 0x2, 0xb0, 0x0,
- 0x68, 0x0, 0x1d, 0x10, 0xa, 0x30, 0x8, 0x30,
- 0x2, 0x0, 0x0,
-
- /* U+FF0C "," */
- 0x4, 0x91, 0xb, 0xf6, 0x1, 0xc3, 0x2, 0x90,
- 0x5, 0x0,
-
- /* U+FF11 "1" */
- 0x1, 0x74, 0x0, 0x26, 0xd5, 0x0, 0x0, 0xb5,
- 0x0, 0x0, 0xb5, 0x0, 0x0, 0xb5, 0x0, 0x0,
- 0xb5, 0x0, 0x0, 0xb5, 0x0, 0x0, 0xb5, 0x0,
- 0x0, 0xb5, 0x0, 0x1, 0xc7, 0x0, 0x45, 0x55,
- 0x50,
-
- /* U+FF12 "2" */
- 0x0, 0x4, 0x41, 0x0, 0x5, 0x92, 0x3c, 0x60,
- 0xf, 0x40, 0x5, 0xf0, 0xc, 0x60, 0x5, 0xf0,
- 0x0, 0x0, 0xa, 0xb0, 0x0, 0x0, 0x3d, 0x10,
- 0x0, 0x1, 0xc2, 0x0, 0x0, 0xa, 0x20, 0x0,
- 0x0, 0x93, 0x0, 0x0, 0x8, 0x30, 0x0, 0x70,
- 0x2f, 0xdd, 0xdd, 0x80, 0x0, 0x0, 0x0, 0x0
-};
-
-/*---------------------
- * GLYPH DESCRIPTION
- *--------------------*/
-
-static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
- {.bitmap_index = 0, .adv_w = 0, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0} /* id = 0 reserved */,
- {.bitmap_index = 0, .adv_w = 128, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 0, .adv_w = 128, .box_w = 2, .box_h = 12, .ofs_x = 3, .ofs_y = 0},
- {.bitmap_index = 12, .adv_w = 128, .box_w = 6, .box_h = 5, .ofs_x = 1, .ofs_y = 9},
- {.bitmap_index = 27, .adv_w = 128, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 75, .adv_w = 128, .box_w = 6, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 120, .adv_w = 128, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 168, .adv_w = 128, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 216, .adv_w = 128, .box_w = 4, .box_h = 5, .ofs_x = 0, .ofs_y = 9},
- {.bitmap_index = 226, .adv_w = 128, .box_w = 5, .box_h = 16, .ofs_x = 3, .ofs_y = -2},
- {.bitmap_index = 266, .adv_w = 128, .box_w = 5, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 306, .adv_w = 128, .box_w = 8, .box_h = 9, .ofs_x = 0, .ofs_y = 2},
- {.bitmap_index = 342, .adv_w = 128, .box_w = 8, .box_h = 9, .ofs_x = 0, .ofs_y = 2},
- {.bitmap_index = 378, .adv_w = 128, .box_w = 4, .box_h = 5, .ofs_x = 0, .ofs_y = -3},
- {.bitmap_index = 388, .adv_w = 128, .box_w = 8, .box_h = 1, .ofs_x = 0, .ofs_y = 6},
- {.bitmap_index = 392, .adv_w = 128, .box_w = 2, .box_h = 3, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 395, .adv_w = 128, .box_w = 8, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 459, .adv_w = 128, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 507, .adv_w = 128, .box_w = 6, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 543, .adv_w = 128, .box_w = 7, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 585, .adv_w = 128, .box_w = 7, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 627, .adv_w = 128, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 675, .adv_w = 128, .box_w = 7, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 717, .adv_w = 128, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 765, .adv_w = 128, .box_w = 7, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 807, .adv_w = 128, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 855, .adv_w = 128, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 903, .adv_w = 128, .box_w = 2, .box_h = 8, .ofs_x = 3, .ofs_y = 0},
- {.bitmap_index = 911, .adv_w = 128, .box_w = 2, .box_h = 10, .ofs_x = 3, .ofs_y = -2},
- {.bitmap_index = 921, .adv_w = 128, .box_w = 6, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 960, .adv_w = 128, .box_w = 8, .box_h = 4, .ofs_x = 0, .ofs_y = 4},
- {.bitmap_index = 976, .adv_w = 128, .box_w = 6, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 1015, .adv_w = 128, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 1063, .adv_w = 128, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 1111, .adv_w = 128, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 1159, .adv_w = 128, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 1207, .adv_w = 128, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 1255, .adv_w = 128, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 1303, .adv_w = 128, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 1351, .adv_w = 128, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 1399, .adv_w = 128, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 1447, .adv_w = 128, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 1495, .adv_w = 128, .box_w = 6, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 1531, .adv_w = 128, .box_w = 8, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 1587, .adv_w = 128, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 1635, .adv_w = 128, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 1683, .adv_w = 128, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 1731, .adv_w = 128, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 1779, .adv_w = 128, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 1827, .adv_w = 128, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 1875, .adv_w = 128, .box_w = 8, .box_h = 14, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 1931, .adv_w = 128, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 1979, .adv_w = 128, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 2027, .adv_w = 128, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 2075, .adv_w = 128, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 2123, .adv_w = 128, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 2171, .adv_w = 128, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 2219, .adv_w = 128, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 2267, .adv_w = 128, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 2315, .adv_w = 128, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 2363, .adv_w = 128, .box_w = 4, .box_h = 15, .ofs_x = 3, .ofs_y = -1},
- {.bitmap_index = 2393, .adv_w = 128, .box_w = 7, .box_h = 15, .ofs_x = 1, .ofs_y = -3},
- {.bitmap_index = 2446, .adv_w = 128, .box_w = 4, .box_h = 15, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 2476, .adv_w = 128, .box_w = 6, .box_h = 2, .ofs_x = 1, .ofs_y = 12},
- {.bitmap_index = 2482, .adv_w = 128, .box_w = 8, .box_h = 1, .ofs_x = 0, .ofs_y = -3},
- {.bitmap_index = 2486, .adv_w = 128, .box_w = 4, .box_h = 2, .ofs_x = 1, .ofs_y = 12},
- {.bitmap_index = 2490, .adv_w = 128, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 2522, .adv_w = 128, .box_w = 8, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 2574, .adv_w = 128, .box_w = 7, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 2602, .adv_w = 128, .box_w = 8, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 2654, .adv_w = 128, .box_w = 7, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 2682, .adv_w = 128, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 2730, .adv_w = 128, .box_w = 8, .box_h = 10, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 2770, .adv_w = 128, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 2818, .adv_w = 128, .box_w = 6, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 2854, .adv_w = 128, .box_w = 6, .box_h = 14, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 2896, .adv_w = 128, .box_w = 8, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 2944, .adv_w = 128, .box_w = 6, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 2980, .adv_w = 128, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 3012, .adv_w = 128, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 3044, .adv_w = 128, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 3076, .adv_w = 128, .box_w = 8, .box_h = 10, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 3116, .adv_w = 128, .box_w = 8, .box_h = 10, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 3156, .adv_w = 128, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 3188, .adv_w = 128, .box_w = 6, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 3212, .adv_w = 128, .box_w = 6, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 3245, .adv_w = 128, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 3277, .adv_w = 128, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 3309, .adv_w = 128, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 3341, .adv_w = 128, .box_w = 8, .box_h = 8, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 3373, .adv_w = 128, .box_w = 8, .box_h = 10, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 3413, .adv_w = 128, .box_w = 6, .box_h = 8, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 3437, .adv_w = 128, .box_w = 4, .box_h = 16, .ofs_x = 3, .ofs_y = -2},
- {.bitmap_index = 3469, .adv_w = 128, .box_w = 2, .box_h = 18, .ofs_x = 3, .ofs_y = -2},
- {.bitmap_index = 3487, .adv_w = 128, .box_w = 4, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 3519, .adv_w = 128, .box_w = 8, .box_h = 4, .ofs_x = 0, .ofs_y = 11},
- {.bitmap_index = 3535, .adv_w = 128, .box_w = 0, .box_h = 0, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 3535, .adv_w = 256, .box_w = 5, .box_h = 5, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 3548, .adv_w = 256, .box_w = 4, .box_h = 5, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 3558, .adv_w = 256, .box_w = 9, .box_h = 12, .ofs_x = 4, .ofs_y = 0},
- {.bitmap_index = 3612, .adv_w = 256, .box_w = 4, .box_h = 14, .ofs_x = 10, .ofs_y = -1},
- {.bitmap_index = 3640, .adv_w = 256, .box_w = 4, .box_h = 14, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 3668, .adv_w = 256, .box_w = 10, .box_h = 11, .ofs_x = 3, .ofs_y = -2},
- {.bitmap_index = 3723, .adv_w = 256, .box_w = 12, .box_h = 14, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 3807, .adv_w = 256, .box_w = 10, .box_h = 7, .ofs_x = 3, .ofs_y = 0},
- {.bitmap_index = 3842, .adv_w = 256, .box_w = 12, .box_h = 9, .ofs_x = 2, .ofs_y = 1},
- {.bitmap_index = 3896, .adv_w = 256, .box_w = 9, .box_h = 13, .ofs_x = 3, .ofs_y = -1},
- {.bitmap_index = 3955, .adv_w = 256, .box_w = 8, .box_h = 11, .ofs_x = 4, .ofs_y = -2},
- {.bitmap_index = 3999, .adv_w = 256, .box_w = 11, .box_h = 13, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 4071, .adv_w = 256, .box_w = 12, .box_h = 13, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 4149, .adv_w = 256, .box_w = 14, .box_h = 13, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 4240, .adv_w = 256, .box_w = 14, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 4331, .adv_w = 256, .box_w = 10, .box_h = 13, .ofs_x = 3, .ofs_y = -1},
- {.bitmap_index = 4396, .adv_w = 256, .box_w = 13, .box_h = 13, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 4481, .adv_w = 256, .box_w = 7, .box_h = 14, .ofs_x = 4, .ofs_y = -1},
- {.bitmap_index = 4530, .adv_w = 256, .box_w = 11, .box_h = 14, .ofs_x = 3, .ofs_y = -1},
- {.bitmap_index = 4607, .adv_w = 256, .box_w = 12, .box_h = 13, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 4685, .adv_w = 256, .box_w = 14, .box_h = 14, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 4783, .adv_w = 256, .box_w = 10, .box_h = 11, .ofs_x = 3, .ofs_y = 0},
- {.bitmap_index = 4838, .adv_w = 256, .box_w = 13, .box_h = 13, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 4923, .adv_w = 256, .box_w = 9, .box_h = 13, .ofs_x = 3, .ofs_y = 0},
- {.bitmap_index = 4982, .adv_w = 256, .box_w = 12, .box_h = 14, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 5066, .adv_w = 256, .box_w = 10, .box_h = 13, .ofs_x = 3, .ofs_y = -1},
- {.bitmap_index = 5131, .adv_w = 256, .box_w = 10, .box_h = 13, .ofs_x = 3, .ofs_y = -1},
- {.bitmap_index = 5196, .adv_w = 256, .box_w = 14, .box_h = 13, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 5287, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 5400, .adv_w = 256, .box_w = 13, .box_h = 11, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 5472, .adv_w = 256, .box_w = 15, .box_h = 13, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 5570, .adv_w = 256, .box_w = 11, .box_h = 13, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 5642, .adv_w = 256, .box_w = 14, .box_h = 14, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 5740, .adv_w = 256, .box_w = 12, .box_h = 13, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 5818, .adv_w = 256, .box_w = 14, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 5909, .adv_w = 256, .box_w = 11, .box_h = 12, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 5975, .adv_w = 256, .box_w = 10, .box_h = 7, .ofs_x = 3, .ofs_y = 0},
- {.bitmap_index = 6010, .adv_w = 256, .box_w = 13, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 6075, .adv_w = 256, .box_w = 14, .box_h = 12, .ofs_x = 1, .ofs_y = 1},
- {.bitmap_index = 6159, .adv_w = 256, .box_w = 12, .box_h = 11, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 6225, .adv_w = 256, .box_w = 13, .box_h = 12, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 6303, .adv_w = 256, .box_w = 9, .box_h = 13, .ofs_x = 3, .ofs_y = -1},
- {.bitmap_index = 6362, .adv_w = 256, .box_w = 12, .box_h = 12, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 6434, .adv_w = 256, .box_w = 12, .box_h = 13, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 6512, .adv_w = 256, .box_w = 11, .box_h = 11, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 6573, .adv_w = 256, .box_w = 13, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 6651, .adv_w = 256, .box_w = 14, .box_h = 13, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 6742, .adv_w = 256, .box_w = 13, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 6820, .adv_w = 256, .box_w = 12, .box_h = 13, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 6898, .adv_w = 256, .box_w = 14, .box_h = 14, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 6996, .adv_w = 256, .box_w = 13, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 7081, .adv_w = 256, .box_w = 13, .box_h = 12, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 7159, .adv_w = 256, .box_w = 14, .box_h = 14, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 7257, .adv_w = 256, .box_w = 14, .box_h = 14, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 7355, .adv_w = 256, .box_w = 12, .box_h = 12, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 7427, .adv_w = 256, .box_w = 13, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 7505, .adv_w = 256, .box_w = 13, .box_h = 12, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 7583, .adv_w = 256, .box_w = 13, .box_h = 8, .ofs_x = 1, .ofs_y = 2},
- {.bitmap_index = 7635, .adv_w = 256, .box_w = 13, .box_h = 10, .ofs_x = 1, .ofs_y = 2},
- {.bitmap_index = 7700, .adv_w = 256, .box_w = 13, .box_h = 9, .ofs_x = 1, .ofs_y = 2},
- {.bitmap_index = 7759, .adv_w = 256, .box_w = 12, .box_h = 12, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 7831, .adv_w = 256, .box_w = 14, .box_h = 12, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 7915, .adv_w = 256, .box_w = 14, .box_h = 12, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 7999, .adv_w = 256, .box_w = 9, .box_h = 13, .ofs_x = 3, .ofs_y = -1},
- {.bitmap_index = 8058, .adv_w = 256, .box_w = 13, .box_h = 13, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 8143, .adv_w = 256, .box_w = 11, .box_h = 12, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 8209, .adv_w = 256, .box_w = 12, .box_h = 13, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 8287, .adv_w = 256, .box_w = 9, .box_h = 13, .ofs_x = 3, .ofs_y = -1},
- {.bitmap_index = 8346, .adv_w = 256, .box_w = 11, .box_h = 10, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 8401, .adv_w = 256, .box_w = 14, .box_h = 13, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 8492, .adv_w = 256, .box_w = 10, .box_h = 9, .ofs_x = 3, .ofs_y = -1},
- {.bitmap_index = 8537, .adv_w = 256, .box_w = 12, .box_h = 13, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 8615, .adv_w = 256, .box_w = 8, .box_h = 9, .ofs_x = 4, .ofs_y = -1},
- {.bitmap_index = 8651, .adv_w = 256, .box_w = 9, .box_h = 12, .ofs_x = 3, .ofs_y = 0},
- {.bitmap_index = 8705, .adv_w = 256, .box_w = 10, .box_h = 13, .ofs_x = 3, .ofs_y = -1},
- {.bitmap_index = 8770, .adv_w = 256, .box_w = 8, .box_h = 13, .ofs_x = 4, .ofs_y = -1},
- {.bitmap_index = 8822, .adv_w = 256, .box_w = 10, .box_h = 13, .ofs_x = 3, .ofs_y = -1},
- {.bitmap_index = 8887, .adv_w = 256, .box_w = 14, .box_h = 13, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 8978, .adv_w = 256, .box_w = 10, .box_h = 13, .ofs_x = 3, .ofs_y = -1},
- {.bitmap_index = 9043, .adv_w = 256, .box_w = 13, .box_h = 13, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 9128, .adv_w = 256, .box_w = 11, .box_h = 13, .ofs_x = 3, .ofs_y = -1},
- {.bitmap_index = 9200, .adv_w = 256, .box_w = 13, .box_h = 13, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 9285, .adv_w = 256, .box_w = 9, .box_h = 11, .ofs_x = 4, .ofs_y = -2},
- {.bitmap_index = 9335, .adv_w = 256, .box_w = 12, .box_h = 13, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 9413, .adv_w = 256, .box_w = 8, .box_h = 11, .ofs_x = 3, .ofs_y = -1},
- {.bitmap_index = 9457, .adv_w = 256, .box_w = 10, .box_h = 13, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 9522, .adv_w = 256, .box_w = 11, .box_h = 13, .ofs_x = 3, .ofs_y = -1},
- {.bitmap_index = 9594, .adv_w = 256, .box_w = 10, .box_h = 7, .ofs_x = 3, .ofs_y = 1},
- {.bitmap_index = 9629, .adv_w = 256, .box_w = 12, .box_h = 9, .ofs_x = 2, .ofs_y = 1},
- {.bitmap_index = 9683, .adv_w = 256, .box_w = 13, .box_h = 13, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 9768, .adv_w = 256, .box_w = 11, .box_h = 13, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 9840, .adv_w = 256, .box_w = 13, .box_h = 14, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 9931, .adv_w = 256, .box_w = 11, .box_h = 13, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 10003, .adv_w = 256, .box_w = 12, .box_h = 13, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 10081, .adv_w = 256, .box_w = 10, .box_h = 14, .ofs_x = 3, .ofs_y = -1},
- {.bitmap_index = 10151, .adv_w = 256, .box_w = 12, .box_h = 14, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 10235, .adv_w = 256, .box_w = 12, .box_h = 13, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 10313, .adv_w = 256, .box_w = 13, .box_h = 13, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 10398, .adv_w = 256, .box_w = 10, .box_h = 9, .ofs_x = 3, .ofs_y = 1},
- {.bitmap_index = 10443, .adv_w = 256, .box_w = 12, .box_h = 12, .ofs_x = 2, .ofs_y = 1},
- {.bitmap_index = 10515, .adv_w = 256, .box_w = 14, .box_h = 12, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 10599, .adv_w = 256, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 10704, .adv_w = 256, .box_w = 12, .box_h = 12, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 10776, .adv_w = 256, .box_w = 12, .box_h = 12, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 10848, .adv_w = 256, .box_w = 11, .box_h = 11, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 10909, .adv_w = 256, .box_w = 14, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 11000, .adv_w = 256, .box_w = 12, .box_h = 11, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 11066, .adv_w = 256, .box_w = 13, .box_h = 13, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 11151, .adv_w = 256, .box_w = 10, .box_h = 12, .ofs_x = 3, .ofs_y = -1},
- {.bitmap_index = 11211, .adv_w = 256, .box_w = 11, .box_h = 13, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 11283, .adv_w = 256, .box_w = 14, .box_h = 14, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 11381, .adv_w = 256, .box_w = 12, .box_h = 13, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 11459, .adv_w = 256, .box_w = 9, .box_h = 9, .ofs_x = 3, .ofs_y = -1},
- {.bitmap_index = 11500, .adv_w = 256, .box_w = 10, .box_h = 12, .ofs_x = 3, .ofs_y = -1},
- {.bitmap_index = 11560, .adv_w = 256, .box_w = 11, .box_h = 12, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 11626, .adv_w = 256, .box_w = 14, .box_h = 14, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 11724, .adv_w = 256, .box_w = 7, .box_h = 13, .ofs_x = 6, .ofs_y = -1},
- {.bitmap_index = 11770, .adv_w = 256, .box_w = 9, .box_h = 13, .ofs_x = 5, .ofs_y = -1},
- {.bitmap_index = 11829, .adv_w = 256, .box_w = 12, .box_h = 13, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 11907, .adv_w = 256, .box_w = 13, .box_h = 8, .ofs_x = 1, .ofs_y = 1},
- {.bitmap_index = 11959, .adv_w = 256, .box_w = 12, .box_h = 13, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 12037, .adv_w = 256, .box_w = 11, .box_h = 11, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 12098, .adv_w = 256, .box_w = 13, .box_h = 7, .ofs_x = 1, .ofs_y = 2},
- {.bitmap_index = 12144, .adv_w = 256, .box_w = 14, .box_h = 10, .ofs_x = 1, .ofs_y = 2},
- {.bitmap_index = 12214, .adv_w = 256, .box_w = 14, .box_h = 10, .ofs_x = 1, .ofs_y = 2},
- {.bitmap_index = 12284, .adv_w = 256, .box_w = 9, .box_h = 11, .ofs_x = 3, .ofs_y = 0},
- {.bitmap_index = 12334, .adv_w = 256, .box_w = 10, .box_h = 11, .ofs_x = 4, .ofs_y = 0},
- {.bitmap_index = 12389, .adv_w = 256, .box_w = 11, .box_h = 12, .ofs_x = 4, .ofs_y = 0},
- {.bitmap_index = 12455, .adv_w = 256, .box_w = 12, .box_h = 11, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 12521, .adv_w = 256, .box_w = 14, .box_h = 14, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 12619, .adv_w = 256, .box_w = 14, .box_h = 14, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 12717, .adv_w = 256, .box_w = 14, .box_h = 11, .ofs_x = 1, .ofs_y = 1},
- {.bitmap_index = 12794, .adv_w = 256, .box_w = 14, .box_h = 11, .ofs_x = 1, .ofs_y = 1},
- {.bitmap_index = 12871, .adv_w = 256, .box_w = 11, .box_h = 12, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 12937, .adv_w = 256, .box_w = 12, .box_h = 14, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 13021, .adv_w = 256, .box_w = 11, .box_h = 12, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 13087, .adv_w = 256, .box_w = 12, .box_h = 9, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 13141, .adv_w = 256, .box_w = 8, .box_h = 12, .ofs_x = 4, .ofs_y = -1},
- {.bitmap_index = 13189, .adv_w = 256, .box_w = 11, .box_h = 11, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 13250, .adv_w = 256, .box_w = 11, .box_h = 12, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 13316, .adv_w = 256, .box_w = 12, .box_h = 10, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 13376, .adv_w = 256, .box_w = 11, .box_h = 10, .ofs_x = 3, .ofs_y = -2},
- {.bitmap_index = 13431, .adv_w = 256, .box_w = 13, .box_h = 13, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 13516, .adv_w = 256, .box_w = 10, .box_h = 7, .ofs_x = 3, .ofs_y = 0},
- {.bitmap_index = 13551, .adv_w = 256, .box_w = 8, .box_h = 8, .ofs_x = 4, .ofs_y = 0},
- {.bitmap_index = 13583, .adv_w = 256, .box_w = 11, .box_h = 11, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 13644, .adv_w = 256, .box_w = 10, .box_h = 12, .ofs_x = 3, .ofs_y = -1},
- {.bitmap_index = 13704, .adv_w = 256, .box_w = 7, .box_h = 13, .ofs_x = 4, .ofs_y = -1},
- {.bitmap_index = 13750, .adv_w = 256, .box_w = 14, .box_h = 10, .ofs_x = 1, .ofs_y = 0},
- {.bitmap_index = 13820, .adv_w = 256, .box_w = 10, .box_h = 10, .ofs_x = 3, .ofs_y = 0},
- {.bitmap_index = 13870, .adv_w = 256, .box_w = 10, .box_h = 10, .ofs_x = 3, .ofs_y = 0},
- {.bitmap_index = 13920, .adv_w = 256, .box_w = 11, .box_h = 12, .ofs_x = 3, .ofs_y = -1},
- {.bitmap_index = 13986, .adv_w = 256, .box_w = 12, .box_h = 11, .ofs_x = 2, .ofs_y = 0},
- {.bitmap_index = 14052, .adv_w = 256, .box_w = 10, .box_h = 9, .ofs_x = 3, .ofs_y = -1},
- {.bitmap_index = 14097, .adv_w = 256, .box_w = 15, .box_h = 3, .ofs_x = 1, .ofs_y = 5},
- {.bitmap_index = 14120, .adv_w = 256, .box_w = 16, .box_h = 2, .ofs_x = 0, .ofs_y = 6},
- {.bitmap_index = 14136, .adv_w = 256, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 14248, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 14353, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 14473, .adv_w = 256, .box_w = 16, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 14577, .adv_w = 256, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 14689, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 14794, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 14907, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 15035, .adv_w = 256, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 15147, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 15267, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 15387, .adv_w = 256, .box_w = 15, .box_h = 14, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 15492, .adv_w = 256, .box_w = 13, .box_h = 16, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 15596, .adv_w = 256, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 15701, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 15821, .adv_w = 256, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 15933, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 16046, .adv_w = 256, .box_w = 15, .box_h = 14, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 16151, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 16271, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 16384, .adv_w = 256, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 16489, .adv_w = 256, .box_w = 13, .box_h = 15, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 16587, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 16700, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 16828, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 16948, .adv_w = 256, .box_w = 16, .box_h = 11, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 17036, .adv_w = 256, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 17148, .adv_w = 256, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 17260, .adv_w = 256, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 17372, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 17500, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 17620, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 17740, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 17860, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 17980, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 18108, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 18228, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 18356, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 18476, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 18604, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 18724, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 18852, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 18980, .adv_w = 256, .box_w = 13, .box_h = 15, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 19078, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 19206, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 19334, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 19454, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 19574, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 19694, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 19822, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 19942, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 20070, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 20190, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 20310, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 20438, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 20558, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 20686, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 20814, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 20927, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 21055, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 21175, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 21303, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 21431, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 21559, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 21679, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 21799, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 21912, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 22032, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 22160, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 22273, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 22393, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 22513, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 22641, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 22769, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 22897, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 23017, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 23137, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 23265, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 23393, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 23513, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 23641, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 23769, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 23897, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 24017, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 24137, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 24265, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 24393, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 24521, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 24634, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 24762, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 24890, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 25018, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 25131, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 25251, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 25371, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 25491, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 25596, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 25716, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 25836, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 25956, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 26076, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 26204, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 26324, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 26437, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 26557, .adv_w = 256, .box_w = 13, .box_h = 16, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 26661, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 26789, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 26902, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 27022, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 27135, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 27255, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 27375, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 27503, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 27623, .adv_w = 256, .box_w = 13, .box_h = 16, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 27727, .adv_w = 256, .box_w = 13, .box_h = 15, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 27825, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 27945, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 28058, .adv_w = 256, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 28170, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 28283, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 28396, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 28524, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 28637, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 28757, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 28877, .adv_w = 256, .box_w = 13, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 28975, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 29088, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 29201, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 29314, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 29427, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 29555, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 29675, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 29788, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 29908, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 30021, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 30141, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 30269, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 30397, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 30510, .adv_w = 256, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 30622, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 30742, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 30847, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 30967, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 31095, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 31223, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 31343, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 31463, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 31583, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 31696, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 31816, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 31944, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 32072, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 32192, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 32312, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 32432, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 32560, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 32688, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 32808, .adv_w = 256, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 32920, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 33033, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 33146, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 33259, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 33364, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 33484, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 33604, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 33724, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 33852, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 33972, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 34092, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 34212, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 34325, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 34445, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 34550, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 34670, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 34783, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 34888, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 35001, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 35121, .adv_w = 256, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
- {.bitmap_index = 35257, .adv_w = 256, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
- {.bitmap_index = 35393, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 35513, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 35633, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 35761, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 35881, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 36001, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 36121, .adv_w = 256, .box_w = 11, .box_h = 13, .ofs_x = 3, .ofs_y = -1},
- {.bitmap_index = 36193, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 36313, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 36433, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 36538, .adv_w = 256, .box_w = 13, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 36636, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 36741, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 36861, .adv_w = 256, .box_w = 13, .box_h = 16, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 36965, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 37093, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 37213, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 37318, .adv_w = 256, .box_w = 13, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 37416, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 37521, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 37649, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 37777, .adv_w = 256, .box_w = 13, .box_h = 15, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 37875, .adv_w = 256, .box_w = 14, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 37987, .adv_w = 256, .box_w = 13, .box_h = 16, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 38091, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 38196, .adv_w = 256, .box_w = 15, .box_h = 13, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 38294, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 38407, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 38512, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 38617, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 38730, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 38850, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 38963, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 39091, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 39204, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 39324, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 39429, .adv_w = 256, .box_w = 13, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 39533, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 39646, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 39766, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 39879, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 39984, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 40097, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 40225, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 40338, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 40466, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 40571, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 40691, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 40804, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 40917, .adv_w = 256, .box_w = 15, .box_h = 14, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 41022, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 41142, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 41262, .adv_w = 256, .box_w = 13, .box_h = 15, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 41360, .adv_w = 256, .box_w = 13, .box_h = 15, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 41458, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 41563, .adv_w = 256, .box_w = 13, .box_h = 15, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 41661, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 41781, .adv_w = 256, .box_w = 13, .box_h = 15, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 41879, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 41999, .adv_w = 256, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 42111, .adv_w = 256, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 42223, .adv_w = 256, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 42335, .adv_w = 256, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 42447, .adv_w = 256, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 42559, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 42687, .adv_w = 256, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 42799, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 42912, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 43025, .adv_w = 256, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 43137, .adv_w = 256, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 43249, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 43377, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 43505, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 43633, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 43753, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 43881, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 44009, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 44137, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 44265, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 44385, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 44505, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 44633, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 44761, .adv_w = 256, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 44866, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 44986, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 45099, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 45212, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 45332, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 45437, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 45550, .adv_w = 256, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 45662, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 45790, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 45910, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 46038, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 46158, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 46286, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 46406, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 46526, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 46646, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 46774, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 46894, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 47022, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 47135, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 47263, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 47383, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 47496, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 47616, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 47744, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 47872, .adv_w = 256, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
- {.bitmap_index = 48008, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 48128, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 48256, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 48384, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 48504, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 48632, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 48760, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 48888, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 49016, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 49136, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 49256, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 49376, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 49496, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 49624, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 49752, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 49872, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 49985, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 50105, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 50225, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 50353, .adv_w = 256, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 50458, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 50578, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 50698, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 50818, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 50946, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 51066, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 51186, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 51299, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 51412, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 51532, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 51652, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 51780, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 51900, .adv_w = 256, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 52012, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 52117, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 52245, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 52365, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 52485, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 52605, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 52725, .adv_w = 256, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 52837, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 52957, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 53085, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 53205, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 53325, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 53445, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 53573, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 53693, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 53821, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 53941, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 54061, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 54189, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 54309, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 54414, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 54527, .adv_w = 256, .box_w = 13, .box_h = 16, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 54631, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 54751, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 54879, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 54999, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 55112, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 55232, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 55345, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 55465, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 55578, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 55698, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 55818, .adv_w = 256, .box_w = 13, .box_h = 14, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 55909, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 56029, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 56149, .adv_w = 256, .box_w = 13, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 56247, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 56352, .adv_w = 256, .box_w = 15, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 56450, .adv_w = 256, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 56555, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 56675, .adv_w = 256, .box_w = 14, .box_h = 14, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 56773, .adv_w = 256, .box_w = 14, .box_h = 14, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 56871, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 56991, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 57111, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 57224, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 57352, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 57472, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 57592, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 57720, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 57840, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 57953, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 58073, .adv_w = 256, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 58185, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 58290, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 58410, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 58538, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 58666, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 58794, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 58907, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 59035, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 59163, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 59283, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 59411, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 59531, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 59651, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 59771, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 59899, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 60027, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 60155, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 60283, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 60403, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 60523, .adv_w = 256, .box_w = 12, .box_h = 15, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 60613, .adv_w = 256, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 60725, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 60838, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 60958, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 61086, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 61191, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 61311, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 61431, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 61559, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 61679, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 61799, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 61919, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 62039, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 62167, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 62287, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 62407, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 62535, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 62663, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 62783, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 62903, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 63031, .adv_w = 256, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 63136, .adv_w = 256, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 63241, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 63354, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 63474, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 63602, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 63730, .adv_w = 256, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 63842, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 63962, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 64082, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 64195, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 64308, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 64436, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 64541, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 64654, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 64759, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 64879, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 65007, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 65127, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 65240, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 65353, .adv_w = 256, .box_w = 14, .box_h = 14, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 65451, .adv_w = 256, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 65563, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 65691, .adv_w = 256, .box_w = 15, .box_h = 14, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 65796, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 65916, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 66029, .adv_w = 256, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
- {.bitmap_index = 66165, .adv_w = 256, .box_w = 15, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
- {.bitmap_index = 66293, .adv_w = 256, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 66405, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 66525, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 66653, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 66773, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 66893, .adv_w = 256, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
- {.bitmap_index = 67029, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 67149, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 67269, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 67389, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 67509, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 67637, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 67757, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 67877, .adv_w = 256, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
- {.bitmap_index = 68013, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 68141, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 68269, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 68389, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 68509, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 68629, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 68749, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 68862, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 68982, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 69110, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 69238, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 69358, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 69478, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 69591, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 69711, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 69839, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 69967, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 70095, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 70223, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 70343, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 70463, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 70591, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 70719, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 70839, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 70952, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 71072, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 71200, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 71328, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 71456, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 71576, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 71696, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 71816, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 71936, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 72064, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 72192, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 72305, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 72418, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 72546, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 72674, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 72794, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 72907, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 73027, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 73155, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 73283, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 73411, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 73539, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 73659, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 73787, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 73900, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 74020, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 74140, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 74260, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 74380, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 74508, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 74628, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 74748, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 74868, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 74981, .adv_w = 256, .box_w = 10, .box_h = 15, .ofs_x = 3, .ofs_y = -2},
- {.bitmap_index = 75056, .adv_w = 256, .box_w = 16, .box_h = 13, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 75160, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 75280, .adv_w = 256, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 75392, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 75505, .adv_w = 256, .box_w = 13, .box_h = 15, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 75603, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 75708, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 75836, .adv_w = 256, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 75941, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 76046, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 76174, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 76294, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 76407, .adv_w = 256, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 76519, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 76624, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 76744, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 76872, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 76992, .adv_w = 256, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 77104, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 77224, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 77337, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 77457, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 77562, .adv_w = 256, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 77674, .adv_w = 256, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 77786, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 77891, .adv_w = 256, .box_w = 12, .box_h = 16, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 77987, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 78107, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 78227, .adv_w = 256, .box_w = 12, .box_h = 16, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 78323, .adv_w = 256, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 78435, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 78563, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 78691, .adv_w = 256, .box_w = 13, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 78789, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 78917, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 79030, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 79150, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 79263, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 79383, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 79503, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 79623, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 79736, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 79849, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 79977, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 80105, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 80233, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 80361, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 80489, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 80609, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 80737, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 80865, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 80993, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 81113, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 81233, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 81361, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 81474, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 81602, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 81730, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 81850, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 81978, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 82106, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 82234, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 82362, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 82490, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 82610, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 82738, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 82866, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 82994, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 83122, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 83250, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 83378, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 83506, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 83634, .adv_w = 256, .box_w = 15, .box_h = 17, .ofs_x = 1, .ofs_y = -3},
- {.bitmap_index = 83762, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 83890, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 84018, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 84138, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 84266, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 84394, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 84522, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 84650, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 84770, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 84898, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 85026, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 85154, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 85282, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 85410, .adv_w = 256, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
- {.bitmap_index = 85546, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 85666, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 85786, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 85914, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 86042, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 86170, .adv_w = 256, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 86282, .adv_w = 256, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 86394, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 86522, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 86642, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 86770, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 86898, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 87026, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 87154, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 87274, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 87394, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 87522, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 87650, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 87770, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 87890, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 88018, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 88146, .adv_w = 256, .box_w = 14, .box_h = 14, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 88244, .adv_w = 256, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 88356, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 88461, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 88574, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 88702, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 88830, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 88958, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 89078, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 89198, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 89326, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 89446, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 89559, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 89679, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 89799, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 89919, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 90039, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 90152, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 90272, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 90377, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 90505, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 90633, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 90761, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 90874, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 90987, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 91115, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 91235, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 91348, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 91468, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 91588, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 91716, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 91836, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 91956, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 92084, .adv_w = 256, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 92196, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 92316, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 92429, .adv_w = 256, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 92541, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 92661, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 92774, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 92894, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 93014, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 93142, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 93262, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 93382, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 93510, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 93623, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 93743, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 93863, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 93991, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 94111, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 94239, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 94367, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 94495, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 94623, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 94751, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 94879, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 94999, .adv_w = 256, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 95111, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 95239, .adv_w = 256, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 95351, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 95479, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 95599, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 95712, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 95832, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 95945, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 96065, .adv_w = 256, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 96177, .adv_w = 256, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 96289, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 96409, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 96529, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 96657, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 96785, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 96913, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 97033, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 97153, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 97281, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 97401, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 97529, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 97649, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 97769, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 97889, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 98009, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 98129, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 98257, .adv_w = 256, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 98369, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 98489, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 98602, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 98722, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 98842, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 98962, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 99082, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 99195, .adv_w = 256, .box_w = 13, .box_h = 14, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 99286, .adv_w = 256, .box_w = 13, .box_h = 15, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 99384, .adv_w = 256, .box_w = 13, .box_h = 16, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 99488, .adv_w = 256, .box_w = 13, .box_h = 15, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 99586, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 99691, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 99804, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 99909, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 100029, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 100134, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 100262, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 100382, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 100495, .adv_w = 256, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 100607, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 100735, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 100855, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 100983, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 101096, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 101216, .adv_w = 256, .box_w = 12, .box_h = 15, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 101306, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 101419, .adv_w = 256, .box_w = 13, .box_h = 16, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 101523, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 101628, .adv_w = 256, .box_w = 16, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 101724, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 101844, .adv_w = 256, .box_w = 11, .box_h = 15, .ofs_x = 3, .ofs_y = -2},
- {.bitmap_index = 101927, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 102047, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 102167, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 102295, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 102423, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 102536, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 102641, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 102761, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 102874, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 102994, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 103114, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 103242, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 103362, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 103482, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 103610, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 103730, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 103843, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 103963, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 104083, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 104203, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 104323, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 104451, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 104571, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 104699, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 104819, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 104947, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 105075, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 105195, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 105315, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 105435, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 105555, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 105675, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 105803, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 105923, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 106036, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 106149, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 106269, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 106389, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 106509, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 106637, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 106757, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 106885, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 106998, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 107126, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 107254, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 107382, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 107502, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 107630, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 107750, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 107870, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 107990, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 108110, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 108238, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 108366, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 108494, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 108614, .adv_w = 256, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 108726, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 108839, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 108952, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 109072, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 109192, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 109305, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 109425, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 109545, .adv_w = 256, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 109657, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 109777, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 109905, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 110025, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 110145, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 110265, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 110385, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 110513, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 110633, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 110753, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 110873, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 111001, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 111129, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 111257, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 111377, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 111505, .adv_w = 256, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 111610, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 111738, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 111866, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 111994, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 112114, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 112242, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 112362, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 112490, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 112610, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 112730, .adv_w = 256, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
- {.bitmap_index = 112866, .adv_w = 256, .box_w = 13, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 112964, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 113084, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 113212, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 113332, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 113445, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 113565, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 113678, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 113806, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 113934, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 114054, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 114182, .adv_w = 256, .box_w = 13, .box_h = 16, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 114286, .adv_w = 256, .box_w = 14, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 114398, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 114518, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 114623, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 114743, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 114871, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 114984, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 115104, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 115224, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 115344, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 115457, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 115577, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 115705, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 115833, .adv_w = 256, .box_w = 11, .box_h = 15, .ofs_x = 3, .ofs_y = -2},
- {.bitmap_index = 115916, .adv_w = 256, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 116021, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 116149, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 116269, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 116382, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 116510, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 116638, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 116766, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 116894, .adv_w = 256, .box_w = 13, .box_h = 16, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 116998, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 117118, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 117238, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 117358, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 117486, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 117614, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 117734, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 117854, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 117974, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 118087, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 118200, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 118320, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 118448, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 118576, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 118704, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 118824, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 118952, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 119080, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 119208, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 119336, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 119449, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 119569, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 119697, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 119825, .adv_w = 256, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 119937, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 120065, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 120193, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 120313, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 120441, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 120554, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 120674, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 120794, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 120914, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 121034, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 121154, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 121274, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 121402, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 121522, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 121642, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 121762, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 121890, .adv_w = 256, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 122002, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 122122, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 122242, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 122362, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 122490, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 122610, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 122730, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 122858, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 122971, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 123099, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 123219, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 123339, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 123452, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 123572, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 123692, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 123820, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 123940, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 124060, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 124188, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 124308, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 124428, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 124556, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 124684, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 124812, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 124940, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 125060, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 125180, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 125308, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 125428, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 125556, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 125684, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 125804, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 125924, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 126052, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 126172, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 126300, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 126428, .adv_w = 256, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
- {.bitmap_index = 126564, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 126692, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 126805, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 126918, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 127038, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 127158, .adv_w = 256, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 127270, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 127390, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 127503, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 127623, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 127743, .adv_w = 256, .box_w = 13, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 127841, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 127961, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 128081, .adv_w = 256, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 128193, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 128313, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 128433, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 128538, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 128666, .adv_w = 256, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 128778, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 128898, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 129026, .adv_w = 256, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
- {.bitmap_index = 129162, .adv_w = 256, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = -3},
- {.bitmap_index = 129298, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 129418, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 129538, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 129666, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 129786, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 129914, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 130034, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 130154, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 130282, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 130410, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 130538, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 130666, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 130794, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 130922, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 131050, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 131178, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 131291, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 131419, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 131547, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 131675, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 131795, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 131915, .adv_w = 256, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 132027, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 132147, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 132267, .adv_w = 256, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 132379, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 132507, .adv_w = 256, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 132619, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 132739, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 132859, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 132979, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 133099, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 133219, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 133339, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 133459, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 133579, .adv_w = 256, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 133691, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 133811, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 133931, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 134051, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 134171, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 134291, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 134411, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 134531, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 134651, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 134779, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 134907, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 135027, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 135155, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 135275, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 135403, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 135523, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 135651, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 135764, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 135884, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 136004, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 136117, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 136245, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 136365, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 136485, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 136613, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 136741, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 136861, .adv_w = 256, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 136966, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 137086, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 137206, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 137334, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 137462, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 137582, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 137702, .adv_w = 256, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 137814, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 137942, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 138062, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 138182, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 138302, .adv_w = 256, .box_w = 13, .box_h = 15, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 138400, .adv_w = 256, .box_w = 13, .box_h = 15, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 138498, .adv_w = 256, .box_w = 13, .box_h = 16, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 138602, .adv_w = 256, .box_w = 13, .box_h = 15, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 138700, .adv_w = 256, .box_w = 13, .box_h = 15, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 138798, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 138903, .adv_w = 256, .box_w = 13, .box_h = 15, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 139001, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 139106, .adv_w = 256, .box_w = 14, .box_h = 16, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 139218, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 139331, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 139444, .adv_w = 256, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 139556, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 139669, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 139774, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 139887, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 140007, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 140112, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 140225, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 140345, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 140465, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 140593, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 140713, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 140826, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 140954, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 141067, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 141195, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 141300, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 141413, .adv_w = 256, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 141525, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 141630, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 141743, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 141863, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 141991, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 142119, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 142239, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 142359, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 142479, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 142607, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 142727, .adv_w = 256, .box_w = 14, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 142839, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 142952, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 143072, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 143185, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 143305, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 143425, .adv_w = 256, .box_w = 15, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 143538, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 143658, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 143778, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 143898, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 144018, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 144138, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 144258, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 144378, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 144498, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 144626, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 144746, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 144866, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 144986, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 145114, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 145234, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 145362, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 145482, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 145602, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 145730, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 145858, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 145978, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 146098, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 146226, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 146346, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 146466, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 146586, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 146706, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 146826, .adv_w = 256, .box_w = 14, .box_h = 15, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 146931, .adv_w = 256, .box_w = 16, .box_h = 15, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 147051, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 147179, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 147307, .adv_w = 256, .box_w = 15, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 147427, .adv_w = 256, .box_w = 16, .box_h = 17, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 147563, .adv_w = 256, .box_w = 16, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 147659, .adv_w = 256, .box_w = 16, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 147771, .adv_w = 256, .box_w = 16, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 147867, .adv_w = 176, .box_w = 11, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 147933, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 148061, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 148189, .adv_w = 288, .box_w = 18, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 148315, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 148443, .adv_w = 288, .box_w = 18, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 148551, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 148679, .adv_w = 128, .box_w = 8, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 148735, .adv_w = 192, .box_w = 12, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 148819, .adv_w = 288, .box_w = 18, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 148963, .adv_w = 256, .box_w = 16, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 149059, .adv_w = 176, .box_w = 11, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 149147, .adv_w = 224, .box_w = 10, .box_h = 16, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 149227, .adv_w = 224, .box_w = 14, .box_h = 18, .ofs_x = 0, .ofs_y = -3},
- {.bitmap_index = 149353, .adv_w = 224, .box_w = 14, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 149458, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 149556, .adv_w = 224, .box_w = 10, .box_h = 16, .ofs_x = 2, .ofs_y = -2},
- {.bitmap_index = 149636, .adv_w = 224, .box_w = 16, .box_h = 14, .ofs_x = -1, .ofs_y = -1},
- {.bitmap_index = 149748, .adv_w = 160, .box_w = 10, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 149818, .adv_w = 160, .box_w = 10, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 149888, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 149986, .adv_w = 224, .box_w = 14, .box_h = 4, .ofs_x = 0, .ofs_y = 4},
- {.bitmap_index = 150014, .adv_w = 288, .box_w = 18, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 150122, .adv_w = 320, .box_w = 20, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 150282, .adv_w = 288, .box_w = 20, .box_h = 16, .ofs_x = -1, .ofs_y = -2},
- {.bitmap_index = 150442, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 150570, .adv_w = 224, .box_w = 14, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
- {.bitmap_index = 150640, .adv_w = 224, .box_w = 14, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
- {.bitmap_index = 150710, .adv_w = 320, .box_w = 20, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 150850, .adv_w = 256, .box_w = 16, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 150946, .adv_w = 256, .box_w = 16, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 151074, .adv_w = 256, .box_w = 17, .box_h = 17, .ofs_x = -1, .ofs_y = -2},
- {.bitmap_index = 151219, .adv_w = 224, .box_w = 15, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 151324, .adv_w = 224, .box_w = 14, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 151436, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 151534, .adv_w = 224, .box_w = 14, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 151632, .adv_w = 256, .box_w = 16, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 151728, .adv_w = 160, .box_w = 12, .box_h = 16, .ofs_x = -1, .ofs_y = -2},
- {.bitmap_index = 151824, .adv_w = 224, .box_w = 14, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 151936, .adv_w = 224, .box_w = 14, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 152048, .adv_w = 288, .box_w = 18, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 152156, .adv_w = 256, .box_w = 18, .box_h = 18, .ofs_x = -1, .ofs_y = -3},
- {.bitmap_index = 152318, .adv_w = 192, .box_w = 12, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 152414, .adv_w = 320, .box_w = 20, .box_h = 15, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 152564, .adv_w = 320, .box_w = 20, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
- {.bitmap_index = 152664, .adv_w = 320, .box_w = 20, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
- {.bitmap_index = 152764, .adv_w = 320, .box_w = 20, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
- {.bitmap_index = 152864, .adv_w = 320, .box_w = 20, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
- {.bitmap_index = 152964, .adv_w = 320, .box_w = 20, .box_h = 10, .ofs_x = 0, .ofs_y = 1},
- {.bitmap_index = 153064, .adv_w = 320, .box_w = 21, .box_h = 14, .ofs_x = 0, .ofs_y = -1},
- {.bitmap_index = 153211, .adv_w = 224, .box_w = 12, .box_h = 16, .ofs_x = 1, .ofs_y = -2},
- {.bitmap_index = 153307, .adv_w = 224, .box_w = 14, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 153419, .adv_w = 256, .box_w = 17, .box_h = 17, .ofs_x = -1, .ofs_y = -3},
- {.bitmap_index = 153564, .adv_w = 320, .box_w = 20, .box_h = 12, .ofs_x = 0, .ofs_y = 0},
- {.bitmap_index = 153684, .adv_w = 192, .box_w = 12, .box_h = 16, .ofs_x = 0, .ofs_y = -2},
- {.bitmap_index = 153780, .adv_w = 258, .box_w = 17, .box_h = 11, .ofs_x = 0, .ofs_y = 1},
- {.bitmap_index = 153874, .adv_w = 256, .box_w = 5, .box_h = 14, .ofs_x = 9, .ofs_y = -1},
- {.bitmap_index = 153909, .adv_w = 256, .box_w = 5, .box_h = 14, .ofs_x = 2, .ofs_y = -1},
- {.bitmap_index = 153944, .adv_w = 256, .box_w = 4, .box_h = 5, .ofs_x = 1, .ofs_y = -1},
- {.bitmap_index = 153954, .adv_w = 256, .box_w = 6, .box_h = 11, .ofs_x = 5, .ofs_y = 0},
- {.bitmap_index = 153987, .adv_w = 256, .box_w = 8, .box_h = 12, .ofs_x = 4, .ofs_y = 0}
-};
-
-/*---------------------
- * CHARACTER MAPPING
- *--------------------*/
-
-static const uint16_t unicode_list_1[] = {
- 0x0, 0x1, 0x4, 0xb, 0xc, 0x40, 0x41, 0x42,
- 0x43, 0x45, 0x46, 0x47
-};
-
-static const uint8_t glyph_id_ofs_list_4[] = {
- 0, 0, 0, 1, 2, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 3, 4, 5, 6, 0, 7,
- 8, 9, 0, 10, 11, 12, 13, 14,
- 15, 16, 17, 18, 19, 20, 21, 22,
- 23, 24, 25, 26, 27, 28, 29, 0,
- 30, 31, 32, 0, 33, 34, 0, 35,
- 36, 37, 38, 39, 40, 0, 41, 42,
- 43, 44, 45, 46, 47, 48, 49, 50,
- 51, 0, 52, 53, 54, 55, 56, 57,
- 58, 59, 60, 61, 62, 63, 64, 0,
- 65, 66, 67, 68, 69, 70, 71
-};
-
-static const uint16_t unicode_list_5[] = {
- 0x0, 0x4, 0x7, 0xd, 0x1d11, 0x1d14, 0x1d18, 0x1d19,
- 0x1d1a, 0x1d1b, 0x1d1c, 0x1d1e, 0x1d24, 0x1d25, 0x1d27, 0x1d32,
- 0x1d37, 0x1d3e, 0x1d4c, 0x1d56, 0x1d5c, 0x1d5f, 0x1d60, 0x1d68,
- 0x1d6e, 0x1d70, 0x1d97, 0x1d99, 0x1d9a, 0x1d9c, 0x1d9d, 0x1da5,
- 0x1dac, 0x1db2, 0x1db5, 0x1db7, 0x1dbd, 0x1dcb, 0x1dd1, 0x1ddb,
- 0x1ddc, 0x1dde, 0x1de6, 0x1de7, 0x1de9, 0x1df4, 0x1df5, 0x1df6,
- 0x1dff, 0x1e07, 0x1e0c, 0x1e0e, 0x1e12, 0x1e1b, 0x1e22, 0x1e2b,
- 0x1e2e, 0x1e49, 0x1e4d, 0x1e57, 0x1e5e, 0x1e5f, 0x1e60, 0x1e64,
- 0x1e66, 0x1e6a, 0x1e6d, 0x1e71, 0x1e90, 0x1e97, 0x1e9c, 0x1eac,
- 0x1eae, 0x1eb2, 0x1ed0, 0x1ed3, 0x1eee, 0x1ef2, 0x1eff, 0x1f1c,
- 0x1f22, 0x1f2a, 0x1f30, 0x1f35, 0x1f4d, 0x1f6b, 0x1f6d, 0x1f76,
- 0x1f85, 0x1faa, 0x1fc4, 0x1fd6, 0x1fde, 0x1fe0, 0x1fe6, 0x200a,
- 0x2015, 0x203b, 0x2050, 0x2054, 0x2055, 0x2056, 0x2059, 0x205a,
- 0x205c, 0x205e, 0x2063, 0x206b, 0x2076, 0x2078, 0x2079, 0x207a,
- 0x207c, 0x207d, 0x207e, 0x2082, 0x2087, 0x2088, 0x2096, 0x2097,
- 0x209b, 0x209e, 0x20aa, 0x20ac, 0x20bd, 0x20c8, 0x20de, 0x20ee,
- 0x20f7, 0x210b, 0x2117, 0x2118, 0x211b, 0x2128, 0x212e, 0x2135,
- 0x2136, 0x213a, 0x2141, 0x2147, 0x2149, 0x214c, 0x2158, 0x215b,
- 0x215e, 0x216c, 0x2183, 0x2186, 0x2194, 0x21ac, 0x21b0, 0x21b1,
- 0x21b9, 0x21ba, 0x21bb, 0x21c4, 0x21da, 0x21e6, 0x21ea, 0x21ee,
- 0x21f5, 0x2206, 0x2216, 0x2227, 0x2228, 0x224c, 0x2251, 0x2252,
- 0x2254, 0x2259, 0x225b, 0x2263, 0x2265, 0x2268, 0x2269, 0x2282,
- 0x2284, 0x228c, 0x22ab, 0x22b0, 0x22c4, 0x22cc, 0x22d3, 0x22d4,
- 0x22d9, 0x22db, 0x22dc, 0x22de, 0x22e7, 0x22e8, 0x22f4, 0x22f5,
- 0x22f6, 0x22f7, 0x22fb, 0x22fc, 0x2300, 0x2301, 0x2303, 0x2304,
- 0x2308, 0x2309, 0x2314, 0x2315, 0x2319, 0x231d, 0x231e, 0x2322,
- 0x2337, 0x2338, 0x2351, 0x235b, 0x2373, 0x2379, 0x2384, 0x238d,
- 0x238e, 0x239d, 0x23c3, 0x23d2, 0x23f2, 0x23fb, 0x2457, 0x245b,
- 0x2460, 0x2477, 0x2495, 0x249a, 0x24ad, 0x24ae, 0x24bf, 0x24c7,
- 0x24df, 0x2500, 0x252c, 0x25c5, 0x25ec, 0x25ef, 0x25f1, 0x2601,
- 0x2604, 0x260e, 0x261c, 0x261e, 0x2623, 0x2629, 0x2630, 0x2634,
- 0x2639, 0x2641, 0x2658, 0x265b, 0x2661, 0x269c, 0x26f0, 0x2708,
- 0x270b, 0x2742, 0x2745, 0x275b, 0x277a, 0x2794, 0x27a8, 0x27af,
- 0x27db, 0x27e4, 0x27fc, 0x2801, 0x2803, 0x281a, 0x2820, 0x2826,
- 0x2827, 0x282b, 0x282d, 0x2831, 0x2838, 0x283a, 0x283b, 0x283c,
- 0x283f, 0x2842, 0x2858, 0x2862, 0x2868, 0x2884, 0x288a, 0x288e,
- 0x2893, 0x2898, 0x28c4, 0x28ca, 0x28cc, 0x28da, 0x28dc, 0x28e1,
- 0x28e5, 0x2929, 0x296b, 0x2977, 0x29a3, 0x29ce, 0x29dd, 0x2a1a,
- 0x2a61, 0x2a68, 0x2a69, 0x2a74, 0x2a77, 0x2a7a, 0x2a7c, 0x2a89,
- 0x2a94, 0x2a96, 0x2a98, 0x2a99, 0x2a9a, 0x2a9d, 0x2aa9, 0x2aaa,
- 0x2aab, 0x2aaf, 0x2ab0, 0x2ab3, 0x2ab5, 0x2ac4, 0x2ac6, 0x2ac7,
- 0x2aca, 0x2ad0, 0x2ad5, 0x2ad7, 0x2add, 0x2ae3, 0x2aee, 0x2af0,
- 0x2af7, 0x2afc, 0x2b0b, 0x2b0f, 0x2b15, 0x2b18, 0x2b19, 0x2b1e,
- 0x2b1f, 0x2b20, 0x2b22, 0x2b2b, 0x2b35, 0x2b42, 0x2b4b, 0x2b51,
- 0x2b56, 0x2b5b, 0x2b5c, 0x2b66, 0x2b76, 0x2b7d, 0x2b82, 0x2c07,
- 0x2c5d, 0x2cee, 0x2cef, 0x2cf6, 0x2cf7, 0x2cff, 0x2d02, 0x2d03,
- 0x2d13, 0x2d14, 0x2d19, 0x2d1d, 0x2d3c, 0x2d3e, 0x2d40, 0x2d41,
- 0x2d44, 0x2d47, 0x2d49, 0x2d56, 0x2d84, 0x2d85, 0x2d89, 0x2d8f,
- 0x2d94, 0x2d97, 0x2da6, 0x2da8, 0x2dad, 0x2db7, 0x2db8, 0x2dbc,
- 0x2dbe, 0x2dc8, 0x2df1, 0x2e0b, 0x2e10, 0x2e20, 0x2e26, 0x2e30,
- 0x2e42, 0x2e46, 0x2e48, 0x2e64, 0x2e73, 0x2e82, 0x2e8a, 0x2e8d,
- 0x2e91, 0x2e96, 0x2e99, 0x2e9c, 0x2e9d, 0x2ea3, 0x2ea4, 0x2ea8,
- 0x2eaf, 0x2eb2, 0x2eba, 0x2ed4, 0x2ed6, 0x2ee9, 0x2eea, 0x2efc,
- 0x2f06, 0x2f1f, 0x2f23, 0x2f26, 0x2f2e, 0x2f36, 0x2f38, 0x2f80,
- 0x2fb9, 0x2fbb, 0x2fc3, 0x2fd6, 0x3004, 0x3019, 0x3020, 0x302b,
- 0x302c, 0x3030, 0x305c, 0x3074, 0x3078, 0x307f, 0x30da, 0x3109,
- 0x3121, 0x3122, 0x3127, 0x3137, 0x3141, 0x314c, 0x3150, 0x3151,
- 0x315c, 0x315e, 0x3164, 0x3166, 0x318f, 0x3191, 0x319b, 0x31a6,
- 0x31cd, 0x31d6, 0x31da, 0x31ec, 0x31f2, 0x31fd, 0x31fe, 0x3210,
- 0x3212, 0x3218, 0x322a, 0x3266, 0x3279, 0x3299, 0x32a3, 0x32ac,
- 0x32b2, 0x32b3, 0x32b6, 0x32b8, 0x32b9, 0x32e0, 0x32e1, 0x32ec,
- 0x32ff, 0x330b, 0x334b, 0x33d2, 0x33d8, 0x33e5, 0x33eb, 0x3440,
- 0x344a, 0x344f, 0x3450, 0x3456, 0x3459, 0x3468, 0x346a, 0x3473,
- 0x3481, 0x3485, 0x3498, 0x34aa, 0x34be, 0x34c1, 0x34c8, 0x34ca,
- 0x34cd, 0x34ce, 0x34d2, 0x34d6, 0x34e0, 0x34f3, 0x34f6, 0x34f7,
- 0x34fa, 0x3507, 0x3518, 0x351f, 0x3524, 0x3525, 0x3530, 0x3531,
- 0x3536, 0x3539, 0x3540, 0x354d, 0x3553, 0x357a, 0x357f, 0x3580,
- 0x3585, 0x358b, 0x3598, 0x35a2, 0x35a7, 0x35a8, 0x35d8, 0x35ed,
- 0x3603, 0x3605, 0x3609, 0x360f, 0x3610, 0x3611, 0x3614, 0x3619,
- 0x361a, 0x361c, 0x361e, 0x362c, 0x362e, 0x3630, 0x3639, 0x363b,
- 0x363c, 0x363d, 0x363e, 0x364b, 0x3661, 0x3662, 0x3670, 0x3672,
- 0x3676, 0x3680, 0x3682, 0x36a1, 0x36a8, 0x36ad, 0x36e1, 0x36f6,
- 0x3702, 0x370c, 0x3710, 0x3722, 0x3732, 0x373b, 0x374a, 0x374d,
- 0x3754, 0x3759, 0x37ae, 0x37c1, 0x37ff, 0x381e, 0x382d, 0x386b,
- 0x387e, 0x3886, 0x388e, 0x3893, 0x38dc, 0x38e9, 0x3913, 0x392a,
- 0x3932, 0x3934, 0x393b, 0x394a, 0x395c, 0x3970, 0x3a32, 0x3a43,
- 0x3a5d, 0x3a61, 0x3a72, 0x3a73, 0x3a74, 0x3a75, 0x3a76, 0x3a7a,
- 0x3a80, 0x3a83, 0x3a84, 0x3a88, 0x3a8c, 0x3a9b, 0x3a9c, 0x3ac6,
- 0x3ade, 0x3adf, 0x3ae0, 0x3ae5, 0x3aec, 0x3b20, 0x3b22, 0x3b25,
- 0x3b28, 0x3b45, 0x3b48, 0x3b49, 0x3b53, 0x3b6b, 0x3b71, 0x3b8b,
- 0x3b99, 0x3ba3, 0x3bca, 0x3bcc, 0x3bd2, 0x3bdb, 0x3be6, 0x3bf3,
- 0x3bf4, 0x3bf9, 0x3c04, 0x3c1c, 0x3c28, 0x3c43, 0x3c4c, 0x3c4f,
- 0x3c52, 0x3c56, 0x3c85, 0x3c88, 0x3c99, 0x3ccd, 0x3d02, 0x3d08,
- 0x3d16, 0x3d18, 0x3d19, 0x3d1a, 0x3d2c, 0x3d32, 0x3d3a, 0x3d40,
- 0x3d67, 0x3da1, 0x3da7, 0x3dae, 0x3e10, 0x3e33, 0x3e49, 0x3ed4,
- 0x3ef0, 0x3f74, 0x3f7c, 0x3f8e, 0x3fca, 0x3fcb, 0x4032, 0x4047,
- 0x406a, 0x40c2, 0x40f0, 0x413e, 0x4147, 0x4149, 0x4158, 0x416c,
- 0x4171, 0x417a, 0x418a, 0x41bd, 0x41c0, 0x41c7, 0x41d1, 0x41fd,
- 0x41fe, 0x423c, 0x4250, 0x4283, 0x42ba, 0x430f, 0x4314, 0x4317,
- 0x43c1, 0x4429, 0x442b, 0x4430, 0x4433, 0x4434, 0x4439, 0x4441,
- 0x4442, 0x4444, 0x4446, 0x4448, 0x444b, 0x444c, 0x445d, 0x446a,
- 0x447b, 0x447c, 0x4481, 0x4487, 0x44c3, 0x44d6, 0x44ec, 0x458b,
- 0x458d, 0x458e, 0x458f, 0x4595, 0x4597, 0x45d0, 0x45e8, 0x45ff,
- 0x4605, 0x4609, 0x461c, 0x4630, 0x4631, 0x464f, 0x4651, 0x46f6,
- 0x46fe, 0x4704, 0x4713, 0x4725, 0x4745, 0x47cb, 0x484b, 0x484d,
- 0x484f, 0x4867, 0x486e, 0x486f, 0x487e, 0x4892, 0x48d1, 0x48d2,
- 0x48dc, 0x48de, 0x48e2, 0x48e9, 0x490c, 0x491c, 0x493f, 0x495e,
- 0x4987, 0x498b, 0x49a4, 0x49dc, 0x49ea, 0x49f6, 0x4a00, 0x4a22,
- 0x4a37, 0x4a3d, 0x4a57, 0x4a5a, 0x4a65, 0x4a67, 0x4aa8, 0x4ab2,
- 0x4ad1, 0x4ad5, 0x4b32, 0x4b84, 0x4bcf, 0x4be7, 0x4c0c, 0x4c11,
- 0x4c15, 0x4c2a, 0x4c31, 0x4c41, 0x4c4a, 0x4c53, 0x4c55, 0x4c5d,
- 0x4c61, 0x4c72, 0x4c77, 0x4c82, 0x4c86, 0x4ca4, 0x4cab, 0x4cbe,
- 0x4cc3, 0x4ce2, 0x4ce3, 0x4ceb, 0x4cf1, 0x4cfa, 0x4d05, 0x4d4e,
- 0x4d4f, 0x4d65, 0x4d81, 0x4d8d, 0x4d9d, 0x4df0, 0x4e4b, 0x4e7f,
- 0x4e9f, 0x4eba, 0x4ee3, 0x4f12, 0x4f14, 0x4f16, 0x4f1d, 0x4f44,
- 0x4f6f, 0x4f80, 0x4f83, 0x4f88, 0x4f8e, 0x4f9a, 0x4fba, 0x4fc0,
- 0x4fc3, 0x4fdd, 0x5009, 0x500e, 0x5042, 0x505b, 0x5066, 0x5077,
- 0x5081, 0x50ae, 0x50da, 0x50fb, 0x5104, 0x510b, 0x5118, 0x5119,
- 0x511a, 0x513b, 0x513d, 0x514a, 0x5180, 0x5183, 0x5193, 0x51c2,
- 0x51f6, 0x51f7, 0x5202, 0x5247, 0x5288, 0x52e4, 0x52ed, 0x534e,
- 0x535a, 0x5368, 0x5446, 0x5495, 0x54bd, 0x54ee, 0x5518, 0x5566,
- 0x575d, 0x5764, 0x5779, 0x57bc, 0x57e0, 0x57ed, 0x57f2, 0x580e,
- 0x5818, 0x5890, 0x5892, 0x589c, 0x58a0, 0x58a7, 0x58ab, 0x58bb,
- 0x58cb, 0x58d1, 0x58e3, 0x58f4, 0x58f7, 0x5911, 0x5919, 0x591b,
- 0x591f, 0x5924, 0x5929, 0x593b, 0x593e, 0x5942, 0x5944, 0x5945,
- 0x5966, 0x5977, 0x5982, 0x5983, 0x5984, 0x599d, 0x599e, 0x59a6,
- 0x59a9, 0x59af, 0x59bb, 0x59bd, 0x59be, 0x59c1, 0x59c3, 0x59d0,
- 0x59d8, 0x59dc, 0x59e7, 0x5a09, 0x5a13, 0x5a2c, 0x5a2e, 0x5a69,
- 0x5a81, 0x5a88, 0x5a9b, 0x5aa4, 0x5ab2, 0x5aef, 0x5b61, 0x5b72,
- 0x5bb1, 0x5bb2, 0x5bb8, 0x5bba, 0x5bbd, 0x5bc8, 0x5bc9, 0x5bcc,
- 0x5bd0, 0x5bd4, 0x5bd8, 0x5bfb, 0x5c0e, 0x5c4a, 0x5c75, 0x5c81,
- 0x5c88, 0x5c96, 0x5c9b, 0x5cb4, 0x5cc4, 0x5cf0, 0x5d00, 0x5dbc,
- 0x5ddb, 0x5df0, 0x5df3, 0x5e0e, 0x5e14, 0x5e1a, 0x5e26, 0x5e3b,
- 0x5e49, 0x5eac, 0x5eaf, 0x5eb7, 0x5ec3, 0x5ecb, 0x5ecd, 0x5edf,
- 0x5ee2, 0x5ee5, 0x5efc, 0x5f0e, 0x5f11, 0x5f12, 0x5f14, 0x5f20,
- 0x5f21, 0x5f2a, 0x5f2b, 0x5f30, 0x5f31, 0x5f34, 0x5f3f, 0x5f42,
- 0x5f43, 0x5f56, 0x5f5b, 0x5f5c, 0x5f5f, 0x5f64, 0x5f65, 0x5f66,
- 0x5f71, 0x5f7a, 0x5f89, 0x5f90, 0x5f95, 0x5f9b, 0x5fb4, 0x5fbb,
- 0x5ff9, 0x6006, 0x600e, 0x605e, 0x6063, 0x6065, 0x6089, 0x60bc,
- 0x60de, 0x60df, 0x60e0, 0x60e2, 0x60ee, 0x6155, 0x616c, 0x6191,
- 0x6233, 0x6240, 0x6243, 0x6488, 0x649a, 0x649c, 0x64a4, 0x64b3,
- 0x64ed, 0x6501, 0x6544, 0x6555, 0x655e, 0x6561, 0x6573, 0x6575,
- 0x6589, 0x658e, 0x659f, 0x65ac, 0x65ad, 0x65b4, 0x65b9, 0x65cc,
- 0x65d7, 0x65e2, 0x65e7, 0x65ea, 0x65f3, 0x65f4, 0x65f9, 0x65fb,
- 0x6603, 0x660c, 0x6611, 0x6618, 0x6663, 0x666a, 0x666f, 0x6673,
- 0x667a, 0x6685, 0x6704, 0x6710, 0x6714, 0x6716, 0x6719, 0x6728,
- 0x6729, 0x673e, 0x674d, 0x675d, 0x6765, 0x6769, 0x676f, 0x6780,
- 0x67b9, 0x67ec, 0x67f0, 0x6800, 0x6803, 0x6839, 0x68a7, 0x68aa,
- 0x68d5, 0x68d6, 0x6923, 0x6924, 0x6968, 0x69e5, 0x69e9, 0x69fb,
- 0x6a6b, 0x6bf6, 0x6da8, 0x6dcd, 0x6dd5, 0x6de3, 0x6def, 0x6df9,
- 0x6e24, 0x6e4c, 0xbf12, 0xbf19, 0xbf1c, 0xbf1d, 0xbf1e, 0xbf22,
- 0xbf24, 0xbf26, 0xbf2a, 0xbf2d, 0xbf32, 0xbf37, 0xbf38, 0xbf39,
- 0xbf4f, 0xbf54, 0xbf59, 0xbf5c, 0xbf5d, 0xbf5e, 0xbf62, 0xbf63,
- 0xbf64, 0xbf65, 0xbf78, 0xbf79, 0xbf7f, 0xbf81, 0xbf82, 0xbf85,
- 0xbf88, 0xbf89, 0xbf8a, 0xbf8c, 0xbfa4, 0xbfa6, 0xbfd5, 0xbfd6,
- 0xbfd8, 0xbfda, 0xbff1, 0xbff8, 0xbffb, 0xc004, 0xc02d, 0xc035,
- 0xc06c, 0xc0fc, 0xc151, 0xc152, 0xc153, 0xc154, 0xc155, 0xc198,
- 0xc1a4, 0xc1fe, 0xc215, 0xc46b, 0xc6d3, 0xc7b3, 0xce19, 0xce1a,
- 0xce1d, 0xce22, 0xce23
-};
-
-/*Collect the unicode lists and glyph_id offsets*/
-static const lv_font_fmt_txt_cmap_t cmaps[] = {
- {
- .range_start = 32, .range_length = 96, .glyph_id_start = 1,
- .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
- },
- {
- .range_start = 12289, .range_length = 72, .glyph_id_start = 97,
- .unicode_list = unicode_list_1, .glyph_id_ofs_list = NULL, .list_length = 12, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
- },
- {
- .range_start = 12362, .range_length = 24, .glyph_id_start = 109,
- .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
- },
- {
- .range_start = 12387, .range_length = 43, .glyph_id_start = 133,
- .unicode_list = NULL, .glyph_id_ofs_list = NULL, .list_length = 0, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY
- },
- {
- .range_start = 12431, .range_length = 95, .glyph_id_start = 176,
- .unicode_list = NULL, .glyph_id_ofs_list = glyph_id_ofs_list_4, .list_length = 95, .type = LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL
- },
- {
- .range_start = 12527, .range_length = 52772, .glyph_id_start = 248,
- .unicode_list = unicode_list_5, .glyph_id_ofs_list = NULL, .list_length = 1187, .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY
- }
-};
-
-/*--------------------
- * ALL CUSTOM DATA
- *--------------------*/
-
-#if LVGL_VERSION_MAJOR >= 8
-/*Store all the custom data of the font*/
-
-static const lv_font_fmt_txt_dsc_t font_dsc = {
-#else
-static lv_font_fmt_txt_dsc_t font_dsc = {
-#endif
- .glyph_bitmap = glyph_bitmap,
- .glyph_dsc = glyph_dsc,
- .cmaps = cmaps,
- .kern_dsc = NULL,
- .kern_scale = 0,
- .cmap_num = 6,
- .bpp = 4,
- .kern_classes = 0,
- .bitmap_format = 0,
-
-};
-
-/*-----------------
- * PUBLIC FONT
- *----------------*/
-
-#ifdef _MSC_VER
- #pragma deprecated(lv_font_simsun_16_cjk)
-#else
- #warning "LV_FONT_SIMSUN_16_CJK is deprecated, use LV_FONT_SOURCE_HAN_SANS_SC_16_CJK instead."
-#endif
-
-/*Initialize a public general font descriptor*/
-#if LVGL_VERSION_MAJOR >= 8
-const lv_font_t lv_font_simsun_16_cjk = {
-#else
-lv_font_t lv_font_simsun_16_cjk = {
-#endif
- .get_glyph_dsc = lv_font_get_glyph_dsc_fmt_txt, /*Function pointer to get glyph's data*/
- .get_glyph_bitmap = lv_font_get_bitmap_fmt_txt, /*Function pointer to get glyph's bitmap*/
- .line_height = 19, /*The maximum line height required by the font*/
- .base_line = 3, /*Baseline measured from the bottom of the line*/
-#if !(LVGL_VERSION_MAJOR == 6 && LVGL_VERSION_MINOR == 0)
- .subpx = LV_FONT_SUBPX_NONE,
-#endif
-#if LV_VERSION_CHECK(7, 4, 0) || LVGL_VERSION_MAJOR >= 8
- .underline_position = -2,
- .underline_thickness = 1,
-#endif
- .dsc = &font_dsc /*The custom font data. Will be accessed by `get_glyph_bitmap/dsc` */
-};
-
-#endif /*#if LV_FONT_SIMSUN_16_CJK*/
diff --git a/lib/libesp32_lvgl/lvgl/src/font/lv_symbol_def.h b/lib/libesp32_lvgl/lvgl/src/font/lv_symbol_def.h
index d78f3892d..a3114d1ba 100644
--- a/lib/libesp32_lvgl/lvgl/src/font/lv_symbol_def.h
+++ b/lib/libesp32_lvgl/lvgl/src/font/lv_symbol_def.h
@@ -285,7 +285,7 @@ extern "C" {
* The following list is generated using
* cat src/font/lv_symbol_def.h | sed -E -n 's/^#define\s+LV_(SYMBOL_\w+).*".*$/ LV_STR_\1,/p'
*/
-enum {
+enum _lv_str_symbol_id_t {
LV_STR_SYMBOL_BULLET,
LV_STR_SYMBOL_AUDIO,
LV_STR_SYMBOL_VIDEO,
diff --git a/lib/libesp32_lvgl/lvgl/src/indev/lv_indev.c b/lib/libesp32_lvgl/lvgl/src/indev/lv_indev.c
index 84ac23f74..a4b16b5a0 100644
--- a/lib/libesp32_lvgl/lvgl/src/indev/lv_indev.c
+++ b/lib/libesp32_lvgl/lvgl/src/indev/lv_indev.c
@@ -81,7 +81,6 @@ static void indev_gesture(lv_indev_t * indev);
static bool indev_reset_check(lv_indev_t * indev);
static void indev_read_core(lv_indev_t * indev, lv_indev_data_t * data);
static void indev_reset_core(lv_indev_t * indev, lv_obj_t * obj);
-static void indev_init_gesture_recognizers(lv_indev_t * indev);
static lv_result_t send_event(lv_event_code_t code, void * param);
static void indev_scroll_throw_anim_start(lv_indev_t * indev);
@@ -143,7 +142,9 @@ lv_indev_t * lv_indev_create(void)
indev->gesture_min_velocity = LV_INDEV_DEF_GESTURE_MIN_VELOCITY;
indev->rotary_sensitivity = LV_INDEV_DEF_ROTARY_SENSITIVITY;
- indev_init_gesture_recognizers(indev);
+#if LV_USE_GESTURE_RECOGNITION
+ lv_indev_gesture_init(indev);
+#endif
return indev;
}
@@ -153,6 +154,7 @@ void lv_indev_delete(lv_indev_t * indev)
LV_ASSERT_NULL(indev);
lv_indev_send_event(indev, LV_EVENT_DELETE, NULL);
+ lv_event_mark_deleted(indev);
lv_event_remove_all(&(indev->event_list));
/*Clean up the read timer first*/
@@ -195,6 +197,9 @@ void indev_read_core(lv_indev_t * indev, lv_indev_data_t * data)
if(indev->read_cb) {
LV_TRACE_INDEV("calling indev_read_cb");
indev->read_cb(indev, data);
+
+ /*Set the time stamp to the current time is it was not set in the read_cb*/
+ if(data->timestamp == 0) data->timestamp = lv_tick_get();
}
else {
LV_LOG_WARN("indev_read_cb is not registered");
@@ -245,11 +250,12 @@ void lv_indev_read(lv_indev_t * indev)
indev->state = data.state;
/*Save the last activity time*/
+ indev->timestamp = data.timestamp;
if(indev->state == LV_INDEV_STATE_PRESSED) {
- indev->disp->last_activity_time = lv_tick_get();
+ indev->disp->last_activity_time = data.timestamp;
}
else if(indev->type == LV_INDEV_TYPE_ENCODER && data.enc_diff) {
- indev->disp->last_activity_time = lv_tick_get();
+ indev->disp->last_activity_time = data.timestamp;
}
if(indev->type == LV_INDEV_TYPE_POINTER) {
@@ -438,9 +444,8 @@ void lv_indev_stop_processing(lv_indev_t * indev)
void lv_indev_reset_long_press(lv_indev_t * indev)
{
- indev->long_pr_sent = 0;
- indev->longpr_rep_timestamp = lv_tick_get();
- indev->pr_timestamp = lv_tick_get();
+ indev->long_pr_sent = 0;
+ indev->longpr_rep_timestamp = indev->pr_timestamp = lv_tick_get();
}
void lv_indev_set_cursor(lv_indev_t * indev, lv_obj_t * cur_obj)
@@ -666,21 +671,7 @@ uint32_t lv_indev_remove_event_cb_with_user_data(lv_indev_t * indev, lv_event_cb
lv_result_t lv_indev_send_event(lv_indev_t * indev, lv_event_code_t code, void * param)
{
-
- lv_event_t e;
- lv_memzero(&e, sizeof(e));
- e.code = code;
- e.current_target = indev;
- e.original_target = indev;
- e.param = param;
- lv_result_t res;
- res = lv_event_send(&indev->event_list, &e, true);
- if(res != LV_RESULT_OK) return res;
-
- res = lv_event_send(&indev->event_list, &e, false);
- if(res != LV_RESULT_OK) return res;
-
- return res;
+ return lv_event_push_and_send(&indev->event_list, code, indev, param);
}
/**********************
@@ -792,7 +783,7 @@ static void indev_keypad_proc(lv_indev_t * i, lv_indev_data_t * data)
/*Key press happened*/
if(data->state == LV_INDEV_STATE_PRESSED && prev_state == LV_INDEV_STATE_RELEASED) {
LV_LOG_INFO("%" LV_PRIu32 " key is pressed", data->key);
- i->pr_timestamp = lv_tick_get();
+ i->pr_timestamp = i->timestamp;
/*Move the focus on NEXT*/
if(data->key == LV_KEY_NEXT) {
@@ -838,19 +829,19 @@ static void indev_keypad_proc(lv_indev_t * i, lv_indev_data_t * data)
}
/*Long press time has elapsed?*/
- if(i->long_pr_sent == 0 && lv_tick_elaps(i->pr_timestamp) > i->long_press_time) {
+ if(i->long_pr_sent == 0 && lv_tick_diff(i->timestamp, i->pr_timestamp) > i->long_press_time) {
i->long_pr_sent = 1;
if(data->key == LV_KEY_ENTER) {
- i->longpr_rep_timestamp = lv_tick_get();
+ i->longpr_rep_timestamp = i->timestamp;
if(send_event(LV_EVENT_LONG_PRESSED, indev_act) == LV_RESULT_INVALID) return;
}
}
/*Long press repeated time has elapsed?*/
else if(i->long_pr_sent != 0 &&
- lv_tick_elaps(i->longpr_rep_timestamp) > i->long_press_repeat_time) {
+ lv_tick_diff(i->timestamp, i->longpr_rep_timestamp) > i->long_press_repeat_time) {
- i->longpr_rep_timestamp = lv_tick_get();
+ i->longpr_rep_timestamp = i->timestamp;
/*Send LONG_PRESS_REP on ENTER*/
if(data->key == LV_KEY_ENTER) {
@@ -938,7 +929,7 @@ static void indev_encoder_proc(lv_indev_t * i, lv_indev_data_t * data)
if(data->state == LV_INDEV_STATE_PRESSED && last_state == LV_INDEV_STATE_RELEASED) {
LV_LOG_INFO("pressed");
- i->pr_timestamp = lv_tick_get();
+ i->pr_timestamp = i->timestamp;
if(data->key == LV_KEY_ENTER) {
bool editable_or_scrollable = lv_obj_is_editable(indev_obj_act) ||
@@ -976,10 +967,10 @@ static void indev_encoder_proc(lv_indev_t * i, lv_indev_data_t * data)
/*Pressing*/
else if(data->state == LV_INDEV_STATE_PRESSED && last_state == LV_INDEV_STATE_PRESSED) {
/*Long press*/
- if(i->long_pr_sent == 0 && lv_tick_elaps(i->pr_timestamp) > i->long_press_time) {
+ if(i->long_pr_sent == 0 && lv_tick_diff(i->timestamp, i->pr_timestamp) > i->long_press_time) {
i->long_pr_sent = 1;
- i->longpr_rep_timestamp = lv_tick_get();
+ i->longpr_rep_timestamp = i->timestamp;
if(data->key == LV_KEY_ENTER) {
/* Always send event to indev callbacks*/
@@ -1010,9 +1001,9 @@ static void indev_encoder_proc(lv_indev_t * i, lv_indev_data_t * data)
i->long_pr_sent = 1;
}
/*Long press repeated time has elapsed?*/
- else if(i->long_pr_sent != 0 && lv_tick_elaps(i->longpr_rep_timestamp) > i->long_press_repeat_time) {
+ else if(i->long_pr_sent != 0 && lv_tick_diff(i->timestamp, i->longpr_rep_timestamp) > i->long_press_repeat_time) {
- i->longpr_rep_timestamp = lv_tick_get();
+ i->longpr_rep_timestamp = i->timestamp;
if(data->key == LV_KEY_ENTER) {
if(is_enabled) {
@@ -1182,6 +1173,20 @@ static void indev_button_proc(lv_indev_t * i, lv_indev_data_t * data)
i->pointer.last_point.y = i->pointer.act_point.y;
}
+/**
+ * Apply time decay to a scroll throw vector, such that there is no decay
+ * initially and full decay after a short period of time.
+ * @param x scroll throw vector component
+ * @param t expired time in milliseconds
+ * @return decayed vector component
+ */
+static int32_t indev_scroll_throw_decay(int32_t x, int32_t t)
+{
+ if(t <= 0) return x;
+ if(t >= 99) return 0;
+ return x * (512 - (512 * t) / 99) / 512;
+}
+
/**
* Process the pressed state of LV_INDEV_TYPE_POINTER input devices
* @param indev pointer to an input device 'proc'
@@ -1253,7 +1258,7 @@ static void indev_proc_press(lv_indev_t * indev)
if(indev_obj_act != NULL) {
/*Save the time when the obj pressed to count long press time.*/
- indev->pr_timestamp = lv_tick_get();
+ indev->pr_timestamp = indev->timestamp;
indev->long_pr_sent = 0;
indev->pointer.scroll_sum.x = 0;
indev->pointer.scroll_sum.y = 0;
@@ -1291,12 +1296,21 @@ static void indev_proc_press(lv_indev_t * indev)
}
}
- /*Calculate the vector and apply a low pass filter: new value = 0.5 * old_value + 0.5 * new_value*/
+ /*Update vector and scroll throw vector*/
indev->pointer.vect.x = indev->pointer.act_point.x - indev->pointer.last_point.x;
indev->pointer.vect.y = indev->pointer.act_point.y - indev->pointer.last_point.y;
- indev->pointer.scroll_throw_vect.x = (indev->pointer.scroll_throw_vect.x + indev->pointer.vect.x) / 2;
- indev->pointer.scroll_throw_vect.y = (indev->pointer.scroll_throw_vect.y + indev->pointer.vect.y) / 2;
+ indev->pointer.vect_hist[indev->pointer.vect_hist_index] = indev->pointer.vect;
+ indev->pointer.vect_hist_timestamp[indev->pointer.vect_hist_index] = indev->timestamp;
+ indev->pointer.vect_hist_index = (indev->pointer.vect_hist_index + 1) % LV_INDEV_VECT_HIST_SIZE;
+
+ indev->pointer.scroll_throw_vect.x = 0;
+ indev->pointer.scroll_throw_vect.y = 0;
+ for(int i = 0; i < LV_INDEV_VECT_HIST_SIZE; i++) {
+ int32_t t = lv_tick_diff(indev->timestamp, indev->pointer.vect_hist_timestamp[i]);
+ indev->pointer.scroll_throw_vect.x += indev_scroll_throw_decay(indev->pointer.vect_hist[i].x, t);
+ indev->pointer.scroll_throw_vect.y += indev_scroll_throw_decay(indev->pointer.vect_hist[i].y, t);
+ }
indev->pointer.scroll_throw_vect_ori = indev->pointer.scroll_throw_vect;
@@ -1344,6 +1358,8 @@ static void indev_proc_press(lv_indev_t * indev)
indev_gesture(indev);
if(indev_reset_check(indev)) return;
+ /*In event driven mode resume the timer so that it can trigger long pressed and other time related events.
+ *As a side effect it will also call read_cb periodically in event driven mode. */
if(indev->mode == LV_INDEV_MODE_EVENT && indev->read_timer && lv_timer_get_paused(indev->read_timer)) {
lv_timer_resume(indev->read_timer);
}
@@ -1351,7 +1367,7 @@ static void indev_proc_press(lv_indev_t * indev)
/*If there is no scrolling then check for long press time*/
if(indev->pointer.scroll_obj == NULL && indev->long_pr_sent == 0) {
/*Send a long press event if enough time elapsed*/
- if(lv_tick_elaps(indev->pr_timestamp) > indev_act->long_press_time) {
+ if(lv_tick_diff(indev->timestamp, indev->pr_timestamp) > indev_act->long_press_time) {
if(is_enabled) {
if(send_event(LV_EVENT_LONG_PRESSED, indev_act) == LV_RESULT_INVALID) return;
}
@@ -1359,16 +1375,16 @@ static void indev_proc_press(lv_indev_t * indev)
indev->long_pr_sent = 1;
/*Save the long press time stamp for the long press repeat handler*/
- indev->longpr_rep_timestamp = lv_tick_get();
+ indev->longpr_rep_timestamp = indev->timestamp;
}
}
if(indev->pointer.scroll_obj == NULL && indev->long_pr_sent == 1) {
- if(lv_tick_elaps(indev->longpr_rep_timestamp) > indev_act->long_press_repeat_time) {
+ if(lv_tick_diff(indev->timestamp, indev->longpr_rep_timestamp) > indev_act->long_press_repeat_time) {
if(is_enabled) {
if(send_event(LV_EVENT_LONG_PRESSED_REPEAT, indev_act) == LV_RESULT_INVALID) return;
}
- indev->longpr_rep_timestamp = lv_tick_get();
+ indev->longpr_rep_timestamp = indev->timestamp;
}
}
}
@@ -1475,9 +1491,9 @@ static void indev_proc_release(lv_indev_t * indev)
lv_point_t pivot = { 0, 0 };
lv_obj_t * parent = scroll_obj;
while(parent) {
- angle += lv_obj_get_style_transform_rotation(parent, 0);
- int32_t zoom_act_x = lv_obj_get_style_transform_scale_x_safe(parent, 0);
- int32_t zoom_act_y = lv_obj_get_style_transform_scale_y_safe(parent, 0);
+ angle += lv_obj_get_style_transform_rotation(parent, LV_PART_MAIN);
+ int32_t zoom_act_x = lv_obj_get_style_transform_scale_x_safe(parent, LV_PART_MAIN);
+ int32_t zoom_act_y = lv_obj_get_style_transform_scale_y_safe(parent, LV_PART_MAIN);
scale_x = (scale_x * zoom_act_x) >> 8;
scale_y = (scale_x * zoom_act_y) >> 8;
parent = lv_obj_get_parent(parent);
@@ -1514,7 +1530,7 @@ static lv_result_t indev_proc_short_click(lv_indev_t * indev)
{
/*Update streak for clicks within small distance and short time*/
indev->pointer.short_click_streak++;
- if(lv_tick_elaps(indev->pointer.last_short_click_timestamp) > indev->long_press_time) {
+ if(lv_tick_diff(indev->timestamp, indev->pointer.last_short_click_timestamp) > indev->long_press_time) {
indev->pointer.short_click_streak = 1;
}
else if(indev->type == LV_INDEV_TYPE_POINTER || indev->type == LV_INDEV_TYPE_BUTTON) {
@@ -1523,7 +1539,7 @@ static lv_result_t indev_proc_short_click(lv_indev_t * indev)
if(dx * dx + dy * dy > indev->scroll_limit * indev->scroll_limit) indev->pointer.short_click_streak = 1;
}
- indev->pointer.last_short_click_timestamp = lv_tick_get();
+ indev->pointer.last_short_click_timestamp = indev->timestamp;
lv_indev_get_point(indev, &indev->pointer.last_short_click_point);
/*Simple short click*/
@@ -1556,7 +1572,7 @@ static void indev_proc_pointer_diff(lv_indev_t * indev)
if(editable) {
uint32_t indev_sensitivity = indev->rotary_sensitivity;
- uint32_t obj_sensitivity = lv_obj_get_style_rotary_sensitivity(indev_obj_act, 0);
+ uint32_t obj_sensitivity = lv_obj_get_style_rotary_sensitivity(indev_obj_act, LV_PART_MAIN);
int32_t diff = (int32_t)((int32_t)indev->pointer.diff * indev_sensitivity * obj_sensitivity + 32768) >> 16;
send_event(LV_EVENT_ROTARY, &diff);
}
@@ -1568,7 +1584,7 @@ static void indev_proc_pointer_diff(lv_indev_t * indev)
lv_obj_t * scroll_obj = lv_indev_find_scroll_obj(indev);
if(scroll_obj == NULL) return;
uint32_t indev_sensitivity = indev->rotary_sensitivity;
- uint32_t obj_sensitivity = lv_obj_get_style_rotary_sensitivity(scroll_obj, 0);
+ uint32_t obj_sensitivity = lv_obj_get_style_rotary_sensitivity(scroll_obj, LV_PART_MAIN);
int32_t diff = (int32_t)((int32_t)indev->pointer.diff * indev_sensitivity * obj_sensitivity + 32768) >> 16;
indev->pointer.scroll_throw_vect.y = diff;
@@ -1608,6 +1624,7 @@ static void indev_proc_reset_query_handler(lv_indev_t * indev)
indev->pointer.last_obj = NULL;
indev->pointer.scroll_obj = NULL;
indev->pointer.last_hovered = NULL;
+ indev->timestamp = lv_tick_get();
indev->long_pr_sent = 0;
indev->pr_timestamp = 0;
indev->longpr_rep_timestamp = 0;
@@ -1882,21 +1899,3 @@ static void indev_scroll_throw_anim_start(lv_indev_t * indev)
indev->scroll_throw_anim = lv_anim_start(&a);
}
-
-/**
- * Initialize this indev's recognizers. It specify their recognizer function
- * @param indev pointer to the indev containing the recognizers to initialize
- */
-static void indev_init_gesture_recognizers(lv_indev_t * indev)
-{
-#if LV_USE_GESTURE_RECOGNITION
- indev->recognizers[LV_INDEV_GESTURE_NONE].recog_fn = NULL;
- indev->recognizers[LV_INDEV_GESTURE_PINCH].recog_fn = lv_indev_gesture_detect_pinch;
- indev->recognizers[LV_INDEV_GESTURE_ROTATE].recog_fn = lv_indev_gesture_detect_rotation;
- indev->recognizers[LV_INDEV_GESTURE_TWO_FINGERS_SWIPE].recog_fn = lv_indev_gesture_detect_two_fingers_swipe;
- indev->recognizers[LV_INDEV_GESTURE_SCROLL].recog_fn = NULL;
- indev->recognizers[LV_INDEV_GESTURE_SWIPE].recog_fn = NULL;
-#else
- LV_UNUSED(indev);
-#endif
-}
diff --git a/lib/libesp32_lvgl/lvgl/src/indev/lv_indev.h b/lib/libesp32_lvgl/lvgl/src/indev/lv_indev.h
index d6c60c404..b59b0cd4a 100644
--- a/lib/libesp32_lvgl/lvgl/src/indev/lv_indev.h
+++ b/lib/libesp32_lvgl/lvgl/src/indev/lv_indev.h
@@ -61,17 +61,18 @@ typedef enum {
/** Data structure passed to an input driver to fill*/
typedef struct {
+ lv_indev_gesture_type_t gesture_type[LV_INDEV_GESTURE_CNT]; /* Current gesture types, per gesture */
+ void * gesture_data[LV_INDEV_GESTURE_CNT]; /* Used to store data per gesture */
+
+ lv_indev_state_t state; /**< LV_INDEV_STATE_RELEASED or LV_INDEV_STATE_PRESSED*/
+
lv_point_t point; /**< For LV_INDEV_TYPE_POINTER the currently pressed point*/
uint32_t key; /**< For LV_INDEV_TYPE_KEYPAD the currently pressed key*/
uint32_t btn_id; /**< For LV_INDEV_TYPE_BUTTON the currently pressed button*/
int16_t enc_diff; /**< For LV_INDEV_TYPE_ENCODER number of steps since the previous read*/
- lv_indev_state_t state; /**< LV_INDEV_STATE_RELEASED or LV_INDEV_STATE_PRESSED*/
+ uint32_t timestamp; /**< Initialized to lv_tick_get(). Driver may provide more accurate timestamp for buffered events*/
bool continue_reading; /**< If set to true, the read callback is invoked again, unless the device is in event-driven mode*/
-
- lv_indev_gesture_type_t gesture_type[LV_INDEV_GESTURE_CNT]; /* Current gesture types, per gesture */
- void * gesture_data[LV_INDEV_GESTURE_CNT]; /* Used to store data per gesture */
-
} lv_indev_data_t;
typedef void (*lv_indev_read_cb_t)(lv_indev_t * indev, lv_indev_data_t * data);
diff --git a/lib/libesp32_lvgl/lvgl/src/indev/lv_indev_gesture.c b/lib/libesp32_lvgl/lvgl/src/indev/lv_indev_gesture.c
index 928016bb2..29f3ff0bb 100644
--- a/lib/libesp32_lvgl/lvgl/src/indev/lv_indev_gesture.c
+++ b/lib/libesp32_lvgl/lvgl/src/indev/lv_indev_gesture.c
@@ -51,6 +51,7 @@ static lv_indev_gesture_recognizer_t * lv_indev_get_gesture_recognizer(lv_event_
lv_indev_gesture_type_t type);
static lv_dir_t calculate_swipe_dir(lv_indev_gesture_recognizer_t * recognizer);
static lv_indev_gesture_type_t get_first_recognized_or_ended_gesture(lv_indev_t * indev);
+static void indev_delete_event_cb(lv_event_t * e);
/********************
* STATIC VARIABLES
@@ -66,6 +67,19 @@ static lv_indev_gesture_type_t get_first_recognized_or_ended_gesture(lv_indev_t
* GLOBAL FUNCTIONS
********************/
+void lv_indev_gesture_init(lv_indev_t * indev)
+{
+ LV_ASSERT_NULL(indev);
+ indev->recognizers[LV_INDEV_GESTURE_NONE].recog_fn = NULL;
+ indev->recognizers[LV_INDEV_GESTURE_PINCH].recog_fn = lv_indev_gesture_detect_pinch;
+ indev->recognizers[LV_INDEV_GESTURE_ROTATE].recog_fn = lv_indev_gesture_detect_rotation;
+ indev->recognizers[LV_INDEV_GESTURE_TWO_FINGERS_SWIPE].recog_fn = lv_indev_gesture_detect_two_fingers_swipe;
+ indev->recognizers[LV_INDEV_GESTURE_SCROLL].recog_fn = NULL;
+ indev->recognizers[LV_INDEV_GESTURE_SWIPE].recog_fn = NULL;
+
+ lv_indev_add_event_cb(indev, indev_delete_event_cb, LV_EVENT_DELETE, NULL);
+}
+
void lv_indev_set_pinch_up_threshold(lv_indev_t * indev, float threshold)
{
/* A up threshold MUST always be bigger than 1 */
@@ -221,20 +235,9 @@ void lv_indev_set_gesture_data(lv_indev_data_t * data, lv_indev_gesture_recogniz
lv_indev_gesture_type_t type)
{
bool is_active;
- lv_point_t cur_pnt;
if(recognizer == NULL) return;
- /* If there is a single contact point use its coords,
- * when there are no contact points it's set to 0,0
- *
- * Note: If a gesture was detected, the primary point is overwritten below
- */
-
- lv_indev_get_gesture_primary_point(recognizer, &cur_pnt);
- data->point.x = cur_pnt.x;
- data->point.y = cur_pnt.y;
-
data->gesture_type[type] = LV_INDEV_GESTURE_NONE;
data->gesture_data[type] = NULL;
@@ -251,9 +254,6 @@ void lv_indev_set_gesture_data(lv_indev_data_t * data, lv_indev_gesture_recogniz
switch(recognizer->state) {
case LV_INDEV_GESTURE_STATE_RECOGNIZED:
- lv_indev_get_gesture_center_point(recognizer, &cur_pnt);
- data->point.x = cur_pnt.x;
- data->point.y = cur_pnt.y;
data->gesture_type[type] = type;
data->gesture_data[type] = (void *) recognizer;
break;
@@ -552,7 +552,7 @@ void lv_indev_gesture_recognizers_update(lv_indev_t * indev, lv_indev_touch_data
/* Update all recognizers to let them process input */
indev->recognizers[i].recog_fn(&indev->recognizers[i], &touches[0], touch_cnt);
- /* Then reset the recognizers which did not repport RECONIZED or ENDED */
+ /* Then reset the recognizers which did not report RECOGNIZED or ENDED */
if(((lv_indev_gesture_type_t)i) != type) {
reset_recognizer(&indev->recognizers[i]);
}
@@ -610,7 +610,7 @@ void lv_indev_gesture_recognizers_set_data(lv_indev_t * indev, lv_indev_data_t *
********************/
/**
- * Caluclate the direction from the starting center of a two fingers swipe gesture
+ * Calculate the direction from the starting center of a two fingers swipe gesture
* @param recognizer pointer to the recognizer handling the two fingers
* swipe gesture
* @return the direction of the swipe, from the starting center
@@ -960,5 +960,22 @@ static lv_indev_gesture_type_t get_first_recognized_or_ended_gesture(lv_indev_t
return LV_INDEV_GESTURE_NONE;
}
+static void indev_delete_event_cb(lv_event_t * e)
+{
+ lv_indev_t * indev = lv_event_get_current_target(e);
+
+ for(uint8_t i = 0; i < LV_INDEV_GESTURE_CNT; i++) {
+ if(indev->recognizers[i].info) {
+ lv_free(indev->recognizers[i].info);
+ indev->recognizers[i].info = NULL;
+ }
+
+ if(indev->recognizers[i].config) {
+ lv_free(indev->recognizers[i].config);
+ indev->recognizers[i].config = NULL;
+ }
+ }
+}
+
#endif /* LV_USE_GESTURE_RECOGNITION */
diff --git a/lib/libesp32_lvgl/lvgl/src/indev/lv_indev_gesture.h b/lib/libesp32_lvgl/lvgl/src/indev/lv_indev_gesture.h
index 08318b915..111d7b2b4 100644
--- a/lib/libesp32_lvgl/lvgl/src/indev/lv_indev_gesture.h
+++ b/lib/libesp32_lvgl/lvgl/src/indev/lv_indev_gesture.h
@@ -84,6 +84,11 @@ struct lv_indev_gesture_recognizer {
* GLOBAL PROTOTYPES
**********************/
+/**
+ * Initialize this indev's recognizers. It specifies their recognizer functions
+ * @param indev pointer to the indev containing the recognizers to initialize
+ */
+void lv_indev_gesture_init(lv_indev_t * indev);
/* PINCH Gesture */
@@ -241,4 +246,4 @@ void lv_indev_gesture_recognizers_set_data(lv_indev_t * indev, lv_indev_data_t *
} /*extern "C"*/
#endif
-#endif /* END LV_INDEV_GESTURE_H */
+#endif /* LV_INDEV_GESTURE_H */
diff --git a/lib/libesp32_lvgl/lvgl/src/indev/lv_indev_gesture_private.h b/lib/libesp32_lvgl/lvgl/src/indev/lv_indev_gesture_private.h
index 752672dfc..e927f424a 100644
--- a/lib/libesp32_lvgl/lvgl/src/indev/lv_indev_gesture_private.h
+++ b/lib/libesp32_lvgl/lvgl/src/indev/lv_indev_gesture_private.h
@@ -94,4 +94,4 @@ struct lv_indev_gesture_configuration {
} /*extern "C"*/
#endif
-#endif /* END LV_INDEV_GESTURE_PRIVATE_H */
+#endif /* LV_INDEV_GESTURE_PRIVATE_H */
diff --git a/lib/libesp32_lvgl/lvgl/src/indev/lv_indev_private.h b/lib/libesp32_lvgl/lvgl/src/indev/lv_indev_private.h
index 83b65c77b..6c8f5c246 100644
--- a/lib/libesp32_lvgl/lvgl/src/indev/lv_indev_private.h
+++ b/lib/libesp32_lvgl/lvgl/src/indev/lv_indev_private.h
@@ -21,6 +21,7 @@ extern "C" {
/*********************
* DEFINES
*********************/
+#define LV_INDEV_VECT_HIST_SIZE 8
/**********************
* TYPEDEFS
@@ -44,6 +45,7 @@ struct _lv_indev_t {
uint8_t wait_until_release : 1;
uint8_t stop_processing_query : 1;
+ uint32_t timestamp; /**< Timestamp of last event */
uint32_t pr_timestamp; /**< Pressed time stamp*/
uint32_t longpr_rep_timestamp; /**< Long press repeat time stamp*/
@@ -83,6 +85,9 @@ struct _lv_indev_t {
lv_point_t last_point; /**< Last point of input device.*/
lv_point_t last_raw_point; /**< Last point read from read_cb. */
lv_point_t vect; /**< Difference between `act_point` and `last_point`.*/
+ lv_point_t vect_hist[LV_INDEV_VECT_HIST_SIZE];
+ uint32_t vect_hist_timestamp[LV_INDEV_VECT_HIST_SIZE];
+ uint8_t vect_hist_index;
lv_point_t scroll_sum; /*Count the dragged pixels to check LV_INDEV_DEF_SCROLL_LIMIT*/
lv_point_t scroll_throw_vect;
lv_point_t scroll_throw_vect_ori;
diff --git a/lib/libesp32_lvgl/lvgl/src/indev/lv_indev_scroll.c b/lib/libesp32_lvgl/lvgl/src/indev/lv_indev_scroll.c
index 7996467a4..ae7d27537 100644
--- a/lib/libesp32_lvgl/lvgl/src/indev/lv_indev_scroll.c
+++ b/lib/libesp32_lvgl/lvgl/src/indev/lv_indev_scroll.c
@@ -69,9 +69,9 @@ void lv_indev_scroll_handler(lv_indev_t * indev)
int16_t scale_y = 256;
lv_obj_t * parent = scroll_obj;
while(parent) {
- angle += lv_obj_get_style_transform_rotation(parent, 0);
- int32_t zoom_act_x = lv_obj_get_style_transform_scale_x_safe(parent, 0);
- int32_t zoom_act_y = lv_obj_get_style_transform_scale_y_safe(parent, 0);
+ angle += lv_obj_get_style_transform_rotation(parent, LV_PART_MAIN);
+ int32_t zoom_act_x = lv_obj_get_style_transform_scale_x_safe(parent, LV_PART_MAIN);
+ int32_t zoom_act_y = lv_obj_get_style_transform_scale_y_safe(parent, LV_PART_MAIN);
scale_x = (scale_x * zoom_act_x) >> 8;
scale_y = (scale_y * zoom_act_y) >> 8;
parent = lv_obj_get_parent(parent);
@@ -293,9 +293,9 @@ lv_obj_t * lv_indev_find_scroll_obj(lv_indev_t * indev)
lv_point_t pivot = { 0, 0 };
lv_obj_t * parent = obj_act;
while(parent) {
- angle += lv_obj_get_style_transform_rotation(parent, 0);
- int32_t zoom_act_x = lv_obj_get_style_transform_scale_x_safe(parent, 0);
- int32_t zoom_act_y = lv_obj_get_style_transform_scale_y_safe(parent, 0);
+ angle += lv_obj_get_style_transform_rotation(parent, LV_PART_MAIN);
+ int32_t zoom_act_x = lv_obj_get_style_transform_scale_x_safe(parent, LV_PART_MAIN);
+ int32_t zoom_act_y = lv_obj_get_style_transform_scale_y_safe(parent, LV_PART_MAIN);
scale_x = (scale_x * zoom_act_x) >> 8;
scale_y = (scale_y * zoom_act_y) >> 8;
parent = lv_obj_get_parent(parent);
@@ -652,7 +652,7 @@ static int32_t elastic_diff(lv_obj_t * scroll_obj, int32_t diff, int32_t scroll_
* then respect the current position instead of going straight back to 0.
*/
const int32_t scroll_ended = diff > 0 ? scroll_start : scroll_end;
- if(scroll_ended < 0) diff = 0;
+ if(scroll_ended <= 0) diff = 0;
else if(scroll_ended - diff < 0) diff = scroll_ended;
}
/*Handle elastic scrolling*/
@@ -717,18 +717,18 @@ static void has_more_snap_points(lv_obj_t * scroll_obj, lv_dir_t dir, bool * has
int32_t x = 0;
switch(snap) {
case LV_SCROLL_SNAP_CENTER: {
- int32_t pad_left = lv_obj_get_style_pad_left(scroll_obj, 0);
- int32_t pad_right = lv_obj_get_style_pad_right(scroll_obj, 0);
+ int32_t pad_left = lv_obj_get_style_pad_left(scroll_obj, LV_PART_MAIN);
+ int32_t pad_right = lv_obj_get_style_pad_right(scroll_obj, LV_PART_MAIN);
x = scroll_obj->coords.x1;
x += (lv_area_get_width(&scroll_obj->coords) - pad_left - pad_right) / 2;
x += pad_left;
}
break;
case LV_SCROLL_SNAP_START:
- x = scroll_obj->coords.x1 + lv_obj_get_style_pad_left(scroll_obj, 0);
+ x = scroll_obj->coords.x1 + lv_obj_get_style_pad_left(scroll_obj, LV_PART_MAIN);
break;
case LV_SCROLL_SNAP_END:
- x = scroll_obj->coords.x2 - lv_obj_get_style_pad_right(scroll_obj, 0);
+ x = scroll_obj->coords.x2 - lv_obj_get_style_pad_right(scroll_obj, LV_PART_MAIN);
break;
default:
break;
@@ -743,18 +743,18 @@ static void has_more_snap_points(lv_obj_t * scroll_obj, lv_dir_t dir, bool * has
int32_t y = 0;
switch(snap) {
case LV_SCROLL_SNAP_CENTER: {
- int32_t pad_top = lv_obj_get_style_pad_top(scroll_obj, 0);
- int32_t pad_bottom = lv_obj_get_style_pad_bottom(scroll_obj, 0);
+ int32_t pad_top = lv_obj_get_style_pad_top(scroll_obj, LV_PART_MAIN);
+ int32_t pad_bottom = lv_obj_get_style_pad_bottom(scroll_obj, LV_PART_MAIN);
y = scroll_obj->coords.y1;
y += (lv_area_get_height(&scroll_obj->coords) - pad_top - pad_bottom) / 2;
y += pad_top;
}
break;
case LV_SCROLL_SNAP_START:
- y = scroll_obj->coords.y1 + lv_obj_get_style_pad_top(scroll_obj, 0);
+ y = scroll_obj->coords.y1 + lv_obj_get_style_pad_top(scroll_obj, LV_PART_MAIN);
break;
case LV_SCROLL_SNAP_END:
- y = scroll_obj->coords.y2 - lv_obj_get_style_pad_bottom(scroll_obj, 0);
+ y = scroll_obj->coords.y2 - lv_obj_get_style_pad_bottom(scroll_obj, LV_PART_MAIN);
break;
default:
break;
diff --git a/lib/libesp32_lvgl/lvgl/src/layouts/flex/lv_flex.c b/lib/libesp32_lvgl/lvgl/src/layouts/flex/lv_flex.c
index 0f8b7d66a..b9603c1e7 100644
--- a/lib/libesp32_lvgl/lvgl/src/layouts/flex/lv_flex.c
+++ b/lib/libesp32_lvgl/lvgl/src/layouts/flex/lv_flex.c
@@ -339,7 +339,7 @@ static void children_repos(lv_obj_t * cont, flex_t * f, int32_t item_first_id, i
int32_t (*area_get_main_size)(const lv_area_t *) = (f->row ? lv_area_get_width : lv_area_get_height);
int32_t (*area_get_cross_size)(const lv_area_t *) = (!f->row ? lv_area_get_width : lv_area_get_height);
- typedef int32_t (*margin_func_t)(const lv_obj_t *, uint32_t);
+ typedef int32_t (*margin_func_t)(const lv_obj_t *, lv_part_t);
margin_func_t get_margin_main_start = (f->row ? lv_obj_get_style_margin_left : lv_obj_get_style_margin_top);
margin_func_t get_margin_main_end = (f->row ? lv_obj_get_style_margin_right : lv_obj_get_style_margin_bottom);
margin_func_t get_margin_cross_start = (!f->row ? lv_obj_get_style_margin_left : lv_obj_get_style_margin_top);
@@ -386,7 +386,7 @@ static void children_repos(lv_obj_t * cont, flex_t * f, int32_t item_first_id, i
int32_t place_gap = 0;
place_content(f->main_place, max_main_size, t->track_main_size, t->item_cnt, &main_pos, &place_gap);
- if(f->row && rtl) main_pos += lv_obj_get_content_width(cont);
+ if(f->row && rtl) main_pos = max_main_size - main_pos;
lv_obj_t * item = lv_obj_get_child(cont, item_first_id);
/*Reposition the children*/
diff --git a/lib/libesp32_lvgl/lvgl/src/layouts/grid/lv_grid.c b/lib/libesp32_lvgl/lvgl/src/layouts/grid/lv_grid.c
index c688c2508..7efd28d05 100644
--- a/lib/libesp32_lvgl/lvgl/src/layouts/grid/lv_grid.c
+++ b/lib/libesp32_lvgl/lvgl/src/layouts/grid/lv_grid.c
@@ -54,10 +54,10 @@ typedef struct {
* STATIC PROTOTYPES
**********************/
static void grid_update(lv_obj_t * cont, void * user_data);
-static void calc(lv_obj_t * obj, lv_grid_calc_t * calc);
+static lv_result_t calc(lv_obj_t * obj, lv_grid_calc_t * calc);
static void calc_free(lv_grid_calc_t * calc);
-static void calc_cols(lv_obj_t * cont, lv_grid_calc_t * c);
-static void calc_rows(lv_obj_t * cont, lv_grid_calc_t * c);
+static lv_result_t calc_cols(lv_obj_t * cont, lv_grid_calc_t * c);
+static lv_result_t calc_rows(lv_obj_t * cont, lv_grid_calc_t * c);
static void item_repos(lv_obj_t * item, lv_grid_calc_t * c, item_repos_hint_t * hint);
static int32_t grid_align(int32_t cont_size, bool auto_size, lv_grid_align_t align, int32_t gap,
uint32_t track_num,
@@ -66,43 +66,43 @@ static uint32_t count_tracks(const int32_t * templ);
static inline const int32_t * get_col_dsc(lv_obj_t * obj)
{
- return lv_obj_get_style_grid_column_dsc_array(obj, 0);
+ return lv_obj_get_style_grid_column_dsc_array(obj, LV_PART_MAIN);
}
static inline const int32_t * get_row_dsc(lv_obj_t * obj)
{
- return lv_obj_get_style_grid_row_dsc_array(obj, 0);
+ return lv_obj_get_style_grid_row_dsc_array(obj, LV_PART_MAIN);
}
static inline int32_t get_col_pos(lv_obj_t * obj)
{
- return lv_obj_get_style_grid_cell_column_pos(obj, 0);
+ return lv_obj_get_style_grid_cell_column_pos(obj, LV_PART_MAIN);
}
static inline int32_t get_row_pos(lv_obj_t * obj)
{
- return lv_obj_get_style_grid_cell_row_pos(obj, 0);
+ return lv_obj_get_style_grid_cell_row_pos(obj, LV_PART_MAIN);
}
static inline int32_t get_col_span(lv_obj_t * obj)
{
- return lv_obj_get_style_grid_cell_column_span(obj, 0);
+ return lv_obj_get_style_grid_cell_column_span(obj, LV_PART_MAIN);
}
static inline int32_t get_row_span(lv_obj_t * obj)
{
- return lv_obj_get_style_grid_cell_row_span(obj, 0);
+ return lv_obj_get_style_grid_cell_row_span(obj, LV_PART_MAIN);
}
static inline lv_grid_align_t get_cell_col_align(lv_obj_t * obj)
{
- return lv_obj_get_style_grid_cell_x_align(obj, 0);
+ return lv_obj_get_style_grid_cell_x_align(obj, LV_PART_MAIN);
}
static inline lv_grid_align_t get_cell_row_align(lv_obj_t * obj)
{
- return lv_obj_get_style_grid_cell_y_align(obj, 0);
+ return lv_obj_get_style_grid_cell_y_align(obj, LV_PART_MAIN);
}
static inline lv_grid_align_t get_grid_col_align(lv_obj_t * obj)
{
- return lv_obj_get_style_grid_column_align(obj, 0);
+ return lv_obj_get_style_grid_column_align(obj, LV_PART_MAIN);
}
static inline lv_grid_align_t get_grid_row_align(lv_obj_t * obj)
{
- return lv_obj_get_style_grid_row_align(obj, 0);
+ return lv_obj_get_style_grid_row_align(obj, LV_PART_MAIN);
}
static inline int32_t get_margin_hor(lv_obj_t * obj)
{
@@ -189,12 +189,9 @@ static void grid_update(lv_obj_t * cont, void * user_data)
LV_LOG_INFO("update %p container", (void *)cont);
LV_UNUSED(user_data);
- // const int32_t * col_templ = get_col_dsc(cont);
- // const int32_t * row_templ = get_row_dsc(cont);
- // if(col_templ == NULL || row_templ == NULL) return;
-
lv_grid_calc_t c;
- calc(cont, &c);
+ lv_result_t res = calc(cont, &c);
+ if(res != LV_RESULT_OK) return;
item_repos_hint_t hint;
lv_memzero(&hint, sizeof(hint));
@@ -230,15 +227,21 @@ static void grid_update(lv_obj_t * cont, void * user_data)
* @param calc store the calculated cells sizes here
* @note `lv_grid_calc_free(calc_out)` needs to be called when `calc_out` is not needed anymore
*/
-static void calc(lv_obj_t * cont, lv_grid_calc_t * calc_out)
+static lv_result_t calc(lv_obj_t * cont, lv_grid_calc_t * calc_out)
{
if(lv_obj_get_child(cont, 0) == NULL) {
lv_memzero(calc_out, sizeof(lv_grid_calc_t));
- return;
+ return LV_RESULT_INVALID;
}
- calc_rows(cont, calc_out);
- calc_cols(cont, calc_out);
+ if(calc_rows(cont, calc_out) == LV_RESULT_INVALID) {
+ /* Warning is already logged inside `calc_rows` */
+ return LV_RESULT_INVALID;
+ }
+ if(calc_cols(cont, calc_out) == LV_RESULT_INVALID) {
+ /* Warning is already logged inside `calc_cols` */
+ return LV_RESULT_INVALID;
+ }
int32_t col_gap = lv_obj_get_style_pad_column(cont, LV_PART_MAIN);
int32_t row_gap = lv_obj_get_style_pad_row(cont, LV_PART_MAIN);
@@ -258,6 +261,7 @@ static void calc(lv_obj_t * cont, lv_grid_calc_t * calc_out)
calc_out->y, false);
LV_ASSERT_MEM_INTEGRITY();
+ return LV_RESULT_OK;
}
/**
@@ -272,7 +276,7 @@ static void calc_free(lv_grid_calc_t * calc)
lv_free(calc->h);
}
-static void calc_cols(lv_obj_t * cont, lv_grid_calc_t * c)
+static lv_result_t calc_cols(lv_obj_t * cont, lv_grid_calc_t * c)
{
const int32_t * col_templ;
@@ -283,7 +287,7 @@ static void calc_cols(lv_obj_t * cont, lv_grid_calc_t * c)
col_templ = get_col_dsc(parent);
if(col_templ == NULL) {
LV_LOG_WARN("No col descriptor found even on the parent");
- return;
+ return LV_RESULT_INVALID;
}
int32_t pos = get_col_pos(cont);
@@ -363,9 +367,10 @@ static void calc_cols(lv_obj_t * cont, lv_grid_calc_t * c)
if(subgrid) {
lv_free((void *)col_templ);
}
+ return LV_RESULT_OK;
}
-static void calc_rows(lv_obj_t * cont, lv_grid_calc_t * c)
+static lv_result_t calc_rows(lv_obj_t * cont, lv_grid_calc_t * c)
{
const int32_t * row_templ;
row_templ = get_row_dsc(cont);
@@ -375,7 +380,7 @@ static void calc_rows(lv_obj_t * cont, lv_grid_calc_t * c)
row_templ = get_row_dsc(parent);
if(row_templ == NULL) {
LV_LOG_WARN("No row descriptor found even on the parent");
- return;
+ return LV_RESULT_INVALID;
}
int32_t pos = get_row_pos(cont);
@@ -452,6 +457,7 @@ static void calc_rows(lv_obj_t * cont, lv_grid_calc_t * c)
if(subgrid) {
lv_free((void *)row_templ);
}
+ return LV_RESULT_OK;
}
/**
diff --git a/lib/libesp32_lvgl/lvgl/src/libs/FT800-FT813/EVE.h b/lib/libesp32_lvgl/lvgl/src/libs/FT800-FT813/EVE.h
new file mode 100644
index 000000000..ebce3687f
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/libs/FT800-FT813/EVE.h
@@ -0,0 +1,1257 @@
+/*
+@file EVE.h
+@brief Contains FT80x/FT81x/BT81x API definitions
+@version 5.0
+@date 2024-01-28
+@author Rudolph Riedel
+
+@section LICENSE
+
+MIT License
+
+Copyright (c) 2016-2024 Rudolph Riedel
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the Software
+is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+@section History
+
+5.0
+- started to add BT817 / BT818 defines
+- cleanup: removed FT80x defines
+- replaced BT81X_ENABLE with "EVE_GEN > 2"
+- removed FT81X_ENABLE as FT81x already is the lowest supported chip revision now
+- added more BT817 / BT818 defines
+- removed undocumented registers and commands
+- merged FT80x and FT81x definitions as FT81x is baseline now
+- removed the history from before 4.0
+- fixed typo: REG_AH_CYCLE_MAX -> REG_AH_HCYCLE_MAX
+- re-arranged the host commands, removed EVE_CLKINT for BT817/BT818,
+ removed FT80x EVE_CLK36M and EVE_CLK48M
+- added EVE_OPT_OVERLAY
+- removed the 4.0 history
+- fixed some MISRA-C issues
+- removed macro BEGIN(prim) - use (DL_BEGIN | EVE_BITMAPS) for example
+- removed macro END() - use define DL_END
+- removed macro RESTORE_CONTEXT() - use define DL_RESTORE_CONTEXT
+- removed macro RETURN() - use define DL_RETURN
+- removed macro SAVE_CONTEXT() - use define DL_SAVE_CONTEXT
+- basic maintenance: checked for violations of white space and indent rules
+- more linter fixes
+- changed EVE_COMPRESSED_RGBA_ASTC_nxn_KHR to EVE_ASTC_nXn to fix linter
+ warnings and used the opportunity to make these shorter
+- added DL_COLOR_A as alternative to the COLOR_A macro
+- added defines for all DL_ display list commands
+- cleaned up the macros
+- fix: changed DL_CLEAR_RGB to DL_CLEAR_COLOR_RGB
+ as this is what the programming guide uses
+- fix: renamed EVE_ROM_FONT_ADDR to EVE_ROM_FONTROOT
+- added #ifdef __cplusplus / extern "C" to allow
+ adding EVE_ functions to C++ code
+- fix: typo REG_COPRO_PATCH_DTR -> REG_COPRO_PATCH_PTR
+- started to convert the function-like macros to static inline functions to be
+ a little friendlier towards C++ in regards of type-safety
+- added type-casts to all simple macros
+- converted some more function-like macros to static inline functions
+- converted the rest of the function-like macros to static inline functions
+- fix: forgot to comment out the EVE2 BITMAP_TRANSFORM_E when converting it to an inline function
+
+*/
+
+#ifndef EVE_H
+#define EVE_H
+
+#include "EVE_target.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#include "EVE_config.h"
+#include "EVE_commands.h"
+
+/* Memory */
+#define EVE_RAM_G ((uint32_t) 0x00000000UL)
+#define EVE_ROM_CHIPID ((uint32_t) 0x000C0000UL)
+#define EVE_ROM_FONT ((uint32_t) 0x001E0000UL)
+#define EVE_ROM_FONTROOT ((uint32_t) 0x002FFFFCUL)
+#define EVE_RAM_DL ((uint32_t) 0x00300000UL)
+#define EVE_RAM_REG ((uint32_t) 0x00302000UL)
+#define EVE_RAM_CMD ((uint32_t) 0x00308000UL)
+
+/* Memory buffer sizes */
+#define EVE_RAM_G_SIZE ((uint32_t) 1024U*1024UL)
+#define EVE_CMDFIFO_SIZE ((uint32_t) 4U*1024UL)
+#define EVE_RAM_DL_SIZE ((uint32_t) 8U*1024UL)
+
+/* diplay list list commands, most need OR's arguments */
+#define DL_DISPLAY ((uint32_t) 0x00000000UL)
+#define DL_BITMAP_SOURCE ((uint32_t) 0x01000000UL)
+#define DL_CLEAR_COLOR_RGB ((uint32_t) 0x02000000UL)
+#define DL_TAG ((uint32_t) 0x03000000UL)
+#define DL_COLOR_RGB ((uint32_t) 0x04000000UL)
+#define DL_BITMAP_HANDLE ((uint32_t) 0x05000000UL)
+#define DL_CELL ((uint32_t) 0x06000000UL)
+#define DL_BITMAP_LAYOUT ((uint32_t) 0x07000000UL)
+#define DL_BITMAP_SIZE ((uint32_t) 0x08000000UL)
+#define DL_ALPHA_FUNC ((uint32_t) 0x09000000UL)
+#define DL_STENCIL_FUNC ((uint32_t) 0x0A000000UL)
+#define DL_BLEND_FUNC ((uint32_t) 0x0B000000UL)
+#define DL_STENCIL_OP ((uint32_t) 0x0C000000UL)
+#define DL_POINT_SIZE ((uint32_t) 0x0D000000UL)
+#define DL_LINE_WIDTH ((uint32_t) 0x0E000000UL)
+#define DL_CLEAR_COLOR_A ((uint32_t) 0x0F000000UL)
+#define DL_COLOR_A ((uint32_t) 0x10000000UL)
+#define DL_CLEAR_STENCIL ((uint32_t) 0x11000000UL)
+#define DL_CLEAR_TAG ((uint32_t) 0x12000000UL)
+#define DL_STENCIL_MASK ((uint32_t) 0x13000000UL)
+#define DL_TAG_MASK ((uint32_t) 0x14000000UL)
+#define DL_BITMAP_TRANSFORM_A ((uint32_t) 0x15000000UL)
+#define DL_BITMAP_TRANSFORM_B ((uint32_t) 0x16000000UL)
+#define DL_BITMAP_TRANSFORM_C ((uint32_t) 0x17000000UL)
+#define DL_BITMAP_TRANSFORM_D ((uint32_t) 0x18000000UL)
+#define DL_BITMAP_TRANSFORM_E ((uint32_t) 0x19000000UL)
+#define DL_BITMAP_TRANSFORM_F ((uint32_t) 0x1A000000UL)
+#define DL_SCISSOR_XY ((uint32_t) 0x1B000000UL)
+#define DL_SCISSOR_SIZE ((uint32_t) 0x1C000000UL)
+#define DL_CALL ((uint32_t) 0x1D000000UL)
+#define DL_JUMP ((uint32_t) 0x1E000000UL)
+#define DL_BEGIN ((uint32_t) 0x1F000000UL)
+#define DL_COLOR_MASK ((uint32_t) 0x20000000UL)
+#define DL_END ((uint32_t) 0x21000000UL)
+#define DL_SAVE_CONTEXT ((uint32_t) 0x22000000UL)
+#define DL_RESTORE_CONTEXT ((uint32_t) 0x23000000UL)
+#define DL_RETURN ((uint32_t) 0x24000000UL)
+#define DL_MACRO ((uint32_t) 0x25000000UL)
+#define DL_CLEAR ((uint32_t) 0x26000000UL)
+#define DL_VERTEX_FORMAT ((uint32_t) 0x27000000UL)
+#define DL_BITMAP_LAYOUT_H ((uint32_t) 0x28000000UL)
+#define DL_BITMAP_SIZE_H ((uint32_t) 0x29000000UL)
+#define DL_PALETTE_SOURCE ((uint32_t) 0x2A000000UL)
+#define DL_VERTEX_TRANSLATE_X ((uint32_t) 0x2B000000UL)
+#define DL_VERTEX_TRANSLATE_Y ((uint32_t) 0x2C000000UL)
+#define DL_NOP ((uint32_t) 0x2D000000UL)
+
+#define DL_VERTEX2F ((uint32_t) 0x40000000UL)
+#define DL_VERTEX2II ((uint32_t) 0x80000000UL)
+
+#define CLR_COL ((uint8_t) 0x4U)
+#define CLR_STN ((uint8_t) 0x2U)
+#define CLR_TAG ((uint8_t) 0x1U)
+
+/* Host commands */
+#define EVE_ACTIVE ((uint8_t) 0x00U) /* place EVE in active state */
+#define EVE_STANDBY ((uint8_t) 0x41U) /* place EVE in Standby (clk running) */
+#define EVE_SLEEP ((uint8_t) 0x42U) /* place EVE in Sleep (clk off) */
+#define EVE_CLKEXT ((uint8_t) 0x44U) /* select external clock source */
+#define EVE_CLKINT ((uint8_t) 0x48U) /* select internal clock source, not a valid option for BT817 / BT818 */
+#define EVE_PWRDOWN ((uint8_t) 0x50U) /* place EVE in Power Down (core off) */
+#define EVE_CLKSEL ((uint8_t) 0x61U) /* configure system clock */
+#define EVE_RST_PULSE ((uint8_t) 0x68U) /* reset core - all registers default and processors reset */
+#define EVE_CORERST ((uint8_t) 0x68U) /* reset core - all registers default and processors reset */
+#define EVE_PINDRIVE ((uint8_t) 0x70U) /* setup drive strength for various pins */
+#define EVE_PIN_PD_STATE ((uint8_t) 0x71U) /* setup how pins behave during power down */
+
+/* Graphic command defines */
+#define EVE_NEVER ((uint8_t) 0UL)
+#define EVE_LESS ((uint8_t) 1UL)
+#define EVE_LEQUAL ((uint8_t) 2UL)
+#define EVE_GREATER ((uint8_t) 3UL)
+#define EVE_GEQUAL ((uint8_t) 4UL)
+#define EVE_EQUAL ((uint8_t) 5UL)
+#define EVE_NOTEQUAL ((uint8_t) 6UL)
+#define EVE_ALWAYS ((uint8_t) 7UL)
+
+/* Bitmap formats */
+#define EVE_ARGB1555 ((uint8_t) 0UL)
+#define EVE_L1 ((uint8_t) 1UL)
+#define EVE_L4 ((uint8_t) 2UL)
+#define EVE_L8 ((uint8_t) 3UL)
+#define EVE_RGB332 ((uint8_t) 4UL)
+#define EVE_ARGB2 ((uint8_t) 5UL)
+#define EVE_ARGB4 ((uint8_t) 6UL)
+#define EVE_RGB565 ((uint8_t) 7UL)
+#define EVE_PALETTED ((uint8_t) 8UL)
+#define EVE_TEXT8X8 ((uint8_t) 9UL)
+#define EVE_TEXTVGA ((uint8_t) 10UL)
+#define EVE_BARGRAPH ((uint8_t) 11UL)
+
+/* Bitmap filter types */
+#define EVE_NEAREST ((uint8_t) 0UL)
+#define EVE_BILINEAR ((uint8_t) 1UL)
+
+/* Bitmap wrap types */
+#define EVE_BORDER ((uint8_t) 0UL)
+#define EVE_REPEAT ((uint8_t) 1UL)
+
+/* Stencil defines */
+#define EVE_KEEP ((uint8_t) 1UL)
+#define EVE_REPLACE ((uint8_t) 2UL)
+#define EVE_INCR ((uint8_t) 3UL)
+#define EVE_DECR ((uint8_t) 4UL)
+#define EVE_INVERT ((uint8_t) 5UL)
+
+/* Graphics display list swap defines */
+#define EVE_DLSWAP_DONE ((uint8_t) 0UL)
+#define EVE_DLSWAP_LINE ((uint8_t) 1UL)
+#define EVE_DLSWAP_FRAME ((uint8_t) 2UL)
+
+/* Interrupt bits */
+#define EVE_INT_SWAP ((uint8_t) 0x01)
+#define EVE_INT_TOUCH ((uint8_t) 0x02)
+#define EVE_INT_TAG ((uint8_t) 0x04)
+#define EVE_INT_SOUND ((uint8_t) 0x08)
+#define EVE_INT_PLAYBACK ((uint8_t) 0x10)
+#define EVE_INT_CMDEMPTY ((uint8_t) 0x20)
+#define EVE_INT_CMDFLAG ((uint8_t) 0x40)
+#define EVE_INT_CONVCOMPLETE ((uint8_t) 0x80)
+
+/* Touch mode */
+#define EVE_TMODE_OFF ((uint8_t) 0U)
+#define EVE_TMODE_ONESHOT ((uint8_t) 1U)
+#define EVE_TMODE_FRAME ((uint8_t) 2U)
+#define EVE_TMODE_CONTINUOUS ((uint8_t) 3U)
+
+/* Alpha blending */
+#define EVE_ZERO ((uint32_t) 0UL)
+#define EVE_ONE ((uint32_t) 1UL)
+#define EVE_SRC_ALPHA ((uint32_t) 2UL)
+#define EVE_DST_ALPHA ((uint32_t) 3UL)
+#define EVE_ONE_MINUS_SRC_ALPHA ((uint32_t) 4UL)
+#define EVE_ONE_MINUS_DST_ALPHA ((uint32_t) 5UL)
+
+/* Graphics primitives */
+#define EVE_BITMAPS ((uint32_t) 1UL)
+#define EVE_POINTS ((uint32_t) 2UL)
+#define EVE_LINES ((uint32_t) 3UL)
+#define EVE_LINE_STRIP ((uint32_t) 4UL)
+#define EVE_EDGE_STRIP_R ((uint32_t) 5UL)
+#define EVE_EDGE_STRIP_L ((uint32_t) 6UL)
+#define EVE_EDGE_STRIP_A ((uint32_t) 7UL)
+#define EVE_EDGE_STRIP_B ((uint32_t) 8UL)
+#define EVE_RECTS ((uint32_t) 9UL)
+#define EVE_INT_G8 ((uint32_t) 18UL)
+#define EVE_INT_L8C ((uint32_t) 12UL)
+#define EVE_INT_VGA ((uint32_t) 13UL)
+#define EVE_PALETTED565 ((uint32_t) 14UL)
+#define EVE_PALETTED4444 ((uint32_t) 15UL)
+#define EVE_PALETTED8 ((uint32_t) 16UL)
+#define EVE_L2 ((uint32_t) 17UL)
+
+/* Widget command options */
+#define EVE_OPT_MONO ((uint16_t) 1U)
+#define EVE_OPT_NODL ((uint16_t) 2U)
+#define EVE_OPT_FLAT ((uint16_t) 256U)
+#define EVE_OPT_CENTERX ((uint16_t) 512U)
+#define EVE_OPT_CENTERY ((uint16_t) 1024U)
+#define EVE_OPT_CENTER (EVE_OPT_CENTERX | EVE_OPT_CENTERY)
+#define EVE_OPT_NOBACK ((uint16_t) 4096U)
+#define EVE_OPT_NOTICKS ((uint16_t) 8192U)
+#define EVE_OPT_NOHM ((uint16_t) 16384U)
+#define EVE_OPT_NOPOINTER ((uint16_t) 16384U)
+#define EVE_OPT_NOSECS ((uint16_t) 32768U)
+#define EVE_OPT_NOHANDS ((uint16_t) 49152U)
+#define EVE_OPT_RIGHTX ((uint16_t) 2048U)
+#define EVE_OPT_SIGNED ((uint16_t) 256U)
+
+#define EVE_OPT_MEDIAFIFO ((uint16_t) 16U)
+#define EVE_OPT_FULLSCREEN ((uint16_t) 8U)
+#define EVE_OPT_NOTEAR ((uint16_t) 4U)
+#define EVE_OPT_SOUND ((uint16_t) 32U)
+
+/* ADC */
+#define EVE_ADC_DIFFERENTIAL ((uint32_t) 1UL)
+#define EVE_ADC_SINGLE_ENDED ((uint32_t) 0UL)
+
+/* Fonts */
+#define EVE_NUMCHAR_PERFONT ((uint32_t) 128UL) /* number of font characters per bitmap handle */
+#define EVE_FONT_TABLE_SIZE ((uint32_t) 148UL) /* size of the font table - utilized for loopup by the graphics engine */
+#define EVE_FONT_TABLE_POINTER ((uint32_t) 0xFFFFCUL) /* pointer to the inbuilt font tables starting from bitmap handle 16 */
+
+/* Audio sample type defines */
+#define EVE_LINEAR_SAMPLES ((uint32_t) 0UL) /* 8bit signed samples */
+#define EVE_ULAW_SAMPLES ((uint32_t) 1UL) /* 8bit ulaw samples */
+#define EVE_ADPCM_SAMPLES ((uint32_t) 2UL) /* 4bit ima adpcm samples */
+
+/* Synthesized sound */
+#define EVE_SILENCE ((uint8_t) 0x00U)
+#define EVE_SQUAREWAVE ((uint8_t) 0x01U)
+#define EVE_SINEWAVE ((uint8_t) 0x02U)
+#define EVE_SAWTOOTH ((uint8_t) 0x03U)
+#define EVE_TRIANGLE ((uint8_t) 0x04U)
+#define EVE_BEEPING ((uint8_t) 0x05U)
+#define EVE_ALARM ((uint8_t) 0x06U)
+#define EVE_WARBLE ((uint8_t) 0x07U)
+#define EVE_CAROUSEL ((uint8_t) 0x08U)
+#define EVE_PIPS(n) ((uint8_t) (0x0FU + (n)))
+#define EVE_HARP ((uint8_t) 0x40U)
+#define EVE_XYLOPHONE ((uint8_t) 0x41U)
+#define EVE_TUBA ((uint8_t) 0x42U)
+#define EVE_GLOCKENSPIEL ((uint8_t) 0x43U)
+#define EVE_ORGAN ((uint8_t) 0x44U)
+#define EVE_TRUMPET ((uint8_t) 0x45U)
+#define EVE_PIANO ((uint8_t) 0x46U)
+#define EVE_CHIMES ((uint8_t) 0x47U)
+#define EVE_MUSICBOX ((uint8_t) 0x48U)
+#define EVE_BELL ((uint8_t) 0x49U)
+#define EVE_CLICK ((uint8_t) 0x50U)
+#define EVE_SWITCH ((uint8_t) 0x51U)
+#define EVE_COWBELL ((uint8_t) 0x52U)
+#define EVE_NOTCH ((uint8_t) 0x53U)
+#define EVE_HIHAT ((uint8_t) 0x54U)
+#define EVE_KICKDRUM ((uint8_t) 0x55U)
+#define EVE_POP ((uint8_t) 0x56U)
+#define EVE_CLACK ((uint8_t) 0x57U)
+#define EVE_CHACK ((uint8_t) 0x58U)
+#define EVE_MUTE ((uint8_t) 0x60U)
+#define EVE_UNMUTE ((uint8_t) 0x61U)
+
+/* Synthesized sound frequencies, midi note */
+#define EVE_MIDI_A0 ((uint8_t) 21U)
+#define EVE_MIDI_A_0 ((uint8_t) 22U)
+#define EVE_MIDI_B0 ((uint8_t) 23U)
+#define EVE_MIDI_C1 ((uint8_t) 24U)
+#define EVE_MIDI_C_1 ((uint8_t) 25U)
+#define EVE_MIDI_D1 ((uint8_t) 26U)
+#define EVE_MIDI_D_1 ((uint8_t) 27U)
+#define EVE_MIDI_E1 ((uint8_t) 28U)
+#define EVE_MIDI_F1 ((uint8_t) 29U)
+#define EVE_MIDI_F_1 ((uint8_t) 30U)
+#define EVE_MIDI_G1 ((uint8_t) 31U)
+#define EVE_MIDI_G_1 ((uint8_t) 32U)
+#define EVE_MIDI_A1 ((uint8_t) 33U)
+#define EVE_MIDI_A_1 ((uint8_t) 34U)
+#define EVE_MIDI_B1 ((uint8_t) 35U)
+#define EVE_MIDI_C2 ((uint8_t) 36U)
+#define EVE_MIDI_C_2 ((uint8_t) 37U)
+#define EVE_MIDI_D2 ((uint8_t) 38U)
+#define EVE_MIDI_D_2 ((uint8_t) 39U)
+#define EVE_MIDI_E2 ((uint8_t) 40U)
+#define EVE_MIDI_F2 ((uint8_t) 41U)
+#define EVE_MIDI_F_2 ((uint8_t) 42U)
+#define EVE_MIDI_G2 ((uint8_t) 43U)
+#define EVE_MIDI_G_2 ((uint8_t) 44U)
+#define EVE_MIDI_A2 ((uint8_t) 45U)
+#define EVE_MIDI_A_2 ((uint8_t) 46U)
+#define EVE_MIDI_B2 ((uint8_t) 47U)
+#define EVE_MIDI_C3 ((uint8_t) 48U)
+#define EVE_MIDI_C_3 ((uint8_t) 49U)
+#define EVE_MIDI_D3 ((uint8_t) 50U)
+#define EVE_MIDI_D_3 ((uint8_t) 51U)
+#define EVE_MIDI_E3 ((uint8_t) 52U)
+#define EVE_MIDI_F3 ((uint8_t) 53U)
+#define EVE_MIDI_F_3 ((uint8_t) 54U)
+#define EVE_MIDI_G3 ((uint8_t) 55U)
+#define EVE_MIDI_G_3 ((uint8_t) 56U)
+#define EVE_MIDI_A3 ((uint8_t) 57U)
+#define EVE_MIDI_A_3 ((uint8_t) 58U)
+#define EVE_MIDI_B3 ((uint8_t) 59U)
+#define EVE_MIDI_C4 ((uint8_t) 60U)
+#define EVE_MIDI_C_4 ((uint8_t) 61U)
+#define EVE_MIDI_D4 ((uint8_t) 62U)
+#define EVE_MIDI_D_4 ((uint8_t) 63U)
+#define EVE_MIDI_E4 ((uint8_t) 64U)
+#define EVE_MIDI_F4 ((uint8_t) 65U)
+#define EVE_MIDI_F_4 ((uint8_t) 66U)
+#define EVE_MIDI_G4 ((uint8_t) 67U)
+#define EVE_MIDI_G_4 ((uint8_t) 68U)
+#define EVE_MIDI_A4 ((uint8_t) 69U)
+#define EVE_MIDI_A_4 ((uint8_t) 70U)
+#define EVE_MIDI_B4 ((uint8_t) 71U)
+#define EVE_MIDI_C5 ((uint8_t) 72U)
+#define EVE_MIDI_C_5 ((uint8_t) 73U)
+#define EVE_MIDI_D5 ((uint8_t) 74U)
+#define EVE_MIDI_D_5 ((uint8_t) 75U)
+#define EVE_MIDI_E5 ((uint8_t) 76U)
+#define EVE_MIDI_F5 ((uint8_t) 77U)
+#define EVE_MIDI_F_5 ((uint8_t) 78U)
+#define EVE_MIDI_G5 ((uint8_t) 79U)
+#define EVE_MIDI_G_5 ((uint8_t) 80U)
+#define EVE_MIDI_A5 ((uint8_t) 81U)
+#define EVE_MIDI_A_5 ((uint8_t) 82U)
+#define EVE_MIDI_B5 ((uint8_t) 83U)
+#define EVE_MIDI_C6 ((uint8_t) 84U)
+#define EVE_MIDI_C_6 ((uint8_t) 85U)
+#define EVE_MIDI_D6 ((uint8_t) 86U)
+#define EVE_MIDI_D_6 ((uint8_t) 87U)
+#define EVE_MIDI_E6 ((uint8_t) 88U)
+#define EVE_MIDI_F6 ((uint8_t) 89U)
+#define EVE_MIDI_F_6 ((uint8_t) 90U)
+#define EVE_MIDI_G6 ((uint8_t) 91U)
+#define EVE_MIDI_G_6 ((uint8_t) 92U)
+#define EVE_MIDI_A6 ((uint8_t) 93U)
+#define EVE_MIDI_A_6 ((uint8_t) 94U)
+#define EVE_MIDI_B6 ((uint8_t) 95U)
+#define EVE_MIDI_C7 ((uint8_t) 96U)
+#define EVE_MIDI_C_7 ((uint8_t) 97U)
+#define EVE_MIDI_D7 ((uint8_t) 98U)
+#define EVE_MIDI_D_7 ((uint8_t) 99U)
+#define EVE_MIDI_E7 ((uint8_t) 100U)
+#define EVE_MIDI_F7 ((uint8_t) 101U)
+#define EVE_MIDI_F_7 ((uint8_t) 102U)
+#define EVE_MIDI_G7 ((uint8_t) 103U)
+#define EVE_MIDI_G_7 ((uint8_t) 104U)
+#define EVE_MIDI_A7 ((uint8_t) 105U)
+#define EVE_MIDI_A_7 ((uint8_t) 106U)
+#define EVE_MIDI_B7 ((uint8_t) 107U)
+#define EVE_MIDI_C8 ((uint8_t) 108U)
+
+/* GPIO bits */
+#define EVE_GPIO0 ((uint8_t) 0U)
+#define EVE_GPIO1 ((uint8_t) 1U) /* default gpio pin for audio shutdown, 1 - enable, 0 - disable */
+#define EVE_GPIO7 ((uint8_t) 7U) /* default gpio pin for display enable, 1 - enable, 0 - disable */
+
+/* Display rotation */
+#define EVE_DISPLAY_0 ((uint8_t) 0U) /* 0 degrees rotation */
+#define EVE_DISPLAY_180 ((uint8_t) 1U) /* 180 degrees rotation */
+
+/* Commands */
+#define CMD_APPEND ((uint32_t) 0xFFFFFF1EUL)
+#define CMD_BGCOLOR ((uint32_t) 0xFFFFFF09UL)
+#define CMD_BUTTON ((uint32_t) 0xFFFFFF0DUL)
+#define CMD_CALIBRATE ((uint32_t) 0xFFFFFF15UL)
+#define CMD_CLOCK ((uint32_t) 0xFFFFFF14UL)
+#define CMD_COLDSTART ((uint32_t) 0xFFFFFF32UL)
+#define CMD_DIAL ((uint32_t) 0xFFFFFF2DUL)
+#define CMD_DLSTART ((uint32_t) 0xFFFFFF00UL)
+#define CMD_FGCOLOR ((uint32_t) 0xFFFFFF0AUL)
+#define CMD_GAUGE ((uint32_t) 0xFFFFFF13UL)
+#define CMD_GETMATRIX ((uint32_t) 0xFFFFFF33UL)
+#define CMD_GETPROPS ((uint32_t) 0xFFFFFF25UL)
+#define CMD_GETPTR ((uint32_t) 0xFFFFFF23UL)
+#define CMD_GRADCOLOR ((uint32_t) 0xFFFFFF34UL)
+#define CMD_GRADIENT ((uint32_t) 0xFFFFFF0BUL)
+#define CMD_INFLATE ((uint32_t) 0xFFFFFF22UL)
+#define CMD_INTERRUPT ((uint32_t) 0xFFFFFF02UL)
+#define CMD_KEYS ((uint32_t) 0xFFFFFF0EUL)
+#define CMD_LOADIDENTITY ((uint32_t) 0xFFFFFF26UL)
+#define CMD_LOADIMAGE ((uint32_t) 0xFFFFFF24UL)
+#define CMD_LOGO ((uint32_t) 0xFFFFFF31UL)
+#define CMD_MEDIAFIFO ((uint32_t) 0xFFFFFF39UL)
+#define CMD_MEMCPY ((uint32_t) 0xFFFFFF1DUL)
+#define CMD_MEMCRC ((uint32_t) 0xFFFFFF18UL)
+#define CMD_MEMSET ((uint32_t) 0xFFFFFF1BUL)
+#define CMD_MEMWRITE ((uint32_t) 0xFFFFFF1AUL)
+#define CMD_MEMZERO ((uint32_t) 0xFFFFFF1CUL)
+#define CMD_NUMBER ((uint32_t) 0xFFFFFF2EUL)
+#define CMD_PLAYVIDEO ((uint32_t) 0xFFFFFF3AUL)
+#define CMD_PROGRESS ((uint32_t) 0xFFFFFF0FUL)
+#define CMD_REGREAD ((uint32_t) 0xFFFFFF19UL)
+#define CMD_ROMFONT ((uint32_t) 0xFFFFFF3FUL)
+#define CMD_ROTATE ((uint32_t) 0xFFFFFF29UL)
+#define CMD_SCALE ((uint32_t) 0xFFFFFF28UL)
+#define CMD_SCREENSAVER ((uint32_t) 0xFFFFFF2FUL)
+#define CMD_SCROLLBAR ((uint32_t) 0xFFFFFF11UL)
+#define CMD_SETBASE ((uint32_t) 0xFFFFFF38UL)
+#define CMD_SETBITMAP ((uint32_t) 0xFFFFFF43UL)
+#define CMD_SETFONT ((uint32_t) 0xFFFFFF2BUL)
+#define CMD_SETFONT2 ((uint32_t) 0xFFFFFF3BUL)
+#define CMD_SETMATRIX ((uint32_t) 0xFFFFFF2AUL)
+#define CMD_SETROTATE ((uint32_t) 0xFFFFFF36UL)
+#define CMD_SETSCRATCH ((uint32_t) 0xFFFFFF3CUL)
+#define CMD_SKETCH ((uint32_t) 0xFFFFFF30UL)
+#define CMD_SLIDER ((uint32_t) 0xFFFFFF10UL)
+#define CMD_SNAPSHOT ((uint32_t) 0xFFFFFF1FUL)
+#define CMD_SNAPSHOT2 ((uint32_t) 0xFFFFFF37UL)
+#define CMD_SPINNER ((uint32_t) 0xFFFFFF16UL)
+#define CMD_STOP ((uint32_t) 0xFFFFFF17UL)
+#define CMD_SWAP ((uint32_t) 0xFFFFFF01UL)
+#define CMD_TEXT ((uint32_t) 0xFFFFFF0CUL)
+#define CMD_TOGGLE ((uint32_t) 0xFFFFFF12UL)
+#define CMD_TRACK ((uint32_t) 0xFFFFFF2CUL)
+#define CMD_TRANSLATE ((uint32_t) 0xFFFFFF27UL)
+#define CMD_VIDEOFRAME ((uint32_t) 0xFFFFFF41UL)
+#define CMD_VIDEOSTART ((uint32_t) 0xFFFFFF40UL)
+
+/* Registers */
+#define REG_ANA_COMP ((uint32_t) 0x00302184UL) /* only listed in datasheet */
+#define REG_BIST_EN ((uint32_t) 0x00302174UL) /* only listed in datasheet */
+#define REG_CLOCK ((uint32_t) 0x00302008UL)
+#define REG_CMDB_SPACE ((uint32_t) 0x00302574UL)
+#define REG_CMDB_WRITE ((uint32_t) 0x00302578UL)
+#define REG_CMD_DL ((uint32_t) 0x00302100UL)
+#define REG_CMD_READ ((uint32_t) 0x003020f8UL)
+#define REG_CMD_WRITE ((uint32_t) 0x003020fcUL)
+#define REG_CPURESET ((uint32_t) 0x00302020UL)
+#define REG_CSPREAD ((uint32_t) 0x00302068UL)
+#define REG_CTOUCH_EXTENDED ((uint32_t) 0x00302108UL)
+#define REG_CTOUCH_TOUCH0_XY ((uint32_t) 0x00302124UL) /* only listed in datasheet */
+#define REG_CTOUCH_TOUCH4_X ((uint32_t) 0x0030216cUL)
+#define REG_CTOUCH_TOUCH4_Y ((uint32_t) 0x00302120UL)
+#define REG_CTOUCH_TOUCH1_XY ((uint32_t) 0x0030211cUL)
+#define REG_CTOUCH_TOUCH2_XY ((uint32_t) 0x0030218cUL)
+#define REG_CTOUCH_TOUCH3_XY ((uint32_t) 0x00302190UL)
+#define REG_TOUCH_CONFIG ((uint32_t) 0x00302168UL)
+#define REG_DATESTAMP ((uint32_t) 0x00302564UL) /* only listed in datasheet */
+#define REG_DITHER ((uint32_t) 0x00302060UL)
+#define REG_DLSWAP ((uint32_t) 0x00302054UL)
+#define REG_FRAMES ((uint32_t) 0x00302004UL)
+#define REG_FREQUENCY ((uint32_t) 0x0030200cUL)
+#define REG_GPIO ((uint32_t) 0x00302094UL)
+#define REG_GPIOX ((uint32_t) 0x0030209cUL)
+#define REG_GPIOX_DIR ((uint32_t) 0x00302098UL)
+#define REG_GPIO_DIR ((uint32_t) 0x00302090UL)
+#define REG_HCYCLE ((uint32_t) 0x0030202cUL)
+#define REG_HOFFSET ((uint32_t) 0x00302030UL)
+#define REG_HSIZE ((uint32_t) 0x00302034UL)
+#define REG_HSYNC0 ((uint32_t) 0x00302038UL)
+#define REG_HSYNC1 ((uint32_t) 0x0030203cUL)
+#define REG_ID ((uint32_t) 0x00302000UL)
+#define REG_INT_EN ((uint32_t) 0x003020acUL)
+#define REG_INT_FLAGS ((uint32_t) 0x003020a8UL)
+#define REG_INT_MASK ((uint32_t) 0x003020b0UL)
+#define REG_MACRO_0 ((uint32_t) 0x003020d8UL)
+#define REG_MACRO_1 ((uint32_t) 0x003020dcUL)
+#define REG_MEDIAFIFO_READ ((uint32_t) 0x00309014UL) /* only listed in programmers guide */
+#define REG_MEDIAFIFO_WRITE ((uint32_t) 0x00309018UL) /* only listed in programmers guide */
+#define REG_OUTBITS ((uint32_t) 0x0030205cUL)
+#define REG_PCLK ((uint32_t) 0x00302070UL)
+#define REG_PCLK_POL ((uint32_t) 0x0030206cUL)
+#define REG_PLAY ((uint32_t) 0x0030208cUL)
+#define REG_PLAYBACK_FORMAT ((uint32_t) 0x003020c4UL)
+#define REG_PLAYBACK_FREQ ((uint32_t) 0x003020c0UL)
+#define REG_PLAYBACK_LENGTH ((uint32_t) 0x003020b8UL)
+#define REG_PLAYBACK_LOOP ((uint32_t) 0x003020c8UL)
+#define REG_PLAYBACK_PLAY ((uint32_t) 0x003020ccUL)
+#define REG_PLAYBACK_READPTR ((uint32_t) 0x003020bcUL)
+#define REG_PLAYBACK_START ((uint32_t) 0x003020b4UL)
+#define REG_PWM_DUTY ((uint32_t) 0x003020d4UL)
+#define REG_PWM_HZ ((uint32_t) 0x003020d0UL)
+#define REG_RENDERMODE ((uint32_t) 0x00302010UL) /* only listed in datasheet */
+#define REG_ROTATE ((uint32_t) 0x00302058UL)
+#define REG_SNAPFORMAT ((uint32_t) 0x0030201cUL) /* only listed in datasheet */
+#define REG_SNAPSHOT ((uint32_t) 0x00302018UL) /* only listed in datasheet */
+#define REG_SNAPY ((uint32_t) 0x00302014UL) /* only listed in datasheet */
+#define REG_SOUND ((uint32_t) 0x00302088UL)
+#define REG_SPI_WIDTH ((uint32_t) 0x00302188UL) /* listed with false offset in programmers guide V1.1 */
+#define REG_SWIZZLE ((uint32_t) 0x00302064UL)
+#define REG_TAG ((uint32_t) 0x0030207cUL)
+#define REG_TAG_X ((uint32_t) 0x00302074UL)
+#define REG_TAG_Y ((uint32_t) 0x00302078UL)
+#define REG_TAP_CRC ((uint32_t) 0x00302024UL) /* only listed in datasheet */
+#define REG_TAP_MASK ((uint32_t) 0x00302028UL) /* only listed in datasheet */
+#define REG_TOUCH_ADC_MODE ((uint32_t) 0x00302108UL)
+#define REG_TOUCH_CHARGE ((uint32_t) 0x0030210cUL)
+#define REG_TOUCH_DIRECT_XY ((uint32_t) 0x0030218cUL)
+#define REG_TOUCH_DIRECT_Z1Z2 ((uint32_t) 0x00302190UL)
+#define REG_TOUCH_MODE ((uint32_t) 0x00302104UL)
+#define REG_TOUCH_OVERSAMPLE ((uint32_t) 0x00302114UL)
+#define REG_TOUCH_RAW_XY ((uint32_t) 0x0030211cUL)
+#define REG_TOUCH_RZ ((uint32_t) 0x00302120UL)
+#define REG_TOUCH_RZTHRESH ((uint32_t) 0x00302118UL)
+#define REG_TOUCH_SCREEN_XY ((uint32_t) 0x00302124UL)
+#define REG_TOUCH_SETTLE ((uint32_t) 0x00302110UL)
+#define REG_TOUCH_TAG ((uint32_t) 0x0030212cUL)
+#define REG_TOUCH_TAG1 ((uint32_t) 0x00302134UL) /* only listed in datasheet */
+#define REG_TOUCH_TAG1_XY ((uint32_t) 0x00302130UL) /* only listed in datasheet */
+#define REG_TOUCH_TAG2 ((uint32_t) 0x0030213cUL) /* only listed in datasheet */
+#define REG_TOUCH_TAG2_XY ((uint32_t) 0x00302138UL) /* only listed in datasheet */
+#define REG_TOUCH_TAG3 ((uint32_t) 0x00302144UL) /* only listed in datasheet */
+#define REG_TOUCH_TAG3_XY ((uint32_t) 0x00302140UL) /* only listed in datasheet */
+#define REG_TOUCH_TAG4 ((uint32_t) 0x0030214cUL)/* only listed in datasheet */
+#define REG_TOUCH_TAG4_XY ((uint32_t) 0x00302148UL) /* only listed in datasheet */
+#define REG_TOUCH_TAG_XY ((uint32_t) 0x00302128UL)
+#define REG_TOUCH_TRANSFORM_A ((uint32_t) 0x00302150UL)
+#define REG_TOUCH_TRANSFORM_B ((uint32_t) 0x00302154UL)
+#define REG_TOUCH_TRANSFORM_C ((uint32_t) 0x00302158UL)
+#define REG_TOUCH_TRANSFORM_D ((uint32_t) 0x0030215cUL)
+#define REG_TOUCH_TRANSFORM_E ((uint32_t) 0x00302160UL)
+#define REG_TOUCH_TRANSFORM_F ((uint32_t) 0x00302164UL)
+#define REG_TRACKER ((uint32_t) 0x00309000UL) /* only listed in programmers guide */
+#define REG_TRACKER_1 ((uint32_t) 0x00309004UL) /* only listed in programmers guide */
+#define REG_TRACKER_2 ((uint32_t) 0x00309008UL) /* only listed in programmers guide */
+#define REG_TRACKER_3 ((uint32_t) 0x0030900cUL) /* only listed in programmers guide */
+#define REG_TRACKER_4 ((uint32_t) 0x00309010UL) /* only listed in programmers guide */
+#define REG_TRIM ((uint32_t) 0x00302180UL)
+#define REG_VCYCLE ((uint32_t) 0x00302040UL)
+#define REG_VOFFSET ((uint32_t) 0x00302044UL)
+#define REG_VOL_PB ((uint32_t) 0x00302080UL)
+#define REG_VOL_SOUND ((uint32_t) 0x00302084UL)
+#define REG_VSIZE ((uint32_t) 0x00302048UL)
+#define REG_VSYNC0 ((uint32_t) 0x0030204cUL)
+#define REG_VSYNC1 ((uint32_t) 0x00302050UL)
+
+
+/* Macros for static display list generation */
+
+//#define ALPHA_FUNC(func,ref) ((DL_ALPHA_FUNC) | (((func) & 7UL) << 8U) | ((ref) & 0xFFUL))
+/**
+ * @brief Set the alpha test function.
+ *
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t ALPHA_FUNC(uint8_t func, uint8_t ref)
+{
+ uint32_t const funcv = ((uint32_t) func & 7U) << 8U;
+ return (DL_ALPHA_FUNC | funcv | ref);
+}
+
+//#define BITMAP_HANDLE(handle) ((DL_BITMAP_HANDLE) | ((handle) & 0x1FUL))
+/**
+ * @brief Set the bitmap handle.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t BITMAP_HANDLE(uint8_t handle)
+{
+ return (DL_BITMAP_HANDLE | ((handle) & 0x1FUL));
+}
+
+//#define BITMAP_LAYOUT(format,linestride,height) ((DL_BITMAP_LAYOUT) | (((format) & 0x1FUL) << 19U) | (((linestride) & 0x3FFUL) << 9U) | ((height) & 0x1FFUL))
+/**
+ * @brief Set the source bitmap memory format and layout for the current handle.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t BITMAP_LAYOUT(uint8_t format, uint16_t linestride, uint16_t height)
+{
+ uint32_t const formatv = ((uint32_t) format & 0x1FUL) << 19U;
+ uint32_t const linestridev = ((uint32_t) linestride & 0x3FFUL) << 9U;
+ uint32_t const heightv = height & 0x1FFUL;
+ return (DL_BITMAP_LAYOUT | formatv | linestridev | heightv);
+}
+
+//#define BITMAP_SIZE(filter,wrapx,wrapy,width,height) ((DL_BITMAP_SIZE) | (((filter) & 1UL) << 20U) | (((wrapx) & 1UL) << 19U) | (((wrapy) & 1UL) << 18U) | (((width) & 0x1FFUL) << 9U) | ((height) & 0x1FFUL))
+/**
+ * @brief Set the source bitmap memory format and layout for the current handle.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t BITMAP_SIZE(uint8_t filter, uint8_t wrapx, uint8_t wrapy, uint16_t width, uint16_t height)
+{
+ uint32_t const filterv = (filter & 0x1UL) << 20U;
+ uint32_t const wrapxv = (wrapx & 0x1UL) << 19U;
+ uint32_t const wrapyv = (wrapy & 0x1UL) << 18U;
+ uint32_t const widthv = (width & 0x1FFUL) << 9U;
+ uint32_t const heightv = height & 0x1FFUL;
+ return (DL_BITMAP_SIZE | filterv | wrapxv | wrapyv | widthv | heightv);
+}
+
+//#define BITMAP_LAYOUT_H(linestride,height) ((DL_BITMAP_LAYOUT_H) | (((((linestride) & 0xC00U) >> 10U)&3UL) << 2U) | ((((height) & 0x600U) >> 9U) & 3UL))
+/**
+ * @brief Set the 2 most significant bits of the source bitmap memory format and layout for the current handle.
+ * @param linestride 12-bit value specified to BITMAP_LAYOUT
+ * @param height 11-bit value specified to BITMAP_LAYOUT
+ * @note this is different to FTDIs implementation as this takes the original values as parameters and not only the upper bits
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t BITMAP_LAYOUT_H(uint16_t linestride, uint16_t height)
+{
+ uint32_t const linestridev = (uint32_t) ((((linestride & 0xC00U) >> 10U) &3UL) << 2U);
+ uint32_t const heightv = (uint32_t) (((height & 0x600U) >> 9U) & 3UL);
+ return (DL_BITMAP_LAYOUT_H | linestridev | heightv);
+}
+
+//#define BITMAP_SIZE_H(width,height) ((DL_BITMAP_SIZE_H) | (((((width) & 0x600U) >> 9U) & 3UL) << 2U) | ((((height) & 0x600U) >> 9U) & 3UL))
+/**
+ * @brief Set the 2 most significant bits of bitmaps dimension for the current handle.
+ * @param linestride 11-bit value of bitmap width, the 2 most significant bits are used
+ * @param height 11-bit value of bitmap width, the 2 most significant bits are used
+ * @note this is different to FTDIs implementation as this takes the original values as parameters and not only the upper bits
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t BITMAP_SIZE_H(uint16_t width, uint16_t height)
+{
+ uint32_t const widthv = (uint32_t) ((((width & 0x600U) >> 9U) & 3UL) << 2U);
+ uint32_t const heightv = (uint32_t) (((height & 0x600U) >> 9U) & 3UL);
+ return ((DL_BITMAP_SIZE_H) | widthv | heightv);
+}
+
+//#define BITMAP_SOURCE(addr) ((DL_BITMAP_SOURCE) | ((addr) & 0x3FFFFFUL))
+/**
+ * @brief Set the source address of bitmap data in RAM_G or flash memory.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t BITMAP_SOURCE(uint32_t addr)
+{
+ return (DL_BITMAP_SOURCE | (addr & 0x3FFFFFUL));
+}
+
+#if EVE_GEN < 3 /* only define these for FT81x */
+//#define BITMAP_TRANSFORM_A(a) ((DL_BITMAP_TRANSFORM_A) | ((a) & 0x1FFFFUL))
+/**
+ * @brief Set the A coefficient of the bitmap transform matrix.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t BITMAP_TRANSFORM_A(uint32_t val)
+{
+ return (DL_BITMAP_TRANSFORM_A | (val & 0x1FFFFUL));
+}
+
+//#define BITMAP_TRANSFORM_B(b) ((DL_BITMAP_TRANSFORM_B) | ((b) & 0x1FFFFUL))
+/**
+ * @brief Set the B coefficient of the bitmap transform matrix.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t BITMAP_TRANSFORM_B(uint32_t val)
+{
+ return (DL_BITMAP_TRANSFORM_B | (val & 0x1FFFFUL));
+}
+
+//#define BITMAP_TRANSFORM_D(d) ((DL_BITMAP_TRANSFORM_D) | ((d) & 0x1FFFFUL))
+/**
+ * @brief Set the D coefficient of the bitmap transform matrix.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t BITMAP_TRANSFORM_D(uint32_t val)
+{
+ return (DL_BITMAP_TRANSFORM_D | (val & 0x1FFFFUL));
+}
+
+//#define BITMAP_TRANSFORM_E(e) ((DL_BITMAP_TRANSFORM_E) | ((e) & 0x1FFFFUL))
+/**
+ * @brief Set he E coefficient of the bitmap transform matrix.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t BITMAP_TRANSFORM_E(uint32_t val)
+{
+ return (DL_BITMAP_TRANSFORM_E | (val & 0x1FFFFUL));
+}
+
+#endif
+
+//#define BITMAP_TRANSFORM_C(c) ((DL_BITMAP_TRANSFORM_C) | ((c) & 0x1FFFFUL))
+/**
+ * @brief Set the C coefficient of the bitmap transform matrix.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t BITMAP_TRANSFORM_C(uint32_t val)
+{
+ return (DL_BITMAP_TRANSFORM_C | (val & 0x1FFFFUL));
+}
+
+//#define BITMAP_TRANSFORM_F(f) ((DL_BITMAP_TRANSFORM_F) | ((f) & 0x1FFFFUL))
+/**
+ * @brief Set the F coefficient of the bitmap transform matrix.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t BITMAP_TRANSFORM_F(uint32_t val)
+{
+ return (DL_BITMAP_TRANSFORM_F | (val & 0x1FFFFUL));
+}
+
+//#define BLEND_FUNC(src,dst) ((DL_BLEND_FUNC) | (((src) & 7UL) << 3U) | ((dst) & 7UL))
+/**
+ * @brief Execute a sequence of commands at another location in the display list.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t BLEND_FUNC(uint8_t src, uint8_t dst)
+{
+ uint32_t const srcv = (uint32_t) ((src & 7UL) << 3U);
+ uint32_t const dstv = (uint32_t) (dst & 7UL);
+ return (DL_BLEND_FUNC | srcv | dstv);
+}
+
+//#define CALL(dest) ((DL_CALL) | ((dest) & 0xFFFFUL))
+/**
+ * @brief Execute a sequence of commands at another location in the display list.
+ * @note valid range for dest is from zero to 2047
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t CALL(uint16_t dest)
+{
+ return (DL_CALL | (dest & 0x7FFUL));
+}
+
+//#define JUMP(dest) ((DL_JUMP) | ((dest) & 0xFFFFUL))
+/**
+ * @brief Execute commands at another location in the display list.
+ * @note valid range for dest is from zero to 2047
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t JUMP(uint16_t dest)
+{
+ return (DL_JUMP | (dest & 0x7FFUL));
+}
+
+//#define CELL(cell) ((DL_CELL) | ((cell) & 0x7FUL))
+/**
+ * @brief Set the bitmap cell number for the VERTEX2F command.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t CELL(uint8_t cell)
+{
+ return (DL_CELL | (cell & 0x7FUL));
+}
+
+//#define CLEAR(c,s,t) ((DL_CLEAR) | (((c) & 1UL) << 2U) | (((s) & 1UL) << 1U) | ((t) & 1UL))
+/**
+ * @brief Clear buffers to preset values.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t CLEAR(uint8_t color, uint8_t stencil, uint8_t tag)
+{
+ uint32_t const colorv = (color & 1UL) << 2U;
+ uint32_t const stencilv = (stencil & 1UL) << 1U;
+ uint32_t const tagv = (tag & 1UL);
+ return (DL_CLEAR | colorv | stencilv | tagv);
+}
+
+//#define CLEAR_COLOR_A(alpha) ((DL_CLEAR_COLOR_A) | ((alpha) & 0xFFUL))
+/**
+ * @brief Set clear value for the alpha channel.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t CLEAR_COLOR_A(uint8_t alpha)
+{
+ return (DL_CLEAR_COLOR_A | alpha);
+}
+
+//#define CLEAR_COLOR_RGB(red,green,blue) ((DL_CLEAR_COLOR_RGB) | (((red) & 0xFFUL) << 16U) | (((green) & 0xFFUL) << 8U) | ((blue) & 0xFFUL))
+/**
+ * @brief Set clear values for red, green and blue channels.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t CLEAR_COLOR_RGB(uint8_t red, uint8_t green, uint8_t blue)
+{
+ uint32_t const redv = ((red & 0xFFUL) << 16U);
+ uint32_t const greenv = ((green & 0xFFUL) << 8U);
+ uint32_t const bluev = (blue & 0xFFUL);
+ return (DL_CLEAR_COLOR_RGB | redv | greenv | bluev);
+}
+
+//#define CLEAR_STENCIL(s) ((DL_CLEAR_STENCIL) | ((s) & 0xFFUL))
+/**
+ * @brief Set clear value for the stencil buffer.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t CLEAR_STENCIL(uint8_t val)
+{
+ return (DL_CLEAR_STENCIL | val);
+}
+
+//#define CLEAR_TAG(s) ((DL_CLEAR_TAG) | ((s) & 0xFFUL))
+/**
+ * @brief Set clear value for the tag buffer.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t CLEAR_TAG(uint8_t val)
+{
+ return (DL_CLEAR_TAG | val);
+}
+
+//#define COLOR_A(alpha) ((DL_COLOR_A) | ((alpha) & 0xFFUL))
+/**
+ * @brief Set the current color alpha.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t COLOR_A(uint8_t alpha)
+{
+ return (DL_COLOR_A | alpha);
+}
+
+//#define COLOR_MASK(r,g,b,a) ((DL_COLOR_MASK) | (((r) & 1UL) << 3U) | (((g) & 1UL) << 2U) | (((b) & 1UL) << 1U) | ((a) & 1UL))
+/**
+ * @brief Enable or disable writing of color components.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t COLOR_MASK(uint8_t red, uint8_t green, uint8_t blue, uint8_t alpha)
+{
+ uint32_t const redv = ((red & 1UL) << 3U);
+ uint32_t const greenv = ((green & 1UL) << 2U);
+ uint32_t const bluev = ((blue & 1UL) << 1U);
+ uint32_t const alphav = (alpha & 1UL);
+ return (DL_COLOR_MASK | redv | greenv | bluev | alphav);
+}
+
+//#define COLOR_RGB(red,green,blue) ((DL_COLOR_RGB) | (((red) & 0xFFUL) << 16U) | (((green) & 0xFFUL) << 8U) | ((blue) & 0xFFUL))
+/**
+ * @brief Set the current color red, green and blue.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t COLOR_RGB(uint8_t red, uint8_t green, uint8_t blue)
+{
+ uint32_t const redv = ((red & 0xFFUL) << 16U);
+ uint32_t const greenv = ((green & 0xFFUL) << 8U);
+ uint32_t const bluev = (blue & 0xFFUL);
+ return (DL_COLOR_RGB | redv | greenv | bluev);
+}
+
+//#define LINE_WIDTH(width) ((DL_LINE_WIDTH) | (((uint32_t) (width)) & 0xFFFUL))
+/**
+ * @brief Set the width of lines to be drawn with primitive LINES in 1/16 pixel precision.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t LINE_WIDTH(uint16_t width)
+{
+ return (DL_LINE_WIDTH | (width & 0xFFFUL));
+}
+
+//#define MACRO(m) ((DL_MACRO) | ((m) & 1UL))
+/**
+ * @brief Execute a single command from a macro register.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t MACRO(uint8_t macro)
+{
+ return (DL_MACRO | (macro & 0x1UL));
+}
+
+//#define PALETTE_SOURCE(addr) ((DL_PALETTE_SOURCE) | ((addr) & 0x3FFFFF3UL))
+/**
+ * @brief Set the base address of the palette.
+ * @note 2-byte alignment is required if pixel format is PALETTE4444 or PALETTE565.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t PALETTE_SOURCE(uint32_t addr)
+{
+ return (DL_PALETTE_SOURCE | (addr & 0x3FFFFFUL));
+}
+
+//#define POINT_SIZE(size) ((DL_POINT_SIZE) | ((size) & 0x1FFFUL))
+/**
+ * @brief Set the radius of points to be drawn with primitive POINTS in 1/16 pixel precision.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t POINT_SIZE(uint16_t size)
+{
+ return (DL_POINT_SIZE | (size & 0x1FFFUL));
+}
+
+//#define SCISSOR_SIZE(width,height) ((DL_SCISSOR_SIZE) | (((width) & 0xFFFUL) << 12U) | ((height) & 0xFFFUL))
+/**
+ * @brief Set the size of the scissor clip rectangle.
+ * @note valid range for width and height is from zero to 2048
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t SCISSOR_SIZE(uint16_t width, uint16_t height)
+{
+ uint32_t const widthv = (uint32_t) ((width & 0xFFFUL) << 12U);
+ uint32_t const heightv = (uint32_t) (height & 0xFFFUL);
+ return (DL_SCISSOR_SIZE | widthv | heightv);
+}
+
+//#define SCISSOR_XY(x,y) ((DL_SCISSOR_XY) | (((x) & 0x7FFUL) << 11U) | ((y) & 0x7FFUL))
+/**
+ * @brief Set the top left corner of the scissor clip rectangle.
+ * @note valid range for width and height is from zero to 2047
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t SCISSOR_XY(uint16_t xc0, uint16_t yc0)
+{
+ uint32_t const xc0v = (uint32_t) ((xc0 & 0x7FFUL) << 11U);
+ uint32_t const yc0v = (uint32_t) (yc0 & 0x7FFUL);
+ return (DL_SCISSOR_XY | xc0v | yc0v);
+}
+
+//#define STENCIL_FUNC(func,ref,mask) ((DL_STENCIL_FUNC) | (((func) & 7UL) << 16U) | (((ref) & 0xFFUL) << 8U)|((mask) & 0xFFUL))
+/**
+ * @brief Set function and reference value for stencil testing.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t STENCIL_FUNC(uint8_t func, uint8_t ref, uint8_t mask)
+{
+ uint32_t const funcv = (uint32_t) ((func & 7UL) << 16U);
+ uint32_t const refv = (uint32_t) ((ref & 0xFFUL) << 8U);
+ uint32_t const maskv = (uint32_t) (mask & 0xFFUL);
+ return (DL_STENCIL_FUNC | funcv | refv | maskv);
+}
+
+//#define STENCIL_MASK(mask) ((DL_STENCIL_MASK) | ((mask) & 0xFFUL))
+/**
+ * @brief Control the writing of individual bits in the stencil planes.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t STENCIL_MASK(uint8_t mask)
+{
+ return (DL_STENCIL_MASK | mask);
+}
+
+//#define STENCIL_OP(sfail,spass) ((DL_STENCIL_OP) | (((sfail) & 7UL) << 3U) | ((spass) & 7UL))
+/**
+ * @brief Set stencil test actions.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t STENCIL_OP(uint8_t sfail, uint8_t spass)
+{
+ uint32_t const sfailv = (uint32_t) ((sfail & 0x07UL) << 3U);
+ uint32_t const spassv = (uint32_t) (spass & 0x07UL);
+ return (DL_STENCIL_OP | sfailv | spassv);
+}
+
+//#define TAG(s) ((DL_TAG) | ((s) & 0xFFUL))
+/**
+ * @brief Attach the tag value for the following graphics objects drawn on the screen.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t TAG(uint8_t tagval)
+{
+ return (DL_TAG | tagval);
+}
+
+//#define TAG_MASK(mask) ((DL_TAG_MASK) | ((mask) & 1UL))
+/**
+ * @brief Control the writing of the tag buffer.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t TAG_MASK(uint8_t mask)
+{
+ return (DL_TAG_MASK | ((mask) & 1UL));
+}
+
+//#define VERTEX2F(x,y) ((DL_VERTEX2F) | ((((uint32_t) (x)) & 0x7FFFUL) << 15U) | (((uint32_t) (y)) & 0x7FFFUL))
+/**
+ * @brief Set coordinates for graphics primitves.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t VERTEX2F(int16_t xc0, int16_t yc0)
+{
+ uint32_t const xc0v = ((((uint32_t) ((uint16_t) xc0)) & 0x7FFFUL) << 15U);
+ uint32_t const yc0v = (((uint32_t) ((uint16_t) yc0)) & 0x7FFFUL);
+ return (DL_VERTEX2F | xc0v | yc0v);
+}
+
+//#define VERTEX2II(x,y,handle,cell) ((DL_VERTEX2II) | (((x) & 0x1FFUL) << 21U) | (((y) & 0x1FFUL) << 12U) | (((handle) & 0x1FUL) << 7U) | ((cell) & 0x7FUL))
+/**
+ * @brief Set coordinates, bitmap-handle and cell-number for graphics primitves.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t VERTEX2II(uint16_t xc0, uint16_t yc0, uint8_t handle, uint8_t cell)
+{
+ uint32_t const xc0v = ((((uint32_t) xc0) & 0x1FFUL) << 21U);
+ uint32_t const yc0v = ((((uint32_t) yc0) & 0x1FFUL) << 12U);
+ uint32_t const handlev = ((((uint32_t) handle) & 0x1FUL) << 7U);
+ uint32_t const cellv = (((uint32_t) cell) & 0x7FUL);
+ return (DL_VERTEX2II | xc0v | yc0v | handlev | cellv);
+}
+
+//#define VERTEX_FORMAT(frac) ((DL_VERTEX_FORMAT) | ((frac) & 7UL))
+/**
+ * @brief Set the precision of VERTEX2F coordinates.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t VERTEX_FORMAT(uint8_t frac)
+{
+ return (DL_VERTEX_FORMAT | ((frac) & 7UL));
+}
+
+//#define VERTEX_TRANSLATE_X(x) ((DL_VERTEX_TRANSLATE_X) | ((x) & 0x1FFFFUL))
+/**
+ * @brief Set the vertex transformations X translation component.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t VERTEX_TRANSLATE_X(int32_t xco)
+{
+ return (DL_VERTEX_TRANSLATE_X | (((uint32_t) xco) & 0x1FFFFUL));
+}
+
+//#define VERTEX_TRANSLATE_Y(y) ((DL_VERTEX_TRANSLATE_Y) | ((y) & 0x1FFFFUL))
+/**
+ * @brief Set the vertex transformations Y translation component.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t VERTEX_TRANSLATE_Y(int32_t yco)
+{
+ return (DL_VERTEX_TRANSLATE_Y | (((uint32_t) yco) & 0x1FFFFUL));
+}
+
+/* #define BEGIN(prim) ((DL_BEGIN) | ((prim) & 15UL)) */ /* use define DL_BEGIN */
+/* #define DISPLAY() ((DL_DISPLAY)) */ /* use define DL_DISPLAY */
+/* #define END() ((DL_END)) */ /* use define DL_END */
+/* #define RESTORE_CONTEXT() ((DL_RESTORE_CONTEXT)) */ /* use define DL_RESTORE_CONTEXT */
+/* #define RETURN() ((DL_RETURN)) */ /* use define DL_RETURN */
+/* #define SAVE_CONTEXT() ((DL_SAVE_CONTEXT)) */ /* use define DL_SAVE_CONTEXT */
+/* #define NOP() ((DL_NOP)) */
+
+/* ########## EVE Generation 3: BT815 / BT816 definitions ########## */
+
+#if EVE_GEN > 2
+
+#define EVE_GLFORMAT ((uint32_t) 31UL) /* used with BITMAP_LAYOUT to indicate bitmap-format is specified by BITMAP_EXT_FORMAT */
+
+#define DL_BITMAP_EXT_FORMAT ((uint32_t) 0x2E000000UL) /* requires OR'd arguments */
+#define DL_BITMAP_SWIZZLE ((uint32_t) 0x2F000000UL)
+/* #define DL_INT_FRR ((uint32_t) 0x30000000UL) */ /* ESE displays "Internal: flash read result" - undocumented display list command */
+
+/* Extended Bitmap formats */
+#define EVE_ASTC_4X4 ((uint32_t) 37808UL)
+#define EVE_ASTC_5X4 ((uint32_t) 37809UL)
+#define EVE_ASTC_5X5 ((uint32_t) 37810UL)
+#define EVE_ASTC_6X5 ((uint32_t) 37811UL)
+#define EVE_ASTC_6X6 ((uint32_t) 37812UL)
+#define EVE_ASTC_8X5 ((uint32_t) 37813UL)
+#define EVE_ASTC_8X6 ((uint32_t) 37814UL)
+#define EVE_ASTC_8X8 ((uint32_t) 37815UL)
+#define EVE_ASTC_10X5 ((uint32_t) 37816UL)
+#define EVE_ASTC_10X6 ((uint32_t) 37817UL)
+#define EVE_ASTC_10X8 ((uint32_t) 37818UL)
+#define EVE_ASTC_10X10 ((uint32_t) 37819UL)
+#define EVE_ASTC_12X10 ((uint32_t) 37820UL)
+#define EVE_ASTC_12X12 ((uint32_t) 37821UL)
+
+#define EVE_RAM_ERR_REPORT ((uint32_t) 0x309800UL) /* max 128 bytes null terminated string */
+#define EVE_RAM_FLASH ((uint32_t) 0x800000UL)
+#define EVE_RAM_FLASH_POSTBLOB ((uint32_t) 0x801000UL)
+
+#define EVE_OPT_FLASH ((uint16_t) 64U)
+#define EVE_OPT_OVERLAY ((uint16_t) 128U)
+#define EVE_OPT_FORMAT ((uint16_t) 4096U)
+#define EVE_OPT_FILL ((uint16_t) 8192U)
+
+/* Commands for BT815 / BT816 */
+#define CMD_BITMAP_TRANSFORM ((uint32_t) 0xFFFFFF21UL)
+#define CMD_SYNC ((uint32_t) 0xFFFFFF42UL) /* does not need a dedicated function, just use EVE_cmd_dl(CMD_SYNC) */
+#define CMD_FLASHERASE ((uint32_t) 0xFFFFFF44UL) /* does not need a dedicated function, just use EVE_cmd_dl(CMD_FLASHERASE) */
+#define CMD_FLASHWRITE ((uint32_t) 0xFFFFFF45UL)
+#define CMD_FLASHREAD ((uint32_t) 0xFFFFFF46UL)
+#define CMD_FLASHUPDATE ((uint32_t) 0xFFFFFF47UL)
+#define CMD_FLASHDETACH ((uint32_t) 0xFFFFFF48UL) /* does not need a dedicated function, just use EVE_cmd_dl(CMD_FLASHDETACH) */
+#define CMD_FLASHATTACH ((uint32_t) 0xFFFFFF49UL) /* does not need a dedicated function, just use EVE_cmd_dl(CMD_FLASHATTACH) */
+#define CMD_FLASHFAST ((uint32_t) 0xFFFFFF4AUL)
+#define CMD_FLASHSPIDESEL ((uint32_t) 0xFFFFFF4BUL) /* does not need a dedicated function, just use EVE_cmd_dl(CMD_FLASHSPIDESEL) */
+#define CMD_FLASHSPITX ((uint32_t) 0xFFFFFF4CUL)
+#define CMD_FLASHSPIRX ((uint32_t) 0xFFFFFF4DUL)
+#define CMD_FLASHSOURCE ((uint32_t) 0xFFFFFF4EUL)
+#define CMD_CLEARCACHE ((uint32_t) 0xFFFFFF4FUL) /* does not need a dedicated function, just use EVE_cmd_dl(CMD_CLEARCACHE) */
+#define CMD_INFLATE2 ((uint32_t) 0xFFFFFF50UL)
+#define CMD_ROTATEAROUND ((uint32_t) 0xFFFFFF51UL)
+#define CMD_RESETFONTS ((uint32_t) 0xFFFFFF52UL) /* does not need a dedicated function, just use EVE_cmd_dl(CMD_RESETFONTS) */
+#define CMD_ANIMSTART ((uint32_t) 0xFFFFFF53UL)
+#define CMD_ANIMSTOP ((uint32_t) 0xFFFFFF54UL)
+#define CMD_ANIMXY ((uint32_t) 0xFFFFFF55UL)
+#define CMD_ANIMDRAW ((uint32_t) 0xFFFFFF56UL)
+#define CMD_GRADIENTA ((uint32_t) 0xFFFFFF57UL)
+#define CMD_FILLWIDTH ((uint32_t) 0xFFFFFF58UL)
+#define CMD_APPENDF ((uint32_t) 0xFFFFFF59UL)
+#define CMD_ANIMFRAME ((uint32_t) 0xFFFFFF5AUL)
+#define CMD_VIDEOSTARTF ((uint32_t) 0xFFFFFF5FUL) /* does not need a dedicated function, just use EVE_cmd_dl(CMD_VIDEOSTARTF) */
+
+/* Registers for BT815 / BT816 */
+#define REG_ADAPTIVE_FRAMERATE ((uint32_t) 0x0030257cUL)
+#define REG_PLAYBACK_PAUSE ((uint32_t) 0x003025ecUL)
+#define REG_FLASH_STATUS ((uint32_t) 0x003025f0UL)
+#define REG_FLASH_SIZE ((uint32_t) 0x00309024UL)
+#define REG_PLAY_CONTROL ((uint32_t) 0x0030914eUL)
+#define REG_COPRO_PATCH_PTR ((uint32_t) 0x00309162UL)
+
+/* Macros for BT815 / BT816 */
+
+//#define BITMAP_EXT_FORMAT(format) ((DL_BITMAP_EXT_FORMAT) | ((format) & 0xFFFFUL))
+/**
+ * @brief Set the extended format of the bitmap.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t BITMAP_EXT_FORMAT(uint16_t format)
+{
+ return (DL_BITMAP_EXT_FORMAT | format);
+}
+
+//#define BITMAP_SWIZZLE(r,g,b,a) ((DL_BITMAP_SWIZZLE) | (((r) & 7UL) << 9U) | (((g) & 7UL) << 6U) | (((b) & 7UL) << 3U) | ((a) & 7UL))
+/**
+ * @brief Set the source for the red, green, blue and alpha channels of a bitmap.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t BITMAP_SWIZZLE(uint8_t red, uint8_t green, uint8_t blue, uint8_t alpha)
+{
+ uint32_t const redv = ((red & 7UL) << 9U);
+ uint32_t const greenv = ((green & 7UL) << 6U);
+ uint32_t const bluev = ((blue & 7UL) << 3U);
+ uint32_t const alphav = (alpha & 7UL);
+ return (DL_BITMAP_SWIZZLE | redv | greenv | bluev | alphav);
+}
+
+//#define BITMAP_TRANSFORM_A_EXT(p,v) ((DL_BITMAP_TRANSFORM_A) | (((p) & 1UL) << 17U) | ((v) & 0x1FFFFUL))
+/**
+ * @brief Set the A coefficient of the bitmap transform matrix.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t BITMAP_TRANSFORM_A(uint8_t prc, uint32_t val)
+{
+ uint32_t const prcv = ((prc & 1UL) << 17U);
+ uint32_t const valv = (val & 0x1FFFFUL);
+ return (DL_BITMAP_TRANSFORM_A | prcv | valv);
+}
+
+//#define BITMAP_TRANSFORM_B_EXT(p,v) ((DL_BITMAP_TRANSFORM_B) | (((p) & 1UL) << 17U) | ((v) & 0x1FFFFUL))
+/**
+ * @brief Set the B coefficient of the bitmap transform matrix.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t BITMAP_TRANSFORM_B(uint8_t prc, uint32_t val)
+{
+ uint32_t const prcv = ((prc & 1UL) << 17U);
+ uint32_t const valv = (val & 0x1FFFFUL);
+ return (DL_BITMAP_TRANSFORM_B | prcv | valv);
+}
+
+//#define BITMAP_TRANSFORM_D_EXT(p,v) ((DL_BITMAP_TRANSFORM_D) | (((p) & 1UL) << 17U) | ((v) & 0x1FFFFUL))
+/**
+ * @brief Set the D coefficient of the bitmap transform matrix.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t BITMAP_TRANSFORM_D(uint8_t prc, uint32_t val)
+{
+ uint32_t const prcv = ((prc & 1UL) << 17U);
+ uint32_t const valv = (val & 0x1FFFFUL);
+ return (DL_BITMAP_TRANSFORM_D | prcv | valv);
+}
+
+//#define BITMAP_TRANSFORM_E_EXT(p,v) ((DL_BITMAP_TRANSFORM_E) | (((p) & 1UL) << 17U) | ((v) & 0x1FFFFUL))
+/**
+ * @brief Set the E coefficient of the bitmap transform matrix.
+ * @return a 32 bit word for use with EVE_cmd_dl()
+ */
+static inline uint32_t BITMAP_TRANSFORM_E(uint8_t prc, uint32_t val)
+{
+ uint32_t const prcv = ((prc & 1UL) << 17U);
+ uint32_t const valv = (val & 0x1FFFFUL);
+ return (DL_BITMAP_TRANSFORM_E | prcv | valv);
+}
+
+//#define BITMAP_TRANSFORM_A(a) BITMAP_TRANSFORM_A_EXT(0UL,(a))
+//#define BITMAP_TRANSFORM_B(b) BITMAP_TRANSFORM_B_EXT(0UL,(b))
+//#define BITMAP_TRANSFORM_D(d) BITMAP_TRANSFORM_D_EXT(0UL,(d))
+//#define BITMAP_TRANSFORM_E(e) BITMAP_TRANSFORM_E_EXT(0UL,(e))
+
+#endif /* EVE_GEN > 2 */
+
+/* ########## EVE Generation 4: BT817 / BT818 definitions ########## */
+
+#if EVE_GEN > 3
+
+/* Commands for BT817 / BT818 */
+#define CMD_ANIMFRAMERAM ((uint32_t) 0xFFFFFF6DUL)
+#define CMD_ANIMSTARTRAM ((uint32_t) 0xFFFFFF6EUL)
+#define CMD_APILEVEL ((uint32_t) 0xFFFFFF63UL)
+#define CMD_CALIBRATESUB ((uint32_t) 0xFFFFFF60UL)
+#define CMD_CALLLIST ((uint32_t) 0xFFFFFF67UL)
+#define CMD_ENDLIST ((uint32_t) 0xFFFFFF69UL) /* does not need a dedicated function, just use EVE_cmd_dl(CMD_ENDLIST) */
+#define CMD_FLASHPROGRAM ((uint32_t) 0xFFFFFF70UL)
+#define CMD_FONTCACHE ((uint32_t) 0xFFFFFF6BUL)
+#define CMD_FONTCACHEQUERY ((uint32_t) 0xFFFFFF6CUL)
+#define CMD_GETIMAGE ((uint32_t) 0xFFFFFF64UL)
+#define CMD_HSF ((uint32_t) 0xFFFFFF62UL)
+#define CMD_LINETIME ((uint32_t) 0xFFFFFF5EUL)
+#define CMD_NEWLIST ((uint32_t) 0xFFFFFF68UL)
+#define CMD_PCLKFREQ ((uint32_t) 0xFFFFFF6AUL)
+#define CMD_RETURN ((uint32_t) 0xFFFFFF66UL) /* does not need a dedicated function, just use EVE_cmd_dl(CMD_RETURN) */
+#define CMD_RUNANIM ((uint32_t) 0xFFFFFF6FUL)
+#define CMD_TESTCARD ((uint32_t) 0xFFFFFF61UL) /* does not need a dedicated function, just use EVE_cmd_dl(CMD_TESTCARD) */
+#define CMD_WAIT ((uint32_t) 0xFFFFFF65UL)
+
+/* Registers for BT817 / BT818 */
+#define REG_UNDERRUN ((uint32_t) 0x0030260cUL)
+#define REG_AH_HCYCLE_MAX ((uint32_t) 0x00302610UL)
+#define REG_PCLK_FREQ ((uint32_t) 0x00302614UL)
+#define REG_PCLK_2X ((uint32_t) 0x00302618UL)
+#define REG_ANIM_ACTIVE ((uint32_t) 0x0030902CUL)
+
+#endif /* EVE_GEN > 3 */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* EVE_H */
diff --git a/lib/libesp32_lvgl/lvgl/src/libs/FT800-FT813/EVE_commands.c b/lib/libesp32_lvgl/lvgl/src/libs/FT800-FT813/EVE_commands.c
new file mode 100644
index 000000000..59e3d052f
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/libs/FT800-FT813/EVE_commands.c
@@ -0,0 +1,3926 @@
+#include "../../lv_conf_internal.h"
+#if LV_USE_DRAW_EVE
+/*
+@file EVE_commands.c
+@brief contains FT8xx / BT8xx functions
+@version 5.0
+@date 2023-12-29
+@author Rudolph Riedel
+
+@section info
+
+At least for Arm Cortex-M0 and Cortex-M4 I have fastest execution with -O2.
+The c-standard is C99.
+
+
+@section LICENSE
+
+MIT License
+
+Copyright (c) 2016-2023 Rudolph Riedel
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the Software
+is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+
+@section History
+
+5.0
+- added EVE_cmd_pclkfreq()
+- put back writing of REG_CSSPREAD as it needs to be deactivated for higher frequencies
+- added the configuration of the second PLL for the pixel clock in BT817/BT818 to EVE_init() in case the display config
+has EVE_PCLK_FREQ defined
+- replaced BT81X_ENABLE with "EVE_GEN > 2"
+- removed FT81X_ENABLE as FT81x already is the lowest supported chip revision now
+- removed the formerly as deprected marked EVE_get_touch_tag()
+- changed EVE_color_rgb() to use a 32 bit value like the rest of the color commands
+- removed the meta-commands EVE_cmd_point(), EVE_cmd_line() and EVE_cmd_rect()
+- split all display-list commands into two functions: EVE_cmd_XXX() and EVE_cmd_XXX_burst()
+- switched from using EVE_RAM_CMD + cmdOffset to REG_CMDB_WRITE
+- as a side effect from switching to REG_CMDB_WRITE, every coprocessor command is automatically executed now
+- renamed EVE_LIB_GetProps() back to EVE_cmd_getprops() since it does not do anything special to justify a special name
+- added helper function EVE_memWrite_sram_buffer()
+- added EVE_cmd_bitmap_transform() and EVE_cmd_bitmap_transform_burst()
+- added zero-pointer protection to commands using block_transfer()
+- added EVE_cmd_playvideo()
+- changed EVE_cmd_setfont() to a display-list command and added EVE_cmd_setfont_burst()
+- changed EVE_cmd_setfont2() to a display-list command and added EVE_cmd_setfont2_burst()
+- added EVE_cmd_videoframe()
+- restructured: functions are sorted by chip-generation and within their group in alphabetical order
+- reimplementedEVE_cmd_getmatrix() again, it needs to read values, not write them
+- added EVE_cmd_fontcache() and EVE_cmd_fontcachequery()
+- added EVE_cmd_calibratesub()
+- added EVE_cmd_animframeram(), EVE_cmd_animframeram_burst(), EVE_cmd_animstartram(), EVE_cmd_animstartram_burst()
+- added EVE_cmd_apilevel(), EVE_cmd_apilevel_burst()
+- added EVE_cmd_calllist(), EVE_cmd_calllist_burst()
+- added EVE_cmd_hsf(), EVE_cmd_hsf_burst()
+- added EVE_cmd_linetime()
+- added EVE_cmd_newlist(), EVE_cmd_newlist_burst()
+- added EVE_cmd_runanim(), EVE_cmd_runanim_burst()
+- added a safeguard to EVE_start_cmd_burst() to protect it from overlapping transfers with DMA and segmented lists
+- used spi_transmit_32() to shorten this file by around 600 lines with no functional change
+- removed the history from before 4.0
+- removed a couple of spi_transmit_32() calls from EVE_cmd_getptr() to make it work again
+- Bugfix: EVE_cmd_setfont2_burst() was using CMD_SETFONT instead of CMD_SETFONT2
+- removed a check for cmd_burst from EVE_cmd_getimage() as it is in the group of commands that are not used for display
+lists
+- moved EVE_cmd_newlist() to the group of commands that are not used for display lists
+- removed EVE_cmd_newlist_burst()
+- renamed spi_flash_write() to private_block_write() and made it static
+- renamed EVE_write_string() to private_string_write() and made it static
+- made EVE_start_command() static
+- Bugfix: ESP8266 needs 32 bit alignment for 32 bit pointers,
+ changed private_string_write() for burst-mode to read 8-bit values
+- Bugfix: somehow messed up private_string_write() for burst-mode
+ but only for 8-Bit controllers
+- changed EVE_memRead8(), EVE_memRead16() and EVE_memRead32() to use
+ spi_transmit_32() for the initial address+zero byte transfer
+ This speeds up ESP32/ESP8266 by several us, has no measureable effect
+ for ATSAMD51 and is a little slower for AVR.
+- Bugfix: not sure why but setting private_block_write() to static broke it, without "static" it works
+- Bugfix: EVE_cmd_flashspirx() was using CMD_FLASHREAD
+- fixed a warning in EVE_init() when compiling for EVE4
+- renamed internal function EVE_begin_cmd() to eve_begin_cmd() and made it static
+- changed all the EVE_start_command() calls to eve_begin_cmd() calls following the report on Github from
+ Michael Wachs that these are identical - they weren't prior to V5
+- removed EVE_start_command()
+- Bugfix: EVE_init() was only checking the first two bits of REG_CPURESET and ignored the bit for the audio-engine, not
+an issue but not correct either.
+- fixed a few clang-tidy warnings
+- fixed a few cppcheck warnings
+- fixed a few CERT warnings
+- converted all TABs to SPACEs
+- made EVE_TOUCH_RZTHRESH in EVE_init() optional to a) remove it from EVE_config.h and b) make it configureable
+externally
+- changed EVE_init() to write 1200U to REG_TOUCH_RZTHRESH if EVE_TOUCH_RZTHRESH is not defined
+- changed EVE_init() to return E_OK = 0x00 in case of success and more meaningfull values in case of failure
+- changed EVE_busy() to return EVE_IS_BUSY if EVE is busy and E_OK = 0x00 if EVE is not busy - no real change in
+functionality
+- finally removed EVE_cmd_start() after setting it to deprecatd with the first 5.0 release
+- renamed EVE_cmd_execute() to EVE_execute_cmd() to be more consistent, this is is not an EVE command
+- changed EVE_init_flash() to return E_OK in case of success and more meaningfull values in case of failure
+- added the return-value of EVE_FIFO_HALF_EMPTY to EVE_busy() to indicate there is more than 2048 bytes available
+- minor cleanup, less break and else statements
+- added the burst code back into all the functions for which there is a _burst version, this allows to use the version
+without the traling _burst in the name when exceution speed is not an issue - e.g. with all targets supporting DMA
+- removed the 4.0 history
+- added the optional parameter EVE_ROTATE as define to EVE_init() to allow for screen rotation during init
+ thanks for the idea to AndrejValand on Github!
+- added the optional parameter EVE_BACKLIGHT_PWM to EVE_init() to allow setting the backlight during init
+- modified EVE_calibrate_manual() to work better with bar type displays
+- fixed a large number of MISRA-C issues - mostly more casts for explicit type conversion and more brackets
+- changed the varargs versions of cmd_button, cmd_text and cmd_toggle to use an array of uint32_t values to comply with MISRA-C
+- basic maintenance: checked for violations of white space and indent rules
+- more linter fixes for minor issues like variables shorter than 3 characters
+- added EVE_color_a() / EVE_color_a_burst()
+- more minor tweaks and fixes to make the static analyzer happy
+- changed the burst variant of private_string_write() back to the older and faster version
+- refactoring of EVE_init() to single return
+- added prototype for EVE_write_display_parameters()
+- added EVE_memRead_sram_buffer()
+- Bugfix issue #81: neither DISP or the pixel clock are enabled for EVE4 configurations not using EVE_PCLK_FREQ.
+ thanks for the report to grados73 on Github!
+- added a few support lines for the Gameduino GD3X to EVE_init()
+- switched from using CMD_PCLKFREQ to writing to REG_PCLK_FREQ directly
+- added define EVE_SET_REG_PCLK_2X to set REG_PCLK_2X to 1 when necessary
+- Bugfix: EVE_init() did not set the audio engine to "mute" as intended, but to "silent"
+- Bugfix: EVE_busy() returns E_NOT_OK now on coprocessor faults.
+ thanks for the report to Z0ld3n on Github!
+- Fix: reworked EVE_busy() to return EVE_FAULT_RECOVERED on deteced coprocessor faults,
+ removed the flash commands from the fault recovery sequence as these are project specific.
+- added EVE_get_and_reset_fault_state() to check if EVE_busy() triggered a fault recovery
+- added notes on how to use to EVE_cmd_setfont2() and EVE_cmd_romfont()
+- new optional parameter in EVE_init(): EVE_BACKLIGHT_FREQ
+- fixed a couple of minor issues from static code analysis
+- reworked the burst part of private_string_write() to be less complex
+- renamed chipid references to regid as suggested by #93 on github
+- Bugfix: broke transfers of buffers larger than 3840 when fixing issues from static code analysis
+- changed a number of function parameters from signed to unsigned following the
+ updated BT81x series programming guide V2.4
+- did another linter pass and fixed some things
+- started to improve the embedded documentation
+- added more documentation
+- removed EVE_cmd_hsf_burst()
+
+*/
+
+#include "EVE_commands.h"
+
+/* EVE Memory Commands - used with EVE_memWritexx and EVE_memReadxx */
+#define MEM_WRITE 0x80U /* EVE Host Memory Write */
+/* #define MEM_READ 0x00U */ /* EVE Host Memory Read */
+
+/* define NULL if it not already is */
+#ifndef NULL
+#include
+#endif
+
+static volatile uint8_t cmd_burst = 0U; /* flag to indicate cmd-burst is active */
+static volatile uint8_t fault_recovered = E_OK; /* flag to indicate if EVE_busy triggered a fault recovery */
+
+/* ##################################################################
+ helper functions
+##################################################################### */
+
+/**
+ * @brief Send a host command.
+ */
+void EVE_cmdWrite(uint8_t const command, uint8_t const parameter)
+{
+ EVE_cs_set();
+ spi_transmit(command);
+ spi_transmit(parameter);
+ spi_transmit(0U);
+ EVE_cs_clear();
+}
+
+/**
+ * @brief Implementation of rd8() function, reads 8 bits.
+ */
+uint8_t EVE_memRead8(uint32_t const ft_address)
+{
+ uint8_t data;
+ EVE_cs_set();
+ spi_transmit_32(((ft_address >> 16U) & 0x0000007fUL) + (ft_address & 0x0000ff00UL) + ((ft_address & 0x000000ffUL) << 16U));
+ data = spi_receive(0U); /* read data byte by sending another dummy byte */
+ EVE_cs_clear();
+ return (data);
+}
+
+/**
+ * @brief Implementation of rd16() function, reads 16 bits.
+ */
+uint16_t EVE_memRead16(uint32_t const ft_address)
+{
+ uint16_t data;
+
+ EVE_cs_set();
+ spi_transmit_32(((ft_address >> 16U) & 0x0000007fUL) + (ft_address & 0x0000ff00UL) + ((ft_address & 0x000000ffUL) << 16U));
+ uint8_t const lowbyte = spi_receive(0U); /* read low byte */
+ uint8_t const hibyte = spi_receive(0U); /* read high byte */
+ data = ((uint16_t) hibyte * 256U) | lowbyte;
+ EVE_cs_clear();
+ return (data);
+}
+
+/**
+ * @brief Implementation of rd32() function, reads 32 bits.
+ */
+uint32_t EVE_memRead32(uint32_t const ft_address)
+{
+ uint32_t data;
+ EVE_cs_set();
+ spi_transmit_32(((ft_address >> 16U) & 0x0000007fUL) + (ft_address & 0x0000ff00UL) + ((ft_address & 0x000000ffUL) << 16U));
+ data = ((uint32_t) spi_receive(0U)); /* read low byte */
+ data = ((uint32_t) spi_receive(0U) << 8U) | data;
+ data = ((uint32_t) spi_receive(0U) << 16U) | data;
+ data = ((uint32_t) spi_receive(0U) << 24U) | data; /* read high byte */
+ EVE_cs_clear();
+ return (data);
+}
+
+/**
+ * @brief Implementation of wr8() function, writes 8 bits.
+ */
+void EVE_memWrite8(uint32_t const ft_address, uint8_t const ft_data)
+{
+ EVE_cs_set();
+ spi_transmit((uint8_t) (ft_address >> 16U) | MEM_WRITE);
+ spi_transmit((uint8_t) (ft_address >> 8U));
+ spi_transmit((uint8_t) (ft_address & 0x000000ffUL));
+ spi_transmit(ft_data);
+ EVE_cs_clear();
+}
+
+/**
+ * @brief Implementation of wr16() function, writes 16 bits.
+ */
+void EVE_memWrite16(uint32_t const ft_address, uint16_t const ft_data)
+{
+ EVE_cs_set();
+ spi_transmit((uint8_t) (ft_address >> 16U) | MEM_WRITE); /* send Memory Write plus high address byte */
+ spi_transmit((uint8_t) (ft_address >> 8U)); /* send middle address byte */
+ spi_transmit((uint8_t) (ft_address & 0x000000ffUL)); /* send low address byte */
+ spi_transmit((uint8_t) (ft_data & 0x00ffU)); /* send data low byte */
+ spi_transmit((uint8_t) (ft_data >> 8U)); /* send data high byte */
+ EVE_cs_clear();
+}
+
+/**
+ * @brief Implementation of wr32() function, writes 32 bits.
+ */
+void EVE_memWrite32(uint32_t const ft_address, uint32_t const ft_data)
+{
+ EVE_cs_set();
+ spi_transmit((uint8_t) (ft_address >> 16U) | MEM_WRITE); /* send Memory Write plus high address byte */
+ spi_transmit((uint8_t) (ft_address >> 8U)); /* send middle address byte */
+ spi_transmit((uint8_t) (ft_address & 0x000000ffUL)); /* send low address byte */
+ spi_transmit_32(ft_data);
+ EVE_cs_clear();
+}
+
+/**
+ * @brief Helper function, write a block of memory from the FLASH of the host controller to EVE.
+ */
+void EVE_memWrite_flash_buffer(uint32_t const ft_address, const uint8_t *p_data, uint32_t const len)
+{
+ if (p_data != NULL)
+ {
+ EVE_cs_set();
+ spi_transmit((uint8_t) (ft_address >> 16U) | MEM_WRITE);
+ spi_transmit((uint8_t) (ft_address >> 8U));
+ spi_transmit((uint8_t) (ft_address & 0x000000ffUL));
+
+ lv_eve_target_spi_transmit_buf(p_data, len);
+
+ EVE_cs_clear();
+ }
+}
+
+/**
+ * @brief Helper function, write a block of memory from the SRAM of the host controller to EVE.
+ */
+void EVE_memWrite_sram_buffer(uint32_t const ft_address, const uint8_t *p_data, uint32_t const len)
+{
+ if (p_data != NULL)
+ {
+ EVE_cs_set();
+ spi_transmit((uint8_t) (ft_address >> 16U) | MEM_WRITE);
+ spi_transmit((uint8_t) (ft_address >> 8U));
+ spi_transmit((uint8_t) (ft_address & 0x000000ffUL));
+
+ lv_eve_target_spi_transmit_buf(p_data, len);
+
+ EVE_cs_clear();
+ }
+}
+
+/**
+ * @brief Helper function, read a block of memory from EVE to the SRAM of the host controller.
+ */
+void EVE_memRead_sram_buffer(uint32_t const ft_address, uint8_t *p_data, uint32_t const len)
+{
+ if (p_data != NULL)
+ {
+ EVE_cs_set();
+ spi_transmit_32(((ft_address >> 16U) & 0x0000007fUL) + (ft_address & 0x0000ff00UL) + ((ft_address & 0x000000ffUL) << 16U));
+
+ for (uint32_t count = 0U; count < len; count++)
+ {
+ p_data[count] = spi_receive(0U); /* read data byte by sending another dummy byte */
+ }
+
+ EVE_cs_clear();
+ }
+}
+
+static void CoprocessorFaultRecover(void)
+{
+#if EVE_GEN > 2
+ uint16_t copro_patch_pointer;
+ copro_patch_pointer = EVE_memRead16(REG_COPRO_PATCH_PTR);
+#endif
+
+ EVE_memWrite8(REG_CPURESET, 1U); /* hold coprocessor engine in the reset condition */
+ EVE_memWrite16(REG_CMD_READ, 0U); /* set REG_CMD_READ to 0 */
+ EVE_memWrite16(REG_CMD_WRITE, 0U); /* set REG_CMD_WRITE to 0 */
+ EVE_memWrite16(REG_CMD_DL, 0U); /* reset REG_CMD_DL to 0 as required by the BT81x programming guide, should not hurt FT8xx */
+
+#if EVE_GEN > 2
+ EVE_memWrite16(REG_COPRO_PATCH_PTR, copro_patch_pointer);
+
+ /* restore REG_PCLK in case it was set to zero by an error */
+#if (EVE_GEN > 3) && (defined EVE_PCLK_FREQ)
+ EVE_memWrite16(REG_PCLK_FREQ, (uint16_t) EVE_PCLK_FREQ);
+ EVE_memWrite8(REG_PCLK, 1U); /* enable extsync mode */
+#else
+ EVE_memWrite8(REG_PCLK, EVE_PCLK);
+#endif
+
+#endif
+ EVE_memWrite8(REG_CPURESET, 0U); /* set REG_CPURESET to 0 to restart the coprocessor engine*/
+ DELAY_MS(10U); /* just to be safe */
+}
+
+/**
+ * @brief Check if the coprocessor completed executing the current command list.
+ * @return - E_OK - if EVE is not busy (no DMA transfer active and REG_CMDB_SPACE has the value 0xffc, meaning the CMD-FIFO is empty
+ * @return - EVE_IS_BUSY - if a DMA transfer is active or REG_CMDB_SPACE has a value smaller than 0xffc
+ * @return - EVE_FIFO_HALF_EMPTY - if no DMA transfer is active and REG_CMDB_SPACE shows more than 2048 bytes available
+ * @return - E_NOT_OK - if there was a coprocessor fault and the recovery sequence was executed
+ * @note - if there is a coprocessor fault the external flash is not reinitialized by EVE_busy()
+ */
+uint8_t EVE_busy(void)
+{
+ uint16_t space;
+ uint8_t ret = EVE_IS_BUSY;
+
+#if defined (EVE_DMA)
+ if (0 == EVE_dma_busy)
+ {
+#endif
+
+ space = EVE_memRead16(REG_CMDB_SPACE);
+
+ /* (REG_CMDB_SPACE & 0x03) != 0 -> we have a coprocessor fault */
+ if ((space & 3U) != 0U) /* we have a coprocessor fault, make EVE play with us again */
+ {
+ ret = EVE_FAULT_RECOVERED;
+ fault_recovered = EVE_FAULT_RECOVERED; /* save fault recovery state */
+ CoprocessorFaultRecover();
+ }
+ else
+ {
+ if (0xffcU == space)
+ {
+ ret = E_OK;
+ }
+ else if (space > 0x800U)
+ {
+ ret = EVE_FIFO_HALF_EMPTY;
+ }
+ else
+ {
+ ret = EVE_IS_BUSY;
+ }
+ }
+
+#if defined (EVE_DMA)
+ }
+#endif
+
+ return (ret);
+}
+
+/**
+ * @brief Helper function to check if EVE_busy() tried to recover from a coprocessor fault.
+ * The internal fault indicator is cleared so it could be set by EVE_busy() again.
+ * @return - EVE_FAULT_RECOVERED - if EVE_busy() detected a coprocessor fault
+ * @return - E_OK - if EVE_busy() did not detect a coprocessor fault
+ */
+uint8_t EVE_get_and_reset_fault_state(void)
+{
+ uint8_t ret = E_OK;
+
+ if (EVE_FAULT_RECOVERED == fault_recovered)
+ {
+ ret = EVE_FAULT_RECOVERED;
+ fault_recovered = E_OK;
+ }
+ return (ret);
+}
+
+/**
+ * @brief Helper function, wait for the coprocessor to complete the FIFO queue.
+ */
+void EVE_execute_cmd(void)
+{
+ while (EVE_busy() != E_OK)
+ {
+ }
+}
+
+/* begin a coprocessor command, this is used for non-display-list and non-burst-mode commands.*/
+static void eve_begin_cmd(uint32_t command)
+{
+ EVE_cs_set();
+ spi_transmit((uint8_t) 0xB0U); /* high-byte of REG_CMDB_WRITE + MEM_WRITE */
+ spi_transmit((uint8_t) 0x25U); /* middle-byte of REG_CMDB_WRITE */
+ spi_transmit((uint8_t) 0x78U); /* low-byte of REG_CMDB_WRITE */
+ spi_transmit_32(command);
+}
+
+static void private_block_write(const uint8_t *p_data, uint16_t len); /* prototype to comply with MISRA */
+
+static void private_block_write(const uint8_t *p_data, uint16_t len)
+{
+ uint8_t padding;
+
+ padding = (uint8_t) (len & 3U); /* 0, 1, 2 or 3 */
+ padding = 4U - padding; /* 4, 3, 2 or 1 */
+ padding &= 3U; /* 3, 2 or 1 */
+
+ for (uint16_t count = 0U; count < len; count++)
+ {
+ spi_transmit(fetch_flash_byte(&p_data[count]));
+ }
+
+ while (padding > 0U)
+ {
+ spi_transmit(0U);
+ padding--;
+ }
+}
+
+static void block_transfer(const uint8_t *p_data, uint32_t len); /* prototype to comply with MISRA */
+
+static void block_transfer(const uint8_t *p_data, uint32_t len)
+{
+ uint32_t bytes_left;
+ uint32_t offset = 0U;
+
+ bytes_left = len;
+ while (bytes_left > 0U)
+ {
+ uint32_t block_len;
+
+ block_len = (bytes_left > 3840UL) ? 3840UL : bytes_left;
+
+ EVE_cs_set();
+ spi_transmit((uint8_t) 0xB0U); /* high-byte of REG_CMDB_WRITE + MEM_WRITE */
+ spi_transmit((uint8_t) 0x25U); /* middle-byte of REG_CMDB_WRITE */
+ spi_transmit((uint8_t) 0x78U); /* low-byte of REG_CMDB_WRITE */
+ private_block_write(&p_data[offset], (uint16_t) block_len);
+ EVE_cs_clear();
+ offset += block_len;
+ bytes_left -= block_len;
+ EVE_execute_cmd();
+ }
+}
+
+/* ##################################################################
+ coprocessor commands that are not used in displays lists,
+ these are not to be used with burst transfers
+################################################################### */
+
+/* BT817 / BT818 */
+#if EVE_GEN > 3
+
+/**
+ * @brief Write "num" bytes from src in RAM_G to the previously erased external flash of a BT81x at address dest.
+ * @note - dest must be 4096-byte aligned, src must be 4-byte aligned, num must be a multiple of 4096
+ * @note - EVE will not do anything if the alignment requirements are not met
+ * @note - the address ptr is relative to the flash so the first address is 0x000000 not 0x800000
+ * @note - this looks exactly the same as EVE_cmd_flashupdate() but it needs the flash to be empty
+ * @note - Meant to be called outside display-list building.
+ * @note - Includes executing the command and waiting for completion.
+ * @note - Does not support burst-mode.
+ */
+void EVE_cmd_flashprogram(uint32_t dest, uint32_t src, uint32_t num)
+{
+ eve_begin_cmd(CMD_FLASHPROGRAM);
+ spi_transmit_32(dest);
+ spi_transmit_32(src);
+ spi_transmit_32(num);
+ EVE_cs_clear();
+ EVE_execute_cmd();
+}
+
+/**
+ * @brief Enable the font cache.
+ * @note - Meant to be called outside display-list building.
+ * @note - Includes executing the command and waiting for completion.
+ * @note - Does not support burst-mode.
+ */
+void EVE_cmd_fontcache(uint32_t font, uint32_t ptr, uint32_t num)
+{
+ eve_begin_cmd(CMD_FONTCACHE);
+ spi_transmit_32(font);
+ spi_transmit_32(ptr);
+ spi_transmit_32(num);
+ EVE_cs_clear();
+ EVE_execute_cmd();
+}
+
+/**
+ * @brief Queries the capacity and utilization of the font cache.
+ * @note - Meant to be called outside display-list building.
+ * @note - Includes executing the command and waiting for completion.
+ * @note - Does not support burst-mode.
+ */
+void EVE_cmd_fontcachequery(uint32_t *p_total, uint32_t *p_used)
+{
+ uint16_t cmdoffset;
+
+ eve_begin_cmd(CMD_FONTCACHEQUERY);
+ spi_transmit_32(0UL);
+ spi_transmit_32(0UL);
+ EVE_cs_clear();
+ EVE_execute_cmd();
+
+ cmdoffset = EVE_memRead16(REG_CMD_WRITE); /* read the coprocessor write pointer */
+
+ if (p_total != NULL)
+ {
+ *p_total = EVE_memRead32(EVE_RAM_CMD + ((cmdoffset - 8UL) & 0xfffUL));
+ }
+ if (p_used != NULL)
+ {
+ *p_used = EVE_memRead32(EVE_RAM_CMD + ((cmdoffset - 4UL) & 0xfffUL));
+ }
+}
+
+/**
+ * @brief Returns all the attributes of the bitmap made by the previous CMD_LOADIMAGE, CMD_PLAYVIDEO, CMD_VIDEOSTART or CMD_VIDEOSTARTF.
+ * @note - Meant to be called outside display-list building.
+ * @note - Includes executing the command and waiting for completion.
+ * @note - Does not support burst-mode.
+ */
+void EVE_cmd_getimage(uint32_t *p_source, uint32_t *p_fmt, uint32_t *p_width, uint32_t *p_height, uint32_t *p_palette)
+{
+ uint16_t cmdoffset;
+
+ eve_begin_cmd(CMD_GETIMAGE);
+ spi_transmit_32(0UL);
+ spi_transmit_32(0UL);
+ spi_transmit_32(0UL);
+ spi_transmit_32(0UL);
+ spi_transmit_32(0UL);
+ EVE_cs_clear();
+ EVE_execute_cmd();
+
+ cmdoffset = EVE_memRead16(REG_CMD_WRITE); /* read the coprocessor write pointer */
+
+ if (p_palette != NULL)
+ {
+ *p_palette = EVE_memRead32(EVE_RAM_CMD + ((cmdoffset - 4UL) & 0xfffUL));
+ }
+ if (p_height != NULL)
+ {
+ *p_height = EVE_memRead32(EVE_RAM_CMD + ((cmdoffset - 8UL) & 0xfffUL));
+ }
+ if (p_width != NULL)
+ {
+ *p_width = EVE_memRead32(EVE_RAM_CMD + ((cmdoffset - 12UL) & 0xfffUL));
+ }
+ if (p_fmt != NULL)
+ {
+ *p_fmt = EVE_memRead32(EVE_RAM_CMD + ((cmdoffset - 16UL) & 0xfffUL));
+ }
+ if (p_source != NULL)
+ {
+ *p_source = EVE_memRead32(EVE_RAM_CMD + ((cmdoffset - 20UL) & 0xfffUL));
+ }
+}
+
+/**
+ * @brief Undocumented command.
+ * @note - Meant to be called outside display-list building.
+ * @note - Includes executing the command and waiting for completion.
+ * @note - Does not support burst-mode.
+ */
+void EVE_cmd_linetime(uint32_t dest)
+{
+ eve_begin_cmd(CMD_LINETIME);
+ spi_transmit_32(dest);
+ EVE_cs_clear();
+ EVE_execute_cmd();
+}
+
+/**
+ * @brief Starts the compilation of a command list into RAM_G.
+ * @note - Meant to be called outside display-list building.
+ * @note - Includes executing the command and waiting for completion.
+ * @note - Does not support burst-mode.
+ */
+void EVE_cmd_newlist(uint32_t adr)
+{
+ eve_begin_cmd(CMD_NEWLIST);
+ spi_transmit_32(adr);
+ EVE_cs_clear();
+ EVE_execute_cmd();
+}
+
+/**
+ * @brief Sets REG_PCLK_FREQ to generate the closest possible frequency to the one requested.
+ * @return - the frequency achieved or zero if no frequency was found
+ * @note - When using this command, the flash BLOB is required.
+ * @note - Meant to be called outside display-list building.
+ * @note - Includes executing the command and waiting for completion.
+ * @note - Does not support burst-mode.
+ */
+uint32_t EVE_cmd_pclkfreq(uint32_t ftarget, int32_t rounding)
+{
+ uint16_t cmdoffset;
+
+ eve_begin_cmd(CMD_PCLKFREQ);
+ spi_transmit_32(ftarget);
+ spi_transmit_32((uint32_t) rounding);
+ spi_transmit_32(0UL);
+ EVE_cs_clear();
+ EVE_execute_cmd();
+ cmdoffset = EVE_memRead16(REG_CMD_WRITE); /* read the coprocessor write pointer */
+ cmdoffset -= 4U;
+ cmdoffset &= 0x0fffU;
+ return (EVE_memRead32(EVE_RAM_CMD + cmdoffset));
+}
+
+/**
+ * @brief Waits for a specified number of microseconds.
+ * @note - Meant to be called outside display-list building.
+ * @note - Includes executing the command and waiting for completion.
+ * @note - Does not support burst-mode.
+ */
+void EVE_cmd_wait(uint32_t usec)
+{
+ eve_begin_cmd(CMD_WAIT);
+ spi_transmit_32(usec);
+ EVE_cs_clear();
+ EVE_execute_cmd();
+}
+
+#endif /* EVE_GEN > 3 */
+
+/* BT815 / BT816 */
+#if EVE_GEN > 2
+
+/**
+ * @brief Clears the graphics engine’s internal flash cache.
+ * @note - This function includes clearing out the display list.
+ * @note - Meant to be called outside display-list building.
+ * @note - Includes executing the command and waiting for completion.
+ * @note - Does not support burst-mode.
+ */
+void EVE_cmd_clearcache(void)
+{
+ EVE_cmd_dl(CMD_DLSTART);
+ EVE_cmd_dl(CMD_SWAP);
+ EVE_execute_cmd();
+
+ EVE_cmd_dl(CMD_DLSTART);
+ EVE_cmd_dl(CMD_SWAP);
+ EVE_execute_cmd();
+
+ EVE_cmd_dl(CMD_CLEARCACHE);
+ EVE_execute_cmd();
+}
+
+/**
+ * @brief Re-connect to the attached SPI flash storage.
+ * @note - Meant to be called outside display-list building.
+ * @note - Includes executing the command and waiting for completion.
+ * @note - Does not support burst-mode.
+ */
+void EVE_cmd_flashattach(void)
+{
+ eve_begin_cmd(CMD_FLASHATTACH);
+ EVE_cs_clear();
+ EVE_execute_cmd();
+}
+
+/**
+ * @brief Dis-connect from the attached SPI flash storage.
+ * @note - Meant to be called outside display-list building.
+ * @note - Includes executing the command and waiting for completion.
+ * @note - Does not support burst-mode.
+ */
+void EVE_cmd_flashdetach(void)
+{
+ eve_begin_cmd(CMD_FLASHDETACH);
+ EVE_cs_clear();
+ EVE_execute_cmd();
+}
+
+/**
+ * @brief Erases the attached SPI flash storage.
+ * @note - Meant to be called outside display-list building.
+ * @note - Includes executing the command and waiting for completion.
+ * @note - Does not support burst-mode.
+ */
+void EVE_cmd_flasherase(void)
+{
+ eve_begin_cmd(CMD_FLASHERASE);
+ EVE_cs_clear();
+ EVE_execute_cmd();
+}
+
+/**
+ * @brief Drive the attached SPI flash storage in full-speed mode, if possible.
+ * @return - Zero on success, error code on failure
+ * @note - When using this command, the flash BLOB is required.
+ * @note - Meant to be called outside display-list building.
+ * @note - Includes executing the command and waiting for completion.
+ * @note - Does not support burst-mode.
+ */
+uint32_t EVE_cmd_flashfast(void)
+{
+ uint16_t cmdoffset;
+
+ eve_begin_cmd(CMD_FLASHFAST);
+ spi_transmit_32(0UL);
+ EVE_cs_clear();
+ EVE_execute_cmd();
+ cmdoffset = EVE_memRead16(REG_CMD_WRITE); /* read the coprocessor write pointer */
+ cmdoffset -= 4U;
+ cmdoffset &= 0x0fffU;
+ return (EVE_memRead32(EVE_RAM_CMD + cmdoffset));
+}
+
+/**
+ * @brief De-asserts the SPI CS signal of the attached SPI flash storage.
+ * @note - Only works when the attached SPI flash storage has been detached.
+ * @note - Meant to be called outside display-list building.
+ * @note - Includes executing the command and waiting for completion.
+ * @note - Does not support burst-mode.
+ */
+void EVE_cmd_flashspidesel(void)
+{
+ eve_begin_cmd(CMD_FLASHSPIDESEL);
+ EVE_cs_clear();
+ EVE_execute_cmd();
+}
+
+/**
+ * @brief Copies "num" bytes from "src" in attached SPI flash storage to "dest" in RAM_G.
+ * @note - src must be 64-byte aligned, dest must be 4-byte aligned, num must be a multiple of 4
+ * @note - EVE will not do anything if the alignment requirements are not met
+ * @note - The src pointer is relative to the flash so the first address is 0x000000 not 0x800000.
+ * @note - Meant to be called outside display-list building.
+ * @note - Includes executing the command and waiting for completion.
+ * @note - Does not support burst-mode.
+ */
+void EVE_cmd_flashread(uint32_t dest, uint32_t src, uint32_t num)
+{
+ eve_begin_cmd(CMD_FLASHREAD);
+ spi_transmit_32(dest);
+ spi_transmit_32(src);
+ spi_transmit_32(num);
+ EVE_cs_clear();
+ EVE_execute_cmd();
+}
+
+/**
+ * @brief Set the source address for flash data loaded by the CMD_LOADIMAGE, CMD_PLAYVIDEO, CMD_VIDEOSTARTF and CMD_INFLATE2 commands with the OPT_FLASH option.
+ * @note - Address must be 64-byte aligned.
+ * @note - EVE will not do anything if the alignment requirements are not met.
+ * @note - The pointer is relative to the flash, so the first address is 0x000000 not 0x800000.
+ * @note - Meant to be called outside display-list building.
+ * @note - Includes executing the command and waiting for completion.
+ * @note - Does not support burst-mode.
+ */
+void EVE_cmd_flashsource(uint32_t ptr)
+{
+ eve_begin_cmd(CMD_FLASHSOURCE);
+ spi_transmit_32(ptr);
+ EVE_cs_clear();
+ EVE_execute_cmd();
+}
+
+/**
+ * @brief Receives bytes from the flash SPI interface and writes them to main memory.
+ * @note - Only works when the attached SPI flash storage has been detached.
+ * @note - Meant to be called outside display-list building.
+ * @note - Includes executing the command and waiting for completion.
+ * @note - Does not support burst-mode.
+ */
+void EVE_cmd_flashspirx(uint32_t dest, uint32_t num)
+{
+ eve_begin_cmd(CMD_FLASHSPIRX);
+ spi_transmit_32(dest);
+ spi_transmit_32(num);
+ EVE_cs_clear();
+ EVE_execute_cmd();
+}
+
+/**
+ * @brief Transmits bytes over the flash SPI interface.
+ * @note - Only works when the attached SPI flash storage has been detached.
+ * @note - Meant to be called outside display-list building.
+ * @note - Includes executing the command and waiting for completion.
+ * @note - Does not support burst-mode.
+ */
+void EVE_cmd_flashspitx(uint32_t num, const uint8_t *p_data)
+{
+ eve_begin_cmd(CMD_FLASHSPITX);
+ spi_transmit_32(num);
+ EVE_cs_clear();
+ block_transfer(p_data, num);
+}
+
+/**
+ * @brief Write "num" bytes from src in RAM_G to the attached SPI flash storage at address dest.
+ * @note - dest must be 4096-byte aligned, src must be 4-byte aligned, num must be a multiple of 4096
+ * @note - EVE will not do anything if the alignment requirements are not met.
+ * @note - The address ptr is relative to the flash so the first address is 0x000000 not 0x800000.
+ * @note - Meant to be called outside display-list building.
+ * @note - Includes executing the command and waiting for completion.
+ * @note - Does not support burst-mode.
+ */
+void EVE_cmd_flashupdate(uint32_t dest, uint32_t src, uint32_t num)
+{
+ eve_begin_cmd(CMD_FLASHUPDATE);
+ spi_transmit_32(dest);
+ spi_transmit_32(src);
+ spi_transmit_32(num);
+ EVE_cs_clear();
+ EVE_execute_cmd();
+}
+
+/**
+ * @brief Write "num" bytes to the attached SPI flash storage at address dest.
+ * @note - dest must be 256-byte aligned, num must be a multiple of 256
+ * @note - EVE will not do anything if the alignment requirements are not met.
+ * @note - The address ptr is relative to the flash so the first address is 0x000000 not 0x800000.
+ * @note - Meant to be called outside display-list building.
+ * @note - Includes executing the command and waiting for completion.
+ * @note - Does not support burst-mode.
+ */
+void EVE_cmd_flashwrite(uint32_t ptr, uint32_t num, const uint8_t *p_data)
+{
+ eve_begin_cmd(CMD_FLASHWRITE);
+ spi_transmit_32(ptr);
+ spi_transmit_32(num);
+ EVE_cs_clear();
+ if (p_data != NULL)
+ {
+ block_transfer(p_data, num);
+ }
+}
+
+/**
+ * @brief Decompress data into RAM_G.
+ * @note - The data must be correct and complete.
+ * @note - Meant to be called outside display-list building.
+ * @note - Includes executing the command and waiting for completion.
+ * @note - Does not support burst-mode.
+ */
+void EVE_cmd_inflate2(uint32_t ptr, uint32_t options, const uint8_t *p_data, uint32_t len)
+{
+ eve_begin_cmd(CMD_INFLATE2);
+ spi_transmit_32(ptr);
+ spi_transmit_32(options);
+ EVE_cs_clear();
+
+ if (0UL == options) /* direct data, not by Media-FIFO or Flash */
+ {
+ if (p_data != NULL)
+ {
+ block_transfer(p_data, len);
+ }
+ }
+}
+
+#endif /* EVE_GEN > 2 */
+
+/**
+ * @brief Returns the source address and size of the bitmap loaded by the previous CMD_LOADIMAGE.
+ * @note - Meant to be called outside display-list building.
+ * @note - Includes executing the command and waiting for completion.
+ * @note - Does not support burst-mode.
+ */
+void EVE_cmd_getprops(uint32_t *p_pointer, uint32_t *p_width, uint32_t *p_height)
+{
+ uint16_t cmdoffset;
+
+ eve_begin_cmd(CMD_GETPROPS);
+ spi_transmit_32(0UL);
+ spi_transmit_32(0UL);
+ spi_transmit_32(0UL);
+ EVE_cs_clear();
+ EVE_execute_cmd();
+ cmdoffset = EVE_memRead16(REG_CMD_WRITE); /* read the coprocessor write pointer */
+
+ if (p_pointer != NULL)
+ {
+ *p_pointer = EVE_memRead32(EVE_RAM_CMD + ((cmdoffset - 12UL) & 0xfffUL));
+ }
+ if (p_width != NULL)
+ {
+ *p_width = EVE_memRead32(EVE_RAM_CMD + ((cmdoffset - 8UL) & 0xfffUL));
+ }
+ if (p_height != NULL)
+ {
+ *p_height = EVE_memRead32(EVE_RAM_CMD + ((cmdoffset - 4UL) & 0xfffUL));
+ }
+}
+
+/**
+ * @brief Returns the next address after a CMD_INFLATE and other commands.
+ * @note - Meant to be called outside display-list building.
+ * @note - Includes executing the command and waiting for completion.
+ * @note - Does not support burst-mode.
+ */
+uint32_t EVE_cmd_getptr(void)
+{
+ uint16_t cmdoffset;
+
+ eve_begin_cmd(CMD_GETPTR);
+ spi_transmit_32(0UL);
+ EVE_cs_clear();
+ EVE_execute_cmd();
+ cmdoffset = EVE_memRead16(REG_CMD_WRITE); /* read the coprocessor write pointer */
+ cmdoffset -= 4U;
+ cmdoffset &= 0x0fffU;
+ return (EVE_memRead32(EVE_RAM_CMD + cmdoffset));
+}
+
+/**
+ * @brief Decompress data into RAM_G.
+ * @note - The data must be correct and complete.
+ * @note - Meant to be called outside display-list building.
+ * @note - Includes executing the command and waiting for completion.
+ * @note - Does not support burst-mode.
+ */
+void EVE_cmd_inflate(uint32_t ptr, const uint8_t *p_data, uint32_t len)
+{
+ eve_begin_cmd(CMD_INFLATE);
+ spi_transmit_32(ptr);
+ EVE_cs_clear();
+ if (p_data != NULL)
+ {
+ block_transfer(p_data, len);
+ }
+}
+
+/**
+ * @brief Trigger interrupt INT_CMDFLAG.
+ * @note - Meant to be called outside display-list building.
+ * @note - Includes executing the command and waiting for completion.
+ * @note - Does not support burst-mode.
+ */
+void EVE_cmd_interrupt(uint32_t msec)
+{
+ eve_begin_cmd(CMD_INTERRUPT);
+ spi_transmit_32(msec);
+ EVE_cs_clear();
+ EVE_execute_cmd();
+}
+
+/**
+ * @brief Loads and decodes a JPEG/PNG image into RAM_G.
+ * @note - Decoding PNG images takes significantly more time than decoding JPEG images.
+ * @note - In doubt use the EVE Asset Builder to check if PNG/JPEG files are compatible.
+ * @note - If the image is in PNG format, the top 42kiB of RAM_G will be overwritten.
+ * @note - Meant to be called outside display-list building.
+ * @note - Includes executing the command and waiting for completion.
+ * @note - Does not support burst-mode.
+ */
+void EVE_cmd_loadimage(uint32_t ptr, uint32_t options, const uint8_t *p_data, uint32_t len)
+{
+ eve_begin_cmd(CMD_LOADIMAGE);
+ spi_transmit_32(ptr);
+ spi_transmit_32(options);
+ EVE_cs_clear();
+
+#if EVE_GEN > 2
+ if ((0UL == (options & EVE_OPT_MEDIAFIFO)) &&
+ (0UL == (options & EVE_OPT_FLASH))) /* direct data, neither by Media-FIFO or from Flash */
+#else
+ if (0UL == (options & EVE_OPT_MEDIAFIFO)) /* direct data, not by Media-FIFO */
+#endif
+ {
+ if (p_data != NULL)
+ {
+ block_transfer(p_data, len);
+ }
+ }
+}
+
+/**
+ * @brief Set up a streaming media FIFO in RAM_G.
+ * @note - Meant to be called outside display-list building.
+ * @note - Includes executing the command and waiting for completion.
+ * @note - Does not support burst-mode.
+ */
+void EVE_cmd_mediafifo(uint32_t ptr, uint32_t size)
+{
+ eve_begin_cmd(CMD_MEDIAFIFO);
+ spi_transmit_32(ptr);
+ spi_transmit_32(size);
+ EVE_cs_clear();
+ EVE_execute_cmd();
+}
+
+/**
+ * @brief Copy a block of RAM_G.
+ * @note - Meant to be called outside display-list building.
+ * @note - Includes executing the command and waiting for completion.
+ * @note - Does not support burst-mode.
+ */
+void EVE_cmd_memcpy(uint32_t dest, uint32_t src, uint32_t num)
+{
+ eve_begin_cmd(CMD_MEMCPY);
+ spi_transmit_32(dest);
+ spi_transmit_32(src);
+ spi_transmit_32(num);
+ EVE_cs_clear();
+ EVE_execute_cmd();
+}
+
+/**
+ * @brief Compute a CRC-32 for RAM_G.
+ * @note - Meant to be called outside display-list building.
+ * @note - Includes executing the command and waiting for completion.
+ * @note - Does not support burst-mode.
+ */
+uint32_t EVE_cmd_memcrc(uint32_t ptr, uint32_t num)
+{
+ uint16_t cmdoffset;
+
+ eve_begin_cmd(CMD_MEMCRC);
+ spi_transmit_32(ptr);
+ spi_transmit_32(num);
+ spi_transmit_32(0UL);
+ EVE_cs_clear();
+ EVE_execute_cmd();
+ cmdoffset = EVE_memRead16(REG_CMD_WRITE); /* read the coprocessor write pointer */
+ cmdoffset -= 4U;
+ cmdoffset &= 0x0fffU;
+ return (EVE_memRead32(EVE_RAM_CMD + cmdoffset));
+}
+
+/**
+ * @brief Fill RAM_G with a byte value.
+ * @note - Meant to be called outside display-list building.
+ * @note - Includes executing the command and waiting for completion.
+ * @note - Does not support burst-mode.
+ */
+void EVE_cmd_memset(uint32_t ptr, uint8_t value, uint32_t num)
+{
+ eve_begin_cmd(CMD_MEMSET);
+ spi_transmit_32(ptr);
+ spi_transmit_32((uint32_t)value);
+ spi_transmit_32(num);
+ EVE_cs_clear();
+ EVE_execute_cmd();
+}
+
+/**
+ * @brief Write bytes into RAM_G using the coprocessor.
+ * @note - Commented out, just use one of the EVE_memWrite* helper functions to directly write to EVEs memory.
+ * @note - Meant to be called outside display-list building.
+ * @note - Includes executing the command and waiting for completion.
+ * @note - Does not support burst-mode.
+ */
+/*
+void EVE_cmd_memwrite(uint32_t dest, uint32_t num, const uint8_t *p_data)
+{
+ eve_begin_cmd(CMD_MEMWRITE);
+ spi_transmit_32(dest);
+ spi_transmit_32(num);
+
+ num = (num + 3U) & (~3U);
+
+ for (uint32_t count = 0U; count 2
+ if ((0UL == (options & EVE_OPT_MEDIAFIFO)) &&
+ (0UL == (options & EVE_OPT_FLASH))) /* direct data, neither by Media-FIFO or from Flash */
+#else
+ if (0UL == (options & EVE_OPT_MEDIAFIFO)) /* direct data, not by Media-FIFO */
+#endif
+ {
+ if (p_data != NULL)
+ {
+ block_transfer(p_data, len);
+ }
+ }
+}
+
+/**
+ * @brief Rotate the screen and set up transform matrix accordingly.
+ * @note - Meant to be called outside display-list building.
+ * @note - Includes executing the command and waiting for completion.
+ * @note - Does not support burst-mode.
+ */
+void EVE_cmd_setrotate(uint32_t rotation)
+{
+ eve_begin_cmd(CMD_SETROTATE);
+ spi_transmit_32(rotation);
+ EVE_cs_clear();
+ EVE_execute_cmd();
+}
+
+/**
+ * @brief Take a snapshot of the current screen.
+ * @note - Meant to be called outside display-list building.
+ * @note - Includes executing the command and waiting for completion.
+ * @note - Does not support burst-mode.
+ */
+void EVE_cmd_snapshot(uint32_t ptr)
+{
+ eve_begin_cmd(CMD_SNAPSHOT);
+ spi_transmit_32(ptr);
+ EVE_cs_clear();
+ EVE_execute_cmd();
+}
+
+/**
+ * @brief Take a snapshot of part of the current screen with format option.
+ * @note - Meant to be called outside display-list building.
+ * @note - Includes executing the command and waiting for completion.
+ * @note - Does not support burst-mode.
+ */
+void EVE_cmd_snapshot2(uint32_t fmt, uint32_t ptr, int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt)
+{
+ eve_begin_cmd(CMD_SNAPSHOT2);
+ spi_transmit_32(fmt);
+ spi_transmit_32(ptr);
+
+ spi_transmit((uint8_t) ((uint16_t) xc0));
+ spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U));
+ spi_transmit((uint8_t) ((uint16_t) yc0));
+ spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U));
+
+ spi_transmit((uint8_t) (wid));
+ spi_transmit((uint8_t) (wid >> 8U));
+ spi_transmit((uint8_t) (hgt));
+ spi_transmit((uint8_t) (hgt >> 8U));
+
+ EVE_cs_clear();
+ EVE_execute_cmd();
+}
+
+/**
+ * @brief Track touches for a graphics object.
+ * @note - Meant to be called outside display-list building.
+ * @note - Includes executing the command and waiting for completion.
+ * @note - Does not support burst-mode.
+ */
+void EVE_cmd_track(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt, uint16_t tag)
+{
+ eve_begin_cmd(CMD_TRACK);
+
+ spi_transmit((uint8_t) ((uint16_t) xc0));
+ spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U));
+ spi_transmit((uint8_t) ((uint16_t) yc0));
+ spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U));
+
+ spi_transmit((uint8_t) (wid));
+ spi_transmit((uint8_t) (wid >> 8U));
+ spi_transmit((uint8_t) (hgt));
+ spi_transmit((uint8_t) (hgt >> 8U));
+
+ spi_transmit((uint8_t) (tag));
+ spi_transmit((uint8_t) (tag >> 8U));
+ spi_transmit(0U);
+ spi_transmit(0U);
+
+ EVE_cs_clear();
+ EVE_execute_cmd();
+}
+
+/**
+ * @brief Load the next frame of a video.
+ * @note - Meant to be called outside display-list building.
+ * @note - Includes executing the command and waiting for completion.
+ * @note - Does not support burst-mode.
+ */
+void EVE_cmd_videoframe(uint32_t dest, uint32_t result_ptr)
+{
+ eve_begin_cmd(CMD_VIDEOFRAME);
+ spi_transmit_32(dest);
+ spi_transmit_32(result_ptr);
+ EVE_cs_clear();
+ EVE_execute_cmd();
+}
+
+/* ##################################################################
+ patching and initialization
+#################################################################### */
+
+#if EVE_GEN > 2
+
+/**
+ * @brief EVE flash initialization for BT81x, switches the FLASH attached to a BT81x to full-speed mode
+ * @return Returns E_OK in case of success, EVE_FAIL_FLASH_STATUS_INIT if the status remains init,
+ * EVE_FAIL_FLASH_STATUS_DETACHED if no flash chip was found, a number of different values for failures with
+ * cmd_flashfast and E_NOT_OK if a not supported status is returned in REG_FLASH_STATUS.
+ */
+uint8_t EVE_init_flash(void)
+{
+ uint8_t timeout = 0U;
+ uint8_t status;
+ uint8_t ret_val = E_NOT_OK;
+
+ status = EVE_memRead8(REG_FLASH_STATUS); /* should be 0x02 - FLASH_STATUS_BASIC, power-up is done and the attached flash is detected */
+
+ /* we are somehow still in init, give it a litte more time, this should never happen */
+ while (EVE_FLASH_STATUS_INIT == status)
+ {
+ status = EVE_memRead8(REG_FLASH_STATUS);
+ DELAY_MS(1U);
+ timeout++;
+ if (timeout > 100U) /* 100ms and still in init, lets call quits now and exit with an error */
+ {
+ ret_val = EVE_FAIL_FLASH_STATUS_INIT;
+ break;
+ }
+ }
+
+ /* no flash was found during init, no flash present or the detection failed, give it another try */
+ if (EVE_FLASH_STATUS_DETACHED == status)
+ {
+ EVE_cmd_dl(CMD_FLASHATTACH);
+ EVE_execute_cmd();
+ status = EVE_memRead8(REG_FLASH_STATUS);
+ if (status != 2U) /* still not in FLASH_STATUS_BASIC, time to give up */
+ {
+ ret_val = EVE_FAIL_FLASH_STATUS_DETACHED;
+ }
+ }
+
+ /* flash detected and ready for action, move it up to FLASH_STATUS_FULL */
+ if (EVE_FLASH_STATUS_BASIC == status)
+ {
+ uint32_t result;
+
+ result = EVE_cmd_flashfast();
+
+ switch (result)
+ {
+ case 0x0000UL:
+ ret_val = E_OK;
+ break;
+
+ case 0xE001UL:
+ ret_val = EVE_FAIL_FLASHFAST_NOT_SUPPORTED;
+ break;
+
+ case 0xE002UL:
+ ret_val = EVE_FAIL_FLASHFAST_NO_HEADER_DETECTED;
+ break;
+
+ case 0xE003UL:
+ ret_val = EVE_FAIL_FLASHFAST_SECTOR0_FAILED;
+ break;
+
+ case 0xE004UL:
+ ret_val = EVE_FAIL_FLASHFAST_BLOB_MISMATCH;
+ break;
+
+ case 0xE005UL:
+ ret_val = EVE_FAIL_FLASHFAST_SPEED_TEST;
+ break;
+
+ default: /* we have an unknown error, so just return failure */
+ ret_val = E_NOT_OK;
+ break;
+ }
+ }
+
+ if (EVE_FLASH_STATUS_FULL == status) /* we are already there, why has this function been called? */
+ {
+ ret_val = E_OK;
+ }
+
+ return (ret_val);
+}
+
+#endif /* EVE_GEN > 2 */
+
+#if EVE_GEN < 3
+#if defined (__AVR__)
+#include
+#else
+#define PROGMEM
+#endif
+#endif
+
+static void use_gt911(void);
+
+static void use_gt911(void)
+{
+#if EVE_GEN > 2
+ EVE_memWrite16(REG_TOUCH_CONFIG, 0x05d0U); /* switch to Goodix touch controller */
+#else
+
+/* FT811 / FT813 binary-blob from FTDIs AN_336 to patch the touch-engine for Goodix GT911 / GT9271 touch controllers */
+const uint8_t eve_gt911_data[1184U] PROGMEM =
+{
+ 26, 255, 255, 255, 32, 32, 48, 0, 4, 0, 0, 0, 2, 0, 0, 0, 34, 255, 255, 255, 0, 176, 48,
+ 0, 120, 218, 237, 84, 221, 111, 84, 69, 20, 63, 51, 179, 93, 160, 148, 101, 111, 76, 5, 44, 141, 123,
+ 111, 161, 11, 219, 154, 16, 9, 16, 17, 229, 156, 75, 26, 11, 13, 21, 227, 3, 16, 252, 184, 179, 45,
+ 219, 143, 45, 41, 125, 144, 72, 67, 100, 150, 71, 189, 113, 18, 36, 17, 165, 100, 165, 198, 16, 32, 17,
+ 149, 196, 240, 128, 161, 16, 164, 38, 54, 240, 0, 209, 72, 130, 15, 38, 125, 48, 66, 82, 30, 76, 19,
+ 31, 172, 103, 46, 139, 24, 255, 4, 227, 157, 204, 156, 51, 115, 102, 206, 231, 239, 220, 5, 170, 94, 129,
+ 137, 75, 194, 216, 98, 94, 103, 117, 115, 121, 76, 131, 177, 125, 89, 125, 82, 123, 60, 243, 58, 142, 242,
+ 204, 185, 243, 188, 118, 156, 227, 155, 203, 238, 238, 195, 251, 205, 229, 71, 92, 28, 169, 190, 184, 84, 143,
+ 113, 137, 53, 244, 103, 181, 237, 87, 253, 113, 137, 233, 48, 12, 198, 165, 181, 104, 139, 25, 84, 253, 155,
+ 114, 74, 191, 0, 54, 138, 163, 12, 62, 131, 207, 129, 23, 217, 34, 91, 31, 128, 65, 246, 163, 175, 213,
+ 8, 147, 213, 107, 35, 203, 94, 108, 3, 111, 40, 171, 83, 24, 15, 165, 177, 222, 116, 97, 23, 188, 140,
+ 206, 150, 42, 102, 181, 87, 78, 86, 182, 170, 134, 215, 241, 121, 26, 243, 252, 2, 76, 115, 217, 139, 222,
+ 206, 173, 136, 132, 81, 61, 35, 185, 39, 113, 23, 46, 199, 76, 178, 54, 151, 183, 224, 0, 40, 189, 28,
+ 149, 182, 58, 131, 79, 152, 30, 76, 34, 98, 234, 162, 216, 133, 141, 102, 39, 170, 40, 192, 101, 53, 201,
+ 146, 191, 37, 77, 44, 177, 209, 74, 211, 5, 206, 187, 5, 6, 216, 47, 53, 96, 123, 22, 50, 103, 251,
+ 192, 84, 17, 74, 227, 185, 56, 106, 51, 91, 161, 96, 182, 163, 48, 171, 141, 139, 65, 152, 66, 66, 11,
+ 102, 43, 158, 75, 36, 80, 147, 184, 147, 139, 112, 17, 235, 216, 103, 111, 239, 245, 92, 10, 175, 194, 40,
+ 44, 58, 125, 5, 59, 112, 50, 103, 245, 4, 78, 192, 5, 156, 194, 51, 60, 191, 134, 75, 110, 173, 237,
+ 46, 192, 121, 156, 192, 115, 184, 218, 120, 67, 63, 115, 46, 11, 102, 10, 97, 232, 50, 235, 114, 182, 148,
+ 118, 178, 41, 188, 12, 135, 77, 202, 124, 12, 96, 238, 35, 161, 234, 189, 129, 23, 249, 212, 139, 230, 25,
+ 53, 48, 205, 52, 93, 163, 117, 53, 154, 170, 81, 85, 163, 178, 70, 69, 66, 167, 241, 14, 46, 241, 1,
+ 226, 136, 152, 179, 197, 59, 184, 148, 254, 49, 132, 48, 15, 176, 137, 192, 76, 131, 196, 105, 104, 162, 86,
+ 81, 160, 165, 255, 26, 173, 162, 137, 86, 145, 210, 183, 192, 55, 175, 194, 211, 60, 91, 120, 230, 184, 174,
+ 27, 41, 131, 155, 40, 224, 29, 87, 179, 232, 16, 55, 55, 7, 165, 147, 81, 23, 165, 49, 101, 54, 224,
+ 75, 180, 81, 108, 18, 29, 226, 69, 225, 110, 175, 224, 42, 212, 25, 47, 130, 193, 110, 234, 192, 215, 252,
+ 56, 74, 162, 24, 46, 251, 174, 54, 106, 68, 245, 14, 9, 155, 160, 22, 120, 207, 104, 240, 29, 90, 178,
+ 140, 28, 24, 220, 47, 166, 112, 61, 251, 208, 192, 111, 56, 239, 238, 93, 255, 251, 62, 99, 32, 193, 75,
+ 61, 190, 235, 123, 229, 110, 218, 194, 85, 79, 225, 59, 98, 20, 238, 227, 235, 220, 11, 221, 149, 25, 180,
+ 116, 194, 159, 111, 96, 192, 24, 213, 59, 139, 179, 156, 215, 69, 230, 19, 24, 35, 135, 117, 206, 171, 206,
+ 162, 67, 129, 234, 61, 235, 11, 104, 103, 84, 64, 223, 167, 254, 40, 163, 101, 92, 84, 43, 150, 46, 249,
+ 219, 205, 7, 116, 11, 91, 104, 61, 57, 75, 223, 8, 48, 25, 28, 119, 252, 222, 113, 49, 86, 249, 74,
+ 180, 211, 156, 181, 61, 215, 168, 157, 7, 251, 199, 150, 242, 250, 91, 58, 132, 94, 121, 7, 53, 151, 139,
+ 98, 6, 165, 153, 69, 214, 32, 110, 211, 100, 101, 31, 89, 45, 81, 98, 23, 205, 205, 197, 209, 109, 186,
+ 198, 35, 141, 191, 249, 25, 60, 132, 223, 153, 251, 98, 20, 239, 146, 139, 20, 217, 250, 41, 250, 137, 58,
+ 177, 90, 57, 79, 51, 108, 233, 20, 253, 194, 187, 49, 222, 205, 114, 141, 96, 48, 175, 219, 107, 54, 111,
+ 138, 22, 154, 103, 108, 79, 58, 252, 179, 178, 79, 164, 195, 2, 153, 36, 39, 170, 199, 201, 167, 197, 85,
+ 106, 8, 59, 177, 81, 46, 56, 2, 230, 75, 114, 17, 55, 112, 188, 65, 208, 137, 77, 114, 10, 115, 55,
+ 58, 208, 197, 173, 122, 87, 6, 140, 110, 42, 208, 124, 163, 70, 108, 241, 104, 18, 245, 98, 214, 187, 134,
+ 53, 42, 221, 22, 182, 133, 211, 116, 148, 177, 194, 209, 192, 85, 90, 199, 58, 55, 203, 2, 229, 19, 137,
+ 187, 161, 228, 154, 112, 203, 145, 125, 244, 188, 220, 118, 228, 41, 201, 181, 41, 195, 144, 215, 183, 51, 80,
+ 250, 21, 217, 16, 217, 200, 235, 109, 227, 188, 122, 218, 142, 60, 170, 224, 112, 240, 184, 130, 229, 224, 113,
+ 5, 223, 148, 163, 80, 165, 183, 130, 187, 132, 116, 64, 238, 161, 85, 220, 115, 139, 205, 98, 227, 244, 29,
+ 102, 125, 7, 37, 243, 123, 223, 11, 26, 92, 63, 243, 116, 61, 191, 138, 123, 244, 160, 84, 186, 74, 31,
+ 5, 174, 247, 119, 135, 199, 248, 253, 135, 242, 97, 102, 145, 190, 144, 14, 85, 238, 221, 231, 193, 158, 48,
+ 205, 25, 120, 248, 15, 220, 29, 158, 9, 70, 185, 30, 103, 229, 33, 254, 23, 237, 160, 172, 62, 193, 90,
+ 222, 224, 232, 14, 200, 56, 90, 104, 142, 227, 120, 110, 6, 21, 211, 203, 65, 150, 99, 151, 220, 247, 87,
+ 164, 50, 159, 49, 239, 234, 58, 142, 0, 109, 108, 123, 18, 79, 227, 36, 100, 248, 222, 205, 96, 127, 120,
+ 26, 171, 228, 69, 63, 36, 17, 252, 200, 17, 116, 242, 187, 227, 88, 143, 247, 2, 75, 191, 6, 130, 59,
+ 188, 11, 55, 240, 31, 243, 122, 152, 226, 183, 207, 154, 73, 188, 39, 219, 43, 105, 222, 87, 41, 143, 141,
+ 140, 175, 73, 112, 184, 252, 61, 184, 16, 90, 250, 35, 168, 82, 119, 176, 57, 116, 94, 200, 150, 22, 190,
+ 179, 44, 104, 12, 235, 84, 149, 102, 252, 89, 154, 193, 99, 228, 106, 242, 125, 248, 64, 194, 255, 223, 127,
+ 242, 83, 11, 255, 2, 70, 214, 226, 128, 0, 0
+};
+
+ EVE_cs_set();
+ spi_transmit((uint8_t) 0xB0U); /* high-byte of REG_CMDB_WRITE + MEM_WRITE */
+ spi_transmit((uint8_t) 0x25U); /* middle-byte of REG_CMDB_WRITE */
+ spi_transmit((uint8_t) 0x78U); /* low-byte of REG_CMDB_WRITE */
+ private_block_write(eve_gt911_data, sizeof(eve_gt911_data));
+ EVE_cs_clear();
+ EVE_execute_cmd();
+
+ EVE_memWrite8(REG_TOUCH_OVERSAMPLE, 0x0fU); /* setup oversample to 0x0f as "hidden" in binary-blob for AN_336 */
+ EVE_memWrite16(REG_TOUCH_CONFIG, 0x05D0U); /* write magic cookie as requested by AN_336 */
+
+ /* specific to the EVE2 modules from Matrix-Orbital we have to use GPIO3 to reset GT911 */
+ EVE_memWrite16(REG_GPIOX_DIR, 0x8008U); /* Reset-Value is 0x8000, adding 0x08 sets GPIO3 to output, default-value
+ for REG_GPIOX is 0x8000 -> Low output on GPIO3 */
+ DELAY_MS(1U); /* wait more than 100us */
+ EVE_memWrite8(REG_CPURESET, 0U); /* clear all resets */
+ DELAY_MS(110U); /* wait more than 55ms - does not work with multitouch, for some reason a minimum delay of 108ms is
+ required */
+ EVE_memWrite16(REG_GPIOX_DIR, 0x8000U); /* setting GPIO3 back to input */
+#endif
+}
+
+/**
+ * @brief Waits for either reading REG_ID with a value of 0x7c, indicating that
+ * an EVE chip is present and ready to communicate, or untill a timeout of 400ms has passed.
+ * @return Returns E_OK in case of success, EVE_FAIL_REGID_TIMEOUT if the
+ * value of 0x7c could not be read.
+ */
+static uint8_t wait_regid(void)
+{
+ uint8_t ret = EVE_FAIL_REGID_TIMEOUT;
+ uint8_t regid = 0U;
+
+ for (uint16_t timeout = 0U; timeout < 400U; timeout++)
+ {
+ DELAY_MS(1U);
+
+ regid = EVE_memRead8(REG_ID);
+ if (0x7cU == regid) /* EVE is up and running */
+ {
+ ret = E_OK;
+ break;
+ }
+ }
+
+ return (ret);
+}
+
+/**
+ * @brief Waits for either REG_CPURESET to indicate that the audio, touch and
+ * coprocessor units finished their respective reset cycles,
+ * or untill a timeout of 50ms has passed.
+ * @return Returns E_OK in case of success, EVE_FAIL_RESET_TIMEOUT if either the
+ * audio, touch or coprocessor unit indicate a fault by not returning from reset.
+ */
+static uint8_t wait_reset(void)
+{
+ uint8_t ret = EVE_FAIL_RESET_TIMEOUT;
+ uint8_t reset = 0U;
+
+ for (uint16_t timeout = 0U; timeout < 50U; timeout++)
+ {
+ DELAY_MS(1U);
+
+ reset = EVE_memRead8(REG_CPURESET) & 7U;
+ if (0U == reset) /* EVE reports all units running */
+ {
+ ret = E_OK;
+ break;
+ }
+ }
+
+ return (ret);
+}
+
+/**
+ * @brief Writes all parameters defined for the display selected in EVE_config.h.
+ * to the corresponding registers.
+ * It is used by EVE_init() and can be used to refresh the register values if needed.
+ */
+void EVE_write_display_parameters(void)
+{
+ /* Initialize Display */
+ EVE_memWrite16(REG_HSIZE, EVE_HSIZE); /* active display width */
+ EVE_memWrite16(REG_HCYCLE, EVE_HCYCLE); /* total number of clocks per line, incl front/back porch */
+ EVE_memWrite16(REG_HOFFSET, EVE_HOFFSET); /* start of active line */
+ EVE_memWrite16(REG_HSYNC0, EVE_HSYNC0); /* start of horizontal sync pulse */
+ EVE_memWrite16(REG_HSYNC1, EVE_HSYNC1); /* end of horizontal sync pulse */
+ EVE_memWrite16(REG_VSIZE, EVE_VSIZE); /* active display height */
+ EVE_memWrite16(REG_VCYCLE, EVE_VCYCLE); /* total number of lines per screen, including pre/post */
+ EVE_memWrite16(REG_VOFFSET, EVE_VOFFSET); /* start of active screen */
+ EVE_memWrite16(REG_VSYNC0, EVE_VSYNC0); /* start of vertical sync pulse */
+ EVE_memWrite16(REG_VSYNC1, EVE_VSYNC1); /* end of vertical sync pulse */
+ EVE_memWrite8(REG_SWIZZLE, EVE_SWIZZLE); /* FT8xx output to LCD - pin order */
+ EVE_memWrite8(REG_PCLK_POL, EVE_PCLKPOL); /* LCD data is clocked in on this PCLK edge */
+ EVE_memWrite8(REG_CSPREAD, EVE_CSPREAD); /* helps with noise, when set to 1 fewer signals are changed simultaneously, reset-default: 1 */
+
+ /* configure Touch */
+ EVE_memWrite8(REG_TOUCH_MODE, EVE_TMODE_CONTINUOUS); /* enable touch */
+#if defined (EVE_TOUCH_RZTHRESH)
+ EVE_memWrite16(REG_TOUCH_RZTHRESH, EVE_TOUCH_RZTHRESH); /* configure the sensitivity of resistive touch */
+#else
+ EVE_memWrite16(REG_TOUCH_RZTHRESH, 1200U); /* set a reasonable default value if none is given */
+#endif
+
+#if defined (EVE_ROTATE)
+ EVE_memWrite8(REG_ROTATE, EVE_ROTATE & 7U); /* bit0 = invert, bit2 = portrait, bit3 = mirrored */
+ /* reset default value is 0x0 - not inverted, landscape, not mirrored */
+#endif
+}
+
+static void enable_pixel_clock(void)
+{
+ EVE_memWrite8(REG_GPIO, 0x80U); /* enable the DISP signal to the LCD panel, it is set to output in REG_GPIO_DIR by default */
+
+#if (EVE_GEN > 3) && (defined EVE_PCLK_FREQ)
+ EVE_memWrite16(REG_PCLK_FREQ, (uint16_t) EVE_PCLK_FREQ);
+
+#if defined (EVE_SET_REG_PCLK_2X)
+ EVE_memWrite8(REG_PCLK_2X, 1U);
+#endif
+
+ EVE_memWrite8(REG_PCLK, 1U); /* enable extsync mode */
+#else
+ EVE_memWrite8(REG_PCLK, EVE_PCLK); /* start clocking data to the LCD panel */
+#endif
+}
+
+/**
+ * @brief Initializes EVE according to the selected configuration from EVE_config.h.
+ * @return E_OK in case of success
+ * @note - Has to be executed with the SPI setup to 11 MHz or less as required by FT8xx / BT8xx!
+ * @note - Additional settings can be made through extra macros.
+ * @note - EVE_TOUCH_RZTHRESH - configure the sensitivity of resistive touch, defaults to 1200.
+ * @note - EVE_ROTATE - set the screen rotation: bit0 = invert, bit1 = portrait, bit2 = mirrored.
+ * @note - needs a set of calibration values for the selected rotation since this rotates before calibration!
+ * @note - EVE_BACKLIGHT_FREQ - configure the backlight frequency, default is not writing it which results in 250Hz.
+ * @note - EVE_BACKLIGHT_PWM - configure the backlight pwm, defaults to 0x20 / 25%.
+ */
+uint8_t EVE_init(void)
+{
+ uint8_t ret;
+
+ EVE_pdn_set();
+ DELAY_MS(6U); /* minimum time for power-down is 5ms */
+ EVE_pdn_clear();
+ DELAY_MS(21U); /* minimum time to allow from rising PD_N to first access is 20ms */
+
+#if defined (EVE_GD3X)
+ EVE_cmdWrite(EVE_RST_PULSE,0U); /* reset, only required for warm-start if PowerDown line is not used */
+#endif
+
+ if(EVE_HAS_CRYSTAL) {
+ EVE_cmdWrite(EVE_CLKEXT, 0U); /* setup EVE for external clock */
+ }
+ else {
+ EVE_cmdWrite(EVE_CLKINT, 0U); /* setup EVE for internal clock */
+ }
+
+#if EVE_GEN > 2
+ EVE_cmdWrite(EVE_CLKSEL, 0x46U); /* set clock to 72 MHz */
+#endif
+
+ EVE_cmdWrite(EVE_ACTIVE, 0U); /* start EVE */
+ DELAY_MS(40U); /* give EVE a moment of silence to power up */
+
+ ret = wait_regid();
+ if (E_OK == ret)
+ {
+ ret = wait_reset();
+ if (E_OK == ret)
+ {
+/* tell EVE that we changed the frequency from default to 72MHz for BT8xx */
+#if EVE_GEN > 2
+ EVE_memWrite32(REG_FREQUENCY, 72000000UL);
+#endif
+
+/* we have a display with a Goodix GT911 / GT9271 touch-controller on it,
+ so we patch our FT811 or FT813 according to AN_336 or setup a BT815 / BT817 accordingly */
+ if(EVE_HAS_GT911) {
+ use_gt911();
+ }
+
+#if defined (EVE_ADAM101)
+ EVE_memWrite8(REG_PWM_DUTY, 0x80U); /* turn off backlight for Glyn ADAM101 module, it uses inverted values */
+#else
+ EVE_memWrite8(REG_PWM_DUTY, 0U); /* turn off backlight for any other module */
+#endif
+ EVE_write_display_parameters();
+
+ /* disable Audio for now */
+ EVE_memWrite8(REG_VOL_PB, 0U); /* turn recorded audio volume down, reset-default is 0xff */
+ EVE_memWrite8(REG_VOL_SOUND, 0U); /* turn synthesizer volume down, reset-default is 0xff */
+ EVE_memWrite16(REG_SOUND, EVE_MUTE); /* set synthesizer to mute */
+
+ /* write a basic display-list to get things started */
+ EVE_memWrite32(EVE_RAM_DL, DL_CLEAR_COLOR_RGB);
+ EVE_memWrite32(EVE_RAM_DL + 4U, (DL_CLEAR | CLR_COL | CLR_STN | CLR_TAG));
+ EVE_memWrite32(EVE_RAM_DL + 8U, DL_DISPLAY); /* end of display list */
+ EVE_memWrite32(REG_DLSWAP, EVE_DLSWAP_FRAME);
+ /* nothing is being displayed yet... the pixel clock is still 0x00 */
+
+#if defined (EVE_GD3X)
+ EVE_memWrite16(REG_OUTBITS,0x01B6U); /* the GD3X is only using 6 bits per color */
+#endif
+
+ enable_pixel_clock();
+
+ EVE_memWrite16(REG_PWM_HZ, EVE_BACKLIGHT_FREQ); /* set backlight frequency to configured value */
+
+ EVE_memWrite8(REG_PWM_DUTY, EVE_BACKLIGHT_PWM); /* set backlight pwm to user requested level */
+ DELAY_MS(1U);
+ EVE_execute_cmd(); /* just to be safe, wait for EVE to not be busy */
+
+#if defined (EVE_DMA)
+ EVE_init_dma(); /* prepare DMA */
+#endif
+ }
+ }
+
+ return (ret);
+}
+
+/* ##################################################################
+ functions for display lists
+##################################################################### */
+
+/**
+ * @brief Begin a sequence of commands or prepare a DMA transfer if applicable.
+ * @note - Needs to be used with EVE_end_cmd_burst().
+ * @note - Do not use any functions in the sequence that do not address the command-fifo as for example any of EVE_mem...() functions.
+ * @note - Do not use any of the functions that do not support burst-mode.
+ */
+void EVE_start_cmd_burst(void)
+{
+#if defined (EVE_DMA)
+ if (EVE_dma_busy)
+ {
+ EVE_execute_cmd(); /* this is a safe-guard to protect segmented display-list building with DMA from overlapping */
+ }
+#endif
+
+ cmd_burst = 42U;
+
+#if defined (EVE_DMA)
+ EVE_dma_buffer[0U] = 0x7825B000UL; /* REG_CMDB_WRITE + MEM_WRITE low mid hi 00 */
+// ((uint8_t) (ft_address >> 16U) | MEM_WRITE) | (ft_address & 0x0000ff00UL) | ((uint8_t) (ft_address) << 16U);
+// EVE_dma_buffer[0U] = EVE_dma_buffer[0U] << 8U;
+ EVE_dma_buffer_index = 1U;
+#else
+ EVE_cs_set();
+ spi_transmit((uint8_t) 0xB0U); /* high-byte of REG_CMDB_WRITE + MEM_WRITE */
+ spi_transmit((uint8_t) 0x25U); /* middle-byte of REG_CMDB_WRITE */
+ spi_transmit((uint8_t) 0x78U); /* low-byte of REG_CMDB_WRITE */
+#endif
+}
+
+/**
+ * @brief End a sequence of commands or trigger a prepared DMA transfer if applicable.
+ * @note - Needs to be used with EVE_start_cmd_burst().
+ */
+void EVE_end_cmd_burst(void)
+{
+ cmd_burst = 0U;
+
+#if defined (EVE_DMA)
+ EVE_start_dma_transfer(); /* begin DMA transfer */
+#else
+ EVE_cs_clear();
+#endif
+}
+
+/* write a string to coprocessor memory in context of a command: */
+/* no chip-select, just plain SPI-transfers */
+static void private_string_write(const char *p_text)
+{
+ /* treat the array as bunch of bytes */
+ const uint8_t *const p_bytes = (const uint8_t *)p_text;
+
+ if (0U == cmd_burst)
+ {
+ uint8_t textindex = 0U;
+ uint8_t padding;
+
+ /* either leave on Zero or when the string is too long */
+ while ((textindex < 249U) && (p_bytes[textindex] != 0U))
+ {
+ spi_transmit(p_bytes[textindex]);
+ textindex++;
+ }
+
+ /* transmit at least one 0x00 byte */
+ /* and up to four if the string happens to be 4-byte aligned already */
+ padding = textindex & 3U; /* 0, 1, 2 or 3 */
+ padding = 4U - padding; /* 4, 3, 2 or 1 */
+
+ while (padding > 0U)
+ {
+ spi_transmit(0U);
+ padding--;
+ }
+ }
+ else /* we are in burst mode, so every transfer is 32 bits */
+ {
+ for (uint8_t textindex = 0U; textindex < 249U; textindex += 4U)
+ {
+ uint32_t calc = 0U;
+
+ for (uint8_t index = 0U; index < 4U; index++)
+ {
+ uint8_t data;
+
+ data = p_bytes[textindex + index];
+
+ if (0U == data)
+ {
+ spi_transmit_burst(calc);
+ return; /* MISRA 2012 rule 15.5 (advisory) violation */
+ }
+
+ calc += ((uint32_t)data) << (index * 8U);
+ }
+
+ spi_transmit_burst(calc);
+ }
+
+ spi_transmit_burst(0U); /* executed when the line is too long */
+ }
+}
+
+/* BT817 / BT818 */
+#if EVE_GEN > 3
+
+/**
+ * @brief Render one frame in RAM_G of an animation.
+ */
+void EVE_cmd_animframeram(int16_t xc0, int16_t yc0, uint32_t aoptr, uint32_t frame)
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_ANIMFRAMERAM);
+ spi_transmit((uint8_t) ((uint16_t) xc0));
+ spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U));
+ spi_transmit((uint8_t) ((uint16_t) yc0));
+ spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U));
+ spi_transmit_32(aoptr);
+ spi_transmit_32(frame);
+ EVE_cs_clear();
+ }
+ else
+ {
+ spi_transmit_burst(CMD_ANIMFRAMERAM);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U));
+ spi_transmit_burst(aoptr);
+ spi_transmit_burst(frame);
+ }
+}
+
+/**
+ * @brief Render one frame in RAM_G of an animation, only works in burst-mode.
+ */
+void EVE_cmd_animframeram_burst(int16_t xc0, int16_t yc0, uint32_t aoptr,
+ uint32_t frame)
+{
+ spi_transmit_burst(CMD_ANIMFRAMERAM);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U));
+ spi_transmit_burst(aoptr);
+ spi_transmit_burst(frame);
+}
+
+/**
+ * @brief Start an animation in RAM_G.
+ */
+void EVE_cmd_animstartram(int32_t chnl, uint32_t aoptr, uint32_t loop)
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_ANIMSTARTRAM);
+ spi_transmit_32((uint32_t) chnl);
+ spi_transmit_32(aoptr);
+ spi_transmit_32(loop);
+ EVE_cs_clear();
+ }
+ else
+ {
+ spi_transmit_burst(CMD_ANIMSTARTRAM);
+ spi_transmit_burst((uint32_t) chnl);
+ spi_transmit_burst(aoptr);
+ spi_transmit_burst(loop);
+ }
+}
+
+/**
+ * @brief Start an animation in RAM_G, only works in burst-mode.
+ */
+void EVE_cmd_animstartram_burst(int32_t chnl, uint32_t aoptr, uint32_t loop)
+{
+ spi_transmit_burst(CMD_ANIMSTARTRAM);
+ spi_transmit_burst((uint32_t) chnl);
+ spi_transmit_burst(aoptr);
+ spi_transmit_burst(loop);
+}
+
+/**
+ * @brief Sets the API level used by the coprocessor.
+ */
+void EVE_cmd_apilevel(uint32_t level)
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_APILEVEL);
+ spi_transmit_32(level);
+ EVE_cs_clear();
+ }
+ else
+ {
+ spi_transmit_burst(CMD_APILEVEL);
+ spi_transmit_burst(level);
+ }
+}
+
+/**
+ * @brief Sets the API level used by the coprocessor, only works in burst-mode.
+ */
+void EVE_cmd_apilevel_burst(uint32_t level)
+{
+ spi_transmit_burst(CMD_APILEVEL);
+ spi_transmit_burst(level);
+}
+
+/**
+ * @brief Execute the touch screen calibration routine for a sub-window.
+ * @note - Does not support burst-mode.
+ */
+void EVE_cmd_calibratesub(uint16_t xc0, uint16_t yc0, uint16_t width, uint16_t height)
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_CALIBRATESUB);
+ spi_transmit((uint8_t) ((uint16_t) xc0));
+ spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U));
+ spi_transmit((uint8_t) ((uint16_t) yc0));
+ spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U));
+ spi_transmit((uint8_t) (width));
+ spi_transmit((uint8_t) (width >> 8U));
+ spi_transmit((uint8_t) (height));
+ spi_transmit((uint8_t) (height >> 8U));
+ EVE_cs_clear();
+ }
+}
+
+/**
+ * @brief Calls a command list in RAM_G.
+ */
+void EVE_cmd_calllist(uint32_t adr)
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_CALLLIST);
+ spi_transmit_32(adr);
+ EVE_cs_clear();
+ }
+ else
+ {
+ spi_transmit_burst(CMD_CALLLIST);
+ spi_transmit_burst(adr);
+ }
+}
+
+/**
+ * @brief Calls a command list in RAM_G, only works in burst-mode.
+ */
+void EVE_cmd_calllist_burst(uint32_t adr)
+{
+ spi_transmit_burst(CMD_CALLLIST);
+ spi_transmit_burst(adr);
+}
+
+/**
+ * @brief Setup the Horizontal Scan out Filter for non-square pixel LCD support.
+ * @note - Does not support burst-mode.
+ */
+void EVE_cmd_hsf(uint32_t hsf)
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_HSF);
+ spi_transmit_32(hsf);
+ EVE_cs_clear();
+ }
+}
+
+/**
+ * @brief Play/run animations until complete.
+ */
+void EVE_cmd_runanim(uint32_t waitmask, uint32_t play)
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_RUNANIM);
+ spi_transmit_32(waitmask);
+ spi_transmit_32(play);
+ EVE_cs_clear();
+ }
+ else
+ {
+ spi_transmit_burst(CMD_RUNANIM);
+ spi_transmit_burst(waitmask);
+ spi_transmit_burst(play);
+ }
+}
+
+/**
+ * @brief Play/run animations until complete, only works in burst-mode.
+ */
+void EVE_cmd_runanim_burst(uint32_t waitmask, uint32_t play)
+{
+ spi_transmit_burst(CMD_RUNANIM);
+ spi_transmit_burst(waitmask);
+ spi_transmit_burst(play);
+}
+
+#endif /* EVE_GEN > 3 */
+
+/* BT815 / BT816 */
+#if EVE_GEN > 2
+
+/**
+ * @brief Draw one or more active animations.
+ */
+void EVE_cmd_animdraw(int32_t chnl)
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_ANIMDRAW);
+ spi_transmit_32((uint32_t) chnl);
+ EVE_cs_clear();
+ }
+ else
+ {
+ spi_transmit_burst(CMD_ANIMDRAW);
+ spi_transmit_burst((uint32_t) chnl);
+ }
+}
+
+/**
+ * @brief Draw one or more active animations, only works in burst-mode.
+ */
+void EVE_cmd_animdraw_burst(int32_t chnl)
+{
+ spi_transmit_burst(CMD_ANIMDRAW);
+ spi_transmit_burst((uint32_t) chnl);
+}
+
+/**
+ * @brief Draw the specified frame of an animation.
+ */
+void EVE_cmd_animframe(int16_t xc0, int16_t yc0, uint32_t aoptr, uint32_t frame)
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_ANIMFRAME);
+ spi_transmit((uint8_t) ((uint16_t) xc0));
+ spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U));
+ spi_transmit((uint8_t) ((uint16_t) yc0));
+ spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U));
+ spi_transmit_32(aoptr);
+ spi_transmit_32(frame);
+ EVE_cs_clear();
+ }
+ else
+ {
+ spi_transmit_burst(CMD_ANIMFRAME);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U));
+ spi_transmit_burst(aoptr);
+ spi_transmit_burst(frame);
+ }
+}
+
+/**
+ * @brief Draw the specified frame of an animation, only works in burst-mode.
+ */
+void EVE_cmd_animframe_burst(int16_t xc0, int16_t yc0, uint32_t aoptr,
+ uint32_t frame)
+{
+ spi_transmit_burst(CMD_ANIMFRAME);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U));
+ spi_transmit_burst(aoptr);
+ spi_transmit_burst(frame);
+}
+
+/**
+ * @brief Start an animation.
+ */
+void EVE_cmd_animstart(int32_t chnl, uint32_t aoptr, uint32_t loop)
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_ANIMSTART);
+ spi_transmit_32((uint32_t) chnl);
+ spi_transmit_32(aoptr);
+ spi_transmit_32(loop);
+ EVE_cs_clear();
+ }
+ else
+ {
+ spi_transmit_burst(CMD_ANIMSTART);
+ spi_transmit_burst((uint32_t) chnl);
+ spi_transmit_burst(aoptr);
+ spi_transmit_burst(loop);
+ }
+}
+
+/**
+ * @brief Start an animation, only works in burst-mode.
+ */
+void EVE_cmd_animstart_burst(int32_t chnl, uint32_t aoptr, uint32_t loop)
+{
+ spi_transmit_burst(CMD_ANIMSTART);
+ spi_transmit_burst((uint32_t) chnl);
+ spi_transmit_burst(aoptr);
+ spi_transmit_burst(loop);
+}
+
+/**
+ * @brief Stops one or more active animations.
+ */
+void EVE_cmd_animstop(int32_t chnl)
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_ANIMSTOP);
+ spi_transmit_32((uint32_t) chnl);
+ EVE_cs_clear();
+ }
+ else
+ {
+ spi_transmit_burst(CMD_ANIMSTOP);
+ spi_transmit_burst((uint32_t) chnl);
+ }
+}
+
+/**
+ * @brief Stops one or more active animations, only works in burst-mode.
+ */
+void EVE_cmd_animstop_burst(int32_t chnl)
+{
+ spi_transmit_burst(CMD_ANIMSTOP);
+ spi_transmit_burst((uint32_t) chnl);
+}
+
+/**
+ * @brief Sets the coordinates of an animation.
+ */
+void EVE_cmd_animxy(int32_t chnl, int16_t xc0, int16_t yc0)
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_ANIMXY);
+ spi_transmit_32((uint32_t) chnl);
+ spi_transmit((uint8_t) ((uint16_t) xc0));
+ spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U));
+ spi_transmit((uint8_t) ((uint16_t) yc0));
+ spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U));
+ EVE_cs_clear();
+ }
+ else
+ {
+ spi_transmit_burst(CMD_ANIMXY);
+ spi_transmit_burst((uint32_t) chnl);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U));
+ }
+}
+
+/**
+ * @brief Sets the coordinates of an animation, only works in burst-mode.
+ */
+void EVE_cmd_animxy_burst(int32_t chnl, int16_t xc0, int16_t yc0)
+{
+ spi_transmit_burst(CMD_ANIMXY);
+ spi_transmit_burst((uint32_t) chnl);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U));
+}
+
+/**
+ * @brief Append flash data to the display list.
+ */
+void EVE_cmd_appendf(uint32_t ptr, uint32_t num)
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_APPENDF);
+ spi_transmit_32(ptr);
+ spi_transmit_32(num);
+ EVE_cs_clear();
+ }
+ else
+ {
+ spi_transmit_burst(CMD_APPENDF);
+ spi_transmit_burst(ptr);
+ spi_transmit_burst(num);
+ }
+}
+
+/**
+ * @brief Append flash data to the display list, only works in burst-mode.
+ */
+void EVE_cmd_appendf_burst(uint32_t ptr, uint32_t num)
+{
+ spi_transmit_burst(CMD_APPENDF);
+ spi_transmit_burst(ptr);
+ spi_transmit_burst(num);
+}
+
+/**
+ * @brief Computes a bitmap transform and appends commands BITMAP_TRANSFORM_A...BITMAP_TRANSFORM_F to the display list.
+ */
+uint16_t EVE_cmd_bitmap_transform(int32_t xc0, int32_t yc0, int32_t xc1,
+ int32_t yc1, int32_t xc2, int32_t yc2,
+ int32_t tx0, int32_t ty0, int32_t tx1,
+ int32_t ty1, int32_t tx2, int32_t ty2)
+{
+ uint16_t ret_val = 0U;
+
+ if (0U == cmd_burst)
+ {
+ uint16_t cmdoffset;
+
+ eve_begin_cmd(CMD_BITMAP_TRANSFORM);
+ spi_transmit_32((uint32_t) xc0);
+ spi_transmit_32((uint32_t) yc0);
+ spi_transmit_32((uint32_t) xc1);
+ spi_transmit_32((uint32_t) yc1);
+ spi_transmit_32((uint32_t) xc2);
+ spi_transmit_32((uint32_t) yc2);
+ spi_transmit_32((uint32_t) tx0);
+ spi_transmit_32((uint32_t) ty0);
+ spi_transmit_32((uint32_t) tx1);
+ spi_transmit_32((uint32_t) ty1);
+ spi_transmit_32((uint32_t) tx2);
+ spi_transmit_32((uint32_t) ty2);
+ spi_transmit_32(0UL);
+ EVE_cs_clear();
+ EVE_execute_cmd();
+ cmdoffset = EVE_memRead16(REG_CMD_WRITE);
+ cmdoffset -= 4U;
+ cmdoffset &= 0x0fffU;
+ ret_val = (uint16_t) EVE_memRead32(EVE_RAM_CMD + cmdoffset);
+ }
+ else /* note: the result parameter is ignored in burst mode */
+ {
+ spi_transmit_burst(CMD_BITMAP_TRANSFORM);
+ spi_transmit_burst((uint32_t) xc0);
+ spi_transmit_burst((uint32_t) yc0);
+ spi_transmit_burst((uint32_t) xc1);
+ spi_transmit_burst((uint32_t) yc1);
+ spi_transmit_burst((uint32_t) xc2);
+ spi_transmit_burst((uint32_t) yc2);
+ spi_transmit_burst((uint32_t) tx0);
+ spi_transmit_burst((uint32_t) ty0);
+ spi_transmit_burst((uint32_t) tx1);
+ spi_transmit_burst((uint32_t) ty1);
+ spi_transmit_burst((uint32_t) tx2);
+ spi_transmit_burst((uint32_t) ty2);
+ spi_transmit_burst(0UL);
+ }
+ return (ret_val);
+}
+
+/**
+ * @brief Computes a bitmap transform and appends commands BITMAP_TRANSFORM_A...BITMAP_TRANSFORM_F to the display list.
+ * @note - Only works in burst-mode, the result parameter is ignored.
+ */
+void EVE_cmd_bitmap_transform_burst(int32_t xc0, int32_t yc0, int32_t xc1,
+ int32_t yc1, int32_t xc2, int32_t yc2,
+ int32_t tx0, int32_t ty0, int32_t tx1,
+ int32_t ty1, int32_t tx2, int32_t ty2)
+{
+ spi_transmit_burst(CMD_BITMAP_TRANSFORM);
+ spi_transmit_burst((uint32_t) xc0);
+ spi_transmit_burst((uint32_t) yc0);
+ spi_transmit_burst((uint32_t) xc1);
+ spi_transmit_burst((uint32_t) yc1);
+ spi_transmit_burst((uint32_t) xc2);
+ spi_transmit_burst((uint32_t) yc2);
+ spi_transmit_burst((uint32_t) tx0);
+ spi_transmit_burst((uint32_t) ty0);
+ spi_transmit_burst((uint32_t) tx1);
+ spi_transmit_burst((uint32_t) ty1);
+ spi_transmit_burst((uint32_t) tx2);
+ spi_transmit_burst((uint32_t) ty2);
+ spi_transmit_burst(0UL);
+}
+
+/**
+ * @brief Sets the pixel fill width for CMD_TEXT,CMD_BUTTON,CMD_BUTTON with the OPT_FILL option.
+ */
+void EVE_cmd_fillwidth(uint32_t pixel)
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_FILLWIDTH);
+ spi_transmit_32(pixel);
+ EVE_cs_clear();
+ }
+ else
+ {
+ spi_transmit_burst(CMD_FILLWIDTH);
+ spi_transmit_burst(pixel);
+ }
+}
+
+/**
+ * @brief Sets the pixel fill width for CMD_TEXT,CMD_BUTTON,CMD_BUTTON with the OPT_FILL option.
+ * @note - Only works in burst-mode.
+ */
+void EVE_cmd_fillwidth_burst(uint32_t pixel)
+{
+ spi_transmit_burst(CMD_FILLWIDTH);
+ spi_transmit_burst(pixel);
+}
+
+/**
+ * @brief Draw a smooth color gradient with transparency.
+ */
+void EVE_cmd_gradienta(int16_t xc0, int16_t yc0, uint32_t argb0, int16_t xc1, int16_t yc1, uint32_t argb1)
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_GRADIENTA);
+ spi_transmit((uint8_t) ((uint16_t) xc0));
+ spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U));
+ spi_transmit((uint8_t) ((uint16_t) yc0));
+ spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U));
+ spi_transmit_32(argb0);
+ spi_transmit((uint8_t) ((uint16_t) xc1));
+ spi_transmit((uint8_t) (((uint16_t) xc1) >> 8U));
+ spi_transmit((uint8_t) ((uint16_t) yc1));
+ spi_transmit((uint8_t) (((uint16_t) yc1) >> 8U));
+ spi_transmit_32(argb1);
+ EVE_cs_clear();
+ }
+ else
+ {
+ spi_transmit_burst(CMD_GRADIENTA);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U));
+ spi_transmit_burst(argb0);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc1)) + (((uint32_t) ((uint16_t) yc1)) << 16U));
+ spi_transmit_burst(argb1);
+ }
+}
+
+/**
+ * @brief Draw a smooth color gradient with transparency, only works in burst-mode.
+ */
+void EVE_cmd_gradienta_burst(int16_t xc0, int16_t yc0, uint32_t argb0, int16_t xc1, int16_t yc1, uint32_t argb1)
+{
+ spi_transmit_burst(CMD_GRADIENTA);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U));
+ spi_transmit_burst(argb0);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc1)) + (((uint32_t) ((uint16_t) yc1)) << 16U));
+ spi_transmit_burst(argb1);
+}
+
+/**
+ * @brief Apply a rotation and scale around a specified coordinate.
+ */
+void EVE_cmd_rotatearound(int32_t xc0, int32_t yc0, uint32_t angle, int32_t scale)
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_ROTATEAROUND);
+ spi_transmit_32((uint32_t) xc0);
+ spi_transmit_32((uint32_t) yc0);
+ spi_transmit_32(angle & 0xFFFFUL);
+ spi_transmit_32((uint32_t) scale);
+ EVE_cs_clear();
+ }
+ else
+ {
+ spi_transmit_burst(CMD_ROTATEAROUND);
+ spi_transmit_burst((uint32_t) xc0);
+ spi_transmit_burst((uint32_t) yc0);
+ spi_transmit_burst(angle & 0xFFFFUL);
+ spi_transmit_burst((uint32_t) scale);
+ }
+}
+
+/**
+ * @brief Apply a rotation and scale around a specified coordinate, only works in burst-mode.
+ */
+void EVE_cmd_rotatearound_burst(int32_t xc0, int32_t yc0, uint32_t angle,
+ int32_t scale)
+{
+ spi_transmit_burst(CMD_ROTATEAROUND);
+ spi_transmit_burst((uint32_t) xc0);
+ spi_transmit_burst((uint32_t) yc0);
+ spi_transmit_burst(angle & 0xFFFFUL);
+ spi_transmit_burst((uint32_t) scale);
+}
+
+/**
+ * @brief Draw a button with a label, varargs version.
+ * @param p_arguments[] pointer to an array of values converted to uint32_t to be used when using EVE_OPT_FORMAT
+ * @param num_args the number of elements provided in p_arguments[]
+ */
+void EVE_cmd_button_var(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt,
+ uint16_t font, uint16_t options, const char *p_text,
+ uint8_t num_args, const uint32_t p_arguments[])
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_BUTTON);
+ spi_transmit((uint8_t) ((uint16_t) xc0));
+ spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U));
+ spi_transmit((uint8_t) ((uint16_t) yc0));
+ spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U));
+ spi_transmit((uint8_t) (wid));
+ spi_transmit((uint8_t) (wid >> 8U));
+ spi_transmit((uint8_t) (hgt));
+ spi_transmit((uint8_t) (hgt >> 8U));
+ spi_transmit((uint8_t) (font));
+ spi_transmit((uint8_t) (font >> 8U));
+ spi_transmit((uint8_t) (options));
+ spi_transmit((uint8_t) (options >> 8U));
+ private_string_write(p_text);
+
+ if ((options & EVE_OPT_FORMAT) != 0U)
+ {
+ if (p_arguments != NULL)
+ {
+ for (uint8_t counter = 0U; counter < num_args; counter++)
+ {
+ spi_transmit_32(p_arguments[counter]);
+ }
+ }
+ }
+ EVE_cs_clear();
+ }
+ else
+ {
+ spi_transmit_burst(CMD_BUTTON);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U));
+ spi_transmit_burst(((uint32_t) wid) + ((uint32_t) hgt << 16U));
+ spi_transmit_burst(((uint32_t) font) + ((uint32_t) options << 16U));
+ private_string_write(p_text);
+
+ if ((options & EVE_OPT_FORMAT) != 0U)
+ {
+ if (p_arguments != NULL)
+ {
+ for (uint8_t counter = 0U; counter < num_args; counter++)
+ {
+ spi_transmit_burst(p_arguments[counter]);
+ }
+ }
+ }
+ }
+}
+
+/**
+ * @brief Draw a button with a label, varargs version, only works in burst-mode.
+ * @param p_arguments[] pointer to an array of values converted to uint32_t to be used when using EVE_OPT_FORMAT
+ * @param num_args the number of elements provided in p_arguments[]
+ */
+void EVE_cmd_button_var_burst(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt,
+ uint16_t font, uint16_t options, const char *p_text,
+ uint8_t num_args, const uint32_t p_arguments[])
+{
+ spi_transmit_burst(CMD_BUTTON);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U));
+ spi_transmit_burst(((uint32_t) wid) + ((uint32_t) hgt << 16U));
+ spi_transmit_burst(((uint32_t) font) + ((uint32_t) options << 16U));
+ private_string_write(p_text);
+
+ if ((options & EVE_OPT_FORMAT) != 0U)
+ {
+ if (p_arguments != NULL)
+ {
+ for (uint8_t counter = 0U; counter < num_args; counter++)
+ {
+ spi_transmit_burst(p_arguments[counter]);
+ }
+ }
+ }
+}
+
+/**
+ * @brief Draw a text string, varargs version.
+ * @param p_arguments[] pointer to an array of values converted to uint32_t to be used when using EVE_OPT_FORMAT
+ * @param num_args the number of elements provided in p_arguments[]
+ */
+void EVE_cmd_text_var(int16_t xc0, int16_t yc0, uint16_t font,
+ uint16_t options, const char *p_text,
+ uint8_t num_args, const uint32_t p_arguments[])
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_TEXT);
+ spi_transmit((uint8_t) ((uint16_t) xc0));
+ spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U));
+ spi_transmit((uint8_t) ((uint16_t) yc0));
+ spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U));
+ spi_transmit((uint8_t) (font));
+ spi_transmit((uint8_t) (font >> 8U));
+ spi_transmit((uint8_t) (options));
+ spi_transmit((uint8_t) (options >> 8U));
+ private_string_write(p_text);
+
+ if ((options & EVE_OPT_FORMAT) != 0U)
+ {
+ if (p_arguments != NULL)
+ {
+ for (uint8_t counter = 0U; counter < num_args; counter++)
+ {
+ spi_transmit_32(p_arguments[counter]);
+ }
+ }
+ }
+ EVE_cs_clear();
+ }
+ else
+ {
+ spi_transmit_burst(CMD_TEXT);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U));
+ spi_transmit_burst(((uint32_t) font) + (((uint32_t) options) << 16U));
+ private_string_write(p_text);
+
+ if ((options & EVE_OPT_FORMAT) != 0U)
+ {
+ if (p_arguments != NULL)
+ {
+ for (uint8_t counter = 0U; counter < num_args; counter++)
+ {
+ spi_transmit_burst(p_arguments[counter]);
+ }
+ }
+ }
+ }
+}
+
+/**
+ * @brief Draw a text string, varargs version.
+ * @param p_arguments[] pointer to an array of values converted to uint32_t to be used when using EVE_OPT_FORMAT
+ * @param num_args the number of elements provided in p_arguments[]
+ */
+void EVE_cmd_text_var_burst(int16_t xc0, int16_t yc0, uint16_t font,
+ uint16_t options, const char *p_text,
+ uint8_t num_args, const uint32_t p_arguments[])
+{
+ spi_transmit_burst(CMD_TEXT);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U));
+ spi_transmit_burst(((uint32_t) font) + (((uint32_t) options) << 16U));
+ private_string_write(p_text);
+
+ if ((options & EVE_OPT_FORMAT) != 0U)
+ {
+ if (p_arguments != NULL)
+ {
+ for (uint8_t counter = 0U; counter < num_args; counter++)
+ {
+ spi_transmit_burst(p_arguments[counter]);
+ }
+ }
+ }
+}
+
+/**
+ * @brief Draw a toggle switch with labels, varargs version.
+ * @param p_arguments[] pointer to an array of values converted to uint32_t to be used when using EVE_OPT_FORMAT
+ * @param num_args the number of elements provided in p_arguments[]
+ */
+void EVE_cmd_toggle_var(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t font,
+ uint16_t options, uint16_t state, const char *p_text,
+ uint8_t num_args, const uint32_t p_arguments[])
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_TOGGLE);
+ spi_transmit((uint8_t) ((uint16_t) xc0));
+ spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U));
+ spi_transmit((uint8_t) ((uint16_t) yc0));
+ spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U));
+ spi_transmit((uint8_t) (wid));
+ spi_transmit((uint8_t) (wid >> 8U));
+ spi_transmit((uint8_t) (font));
+ spi_transmit((uint8_t) (font >> 8U));
+ spi_transmit((uint8_t) (options));
+ spi_transmit((uint8_t) (options >> 8U));
+ spi_transmit((uint8_t) (state));
+ spi_transmit((uint8_t) (state >> 8U));
+ private_string_write(p_text);
+
+ if ((options & EVE_OPT_FORMAT) != 0U)
+ {
+ if (p_arguments != NULL)
+ {
+ for (uint8_t counter = 0U; counter < num_args; counter++)
+ {
+ spi_transmit_32(p_arguments[counter]);
+ }
+ }
+ }
+ EVE_cs_clear();
+ }
+ else
+ {
+ spi_transmit_burst(CMD_TOGGLE);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U));
+ spi_transmit_burst(((uint32_t) wid) + (((uint32_t) font) << 16U));
+ spi_transmit_burst(((uint32_t) options) + (((uint32_t) state) << 16U));
+ private_string_write(p_text);
+
+ if ((options & EVE_OPT_FORMAT) != 0U)
+ {
+ if (p_arguments != NULL)
+ {
+ for (uint8_t counter = 0U; counter < num_args; counter++)
+ {
+ spi_transmit_burst(p_arguments[counter]);
+ }
+ }
+ }
+ }
+}
+
+/**
+ * @brief Draw a toggle switch with labels, varargs version, only works in burst-mode.
+ * @param p_arguments[] pointer to an array of values converted to uint32_t to be used when using EVE_OPT_FORMAT
+ * @param num_args the number of elements provided in p_arguments[]
+ */
+void EVE_cmd_toggle_var_burst(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t font,
+ uint16_t options, uint16_t state, const char *p_text,
+ uint8_t num_args, const uint32_t p_arguments[])
+{
+ spi_transmit_burst(CMD_TOGGLE);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U));
+ spi_transmit_burst(((uint32_t) wid) + (((uint32_t) font) << 16U));
+ spi_transmit_burst(((uint32_t) options) + (((uint32_t) state) << 16U));
+ private_string_write(p_text);
+
+ if ((options & EVE_OPT_FORMAT) != 0U)
+ {
+ if (p_arguments != NULL)
+ {
+ for (uint8_t counter = 0U; counter < num_args; counter++)
+ {
+ spi_transmit_burst(p_arguments[counter]);
+ }
+ }
+ }
+}
+
+#endif /* EVE_GEN > 2 */
+
+/**
+ * @brief Generic function for display-list and coprocessor commands with no arguments, only works in burst-mode.
+ * @note - EVE_cmd_dl(CMD_DLSTART);
+ * @note - EVE_cmd_dl(CMD_SWAP);
+ * @note - EVE_cmd_dl(CMD_SCREENSAVER);
+ * @note - EVE_cmd_dl(VERTEX2F(0,0));
+ * @note - EVE_cmd_dl(DL_BEGIN | EVE_RECTS);
+ */
+void EVE_cmd_dl(uint32_t command)
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(command);
+ EVE_cs_clear();
+ }
+ else
+ {
+ spi_transmit_burst(command);
+ }
+}
+
+/**
+ * @brief Generic function for display-list and coprocessor commands with no arguments, only works in burst-mode.
+ */
+void EVE_cmd_dl_burst(uint32_t command)
+{
+ spi_transmit_burst(command);
+}
+
+/**
+ * @brief Appends commands from RAM_G to the display list.
+ */
+void EVE_cmd_append(uint32_t ptr, uint32_t num)
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_APPEND);
+ spi_transmit_32(ptr);
+ spi_transmit_32(num);
+ EVE_cs_clear();
+ }
+ else
+ {
+ spi_transmit_burst(CMD_APPEND);
+ spi_transmit_burst(ptr);
+ spi_transmit_burst(num);
+ }
+}
+
+/**
+ * @brief Appends commands from RAM_G to the display list, only works in burst-mode.
+ */
+void EVE_cmd_append_burst(uint32_t ptr, uint32_t num)
+{
+ spi_transmit_burst(CMD_APPEND);
+ spi_transmit_burst(ptr);
+ spi_transmit_burst(num);
+}
+
+/**
+ * @brief Set the background color.
+ */
+void EVE_cmd_bgcolor(uint32_t color)
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_BGCOLOR);
+ spi_transmit((uint8_t) (color));
+ spi_transmit((uint8_t) (color >> 8U));
+ spi_transmit((uint8_t) (color >> 16U));
+ spi_transmit(0U);
+ EVE_cs_clear();
+ }
+ else
+ {
+ spi_transmit_burst(CMD_BGCOLOR);
+ spi_transmit_burst(color);
+ }
+}
+
+/**
+ * @brief Set the background color, only works in burst-mode.
+ */
+void EVE_cmd_bgcolor_burst(uint32_t color)
+{
+ spi_transmit_burst(CMD_BGCOLOR);
+ spi_transmit_burst(color);
+}
+
+/**
+ * @brief Draw a button with a label.
+ */
+void EVE_cmd_button(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt,
+ uint16_t font, uint16_t options, const char *p_text)
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_BUTTON);
+ spi_transmit((uint8_t) ((uint16_t) xc0));
+ spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U));
+ spi_transmit((uint8_t) ((uint16_t) yc0));
+ spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U));
+ spi_transmit((uint8_t) (wid));
+ spi_transmit((uint8_t) (wid >> 8U));
+ spi_transmit((uint8_t) (hgt));
+ spi_transmit((uint8_t) (hgt >> 8U));
+ spi_transmit((uint8_t) (font));
+ spi_transmit((uint8_t) (font >> 8U));
+ spi_transmit((uint8_t) (options));
+ spi_transmit((uint8_t) (options >> 8U));
+ private_string_write(p_text);
+ EVE_cs_clear();
+ }
+ else
+ {
+ spi_transmit_burst(CMD_BUTTON);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U));
+ spi_transmit_burst(((uint32_t) wid) + (((uint32_t) hgt) << 16U));
+ spi_transmit_burst(((uint32_t) font) + (((uint32_t) options) << 16U));
+ private_string_write(p_text);
+ }
+}
+
+/**
+ * @brief Draw a button with a label, only works in burst-mode.
+ */
+void EVE_cmd_button_burst(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt,
+ uint16_t font, uint16_t options, const char *p_text)
+{
+ spi_transmit_burst(CMD_BUTTON);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U));
+ spi_transmit_burst(((uint32_t) wid) + (((uint32_t) hgt) << 16U));
+ spi_transmit_burst(((uint32_t) font) + (((uint32_t) options) << 16U));
+ private_string_write(p_text);
+}
+
+/**
+ * @brief Execute the touch screen calibration routine.
+ * @note - does not support burst-mode
+ */
+void EVE_cmd_calibrate(void)
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_CALIBRATE);
+ spi_transmit_32(0UL);
+ EVE_cs_clear();
+ }
+}
+
+/**
+ * @brief Draw an analog clock.
+ */
+void EVE_cmd_clock(int16_t xc0, int16_t yc0, uint16_t rad, uint16_t options,
+ uint16_t hours, uint16_t mins, uint16_t secs, uint16_t msecs)
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_CLOCK);
+ spi_transmit((uint8_t) ((uint16_t) xc0));
+ spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U));
+ spi_transmit((uint8_t) ((uint16_t) yc0));
+ spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U));
+ spi_transmit((uint8_t) (rad));
+ spi_transmit((uint8_t) (rad >> 8U));
+ spi_transmit((uint8_t) (options));
+ spi_transmit((uint8_t) (options >> 8U));
+ spi_transmit((uint8_t) (hours));
+ spi_transmit((uint8_t) (hours >> 8U));
+ spi_transmit((uint8_t) (mins));
+ spi_transmit((uint8_t) (mins >> 8U));
+ spi_transmit((uint8_t) (secs));
+ spi_transmit((uint8_t) (secs >> 8U));
+ spi_transmit((uint8_t) (msecs));
+ spi_transmit((uint8_t) (msecs >> 8U));
+ EVE_cs_clear();
+ }
+ else
+ {
+ spi_transmit_burst(CMD_CLOCK);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U));
+ spi_transmit_burst(((uint32_t) rad) + (((uint32_t) options) << 16U));
+ spi_transmit_burst(((uint32_t) hours) + (((uint32_t) mins) << 16U));
+ spi_transmit_burst(((uint32_t) secs) + (((uint32_t) msecs) << 16U));
+ }
+}
+
+/**
+ * @brief Draw an analog clock, only works in burst-mode.
+ */
+void EVE_cmd_clock_burst(int16_t xc0, int16_t yc0, uint16_t rad, uint16_t options, uint16_t hours,
+ uint16_t mins, uint16_t secs, uint16_t msecs)
+{
+ spi_transmit_burst(CMD_CLOCK);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U));
+ spi_transmit_burst(((uint32_t) rad) + (((uint32_t) options) << 16U));
+ spi_transmit_burst(((uint32_t) hours) + (((uint32_t) mins) << 16U));
+ spi_transmit_burst(((uint32_t) secs) + (((uint32_t) msecs) << 16U));
+}
+
+/**
+ * @brief Draw a rotary dial control.
+ */
+void EVE_cmd_dial(int16_t xc0, int16_t yc0, uint16_t rad, uint16_t options, uint16_t val)
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_DIAL);
+ spi_transmit((uint8_t) ((uint16_t) xc0));
+ spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U));
+ spi_transmit((uint8_t) ((uint16_t) yc0));
+ spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U));
+ spi_transmit((uint8_t) (rad));
+ spi_transmit((uint8_t) (rad >> 8U));
+ spi_transmit((uint8_t) (options));
+ spi_transmit((uint8_t) (options >> 8U));
+ spi_transmit((uint8_t) (val));
+ spi_transmit((uint8_t) (val >> 8U));
+ spi_transmit(0U);
+ spi_transmit(0U);
+ EVE_cs_clear();
+ }
+ else
+ {
+ spi_transmit_burst(CMD_DIAL);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U));
+ spi_transmit_burst(((uint32_t) rad) + (((uint32_t) options) << 16U));
+ spi_transmit_burst(val);
+ }
+}
+
+/**
+ * @brief Draw a rotary dial control, only works in burst-mode.
+ */
+void EVE_cmd_dial_burst(int16_t xc0, int16_t yc0, uint16_t rad, uint16_t options,
+ uint16_t val)
+{
+ spi_transmit_burst(CMD_DIAL);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U));
+ spi_transmit_burst(((uint32_t) rad) + (((uint32_t) options) << 16U));
+ spi_transmit_burst(val);
+}
+
+/**
+ * @brief Set the foreground color.
+ */
+void EVE_cmd_fgcolor(uint32_t color)
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_FGCOLOR);
+ spi_transmit((uint8_t) (color));
+ spi_transmit((uint8_t) (color >> 8U));
+ spi_transmit((uint8_t) (color >> 16U));
+ spi_transmit(0U);
+ EVE_cs_clear();
+ }
+ else
+ {
+ spi_transmit_burst(CMD_FGCOLOR);
+ spi_transmit_burst(color);
+ }
+}
+
+/**
+ * @brief Set the foreground color, only works in burst-mode.
+ */
+void EVE_cmd_fgcolor_burst(uint32_t color)
+{
+ spi_transmit_burst(CMD_FGCOLOR);
+ spi_transmit_burst(color);
+}
+
+/**
+ * @brief Draw a gauge.
+ */
+void EVE_cmd_gauge(int16_t xc0, int16_t yc0, uint16_t rad, uint16_t options,
+ uint16_t major, uint16_t minor, uint16_t val, uint16_t range)
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_GAUGE);
+ spi_transmit((uint8_t) ((uint16_t) xc0));
+ spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U));
+ spi_transmit((uint8_t) ((uint16_t) yc0));
+ spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U));
+ spi_transmit((uint8_t) (rad));
+ spi_transmit((uint8_t) (rad >> 8U));
+ spi_transmit((uint8_t) (options));
+ spi_transmit((uint8_t) (options >> 8U));
+ spi_transmit((uint8_t) (major));
+ spi_transmit((uint8_t) (major >> 8U));
+ spi_transmit((uint8_t) (minor));
+ spi_transmit((uint8_t) (minor >> 8U));
+ spi_transmit((uint8_t) (val));
+ spi_transmit((uint8_t) (val >> 8U));
+ spi_transmit((uint8_t) (range));
+ spi_transmit((uint8_t) (range >> 8U));
+ EVE_cs_clear();
+ }
+ else
+ {
+ spi_transmit_burst(CMD_GAUGE);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U));
+ spi_transmit_burst(((uint32_t) rad) + (((uint32_t) options) << 16U));
+ spi_transmit_burst(((uint32_t) major) + (((uint32_t) minor) << 16U));
+ spi_transmit_burst(((uint32_t) val) + (((uint32_t) range) << 16U));
+ }
+}
+
+/**
+ * @brief Draw a gauge, only works in burst-mode.
+ */
+void EVE_cmd_gauge_burst(int16_t xc0, int16_t yc0, uint16_t rad, uint16_t options,
+ uint16_t major, uint16_t minor, uint16_t val, uint16_t range)
+{
+ spi_transmit_burst(CMD_GAUGE);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U));
+ spi_transmit_burst(((uint32_t) rad) + (((uint32_t) options) << 16U));
+ spi_transmit_burst(((uint32_t) major) + (((uint32_t) minor) << 16U));
+ spi_transmit_burst(((uint32_t) val) + (((uint32_t) range) << 16U));
+}
+
+/**
+ * @brief Retrieves the current matrix within the context of the coprocessor engine.
+ * @note - waits for completion and reads values from RAM_CMD after completion
+ * @note - can not be used with cmd-burst
+ */
+void EVE_cmd_getmatrix(int32_t *p_a, int32_t *p_b, int32_t *p_c,
+ int32_t *p_d, int32_t *p_e, int32_t *p_f)
+{
+ if (0U == cmd_burst)
+ {
+ uint16_t cmdoffset;
+ uint32_t address;
+
+ eve_begin_cmd(CMD_GETMATRIX);
+ spi_transmit_32(0UL);
+ spi_transmit_32(0UL);
+ spi_transmit_32(0UL);
+ spi_transmit_32(0UL);
+ spi_transmit_32(0UL);
+ spi_transmit_32(0UL);
+ EVE_cs_clear();
+ EVE_execute_cmd();
+ cmdoffset = EVE_memRead16(REG_CMD_WRITE);
+
+ if (p_f != NULL)
+ {
+ address = EVE_RAM_CMD + ((cmdoffset - 4UL) & 0xfffUL);
+ *p_f = (int32_t) EVE_memRead32(address);
+ }
+ if (p_e != NULL)
+ {
+ address = EVE_RAM_CMD + ((cmdoffset - 8UL) & 0xfffUL);
+ *p_e = (int32_t) EVE_memRead32(address);
+ }
+ if (p_d != NULL)
+ {
+ address = EVE_RAM_CMD + ((cmdoffset - 12UL) & 0xfffUL);
+ *p_d = (int32_t) EVE_memRead32(address);
+ }
+ if (p_c != NULL)
+ {
+ address = EVE_RAM_CMD + ((cmdoffset - 16UL) & 0xfffUL);
+ *p_c = (int32_t) EVE_memRead32(address);
+ }
+ if (p_b != NULL)
+ {
+ address = EVE_RAM_CMD + ((cmdoffset - 20UL) & 0xfffUL);
+ *p_b = (int32_t) EVE_memRead32(address);
+ }
+ if (p_a != NULL)
+ {
+ address = EVE_RAM_CMD + ((cmdoffset - 24UL) & 0xfffUL);
+ *p_a = (int32_t) EVE_memRead32(address);
+ }
+ }
+}
+
+/**
+ * @brief Set up the highlight color used in 3D effects for CMD_BUTTON and CMD_KEYS.
+ */
+void EVE_cmd_gradcolor(uint32_t color)
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_GRADCOLOR);
+ spi_transmit((uint8_t) (color));
+ spi_transmit((uint8_t) (color >> 8U));
+ spi_transmit((uint8_t) (color >> 16U));
+ spi_transmit(0U);
+ EVE_cs_clear();
+ }
+ else
+ {
+ spi_transmit_burst(CMD_GRADCOLOR);
+ spi_transmit_burst(color);
+ }
+}
+
+/**
+ * @brief Set up the highlight color used in 3D effects for CMD_BUTTON and CMD_KEYS, only works in burst-mode.
+ */
+void EVE_cmd_gradcolor_burst(uint32_t color)
+{
+ spi_transmit_burst(CMD_GRADCOLOR);
+ spi_transmit_burst(color);
+}
+
+/**
+ * @brief Draw a smooth color gradient.
+ */
+void EVE_cmd_gradient(int16_t xc0, int16_t yc0, uint32_t rgb0, int16_t xc1,
+ int16_t yc1, uint32_t rgb1)
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_GRADIENT);
+ spi_transmit((uint8_t) ((uint16_t) xc0));
+ spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U));
+ spi_transmit((uint8_t) ((uint16_t) yc0));
+ spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U));
+ spi_transmit((uint8_t) (rgb0));
+ spi_transmit((uint8_t) (rgb0 >> 8U));
+ spi_transmit((uint8_t) (rgb0 >> 16U));
+ spi_transmit(0U);
+ spi_transmit((uint8_t) ((uint16_t) xc1));
+ spi_transmit((uint8_t) (((uint16_t) xc1) >> 8U));
+ spi_transmit((uint8_t) ((uint16_t) yc1));
+ spi_transmit((uint8_t) (((uint16_t) yc1) >> 8U));
+ spi_transmit((uint8_t) (rgb1));
+ spi_transmit((uint8_t) (rgb1 >> 8U));
+ spi_transmit((uint8_t) (rgb1 >> 16U));
+ spi_transmit(0U);
+ EVE_cs_clear();
+ }
+ else
+ {
+ spi_transmit_burst(CMD_GRADIENT);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U));
+ spi_transmit_burst(rgb0);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc1)) + (((uint32_t) ((uint16_t) yc1)) << 16U));
+ spi_transmit_burst(rgb1);
+ }
+}
+
+/**
+ * @brief Draw a smooth color gradient, only works in burst-mode.
+ */
+void EVE_cmd_gradient_burst(int16_t xc0, int16_t yc0, uint32_t rgb0, int16_t xc1,
+ int16_t yc1, uint32_t rgb1)
+{
+ spi_transmit_burst(CMD_GRADIENT);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U));
+ spi_transmit_burst(rgb0);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc1)) + (((uint32_t) ((uint16_t) yc1)) << 16U));
+ spi_transmit_burst(rgb1);
+}
+
+/**
+ * @brief Draw a row of key buttons with labels.
+ * @note - The tag value of each button is set to the ASCII value of its label.
+ * @note - Does not work with UTF-8.
+ */
+void EVE_cmd_keys(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt,
+ uint16_t font, uint16_t options, const char *p_text)
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_KEYS);
+ spi_transmit((uint8_t) ((uint16_t) xc0));
+ spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U));
+ spi_transmit((uint8_t) ((uint16_t) yc0));
+ spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U));
+ spi_transmit((uint8_t) (wid));
+ spi_transmit((uint8_t) (wid >> 8U));
+ spi_transmit((uint8_t) (hgt));
+ spi_transmit((uint8_t) (hgt >> 8U));
+ spi_transmit((uint8_t) (font));
+ spi_transmit((uint8_t) (font >> 8U));
+ spi_transmit((uint8_t) (options));
+ spi_transmit((uint8_t) (options >> 8U));
+ private_string_write(p_text);
+ EVE_cs_clear();
+ }
+ else
+ {
+ spi_transmit_burst(CMD_KEYS);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U));
+ spi_transmit_burst(((uint32_t) wid) + (((uint32_t) hgt) << 16U));
+ spi_transmit_burst(((uint32_t) font) + (((uint32_t) options) << 16U));
+ private_string_write(p_text);
+ }
+}
+
+/**
+ * @brief Draw a row of key buttons with labels, only works in burst-mode.
+ * @note - The tag value of each button is set to the ASCII value of its label.
+ * @note - Does not work with UTF-8.
+ */
+void EVE_cmd_keys_burst(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt,
+ uint16_t font, uint16_t options, const char *p_text)
+{
+ spi_transmit_burst(CMD_KEYS);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U));
+ spi_transmit_burst(((uint32_t) wid) + (((uint32_t) hgt) << 16U));
+ spi_transmit_burst(((uint32_t) font) + (((uint32_t) options) << 16U));
+ private_string_write(p_text);
+}
+
+/**
+ * @brief Draw a number.
+ */
+void EVE_cmd_number(int16_t xc0, int16_t yc0, uint16_t font,
+ uint16_t options, int32_t number)
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_NUMBER);
+ spi_transmit((uint8_t) ((uint16_t) xc0));
+ spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U));
+ spi_transmit((uint8_t) ((uint16_t) yc0));
+ spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U));
+ spi_transmit((uint8_t) (font));
+ spi_transmit((uint8_t) (font >> 8U));
+ spi_transmit((uint8_t) (options));
+ spi_transmit((uint8_t) (options >> 8U));
+ spi_transmit_32((uint32_t) number);
+ EVE_cs_clear();
+ }
+ else
+ {
+ spi_transmit_burst(CMD_NUMBER);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U));
+ spi_transmit_burst(((uint32_t) font) + (((uint32_t) options) << 16U));
+ spi_transmit_burst((uint32_t) number);
+ }
+}
+
+/**
+ * @brief Draw a number, only works in burst-mode.
+ */
+void EVE_cmd_number_burst(int16_t xc0, int16_t yc0, uint16_t font,
+ uint16_t options, int32_t number)
+{
+ spi_transmit_burst(CMD_NUMBER);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U));
+ spi_transmit_burst(((uint32_t) font) + (((uint32_t) options) << 16U));
+ spi_transmit_burst((uint32_t) number);
+}
+
+/**
+ * @brief Draw a progress bar.
+ */
+void EVE_cmd_progress(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt,
+ uint16_t options, uint16_t val, uint16_t range)
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_PROGRESS);
+ spi_transmit((uint8_t) ((uint16_t) xc0));
+ spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U));
+ spi_transmit((uint8_t) ((uint16_t) yc0));
+ spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U));
+ spi_transmit((uint8_t) (wid));
+ spi_transmit((uint8_t) (wid >> 8U));
+ spi_transmit((uint8_t) (hgt));
+ spi_transmit((uint8_t) (hgt >> 8U));
+ spi_transmit((uint8_t) (options));
+ spi_transmit((uint8_t) (options >> 8U));
+ spi_transmit((uint8_t) (val));
+ spi_transmit((uint8_t) (val >> 8U));
+ spi_transmit((uint8_t) (range));
+ spi_transmit((uint8_t) (range >> 8U));
+ spi_transmit(0U); /* dummy byte for 4-byte alignment */
+ spi_transmit(0U); /* dummy byte for 4-byte alignment */
+ EVE_cs_clear();
+ }
+ else
+ {
+ spi_transmit_burst(CMD_PROGRESS);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U));
+ spi_transmit_burst(((uint32_t) wid) + (((uint32_t) hgt) << 16U));
+ spi_transmit_burst(((uint32_t) options) + (((uint32_t) val) << 16U));
+ spi_transmit_burst((uint32_t) range);
+ }
+}
+
+/**
+ * @brief Draw a progress bar, only works in burst-mode.
+ */
+void EVE_cmd_progress_burst(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt,
+ uint16_t options, uint16_t val, uint16_t range)
+{
+ spi_transmit_burst(CMD_PROGRESS);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U));
+ spi_transmit_burst(((uint32_t) wid) + (((uint32_t) hgt) << 16U));
+ spi_transmit_burst(((uint32_t) options) + (((uint32_t) val) << 16U));
+ spi_transmit_burst((uint32_t) range);
+}
+
+/**
+ * @brief Load a ROM font into bitmap handle.
+ * @note - generates display list commands, so it needs to be put in a display list
+ */
+void EVE_cmd_romfont(uint32_t font, uint32_t romslot)
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_ROMFONT);
+ spi_transmit_32(font);
+ spi_transmit_32(romslot);
+ EVE_cs_clear();
+ }
+ else
+ {
+ spi_transmit_burst(CMD_ROMFONT);
+ spi_transmit_burst(font);
+ spi_transmit_burst(romslot);
+ }
+}
+
+/**
+ * @brief Load a ROM font into bitmap handle, only works in burst-mode.
+ * @note - generates display list commands, so it needs to be put in a display list
+ */
+void EVE_cmd_romfont_burst(uint32_t font, uint32_t romslot)
+{
+ spi_transmit_burst(CMD_ROMFONT);
+ spi_transmit_burst(font);
+ spi_transmit_burst(romslot);
+}
+
+/**
+ * @brief Apply a rotation to the current matrix.
+ */
+void EVE_cmd_rotate(uint32_t angle)
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_ROTATE);
+ spi_transmit_32(angle & 0xFFFFUL);
+ EVE_cs_clear();
+ }
+ else
+ {
+ spi_transmit_burst(CMD_ROTATE);
+ spi_transmit_burst(angle & 0xFFFFUL);
+ }
+}
+
+/**
+ * @brief Apply a rotation to the current matrix, only works in burst-mode.
+ */
+void EVE_cmd_rotate_burst(uint32_t angle)
+{
+ spi_transmit_burst(CMD_ROTATE);
+ spi_transmit_burst(angle & 0xFFFFUL);
+}
+
+/**
+ * @brief Apply a scale to the current matrix.
+ */
+void EVE_cmd_scale(int32_t scx, int32_t scy)
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_SCALE);
+ spi_transmit_32((uint32_t) scx);
+ spi_transmit_32((uint32_t) scy);
+ EVE_cs_clear();
+ }
+ else
+ {
+ spi_transmit_burst(CMD_SCALE);
+ spi_transmit_burst((uint32_t) scx);
+ spi_transmit_burst((uint32_t) scy);
+ }
+}
+
+/**
+ * @brief Apply a scale to the current matrix, only works in burst-mode.
+ */
+void EVE_cmd_scale_burst(int32_t scx, int32_t scy)
+{
+ spi_transmit_burst(CMD_SCALE);
+ spi_transmit_burst((uint32_t) scx);
+ spi_transmit_burst((uint32_t) scy);
+}
+
+/**
+ * @brief Draw a scroll bar.
+ */
+void EVE_cmd_scrollbar(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt,
+ uint16_t options, uint16_t val, uint16_t size, uint16_t range)
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_SCROLLBAR);
+ spi_transmit((uint8_t) ((uint16_t) xc0));
+ spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U));
+ spi_transmit((uint8_t) ((uint16_t) yc0));
+ spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U));
+ spi_transmit((uint8_t) (wid));
+ spi_transmit((uint8_t) (wid >> 8U));
+ spi_transmit((uint8_t) (hgt));
+ spi_transmit((uint8_t) (hgt >> 8U));
+ spi_transmit((uint8_t) (options));
+ spi_transmit((uint8_t) (options >> 8U));
+ spi_transmit((uint8_t) (val));
+ spi_transmit((uint8_t) (val >> 8U));
+ spi_transmit((uint8_t) (size));
+ spi_transmit((uint8_t) (size >> 8U));
+ spi_transmit((uint8_t) (range));
+ spi_transmit((uint8_t) (range >> 8U));
+ EVE_cs_clear();
+ }
+ else
+ {
+ spi_transmit_burst(CMD_SCROLLBAR);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U));
+ spi_transmit_burst(((uint32_t) wid) + (((uint32_t) hgt) << 16U));
+ spi_transmit_burst(((uint32_t) options) + (((uint32_t) val) << 16U));
+ spi_transmit_burst(((uint32_t) size) + (((uint32_t) range) << 16U));
+ }
+}
+
+/**
+ * @brief Draw a scroll bar, only works in burst-mode.
+ */
+void EVE_cmd_scrollbar_burst(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt,
+ uint16_t options, uint16_t val, uint16_t size, uint16_t range)
+{
+ spi_transmit_burst(CMD_SCROLLBAR);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U));
+ spi_transmit_burst(((uint32_t) wid) + (((uint32_t) hgt) << 16U));
+ spi_transmit_burst(((uint32_t) options) + (((uint32_t) val) << 16U));
+ spi_transmit_burst(((uint32_t) size) + (((uint32_t) range) << 16U));
+}
+
+/**
+ * @brief Set the base for number output.
+ */
+void EVE_cmd_setbase(uint32_t base)
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_SETBASE);
+ spi_transmit_32(base);
+ EVE_cs_clear();
+ }
+ else
+ {
+ spi_transmit_burst(CMD_SETBASE);
+ spi_transmit_burst(base);
+ }
+}
+
+/**
+ * @brief Set the base for number output, only works in burst-mode.
+ */
+void EVE_cmd_setbase_burst(uint32_t base)
+{
+ spi_transmit_burst(CMD_SETBASE);
+ spi_transmit_burst(base);
+}
+
+/**
+ * @brief Generate the corresponding display list commands for given bitmap information.
+ */
+void EVE_cmd_setbitmap(uint32_t addr, uint16_t fmt, uint16_t width,
+ uint16_t height)
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_SETBITMAP);
+ spi_transmit_32(addr);
+ spi_transmit((uint8_t) (fmt));
+ spi_transmit((uint8_t) (fmt >> 8U));
+ spi_transmit((uint8_t) (width));
+ spi_transmit((uint8_t) (width >> 8U));
+ spi_transmit((uint8_t) (height));
+ spi_transmit((uint8_t) (height >> 8U));
+ spi_transmit(0U);
+ spi_transmit(0U);
+ EVE_cs_clear();
+ }
+ else
+ {
+ spi_transmit_burst(CMD_SETBITMAP);
+ spi_transmit_burst(addr);
+ spi_transmit_burst(((uint32_t) fmt) + (((uint32_t) width) << 16U));
+ spi_transmit_burst((uint32_t) height);
+ }
+}
+
+/**
+ * @brief Generate the corresponding display list commands for given bitmap information, only works in burst-mode.
+ */
+void EVE_cmd_setbitmap_burst(uint32_t addr, uint16_t fmt, uint16_t width,
+ uint16_t height)
+{
+ spi_transmit_burst(CMD_SETBITMAP);
+ spi_transmit_burst(addr);
+ spi_transmit_burst(((uint32_t) fmt) + (((uint32_t) width) << 16U));
+ spi_transmit_burst((uint32_t) height);
+}
+
+/**
+ * @brief Register one custom font into the coprocessor engine.
+ * @note - does not set up the bitmap parameters of the font
+ */
+void EVE_cmd_setfont(uint32_t font, uint32_t ptr)
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_SETFONT);
+ spi_transmit_32(font);
+ spi_transmit_32(ptr);
+ EVE_cs_clear();
+ }
+ else
+ {
+ spi_transmit_burst(CMD_SETFONT);
+ spi_transmit_burst(font);
+ spi_transmit_burst(ptr);
+ }
+}
+
+/**
+ * @brief Register one custom font into the coprocessor engine, only works in burst-mode.
+ * @note - does not set up the bitmap parameters of the font
+ */
+void EVE_cmd_setfont_burst(uint32_t font, uint32_t ptr)
+{
+ spi_transmit_burst(CMD_SETFONT);
+ spi_transmit_burst(font);
+ spi_transmit_burst(ptr);
+}
+
+/**
+ * @brief Set up a custom for use by the coprocessor engine.
+ * @note - generates display list commands, so it needs to be put in a display list
+ */
+void EVE_cmd_setfont2(uint32_t font, uint32_t ptr, uint32_t firstchar)
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_SETFONT2);
+ spi_transmit_32(font);
+ spi_transmit_32(ptr);
+ spi_transmit_32(firstchar);
+ EVE_cs_clear();
+ }
+ else
+ {
+ spi_transmit_burst(CMD_SETFONT2);
+ spi_transmit_burst(font);
+ spi_transmit_burst(ptr);
+ spi_transmit_burst(firstchar);
+ }
+}
+
+/**
+ * @brief Set up a custom for use by the coprocessor engine, only works in burst-mode.
+ * @note - generates display list commands, so it needs to be put in a display list
+ */
+void EVE_cmd_setfont2_burst(uint32_t font, uint32_t ptr, uint32_t firstchar)
+{
+ spi_transmit_burst(CMD_SETFONT2);
+ spi_transmit_burst(font);
+ spi_transmit_burst(ptr);
+ spi_transmit_burst(firstchar);
+}
+
+/**
+ * @brief Set the scratch bitmap for widget use.
+ */
+void EVE_cmd_setscratch(uint32_t handle)
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_SETSCRATCH);
+ spi_transmit_32(handle);
+ EVE_cs_clear();
+ }
+ else
+ {
+ spi_transmit_burst(CMD_SETSCRATCH);
+ spi_transmit_burst(handle);
+ }
+}
+
+/**
+ * @brief Set the scratch bitmap for widget use, only works in burst-mode.
+ */
+void EVE_cmd_setscratch_burst(uint32_t handle)
+{
+ spi_transmit_burst(CMD_SETSCRATCH);
+ spi_transmit_burst(handle);
+}
+
+/**
+ * @brief Start a continuous sketch update.
+ */
+void EVE_cmd_sketch(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt,
+ uint32_t ptr, uint16_t format)
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_SKETCH);
+ spi_transmit((uint8_t) ((uint16_t) xc0));
+ spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U));
+ spi_transmit((uint8_t) ((uint16_t) yc0));
+ spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U));
+ spi_transmit((uint8_t) ((uint16_t) wid));
+ spi_transmit((uint8_t) (((uint16_t) wid) >> 8U));
+ spi_transmit((uint8_t) ((uint16_t) hgt));
+ spi_transmit((uint8_t) (((uint16_t) hgt) >> 8U));
+ spi_transmit_32(ptr);
+ spi_transmit((uint8_t) (format));
+ spi_transmit((uint8_t) (format >> 8U));
+ spi_transmit(0U);
+ spi_transmit(0U);
+ EVE_cs_clear();
+ }
+ else
+ {
+ spi_transmit_burst(CMD_SKETCH);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U));
+ spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) hgt)) << 16U));
+ spi_transmit_burst(ptr);
+ spi_transmit_burst((uint32_t) format);
+ }
+}
+
+/**
+ * @brief Start a continuous sketch update, only works in burst-mode.
+ */
+void EVE_cmd_sketch_burst(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt,
+ uint32_t ptr, uint16_t format)
+{
+ spi_transmit_burst(CMD_SKETCH);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U));
+ spi_transmit_burst(((uint32_t) ((uint16_t) wid)) + (((uint32_t) ((uint16_t) hgt)) << 16U));
+ spi_transmit_burst(ptr);
+ spi_transmit_burst((uint32_t) format);
+}
+
+/**
+ * @brief Draw a slider.
+ */
+void EVE_cmd_slider(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt,
+ uint16_t options, uint16_t val, uint16_t range)
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_SLIDER);
+ spi_transmit((uint8_t) ((uint16_t) xc0));
+ spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U));
+ spi_transmit((uint8_t) ((uint16_t) yc0));
+ spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U));
+ spi_transmit((uint8_t) (wid));
+ spi_transmit((uint8_t) (wid >> 8U));
+ spi_transmit((uint8_t) (hgt));
+ spi_transmit((uint8_t) (hgt >> 8U));
+ spi_transmit((uint8_t) (options));
+ spi_transmit((uint8_t) (options >> 8U));
+ spi_transmit((uint8_t) (val));
+ spi_transmit((uint8_t) (val >> 8U));
+ spi_transmit((uint8_t) (range));
+ spi_transmit((uint8_t) (range >> 8U));
+ spi_transmit(0U); /* dummy byte for 4-byte alignment */
+ spi_transmit(0U); /* dummy byte for 4-byte alignment */
+ EVE_cs_clear();
+ }
+ else
+ {
+ spi_transmit_burst(CMD_SLIDER);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U));
+ spi_transmit_burst(((uint32_t) wid) + (((uint32_t) hgt) << 16U));
+ spi_transmit_burst(((uint32_t) options) + (((uint32_t) val) << 16U));
+ spi_transmit_burst((uint32_t) range);
+ }
+}
+
+/**
+ * @brief Draw a slider, only works in burst-mode.
+ */
+void EVE_cmd_slider_burst(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt,
+ uint16_t options, uint16_t val, uint16_t range)
+{
+ spi_transmit_burst(CMD_SLIDER);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U));
+ spi_transmit_burst(((uint32_t) wid) + (((uint32_t) hgt) << 16U));
+ spi_transmit_burst(((uint32_t) options) + (((uint32_t) val) << 16U));
+ spi_transmit_burst((uint32_t) range);
+}
+
+/**
+ * @brief Start an animated spinner.
+ */
+void EVE_cmd_spinner(int16_t xc0, int16_t yc0, uint16_t style, uint16_t scale)
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_SPINNER);
+ spi_transmit((uint8_t) ((uint16_t) xc0));
+ spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U));
+ spi_transmit((uint8_t) ((uint16_t) yc0));
+ spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U));
+ spi_transmit((uint8_t) (style));
+ spi_transmit((uint8_t) (style >> 8U));
+ spi_transmit((uint8_t) (scale));
+ spi_transmit((uint8_t) (scale >> 8U));
+ EVE_cs_clear();
+ }
+ else
+ {
+ spi_transmit_burst(CMD_SPINNER);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U));
+ spi_transmit_burst(((uint32_t) style) + (((uint32_t) scale) << 16U));
+ }
+}
+
+/**
+ * @brief Start an animated spinner, only works in burst-mode.
+ */
+void EVE_cmd_spinner_burst(int16_t xc0, int16_t yc0, uint16_t style,
+ uint16_t scale)
+{
+ spi_transmit_burst(CMD_SPINNER);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U));
+ spi_transmit_burst(((uint32_t) style) + (((uint32_t) scale) << 16U));
+}
+
+/**
+ * @brief Draw a text string.
+ */
+void EVE_cmd_text(int16_t xc0, int16_t yc0, uint16_t font, uint16_t options,
+ const char *p_text)
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_TEXT);
+ spi_transmit((uint8_t) ((uint16_t) xc0));
+ spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U));
+ spi_transmit((uint8_t) ((uint16_t) yc0));
+ spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U));
+ spi_transmit((uint8_t) (font));
+ spi_transmit((uint8_t) (font >> 8U));
+ spi_transmit((uint8_t) (options));
+ spi_transmit((uint8_t) (options >> 8U));
+ private_string_write(p_text);
+ EVE_cs_clear();
+ }
+ else
+ {
+ spi_transmit_burst(CMD_TEXT);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U));
+ spi_transmit_burst(((uint32_t) font) + (((uint32_t) options) << 16U));
+ private_string_write(p_text);
+ }
+}
+
+/**
+ * @brief Draw a text string, only works in burst-mode.
+ */
+void EVE_cmd_text_burst(int16_t xc0, int16_t yc0, uint16_t font,
+ uint16_t options, const char *p_text)
+{
+ spi_transmit_burst(CMD_TEXT);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U));
+ spi_transmit_burst(((uint32_t) font) + (((uint32_t) options) << 16U));
+ private_string_write(p_text);
+}
+
+/**
+ * @brief Draw a toggle switch with labels.
+ */
+void EVE_cmd_toggle(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t font,
+ uint16_t options, uint16_t state, const char *p_text)
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_TOGGLE);
+ spi_transmit((uint8_t) ((uint16_t) xc0));
+ spi_transmit((uint8_t) (((uint16_t) xc0) >> 8U));
+ spi_transmit((uint8_t) ((uint16_t) yc0));
+ spi_transmit((uint8_t) (((uint16_t) yc0) >> 8U));
+ spi_transmit((uint8_t) (wid));
+ spi_transmit((uint8_t) (wid >> 8U));
+ spi_transmit((uint8_t) (font));
+ spi_transmit((uint8_t) (font >> 8U));
+ spi_transmit((uint8_t) (options));
+ spi_transmit((uint8_t) (options >> 8U));
+ spi_transmit((uint8_t) (state));
+ spi_transmit((uint8_t) (state >> 8U));
+ private_string_write(p_text);
+ EVE_cs_clear();
+ }
+ else
+ {
+ spi_transmit_burst(CMD_TOGGLE);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U));
+ spi_transmit_burst(((uint32_t) wid) + (((uint32_t) font) << 16U));
+ spi_transmit_burst(((uint32_t) options) + (((uint32_t) state) << 16U));
+ private_string_write(p_text);
+ }
+}
+
+/**
+ * @brief Draw a toggle switch with labels, only works in burst-mode.
+ */
+void EVE_cmd_toggle_burst(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t font,
+ uint16_t options, uint16_t state, const char *p_text)
+{
+ spi_transmit_burst(CMD_TOGGLE);
+ spi_transmit_burst(((uint32_t) ((uint16_t) xc0)) + (((uint32_t) ((uint16_t) yc0)) << 16U));
+ spi_transmit_burst(((uint32_t) wid) + (((uint32_t) font) << 16U));
+ spi_transmit_burst(((uint32_t) options) + (((uint32_t) state) << 16U));
+ private_string_write(p_text);
+}
+
+/**
+ * @brief Apply a translation to the current matrix.
+ */
+void EVE_cmd_translate(int32_t tr_x, int32_t tr_y)
+{
+ if (0U == cmd_burst)
+ {
+ eve_begin_cmd(CMD_TRANSLATE);
+ spi_transmit_32((uint32_t) tr_x);
+ spi_transmit_32((uint32_t) tr_y);
+ EVE_cs_clear();
+ }
+ else
+ {
+ spi_transmit_burst(CMD_TRANSLATE);
+ spi_transmit_burst((uint32_t) tr_x);
+ spi_transmit_burst((uint32_t) tr_y);
+ }
+}
+
+/**
+ * @brief Apply a translation to the current matrix, only works in burst-mode.
+ */
+void EVE_cmd_translate_burst(int32_t tr_x, int32_t tr_y)
+{
+ spi_transmit_burst(CMD_TRANSLATE);
+ spi_transmit_burst((uint32_t) tr_x);
+ spi_transmit_burst((uint32_t) tr_y);
+}
+
+/**
+ * @brief Set the current color red, green and blue.
+ */
+void EVE_color_rgb(uint32_t color)
+{
+ EVE_cmd_dl(DL_COLOR_RGB | (color & 0x00ffffffUL));
+}
+
+/**
+ * @brief Set the current color red, green and blue, only works in burst-mode.
+ */
+void EVE_color_rgb_burst(uint32_t color)
+{
+ spi_transmit_burst(DL_COLOR_RGB | (color & 0x00ffffffUL));
+}
+
+/**
+ * @brief Set the current color alpha, green and blue.
+ */
+void EVE_color_a(uint8_t alpha)
+{
+ EVE_cmd_dl(DL_COLOR_A | ((uint32_t) alpha));
+}
+
+/**
+ * @brief Set the current color alpha, green and blue, only works in burst-mode.
+ */
+void EVE_color_a_burst(uint8_t alpha)
+{
+ spi_transmit_burst(DL_COLOR_A | ((uint32_t) alpha));
+}
+
+
+/* ##################################################################
+ special purpose functions
+##################################################################### */
+
+/* This is meant to be called outside display-list building. */
+/* This function displays an interactive calibration screen, calculates the calibration values */
+/* and writes the new values to the touch matrix registers of EVE.*/
+/* Unlike the built-in cmd_calibrate() of EVE this also works with displays that are cut down from larger ones like
+ * EVE2-38A / EVE2-38G. */
+/* The dimensions are needed as parameter as EVE_VSIZE for the EVE2-38 is 272 but the visible size is only 116. */
+/* So the call would be EVE_calibrate_manual(EVE_HSIZE, 116); for the EVE2-38A and EVE2-38G while for most other
+ * displays */
+/* using EVE_calibrate_manual(EVE_VSIZE, EVE_VSIZE) would work - but for normal displays the built-in cmd_calibrate
+ * would work as expected anyways */
+/* This code was taken from the MatrixOrbital EVE2-Library on Github, adapted and modified */
+void EVE_calibrate_manual(uint16_t width, uint16_t height)
+{
+ int32_t display_x[3U];
+ int32_t display_y[3U];
+ int32_t touch_x[3U];
+ int32_t touch_y[3U];
+ uint32_t touch_value;
+ int32_t tmp;
+ int32_t divi;
+ int32_t trans_matrix[6U];
+ uint8_t count = 0U;
+ uint8_t calc = 0U;
+ uint32_t calc32 = 0U;
+ char num[4U];
+ uint8_t touch_lock = 1U;
+
+ /* these values determine where your calibration points will be drawn on your display */
+ display_x[0U] = (int32_t) width / 6;
+ display_y[0U] = (int32_t) height / 6;
+
+ display_x[1U] = (int32_t) width - ((int32_t) width / 8);
+ display_y[1U] = (int32_t) height / 2;
+
+ display_x[2U] = (int32_t) width / 2;
+ display_y[2U] = (int32_t) height - ((int32_t) height / 8);
+
+ while (count < 3U)
+ {
+ EVE_cmd_dl(CMD_DLSTART);
+ EVE_cmd_dl(DL_CLEAR_COLOR_RGB);
+ EVE_cmd_dl(DL_CLEAR | CLR_COL | CLR_STN | CLR_TAG);
+ EVE_cmd_dl(DL_VERTEX_FORMAT); /* set to 0 - reduce precision for VERTEX2F to 1 pixel instead of 1/16 pixel default */
+
+ /* draw Calibration Point on screen */
+ EVE_cmd_dl(DL_COLOR_RGB | 0x0000ffUL);
+ EVE_cmd_dl(POINT_SIZE(15U * 16U));
+ EVE_cmd_dl((DL_BEGIN | EVE_POINTS));
+
+ int16_t xc0;
+ int16_t yc0;
+
+ xc0 = (int16_t) display_x[count];
+ yc0 = (int16_t) display_y[count];
+ EVE_cmd_dl(VERTEX2F(xc0, yc0));
+ EVE_cmd_dl(DL_END);
+ EVE_cmd_dl(DL_COLOR_RGB | 0xffffffUL);
+ EVE_cmd_text((int16_t) width / 2, 20, 26U, EVE_OPT_CENTER, "tap on the dot");
+ calc = count + 0x31U;
+ num[0U] = (char) calc;
+ num[1U] = (char) 0U; /* null terminated string of one character */
+ EVE_cmd_text((int16_t) display_x[count], (int16_t) display_y[count], 27U, EVE_OPT_CENTER, num);
+
+ EVE_cmd_dl(DL_DISPLAY);
+ EVE_cmd_dl(CMD_SWAP);
+ EVE_execute_cmd();
+
+ for (;;)
+ {
+ touch_value = EVE_memRead32(REG_TOUCH_DIRECT_XY); /* read for any new touch tag inputs */
+
+ if (touch_lock != 0U)
+ {
+ if ((touch_value & 0x80000000UL) != 0UL) /* check if we have no touch */
+ {
+ touch_lock = 0U;
+ }
+ }
+ else
+ {
+ if (0UL == (touch_value & 0x80000000UL)) /* check if a touch is detected */
+ {
+ calc32 = ((touch_value >> 16U) & 0x03FFUL);
+ touch_x[count] = (int32_t) calc32; /* raw Touchscreen X coordinate */
+ calc32 = touch_value & 0x03FFUL;
+ touch_y[count] = (int32_t) calc32; /* raw Touchscreen Y coordinate */
+ touch_lock = 1U;
+ count++;
+ break; /* leave for (;;) */
+ }
+ }
+ }
+ }
+
+ divi = ((touch_x[0U] - touch_x[2U]) * (touch_y[1U] - touch_y[2U])) - ((touch_x[1U] - touch_x[2U]) * (touch_y[0U] - touch_y[2U]));
+
+ tmp = (((display_x[0U] - display_x[2U]) * (touch_y[1U] - touch_y[2U])) -
+ ((display_x[1U] - display_x[2U]) * (touch_y[0U] - touch_y[2U])));
+ trans_matrix[0U] = (int32_t) (((int64_t) tmp * 65536) / divi);
+
+ tmp = (((touch_x[0U] - touch_x[2U]) * (display_x[1U] - display_x[2U])) -
+ ((display_x[0U] - display_x[2U]) * (touch_x[1U] - touch_x[2U])));
+ trans_matrix[1U] = (int32_t) (((int64_t) tmp * 65536) / divi);
+
+ tmp = ((touch_y[0U] * (((touch_x[2U] * display_x[1U]) - (touch_x[1U] * display_x[2U])))) +
+ (touch_y[1U] * (((touch_x[0U] * display_x[2U]) - (touch_x[2U] * display_x[0U])))) +
+ (touch_y[2U] * (((touch_x[1U] * display_x[0U]) - (touch_x[0U] * display_x[1U])))));
+ trans_matrix[2U] = (int32_t) (((int64_t) tmp * 65536) / divi);
+
+ tmp = (((display_y[0U] - display_y[2U]) * (touch_y[1U] - touch_y[2U])) -
+ ((display_y[1U] - display_y[2U]) * (touch_y[0U] - touch_y[2U])));
+ trans_matrix[3U] = (int32_t) (((int64_t) tmp * 65536) / divi);
+
+ tmp = (((touch_x[0U] - touch_x[2U]) * (display_y[1U] - display_y[2U])) -
+ ((display_y[0U] - display_y[2U]) * (touch_x[1U] - touch_x[2U])));
+ trans_matrix[4U] = (int32_t) (((int64_t) tmp * 65536) / divi);
+
+ tmp = ((touch_y[0U] * (((touch_x[2U] * display_y[1U]) - (touch_x[1U] * display_y[2U])))) +
+ (touch_y[1U] * (((touch_x[0U] * display_y[2U]) - (touch_x[2U] * display_y[0U])))) +
+ (touch_y[2U] * (((touch_x[1U] * display_y[0U]) - (touch_x[0U] * display_y[1U])))));
+ trans_matrix[5U] = (int32_t) (((int64_t) tmp * 65536) / divi);
+
+ EVE_memWrite32(REG_TOUCH_TRANSFORM_A, (uint32_t) trans_matrix[0U]);
+ EVE_memWrite32(REG_TOUCH_TRANSFORM_B, (uint32_t) trans_matrix[1U]);
+ EVE_memWrite32(REG_TOUCH_TRANSFORM_C, (uint32_t) trans_matrix[2U]);
+ EVE_memWrite32(REG_TOUCH_TRANSFORM_D, (uint32_t) trans_matrix[3U]);
+ EVE_memWrite32(REG_TOUCH_TRANSFORM_E, (uint32_t) trans_matrix[4U]);
+ EVE_memWrite32(REG_TOUCH_TRANSFORM_F, (uint32_t) trans_matrix[5U]);
+}
+
+#endif /*LV_USE_DRAW_EVE*/
diff --git a/lib/libesp32_lvgl/lvgl/src/libs/FT800-FT813/EVE_commands.h b/lib/libesp32_lvgl/lvgl/src/libs/FT800-FT813/EVE_commands.h
new file mode 100644
index 000000000..144d7ed38
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/libs/FT800-FT813/EVE_commands.h
@@ -0,0 +1,339 @@
+/*
+@file EVE_commands.h
+@brief contains FT8xx / BT8xx function prototypes
+@version 5.0
+@date 2023-12-29
+@author Rudolph Riedel
+
+@section LICENSE
+
+MIT License
+
+Copyright (c) 2016-2023 Rudolph Riedel
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the Software
+is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+@section History
+
+5.0
+- added prototype for EVE_cmd_plkfreq()
+- replaced BT81X_ENABLE with "EVE_GEN > 2"
+- removed FT81X_ENABLE as FT81x already is the lowest supported chip revision now
+- removed the formerly as deprected marked EVE_get_touch_tag()
+- changed EVE_color_rgb() to use a 32 bit value like the rest of the color commands
+- removed the meta-commands EVE_cmd_point(), EVE_cmd_line() and EVE_cmd_rect()
+- removed obsolete functions EVE_get_cmdoffset(void) and EVE_report_cmdoffset(void) - cmdoffset is gone
+- renamed EVE_LIB_GetProps() back to EVE_cmd_getprops() since it does not do anything special to justify a special name
+- added prototype for helper function EVE_memWrite_sram_buffer()
+- added prototypes for EVE_cmd_bitmap_transform() and EVE_cmd_bitmap_transform_burst()
+- added prototype for EVE_cmd_playvideo()
+- added prototypes for EVE_cmd_setfont_burst() and EVE_cmd_setfont2_burst()
+- added prototype for EVE_cmd_videoframe()
+- restructured: functions are sorted by chip-generation and within their group in alphabetical order
+- reimplementedEVE_cmd_getmatrix() again, it needs to read values, not write them
+- added prototypes for EVE_cmd_fontcache() and EVE_cmd_fontcachequery()
+- added prototype for EVE_cmd_flashprogram()
+- added prototype for EVE_cmd_calibratesub()
+- added prototypes for EVE_cmd_animframeram(), EVE_cmd_animframeram_burst(), EVE_cmd_animstartram(),
+EVE_cmd_animstartram_burst()
+- added prototypes for EVE_cmd_apilevel(), EVE_cmd_apilevel_burst()
+- added prototypes for EVE_cmd_calllist(), EVE_cmd_calllist_burst()
+- added prototype for EVE_cmd_getimage()
+- added prototypes for EVE_cmd_hsf(), EVE_cmd_hsf_burst()
+- added prototype for EVE_cmd_linetime()
+- added prototypes for EVE_cmd_newlist(), EVE_cmd_newlist_burst()
+- added prototypes for EVE_cmd_runanim(), EVE_cmd_runanim_burst()
+- added prototype for EVE_cmd_wait()
+- removed the history from before 4.0
+- added an enum with return codes to have the functions return something more meaningfull
+- finally removed EVE_cmd_start() after setting it to deprecatd with the first 5.0 release
+- renamed EVE_cmd_execute() to EVE_execute_cmd() to be more consistent, this is is not an EVE command
+- added the return-value of EVE_FIFO_HALF_EMPTY to EVE_busy() to indicate there is more than 2048 bytes available
+- removed the 4.0 history
+- added parameter width to EVE_calibrate_manual()
+- changed the varargs versions of cmd_button, cmd_text and cmd_toggle to use an array of uint32_t values to comply with MISRA-C
+- fixed some MISRA-C issues
+- basic maintenance: checked for violations of white space and indent rules
+- more linter fixes for minor issues like variables shorter than 3 characters
+- added EVE_color_a() / EVE_color_a_burst()
+- removed EVE_cmd_newlist_burst() prototype as the function got removed earlier
+- added prototype for EVE_write_display_parameters()
+- added EVE_memRead_sram_buffer()
+- added EVE_FAULT_RECOVERED to the list of return codes
+- added defines for the state of the external flash
+- added protype for EVE_get_and_reset_fault_state()
+- put E_OK and E_NOT_OK in #ifndef/#endif guards as these are usually defined
+ already in AUTOSAR projects
+- renamed EVE_FAIL_CHIPID_TIMEOUT to EVE_FAIL_REGID_TIMEOUT as suggested by #93 on github
+- changed a number of function parameters from signed to unsigned following the
+ updated BT81x series programming guide V2.4
+- commented out EVE_cmd_regread() prototype
+- removed prototype for EVE_cmd_hsf_burst()
+
+*/
+
+#ifndef EVE_COMMANDS_H
+#define EVE_COMMANDS_H
+
+#include "EVE.h"
+
+#if !defined E_OK
+#define E_OK 0U
+#endif
+
+#if !defined E_NOT_OK
+#define E_NOT_OK 1U
+#endif
+
+#define EVE_FAIL_REGID_TIMEOUT 2U
+#define EVE_FAIL_RESET_TIMEOUT 3U
+#define EVE_FAIL_PCLK_FREQ 4U
+#define EVE_FAIL_FLASH_STATUS_INIT 5U
+#define EVE_FAIL_FLASH_STATUS_DETACHED 6U
+#define EVE_FAIL_FLASHFAST_NOT_SUPPORTED 7U
+#define EVE_FAIL_FLASHFAST_NO_HEADER_DETECTED 8U
+#define EVE_FAIL_FLASHFAST_SECTOR0_FAILED 9U
+#define EVE_FAIL_FLASHFAST_BLOB_MISMATCH 10U
+#define EVE_FAIL_FLASHFAST_SPEED_TEST 11U
+#define EVE_IS_BUSY 12U
+#define EVE_FIFO_HALF_EMPTY 13U
+#define EVE_FAULT_RECOVERED 14U
+
+#define EVE_FLASH_STATUS_INIT 0U
+#define EVE_FLASH_STATUS_DETACHED 1U
+#define EVE_FLASH_STATUS_BASIC 2U
+#define EVE_FLASH_STATUS_FULL 3U
+
+/* ##################################################################
+ helper functions
+##################################################################### */
+
+void EVE_cmdWrite(uint8_t const command, uint8_t const parameter);
+
+uint8_t EVE_memRead8(uint32_t const ft_address);
+uint16_t EVE_memRead16(uint32_t const ft_address);
+uint32_t EVE_memRead32(uint32_t const ft_address);
+void EVE_memWrite8(uint32_t const ft_address, uint8_t const ft_data);
+void EVE_memWrite16(uint32_t const ft_address, uint16_t const ft_data);
+void EVE_memWrite32(uint32_t const ft_address, uint32_t const ft_data);
+void EVE_memWrite_flash_buffer(uint32_t const ft_address, const uint8_t *p_data, uint32_t const len);
+void EVE_memWrite_sram_buffer(uint32_t const ft_address, const uint8_t *p_data, uint32_t const len);
+void EVE_memRead_sram_buffer(uint32_t const ft_address, uint8_t *p_data, uint32_t const len);
+uint8_t EVE_busy(void);
+uint8_t EVE_get_and_reset_fault_state(void);
+void EVE_execute_cmd(void);
+
+/* ##################################################################
+ commands and functions to be used outside of display-lists
+##################################################################### */
+
+/* EVE4: BT817 / BT818 */
+#if EVE_GEN > 3
+
+void EVE_cmd_flashprogram(uint32_t dest, uint32_t src, uint32_t num);
+void EVE_cmd_fontcache(uint32_t font, uint32_t ptr, uint32_t num);
+void EVE_cmd_fontcachequery(uint32_t *p_total, uint32_t *p_used);
+void EVE_cmd_getimage(uint32_t *p_source, uint32_t *p_fmt, uint32_t *p_width, uint32_t *p_height, uint32_t *p_palette);
+void EVE_cmd_linetime(uint32_t dest);
+void EVE_cmd_newlist(uint32_t adr);
+uint32_t EVE_cmd_pclkfreq(uint32_t ftarget, int32_t rounding);
+void EVE_cmd_wait(uint32_t usec);
+
+#endif /* EVE_GEN > 3 */
+
+/* EVE3: BT815 / BT816 */
+#if EVE_GEN > 2
+
+void EVE_cmd_clearcache(void);
+void EVE_cmd_flashattach(void);
+void EVE_cmd_flashdetach(void);
+void EVE_cmd_flasherase(void);
+uint32_t EVE_cmd_flashfast(void);
+void EVE_cmd_flashspidesel(void);
+void EVE_cmd_flashread(uint32_t dest, uint32_t src, uint32_t num);
+void EVE_cmd_flashsource(uint32_t ptr);
+void EVE_cmd_flashspirx(uint32_t dest, uint32_t num);
+void EVE_cmd_flashspitx(uint32_t num, const uint8_t *p_data);
+void EVE_cmd_flashupdate(uint32_t dest, uint32_t src, uint32_t num);
+void EVE_cmd_flashwrite(uint32_t ptr, uint32_t num, const uint8_t *p_data);
+void EVE_cmd_inflate2(uint32_t ptr, uint32_t options, const uint8_t *p_data, uint32_t len);
+
+#endif /* EVE_GEN > 2 */
+
+void EVE_cmd_getprops(uint32_t *p_pointer, uint32_t *p_width, uint32_t *p_height);
+uint32_t EVE_cmd_getptr(void);
+void EVE_cmd_inflate(uint32_t ptr, const uint8_t *p_data, uint32_t len);
+void EVE_cmd_interrupt(uint32_t msec);
+void EVE_cmd_loadimage(uint32_t ptr, uint32_t options, const uint8_t *p_data, uint32_t len);
+void EVE_cmd_mediafifo(uint32_t ptr, uint32_t size);
+void EVE_cmd_memcpy(uint32_t dest, uint32_t src, uint32_t num);
+uint32_t EVE_cmd_memcrc(uint32_t ptr, uint32_t num);
+void EVE_cmd_memset(uint32_t ptr, uint8_t value, uint32_t num);
+void EVE_cmd_memzero(uint32_t ptr, uint32_t num);
+void EVE_cmd_playvideo(uint32_t options, const uint8_t *p_data, uint32_t len);
+void EVE_cmd_setrotate(uint32_t rotation);
+void EVE_cmd_snapshot(uint32_t ptr);
+void EVE_cmd_snapshot2(uint32_t fmt, uint32_t ptr, int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt);
+void EVE_cmd_track(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt, uint16_t tag);
+void EVE_cmd_videoframe(uint32_t dest, uint32_t result_ptr);
+/*void EVE_cmd_memwrite(uint32_t dest, uint32_t num, const uint8_t *p_data);*/
+/*uint32_t EVE_cmd_regread(uint32_t ptr);*/
+
+/* ##################################################################
+ patching and initialization
+##################################################################### */
+
+#if EVE_GEN > 2
+uint8_t EVE_init_flash(void);
+#endif /* EVE_GEN > 2 */
+
+void EVE_write_display_parameters(void);
+uint8_t EVE_init(void);
+
+/* ##################################################################
+ functions for display lists
+##################################################################### */
+
+void EVE_start_cmd_burst(void);
+void EVE_end_cmd_burst(void);
+
+/* EVE4: BT817 / BT818 */
+#if EVE_GEN > 3
+
+void EVE_cmd_animframeram(int16_t xc0, int16_t yc0, uint32_t aoptr, uint32_t frame);
+void EVE_cmd_animframeram_burst(int16_t xc0, int16_t yc0, uint32_t aoptr, uint32_t frame);
+void EVE_cmd_animstartram(int32_t chnl, uint32_t aoptr, uint32_t loop);
+void EVE_cmd_animstartram_burst(int32_t chnl, uint32_t aoptr, uint32_t loop);
+void EVE_cmd_apilevel(uint32_t level);
+void EVE_cmd_apilevel_burst(uint32_t level);
+void EVE_cmd_calibratesub(uint16_t xc0, uint16_t yc0, uint16_t width, uint16_t height);
+void EVE_cmd_calllist(uint32_t adr);
+void EVE_cmd_calllist_burst(uint32_t adr);
+void EVE_cmd_hsf(uint32_t hsf);
+void EVE_cmd_runanim(uint32_t waitmask, uint32_t play);
+void EVE_cmd_runanim_burst(uint32_t waitmask, uint32_t play);
+
+#endif /* EVE_GEN > 3 */
+
+/* EVE3: BT815 / BT816 */
+#if EVE_GEN > 2
+
+void EVE_cmd_animdraw(int32_t chnl);
+void EVE_cmd_animdraw_burst(int32_t chnl);
+void EVE_cmd_animframe(int16_t xc0, int16_t yc0, uint32_t aoptr, uint32_t frame);
+void EVE_cmd_animframe_burst(int16_t xc0, int16_t yc0, uint32_t aoptr, uint32_t frame);
+void EVE_cmd_animstart(int32_t chnl, uint32_t aoptr, uint32_t loop);
+void EVE_cmd_animstart_burst(int32_t chnl, uint32_t aoptr, uint32_t loop);
+void EVE_cmd_animstop(int32_t chnl);
+void EVE_cmd_animstop_burst(int32_t chnl);
+void EVE_cmd_animxy(int32_t chnl, int16_t xc0, int16_t yc0);
+void EVE_cmd_animxy_burst(int32_t chnl, int16_t xc0, int16_t yc0);
+void EVE_cmd_appendf(uint32_t ptr, uint32_t num);
+void EVE_cmd_appendf_burst(uint32_t ptr, uint32_t num);
+uint16_t EVE_cmd_bitmap_transform(int32_t xc0, int32_t yc0, int32_t xc1, int32_t yc1, int32_t xc2, int32_t yc2, int32_t tx0,
+ int32_t ty0, int32_t tx1, int32_t ty1, int32_t tx2, int32_t ty2);
+void EVE_cmd_bitmap_transform_burst(int32_t xc0, int32_t yc0, int32_t xc1, int32_t yc1, int32_t xc2, int32_t yc2, int32_t tx0,
+ int32_t ty0, int32_t tx1, int32_t ty1, int32_t tx2, int32_t ty2);
+void EVE_cmd_fillwidth(uint32_t pixel);
+void EVE_cmd_fillwidth_burst(uint32_t pixel);
+void EVE_cmd_gradienta(int16_t xc0, int16_t yc0, uint32_t argb0, int16_t xc1, int16_t yc1, uint32_t argb1);
+void EVE_cmd_gradienta_burst(int16_t xc0, int16_t yc0, uint32_t argb0, int16_t xc1, int16_t yc1, uint32_t argb1);
+void EVE_cmd_rotatearound(int32_t xc0, int32_t yc0, uint32_t angle, int32_t scale);
+void EVE_cmd_rotatearound_burst(int32_t xc0, int32_t yc0, uint32_t angle, int32_t scale);
+
+void EVE_cmd_button_var(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt, uint16_t font, uint16_t options, const char *p_text, uint8_t num_args, const uint32_t p_arguments[]);
+void EVE_cmd_button_var_burst(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt, uint16_t font, uint16_t options, const char *p_text, uint8_t num_args, const uint32_t p_arguments[]);
+void EVE_cmd_text_var(int16_t xc0, int16_t yc0, uint16_t font, uint16_t options, const char *p_text, uint8_t num_args, const uint32_t p_arguments[]);
+void EVE_cmd_text_var_burst(int16_t xc0, int16_t yc0, uint16_t font, uint16_t options, const char *p_text, uint8_t num_args, const uint32_t p_arguments[]);
+void EVE_cmd_toggle_var(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t font, uint16_t options, uint16_t state, const char *p_text, uint8_t num_args, const uint32_t p_arguments[]);
+void EVE_cmd_toggle_var_burst(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t font, uint16_t options, uint16_t state, const char *p_text, uint8_t num_args, const uint32_t p_arguments[]);
+
+#endif /* EVE_GEN > 2 */
+
+void EVE_cmd_dl(uint32_t command);
+void EVE_cmd_dl_burst(uint32_t command);
+
+void EVE_cmd_append(uint32_t ptr, uint32_t num);
+void EVE_cmd_append_burst(uint32_t ptr, uint32_t num);
+void EVE_cmd_bgcolor(uint32_t color);
+void EVE_cmd_bgcolor_burst(uint32_t color);
+void EVE_cmd_button(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt, uint16_t font, uint16_t options, const char *p_text);
+void EVE_cmd_button_burst(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt, uint16_t font, uint16_t options, const char *p_text);
+void EVE_cmd_calibrate(void);
+void EVE_cmd_clock(int16_t xc0, int16_t yc0, uint16_t rad, uint16_t options, uint16_t hours, uint16_t mins, uint16_t secs, uint16_t msecs);
+void EVE_cmd_clock_burst(int16_t xc0, int16_t yc0, uint16_t rad, uint16_t options, uint16_t hours, uint16_t mins, uint16_t secs, uint16_t msecs);
+void EVE_cmd_dial(int16_t xc0, int16_t yc0, uint16_t rad, uint16_t options, uint16_t val);
+void EVE_cmd_dial_burst(int16_t xc0, int16_t yc0, uint16_t rad, uint16_t options, uint16_t val);
+void EVE_cmd_fgcolor(uint32_t color);
+void EVE_cmd_fgcolor_burst(uint32_t color);
+void EVE_cmd_gauge(int16_t xc0, int16_t yc0, uint16_t rad, uint16_t options, uint16_t major, uint16_t minor, uint16_t val, uint16_t range);
+void EVE_cmd_gauge_burst(int16_t xc0, int16_t yc0, uint16_t rad, uint16_t options, uint16_t major, uint16_t minor, uint16_t val, uint16_t range);
+void EVE_cmd_getmatrix(int32_t *p_a, int32_t *p_b, int32_t *p_c, int32_t *p_d, int32_t *p_e, int32_t *p_f);
+void EVE_cmd_gradcolor(uint32_t color);
+void EVE_cmd_gradcolor_burst(uint32_t color);
+void EVE_cmd_gradient(int16_t xc0, int16_t yc0, uint32_t rgb0, int16_t xc1, int16_t yc1, uint32_t rgb1);
+void EVE_cmd_gradient_burst(int16_t xc0, int16_t yc0, uint32_t rgb0, int16_t xc1, int16_t yc1, uint32_t rgb1);
+void EVE_cmd_keys(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt, uint16_t font, uint16_t options, const char *p_text);
+void EVE_cmd_keys_burst(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt, uint16_t font, uint16_t options, const char *p_text);
+void EVE_cmd_number(int16_t xc0, int16_t yc0, uint16_t font, uint16_t options, int32_t number);
+void EVE_cmd_number_burst(int16_t xc0, int16_t yc0, uint16_t font, uint16_t options, int32_t number);
+void EVE_cmd_progress(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt, uint16_t options, uint16_t val, uint16_t range);
+void EVE_cmd_progress_burst(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt, uint16_t options, uint16_t val, uint16_t range);
+void EVE_cmd_romfont(uint32_t font, uint32_t romslot);
+void EVE_cmd_romfont_burst(uint32_t font, uint32_t romslot);
+void EVE_cmd_rotate(uint32_t angle);
+void EVE_cmd_rotate_burst(uint32_t angle);
+void EVE_cmd_scale(int32_t scx, int32_t scy);
+void EVE_cmd_scale_burst(int32_t scx, int32_t scy);
+void EVE_cmd_scrollbar(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt, uint16_t options, uint16_t val, uint16_t size, uint16_t range);
+void EVE_cmd_scrollbar_burst(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt, uint16_t options, uint16_t val, uint16_t size, uint16_t range);
+void EVE_cmd_setbase(uint32_t base);
+void EVE_cmd_setbase_burst(uint32_t base);
+void EVE_cmd_setbitmap(uint32_t addr, uint16_t fmt, uint16_t width, uint16_t height);
+void EVE_cmd_setbitmap_burst(uint32_t addr, uint16_t fmt, uint16_t width, uint16_t height);
+void EVE_cmd_setfont(uint32_t font, uint32_t ptr);
+void EVE_cmd_setfont_burst(uint32_t font, uint32_t ptr);
+void EVE_cmd_setfont2(uint32_t font, uint32_t ptr, uint32_t firstchar);
+void EVE_cmd_setfont2_burst(uint32_t font, uint32_t ptr, uint32_t firstchar);
+void EVE_cmd_setscratch(uint32_t handle);
+void EVE_cmd_setscratch_burst(uint32_t handle);
+void EVE_cmd_sketch(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt, uint32_t ptr, uint16_t format);
+void EVE_cmd_sketch_burst(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt, uint32_t ptr, uint16_t format);
+void EVE_cmd_slider(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt, uint16_t options, uint16_t val, uint16_t range);
+void EVE_cmd_slider_burst(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t hgt, uint16_t options, uint16_t val, uint16_t range);
+void EVE_cmd_spinner(int16_t xc0, int16_t yc0, uint16_t style, uint16_t scale);
+void EVE_cmd_spinner_burst(int16_t xc0, int16_t yc0, uint16_t style, uint16_t scale);
+void EVE_cmd_text(int16_t xc0, int16_t yc0, uint16_t font, uint16_t options, const char *p_text);
+void EVE_cmd_text_burst(int16_t xc0, int16_t yc0, uint16_t font, uint16_t options, const char *p_text);
+void EVE_cmd_toggle(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t font, uint16_t options, uint16_t state, const char *p_text);
+void EVE_cmd_toggle_burst(int16_t xc0, int16_t yc0, uint16_t wid, uint16_t font, uint16_t options, uint16_t state, const char *p_text);
+void EVE_cmd_translate(int32_t tr_x, int32_t tr_y);
+void EVE_cmd_translate_burst(int32_t tr_x, int32_t tr_y);
+
+void EVE_color_rgb(uint32_t color);
+void EVE_color_rgb_burst(uint32_t color);
+void EVE_color_a(uint8_t alpha);
+void EVE_color_a_burst(uint8_t alpha);
+
+/* ##################################################################
+ special purpose functions
+##################################################################### */
+
+void EVE_calibrate_manual(uint16_t width, uint16_t height);
+
+#endif /* EVE_COMMANDS_H */
diff --git a/lib/libesp32_lvgl/lvgl/src/libs/FT800-FT813/EVE_config.h b/lib/libesp32_lvgl/lvgl/src/libs/FT800-FT813/EVE_config.h
new file mode 100644
index 000000000..0d51e6335
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/libs/FT800-FT813/EVE_config.h
@@ -0,0 +1,26 @@
+#ifndef EVE_CONFIG_H
+#define EVE_CONFIG_H
+
+#include "../../draw/eve/lv_draw_eve_private.h"
+
+#define EVE_HSIZE (lv_draw_eve_unit_g->params.hor_res)
+#define EVE_VSIZE (lv_draw_eve_unit_g->params.ver_res)
+#define EVE_VSYNC0 (lv_draw_eve_unit_g->params.vsync0)
+#define EVE_VSYNC1 (lv_draw_eve_unit_g->params.vsync1)
+#define EVE_VOFFSET (lv_draw_eve_unit_g->params.voffset)
+#define EVE_VCYCLE (lv_draw_eve_unit_g->params.vcycle)
+#define EVE_HSYNC0 (lv_draw_eve_unit_g->params.hsync0)
+#define EVE_HSYNC1 (lv_draw_eve_unit_g->params.hsync1)
+#define EVE_HOFFSET (lv_draw_eve_unit_g->params.hoffset)
+#define EVE_HCYCLE (lv_draw_eve_unit_g->params.hcycle)
+#define EVE_PCLK (lv_draw_eve_unit_g->params.pclk)
+#define EVE_PCLKPOL (lv_draw_eve_unit_g->params.pclkpol)
+#define EVE_SWIZZLE (lv_draw_eve_unit_g->params.swizzle)
+#define EVE_CSPREAD (lv_draw_eve_unit_g->params.cspread)
+#define EVE_HAS_CRYSTAL (lv_draw_eve_unit_g->params.has_crystal)
+#define EVE_HAS_GT911 (lv_draw_eve_unit_g->params.has_gt911)
+#define EVE_GEN LV_DRAW_EVE_EVE_GENERATION
+#define EVE_BACKLIGHT_PWM (lv_draw_eve_unit_g->params.backlight_pwm)
+#define EVE_BACKLIGHT_FREQ (lv_draw_eve_unit_g->params.backlight_freq)
+
+#endif /* EVE_CONFIG_H */
diff --git a/lib/libesp32_lvgl/lvgl/src/libs/FT800-FT813/EVE_supplemental.c b/lib/libesp32_lvgl/lvgl/src/libs/FT800-FT813/EVE_supplemental.c
new file mode 100644
index 000000000..988b62c73
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/libs/FT800-FT813/EVE_supplemental.c
@@ -0,0 +1,145 @@
+#include "../../lv_conf_internal.h"
+#if LV_USE_DRAW_EVE
+/*
+@file EVE_supplemental.h
+@brief supplemental functions
+@version 5.0
+@date 2023-12-23
+@author Rudolph Riedel
+
+@section LICENSE
+
+MIT License
+
+Copyright (c) 2016-2023 Rudolph Riedel
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the Software
+is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+@section History
+
+5.0
+- added EVE_polar_cartesian()
+
+*/
+
+#include "EVE_suppplemental.h"
+
+/* define NULL if it not already is */
+#ifndef NULL
+#include
+#endif
+
+#if defined (__AVR__)
+#include
+#else
+#define PROGMEM
+#endif
+
+/*
+ * @brief widget function to draw a circle
+ */
+void EVE_widget_circle(int16_t xc0, int16_t yc0, uint16_t radius, uint16_t border, uint32_t bgcolor)
+{
+ EVE_cmd_dl_burst(DL_SAVE_CONTEXT);
+ EVE_cmd_dl(DL_BEGIN | EVE_POINTS);
+ EVE_cmd_dl(POINT_SIZE(radius));
+ EVE_cmd_dl(VERTEX2F(xc0, yc0));
+ EVE_color_rgb(bgcolor);
+ EVE_cmd_dl(POINT_SIZE(radius - border));
+ EVE_cmd_dl(VERTEX2F(xc0, yc0));
+ EVE_cmd_dl(DL_END);
+ EVE_cmd_dl_burst(DL_RESTORE_CONTEXT);
+}
+
+/*
+ * @brief widget function to draw a rectangle
+ */
+void EVE_widget_rectangle(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, int16_t border, uint16_t linewidth, uint32_t bgcolor)
+{
+ EVE_cmd_dl_burst(DL_SAVE_CONTEXT);
+ EVE_cmd_dl(DL_BEGIN | EVE_RECTS);
+ EVE_cmd_dl(LINE_WIDTH(linewidth));
+ EVE_cmd_dl(VERTEX2F(xc0, yc0));
+ EVE_cmd_dl(VERTEX2F(xc0 + wid, yc0 + hgt));
+ EVE_color_rgb(bgcolor);
+ EVE_cmd_dl(VERTEX2F(xc0 + border, yc0 + border));
+ EVE_cmd_dl(VERTEX2F(xc0 + wid - border, yc0 + hgt - border));
+ EVE_cmd_dl(DL_END);
+ EVE_cmd_dl_burst(DL_RESTORE_CONTEXT);
+}
+
+static const int8_t sine_table[360] PROGMEM =
+{
+ 0, 2, 4, 7, 9, 11, 13, 15, 18, 20, 22, 24, 26, 29, 31, 33, 35, 37, 39, 41,
+ 43, 46, 48, 50, 52, 54, 56, 58, 60, 62, 63, 65, 67, 69, 71, 73, 75, 76, 78,
+ 80, 82, 83, 85, 87, 88, 90, 91, 93, 94, 96, 97, 99, 100, 101, 103, 104, 105,
+ 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 119, 120,
+ 121, 121, 122, 123, 123, 124, 124, 125, 125, 125, 126, 126, 126, 127, 127,
+ 127, 127, 127, 127, 127, 127, 127, 127, 127, 126, 126, 126, 125, 125, 125,
+ 124, 124, 123, 123, 122, 121, 121, 120, 119, 119, 118, 117, 116, 115, 114,
+ 113, 112, 111, 110, 109, 108, 107, 105, 104, 103, 101, 100, 99, 97, 96, 94,
+ 93, 91, 90, 88, 87, 85, 83, 82, 80, 78, 76, 75, 73, 71, 69, 67, 65, 63, 62,
+ 60, 58, 56, 54, 52, 50, 48, 46, 43, 41, 39, 37, 35, 33, 31, 29, 26, 24, 22,
+ 20, 18, 15, 13, 11, 9, 7, 4, 2, 0, -2, -4, -7, -9, -11, -13, -15, -18, -20,
+ -22, -24, -26, -29, -31, -33, -35, -37, -39, -41, -43, -46, -48, -50, -52,
+ -54, -56, -58, -60, -62, -63, -65, -67, -69, -71, -73, -75, -76, -78, -80,
+ -82, -83, -85, -87, -88, -90, -91, -93, -94, -96, -97, -99,-100,-101,-103,
+ -104, -105, -107, -108, -109, -110, -111, -112, -113, -114, -115, -116,
+ -117, -118, -119, -119, -120, -121, -121, -122, -123, -123, -124, -124,
+ -125, -125, -125, -126, -126, -126, -127, -127, -127, -127, -127, -127,
+ -127, -127, -127, -127, -127, -126, -126, -126, -125, -125, -125, -124,
+ -124, -123, -123, -122, -121, -121, -120, -119, -119, -118, -117, -116,
+ -115, -114, -113, -112, -111, -110, -109, -108, -107, -105, -104, -103,
+ -101, -100, -99, -97, -96, -94, -93, -91, -90, -88, -87, -85, -83, -82,
+ -80, -78, -76, -75, -73, -71, -69, -67, -65, -63, -62, -60, -58, -56, -54,
+ -52, -50, -48, -46, -43, -41, -39, -37, -35, -33, -31, -29, -26, -24,
+ -22, -20, -18, -15, -13, -11, -9, -7, -4, -2
+};
+
+/**
+ * @brief Calculate coordinates from an angle and a length.
+ * @param length distance from coordinate origin (0,0)
+ * @param angle rotation in degrees
+ * @return signed X/Y coordinates for use with VERTEX2F
+ * @note - resolution for angle is 1° and rotation is clockwise
+ * @note - angle should be limited to a (n*360)-1
+ */
+void EVE_polar_cartesian(uint16_t length, uint16_t angle, int16_t *p_xc0, int16_t *p_yc0)
+{
+ uint16_t anglev;
+ anglev = angle % 360U;
+
+ if (p_xc0 != NULL)
+ {
+ int32_t calc = (int16_t) length;
+ calc = ((calc * (sine_table[anglev])) + 64) / 128;
+ *p_xc0 = (int16_t) calc;
+ }
+
+ if (p_yc0 != NULL)
+ {
+ anglev = anglev + 270U;
+ anglev = anglev % 360U;
+
+ int32_t calc = (int16_t) length;
+ calc = ((calc * (sine_table[anglev])) + 64) / 128;
+ *p_yc0 = (int16_t) calc;
+ }
+}
+
+#endif /*LV_USE_DRAW_EVE*/
diff --git a/lib/libesp32_lvgl/lvgl/src/libs/FT800-FT813/EVE_suppplemental.h b/lib/libesp32_lvgl/lvgl/src/libs/FT800-FT813/EVE_suppplemental.h
new file mode 100644
index 000000000..c55a8dc9c
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/libs/FT800-FT813/EVE_suppplemental.h
@@ -0,0 +1,53 @@
+/*
+@file EVE_supplemental.h
+@brief prototypes for supplemental functions
+@version 5.0
+@date 2023-12-23
+@author Rudolph Riedel
+
+@section LICENSE
+
+MIT License
+
+Copyright (c) 2016-2023 Rudolph Riedel
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the Software
+is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+@section History
+
+5.0
+- added EVE_polar_cartesian()
+
+*/
+
+#ifndef EVE_SUPPLEMENTAL_H
+#define EVE_SUPPLEMENTAL_H
+
+#include "EVE.h"
+#include "EVE_commands.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+void EVE_widget_circle(int16_t xc0, int16_t yc0, uint16_t radius, uint16_t border, uint32_t bgcolor);
+void EVE_widget_rectangle(int16_t xc0, int16_t yc0, int16_t wid, int16_t hgt, int16_t border, uint16_t linewidth, uint32_t bgcolor);
+void EVE_polar_cartesian(uint16_t length, uint16_t angle, int16_t *p_xc0, int16_t *p_yc0);
+
+#endif /* EVE_SUPPLEMENTAL_H */
diff --git a/lib/libesp32_lvgl/lvgl/src/libs/FT800-FT813/EVE_target.h b/lib/libesp32_lvgl/lvgl/src/libs/FT800-FT813/EVE_target.h
new file mode 100644
index 000000000..76a1f4a95
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/libs/FT800-FT813/EVE_target.h
@@ -0,0 +1,111 @@
+#ifndef EVE_TARGET_H
+#define EVE_TARGET_H
+
+#include "../../draw/eve/lv_draw_eve_private.h"
+#include "../../tick/lv_tick.h"
+#include "../../misc/lv_utils.h"
+#include "../../core/lv_global.h"
+
+#define lv_eve_write_buf (LV_GLOBAL_DEFAULT()->draw_eve_unit->lv_eve_write_buf)
+#define lv_eve_write_buf_len (LV_GLOBAL_DEFAULT()->draw_eve_unit->lv_eve_write_buf_len)
+
+static inline void lv_eve_target_flush_write_buf(void);
+
+static inline void DELAY_MS(uint16_t ms)
+{
+ lv_delay_ms(ms);
+}
+
+static inline void EVE_cs_set(void)
+{
+ lv_draw_eve_unit_g->op_cb(lv_draw_eve_unit_g->disp, LV_DRAW_EVE_OPERATION_CS_ASSERT, NULL, 0);
+}
+
+static inline void EVE_cs_clear(void)
+{
+ lv_eve_target_flush_write_buf();
+ lv_draw_eve_unit_g->op_cb(lv_draw_eve_unit_g->disp, LV_DRAW_EVE_OPERATION_CS_DEASSERT, NULL, 0);
+}
+
+static inline void EVE_pdn_set(void)
+{
+ lv_draw_eve_unit_g->op_cb(lv_draw_eve_unit_g->disp, LV_DRAW_EVE_OPERATION_POWERDOWN_SET, NULL, 0);
+}
+
+static inline void EVE_pdn_clear(void)
+{
+ lv_draw_eve_unit_g->op_cb(lv_draw_eve_unit_g->disp, LV_DRAW_EVE_OPERATION_POWERDOWN_CLEAR, NULL, 0);
+}
+
+static inline void spi_transmit(uint8_t data)
+{
+#if LV_DRAW_EVE_WRITE_BUFFER_SIZE_INTERNAL
+ if(lv_eve_write_buf_len == sizeof(lv_eve_write_buf)) {
+ lv_eve_target_flush_write_buf();
+ }
+ lv_eve_write_buf[lv_eve_write_buf_len++] = data;
+#else
+ lv_draw_eve_unit_g->op_cb(lv_draw_eve_unit_g->disp, LV_DRAW_EVE_OPERATION_SPI_SEND, &data, sizeof(data));
+#endif
+}
+
+static inline void spi_transmit_32(uint32_t data)
+{
+#if LV_BIG_ENDIAN_SYSTEM
+ data = lv_swap_bytes_32(data);
+#endif
+#if LV_DRAW_EVE_WRITE_BUFFER_SIZE_INTERNAL
+ if(lv_eve_write_buf_len + 4 > sizeof(lv_eve_write_buf)) {
+ lv_eve_target_flush_write_buf();
+ }
+ uint8_t * buf4 = (uint8_t *) &data;
+ lv_eve_write_buf[lv_eve_write_buf_len++] = buf4[0];
+ lv_eve_write_buf[lv_eve_write_buf_len++] = buf4[1];
+ lv_eve_write_buf[lv_eve_write_buf_len++] = buf4[2];
+ lv_eve_write_buf[lv_eve_write_buf_len++] = buf4[3];
+#else
+ lv_draw_eve_unit_g->op_cb(lv_draw_eve_unit_g->disp, LV_DRAW_EVE_OPERATION_SPI_SEND, &data, sizeof(data));
+#endif
+}
+
+static inline void lv_eve_target_spi_transmit_buf(const void * data, uint32_t size)
+{
+ lv_eve_target_flush_write_buf();
+ lv_draw_eve_unit_g->op_cb(lv_draw_eve_unit_g->disp, LV_DRAW_EVE_OPERATION_SPI_SEND, (void *) data, size);
+}
+
+static inline void lv_eve_target_flush_write_buf(void)
+{
+#if LV_DRAW_EVE_WRITE_BUFFER_SIZE_INTERNAL
+ if(lv_eve_write_buf_len == 0) {
+ return;
+ }
+ lv_draw_eve_unit_g->op_cb(lv_draw_eve_unit_g->disp, LV_DRAW_EVE_OPERATION_SPI_SEND, lv_eve_write_buf, lv_eve_write_buf_len);
+ lv_eve_write_buf_len = 0;
+#endif
+}
+
+static inline void spi_transmit_burst(uint32_t data)
+{
+ spi_transmit_32(data);
+}
+
+static inline uint8_t spi_receive(uint8_t data)
+{
+ /* `data` is 0 everywhere `spi_receive` is called in the FT800-FT813 library */
+ LV_UNUSED(data);
+
+ lv_eve_target_flush_write_buf();
+
+ uint8_t byte;
+ lv_draw_eve_unit_g->op_cb(lv_draw_eve_unit_g->disp, LV_DRAW_EVE_OPERATION_SPI_RECEIVE, &byte, 1);
+
+ return byte;
+}
+
+static inline uint8_t fetch_flash_byte(const uint8_t *p_data)
+{
+ return (*p_data);
+}
+
+#endif /* EVE_TARGET_H_ */
diff --git a/lib/libesp32_lvgl/lvgl/src/libs/FT800-FT813/LICENSE b/lib/libesp32_lvgl/lvgl/src/libs/FT800-FT813/LICENSE
new file mode 100644
index 000000000..a6ab28bb7
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/libs/FT800-FT813/LICENSE
@@ -0,0 +1,20 @@
+MIT License
+
+Copyright (c) 2016-2024 Rudolph Riedel
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense,
+and/or sell copies of the Software, and to permit persons to whom the Software
+is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/lib/libesp32_lvgl/lvgl/src/libs/FT800-FT813/README.md b/lib/libesp32_lvgl/lvgl/src/libs/FT800-FT813/README.md
new file mode 100644
index 000000000..211acb1eb
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/libs/FT800-FT813/README.md
@@ -0,0 +1,245 @@
+# EVE2 / EVE3 / EVE4 code library
+This is a code library for EVE2/EVE3/EVE4 graphics controller ICs from FTDI/Bridgetek:
+
+http://www.ftdichip.com/EVE.htm
+http://brtchip.com/eve/
+http://brtchip.com/ft81x/
+https://brtchip.com/bt81x/
+
+It contains code for and has been used with various micro-controllers and displays.
+
+## Controllers
+
+I have used it so far with:
+
+- 8-Bit AVR, specifically the 90CAN series
+- Arduino: Uno R3, mini-pro, ESP8266, ESP32, Metro-M4 (DMA), STM32 Nucleo_F446RE (DMA), XMC1100, Uno R4
+- Renesas F1L RH850
+- Infineon Aurix TC222
+- GD32VF103
+- ATSAMC21J18A (DMA)
+- ATSAME51J19A (DMA)
+- ESP32 (DMA)
+- RP2040 Baremetal (DMA) + Arduino (DMA) - Raspberry Pi Pico
+- S32K144 (DMA)
+- GD32C103CBT6 (DMA)
+- STM32G0B1CET6
+
+I have reports of successfully using it with:
+
+- ATSAMV70
+- ATSAMD20
+- ATSAME4
+- MSP430
+- MSP432
+- some PICs
+- ATxmega128A1
+- TMS320F28335
+
+## Displays
+
+The TFTs tested so far:
+
+- FT810CB-HY50HD http://www.hotmcu.com/5-graphical-lcd-touchscreen-800x480-spi-ft810-p-286.html
+- FT811CB-HY50HD http://www.hotmcu.com/5-graphical-lcd-capacitive-touch-screen-800x480-spi-ft811-p-301.html
+- RVT70UQFNWC0x https://riverdi.com/product/rvt70uqfnwc0x/
+- RVT50
+- ADAM101-LCP-SWVGA-NEW from Glyn, 10.1" 1024x600 cap-touch
+- EVE2-38A https://www.matrixorbital.com/eve2-38a
+- EVE2-35G https://www.matrixorbital.com/eve2-35g
+- EVE2-43G https://www.matrixorbital.com/eve2-43g
+- EVE2-50G https://www.matrixorbital.com/eve2-50g
+- EVE2-70G https://www.matrixorbital.com/eve2-70g
+- NHD-3.5-320240FT-CSXV-CTP
+- RVT43ULBNWC00 (RiTFT-43-CAP-UX) https://riverdi.com/product/ritft43capux/
+- RVT50AQBNWC00 (RiTFT-50-CAP) https://riverdi.com/product/ritft50cap/
+- EVE3-50G https://www.matrixorbital.com/eve3-50g
+- PAF90B5WFNWC01 http://www.panadisplay.com/ftdi-intelligent-display/9-inch-lcd-with-touch-with-bt815-board.html
+- EVE3-43G https://www.matrixorbital.com/eve3-43g
+- EVE3-35G https://www.matrixorbital.com/eve3-35g
+- CFAF240400C0-030SC https://www.crystalfontz.com/product/cfaf240400c0030sca11-240x400-eve-touchscreen-tft-ft813
+- CFAF320240F-035T https://www.crystalfontz.com/product/cfaf320240f035ttsa11-320x240-eve-tft-lcd-display-kit
+- CFAF480128A0-039TC
+- CFAF800480E0-050SC https://www.crystalfontz.com/product/cfaf800480e1050sca11-800x480-eve-accelerated-tft
+- GEN4-FT813-50CTP-CLB https://4dsystems.com.au/gen4-ft813-50ctp-clb
+- RVT101HVBNWC00-B https://riverdi.com/product/rvt101hvbnwc00-b/
+- RVT70HSBNWC00-B https://riverdi.com/product/rvt70hsbnwc00-b/
+- RVT50HQBNWC00-B https://riverdi.com/product/rvt50hqbnwc00-b/
+- CFAF1024600B0-070SC-A1 https://www.crystalfontz.com/product/cfaf1024600b0070sca1-1024x600-7-inch-eve-tft
+- Sunflower shield from Cowfish Studios
+- GD3X Gameduino shield
+
+## This is version 5
+
+This is version 5 of this code library and there are a couple of changes from V4.
+
+First of all, support for FT80x is gone. The main reason is that this allowed a nice speed improvement modification that only works with FT81x and beyond.
+Then there is a hard break from FT80x to FT81x with ony 256k of memory in FT80x but 1MB in FT81x. The memory map is different and all the registers are located elsewhere.
+FT810, FT811, FT812, FT813, BT815, BT816, BT817 and BT818 can use the exact same code as long none of the new features of BT81x are used - and there are plenty of modules with these available to choose from
+
+As a side effect all commands are automatically started now.
+
+Second is that there are two sets of display-list building command functions now: EVE_cmd_xxx() and EVE_cmd_xxx_burst().
+The EVE_cmd_xxx_burst() functions are optimized for speed, these are pure data transfer functions and do not even check anymore if burst mode is active.
+
+## Structure
+
+This library currently has nine files that I hope are named to make clear what these do:
+
+- EVE.h - this has all defines for FT81x / BT81x itself, so here are options, registers, commands and macros defined
+- EVE_commands.c - this has all the API functions that are to be called from an application
+- EVE_commands.h - this contains the prototypes for the functions in EVE_commands.c
+- EVE_config.h - this has all the parameters for the numerous supported display modules, here is definded which set of parameters is to be used
+- EVE_target.c - this has non-portable specific code for a number of supported controllers, mostly to support DMA
+- EVE_target.h - this has non-portable pin defines and code as "static inline" functions for all supported controllers
+- EVE_target.cpp - this is for Arduino C++ targets
+- EVE_cpp_wrapper.cpp - this is for Arduino C++ targets
+- EVE_cpp_wrapper.h - this is for Arduino C++ targets
+
+Addtionally there are these two:
+- EVE_supplemental.c
+- EVE_suppplemental.h
+
+This has the prototype and implementation for extra functions, so far:
+- EVE_widget_circle() - widget function to draw a circle
+- EVE_widget_rectangle() - widget function to draw a rectangle
+- EVE_polar_cartesian() - calculate coordinates from an angle and a length
+
+## Examples
+
+Generate a basic display list and tell EVE to use it:
+````
+EVE_cmd_dl(CMD_DLSTART); // tells EVE to start a new display-list
+EVE_cmd_dl(DL_CLEAR_COLOR_RGB | WHITE); // sets the background color
+EVE_cmd_dl(DL_CLEAR | CLR_COL | CLR_STN | CLR_TAG);
+EVE_color_rgb(BLACK);
+EVE_cmd_text(5, 15, 28, 0, "Hello there!");
+EVE_cmd_dl(DL_DISPLAY); // put in the display list to mark its end
+EVE_cmd_dl(CMD_SWAP); // tell EVE to use the new display list
+while (EVE_busy());
+````
+
+Note, these commands are executed one by one, for each command chip-select is pulled low, a three byte address is send, the data for the command and its parameters is send and then chip-select is pulled high again which also makes EVE execute the command.
+
+But there is a way to speed things up, we can get away with only sending the address once:
+````
+EVE_start_cmd_burst();
+EVE_cmd_dl_burst(CMD_DLSTART);
+EVE_cmd_dl_burst(DL_CLEAR_COLOR_RGB | WHITE);
+EVE_cmd_dl_burst(DL_CLEAR | CLR_COL | CLR_STN | CLR_TAG);
+EVE_color_rgb_burst(BLACK);
+EVE_cmd_text_burst(5, 15, 28, 0, "Hello there!");
+EVE_cmd_dl_burst(DL_DISPLAY);
+EVE_cmd_dl_burst(CMD_SWAP);
+EVE_end_cmd_burst();
+while (EVE_busy());
+````
+
+This does the same as the first example but faster.
+The preceding EVE_start_cmd_burst() either sets chip-select to low and sends out the three byte address.
+Or if DMA is available for the target you are compiling for with support code in EVE_target.c / EVE_target.cpp and EVE_target.h, it writes the address to EVE_dma_buffer and sets EVE_dma_buffer_index to 1.
+
+Note the trailing "_burst" in the following functions, these are special versions of these commands that can only be used within an EVE_start_cmd_burst()/EVE_end_cmd_bust() pair.
+These functions are optimized to push out data and nothing else.
+
+The final EVE_end_cmd_burst() either pulls back the chip-select to high.
+Or if we have DMA it calls EVE_start_dma_transfer() to start pushing out the buffer in the background.
+
+As we have 7 commands for EVE in these simple examples, the second one has the address overhead removed from six commands and therefore needs to transfer 18 bytes less over SPI.
+So even with a small 8-bit controller that does not support DMA this is a usefull optimization for building display lists.
+
+Using DMA has one caveat: we need to limit the transfer to <4k as we are writing to the FIFO of EVEs command co-processor. This is usually not an issue though as we can shorten the display list generation with previously generated snippets that we attach to the current list with CMD_APPEND. And when we use widgets like CMD_BUTTON or CMD_CLOCK the generated display list grows by a larger amount than what we need to put into the command-FIFO so we likely reach the 8k limit of the display-list before we hit the 4k limit of the command-FIFO.
+It is possible to use two or more DMA transfers to the FIFO to build a single display list, either to get around the 4k limit of the FIFO or in order to distribute the workload better of the time necessary between two display renewals.
+
+You could for example do this, spread over three consecutive calls:
+````
+EVE_start_cmd_burst();
+EVE_cmd_dl_burst(CMD_DLSTART);
+EVE_cmd_dl_burst(DL_CLEAR_COLOR_RGB | WHITE);
+EVE_end_cmd_burst();
+````
+
+````
+EVE_start_cmd_burst();
+EVE_cmd_dl_burst(DL_CLEAR | CLR_COL | CLR_STN | CLR_TAG);
+EVE_color_rgb_burst(BLACK);
+EVE_end_cmd_burst();
+````
+
+````
+EVE_start_cmd_burst();
+EVE_cmd_text_burst(5, 15, 28, 0, "Hello there!");
+EVE_cmd_dl_burst(DL_DISPLAY);
+EVE_cmd_dl_burst(CMD_SWAP);
+EVE_end_cmd_burst();
+````
+
+But you need to check with EVE_busy() before each of these blocks.
+Maybe similar like this never compiled pseudo-code:
+
+thread_1ms_update_display()
+{
+ static uint8_t state = 0;
+ static uint8_t count = 0;
+
+ count++;
+
+ if (E_OK == EVE_busy())
+ {
+ switch (state)
+ {
+ case 0:
+ update_first();
+ state = 1;
+ break;
+ case 1:
+ update_second();
+ state = 2;
+ break;
+ case 2:
+ if (counter > 19)
+ {
+ update_last_swap_list();
+ count = 0;
+ state = 0;
+ }
+ break;
+ }
+ }
+}
+
+
+## Remarks
+
+The examples in the "example_projects" drawer are for use with AtmelStudio7.
+For Arduino I am using PlatformIO with Visual Studio Code.
+
+The platform the code is compiled for is automatically detected thru compiler flags in EVE_target.h.
+
+The desired TFT is selected by adding a define for it to the build-environment, e.g. -DEVE_EVE3_50G
+There is a list of available options at the start of EVE_config.h sorted by chipset.
+
+The pins used for Chip-Select and Power-Down setup in the EVE_target/EVE_target_XXXXX.h file for your target with defines and these defines can be bypassed with defines in the build-environment.
+Check the apropriate header file for your desired target.
+
+When compiling for AVR you need to provide the clock it is running at in order to make the _delay_ms() calls used to initialize the TFT work with the intended timing.
+For other plattforms you need to provide a DELAY_MS(ms) function that works at least between 1ms and 56ms and is not performing these delays shorter than requested.
+The DELAY_MS(ms) is only used during initialization of the FT8xx/BT8xx.
+
+In Addition you need to initialize the pins used for Chip-Select and Power-Down in your hardware correctly to output.
+Plus setup the SPI accordingly, mode-0, 8-bit, MSB-first, not more than 11MHz for the initialization.
+A couple of targets already have a function EVE_init_spi() in EVE_target.c.
+
+A word of "warning", you have to take care yourself to not send more than 4kiB at once to the command co-processor
+or to not generate display lists that are longer than 8kiB.
+My library does not check and re-check the command-FIFO on every step.
+Also there are no checks for the validity of function arguments.
+This is optimized for speed, so the training wheels are off.
+
+## Post questions here
+
+Originally the project went public in the German mikrocontroller.net forum, the thread contains some insight: https://www.mikrocontroller.net/topic/395608
+
+Feel free to add to the discussion with questions or remarks.
+
+New: Github has a discussions feature as well: https://github.com/RudolphRiedel/FT800-FT813/discussions
diff --git a/lib/libesp32_lvgl/lvgl/src/libs/barcode/lv_barcode.c b/lib/libesp32_lvgl/lvgl/src/libs/barcode/lv_barcode.c
index 68034fb50..524a175de 100644
--- a/lib/libesp32_lvgl/lvgl/src/libs/barcode/lv_barcode.c
+++ b/lib/libesp32_lvgl/lvgl/src/libs/barcode/lv_barcode.c
@@ -13,6 +13,7 @@
#if LV_USE_BARCODE
#include "code128.h"
+#include "../../misc/cache/lv_cache.h"
/*********************
* DEFINES
diff --git a/lib/libesp32_lvgl/lvgl/src/libs/bin_decoder/lv_bin_decoder.c b/lib/libesp32_lvgl/lvgl/src/libs/bin_decoder/lv_bin_decoder.c
index 7015558dc..9c3157619 100644
--- a/lib/libesp32_lvgl/lvgl/src/libs/bin_decoder/lv_bin_decoder.c
+++ b/lib/libesp32_lvgl/lvgl/src/libs/bin_decoder/lv_bin_decoder.c
@@ -1,5 +1,5 @@
/**
- * @file lv_image_decoder.c
+ * @file lv_bin_decoder.c
*
*/
@@ -351,7 +351,18 @@ lv_result_t lv_bin_decoder_open(lv_image_decoder_t * decoder, lv_image_decoder_d
}
dsc->decoded = adjusted;
- if(use_directly || dsc->args.no_cache) return LV_RESULT_OK; /*Do not put image to cache if it can be used directly.*/
+ /* Copy user flags to the decoded image */
+ if(dsc->header.flags & LV_IMAGE_FLAGS_USER_MASK) {
+ lv_draw_buf_set_flag((lv_draw_buf_t *)dsc->decoded, dsc->header.flags & LV_IMAGE_FLAGS_USER_MASK);
+ }
+
+ /*Do not put image to cache if it can be used directly.*/
+ if(use_directly || dsc->args.no_cache) {
+ if(dsc->args.flush_cache && use_directly) {
+ dsc->args.flush_cache = false;
+ }
+ return LV_RESULT_OK;
+ }
/*If the image cache is disabled, just return the decoded image*/
if(!lv_image_cache_is_enabled()) return LV_RESULT_OK;
diff --git a/lib/libesp32_lvgl/lvgl/src/libs/ffmpeg/lv_ffmpeg.c b/lib/libesp32_lvgl/lvgl/src/libs/ffmpeg/lv_ffmpeg.c
index 65f4b7ca6..a88752082 100644
--- a/lib/libesp32_lvgl/lvgl/src/libs/ffmpeg/lv_ffmpeg.c
+++ b/lib/libesp32_lvgl/lvgl/src/libs/ffmpeg/lv_ffmpeg.c
@@ -345,7 +345,7 @@ static lv_result_t decoder_open(lv_image_decoder_t * decoder, lv_image_decoder_d
lv_draw_buf_set_flag(decoded, LV_IMAGE_FLAGS_MODIFIABLE);
/* Empty handlers to avoid decoder asserts */
- lv_draw_buf_handlers_init(&ffmpeg_ctx->draw_buf_handlers, NULL, NULL, NULL, NULL, NULL, NULL);
+ lv_draw_buf_handlers_init(&ffmpeg_ctx->draw_buf_handlers, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
decoded->handlers = &ffmpeg_ctx->draw_buf_handlers;
if(dsc->args.premultiply && ffmpeg_ctx->has_alpha) {
diff --git a/lib/libesp32_lvgl/lvgl/src/libs/freetype/LiberationSans-LICENSE.txt b/lib/libesp32_lvgl/lvgl/src/libs/freetype/LiberationSans-LICENSE.txt
new file mode 100644
index 000000000..aba73e8a4
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/libs/freetype/LiberationSans-LICENSE.txt
@@ -0,0 +1,102 @@
+Digitized data copyright (c) 2010 Google Corporation
+ with Reserved Font Arimo, Tinos and Cousine.
+Copyright (c) 2012 Red Hat, Inc.
+ with Reserved Font Name Liberation.
+
+This Font Software is licensed under the SIL Open Font License,
+Version 1.1.
+
+This license is copied below, and is also available with a FAQ at:
+http://scripts.sil.org/OFL
+
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+
+PREAMBLE The goals of the Open Font License (OFL) are to stimulate
+worldwide development of collaborative font projects, to support the font
+creation efforts of academic and linguistic communities, and to provide
+a free and open framework in which fonts may be shared and improved in
+partnership with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and
+redistributed freely as long as they are not sold by themselves.
+The fonts, including any derivative works, can be bundled, embedded,
+redistributed and/or sold with any software provided that any reserved
+names are not used by derivative works. The fonts and derivatives,
+however, cannot be released under any other type of license. The
+requirement for fonts to remain under this license does not apply to
+any document created using the fonts or their derivatives.
+
+
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright
+Holder(s) under this license and clearly marked as such.
+This may include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the
+copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components
+as distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting,
+or substituting ? in part or in whole ?
+any of the components of the Original Version, by changing formats or
+by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical writer
+or other person who contributed to the Font Software.
+
+
+PERMISSION & CONDITIONS
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of the Font Software, to use, study, copy, merge, embed, modify,
+redistribute, and sell modified and unmodified copies of the Font
+Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components,in
+ Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled,
+ redistributed and/or sold with any software, provided that each copy
+ contains the above copyright notice and this license. These can be
+ included either as stand-alone text files, human-readable headers or
+ in the appropriate machine-readable metadata fields within text or
+ binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font
+ Name(s) unless explicit written permission is granted by the
+ corresponding Copyright Holder. This restriction only applies to the
+ primary font name as presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+ Software shall not be used to promote, endorse or advertise any
+ Modified Version, except to acknowledge the contribution(s) of the
+ Copyright Holder(s) and the Author(s) or with their explicit written
+ permission.
+
+5) The Font Software, modified or unmodified, in part or in whole, must
+ be distributed entirely under this license, and must not be distributed
+ under any other license. The requirement for fonts to remain under
+ this license does not apply to any document created using the Font
+ Software.
+
+
+
+TERMINATION
+This license becomes null and void if any of the above conditions are not met.
+
+
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER
+DEALINGS IN THE FONT SOFTWARE.
+
diff --git a/lib/libesp32_lvgl/lvgl/src/libs/freetype/LiberationSans-Regular.ttf b/lib/libesp32_lvgl/lvgl/src/libs/freetype/LiberationSans-Regular.ttf
new file mode 100644
index 000000000..8a67859c8
Binary files /dev/null and b/lib/libesp32_lvgl/lvgl/src/libs/freetype/LiberationSans-Regular.ttf differ
diff --git a/lib/libesp32_lvgl/lvgl/src/libs/freetype/arial.ttf b/lib/libesp32_lvgl/lvgl/src/libs/freetype/arial.ttf
deleted file mode 100644
index 886789b85..000000000
Binary files a/lib/libesp32_lvgl/lvgl/src/libs/freetype/arial.ttf and /dev/null differ
diff --git a/lib/libesp32_lvgl/lvgl/src/libs/freetype/LICENSE.txt b/lib/libesp32_lvgl/lvgl/src/libs/freetype/freetype-LICENSE.txt
similarity index 100%
rename from lib/libesp32_lvgl/lvgl/src/libs/freetype/LICENSE.txt
rename to lib/libesp32_lvgl/lvgl/src/libs/freetype/freetype-LICENSE.txt
diff --git a/lib/libesp32_lvgl/lvgl/src/libs/freetype/lv_freetype.c b/lib/libesp32_lvgl/lvgl/src/libs/freetype/lv_freetype.c
index 77e33244a..ce8150b30 100755
--- a/lib/libesp32_lvgl/lvgl/src/libs/freetype/lv_freetype.c
+++ b/lib/libesp32_lvgl/lvgl/src/libs/freetype/lv_freetype.c
@@ -117,6 +117,10 @@ lv_result_t lv_freetype_init(uint32_t max_glyph_cnt)
void lv_freetype_uninit(void)
{
lv_freetype_context_t * ctx = lv_freetype_get_context();
+ if(!ctx) {
+ return;
+ }
+
lv_freetype_cleanup(ctx);
lv_free(ft_ctx);
diff --git a/lib/libesp32_lvgl/lvgl/src/libs/frogfs/LICENSE.txt b/lib/libesp32_lvgl/lvgl/src/libs/frogfs/LICENSE.txt
new file mode 100644
index 000000000..be2cc4dfb
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/libs/frogfs/LICENSE.txt
@@ -0,0 +1,362 @@
+Mozilla Public License, version 2.0
+
+1. Definitions
+
+1.1. "Contributor"
+
+ means each individual or legal entity that creates, contributes to the
+ creation of, or owns Covered Software.
+
+1.2. "Contributor Version"
+
+ means the combination of the Contributions of others (if any) used by a
+ Contributor and that particular Contributor's Contribution.
+
+1.3. "Contribution"
+
+ means Covered Software of a particular Contributor.
+
+1.4. "Covered Software"
+
+ means Source Code Form to which the initial Contributor has attached the
+ notice in Exhibit A, the Executable Form of such Source Code Form, and
+ Modifications of such Source Code Form, in each case including portions
+ thereof.
+
+1.5. "Incompatible With Secondary Licenses"
+ means
+
+ a. that the initial Contributor has attached the notice described in
+ Exhibit B to the Covered Software; or
+
+ b. that the Covered Software was made available under the terms of
+ version 1.1 or earlier of the License, but not also under the terms of
+ a Secondary License.
+
+1.6. "Executable Form"
+
+ means any form of the work other than Source Code Form.
+
+1.7. "Larger Work"
+
+ means a work that combines Covered Software with other material, in a
+ separate file or files, that is not Covered Software.
+
+1.8. "License"
+
+ means this document.
+
+1.9. "Licensable"
+
+ means having the right to grant, to the maximum extent possible, whether
+ at the time of the initial grant or subsequently, any and all of the
+ rights conveyed by this License.
+
+1.10. "Modifications"
+
+ means any of the following:
+
+ a. any file in Source Code Form that results from an addition to,
+ deletion from, or modification of the contents of Covered Software; or
+
+ b. any new file in Source Code Form that contains any Covered Software.
+
+1.11. "Patent Claims" of a Contributor
+
+ means any patent claim(s), including without limitation, method,
+ process, and apparatus claims, in any patent Licensable by such
+ Contributor that would be infringed, but for the grant of the License,
+ by the making, using, selling, offering for sale, having made, import,
+ or transfer of either its Contributions or its Contributor Version.
+
+1.12. "Secondary License"
+
+ means either the GNU General Public License, Version 2.0, the GNU Lesser
+ General Public License, Version 2.1, the GNU Affero General Public
+ License, Version 3.0, or any later versions of those licenses.
+
+1.13. "Source Code Form"
+
+ means the form of the work preferred for making modifications.
+
+1.14. "You" (or "Your")
+
+ means an individual or a legal entity exercising rights under this
+ License. For legal entities, "You" includes any entity that controls, is
+ controlled by, or is under common control with You. For purposes of this
+ definition, "control" means (a) the power, direct or indirect, to cause
+ the direction or management of such entity, whether by contract or
+ otherwise, or (b) ownership of more than fifty percent (50%) of the
+ outstanding shares or beneficial ownership of such entity.
+
+
+2. License Grants and Conditions
+
+2.1. Grants
+
+ Each Contributor hereby grants You a world-wide, royalty-free,
+ non-exclusive license:
+
+ a. under intellectual property rights (other than patent or trademark)
+ Licensable by such Contributor to use, reproduce, make available,
+ modify, display, perform, distribute, and otherwise exploit its
+ Contributions, either on an unmodified basis, with Modifications, or
+ as part of a Larger Work; and
+
+ b. under Patent Claims of such Contributor to make, use, sell, offer for
+ sale, have made, import, and otherwise transfer either its
+ Contributions or its Contributor Version.
+
+2.2. Effective Date
+
+ The licenses granted in Section 2.1 with respect to any Contribution
+ become effective for each Contribution on the date the Contributor first
+ distributes such Contribution.
+
+2.3. Limitations on Grant Scope
+
+ The licenses granted in this Section 2 are the only rights granted under
+ this License. No additional rights or licenses will be implied from the
+ distribution or licensing of Covered Software under this License.
+ Notwithstanding Section 2.1(b) above, no patent license is granted by a
+ Contributor:
+
+ a. for any code that a Contributor has removed from Covered Software; or
+
+ b. for infringements caused by: (i) Your and any other third party's
+ modifications of Covered Software, or (ii) the combination of its
+ Contributions with other software (except as part of its Contributor
+ Version); or
+
+ c. under Patent Claims infringed by Covered Software in the absence of
+ its Contributions.
+
+ This License does not grant any rights in the trademarks, service marks,
+ or logos of any Contributor (except as may be necessary to comply with
+ the notice requirements in Section 3.4).
+
+2.4. Subsequent Licenses
+
+ No Contributor makes additional grants as a result of Your choice to
+ distribute the Covered Software under a subsequent version of this
+ License (see Section 10.2) or under the terms of a Secondary License (if
+ permitted under the terms of Section 3.3).
+
+2.5. Representation
+
+ Each Contributor represents that the Contributor believes its
+ Contributions are its original creation(s) or it has sufficient rights to
+ grant the rights to its Contributions conveyed by this License.
+
+2.6. Fair Use
+
+ This License is not intended to limit any rights You have under
+ applicable copyright doctrines of fair use, fair dealing, or other
+ equivalents.
+
+2.7. Conditions
+
+ Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted in
+ Section 2.1.
+
+
+3. Responsibilities
+
+3.1. Distribution of Source Form
+
+ All distribution of Covered Software in Source Code Form, including any
+ Modifications that You create or to which You contribute, must be under
+ the terms of this License. You must inform recipients that the Source
+ Code Form of the Covered Software is governed by the terms of this
+ License, and how they can obtain a copy of this License. You may not
+ attempt to alter or restrict the recipients' rights in the Source Code
+ Form.
+
+3.2. Distribution of Executable Form
+
+ If You distribute Covered Software in Executable Form then:
+
+ a. such Covered Software must also be made available in Source Code Form,
+ as described in Section 3.1, and You must inform recipients of the
+ Executable Form how they can obtain a copy of such Source Code Form by
+ reasonable means in a timely manner, at a charge no more than the cost
+ of distribution to the recipient; and
+
+ b. You may distribute such Executable Form under the terms of this
+ License, or sublicense it under different terms, provided that the
+ license for the Executable Form does not attempt to limit or alter the
+ recipients' rights in the Source Code Form under this License.
+
+3.3. Distribution of a Larger Work
+
+ You may create and distribute a Larger Work under terms of Your choice,
+ provided that You also comply with the requirements of this License for
+ the Covered Software. If the Larger Work is a combination of Covered
+ Software with a work governed by one or more Secondary Licenses, and the
+ Covered Software is not Incompatible With Secondary Licenses, this
+ License permits You to additionally distribute such Covered Software
+ under the terms of such Secondary License(s), so that the recipient of
+ the Larger Work may, at their option, further distribute the Covered
+ Software under the terms of either this License or such Secondary
+ License(s).
+
+3.4. Notices
+
+ You may not remove or alter the substance of any license notices
+ (including copyright notices, patent notices, disclaimers of warranty, or
+ limitations of liability) contained within the Source Code Form of the
+ Covered Software, except that You may alter any license notices to the
+ extent required to remedy known factual inaccuracies.
+
+3.5. Application of Additional Terms
+
+ You may choose to offer, and to charge a fee for, warranty, support,
+ indemnity or liability obligations to one or more recipients of Covered
+ Software. However, You may do so only on Your own behalf, and not on
+ behalf of any Contributor. You must make it absolutely clear that any
+ such warranty, support, indemnity, or liability obligation is offered by
+ You alone, and You hereby agree to indemnify every Contributor for any
+ liability incurred by such Contributor as a result of warranty, support,
+ indemnity or liability terms You offer. You may include additional
+ disclaimers of warranty and limitations of liability specific to any
+ jurisdiction.
+
+4. Inability to Comply Due to Statute or Regulation
+
+ If it is impossible for You to comply with any of the terms of this License
+ with respect to some or all of the Covered Software due to statute,
+ judicial order, or regulation then You must: (a) comply with the terms of
+ this License to the maximum extent possible; and (b) describe the
+ limitations and the code they affect. Such description must be placed in a
+ text file included with all distributions of the Covered Software under
+ this License. Except to the extent prohibited by statute or regulation,
+ such description must be sufficiently detailed for a recipient of ordinary
+ skill to be able to understand it.
+
+5. Termination
+
+5.1. The rights granted under this License will terminate automatically if You
+ fail to comply with any of its terms. However, if You become compliant,
+ then the rights granted under this License from a particular Contributor
+ are reinstated (a) provisionally, unless and until such Contributor
+ explicitly and finally terminates Your grants, and (b) on an ongoing
+ basis, if such Contributor fails to notify You of the non-compliance by
+ some reasonable means prior to 60 days after You have come back into
+ compliance. Moreover, Your grants from a particular Contributor are
+ reinstated on an ongoing basis if such Contributor notifies You of the
+ non-compliance by some reasonable means, this is the first time You have
+ received notice of non-compliance with this License from such
+ Contributor, and You become compliant prior to 30 days after Your receipt
+ of the notice.
+
+5.2. If You initiate litigation against any entity by asserting a patent
+ infringement claim (excluding declaratory judgment actions,
+ counter-claims, and cross-claims) alleging that a Contributor Version
+ directly or indirectly infringes any patent, then the rights granted to
+ You by any and all Contributors for the Covered Software under Section
+ 2.1 of this License shall terminate.
+
+5.3. In the event of termination under Sections 5.1 or 5.2 above, all end user
+ license agreements (excluding distributors and resellers) which have been
+ validly granted by You or Your distributors under this License prior to
+ termination shall survive termination.
+
+6. Disclaimer of Warranty
+
+ Covered Software is provided under this License on an "as is" basis,
+ without warranty of any kind, either expressed, implied, or statutory,
+ including, without limitation, warranties that the Covered Software is free
+ of defects, merchantable, fit for a particular purpose or non-infringing.
+ The entire risk as to the quality and performance of the Covered Software
+ is with You. Should any Covered Software prove defective in any respect,
+ You (not any Contributor) assume the cost of any necessary servicing,
+ repair, or correction. This disclaimer of warranty constitutes an essential
+ part of this License. No use of any Covered Software is authorized under
+ this License except under this disclaimer.
+
+7. Limitation of Liability
+
+ Under no circumstances and under no legal theory, whether tort (including
+ negligence), contract, or otherwise, shall any Contributor, or anyone who
+ distributes Covered Software as permitted above, be liable to You for any
+ direct, indirect, special, incidental, or consequential damages of any
+ character including, without limitation, damages for lost profits, loss of
+ goodwill, work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses, even if such party shall have been
+ informed of the possibility of such damages. This limitation of liability
+ shall not apply to liability for death or personal injury resulting from
+ such party's negligence to the extent applicable law prohibits such
+ limitation. Some jurisdictions do not allow the exclusion or limitation of
+ incidental or consequential damages, so this exclusion and limitation may
+ not apply to You.
+
+8. Litigation
+
+ Any litigation relating to this License may be brought only in the courts
+ of a jurisdiction where the defendant maintains its principal place of
+ business and such litigation shall be governed by laws of that
+ jurisdiction, without reference to its conflict-of-law provisions. Nothing
+ in this Section shall prevent a party's ability to bring cross-claims or
+ counter-claims.
+
+9. Miscellaneous
+
+ This License represents the complete agreement concerning the subject
+ matter hereof. If any provision of this License is held to be
+ unenforceable, such provision shall be reformed only to the extent
+ necessary to make it enforceable. Any law or regulation which provides that
+ the language of a contract shall be construed against the drafter shall not
+ be used to construe this License against a Contributor.
+
+
+10. Versions of the License
+
+10.1. New Versions
+
+ Mozilla Foundation is the license steward. Except as provided in Section
+ 10.3, no one other than the license steward has the right to modify or
+ publish new versions of this License. Each version will be given a
+ distinguishing version number.
+
+10.2. Effect of New Versions
+
+ You may distribute the Covered Software under the terms of the version
+ of the License under which You originally received the Covered Software,
+ or under the terms of any subsequent version published by the license
+ steward.
+
+10.3. Modified Versions
+
+ If you create software not governed by this License, and you want to
+ create a new license for such software, you may create and use a
+ modified version of this License if you rename the license and remove
+ any references to the name of the license steward (except to note that
+ such modified license differs from this License).
+
+10.4. Distributing Source Code Form that is Incompatible With Secondary
+ Licenses If You choose to distribute Source Code Form that is
+ Incompatible With Secondary Licenses under the terms of this version of
+ the License, the notice described in Exhibit B of this License must be
+ attached.
+
+Exhibit A - Source Code Form License Notice
+
+ This Source Code Form is subject to the
+ terms of the Mozilla Public License, v.
+ 2.0. If a copy of the MPL was not
+ distributed with this file, You can
+ obtain one at
+ http://mozilla.org/MPL/2.0/.
+
+If it is not possible or desirable to put the notice in a particular file,
+then You may include the notice in a location (such as a LICENSE file in a
+relevant directory) where a recipient would be likely to look for such a
+notice.
+
+You may add additional accurate notices of copyright ownership.
+
+Exhibit B - "Incompatible With Secondary Licenses" Notice
+
+ This Source Code Form is "Incompatible
+ With Secondary Licenses", as defined by
+ the Mozilla Public License, v. 2.0.
diff --git a/lib/libesp32_lvgl/lvgl/src/libs/frogfs/include/frogfs/frogfs.h b/lib/libesp32_lvgl/lvgl/src/libs/frogfs/include/frogfs/frogfs.h
new file mode 100644
index 000000000..fdc95acff
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/libs/frogfs/include/frogfs/frogfs.h
@@ -0,0 +1,260 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#pragma once
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "../../../../lv_conf_internal.h"
+#include LV_STDDEF_INCLUDE
+#include LV_STDINT_INCLUDE
+#include "frogfs_types.h"
+
+/**
+ * \brief Magic number used in the frogfs file header
+ */
+#define FROGFS_MAGIC 0x474F5246 /** FROG */
+
+/**
+ * \brief Major version this source distribution supports
+ */
+#define FROGFS_VER_MAJOR 1
+
+/**
+ * \brief Minor version this source distribution supports
+ */
+#define FROGFS_VER_MINOR 0
+
+/**
+ * \brief Flag for \a frogfs_open to open any file as raw. Useful to
+ * pass compressed data over a transport such as HTTP.
+ */
+#define FROGFS_OPEN_RAW (1 << 0)
+
+/**
+ * \brief Enum of frogfs entry types
+ */
+typedef enum frogfs_entry_type_t {
+ FROGFS_ENTRY_TYPE_DIR,
+ FROGFS_ENTRY_TYPE_FILE,
+} frogfs_entry_type_t;
+
+/**
+ * \brief Compression algorithm ids
+ */
+typedef enum frogfs_comp_algo_t {
+ FROGFS_COMP_ALGO_NONE,
+ FROGFS_COMP_ALGO_ZLIB,
+ FROGFS_COMP_ALGO_HEATSHRINK,
+ FROGFS_COMP_ALGO_GZIP,
+} frogfs_comp_algo_t;
+
+/**
+ * \brief Configuration for the \a frogfs_init function
+ */
+typedef struct frogfs_config_t {
+ const void *addr; /**< address of an frogfs filesystem in memory */
+} frogfs_config_t;
+
+/**
+ * \brief A frogfs filesystem handle
+ */
+typedef struct frogfs_fs_t frogfs_fs_t;
+
+/**
+ * \brief Structure filled by the \a frogfs_stat function
+ */
+typedef struct frogfs_stat_t {
+ frogfs_entry_type_t type; /**< entry type */
+ size_t size; /**< uncompressed file size */
+ frogfs_comp_algo_t compression; /**< compression type */
+ size_t compressed_sz; /**< compressed file size */
+} frogfs_stat_t;
+
+/**
+ * \brief Fiilesystem entry pointer
+*/
+typedef struct frogfs_entry_t frogfs_entry_t;
+typedef struct frogfs_dh_t frogfs_dh_t;
+typedef struct frogfs_fh_t frogfs_fh_t;
+
+#if !defined(FROGFS_PRIVATE_STRUCTS)
+/**
+ * \brief A frogfs directory handle
+ */
+struct frogfs_dh_t {
+ const frogfs_fs_t *fs; /**< filesystem handle */
+ frogfs_entry_t *entry; /**< directory entry */
+};
+
+/**
+ * \brief A frogfs file handle
+ */
+struct frogfs_fh_t {
+ const frogfs_fs_t *fs; /**< filesystem handle */
+ frogfs_entry_t *entry; /**< file entry */
+};
+#endif
+
+/**
+ * \brief Initialize and return a \a frogfs_fs_t instance
+ * \param[in] config frogfs configuration
+ * \return \a frogfs_fs_t pointer or \a NULL on error
+ */
+frogfs_fs_t *frogfs_init(const frogfs_config_t *conf);
+
+/**
+ * \brief Tear down a \a frogfs_fs_t instance
+ * \param[in] fs \a frogfs_fs_t pointer
+ */
+void frogfs_deinit(frogfs_fs_t *fs);
+
+/**
+ * \brief Get frogfs entry for path
+ * \param[in] fs \a frogfs_fs_t pointer
+ * \param[in] path path string
+ * \return \a frogfs_entry_t pointer or \a NULL if path was not
+ * found
+ */
+const frogfs_entry_t *frogfs_get_entry(const frogfs_fs_t *fs,
+ const char *path);
+
+/**
+ * \brief Get name for frogfs entry
+ * \param[in] entry \a frogfs_entry_t pointer
+ * \return name string, caller is expected to free
+ */
+char *frogfs_get_name(const frogfs_entry_t *entry);
+
+/**
+ * \brief Get full path for frogfs entry
+ * \param[in] fs \a frogfs_fs_t pointer
+ * \param[in] entry \a frogfs_entry_t pointer
+ * \return full path string or \a NULL if entry is NULL, caller is
+ * expected to free
+ */
+char *frogfs_get_path(const frogfs_fs_t *fs, const frogfs_entry_t *entry);
+
+/**
+ * \brief Return if entry is a directory
+ * \param[in] entry \a frogfs_entry_t pointer
+ * \return 1 if directory, 0 otherwise
+ */
+int frogfs_is_dir(const frogfs_entry_t *entry);
+
+/**
+ * \brief Return if entry is a file
+ * \param[in] entry \a frogfs_entry_t pointer
+ * \return 1 if file, 0 otherwise
+ */
+int frogfs_is_file(const frogfs_entry_t *entry);
+
+/**
+ * \brief Get information about a frogfs entry
+ * \param[in] fs \a frogfs_fs_t pointer
+ * \param[in] entry \a frogfs_entry_t pointer
+ * \param[out] st \a frogfs_stat_t structure
+ */
+void frogfs_stat(const frogfs_fs_t *fs, const frogfs_entry_t *entry,
+ frogfs_stat_t *st);
+
+/**
+ * \brief Open a frogfs entry as a file from a \a frogfs_fs_t instance
+ * \param[in] fs \a frogfs_fs_t poitner
+ * \param[in] entry \a frogfs_entry_t pointer
+ * \param[in] flags open flags
+ * \return \a frogfs_fh_t or \a NULL if not found
+ */
+frogfs_fh_t *frogfs_open(const frogfs_fs_t *fs, const frogfs_entry_t *entry,
+ unsigned int flags);
+
+/**
+ * \brief Close an open file entry
+ * \param[in] f \a frogfs_fh_t pointer
+ */
+void frogfs_close(frogfs_fh_t *fh);
+
+/**
+ * \brief Determine if file handle is opened raw.
+ * \param[in] f \a frogfs_fh_t pointer
+ * \return 1 if file is open raw, 0 otherwise
+*/
+int frogfs_is_raw(frogfs_fh_t *fh);
+
+/**
+ * \brief Read data from an open file entry
+ * \param[in] f \a frogfs_fh_t pointer
+ * \param[out] buf buffer to read into
+ * \param[in] len maximum number of bytes to read
+ * \return actual number of bytes read, zero if end of file
+ * reached
+ */
+ssize_t frogfs_read(frogfs_fh_t *fh, void *buf, size_t len);
+
+/**
+ * \brief Seek to a position within an open file entry
+ * \param[in] f \a frogfs_fh_t pointer
+ * \param[in] offset file position (relative or absolute)
+ * \param[in] mode \a SEEK_SET, \a SEEK_CUR, or \a SEEK_END
+ * \return current position in file or < 0 upon error
+ */
+ssize_t frogfs_seek(frogfs_fh_t *fh, long offset, int mode);
+
+/**
+ * \brief Get the current position in an open file entry
+ * \param[in] f \a frogfs_fh_t pointer
+ * \return current position in file or < 0 upon error
+ */
+size_t frogfs_tell(frogfs_fh_t *fh);
+
+/**
+ * \brief Get raw memory for raw file entry
+ * \param[in] f \a frogfs_fh_t pointer
+ * \param[out] buf pointer pointer to buf
+ * \return length of raw data
+ */
+size_t frogfs_access(frogfs_fh_t *fh, const void **buf);
+
+/**
+ * \brief Open a directory for reading child entrys
+ * \param[in] fs \a frogfs_fs_t pointer
+ * \param[in] entry \a frogfs_entry_t pointer to root director
+ * \return \a frogfs_dh_t pointer or \a NULL if invalid
+ */
+frogfs_dh_t *frogfs_opendir(frogfs_fs_t *fs, const frogfs_entry_t *entry);
+
+/**
+ * \brief Close a directory
+ * \param[in] d \a frogfs_dh_t pointer
+ */
+void frogfs_closedir(frogfs_dh_t *dh);
+
+/**
+ * \brief Get the next child entry in directory
+ * \param[in] d \a frogfs_dh_t pointer
+ * \return \a frogfs_entry_t pointer or \a NULL if end has been
+ * reached
+ */
+const frogfs_entry_t *frogfs_readdir(frogfs_dh_t *dh);
+
+/**
+ * \brief Set dir entry index to a value returned by \a frogfs_telldir
+ * for the current \a frogfs_dh_t pointer
+ * \param[in] d \a frogfs_dh_t pointer
+ * \param[in] loc entry index
+ */
+void frogfs_seekdir(frogfs_dh_t *dh, long loc);
+
+/**
+ * \brief Return the current entry index for a directory
+ * \param[in] d \a frogfs_dh_t pointer
+ * \return entry index
+ */
+long frogfs_telldir(frogfs_dh_t *dh);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
diff --git a/lib/libesp32_lvgl/lvgl/src/libs/frogfs/include/frogfs/frogfs_types.h b/lib/libesp32_lvgl/lvgl/src/libs/frogfs/include/frogfs/frogfs_types.h
new file mode 100644
index 000000000..5ee1eed98
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/libs/frogfs/include/frogfs/frogfs_types.h
@@ -0,0 +1,6 @@
+#pragma once
+
+#include "../../../../lv_conf_internal.h"
+#include LV_STDINT_INCLUDE
+
+typedef intptr_t ssize_t;
diff --git a/lib/libesp32_lvgl/lvgl/src/libs/frogfs/src/decomp_raw.c b/lib/libesp32_lvgl/lvgl/src/libs/frogfs/src/decomp_raw.c
new file mode 100644
index 000000000..044c74ebd
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/libs/frogfs/src/decomp_raw.c
@@ -0,0 +1,77 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "../../../lv_conf_internal.h"
+#include LV_STDDEF_INCLUDE
+#include LV_STDINT_INCLUDE
+#include "../../../stdlib/lv_string.h"
+#include "../../../misc/lv_fs.h"
+
+#include "frogfs_priv.h"
+#include "frogfs_format.h"
+#include "../include/frogfs/frogfs.h"
+
+
+static ssize_t read_raw(frogfs_fh_t *f, void *buf, size_t len)
+{
+ size_t remaining = f->data_sz - ((char *)f->data_ptr - (char *)f->data_start);
+
+ if (len > remaining) {
+ len = remaining;
+ }
+
+ if (buf) {
+ lv_memcpy(buf, f->data_ptr, len);
+ }
+ f->data_ptr = (char *)f->data_ptr + len;
+
+ return len;
+}
+
+static ssize_t seek_raw(frogfs_fh_t *f, long offset, int mode)
+{
+ ssize_t new_pos = (char *)f->data_ptr - (char *)f->data_start;
+
+ if (mode == LV_FS_SEEK_SET) {
+ if (offset < 0) {
+ return -1;
+ }
+ if ((size_t)offset > f->data_sz) {
+ offset = f->data_sz;
+ }
+ new_pos = offset;
+ } else if (mode == LV_FS_SEEK_CUR) {
+ if (new_pos + offset < 0) {
+ new_pos = 0;
+ } else if ((size_t)new_pos > f->data_sz) {
+ new_pos = f->data_sz;
+ } else {
+ new_pos += offset;
+ }
+ } else if (mode == LV_FS_SEEK_END) {
+ if (offset > 0) {
+ return -1;
+ }
+ if (offset < -(ssize_t) f->data_sz) {
+ offset = 0;
+ }
+ new_pos = f->data_sz + offset;
+ } else {
+ return -1;
+ }
+
+ f->data_ptr = (char *)f->data_start + new_pos;
+ return new_pos;
+}
+
+static size_t tell_raw(frogfs_fh_t *f)
+{
+ return (char *)f->data_ptr - (char *)f->data_start;
+}
+
+const frogfs_decomp_funcs_t frogfs_decomp_raw = {
+ .read = read_raw,
+ .seek = seek_raw,
+ .tell = tell_raw,
+};
diff --git a/lib/libesp32_lvgl/lvgl/src/libs/frogfs/src/frogfs.c b/lib/libesp32_lvgl/lvgl/src/libs/frogfs/src/frogfs.c
new file mode 100644
index 000000000..4c2ed1ce0
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/libs/frogfs/src/frogfs.c
@@ -0,0 +1,449 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+/**
+ * This is a read-only filesystem that uses a sorted hash table to locate
+ * entries in a monolithic binary. The binary is generated by the mkfrogfs
+ * tool that comes with this source distribution.
+ */
+
+#include "../../../lv_conf_internal.h"
+#if LV_USE_FS_FROGFS
+
+#include LV_INTTYPES_INCLUDE
+#include LV_LIMITS_INCLUDE
+#include LV_STDINT_INCLUDE
+#include "../../../stdlib/lv_string.h"
+#include "../../../stdlib/lv_mem.h"
+#include "../../../misc/lv_log.h"
+#include "../../../misc/lv_assert.h"
+#include "../../../misc/lv_fs.h"
+
+#include "frogfs_priv.h"
+#include "frogfs_format.h"
+#include "../include/frogfs/frogfs.h"
+
+
+typedef struct frogfs_fs_t {
+ const frogfs_head_t *head; /**< fs header pointer */
+ const frogfs_hash_t *hash; /**< hash table pointer */
+ const frogfs_dir_t *root; /**< root directory entry */
+ int num_entries; /**< total number of file system entries */
+} frogfs_fs_t;
+
+// Returns the current or next highest multiple of 4.
+static inline size_t align(size_t n)
+{
+ return ((n + 4 - 1) / 4) * 4;
+}
+
+// String hashing function.
+static inline uint32_t djb2_hash(const char *s)
+{
+ unsigned long hash = 5381;
+
+ while (*s) {
+ /* hash = hash * 33 ^ c */
+ hash = ((hash << 5) + hash) ^ *s++;
+ }
+
+ return hash;
+}
+
+static const char *get_name(const frogfs_entry_t *entry)
+{
+ if (FROGFS_IS_DIR(entry)) {
+ return (const void *) entry + 8 + (entry->u.child_count * 4);
+ } else if (FROGFS_IS_FILE(entry) && !FROGFS_IS_COMP(entry)) {
+ return (const void *) entry + 16;
+ } else {
+ return (const void *) entry + 20;
+ }
+}
+
+frogfs_fs_t *frogfs_init(const frogfs_config_t *conf)
+{
+ frogfs_fs_t *fs = lv_calloc(1, sizeof(frogfs_fs_t));
+ if (fs == NULL) {
+ LV_LOG_ERROR("calloc failed");
+ return NULL;
+ }
+
+ LV_LOG_TRACE("%p", fs);
+
+ fs->head = (const void *) conf->addr;
+ if (fs->head == NULL) {
+ LV_LOG_ERROR("flash mmap not enabled and addr is NULL");
+ goto err_out;
+ }
+
+ if (fs->head->magic != FROGFS_MAGIC) {
+ LV_LOG_ERROR("frogfs magic not found");
+ goto err_out;
+ }
+
+ if (fs->head->ver_major != FROGFS_VER_MAJOR) {
+ LV_LOG_ERROR("frogfs major version mismatch. filesystem is v%d.%d and this "
+ "library is v%d.%d", fs->head->ver_major, fs->head->ver_minor,
+ FROGFS_VER_MAJOR, FROGFS_VER_MINOR);
+ goto err_out;
+ }
+
+ fs->num_entries = fs->head->num_entries;
+ fs->hash = (const void *) fs->head + sizeof(frogfs_head_t);
+ fs->root = (const void *) fs->hash + (sizeof(frogfs_hash_t) * fs->num_entries);
+
+ return fs;
+
+err_out:
+ frogfs_deinit(fs);
+ return NULL;
+}
+
+void frogfs_deinit(frogfs_fs_t *fs)
+{
+ LV_LOG_TRACE("%p", fs);
+
+ lv_free(fs);
+}
+
+const frogfs_entry_t *frogfs_get_entry(const frogfs_fs_t *fs, const char *path)
+{
+ LV_ASSERT_NULL(fs);
+ LV_ASSERT_NULL(path);
+
+ while (*path == '/') {
+ path++;
+ }
+ LV_LOG_TRACE("'%s'", path);
+
+ uint32_t hash = djb2_hash(path);
+ LV_LOG_TRACE("hash %08"PRIx32, hash);
+
+ int first = 0;
+ int last = fs->num_entries - 1;
+ int middle;
+ const frogfs_hash_t *e;
+
+ while (first <= last) {
+ middle = first + (last - first) / 2;
+ e = &fs->hash[middle];
+ if (e->hash == hash) {
+ break;
+ } else if (e->hash < hash) {
+ first = middle + 1;
+ } else {
+ last = middle - 1;
+ }
+ }
+
+ if (first > last) {
+ LV_LOG_TRACE("no match");
+ return NULL;
+ }
+
+ /* move e to the first match */
+ while (middle > 0) {
+ e = fs->hash + middle;
+ if ((e - 1)->hash != hash) {
+ break;
+ }
+ middle--;
+ }
+
+ /* walk through canidates and look for a match */
+ const frogfs_entry_t *entry;
+ do {
+ entry = (const void *) fs->head + e->offs;
+ char *match = frogfs_get_path(fs, entry);
+ if (lv_strcmp(path, match) == 0) {
+ lv_free(match);
+ LV_LOG_TRACE("entry %d", middle);
+ return entry;
+ }
+ lv_free(match);
+ entry++;
+ middle++;
+ } while ((middle < last) && (e->hash == hash));
+
+ LV_LOG_WARN("unable to find entry");
+ return NULL;
+}
+
+char *frogfs_get_name(const frogfs_entry_t *entry)
+{
+ char *name = lv_malloc(entry->seg_sz + 1);
+ lv_memcpy(name, get_name(entry), entry->seg_sz);
+ name[entry->seg_sz] = '\0';
+ return name;
+}
+
+char *frogfs_get_path(const frogfs_fs_t *fs, const frogfs_entry_t *entry)
+{
+ LV_ASSERT_NULL(entry);
+
+ char *path = lv_calloc(LV_FS_MAX_PATH_LENGTH, 1);
+ size_t len = 0;
+ if (!path) {
+ return NULL;
+ }
+
+ if (entry->parent == 0) {
+ return path;
+ }
+
+ while (entry->parent != 0 && len + entry->seg_sz + 1 < LV_FS_MAX_PATH_LENGTH - 1) {
+ const frogfs_entry_t *parent = (const void *) fs->head + entry->parent;
+ if ((const void *) parent == (const void *) fs->root) {
+ lv_memmove(path + entry->seg_sz, path, len);
+ lv_memcpy(path, get_name(entry), entry->seg_sz);
+ len += entry->seg_sz;
+ break;
+ } else {
+ lv_memmove(path + entry->seg_sz + 1, path, len + 1);
+ path[0] = '/';
+ lv_memcpy(path + 1, get_name(entry), entry->seg_sz);
+ len += entry->seg_sz + 1;
+ }
+ entry = parent;
+ }
+
+ return path;
+}
+
+int frogfs_is_dir(const frogfs_entry_t *entry)
+{
+ return FROGFS_IS_DIR(entry);
+}
+
+int frogfs_is_file(const frogfs_entry_t *entry)
+{
+ return FROGFS_IS_FILE(entry);
+}
+
+void frogfs_stat(const frogfs_fs_t *fs, const frogfs_entry_t *entry,
+ frogfs_stat_t *st)
+{
+ LV_ASSERT_NULL(fs);
+ LV_ASSERT_NULL(entry);
+
+ lv_memset(st, 0, sizeof(*st));
+ if (FROGFS_IS_DIR(entry)) {
+ st->type = FROGFS_ENTRY_TYPE_DIR;
+ } else {
+ st->type = FROGFS_ENTRY_TYPE_FILE;
+ const frogfs_file_t *file = (const void *) entry;
+ st->compression = entry->u.compression;
+ if (st->compression) {
+ const frogfs_comp_t *comp = (const void *) entry;
+ st->compressed_sz = comp->data_sz;
+ st->size = comp->real_sz;
+ } else {
+ st->compressed_sz = file->data_sz;
+ st->size = file->data_sz;
+ }
+ }
+}
+
+frogfs_fh_t *frogfs_open(const frogfs_fs_t *fs, const frogfs_entry_t *entry,
+ unsigned int flags)
+{
+ LV_ASSERT_NULL(fs);
+ LV_ASSERT_NULL(entry);
+
+ if (FROGFS_IS_DIR(entry)) {
+ return NULL;
+ }
+
+ const frogfs_file_t *file = (const void *) entry;
+
+ frogfs_fh_t *fh = lv_calloc(1, sizeof(frogfs_fh_t));
+ if (fh == NULL) {
+ LV_LOG_ERROR("calloc failed");
+ goto err_out;
+ }
+
+ LV_LOG_TRACE("%p", fh);
+
+ fh->fs = fs;
+ fh->file = file;
+ fh->data_start = (const void *) fs->head + file->data_offs;
+ fh->data_ptr = fh->data_start;
+ fh->data_sz = file->data_sz;
+ fh->flags = flags;
+
+ if (entry->u.compression == 0 || flags & FROGFS_OPEN_RAW) {
+ fh->real_sz = file->data_sz;
+ fh->decomp_funcs = &frogfs_decomp_raw;
+ }
+#if CONFIG_FROGFS_USE_MINIZ == 1
+ else if ((entry->u.compression == FROGFS_COMP_ALGO_GZIP) ||
+ (entry->u.compression == FROGFS_COMP_ALGO_ZLIB)) {
+ fh->real_sz = ((frogfs_comp_t *) file)->real_sz;
+ fh->decomp_funcs = &frogfs_decomp_miniz;
+ }
+#endif
+#if CONFIG_FROGFS_USE_ZLIB == 1
+ else if ((entry->u.compression == FROGFS_COMP_ALGO_GZIP) ||
+ (entry->u.compression == FROGFS_COMP_ALGO_ZLIB)) {
+ fh->real_sz = ((frogfs_comp_t *) file)->real_sz;
+ fh->decomp_funcs = &frogfs_decomp_zlib;
+ }
+#endif
+#if CONFIG_FROGFS_USE_HEATSHRINK == 1
+ else if (entry->u.compression == FROGFS_COMP_ALGO_HEATSHRINK) {
+ fh->real_sz = ((frogfs_comp_t *) file)->real_sz;
+ fh->decomp_funcs = &frogfs_decomp_heatshrink;
+ }
+#endif
+ else {
+ LV_LOG_ERROR("unsupported compression type %d", entry->u.compression);
+ goto err_out;
+ }
+
+ if (fh->decomp_funcs->open) {
+ if (fh->decomp_funcs->open(fh, flags) < 0) {
+ LV_LOG_ERROR("decomp_funcs->fopen");
+ goto err_out;
+ }
+ }
+
+ return fh;
+
+err_out:
+ frogfs_close(fh);
+ return NULL;
+}
+
+void frogfs_close(frogfs_fh_t *fh)
+{
+ if (fh == NULL) {
+ /* do nothing */
+ return;
+ }
+
+ if (fh->decomp_funcs && fh->decomp_funcs->close) {
+ fh->decomp_funcs->close(fh);
+ }
+
+ LV_LOG_TRACE("%p", fh);
+
+ lv_free(fh);
+}
+
+int frogfs_is_raw(frogfs_fh_t *fh)
+{
+ return !!(fh->flags & FROGFS_OPEN_RAW);
+}
+
+ssize_t frogfs_read(frogfs_fh_t *fh, void *buf, size_t len)
+{
+ LV_ASSERT_NULL(fh);
+
+ if (fh->decomp_funcs->read) {
+ return fh->decomp_funcs->read(fh, buf, len);
+ }
+
+ return -1;
+}
+
+ssize_t frogfs_seek(frogfs_fh_t *fh, long offset, int mode)
+{
+ LV_ASSERT_NULL(fh);
+
+ if (fh->decomp_funcs->seek) {
+ return fh->decomp_funcs->seek(fh, offset, mode);
+ }
+
+ return -1;
+}
+
+size_t frogfs_tell(frogfs_fh_t *fh)
+{
+ LV_ASSERT_NULL(fh);
+
+ if (fh->decomp_funcs->tell) {
+ return fh->decomp_funcs->tell(fh);
+ }
+
+ return -1;
+}
+
+size_t frogfs_access(frogfs_fh_t *fh, const void **buf)
+{
+ LV_ASSERT_NULL(fh);
+
+ *buf = fh->data_start;
+ return fh->data_sz;
+}
+
+frogfs_dh_t *frogfs_opendir(frogfs_fs_t *fs, const frogfs_entry_t *entry)
+{
+ LV_ASSERT_NULL(fs);
+
+ if (entry != NULL && FROGFS_IS_FILE(entry)) {
+ return NULL;
+ }
+
+ frogfs_dh_t *dh = lv_calloc(1, sizeof(frogfs_dh_t));
+ if (dh == NULL) {
+ LV_LOG_ERROR("calloc failed");
+ return NULL;
+ }
+
+ dh->fs = fs;
+ if (entry == NULL) {
+ dh->dir = fs->root;
+ } else {
+ dh->dir = (const void *) entry;
+ }
+
+ return dh;
+}
+
+void frogfs_closedir(frogfs_dh_t *dh)
+{
+ if (dh == NULL) {
+ return;
+ }
+
+ lv_free(dh);
+}
+
+const frogfs_entry_t *frogfs_readdir(frogfs_dh_t *dh)
+{
+ const frogfs_entry_t *entry = NULL;
+
+ if (dh->dir == NULL) {
+ return NULL;
+ }
+
+ if (dh->index < dh->dir->entry.u.child_count) {
+ entry = (const void *) dh->fs->head + dh->dir->children[dh->index];
+ dh->index++;
+ }
+
+ return entry;
+}
+
+void frogfs_seekdir(frogfs_dh_t *dh, long loc)
+{
+ LV_ASSERT_NULL(dh);
+ LV_ASSERT(loc >= 0);
+
+ if (loc < dh->dir->entry.u.child_count) {
+ dh->index = loc;
+ } else {
+ dh->index = dh->dir->entry.u.child_count;
+ }
+}
+
+long frogfs_telldir(frogfs_dh_t *dh)
+{
+ LV_ASSERT_NULL(dh);
+
+ return dh->index;
+}
+
+#endif /*LV_USE_FS_FROGFS*/
diff --git a/lib/libesp32_lvgl/lvgl/src/libs/frogfs/src/frogfs_format.h b/lib/libesp32_lvgl/lvgl/src/libs/frogfs/src/frogfs_format.h
new file mode 100644
index 000000000..1cdc1d768
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/libs/frogfs/src/frogfs_format.h
@@ -0,0 +1,90 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#pragma once
+
+#include "../../../lv_conf_internal.h"
+#include LV_STDINT_INCLUDE
+
+
+/**
+ * \brief Is entry a directory?
+ */
+#define FROGFS_IS_DIR(e) (e->u.child_count < 0xFF00)
+
+/**
+ * \brief Is entry a file?
+ */
+#define FROGFS_IS_FILE(e) (e->u.child_count >= 0xFF00)
+
+/**
+ * \brief Is entry a compressed file?
+ */
+#define FROGFS_IS_COMP(e) (e->u.child_count > 0xFF00)
+
+/**
+ * \brief Filesystem header
+ */
+typedef struct frogfs_head_t {
+ uint32_t magic; /**< filesystem magic */
+ uint8_t ver_major; /**< major version */
+ uint8_t ver_minor; /**< minor version */
+ uint16_t num_entries; /** entry count */
+ uint32_t bin_sz; /**< binary length */
+} frogfs_head_t;
+
+/**
+ * \brief Hash table entry
+ */
+typedef struct frogfs_hash_t {
+ uint32_t hash; /**< path hash */
+ uint32_t offs; /**< object offset */
+} frogfs_hash_t;
+
+/**
+ * \brief Entry header
+ */
+struct frogfs_entry_t {
+ uint32_t parent; /**< parent entry offset */
+ union {
+ uint16_t child_count; /**< child entry count */
+ uint8_t compression; /**< compression algorithm */
+ } u;
+ uint8_t seg_sz; /**< path segment size (before alignment) */
+ uint8_t opts; /**< compression opts */
+};
+
+/**
+ * \brief Directory object header
+ */
+typedef struct frogfs_dir_t {
+ const frogfs_entry_t entry;
+ uint32_t children[];
+} frogfs_dir_t;
+
+/**
+ * \brief File object header
+ */
+typedef struct frogfs_file_t {
+ const frogfs_entry_t entry;
+ uint32_t data_offs;
+ uint32_t data_sz;
+} frogfs_file_t;
+
+/**
+ * \brief Compressed file object header
+ */
+typedef struct frogfs_comp_t {
+ const frogfs_entry_t entry;
+ uint32_t data_offs;
+ uint32_t data_sz; /**< data size (before alignment) */
+ uint32_t real_sz; /**< expanded size */
+} frogfs_comp_t;
+
+/**
+ * \brief Filesystem footer
+ */
+typedef struct frogfs_foot_t {
+ uint32_t crc32; /**< crc32 of entire file without this field */
+} frogfs_foot_t;
diff --git a/lib/libesp32_lvgl/lvgl/src/libs/frogfs/src/frogfs_priv.h b/lib/libesp32_lvgl/lvgl/src/libs/frogfs/src/frogfs_priv.h
new file mode 100644
index 000000000..9c84b9b6b
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/libs/frogfs/src/frogfs_priv.h
@@ -0,0 +1,71 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#pragma once
+
+#include "../include/frogfs/frogfs_types.h"
+
+#define FROGFS_PRIVATE_STRUCTS
+#include "../include/frogfs/frogfs.h"
+#include "frogfs_format.h"
+
+
+typedef struct frogfs_decomp_funcs_t frogfs_decomp_funcs_t;
+
+/**
+ * \brief Structure describing a frogfs file entry
+ */
+struct frogfs_fh_t {
+ const frogfs_fs_t *fs; /**< frogfs fs pointer */
+ const frogfs_file_t *file; /**< file header pointer */
+ const void *data_start; /**< data start pointer */
+ const void *data_ptr; /**< current data pointer */
+ size_t data_sz; /**< data size */
+ size_t real_sz; /**< real (expanded) size */
+ unsigned int flags; /** open flags */
+ const frogfs_decomp_funcs_t *decomp_funcs; /**< decompresor funcs */
+ void *decomp_priv; /**< decompressor private data */
+};
+
+/**
+ * \brief Structure describing a frogfs directory entry
+ */
+struct frogfs_dh_t {
+ const frogfs_fs_t *fs; /**< frogfs fs pointer */
+ const frogfs_dir_t *dir; /**< frogfs entry */
+ long index; /**< current index */
+};
+
+/**
+ * \brief Structure of function pointers that describe a decompressor
+ */
+struct frogfs_decomp_funcs_t {
+ int (*open)(frogfs_fh_t *f, unsigned int flags);
+ void (*close)(frogfs_fh_t *f);
+ ssize_t (*read)(frogfs_fh_t *f, void *buf, size_t len);
+ ssize_t (*seek)(frogfs_fh_t *f, long offset, int mode);
+ size_t (*tell)(frogfs_fh_t *f);
+};
+
+/**
+ * \brief Raw decompressor functions
+ */
+extern const frogfs_decomp_funcs_t frogfs_decomp_raw;
+
+/**
+ * \brief Heatshrink decompressor functions
+ */
+extern const frogfs_decomp_funcs_t frogfs_decomp_heatshrink;
+
+/**
+ * \brief Miniz decompressor functions
+ */
+extern const frogfs_decomp_funcs_t frogfs_decomp_miniz;
+
+/**
+ * \brief Zlib decompressor functions
+ */
+extern const frogfs_decomp_funcs_t frogfs_decomp_zlib;
+
+#include "../include/frogfs/frogfs.h"
diff --git a/lib/libesp32_lvgl/lvgl/src/libs/fsdrv/lv_fs_frogfs.c b/lib/libesp32_lvgl/lvgl/src/libs/fsdrv/lv_fs_frogfs.c
new file mode 100644
index 000000000..11a7bde60
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/libs/fsdrv/lv_fs_frogfs.c
@@ -0,0 +1,341 @@
+/**
+ * @file lv_fs_frogfs.c
+ *
+ */
+
+/*********************
+ * INCLUDES
+ *********************/
+
+#include "../../../lvgl.h"
+#if LV_USE_FS_FROGFS
+
+#include "../frogfs/include/frogfs/frogfs.h"
+#include "../../core/lv_global.h"
+#include "../../misc/lv_ll.h"
+
+#if !LV_FS_IS_VALID_LETTER(LV_FS_FROGFS_LETTER)
+ #error "Invalid drive letter"
+#endif
+
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+typedef struct {
+ lv_ll_t blob_ll;
+} fs_drv_data_t;
+
+typedef struct {
+ char * path_prefix;
+ frogfs_fs_t * blob_fs;
+} blob_t;
+
+/**********************
+ * STATIC PROTOTYPES
+ **********************/
+
+static bool get_blob_and_entry(const char * path, blob_t ** blob_dst, const frogfs_entry_t ** entry_dst);
+static void destroy_blob(blob_t * blob);
+static void * fs_open(lv_fs_drv_t * drv, const char * path, lv_fs_mode_t mode);
+static lv_fs_res_t fs_close(lv_fs_drv_t * drv, void * file_p);
+static lv_fs_res_t fs_read(lv_fs_drv_t * drv, void * file_p, void * buf, uint32_t btr, uint32_t * br);
+static lv_fs_res_t fs_seek(lv_fs_drv_t * drv, void * file_p, uint32_t pos, lv_fs_whence_t whence);
+static lv_fs_res_t fs_tell(lv_fs_drv_t * drv, void * file_p, uint32_t * pos_p);
+static void * fs_dir_open(lv_fs_drv_t * drv, const char * path);
+static lv_fs_res_t fs_dir_read(lv_fs_drv_t * drv, void * dir_p, char * fn, uint32_t fn_len);
+static lv_fs_res_t fs_dir_close(lv_fs_drv_t * drv, void * dir_p);
+
+/**********************
+ * STATIC VARIABLES
+ **********************/
+
+/**********************
+ * MACROS
+ **********************/
+
+#define frogfs_fs_drv (&(LV_GLOBAL_DEFAULT()->frogfs_fs_drv))
+
+/**********************
+ * GLOBAL FUNCTIONS
+ **********************/
+
+void lv_fs_frogfs_init(void)
+{
+ fs_drv_data_t * data = lv_malloc(sizeof(*data));
+ LV_ASSERT_MALLOC(data);
+ lv_ll_init(&data->blob_ll, sizeof(blob_t));
+
+ lv_fs_drv_t * fs_drv_p = frogfs_fs_drv;
+ lv_fs_drv_init(fs_drv_p);
+
+ fs_drv_p->letter = LV_FS_FROGFS_LETTER;
+
+ fs_drv_p->open_cb = fs_open;
+ fs_drv_p->close_cb = fs_close;
+ fs_drv_p->read_cb = fs_read;
+ fs_drv_p->seek_cb = fs_seek;
+ fs_drv_p->tell_cb = fs_tell;
+
+ fs_drv_p->dir_close_cb = fs_dir_close;
+ fs_drv_p->dir_open_cb = fs_dir_open;
+ fs_drv_p->dir_read_cb = fs_dir_read;
+
+ fs_drv_p->user_data = data;
+
+ lv_fs_drv_register(fs_drv_p);
+}
+
+void lv_fs_frogfs_deinit(void)
+{
+ lv_fs_drv_t * fs_drv_p = frogfs_fs_drv;
+ fs_drv_data_t * data = fs_drv_p->user_data;
+
+ lv_ll_clear_custom(&data->blob_ll, (void (*)(void *)) destroy_blob);
+
+ lv_free(data);
+}
+
+lv_result_t lv_fs_frogfs_register_blob(const void * blob, const char * path_prefix)
+{
+ if(path_prefix[0] == '\0') {
+ LV_LOG_WARN("path prefix should not be zero-length");
+ return LV_RESULT_INVALID;
+ }
+
+ lv_fs_drv_t * fs_drv_p = frogfs_fs_drv;
+ fs_drv_data_t * data = fs_drv_p->user_data;
+
+ frogfs_config_t frogfs_config = {
+ .addr = blob,
+ };
+
+ frogfs_fs_t * blob_fs = frogfs_init(&frogfs_config);
+ if(blob_fs == NULL) {
+ LV_LOG_WARN("Could not register frogfs blob 0x%p", blob);
+ return LV_RESULT_INVALID;
+ }
+
+ blob_t * hdl = lv_ll_ins_head(&data->blob_ll);
+ LV_ASSERT_MALLOC(hdl);
+
+ hdl->path_prefix = lv_strdup(path_prefix);
+ LV_ASSERT_MALLOC(hdl->path_prefix);
+
+ hdl->blob_fs = blob_fs;
+
+ return LV_RESULT_OK;
+}
+
+void lv_fs_frogfs_unregister_blob(const char * path_prefix)
+{
+ lv_fs_drv_t * fs_drv_p = frogfs_fs_drv;
+ fs_drv_data_t * data = fs_drv_p->user_data;
+
+ blob_t * blob_handle;
+ LV_LL_READ(&data->blob_ll, blob_handle) {
+ if(lv_streq(path_prefix, blob_handle->path_prefix)) {
+ break;
+ }
+ }
+ if(blob_handle == NULL) {
+ LV_LOG_WARN("No frogfs blob with path prefix '%s' to unregister", path_prefix);
+ return;
+ }
+
+ destroy_blob(blob_handle);
+}
+
+/**********************
+ * STATIC FUNCTIONS
+ **********************/
+
+static bool get_blob_and_entry(const char * path, blob_t ** blob_dst, const frogfs_entry_t ** entry_dst)
+{
+ lv_fs_drv_t * fs_drv_p = frogfs_fs_drv;
+ fs_drv_data_t * data = fs_drv_p->user_data;
+
+ blob_t * blob;
+ size_t path_prefix_length;
+ LV_LL_READ(&data->blob_ll, blob) {
+ path_prefix_length = lv_strlen(blob->path_prefix);
+ if(0 == lv_strncmp(path, blob->path_prefix, path_prefix_length)
+ && (blob->path_prefix[path_prefix_length - 1] == '/'
+ || blob->path_prefix[path_prefix_length - 1] == '\\'
+ || path[path_prefix_length] == '\0'
+ || path[path_prefix_length] == '/'
+ || path[path_prefix_length] == '\\')) {
+ break;
+ }
+ }
+ if(blob == NULL) {
+ LV_LOG_WARN("Path '%s' does not have a prefix that matches any of the registered frogfs blobs", path);
+ return false;
+ }
+
+ path += path_prefix_length;
+ if(path[0] == '/' || path[0] == '\\') path++;
+
+ const frogfs_entry_t * entry = frogfs_get_entry(blob->blob_fs, path);
+ if(entry == NULL) {
+ LV_LOG_WARN("No entry '%s' in frogfs blob registered under '%s'", path, blob->path_prefix);
+ return false;
+ }
+
+ *blob_dst = blob;
+ *entry_dst = entry;
+ return true;
+}
+
+static void destroy_blob(blob_t * blob)
+{
+ lv_fs_drv_t * fs_drv_p = frogfs_fs_drv;
+ fs_drv_data_t * data = fs_drv_p->user_data;
+
+ lv_free(blob->path_prefix);
+ frogfs_deinit(blob->blob_fs);
+
+ lv_ll_remove(&data->blob_ll, blob);
+ lv_free(blob);
+}
+
+static void * fs_open(lv_fs_drv_t * drv, const char * path, lv_fs_mode_t mode)
+{
+ LV_UNUSED(drv);
+
+ if(mode & LV_FS_MODE_WR) {
+ LV_LOG_WARN("Cannot open files for writing with frogfs");
+ return NULL;
+ }
+
+ blob_t * blob;
+ const frogfs_entry_t * entry;
+ if(!get_blob_and_entry(path, &blob, &entry)) {
+ return NULL;
+ }
+
+ if(frogfs_is_dir(entry)) {
+ LV_LOG_WARN("Cannot open directory as file with frogfs");
+ return NULL;
+ }
+
+ frogfs_fh_t * fh = frogfs_open(blob->blob_fs, entry, 0);
+ if(fh == NULL) {
+ LV_LOG_WARN("Could not open '%s' even though the entry exists in frogfs", path);
+ return NULL;
+ }
+
+ return fh;
+}
+
+static lv_fs_res_t fs_close(lv_fs_drv_t * drv, void * file_p)
+{
+ LV_UNUSED(drv);
+ frogfs_close(file_p);
+ return LV_FS_RES_OK;
+}
+
+static lv_fs_res_t fs_read(lv_fs_drv_t * drv, void * file_p, void * buf, uint32_t btr, uint32_t * br)
+{
+ LV_UNUSED(drv);
+
+ ssize_t res = frogfs_read(file_p, buf, btr);
+ if(res < 0) {
+ LV_LOG_WARN("Error reading frogfs file");
+ *br = 0;
+ return LV_FS_RES_UNKNOWN;
+ }
+
+ *br = res;
+ return LV_FS_RES_OK;
+}
+
+static lv_fs_res_t fs_seek(lv_fs_drv_t * drv, void * file_p, uint32_t pos, lv_fs_whence_t whence)
+{
+ LV_UNUSED(drv);
+
+ ssize_t res = frogfs_seek(file_p, pos, whence);
+
+ if(res < 0) {
+ LV_LOG_WARN("Error `seek`ing frogfs file");
+ return LV_FS_RES_UNKNOWN;
+ }
+
+ return LV_FS_RES_OK;
+}
+
+static lv_fs_res_t fs_tell(lv_fs_drv_t * drv, void * file_p, uint32_t * pos_p)
+{
+ LV_UNUSED(drv);
+
+ size_t res = frogfs_tell(file_p);
+ if(res == (size_t) -1) {
+ LV_LOG_WARN("Error `tell`ing frogfs file");
+ return LV_FS_RES_UNKNOWN;
+ }
+
+ *pos_p = res;
+ return LV_FS_RES_OK;
+}
+
+static void * fs_dir_open(lv_fs_drv_t * drv, const char * path)
+{
+ LV_UNUSED(drv);
+
+ blob_t * blob;
+ const frogfs_entry_t * entry;
+ if(!get_blob_and_entry(path, &blob, &entry)) {
+ return NULL;
+ }
+
+ if(!frogfs_is_dir(entry)) {
+ LV_LOG_WARN("Cannot open non-directory as directory with frogfs");
+ return NULL;
+ }
+
+ frogfs_dh_t * dh = frogfs_opendir(blob->blob_fs, entry);
+ if(dh == NULL) {
+ LV_LOG_WARN("Could not open directory '%s' even though the entry exists in frogfs", path);
+ return NULL;
+ }
+
+ return dh;
+}
+
+static lv_fs_res_t fs_dir_read(lv_fs_drv_t * drv, void * dir_p, char * fn, uint32_t fn_len)
+{
+ LV_UNUSED(drv);
+ if(fn_len == 0) return LV_FS_RES_INV_PARAM;
+
+ const frogfs_entry_t * entry = frogfs_readdir(dir_p);
+ if(entry == NULL) {
+ fn[0] = '\0';
+ return LV_FS_RES_OK;
+ }
+
+ char * name = frogfs_get_name(entry);
+
+ if(frogfs_is_dir(entry)) {
+ lv_snprintf(fn, fn_len, "/%s", name);
+ }
+ else {
+ lv_strlcpy(fn, name, fn_len);
+ }
+
+ lv_free(name); /* frogfs `malloc`d it */
+
+ return LV_FS_RES_OK;
+}
+
+static lv_fs_res_t fs_dir_close(lv_fs_drv_t * drv, void * dir_p)
+{
+ LV_UNUSED(drv);
+ frogfs_closedir(dir_p);
+ return LV_FS_RES_OK;
+}
+
+#endif /*LV_USE_FS_FROGFS*/
diff --git a/lib/libesp32_lvgl/lvgl/src/libs/fsdrv/lv_fsdrv.h b/lib/libesp32_lvgl/lvgl/src/libs/fsdrv/lv_fsdrv.h
index cd0f5dd2a..90c47cdd9 100644
--- a/lib/libesp32_lvgl/lvgl/src/libs/fsdrv/lv_fsdrv.h
+++ b/lib/libesp32_lvgl/lvgl/src/libs/fsdrv/lv_fsdrv.h
@@ -67,6 +67,29 @@ void lv_fs_arduino_sd_init(void);
void lv_fs_uefi_init(void);
#endif
+#if LV_USE_FS_FROGFS
+void lv_fs_frogfs_init(void);
+void lv_fs_frogfs_deinit(void);
+
+/**
+ * Mount a frogfs blob at the path prefix. If there is a file "foo.txt"
+ * in the blob and the blob is registered with `path_prefix` as "my_blob",
+ * it can be opened later at path "my_blob/foo.txt".
+ * @param blob a frogfs blob/image from mkfrogfs.py
+ * @param path_prefix a prefix that will be used to refer to this blob when accessing it.
+ * @return LV_RESULT_OK or LV_RESULT_INVALID if there was an issue with the blob
+ */
+lv_result_t lv_fs_frogfs_register_blob(const void * blob, const char * path_prefix);
+
+/**
+ * Unmount a frogfs blob that was previously mounted by `lv_fs_frogfs_register_blob`.
+ * All files and dirs should be closed before calling this.
+ * @param path_prefix the path prefix that the blob was registered with
+ */
+void lv_fs_frogfs_unregister_blob(const char * path_prefix);
+
+#endif /*LV_USE_FS_FROGFS*/
+
/**********************
* MACROS
**********************/
diff --git a/lib/libesp32_lvgl/lvgl/src/libs/gif/AnimatedGIF/LICENSE b/lib/libesp32_lvgl/lvgl/src/libs/gif/AnimatedGIF/LICENSE
new file mode 100644
index 000000000..716f427d0
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/libs/gif/AnimatedGIF/LICENSE
@@ -0,0 +1,204 @@
+Copyright 2020 BitBank Software, Inc. All rights reserved.
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
diff --git a/lib/libesp32_lvgl/lvgl/src/libs/gif/AnimatedGIF/src/AnimatedGIF.h b/lib/libesp32_lvgl/lvgl/src/libs/gif/AnimatedGIF/src/AnimatedGIF.h
new file mode 100644
index 000000000..118ab66b2
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/libs/gif/AnimatedGIF/src/AnimatedGIF.h
@@ -0,0 +1,227 @@
+// Copyright 2020 BitBank Software, Inc. All Rights Reserved.
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//===========================================================================
+
+#ifndef __ANIMATEDGIF__
+#define __ANIMATEDGIF__
+
+#include "../../../../misc/lv_fs.h"
+#include "../../../../lv_conf_internal.h"
+#include LV_STDINT_INCLUDE
+#include LV_LIMITS_INCLUDE
+#include "../../../../stdlib/lv_string.h"
+
+//
+// GIF Animator
+// Written by Larry Bank
+// Copyright (c) 2020 BitBank Software, Inc.
+// bitbank@pobox.com
+//
+// Designed to decode images up to 480x320 on MCUs
+// using less than 22K of RAM
+// ...and decode any sized image when more RAM is available
+//
+// ** NEW **
+// Turbo mode added Feb 18, 2024. This option decodes images
+// up to 30x faster if there is enough RAM (48K + full framebuffer)
+//
+
+/* GIF Defines and variables */
+#define MAX_CHUNK_SIZE 255
+//
+// These 2 macros can be changed to limit the amount of RAM
+// required by the decoder. For example, decoding 1-bit images to
+// a 128x32 display will not need a max code size of 12 nor a palette
+// with 256 entries
+//
+#define TURBO_BUFFER_SIZE 0x6100
+
+// If you intend to decode generic GIFs, you want this value to be 12. If you are using GIFs solely for animations in
+// your own project, and you control the GIFs you intend to play, then you can save additional RAM here:
+// the decoder must reserve a minimum of 4 byte * (1<10kB RAM, but you will not be able to decode arbitrary
+// images anymore. One application to craft such GIFs can be found here (use option -d)
+// https://create.stephan-brumme.com/flexigif-lossless-gif-lzw-optimization/
+#define MAX_CODE_SIZE 12
+
+#define MAX_COLORS 256
+#define MAX_WIDTH 480
+#define LZW_BUF_SIZE (6*MAX_CHUNK_SIZE)
+#define LZW_HIGHWATER (4*MAX_CHUNK_SIZE)
+// This buffer is used to store the pixel sequence in reverse order
+// it needs to be large enough to hold the longest possible
+// sequence (1<iError = GIF_SUCCESS;
+ pGIF->pfnRead = readMem;
+ pGIF->pfnSeek = seekMem;
+ pGIF->pfnDraw = pfnDraw;
+ pGIF->pfnOpen = NULL;
+ pGIF->pfnClose = NULL;
+ pGIF->GIFFile.iSize = iDataSize;
+ pGIF->GIFFile.pData = pData;
+ return GIFInit(pGIF);
+} /* GIF_openRAM() */
+
+int GIF_openFile(GIFIMAGE *pGIF, const char *szFilename, GIF_DRAW_CALLBACK *pfnDraw)
+{
+ pGIF->iError = GIF_SUCCESS;
+ pGIF->pfnRead = readFile;
+ pGIF->pfnSeek = seekFile;
+ pGIF->pfnDraw = pfnDraw;
+ pGIF->pfnOpen = NULL;
+ pGIF->pfnClose = closeFile;
+ if (LV_FS_RES_OK != lv_fs_open(&pGIF->GIFFile.fHandle, szFilename, LV_FS_MODE_RD))
+ return 0;
+ lv_fs_seek(&pGIF->GIFFile.fHandle, 0, LV_FS_SEEK_END);
+ uint32_t pos;
+ lv_fs_tell(&pGIF->GIFFile.fHandle, &pos);
+ pGIF->GIFFile.iSize = pos;
+ lv_fs_seek(&pGIF->GIFFile.fHandle, 0, LV_FS_SEEK_SET);
+ return GIFInit(pGIF);
+} /* GIF_openFile() */
+
+void GIF_close(GIFIMAGE *pGIF)
+{
+ if (pGIF->pfnClose)
+ (*pGIF->pfnClose)(&pGIF->GIFFile.fHandle);
+} /* GIF_close() */
+
+void GIF_begin(GIFIMAGE *pGIF, unsigned char ucPaletteType)
+{
+ lv_memset(pGIF, 0, sizeof(GIFIMAGE));
+ pGIF->ucPaletteType = ucPaletteType;
+} /* GIF_begin() */
+
+void GIF_reset(GIFIMAGE *pGIF)
+{
+ (*pGIF->pfnSeek)(&pGIF->GIFFile, 0);
+} /* GIF_reset() */
+
+//
+// Return value:
+// 1 = good decode, more frames exist
+// 0 = good decode, no more frames
+// -1 = error
+//
+int GIF_playFrame(GIFIMAGE *pGIF, int *delayMilliseconds, void *pUser)
+{
+int rc;
+
+ if (delayMilliseconds)
+ *delayMilliseconds = 0; // clear any old valid
+ if (pGIF->GIFFile.iPos >= pGIF->GIFFile.iSize-1) // no more data exists
+ {
+ (*pGIF->pfnSeek)(&pGIF->GIFFile, 0); // seek to start
+ }
+ if (GIFParseInfo(pGIF, 0))
+ {
+ pGIF->pUser = pUser;
+ if (pGIF->iError == GIF_EMPTY_FRAME) // don't try to decode it
+ return 0;
+ if (pGIF->pTurboBuffer) { // the presence of the Turbo buffer indicates Turbo mode
+ rc = DecodeLZWTurbo(pGIF, 0);
+ } else {
+ rc = DecodeLZW(pGIF, 0);
+ }
+ if (rc != 0) // problem
+ return 0;
+ }
+ else
+ {
+ return 0; // error parsing the frame info, we may be at the end of the file
+ }
+ // Return 1 for more frames or 0 if this was the last frame
+ if (delayMilliseconds) // if not NULL, return the frame delay time
+ *delayMilliseconds = pGIF->iFrameDelay;
+ return (pGIF->GIFFile.iPos < pGIF->GIFFile.iSize-1);
+} /* GIF_playFrame() */
+
+int GIF_getCanvasWidth(GIFIMAGE *pGIF)
+{
+ return pGIF->iCanvasWidth;
+} /* GIF_getCanvasWidth() */
+
+int GIF_getCanvasHeight(GIFIMAGE *pGIF)
+{
+ return pGIF->iCanvasHeight;
+} /* GIF_getCanvasHeight() */
+
+int GIF_getLoopCount(GIFIMAGE *pGIF)
+{
+ return pGIF->iRepeatCount;
+} /* GIF_getLoopCount() */
+
+int GIF_getComment(GIFIMAGE *pGIF, char *pDest)
+{
+int32_t iOldPos;
+
+ iOldPos = pGIF->GIFFile.iPos; // keep old position
+ (*pGIF->pfnSeek)(&pGIF->GIFFile, pGIF->iCommentPos);
+ (*pGIF->pfnRead)(&pGIF->GIFFile, (uint8_t *)pDest, pGIF->sCommentLen);
+ (*pGIF->pfnSeek)(&pGIF->GIFFile, iOldPos);
+ pDest[pGIF->sCommentLen] = 0; // zero terminate the string
+ return (int)pGIF->sCommentLen;
+
+} /* GIF_getComment() */
+
+int GIF_getLastError(GIFIMAGE *pGIF)
+{
+ return pGIF->iError;
+} /* GIF_getLastError() */
+
+//
+// Helper functions for memory based images
+//
+static int32_t readMem(GIFFILE *pFile, uint8_t *pBuf, int32_t iLen)
+{
+ int32_t iBytesRead;
+
+ iBytesRead = iLen;
+ if ((pFile->iSize - pFile->iPos) < iLen)
+ iBytesRead = pFile->iSize - pFile->iPos;
+ if (iBytesRead <= 0)
+ return 0;
+ lv_memmove(pBuf, &pFile->pData[pFile->iPos], iBytesRead);
+ pFile->iPos += iBytesRead;
+ return iBytesRead;
+} /* readMem() */
+
+static int32_t seekMem(GIFFILE *pFile, int32_t iPosition)
+{
+ if (iPosition < 0) iPosition = 0;
+ else if (iPosition >= pFile->iSize) iPosition = pFile->iSize-1;
+ pFile->iPos = iPosition;
+ return iPosition;
+} /* seekMem() */
+
+static void closeFile(lv_fs_file_t *handle)
+{
+ lv_fs_close(handle);
+} /* closeFile() */
+
+static int32_t seekFile(GIFFILE *pFile, int32_t iPosition)
+{
+ if (iPosition < 0) iPosition = 0;
+ else if (iPosition >= pFile->iSize) iPosition = pFile->iSize-1;
+ pFile->iPos = iPosition;
+ lv_fs_seek(&pFile->fHandle, iPosition, LV_FS_SEEK_SET);
+ return iPosition;
+} /* seekMem() */
+
+static int32_t readFile(GIFFILE *pFile, uint8_t *pBuf, int32_t iLen)
+{
+ int32_t iBytesRead;
+
+ iBytesRead = iLen;
+ if ((pFile->iSize - pFile->iPos) < iLen)
+ iBytesRead = pFile->iSize - pFile->iPos;
+ if (iBytesRead <= 0)
+ return 0;
+ uint32_t br;
+ lv_fs_read(&pFile->fHandle, pBuf, iBytesRead, &br);
+ iBytesRead = br;
+ pFile->iPos += iBytesRead;
+ return iBytesRead;
+} /* readFile() */
+
+//
+// The following functions are written in plain C and have no
+// 3rd party dependencies, not even the C runtime library
+//
+//
+// Initialize a GIF file and callback access from a file on SD or memory
+// returns 1 for success, 0 for failure
+// Fills in the canvas size of the GIFIMAGE structure
+//
+static int GIFInit(GIFIMAGE *pGIF)
+{
+ pGIF->GIFFile.iPos = 0; // start at beginning of file
+ if (!GIFParseInfo(pGIF, 1)) // gather info for the first frame
+ return 0; // something went wrong; not a GIF file?
+ (*pGIF->pfnSeek)(&pGIF->GIFFile, 0); // seek back to start of the file
+ if (pGIF->iCanvasWidth > MAX_WIDTH || pGIF->iCanvasHeight > 32767) { // too big or corrupt
+ pGIF->iError = GIF_TOO_WIDE;
+ return 0;
+ }
+ return 1;
+} /* GIFInit() */
+
+//
+// Parse the GIF header, gather the size and palette info
+// If called with bInfoOnly set to true, it will test for a valid file
+// and return the canvas size only
+// Returns 1 for success, 0 for failure
+//
+static int GIFParseInfo(GIFIMAGE *pPage, int bInfoOnly)
+{
+ int i, j, iColorTableBits;
+ int iBytesRead;
+ unsigned char c, *p;
+ int32_t iOffset = 0;
+ int32_t iStartPos = pPage->GIFFile.iPos; // starting file position
+ int iReadSize;
+
+ pPage->bUseLocalPalette = 0; // assume no local palette
+ pPage->bEndOfFrame = 0; // we're just getting started
+ pPage->iFrameDelay = 0; // may not have a gfx extension block
+ pPage->iRepeatCount = -1; // assume NETSCAPE loop count is not specified
+ iReadSize = MAX_CHUNK_SIZE;
+ // If you try to read past the EOF, the SD lib will return garbage data
+ if (iStartPos + iReadSize > pPage->GIFFile.iSize)
+ iReadSize = (pPage->GIFFile.iSize - iStartPos - 1);
+ p = pPage->ucFileBuf;
+ iBytesRead = (*pPage->pfnRead)(&pPage->GIFFile, pPage->ucFileBuf, iReadSize); // 255 is plenty for now
+
+ if (iBytesRead != iReadSize) // we're at the end of the file
+ {
+ pPage->iError = GIF_EARLY_EOF;
+ return 0;
+ }
+ if (iStartPos == 0) // start of the file
+ { // canvas size
+ if (lv_memcmp(p, "GIF89", 5) != 0 && lv_memcmp(p, "GIF87", 5) != 0) // not a GIF file
+ {
+ pPage->iError = GIF_BAD_FILE;
+ return 0;
+ }
+ pPage->iCanvasWidth = pPage->iWidth = INTELSHORT(&p[6]);
+ pPage->iCanvasHeight = pPage->iHeight = INTELSHORT(&p[8]);
+ pPage->iBpp = ((p[10] & 0x70) >> 4) + 1;
+ iColorTableBits = (p[10] & 7) + 1; // Log2(size) of the color table
+ pPage->ucBackground = p[11]; // background color
+ pPage->ucGIFBits = 0;
+ iOffset = 13;
+ if (p[10] & 0x80) // global color table?
+ { // by default, convert to byte-reversed RGB565 for immediate use
+ // Read enough additional data for the color table
+ iBytesRead += (*pPage->pfnRead)(&pPage->GIFFile, &pPage->ucFileBuf[iBytesRead], 3*(1<ucPaletteType == GIF_PALETTE_RGB565_LE || pPage->ucPaletteType == GIF_PALETTE_RGB565_BE) {
+ for (i=0; i<(1<> 3) << 11); // R
+ usRGB565 |= ((p[iOffset+1] >> 2) << 5); // G
+ usRGB565 |= (p[iOffset+2] >> 3); // B
+ if (pPage->ucPaletteType == GIF_PALETTE_RGB565_LE)
+ pPage->pPalette[i] = usRGB565;
+ else
+ pPage->pPalette[i] = (usRGB565 << 8) | (usRGB565 >> 8); // SPI wants MSB first
+ iOffset += 3;
+ }
+ } else if (pPage->ucPaletteType == GIF_PALETTE_1BPP || pPage->ucPaletteType == GIF_PALETTE_1BPP_OLED) {
+ uint8_t *pPal1 = (uint8_t*)pPage->pPalette;
+ for (i=0; i<(1<= 512); // bright enough = 1
+ iOffset += 3;
+ }
+ } else { // just copy it as-is (RGB888 & RGB8888 output)
+ lv_memcpy(pPage->pPalette, &p[iOffset], (1<ucGIFBits = p[iOffset+1]; // packed fields
+ pPage->iFrameDelay = (INTELSHORT(&p[iOffset+2]))*10; // delay in ms
+ if (pPage->iFrameDelay <= 1) // 0-1 is going to make it run at 60fps; use 100 (10fps) as a reasonable substitute
+ pPage->iFrameDelay = 100;
+ if (pPage->ucGIFBits & 1) // transparent color is used
+ pPage->ucTransparent = p[iOffset+4]; // transparent color index
+ iOffset += 6;
+ }
+ // else // error
+ break;
+ case 0xff: /* App extension */
+ c = 1;
+ while (c) /* Skip all data sub-blocks */
+ {
+ c = p[iOffset++]; /* Block length */
+ if ((iBytesRead - iOffset) < (c+32)) // need to read more data first
+ {
+ lv_memmove(pPage->ucFileBuf, &pPage->ucFileBuf[iOffset], (iBytesRead-iOffset)); // move existing data down
+ iBytesRead -= iOffset;
+ iStartPos += iOffset;
+ iOffset = 0;
+ iBytesRead += (*pPage->pfnRead)(&pPage->GIFFile, &pPage->ucFileBuf[iBytesRead], c+32);
+ }
+ if (c == 11) // fixed block length
+ { // Netscape app block contains the repeat count
+ if (lv_memcmp(&p[iOffset], "NETSCAPE2.0", 11) == 0)
+ {
+ if (p[iOffset+11] == 3 && p[iOffset+12] == 1) // loop count
+ pPage->iRepeatCount = INTELSHORT(&p[iOffset+13]);
+ }
+ }
+ iOffset += (int)c; /* Skip to next sub-block */
+ }
+ break;
+ case 0x01: /* Text extension */
+ c = 1;
+ j = 0;
+ while (c) /* Skip all data sub-blocks */
+ {
+ c = p[iOffset++]; /* Block length */
+ if (j == 0) // use only first block
+ {
+ j = c;
+ if (j > 127) // max comment length = 127
+ j = 127;
+ // memcpy(pPage->szInfo1, &p[iOffset], j);
+ // pPage->szInfo1[j] = '\0';
+ j = 1;
+ }
+ iOffset += (int)c; /* Skip this sub-block */
+ }
+ break;
+ case 0xfe: /* Comment */
+ c = 1;
+ while (c) /* Skip all data sub-blocks */
+ {
+ c = p[iOffset++]; /* Block length */
+ if ((iBytesRead - iOffset) < (c+32)) // need to read more data first
+ {
+ lv_memmove(pPage->ucFileBuf, &pPage->ucFileBuf[iOffset], (iBytesRead-iOffset)); // move existing data down
+ iBytesRead -= iOffset;
+ iStartPos += iOffset;
+ iOffset = 0;
+ iBytesRead += (*pPage->pfnRead)(&pPage->GIFFile, &pPage->ucFileBuf[iBytesRead], c+32);
+ }
+ if (pPage->iCommentPos == 0) // Save first block info
+ {
+ pPage->iCommentPos = iStartPos + iOffset;
+ pPage->sCommentLen = c;
+ }
+ iOffset += (int)c; /* Skip this sub-block */
+ }
+ break;
+ default:
+ /* Bad header info */
+ pPage->iError = GIF_DECODE_ERROR;
+ return 0;
+ } /* switch */
+ }
+ else // invalid byte, stop decoding
+ {
+ if (pPage->GIFFile.iSize - iStartPos < 32) // non-image bytes at end of file?
+ pPage->iError = GIF_EMPTY_FRAME;
+ else
+ /* Bad header info */
+ pPage->iError = GIF_DECODE_ERROR;
+ return 0;
+ }
+ } /* while */
+ if (bInfoOnly)
+ return 1; // we've got the info we needed, leave
+ if (p[iOffset] == ';') { // end of file, quit and return a correct error code
+ pPage->iError = GIF_EMPTY_FRAME;
+ return 1;
+ }
+
+ if (p[iOffset] == ',')
+ iOffset++;
+ // This particular frame's size and position on the main frame (if animated)
+ pPage->iX = INTELSHORT(&p[iOffset]);
+ pPage->iY = INTELSHORT(&p[iOffset+2]);
+ pPage->iWidth = INTELSHORT(&p[iOffset+4]);
+ pPage->iHeight = INTELSHORT(&p[iOffset+6]);
+ if (pPage->iWidth > pPage->iCanvasWidth || pPage->iHeight > pPage->iCanvasHeight ||
+ pPage->iWidth + pPage->iX > pPage->iCanvasWidth || pPage->iHeight + pPage->iY > pPage->iCanvasHeight) {
+ pPage->iError = GIF_DECODE_ERROR; // must be a corrupt file to encounter this error here
+ return 0;
+ }
+ iOffset += 8;
+
+ /* Image descriptor
+ 7 6 5 4 3 2 1 0 M=0 - use global color map, ignore pixel
+ M I 0 0 0 pixel M=1 - local color map follows, use pixel
+ I=0 - Image in sequential order
+ I=1 - Image in interlaced order
+ pixel+1 = # bits per pixel for this image
+ */
+ pPage->ucMap = p[iOffset++];
+ if (pPage->ucMap & 0x80) // local color table?
+ {// by default, convert to byte-reversed RGB565 for immediate use
+ j = (1<<((pPage->ucMap & 7)+1));
+ // Read enough additional data for the color table
+ iBytesRead += (*pPage->pfnRead)(&pPage->GIFFile, &pPage->ucFileBuf[iBytesRead], j*3);
+ if (pPage->ucPaletteType == GIF_PALETTE_RGB565_LE || pPage->ucPaletteType == GIF_PALETTE_RGB565_BE)
+ {
+ for (i=0; i> 3) << 11); // R
+ usRGB565 |= ((p[iOffset+1] >> 2) << 5); // G
+ usRGB565 |= (p[iOffset+2] >> 3); // B
+ if (pPage->ucPaletteType == GIF_PALETTE_RGB565_LE)
+ pPage->pLocalPalette[i] = usRGB565;
+ else
+ pPage->pLocalPalette[i] = (usRGB565 << 8) | (usRGB565 >> 8); // SPI wants MSB first
+ iOffset += 3;
+ }
+ } else if (pPage->ucPaletteType == GIF_PALETTE_1BPP || pPage->ucPaletteType == GIF_PALETTE_1BPP_OLED) {
+ uint8_t *pPal1 = (uint8_t*)pPage->pLocalPalette;
+ for (i=0; i= 512); // bright enough = 1
+ iOffset += 3;
+ }
+ } else { // just copy it as-is
+ lv_memcpy(pPage->pLocalPalette, &p[iOffset], j * 3);
+ iOffset += j*3;
+ }
+ pPage->bUseLocalPalette = 1;
+ }
+ pPage->ucCodeStart = p[iOffset++]; /* initial code size */
+ /* Since GIF can be 1-8 bpp, we only allow 1,4,8 */
+ pPage->iBpp = cGIFBits[pPage->ucCodeStart];
+ // we are re-using the same buffer turning GIF file data
+ // into "pure" LZW
+ pPage->iLZWSize = 0; // we're starting with no LZW data yet
+ c = 1; // get chunk length
+ while (c && iOffset < iBytesRead)
+ {
+// Serial.printf("iOffset=%d, iBytesRead=%d\n", iOffset, iBytesRead);
+ c = p[iOffset++]; // get chunk length
+// Serial.printf("Chunk size = %d\n", c);
+ if (c <= (iBytesRead - iOffset))
+ {
+ lv_memcpy(&pPage->ucLZW[pPage->iLZWSize], &p[iOffset], c);
+ pPage->iLZWSize += c;
+ iOffset += c;
+ }
+ else // partial chunk in our buffer
+ {
+ int iPartialLen = (iBytesRead - iOffset);
+ lv_memcpy(&pPage->ucLZW[pPage->iLZWSize], &p[iOffset], iPartialLen);
+ pPage->iLZWSize += iPartialLen;
+ iOffset += iPartialLen;
+ (*pPage->pfnRead)(&pPage->GIFFile, &pPage->ucLZW[pPage->iLZWSize], c - iPartialLen);
+ pPage->iLZWSize += (c - iPartialLen);
+ }
+ if (c == 0)
+ pPage->bEndOfFrame = 1; // signal not to read beyond the end of the frame
+ }
+// seeking on an SD card is VERY VERY SLOW, so use the data we've already read by de-chunking it
+// in this case, there's too much data, so we have to seek backwards a bit
+ if (iOffset < iBytesRead)
+ {
+// Serial.printf("Need to seek back %d bytes\n", iBytesRead - iOffset);
+ (*pPage->pfnSeek)(&pPage->GIFFile, iStartPos + iOffset); // position file to new spot
+ }
+ return 1; // we are now at the start of the chunk data
+} /* GIFParseInfo() */
+//
+// Gather info about an animated GIF file
+//
+int GIF_getInfo(GIFIMAGE *pPage, GIFINFO *pInfo)
+{
+ int iOff, iNumFrames;
+ int iDelay, iMaxDelay, iMinDelay, iTotalDelay;
+ int iReadAmount;
+ int iDataAvailable = 0;
+ int iDataRemaining = 0;
+ // uint32_t lFileOff = 0;
+ int bDone = 0;
+ int bExt;
+ uint8_t c, *cBuf;
+
+ iMaxDelay = iTotalDelay = 0;
+ iMinDelay = 10000;
+ iNumFrames = 1;
+ iDataRemaining = pPage->GIFFile.iSize;
+ cBuf = (uint8_t *) pPage->ucFileBuf;
+ (*pPage->pfnSeek)(&pPage->GIFFile, 0);
+ iDataAvailable = (*pPage->pfnRead)(&pPage->GIFFile, cBuf, FILE_BUF_SIZE);
+ iDataRemaining -= iDataAvailable;
+ // lFileOff += iDataAvailable;
+ iOff = 10;
+ c = cBuf[iOff]; // get info bits
+ iOff += 3; /* Skip flags, background color & aspect ratio */
+ if (c & 0x80) /* Deal with global color table */
+ {
+ c &= 7; /* Get the number of colors defined */
+ iOff += (2<pfnRead)(&pPage->GIFFile, &cBuf[iDataAvailable], FILE_BUF_SIZE-iDataAvailable);
+ iDataAvailable += iReadAmount;
+ iDataRemaining -= iReadAmount;
+ // lFileOff += iReadAmount;
+ }
+ switch(cBuf[iOff])
+ {
+ case 0x3b: /* End of file */
+ /* we were fooled into thinking there were more pages */
+ iNumFrames--;
+ goto gifpagesz;
+ // F9 = Graphic Control Extension (fixed length of 4 bytes)
+ // FE = Comment Extension
+ // FF = Application Extension
+ // 01 = Plain Text Extension
+ case 0x21: /* Extension block */
+ if (cBuf[iOff+1] == 0xf9 && cBuf[iOff+2] == 4) // Graphic Control Extension
+ {
+ //cBuf[iOff+3]; // page disposition flags
+ iDelay = cBuf[iOff+4]; // delay low byte
+ iDelay |= ((uint16_t)(cBuf[iOff+5]) << 8); // delay high byte
+ if (iDelay < 2) // too fast, provide a default
+ iDelay = 2;
+ iDelay *= 10; // turn JIFFIES into milliseconds
+ iTotalDelay += iDelay;
+ if (iDelay > iMaxDelay) iMaxDelay = iDelay;
+ else if (iDelay < iMinDelay) iMinDelay = iDelay;
+ // (cBuf[iOff+6]; // transparent color index
+ }
+ iOff += 2; /* skip to length */
+ iOff += (int)cBuf[iOff]; /* Skip the data block */
+ iOff++;
+ // block terminator or optional sub blocks
+ c = cBuf[iOff++]; /* Skip any sub-blocks */
+ while (c)
+ {
+ iOff += (int)c;
+ c = cBuf[iOff++];
+ if ((iDataAvailable - iOff) < (c+258)) // need to read more data first
+ {
+ lv_memmove(cBuf, &cBuf[iOff], (iDataAvailable-iOff)); // move existing data down
+ iDataAvailable -= iOff;
+ iOff = 0;
+ iReadAmount = (*pPage->pfnRead)(&pPage->GIFFile, &cBuf[iDataAvailable], FILE_BUF_SIZE-iDataAvailable);
+ iDataAvailable += iReadAmount;
+ iDataRemaining -= iReadAmount;
+ // lFileOff += iReadAmount;
+ }
+ }
+ if (c != 0) // problem, we went past the end
+ {
+ iNumFrames--; // possible corrupt data; stop
+ goto gifpagesz;
+ }
+ break;
+ case 0x2c: /* Start of image data */
+ bExt = 0; /* Stop doing extension blocks */
+ break;
+ default:
+ /* Corrupt data, stop here */
+ iNumFrames--;
+ goto gifpagesz;
+ } // switch
+ } // while
+ if (iOff >= iDataAvailable) // problem
+ {
+ iNumFrames--; // possible corrupt data; stop
+ goto gifpagesz;
+ }
+ /* Start of image data */
+ c = cBuf[iOff+9]; /* Get the flags byte */
+ iOff += 10; /* Skip image position and size */
+ if (c & 0x80) /* Local color table */
+ {
+ c &= 7;
+ iOff += (2<pfnRead)(&pPage->GIFFile, &cBuf[iDataAvailable], FILE_BUF_SIZE-iDataAvailable);
+ iDataAvailable += iReadAmount;
+ iDataRemaining -= iReadAmount;
+ // lFileOff += iReadAmount;
+ }
+ c = cBuf[iOff++];
+ while (c) /* While there are more data blocks */
+ {
+ if (iOff > (3*FILE_BUF_SIZE/4) && iDataRemaining > 0) /* Near end of buffer, re-align */
+ {
+ lv_memmove(cBuf, &cBuf[iOff], (iDataAvailable-iOff)); // move existing data down
+ iDataAvailable -= iOff;
+ iOff = 0;
+ iReadAmount = (FILE_BUF_SIZE - iDataAvailable);
+ if (iReadAmount > iDataRemaining)
+ iReadAmount = iDataRemaining;
+ iReadAmount = (*pPage->pfnRead)(&pPage->GIFFile, &cBuf[iDataAvailable], iReadAmount);
+ iDataAvailable += iReadAmount;
+ iDataRemaining -= iReadAmount;
+ // lFileOff += iReadAmount;
+ }
+ iOff += (int)c; /* Skip this data block */
+// if ((int)lFileOff + iOff > pPage->GIFFile.iSize) // past end of file, stop
+// {
+// iNumFrames--; // don't count this page
+// break; // last page is corrupted, don't use it
+// }
+ c = cBuf[iOff++]; /* Get length of next */
+ }
+ /* End of image data, check for more pages... */
+ if (cBuf[iOff] == 0x3b || (iDataRemaining == 0 && (iDataAvailable - iOff) < 32))
+ {
+ bDone = 1; /* End of file has been reached */
+ }
+ else /* More pages to scan */
+ {
+ iNumFrames++;
+ // read new page data starting at this offset
+ if (pPage->GIFFile.iSize > FILE_BUF_SIZE && iDataRemaining > 0) // since we didn't read the whole file in one shot
+ {
+ lv_memmove(cBuf, &cBuf[iOff], (iDataAvailable-iOff)); // move existing data down
+ iDataAvailable -= iOff;
+ iOff = 0;
+ iReadAmount = (FILE_BUF_SIZE - iDataAvailable);
+ if (iReadAmount > iDataRemaining)
+ iReadAmount = iDataRemaining;
+ iReadAmount = (*pPage->pfnRead)(&pPage->GIFFile, &cBuf[iDataAvailable], iReadAmount);
+ iDataAvailable += iReadAmount;
+ iDataRemaining -= iReadAmount;
+ // lFileOff += iReadAmount;
+ }
+ }
+ } /* while !bDone */
+gifpagesz:
+ pInfo->iFrameCount = iNumFrames;
+ pInfo->iMaxDelay = iMaxDelay;
+ pInfo->iMinDelay = iMinDelay;
+ pInfo->iDuration = iTotalDelay;
+ return 1;
+} /* GIF_getInfo() */
+
+//
+// Unpack more chunk data for decoding
+// returns 1 to signify more data available for this image
+// 0 indicates there is no more data
+//
+static int GIFGetMoreData(GIFIMAGE *pPage)
+{
+ int iDelta = (pPage->iLZWSize - pPage->iLZWOff);
+ int iLZWBufSize;
+ unsigned char c = 1;
+
+ // Turbo mode uses combined buffers to read more compressed data
+ iLZWBufSize = (pPage->pTurboBuffer) ? LZW_BUF_SIZE_TURBO : LZW_BUF_SIZE;
+ // move any existing data down
+ if (pPage->bEndOfFrame || iDelta >= (iLZWBufSize - MAX_CHUNK_SIZE) || iDelta <= 0)
+ return 1; // frame is finished or buffer is already full; no need to read more data
+ if (pPage->iLZWOff != 0)
+ {
+// NB: memcpy() fails on some systems because the src and dest ptrs overlap
+// so copy the bytes in a simple loop to avoid problems
+ for (int i=0; iiLZWSize - pPage->iLZWOff; i++) {
+ pPage->ucLZW[i] = pPage->ucLZW[i + pPage->iLZWOff];
+ }
+ pPage->iLZWSize -= pPage->iLZWOff;
+ pPage->iLZWOff = 0;
+ }
+ while (c && pPage->GIFFile.iPos < pPage->GIFFile.iSize && pPage->iLZWSize < (iLZWBufSize-MAX_CHUNK_SIZE))
+ {
+ (*pPage->pfnRead)(&pPage->GIFFile, &c, 1); // current length
+ (*pPage->pfnRead)(&pPage->GIFFile, &pPage->ucLZW[pPage->iLZWSize], c);
+ pPage->iLZWSize += c;
+ }
+ if (c == 0) // end of frame
+ pPage->bEndOfFrame = 1;
+ return (c != 0 && pPage->GIFFile.iPos < pPage->GIFFile.iSize); // more data available?
+} /* GIFGetMoreData() */
+//
+// Draw and convert pixels when the user wants fully rendered output
+//
+static void DrawCooked(GIFIMAGE *pPage, GIFDRAW *pDraw, void *pDest)
+{
+ uint8_t c, *s, *d8, *pEnd;
+ uint8_t *pActivePalette;
+
+ pActivePalette = (pPage->bUseLocalPalette) ? (uint8_t *)pPage->pLocalPalette : (uint8_t *)pPage->pPalette;
+ // d8 points to the line in the full sized canvas where the new opaque pixels will be merged
+ d8 = &pPage->pFrameBuffer[pDraw->iX + (pDraw->iY + pDraw->y) * pPage->iCanvasWidth];
+ s = pDraw->pPixels; // s points to the newly decoded pixels of this line of the current frame
+ pEnd = s + pDraw->iWidth; // faster way to loop over the source pixels - eliminates a counter variable
+
+ if (pPage->ucPaletteType == GIF_PALETTE_1BPP || pPage->ucPaletteType == GIF_PALETTE_1BPP_OLED) { // 1-bit mono
+ uint8_t *d = NULL;
+ uint8_t *pPal = pActivePalette;
+ uint8_t uc, ucMask;
+ int iPitch = 0;
+ if (pPage->ucPaletteType == GIF_PALETTE_1BPP) { // horizontal pixels
+ d = pPage->pFrameBuffer;
+ iPitch = (pPage->iCanvasWidth+7)/8;
+ d += (pPage->iCanvasWidth * pPage->iCanvasHeight);
+ d += pDraw->iX/8; // starting column
+ d += (pDraw->iY + pDraw->y) * iPitch;
+ // Apply the new pixels to the main image and generate 1-bpp output
+ if (pDraw->ucHasTransparency) { // if transparency used
+ uint8_t ucTransparent = pDraw->ucTransparent;
+ if (pDraw->ucDisposalMethod == 2) { // restore to background color
+ uint8_t u8BG = pPal[pDraw->ucBackground];
+ if (u8BG == 1) u8BG = 0xff; // set all bits to use mask
+ uc = *d; ucMask = (0x80 >> (pDraw->iX & 7));;
+ while (s < pEnd) {
+ c = *s++;
+ if (c != ucTransparent) {
+ if (pPal[c])
+ uc |= ucMask;
+ else
+ uc &= ~ucMask;
+ *d8++ = c;
+ } else {
+ uc |= (u8BG & ucMask); // transparent pixel is restored to background color
+ *d8++ = pDraw->ucBackground;
+ }
+ ucMask >>= 1;
+ if (ucMask == 0) { // write the completed byte
+ *d++ = uc;
+ uc = *d;
+ ucMask = 0x80;
+ }
+ }
+ *d = uc; // write last partial byte
+ } else { // no disposal, just write non-transparent pixels
+ uc = *d; ucMask = (0x80 >> (pDraw->iX & 7));
+ while (s < pEnd) {
+ c = *s++;
+ if (c != ucTransparent) {
+ if (pPal[c])
+ uc |= ucMask;
+ else
+ uc &= ~ucMask;
+ *d8 = c;
+ }
+ d8++;
+ ucMask >>= 1;
+ if (ucMask == 0) {
+ *d++ = uc;
+ uc = *d;
+ ucMask = 0x80;
+ }
+ }
+ *d = uc;
+ }
+ } else { // convert everything as opaque
+ uc = *d; ucMask = (0x80 >> (pDraw->iX & 7)); // left pixel is MSB
+ while (s < pEnd) {
+ c = *d8++ = *s++; // just write the new opaque pixels over the old
+ if (pPal[c]) // if non-zero, set white pixel
+ uc |= ucMask;
+ else
+ uc &= ~ucMask;
+ ucMask >>= 1;
+ if (ucMask == 0) { // time to write the current byte
+ *d++ = uc;
+ uc = *d;
+ ucMask = 0x80;
+ }
+ }
+ *d = uc;
+ }
+ } else { // vertical pixels
+ d = pPage->pFrameBuffer;
+ d += (pPage->iCanvasWidth * pPage->iCanvasHeight);
+ d += pDraw->iX; // starting column
+ d += ((pDraw->iY + pDraw->y)>>3) * pPage->iCanvasWidth;
+ ucMask = 1 << ((pDraw->iY + pDraw->y) & 7);
+ // Apply the new pixels to the main image and generate 1-bpp output
+ if (pDraw->ucHasTransparency) { // if transparency used
+ uint8_t ucTransparent = pDraw->ucTransparent;
+ if (pDraw->ucDisposalMethod == 2) { // restore to background color
+ uint8_t u8BG = pPal[pDraw->ucBackground];
+ u8BG *= ucMask; // set the right bit
+ while (s < pEnd) {
+ c = *s++;
+ uc = *d & ~ucMask; // clear old pixel
+ if (c != ucTransparent) {
+ uc |= (pPal[c] * ucMask);
+ *d8++ = c;
+ } else {
+ uc |= u8BG; // transparent pixel is restored to background color
+ *d8++ = pDraw->ucBackground;
+ }
+ *d++ = uc; // write back the updated pixel
+ }
+ } else { // no disposal, just write non-transparent pixels
+ while (s < pEnd) {
+ c = *s++;
+ uc = *d & ~ucMask;
+ if (c != ucTransparent) {
+ *d = uc | (pPal[c] * ucMask);
+ *d8 = c;
+ }
+ d++;
+ d8++;
+ }
+ }
+ } else { // convert everything as opaque
+ while (s < pEnd) {
+ c = *d8++ = *s++; // just write the new opaque pixels over the old
+ uc = *d & ~ucMask;
+ *d++ = uc | (pPal[c] * ucMask);
+ }
+ }
+ }
+ } else if (pPage->ucPaletteType == GIF_PALETTE_RGB565_LE || pPage->ucPaletteType == GIF_PALETTE_RGB565_BE) {
+ uint16_t *d, *pPal = (uint16_t *)pActivePalette;
+ d = (uint16_t *)pDest; // dest pointer to the cooked pixels
+ // Apply the new pixels to the main image
+ if (pDraw->ucHasTransparency) { // if transparency used
+ uint8_t ucTransparent = pDraw->ucTransparent;
+ if (pDraw->ucDisposalMethod == 2) { // restore to background color
+ uint16_t u16BG = pPal[pDraw->ucBackground];
+ while (s < pEnd) {
+ c = *s++;
+ if (c != ucTransparent) {
+ *d++ = pPal[c];
+ *d8++ = c;
+ } else {
+ *d++ = u16BG; // transparent pixel is restored to background color
+ *d8++ = pDraw->ucBackground;
+ }
+ }
+ } else { // no disposal, just write non-transparent pixels
+ while (s < pEnd) {
+ c = *s++;
+ if (c != ucTransparent) {
+ *d = pPal[c];
+ *d8 = c;
+ }
+ d++;
+ d8++;
+ }
+ }
+ } else { // convert all pixels through the palette without transparency
+#if REGISTER_WIDTH == 64
+ // parallelize the writes
+ // optimizing for the write buffer helps; reading 4 bytes at a time vs 1 doesn't on M1
+ while (s < pEnd + 4) { // group 4 pixels
+ BIGUINT bu;
+ uint8_t s0, s1, s2, s3;
+ uint16_t d1, d2, d3;
+ *(uint32_t *)d8 = *(uint32_t *)s; // just copy new opaque pixels over the old
+ s0 = s[0]; s1 = s[1]; s2 = s[2]; s3 = s[3];
+ bu = pPal[s0]; // not much difference on Apple M1
+ d1 = pPal[s1]; // but other processors may gain
+ d2 = pPal[s2]; // from unrolling the reads
+ d3 = pPal[s3];
+ bu |= (BIGUINT)d1 << 16;
+ bu |= (BIGUINT)d2 << 32;
+ bu |= (BIGUINT)d3 << 48;
+ s += 4;
+ d8 += 4;
+ *(BIGUINT *)d = bu;
+ d += 4;
+ }
+#endif
+ while (s < pEnd) {
+ c = *d8++ = *s++; // just write the new opaque pixels over the old
+ *d++ = pPal[c]; // and create the cooked pixels through the palette
+ }
+ }
+ } else { // 24bpp or 32bpp
+ uint8_t pixel, *d, *pPal;
+ int x;
+ d = (uint8_t *)pDest;
+ pPal = pActivePalette;
+ if (pDraw->ucHasTransparency) {
+ uint8_t ucTransparent = pDraw->ucTransparent;
+ if (pDraw->ucDisposalMethod == 2) { // restore to background color
+ uint8_t * bg = &pPal[pDraw->ucBackground * 3];
+ if (pPage->ucPaletteType == GIF_PALETTE_RGB888) {
+ while (s < pEnd) {
+ pixel = *s++;
+ if (pixel != ucTransparent) {
+ *d8++ = pixel;
+ d[0] = pPal[(pixel * 3) + 2];
+ d[1] = pPal[(pixel * 3) + 1];
+ d[2] = pPal[(pixel * 3) + 0];
+ d += 3;
+ } else {
+ *d8++ = pDraw->ucBackground;
+ d[0] = bg[2];
+ d[1] = bg[1];
+ d[2] = bg[0];
+ d += 3;
+ }
+ }
+ } else { /* GIF_PALETTE_RGB8888 */
+ while (s < pEnd) {
+ pixel = *s++;
+ if (pixel != ucTransparent) {
+ *d8++ = pixel;
+ d[0] = pPal[(pixel * 3) + 2];
+ d[1] = pPal[(pixel * 3) + 1];
+ d[2] = pPal[(pixel * 3) + 0];
+ d[3] = 0xFF;
+ d += 4;
+ } else {
+ *d8++ = pDraw->ucBackground;
+ d[3] = 0x00;
+ d += 4;
+ }
+ }
+ }
+ } else { // no disposal, just write non-transparent pixels
+ if (pPage->ucPaletteType == GIF_PALETTE_RGB888) {
+ for (x=0; xiWidth; x++) {
+ pixel = *s++;
+ if (pixel != ucTransparent) {
+ *d8 = pixel;
+ d[0] = pPal[(pixel * 3) + 2]; // convert to RGB888 pixels
+ d[1] = pPal[(pixel * 3) + 1];
+ d[2] = pPal[(pixel * 3) + 0];
+ }
+ d8++;
+ d += 3;
+ }
+ } else { // must be RGBA32
+ for (x=0; xiWidth; x++) {
+ pixel = *s++;
+ if (pixel != ucTransparent) {
+ *d8 = pixel;
+ d[0] = pPal[(pixel * 3) + 2]; // convert to RGB8888 pixels
+ d[1] = pPal[(pixel * 3) + 1];
+ d[2] = pPal[(pixel * 3) + 0];
+ d[3] = 0xff;
+ }
+ d8++;
+ d += 4;
+ }
+ }
+ }
+ } else { // no transparency
+ if (pPage->ucPaletteType == GIF_PALETTE_RGB888) {
+ for (x=0; xiWidth; x++) {
+ pixel = *d8++ = *s++;
+ *d++ = pPal[(pixel * 3) + 2]; // convert to RGB888 pixels
+ *d++ = pPal[(pixel * 3) + 1];
+ *d++ = pPal[(pixel * 3) + 0];
+ }
+ } else { // must be RGBA32
+ for (x=0; xiWidth; x++) {
+ pixel = *d8++ = *s++;
+ *d++ = pPal[(pixel * 3) + 2]; // convert to RGB8888 pixels
+ *d++ = pPal[(pixel * 3) + 1];
+ *d++ = pPal[(pixel * 3) + 0];
+ *d++ = 0xff;
+ }
+ }
+ } // opaque
+ }
+} /* DrawCooked() */
+
+//
+// Handle transparent pixels and disposal method
+// Used only when a frame buffer is allocated
+//
+static void DrawNewPixels(GIFIMAGE *pPage, GIFDRAW *pDraw)
+{
+ uint8_t *d, *s;
+ int x, iPitch = pPage->iCanvasWidth;
+
+ s = pDraw->pPixels;
+ d = &pPage->pFrameBuffer[pDraw->iX + (pDraw->y + pDraw->iY) * iPitch]; // dest pointer in our complete canvas buffer
+
+ // Apply the new pixels to the main image
+ if (pDraw->ucHasTransparency) { // if transparency used
+ uint8_t c, ucTransparent = pDraw->ucTransparent;
+ if (pDraw->ucDisposalMethod == 2) {
+ lv_memset(d, pDraw->ucBackground, pDraw->iWidth); // start with background color
+ }
+ for (x=0; xiWidth; x++) {
+ c = *s++;
+ if (c != ucTransparent)
+ *d = c;
+ d++;
+ }
+ } else { // disposal method doesn't matter when there aren't any transparent pixels
+ lv_memcpy(d, s, pDraw->iWidth); // just overwrite the old pixels
+ }
+} /* DrawNewPixels() */
+//
+// LZWCopyBytes
+//
+// Output the bytes for a single code (checks for buffer len)
+//
+static int LZWCopyBytes(unsigned char *buf, int iOffset, uint32_t *pSymbols, uint16_t *pLengths)
+{
+int iLen;
+uint8_t c, *s, *d, *pEnd;
+uint32_t u32Offset;
+
+ iLen = *pLengths;
+ u32Offset = *pSymbols;
+ // The string data frequently writes past the end of the framebuffer (past last pixel)
+ // ...but with the placement of our code tables AFTER the framebuffer, it doesn't matter
+ // Adding a check for buffer overrun here slows everything down about 10%
+ s = &buf[u32Offset & 0x7fffff];
+ d = &buf[iOffset];
+ pEnd = &d[iLen];
+ while (d < pEnd) // most frequent are 1-8 bytes in length, copy 4 or 8 bytes in these cases too
+ {
+#ifdef ALLOWS_UNALIGNED
+// This is a significant perf improvement compared to copying 1 byte at a time
+// even though it will often copy too many bytes
+ BIGUINT tmp = *(BIGUINT *) s;
+ s += sizeof(BIGUINT);
+ *(BIGUINT *)d = tmp;
+ d += sizeof(BIGUINT);
+#else
+// CPUs which enforce unaligned address exceptions must do it 1 byte at a time
+ *d++ = *s++;
+#endif
+ }
+ if (u32Offset & 0x800000) // was a newly used code
+ {
+ d = pEnd; // in case we overshot
+ c = (uint8_t)(u32Offset >> 24);
+ iLen++;
+ // since the code with extension byte has now been written to the output, fix the code
+ *pSymbols = iOffset;
+// pSymbols[SYM_EXTRAS] = 0xffffffff;
+ *d = c;
+ *pLengths = (uint16_t)iLen;
+ }
+ return iLen;
+} /* LZWCopyBytes() */
+//
+// Macro to extract a variable length code
+//
+#define GET_CODE_TURBO if (bitnum > (REGISTER_WIDTH - MAX_CODE_SIZE/*codesize*/)) { p += (bitnum >> 3); \
+ bitnum &= 7; ulBits = INTELLONG(p); } \
+ code = ((ulBits >> bitnum) & sMask); \
+ bitnum += codesize;
+
+//
+// DecodeLZWTurbo
+//
+// Theory of operation:
+//
+// The 'traditional' LZW decoder maintains a dictionary with a linked list of codes.
+// These codes build into longer chains as more data is decoded. To output the pixels,
+// the linked list is traversed backwards from the last node to the first, then these
+// pixels are copied in reverse order to the output bitmap.
+//
+// My decoder takes a different approach. The output image becomes the dictionary and
+// the tables keep track of where in the output image the 'run' begins and its length.
+// ** NB **
+// These tables cannot be 16-bit values because a single dictionary's output can be
+// bigger than 64K
+//
+// I also work with the compressed data differently. Most decoders wind their way through
+// the chunked data by constantly checking if the current chunk has run out of data. I
+// take a different approach since modern machines have plenty of memory - I 'de-chunk'
+// the data first so that the inner loop can just decode as fast as possible. I also keep
+// a set of codes in a 64-bit local variable to minimize memory reads.
+//
+// These 2 changes result in a much faster decoder. For poorly compressed images, the
+// speed gain is about 2.5x compared to giflib. For well compressed images (long runs)
+// the speed can be as much as 30x faster. This is because it doesn't have to walk
+// backwards through the linked list of codes when outputting pixels. It also doesn't
+// have to copy pixels in reverse order, then unwind them.
+//
+static int DecodeLZWTurbo(GIFIMAGE *pImage, int iOptions)
+{
+int i, bitnum;
+int iUncompressedLen;
+uint32_t code, oldcode, codesize, nextcode, nextlim;
+uint32_t cc, eoi;
+uint32_t sMask;
+uint8_t c, *p, *buf, codestart, *pHighWater;
+BIGUINT ulBits;
+int iLen, iColors;
+int iErr = GIF_SUCCESS;
+int iOffset;
+uint32_t *pSymbols;
+uint16_t *pLengths;
+
+ (void)iOptions;
+ pImage->iYCount = pImage->iHeight; // count down the lines
+ pImage->iXCount = pImage->iWidth;
+ bitnum = 0;
+ pHighWater = pImage->ucLZW + LZW_HIGHWATER_TURBO;
+ pImage->iLZWOff = 0; // Offset into compressed data
+ GIFGetMoreData(pImage); // Read some data to start
+ codestart = pImage->ucCodeStart;
+ iColors = 1 << codestart;
+ sMask = UINT32_MAX << (codestart+1);
+ sMask = 0xffffffff - sMask;
+ cc = (sMask >> 1) + 1; /* Clear code */
+ eoi = cc + 1;
+ iUncompressedLen = (pImage->iWidth * pImage->iHeight);
+ buf = (uint8_t *)pImage->pTurboBuffer;
+ pSymbols = (uint32_t *)&buf[iUncompressedLen+256]; // we need 32-bits (really 23) for the offsets
+ pLengths = (uint16_t *)&pSymbols[4096]; // but only 16-bits for the length of any single string
+ iOffset = 0; // output data offset
+ p = pImage->ucLZW; // un-chunked LZW data
+ ulBits = INTELLONG(p); // start by reading some LZW data
+ // set up the default symbols (0..iColors-1)
+ for (i = 0; i= nextlim && codesize < MAX_CODE_SIZE) {
+ codesize++;
+ nextlim <<= 1;
+ sMask = (sMask << 1) | 1;
+ }
+ if (p >= pHighWater) {
+ pImage->iLZWOff = (int)(p - pImage->ucLZW); // restore object member var
+ GIFGetMoreData(pImage); // We need to read more LZW data
+ p = &pImage->ucLZW[pImage->iLZWOff];
+ }
+ oldcode = code;
+ GET_CODE_TURBO
+ } /* while not end of LZW code stream */
+ } // while not end of frame
+ if (pImage->ucDrawType == GIF_DRAW_COOKED && pImage->pfnDraw && pImage->pFrameBuffer) { // convert each line through the palette
+ GIFDRAW gd;
+ gd.iX = pImage->iX;
+ gd.iY = pImage->iY;
+ gd.iWidth = pImage->iWidth;
+ gd.iHeight = pImage->iHeight;
+ gd.pPalette = (pImage->bUseLocalPalette) ? pImage->pLocalPalette : pImage->pPalette;
+ gd.pPalette24 = (uint8_t *)gd.pPalette; // just cast the pointer for RGB888
+ gd.ucIsGlobalPalette = pImage->bUseLocalPalette==1?0:1;
+ gd.pUser = pImage->pUser;
+ gd.ucPaletteType = pImage->ucPaletteType;
+ for (int y=0; yiHeight; y++) {
+ gd.y = y;
+ gd.pPixels = &buf[(y * pImage->iWidth)]; // source pixels
+ // Ugly logic to handle the interlaced line position, but it
+ // saves having to have another set of state variables
+ if (pImage->ucMap & 0x40) { // interlaced?
+ int height = pImage->iHeight-1;
+ if (gd.y > height / 2)
+ gd.y = gd.y * 2 - (height | 1);
+ else if (gd.y > height / 4)
+ gd.y = gd.y * 4 - ((height & ~1) | 2);
+ else if (gd.y > height / 8)
+ gd.y = gd.y * 8 - ((height & ~3) | 4);
+ else
+ gd.y = gd.y * 8;
+ }
+ gd.ucDisposalMethod = (pImage->ucGIFBits & 0x1c)>>2;
+ gd.ucTransparent = pImage->ucTransparent;
+ gd.ucHasTransparency = pImage->ucGIFBits & 1;
+ gd.ucBackground = pImage->ucBackground;
+ gd.iCanvasWidth = pImage->iCanvasWidth;
+ DrawCooked(pImage, &gd, &buf[pImage->iCanvasHeight * pImage->iCanvasWidth]); // dest = past end of canvas
+ gd.pPixels = &buf[pImage->iCanvasHeight * pImage->iCanvasWidth]; // point to the line we just converted
+ (*pImage->pfnDraw)(&gd); // callback to handle this line
+ }
+ }
+ return iErr;
+} /* DecodeLZWTurbo() */
+
+//
+// GIFMakePels
+//
+static void GIFMakePels(GIFIMAGE *pPage, unsigned int code)
+{
+ int iPixCount;
+ unsigned short *giftabs;
+ unsigned char *buf, *s, *pEnd, *gifpels;
+ /* Copy this string of sequential pixels to output buffer */
+ // iPixCount = 0;
+ pEnd = pPage->ucFileBuf;
+ s = pEnd + FILE_BUF_SIZE; /* Pixels will come out in reversed order */
+ buf = pPage->ucLineBuf + (pPage->iWidth - pPage->iXCount);
+ giftabs = pPage->usGIFTable;
+ gifpels = &pPage->ucGIFPixels[PIXEL_LAST];
+ while (code < LINK_UNUSED)
+ {
+ if (s == pEnd) /* Houston, we have a problem */
+ {
+ return; /* Exit with error */
+ }
+ *(--s) = gifpels[code];
+ code = giftabs[code];
+ }
+ iPixCount = (int)(intptr_t)(pEnd + FILE_BUF_SIZE - s);
+ while (iPixCount && pPage->iYCount > 0)
+ {
+ if (pPage->iXCount > iPixCount) /* Pixels fit completely on the line */
+ {
+ pEnd = buf + iPixCount;
+ while (buf < pEnd) {
+#ifdef ALLOWS_UNALIGNED
+// This is a significant perf improvement compared to copying 1 byte at a time
+// even though it will often copy too many bytes. Since we're not at the end of
+// the line, it's okay to copy a few extra pixels.
+ BIGUINT tmp = *(BIGUINT *) s;
+ s += sizeof(BIGUINT);
+ *(BIGUINT *)buf = tmp;
+ buf += sizeof(BIGUINT);
+#else
+ *buf++ = *s++;
+#endif
+ }
+ pPage->iXCount -= iPixCount;
+ // iPixCount = 0;
+ if (pPage->iLZWOff >= LZW_HIGHWATER)
+ GIFGetMoreData(pPage); // We need to read more LZW data
+ return;
+ }
+ else /* Pixels cross into next line */
+ {
+ GIFDRAW gd;
+ pEnd = buf + pPage->iXCount;
+ while (buf < pEnd)
+ {
+ *buf++ = *s++;
+ }
+ iPixCount -= pPage->iXCount;
+ pPage->iXCount = pPage->iWidth; /* Reset pixel count */
+ // Prepare GIDRAW structure for callback
+ gd.iX = pPage->iX;
+ gd.iY = pPage->iY;
+ gd.iWidth = pPage->iWidth;
+ gd.iHeight = pPage->iHeight;
+ gd.pPixels = pPage->ucLineBuf;
+ gd.pPalette = (pPage->bUseLocalPalette) ? pPage->pLocalPalette : pPage->pPalette;
+ gd.pPalette24 = (uint8_t *)gd.pPalette; // just cast the pointer for RGB888
+ gd.ucIsGlobalPalette = pPage->bUseLocalPalette==1?0:1;
+ gd.y = pPage->iHeight - pPage->iYCount;
+ // Ugly logic to handle the interlaced line position, but it
+ // saves having to have another set of state variables
+ if (pPage->ucMap & 0x40) { // interlaced?
+ int height = pPage->iHeight-1;
+ if (gd.y > height / 2)
+ gd.y = gd.y * 2 - (height | 1);
+ else if (gd.y > height / 4)
+ gd.y = gd.y * 4 - ((height & ~1) | 2);
+ else if (gd.y > height / 8)
+ gd.y = gd.y * 8 - ((height & ~3) | 4);
+ else
+ gd.y = gd.y * 8;
+ }
+ gd.ucDisposalMethod = (pPage->ucGIFBits & 0x1c)>>2;
+ gd.ucTransparent = pPage->ucTransparent;
+ gd.ucHasTransparency = pPage->ucGIFBits & 1;
+ gd.ucBackground = pPage->ucBackground;
+ gd.iCanvasWidth = pPage->iCanvasWidth;
+ gd.pUser = pPage->pUser;
+ gd.ucPaletteType = pPage->ucPaletteType;
+ if (pPage->pFrameBuffer) // update the frame buffer
+ {
+ int iPitch = 0, iBpp = 1, iOffset = pPage->iCanvasWidth * pPage->iCanvasHeight;
+ if (pPage->ucDrawType == GIF_DRAW_COOKED) {
+ if (!pPage->pfnDraw) { // no draw callback, prepare the full frame
+ switch (pPage->ucPaletteType) {
+ case GIF_PALETTE_1BPP:
+ iPitch = (pPage->iCanvasWidth + 7) / 8;
+ break;
+ case GIF_PALETTE_RGB565_BE:
+ case GIF_PALETTE_RGB565_LE:
+ iPitch = (pPage->iCanvasWidth * 2);
+ iBpp = 2;
+ break;
+ case GIF_PALETTE_RGB888:
+ iPitch = pPage->iCanvasWidth * 3;
+ iBpp = 3;
+ break;
+ case GIF_PALETTE_RGB8888:
+ iPitch = pPage->iCanvasWidth * 4;
+ iBpp = 4;
+ break;
+ }
+ iOffset += (iBpp * pPage->iX) + ((gd.y + pPage->iY) * iPitch);
+ }
+ DrawCooked(pPage, &gd, &pPage->pFrameBuffer[iOffset]);
+ // pass the cooked pixel pointer to the GIFDraw callback
+ gd.pPixels = &pPage->pFrameBuffer[iOffset];
+ } else { // the user will manage converting them through the palette
+ DrawNewPixels(pPage, &gd); // merge the new opaque pixels
+ }
+ }
+ if (pPage->pfnDraw) {
+ (*pPage->pfnDraw)(&gd); // callback to handle this line
+ }
+ pPage->iYCount--;
+ buf = pPage->ucLineBuf;
+ if (pPage->iLZWOff >= LZW_HIGHWATER)
+ GIFGetMoreData(pPage); // We need to read more LZW data
+ }
+ } /* while */
+ if (pPage->iLZWOff >= LZW_HIGHWATER)
+ GIFGetMoreData(pPage); // We need to read more LZW data
+ return;
+} /* GIFMakePels() */
+//
+// Macro to extract a variable length code
+//
+#define GET_CODE if (bitnum > (REGISTER_WIDTH - codesize)) { pImage->iLZWOff += (bitnum >> 3); \
+ bitnum &= 7; ulBits = INTELLONG(&p[pImage->iLZWOff]); } \
+ code = (unsigned short) (ulBits >> bitnum); /* Read a REGISTER_WIDTH chunk */ \
+ code &= sMask; bitnum += codesize;
+//
+// Decode LZW into an image
+//
+static int DecodeLZW(GIFIMAGE *pImage, int iOptions)
+{
+ int i, bitnum;
+ unsigned short oldcode, codesize, nextcode, nextlim;
+ unsigned short *giftabs, cc, eoi;
+ signed short sMask;
+ unsigned char c, *gifpels, *p;
+ // int iStripSize;
+ //unsigned char **index;
+ BIGUINT ulBits;
+ unsigned short code;
+ (void)iOptions; // not used for now
+ // if output can be used for string table, do it faster
+ // if (bGIF && (OutPage->cBitsperpixel == 8 && ((OutPage->iWidth & 3) == 0)))
+ // return PILFastLZW(InPage, OutPage, bGIF, iOptions);
+ if (pImage->ucDrawType == GIF_DRAW_COOKED && pImage->pFrameBuffer == NULL && pImage->pfnDraw == NULL) { // without a framebuffer and a GIFDRAW callback, we cannot continue
+ pImage->iError = GIF_INVALID_PARAMETER;
+ return 1; // indicate a problem
+ }
+ // If the user selected RAW output and there is no GIFDRAW callback, that won't work either
+ if (pImage->ucDrawType == GIF_DRAW_RAW && pImage->pfnDraw == NULL) {
+ pImage->iError = GIF_INVALID_PARAMETER;
+ return 1; // indicate a problem
+ }
+ p = pImage->ucLZW; // un-chunked LZW data
+ sMask = 0xffff << (pImage->ucCodeStart + 1);
+ sMask = 0xffff - sMask;
+ cc = (sMask >> 1) + 1; /* Clear code */
+ eoi = cc + 1;
+ giftabs = pImage->usGIFTable;
+ gifpels = pImage->ucGIFPixels;
+ pImage->iYCount = pImage->iHeight; // count down the lines
+ pImage->iXCount = pImage->iWidth;
+ bitnum = 0;
+ pImage->iLZWOff = 0; // Offset into compressed data
+ GIFGetMoreData(pImage); // Read some data to start
+
+ // Initialize code table
+ // this part only needs to be initialized once
+ for (i = 0; i < cc; i++)
+ {
+ gifpels[PIXEL_FIRST + i] = gifpels[PIXEL_LAST + i] = (unsigned short) i;
+ giftabs[i] = LINK_END;
+ }
+init_codetable:
+ codesize = pImage->ucCodeStart + 1;
+ sMask = 0xffff << (pImage->ucCodeStart + 1);
+ sMask = 0xffff - sMask;
+ nextcode = cc + 2;
+ nextlim = (unsigned short) ((1 << codesize));
+ // This part of the table needs to be reset multiple times
+ lv_memset(&giftabs[cc], (uint8_t) LINK_UNUSED, sizeof(pImage->usGIFTable) - sizeof(giftabs[0])*cc);
+ ulBits = INTELLONG(&p[pImage->iLZWOff]); // start by reading 4 bytes of LZW data
+ GET_CODE
+ if (code == cc) // we just reset the dictionary, so get another code
+ {
+ GET_CODE
+ }
+ c = oldcode = code;
+ GIFMakePels(pImage, code); // first code is output as the first pixel
+ // Main decode loop
+ while (code != eoi && pImage->iYCount > 0) // && y < pImage->iHeight+1) /* Loop through all lines of the image (or strip) */
+ {
+ GET_CODE
+ if (code == cc) /* Clear code?, and not first code */
+ goto init_codetable;
+ if (code != eoi)
+ {
+ if (nextcode < nextlim) // for deferred cc case, don't let it overwrite the last entry (fff)
+ {
+ giftabs[nextcode] = oldcode;
+ gifpels[PIXEL_FIRST + nextcode] = c; // oldcode pixel value
+ gifpels[PIXEL_LAST + nextcode] = c = gifpels[PIXEL_FIRST + code];
+ }
+ nextcode++;
+ if (nextcode >= nextlim && codesize < MAX_CODE_SIZE)
+ {
+ codesize++;
+ nextlim <<= 1;
+ sMask = nextlim - 1;
+ }
+ GIFMakePels(pImage, code);
+ oldcode = code;
+ }
+ } /* while not end of LZW code stream */
+ return 0;
+//gif_forced_error:
+// free(pImage->pPixels);
+// pImage->pPixels = NULL;
+// return -1;
+} /* DecodeLZW() */
+
+
diff --git a/lib/libesp32_lvgl/lvgl/src/libs/gif/LICENSE.txt b/lib/libesp32_lvgl/lvgl/src/libs/gif/LICENSE.txt
deleted file mode 100644
index c53d51993..000000000
--- a/lib/libesp32_lvgl/lvgl/src/libs/gif/LICENSE.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-All of the source code and documentation for gifdec is released into the
-public domain and provided without warranty of any kind.
diff --git a/lib/libesp32_lvgl/lvgl/src/libs/gif/gifdec.c b/lib/libesp32_lvgl/lvgl/src/libs/gif/gifdec.c
deleted file mode 100644
index 7c278d6ed..000000000
--- a/lib/libesp32_lvgl/lvgl/src/libs/gif/gifdec.c
+++ /dev/null
@@ -1,823 +0,0 @@
-#include "gifdec.h"
-#include "../../misc/lv_log.h"
-#include "../../stdlib/lv_mem.h"
-#include "../../misc/lv_color.h"
-#if LV_USE_GIF
-
-#include
-#include
-#include
-
-#define MIN(A, B) ((A) < (B) ? (A) : (B))
-#define MAX(A, B) ((A) > (B) ? (A) : (B))
-
-typedef struct Entry {
- uint16_t length;
- uint16_t prefix;
- uint8_t suffix;
-} Entry;
-
-typedef struct Table {
- int bulk;
- int nentries;
- Entry * entries;
-} Table;
-
-#if LV_GIF_CACHE_DECODE_DATA
-#define LZW_MAXBITS 12
-#define LZW_TABLE_SIZE (1 << LZW_MAXBITS)
-#define LZW_CACHE_SIZE (LZW_TABLE_SIZE * 4)
-#endif
-
-static gd_GIF * gif_open(gd_GIF * gif);
-static bool f_gif_open(gd_GIF * gif, const void * path, bool is_file);
-static void f_gif_read(gd_GIF * gif, void * buf, size_t len);
-static int f_gif_seek(gd_GIF * gif, size_t pos, int k);
-static void f_gif_close(gd_GIF * gif);
-
-#if LV_USE_DRAW_SW_ASM == LV_DRAW_SW_ASM_HELIUM
- #include "gifdec_mve.h"
-#endif
-
-static uint16_t
-read_num(gd_GIF * gif)
-{
- uint8_t bytes[2];
-
- f_gif_read(gif, bytes, 2);
- return bytes[0] + (((uint16_t) bytes[1]) << 8);
-}
-
-gd_GIF *
-gd_open_gif_file(const char * fname)
-{
- gd_GIF gif_base;
- memset(&gif_base, 0, sizeof(gif_base));
-
- bool res = f_gif_open(&gif_base, fname, true);
- if(!res) return NULL;
-
- return gif_open(&gif_base);
-}
-
-gd_GIF *
-gd_open_gif_data(const void * data)
-{
- gd_GIF gif_base;
- memset(&gif_base, 0, sizeof(gif_base));
-
- bool res = f_gif_open(&gif_base, data, false);
- if(!res) return NULL;
-
- return gif_open(&gif_base);
-}
-
-static gd_GIF * gif_open(gd_GIF * gif_base)
-{
- uint8_t sigver[3];
- uint16_t width, height, depth;
- uint8_t fdsz, bgidx, aspect;
- uint8_t * bgcolor;
- int gct_sz;
- gd_GIF * gif = NULL;
-
- /* Header */
- f_gif_read(gif_base, sigver, 3);
- if(memcmp(sigver, "GIF", 3) != 0) {
- LV_LOG_WARN("invalid signature");
- goto fail;
- }
- /* Version */
- f_gif_read(gif_base, sigver, 3);
- if(memcmp(sigver, "89a", 3) != 0) {
- LV_LOG_WARN("invalid version");
- goto fail;
- }
- /* Width x Height */
- width = read_num(gif_base);
- height = read_num(gif_base);
- /* FDSZ */
- f_gif_read(gif_base, &fdsz, 1);
- /* Presence of GCT */
- if(!(fdsz & 0x80)) {
- LV_LOG_WARN("no global color table");
- goto fail;
- }
- /* Color Space's Depth */
- depth = ((fdsz >> 4) & 7) + 1;
- /* Ignore Sort Flag. */
- /* GCT Size */
- gct_sz = 1 << ((fdsz & 0x07) + 1);
- /* Background Color Index */
- f_gif_read(gif_base, &bgidx, 1);
- /* Aspect Ratio */
- f_gif_read(gif_base, &aspect, 1);
- /* Create gd_GIF Structure. */
- if(0 == width || 0 == height){
- LV_LOG_WARN("Zero size image");
- goto fail;
- }
-#if LV_GIF_CACHE_DECODE_DATA
- if(0 == (INT_MAX - sizeof(gd_GIF) - LZW_CACHE_SIZE) / width / height / 5){
- LV_LOG_WARN("Image dimensions are too large");
- goto fail;
- }
- gif = lv_malloc(sizeof(gd_GIF) + 5 * width * height + LZW_CACHE_SIZE);
- #else
- if(0 == (INT_MAX - sizeof(gd_GIF)) / width / height / 5){
- LV_LOG_WARN("Image dimensions are too large");
- goto fail;
- }
- gif = lv_malloc(sizeof(gd_GIF) + 5 * width * height);
- #endif
- if(!gif) goto fail;
- memcpy(gif, gif_base, sizeof(gd_GIF));
- gif->width = width;
- gif->height = height;
- gif->depth = depth;
- /* Read GCT */
- gif->gct.size = gct_sz;
- f_gif_read(gif, gif->gct.colors, 3 * gif->gct.size);
- gif->palette = &gif->gct;
- gif->bgindex = bgidx;
- gif->canvas = (uint8_t *) &gif[1];
- gif->frame = &gif->canvas[4 * width * height];
- if(gif->bgindex) {
- memset(gif->frame, gif->bgindex, gif->width * gif->height);
- }
- bgcolor = &gif->palette->colors[gif->bgindex * 3];
- #if LV_GIF_CACHE_DECODE_DATA
- gif->lzw_cache = gif->frame + width * height;
- #endif
-
-#ifdef GIFDEC_FILL_BG
- GIFDEC_FILL_BG(gif->canvas, gif->width * gif->height, 1, gif->width * gif->height, bgcolor, 0xff);
-#else
- for(int i = 0; i < gif->width * gif->height; i++) {
- gif->canvas[i * 4 + 0] = *(bgcolor + 2);
- gif->canvas[i * 4 + 1] = *(bgcolor + 1);
- gif->canvas[i * 4 + 2] = *(bgcolor + 0);
- gif->canvas[i * 4 + 3] = 0xff;
- }
-#endif
- gif->anim_start = f_gif_seek(gif, 0, LV_FS_SEEK_CUR);
- gif->loop_count = -1;
- goto ok;
-fail:
- f_gif_close(gif_base);
-ok:
- return gif;
-}
-
-static void
-discard_sub_blocks(gd_GIF * gif)
-{
- uint8_t size;
-
- do {
- f_gif_read(gif, &size, 1);
- f_gif_seek(gif, size, LV_FS_SEEK_CUR);
- } while(size);
-}
-
-static void
-read_plain_text_ext(gd_GIF * gif)
-{
- if(gif->plain_text) {
- uint16_t tx, ty, tw, th;
- uint8_t cw, ch, fg, bg;
- size_t sub_block;
- f_gif_seek(gif, 1, LV_FS_SEEK_CUR); /* block size = 12 */
- tx = read_num(gif);
- ty = read_num(gif);
- tw = read_num(gif);
- th = read_num(gif);
- f_gif_read(gif, &cw, 1);
- f_gif_read(gif, &ch, 1);
- f_gif_read(gif, &fg, 1);
- f_gif_read(gif, &bg, 1);
- sub_block = f_gif_seek(gif, 0, LV_FS_SEEK_CUR);
- gif->plain_text(gif, tx, ty, tw, th, cw, ch, fg, bg);
- f_gif_seek(gif, sub_block, LV_FS_SEEK_SET);
- }
- else {
- /* Discard plain text metadata. */
- f_gif_seek(gif, 13, LV_FS_SEEK_CUR);
- }
- /* Discard plain text sub-blocks. */
- discard_sub_blocks(gif);
-}
-
-static void
-read_graphic_control_ext(gd_GIF * gif)
-{
- uint8_t rdit;
-
- /* Discard block size (always 0x04). */
- f_gif_seek(gif, 1, LV_FS_SEEK_CUR);
- f_gif_read(gif, &rdit, 1);
- gif->gce.disposal = (rdit >> 2) & 3;
- gif->gce.input = rdit & 2;
- gif->gce.transparency = rdit & 1;
- gif->gce.delay = read_num(gif);
- f_gif_read(gif, &gif->gce.tindex, 1);
- /* Skip block terminator. */
- f_gif_seek(gif, 1, LV_FS_SEEK_CUR);
-}
-
-static void
-read_comment_ext(gd_GIF * gif)
-{
- if(gif->comment) {
- size_t sub_block = f_gif_seek(gif, 0, LV_FS_SEEK_CUR);
- gif->comment(gif);
- f_gif_seek(gif, sub_block, LV_FS_SEEK_SET);
- }
- /* Discard comment sub-blocks. */
- discard_sub_blocks(gif);
-}
-
-static void
-read_application_ext(gd_GIF * gif)
-{
- char app_id[8];
- char app_auth_code[3];
- uint16_t loop_count;
-
- /* Discard block size (always 0x0B). */
- f_gif_seek(gif, 1, LV_FS_SEEK_CUR);
- /* Application Identifier. */
- f_gif_read(gif, app_id, 8);
- /* Application Authentication Code. */
- f_gif_read(gif, app_auth_code, 3);
- if(!strncmp(app_id, "NETSCAPE", sizeof(app_id))) {
- /* Discard block size (0x03) and constant byte (0x01). */
- f_gif_seek(gif, 2, LV_FS_SEEK_CUR);
- loop_count = read_num(gif);
- if(gif->loop_count < 0) {
- if(loop_count == 0) {
- gif->loop_count = 0;
- }
- else {
- gif->loop_count = loop_count + 1;
- }
- }
- /* Skip block terminator. */
- f_gif_seek(gif, 1, LV_FS_SEEK_CUR);
- }
- else if(gif->application) {
- size_t sub_block = f_gif_seek(gif, 0, LV_FS_SEEK_CUR);
- gif->application(gif, app_id, app_auth_code);
- f_gif_seek(gif, sub_block, LV_FS_SEEK_SET);
- discard_sub_blocks(gif);
- }
- else {
- discard_sub_blocks(gif);
- }
-}
-
-static void
-read_ext(gd_GIF * gif)
-{
- uint8_t label;
-
- f_gif_read(gif, &label, 1);
- switch(label) {
- case 0x01:
- read_plain_text_ext(gif);
- break;
- case 0xF9:
- read_graphic_control_ext(gif);
- break;
- case 0xFE:
- read_comment_ext(gif);
- break;
- case 0xFF:
- read_application_ext(gif);
- break;
- default:
- LV_LOG_WARN("unknown extension: %02X\n", label);
- }
-}
-
-static uint16_t
-get_key(gd_GIF *gif, int key_size, uint8_t *sub_len, uint8_t *shift, uint8_t *byte)
-{
- int bits_read;
- int rpad;
- int frag_size;
- uint16_t key;
-
- key = 0;
- for (bits_read = 0; bits_read < key_size; bits_read += frag_size) {
- rpad = (*shift + bits_read) % 8;
- if (rpad == 0) {
- /* Update byte. */
- if (*sub_len == 0) {
- f_gif_read(gif, sub_len, 1); /* Must be nonzero! */
- if (*sub_len == 0) return 0x1000;
- }
- f_gif_read(gif, byte, 1);
- (*sub_len)--;
- }
- frag_size = MIN(key_size - bits_read, 8 - rpad);
- key |= ((uint16_t) ((*byte) >> rpad)) << bits_read;
- }
- /* Clear extra bits to the left. */
- key &= (1 << key_size) - 1;
- *shift = (*shift + key_size) % 8;
- return key;
-}
-
-#if LV_GIF_CACHE_DECODE_DATA
-/* Decompress image pixels.
- * Return 0 on success or -1 on out-of-memory (w.r.t. LZW code table) or parse error. */
-static int
-read_image_data(gd_GIF *gif, int interlace)
-{
- uint8_t sub_len, shift, byte;
- int ret = 0;
- int key_size;
- int y, pass, linesize;
- uint8_t *ptr = NULL;
- uint8_t *ptr_row_start = NULL;
- uint8_t *ptr_base = NULL;
- size_t start, end;
- uint16_t key, clear_code, stop_code, curr_code;
- int frm_off, frm_size,curr_size,top_slot,new_codes,slot;
- /* The first value of the value sequence corresponding to key */
- int first_value;
- int last_key;
- uint8_t *sp = NULL;
- uint8_t *p_stack = NULL;
- uint8_t *p_suffix = NULL;
- uint16_t *p_prefix = NULL;
-
- /* get initial key size and clear code, stop code */
- f_gif_read(gif, &byte, 1);
- key_size = (int) byte;
- clear_code = 1 << key_size;
- stop_code = clear_code + 1;
- key = 0;
-
- start = f_gif_seek(gif, 0, LV_FS_SEEK_CUR);
- discard_sub_blocks(gif);
- end = f_gif_seek(gif, 0, LV_FS_SEEK_CUR);
- f_gif_seek(gif, start, LV_FS_SEEK_SET);
-
- linesize = gif->width;
- ptr_base = &gif->frame[gif->fy * linesize + gif->fx];
- ptr_row_start = ptr_base;
- ptr = ptr_row_start;
- sub_len = shift = 0;
- /* decoder */
- pass = 0;
- y = 0;
- p_stack = gif->lzw_cache;
- p_suffix = gif->lzw_cache + LZW_TABLE_SIZE;
- p_prefix = (uint16_t*)(gif->lzw_cache + LZW_TABLE_SIZE * 2);
- frm_off = 0;
- frm_size = gif->fw * gif->fh;
- curr_size = key_size + 1;
- top_slot = 1 << curr_size;
- new_codes = clear_code + 2;
- slot = new_codes;
- first_value = -1;
- last_key = -1;
- sp = p_stack;
-
- while (frm_off < frm_size) {
- /* copy data to frame buffer */
- while (sp > p_stack) {
- if(frm_off >= frm_size){
- LV_LOG_WARN("LZW table token overflows the frame buffer");
- return -1;
- }
- *ptr++ = *(--sp);
- frm_off += 1;
- /* read one line */
- if ((ptr - ptr_row_start) == gif->fw) {
- if (interlace) {
- switch(pass) {
- case 0:
- case 1:
- y += 8;
- ptr_row_start += linesize * 8;
- break;
- case 2:
- y += 4;
- ptr_row_start += linesize * 4;
- break;
- case 3:
- y += 2;
- ptr_row_start += linesize * 2;
- break;
- default:
- break;
- }
- while (y >= gif->fh) {
- y = 4 >> pass;
- ptr_row_start = ptr_base + linesize * y;
- pass++;
- }
- } else {
- ptr_row_start += linesize;
- }
- ptr = ptr_row_start;
- }
- }
-
- key = get_key(gif, curr_size, &sub_len, &shift, &byte);
-
- if (key == stop_code || key >= LZW_TABLE_SIZE)
- break;
-
- if (key == clear_code) {
- curr_size = key_size + 1;
- slot = new_codes;
- top_slot = 1 << curr_size;
- first_value = last_key = -1;
- sp = p_stack;
- continue;
- }
-
- curr_code = key;
- /*
- * If the current code is a code that will be added to the decoding
- * dictionary, it is composed of the data list corresponding to the
- * previous key and its first data.
- * */
- if (curr_code == slot && first_value >= 0) {
- *sp++ = first_value;
- curr_code = last_key;
- }else if(curr_code >= slot)
- break;
-
- while (curr_code >= new_codes) {
- *sp++ = p_suffix[curr_code];
- curr_code = p_prefix[curr_code];
- }
- *sp++ = curr_code;
-
- /* Add code to decoding dictionary */
- if (slot < top_slot && last_key >= 0) {
- p_suffix[slot] = curr_code;
- p_prefix[slot++] = last_key;
- }
- first_value = curr_code;
- last_key = key;
- if (slot >= top_slot) {
- if (curr_size < LZW_MAXBITS) {
- top_slot <<= 1;
- curr_size += 1;
- }
- }
- }
-
- if (key == stop_code) f_gif_read(gif, &sub_len, 1); /* Must be zero! */
- f_gif_seek(gif, end, LV_FS_SEEK_SET);
- return ret;
-}
-#else
-static Table *
-new_table(int key_size)
-{
- int key;
- int init_bulk = MAX(1 << (key_size + 1), 0x100);
- Table * table = lv_malloc(sizeof(*table) + sizeof(Entry) * init_bulk);
- if(table) {
- table->bulk = init_bulk;
- table->nentries = (1 << key_size) + 2;
- table->entries = (Entry *) &table[1];
- for(key = 0; key < (1 << key_size); key++)
- table->entries[key] = (Entry) {
- 1, 0xFFF, key
- };
- }
- return table;
-}
-
-/* Add table entry. Return value:
- * 0 on success
- * +1 if key size must be incremented after this addition
- * -1 if could not realloc table */
-static int
-add_entry(Table ** tablep, uint16_t length, uint16_t prefix, uint8_t suffix)
-{
- Table * table = *tablep;
- if(table->nentries == table->bulk) {
- table->bulk *= 2;
- table = lv_realloc(table, sizeof(*table) + sizeof(Entry) * table->bulk);
- if(!table) return -1;
- table->entries = (Entry *) &table[1];
- *tablep = table;
- }
- table->entries[table->nentries] = (Entry) {
- length, prefix, suffix
- };
- table->nentries++;
- if((table->nentries & (table->nentries - 1)) == 0)
- return 1;
- return 0;
-}
-
-/* Compute output index of y-th input line, in frame of height h. */
-static int
-interlaced_line_index(int h, int y)
-{
- int p; /* number of lines in current pass */
-
- p = (h - 1) / 8 + 1;
- if(y < p) /* pass 1 */
- return y * 8;
- y -= p;
- p = (h - 5) / 8 + 1;
- if(y < p) /* pass 2 */
- return y * 8 + 4;
- y -= p;
- p = (h - 3) / 4 + 1;
- if(y < p) /* pass 3 */
- return y * 4 + 2;
- y -= p;
- /* pass 4 */
- return y * 2 + 1;
-}
-
-/* Decompress image pixels.
- * Return 0 on success or -1 on out-of-memory (w.r.t. LZW code table) or parse error. */
-static int
-read_image_data(gd_GIF * gif, int interlace)
-{
- uint8_t sub_len, shift, byte;
- int init_key_size, key_size, table_is_full = 0;
- int frm_off, frm_size, str_len = 0, i, p, x, y;
- uint16_t key, clear, stop;
- int ret;
- Table * table;
- Entry entry = {0};
- size_t start, end;
-
- f_gif_read(gif, &byte, 1);
- key_size = (int) byte;
- start = f_gif_seek(gif, 0, LV_FS_SEEK_CUR);
- discard_sub_blocks(gif);
- end = f_gif_seek(gif, 0, LV_FS_SEEK_CUR);
- f_gif_seek(gif, start, LV_FS_SEEK_SET);
- clear = 1 << key_size;
- stop = clear + 1;
- table = new_table(key_size);
- key_size++;
- init_key_size = key_size;
- sub_len = shift = 0;
- key = get_key(gif, key_size, &sub_len, &shift, &byte); /* clear code */
- frm_off = 0;
- ret = 0;
- frm_size = gif->fw * gif->fh;
- while(frm_off < frm_size) {
- if(key == clear) {
- key_size = init_key_size;
- table->nentries = (1 << (key_size - 1)) + 2;
- table_is_full = 0;
- }
- else if(!table_is_full) {
- ret = add_entry(&table, str_len + 1, key, entry.suffix);
- if(ret == -1) {
- lv_free(table);
- return -1;
- }
- if(table->nentries == 0x1000) {
- ret = 0;
- table_is_full = 1;
- }
- }
- key = get_key(gif, key_size, &sub_len, &shift, &byte);
- if(key == clear) continue;
- if(key == stop || key == 0x1000) break;
- if(ret == 1) key_size++;
- entry = table->entries[key];
- str_len = entry.length;
- if(frm_off + str_len > frm_size){
- LV_LOG_WARN("LZW table token overflows the frame buffer");
- lv_free(table);
- return -1;
- }
- for(i = 0; i < str_len; i++) {
- p = frm_off + entry.length - 1;
- x = p % gif->fw;
- y = p / gif->fw;
- if(interlace)
- y = interlaced_line_index((int) gif->fh, y);
- gif->frame[(gif->fy + y) * gif->width + gif->fx + x] = entry.suffix;
- if(entry.prefix == 0xFFF)
- break;
- else
- entry = table->entries[entry.prefix];
- }
- frm_off += str_len;
- if(key < table->nentries - 1 && !table_is_full)
- table->entries[table->nentries - 1].suffix = entry.suffix;
- }
- lv_free(table);
- if(key == stop) f_gif_read(gif, &sub_len, 1); /* Must be zero! */
- f_gif_seek(gif, end, LV_FS_SEEK_SET);
- return 0;
-}
-
-#endif
-
-/* Read image.
- * Return 0 on success or -1 on out-of-memory (w.r.t. LZW code table) or parse error. */
-static int
-read_image(gd_GIF * gif)
-{
- uint8_t fisrz;
- int interlace;
-
- /* Image Descriptor. */
- gif->fx = read_num(gif);
- gif->fy = read_num(gif);
- gif->fw = read_num(gif);
- gif->fh = read_num(gif);
- if(gif->fx + (uint32_t)gif->fw > gif->width || gif->fy + (uint32_t)gif->fh > gif->height){
- LV_LOG_WARN("Frame coordinates out of image bounds");
- return -1;
- }
- f_gif_read(gif, &fisrz, 1);
- interlace = fisrz & 0x40;
- /* Ignore Sort Flag. */
- /* Local Color Table? */
- if(fisrz & 0x80) {
- /* Read LCT */
- gif->lct.size = 1 << ((fisrz & 0x07) + 1);
- f_gif_read(gif, gif->lct.colors, 3 * gif->lct.size);
- gif->palette = &gif->lct;
- }
- else
- gif->palette = &gif->gct;
- /* Image Data. */
- return read_image_data(gif, interlace);
-}
-
-static void
-render_frame_rect(gd_GIF * gif, uint8_t * buffer)
-{
- int i = gif->fy * gif->width + gif->fx;
-#ifdef GIFDEC_RENDER_FRAME
- GIFDEC_RENDER_FRAME(&buffer[i * 4], gif->fw, gif->fh, gif->width,
- &gif->frame[i], gif->palette->colors,
- gif->gce.transparency ? gif->gce.tindex : 0x100);
-#else
- int j, k;
- uint8_t index, * color;
-
- for(j = 0; j < gif->fh; j++) {
- for(k = 0; k < gif->fw; k++) {
- index = gif->frame[(gif->fy + j) * gif->width + gif->fx + k];
- color = &gif->palette->colors[index * 3];
- if(!gif->gce.transparency || index != gif->gce.tindex) {
- buffer[(i + k) * 4 + 0] = *(color + 2);
- buffer[(i + k) * 4 + 1] = *(color + 1);
- buffer[(i + k) * 4 + 2] = *(color + 0);
- buffer[(i + k) * 4 + 3] = 0xFF;
- }
- }
- i += gif->width;
- }
-#endif
-}
-
-static void
-dispose(gd_GIF * gif)
-{
- int i;
- uint8_t * bgcolor;
- switch(gif->gce.disposal) {
- case 2: /* Restore to background color. */
- bgcolor = &gif->palette->colors[gif->bgindex * 3];
-
- uint8_t opa = 0xff;
- if(gif->gce.transparency) opa = 0x00;
-
- i = gif->fy * gif->width + gif->fx;
-#ifdef GIFDEC_FILL_BG
- GIFDEC_FILL_BG(&(gif->canvas[i * 4]), gif->fw, gif->fh, gif->width, bgcolor, opa);
-#else
- int j, k;
- for(j = 0; j < gif->fh; j++) {
- for(k = 0; k < gif->fw; k++) {
- gif->canvas[(i + k) * 4 + 0] = *(bgcolor + 2);
- gif->canvas[(i + k) * 4 + 1] = *(bgcolor + 1);
- gif->canvas[(i + k) * 4 + 2] = *(bgcolor + 0);
- gif->canvas[(i + k) * 4 + 3] = opa;
- }
- i += gif->width;
- }
-#endif
- break;
- case 3: /* Restore to previous, i.e., don't update canvas.*/
- break;
- default:
- /* Add frame non-transparent pixels to canvas. */
- render_frame_rect(gif, gif->canvas);
- }
-}
-
-/* Return 1 if got a frame; 0 if got GIF trailer; -1 if error. */
-int
-gd_get_frame(gd_GIF * gif)
-{
- char sep;
-
- dispose(gif);
- f_gif_read(gif, &sep, 1);
- while(sep != ',') {
- if(sep == ';') {
- f_gif_seek(gif, gif->anim_start, LV_FS_SEEK_SET);
- if(gif->loop_count == 1 || gif->loop_count < 0) {
- return 0;
- }
- else if(gif->loop_count > 1) {
- gif->loop_count--;
- }
- }
- else if(sep == '!')
- read_ext(gif);
- else return -1;
- f_gif_read(gif, &sep, 1);
- }
- if(read_image(gif) == -1)
- return -1;
- return 1;
-}
-
-void
-gd_render_frame(gd_GIF * gif, uint8_t * buffer)
-{
- render_frame_rect(gif, buffer);
-}
-
-void
-gd_rewind(gd_GIF * gif)
-{
- gif->loop_count = -1;
- f_gif_seek(gif, gif->anim_start, LV_FS_SEEK_SET);
-}
-
-void
-gd_close_gif(gd_GIF * gif)
-{
- f_gif_close(gif);
- lv_free(gif);
-}
-
-static bool f_gif_open(gd_GIF * gif, const void * path, bool is_file)
-{
- gif->f_rw_p = 0;
- gif->data = NULL;
- gif->is_file = is_file;
-
- if(is_file) {
- lv_fs_res_t res = lv_fs_open(&gif->fd, path, LV_FS_MODE_RD);
- if(res != LV_FS_RES_OK) return false;
- else return true;
- }
- else {
- gif->data = path;
- return true;
- }
-}
-
-static void f_gif_read(gd_GIF * gif, void * buf, size_t len)
-{
- if(gif->is_file) {
- lv_fs_read(&gif->fd, buf, len, NULL);
- }
- else {
- memcpy(buf, &gif->data[gif->f_rw_p], len);
- gif->f_rw_p += len;
- }
-}
-
-static int f_gif_seek(gd_GIF * gif, size_t pos, int k)
-{
- if(gif->is_file) {
- lv_fs_seek(&gif->fd, pos, k);
- uint32_t x;
- lv_fs_tell(&gif->fd, &x);
- return x;
- }
- else {
- if(k == LV_FS_SEEK_CUR) gif->f_rw_p += pos;
- else if(k == LV_FS_SEEK_SET) gif->f_rw_p = pos;
- return gif->f_rw_p;
- }
-}
-
-static void f_gif_close(gd_GIF * gif)
-{
- if(gif->is_file) {
- lv_fs_close(&gif->fd);
- }
-}
-
-#endif /*LV_USE_GIF*/
diff --git a/lib/libesp32_lvgl/lvgl/src/libs/gif/gifdec.h b/lib/libesp32_lvgl/lvgl/src/libs/gif/gifdec.h
deleted file mode 100644
index 21ff210ab..000000000
--- a/lib/libesp32_lvgl/lvgl/src/libs/gif/gifdec.h
+++ /dev/null
@@ -1,71 +0,0 @@
-#ifndef GIFDEC_H
-#define GIFDEC_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include "../../misc/lv_fs.h"
-
-#if LV_USE_GIF
-#include
-
-typedef struct _gd_Palette {
- int size;
- uint8_t colors[0x100 * 3];
-} gd_Palette;
-
-typedef struct _gd_GCE {
- uint16_t delay;
- uint8_t tindex;
- uint8_t disposal;
- int input;
- int transparency;
-} gd_GCE;
-
-
-
-typedef struct _gd_GIF {
- lv_fs_file_t fd;
- const char * data;
- uint8_t is_file;
- uint32_t f_rw_p;
- int32_t anim_start;
- uint16_t width, height;
- uint16_t depth;
- int32_t loop_count;
- gd_GCE gce;
- gd_Palette * palette;
- gd_Palette lct, gct;
- void (*plain_text)(
- struct _gd_GIF * gif, uint16_t tx, uint16_t ty,
- uint16_t tw, uint16_t th, uint8_t cw, uint8_t ch,
- uint8_t fg, uint8_t bg
- );
- void (*comment)(struct _gd_GIF * gif);
- void (*application)(struct _gd_GIF * gif, char id[8], char auth[3]);
- uint16_t fx, fy, fw, fh;
- uint8_t bgindex;
- uint8_t * canvas, * frame;
- #if LV_GIF_CACHE_DECODE_DATA
- uint8_t *lzw_cache;
- #endif
-} gd_GIF;
-
-gd_GIF * gd_open_gif_file(const char * fname);
-
-gd_GIF * gd_open_gif_data(const void * data);
-
-void gd_render_frame(gd_GIF * gif, uint8_t * buffer);
-
-int gd_get_frame(gd_GIF * gif);
-void gd_rewind(gd_GIF * gif);
-void gd_close_gif(gd_GIF * gif);
-
-#endif /*LV_USE_GIF*/
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-#endif /* GIFDEC_H */
diff --git a/lib/libesp32_lvgl/lvgl/src/libs/gif/gifdec_mve.h b/lib/libesp32_lvgl/lvgl/src/libs/gif/gifdec_mve.h
deleted file mode 100644
index 6d8339349..000000000
--- a/lib/libesp32_lvgl/lvgl/src/libs/gif/gifdec_mve.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/**
- * @file gifdec_mve.h
- *
- */
-
-#ifndef GIFDEC_MVE_H
-#define GIFDEC_MVE_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*********************
- * INCLUDES
- *********************/
-#include
-#include "../../misc/lv_color.h"
-
-/*********************
- * DEFINES
- *********************/
-
-#define GIFDEC_FILL_BG(dst, w, h, stride, color, opa) \
- _gifdec_fill_bg_mve(dst, w, h, stride, color, opa)
-
-#define GIFDEC_RENDER_FRAME(dst, w, h, stride, frame, pattern, tindex) \
- _gifdec_render_frame_mve(dst, w, h, stride, frame, pattern, tindex)
-
-/**********************
- * MACROS
- **********************/
-
-/**********************
- * TYPEDEFS
- **********************/
-
-/**********************
- * GLOBAL PROTOTYPES
- **********************/
-
-static inline void _gifdec_fill_bg_mve(uint8_t * dst, uint16_t w, uint16_t h, uint16_t stride, uint8_t * color,
- uint8_t opa)
-{
- lv_color32_t c = lv_color32_make(*(color + 0), *(color + 1), *(color + 2), opa);
- uint32_t color_32 = *(uint32_t *)&c;
-
- __asm volatile(
- ".p2align 2 \n"
- "vdup.32 q0, %[src] \n"
- "3: \n"
- "mov r0, %[dst] \n"
-
- "wlstp.32 lr, %[w], 1f \n"
- "2: \n"
-
- "vstrw.32 q0, [r0], #16 \n"
- "letp lr, 2b \n"
- "1: \n"
- "add %[dst], %[iTargetStride] \n"
- "subs %[h], #1 \n"
- "bne 3b \n"
- : [dst] "+r"(dst),
- [h] "+r"(h)
- : [src] "r"(color_32),
- [w] "r"(w),
- [iTargetStride] "r"(stride * sizeof(uint32_t))
- : "r0", "q0", "memory", "r14", "cc");
-}
-
-static inline void _gifdec_render_frame_mve(uint8_t * dst, uint16_t w, uint16_t h, uint16_t stride, uint8_t * frame,
- uint8_t * pattern, uint16_t tindex)
-{
- if(w == 0 || h == 0) {
- return;
- }
-
- __asm volatile(
- "vmov.u16 q3, #255 \n"
- "vshl.u16 q3, q3, #8 \n" /* left shift 8 for a*/
-
- "mov r0, #2 \n"
- "vidup.u16 q6, r0, #4 \n" /* [2, 6, 10, 14, 18, 22, 26, 30] */
- "mov r0, #0 \n"
- "vidup.u16 q7, r0, #4 \n" /* [0, 4, 8, 12, 16, 20, 24, 28] */
-
- "3: \n"
- "mov r1, %[dst] \n"
- "mov r2, %[frame] \n"
-
- "wlstp.16 lr, %[w], 1f \n"
- "2: \n"
-
- "mov r0, #3 \n"
- "vldrb.u16 q4, [r2], #8 \n"
- "vmul.u16 q5, q4, r0 \n"
-
- "mov r0, #1 \n"
- "vldrb.u16 q2, [%[pattern], q5] \n" /* load 8 pixel r*/
-
- "vadd.u16 q5, q5, r0 \n"
- "vldrb.u16 q1, [%[pattern], q5] \n" /* load 8 pixel g*/
-
- "vadd.u16 q5, q5, r0 \n"
- "vldrb.u16 q0, [%[pattern], q5] \n" /* load 8 pixel b*/
-
- "vshl.u16 q1, q1, #8 \n" /* left shift 8 for g*/
-
- "vorr.u16 q0, q0, q1 \n" /* make 8 pixel gb*/
- "vorr.u16 q1, q2, q3 \n" /* make 8 pixel ar*/
-
- "vcmp.i16 ne, q4, %[tindex] \n"
- "vpstt \n"
- "vstrht.16 q0, [r1, q7] \n"
- "vstrht.16 q1, [r1, q6] \n"
- "add r1, r1, #32 \n"
-
- "letp lr, 2b \n"
-
- "1: \n"
- "mov r0, %[stride], LSL #2 \n"
- "add %[dst], r0 \n"
- "add %[frame], %[stride] \n"
- "subs %[h], #1 \n"
- "bne 3b \n"
-
- : [dst] "+r"(dst),
- [frame] "+r"(frame),
- [h] "+r"(h)
- : [pattern] "r"(pattern),
- [w] "r"(w),
- [stride] "r"(stride),
- [tindex] "r"(tindex)
- : "r0", "r1", "r2", "q0", "q1", "q2", "q3", "q4", "q5", "q6", "q7", "memory", "r14", "cc");
-}
-
-#ifdef __cplusplus
-} /*extern "C"*/
-#endif
-
-#endif /*GIFDEC_MVE_H*/
diff --git a/lib/libesp32_lvgl/lvgl/src/libs/gif/lv_gif.c b/lib/libesp32_lvgl/lvgl/src/libs/gif/lv_gif.c
index 8dab9367d..8a93c661a 100644
--- a/lib/libesp32_lvgl/lvgl/src/libs/gif/lv_gif.c
+++ b/lib/libesp32_lvgl/lvgl/src/libs/gif/lv_gif.c
@@ -1,18 +1,18 @@
/**
- * @file lv_gifenc.c
+ * @file lv_gif.c
*
*/
/*********************
* INCLUDES
*********************/
-#include "lv_gif_private.h"
+#include "lv_gif.h"
#if LV_USE_GIF
#include "../../misc/lv_timer_private.h"
#include "../../misc/cache/lv_cache.h"
#include "../../core/lv_obj_class_private.h"
-
-#include "gifdec.h"
+#include "../../widgets/image/lv_image_private.h"
+#include "AnimatedGIF/src/AnimatedGIF.h"
/*********************
* DEFINES
@@ -23,11 +23,26 @@
* TYPEDEFS
**********************/
+/* the type of the AnimatedGIF pallete type passed to `GIF_begin` */
+typedef unsigned char animatedgif_color_format_t;
+
+typedef struct {
+ lv_image_t img;
+ GIFIMAGE gif;
+ const void * src;
+ lv_color_format_t color_format;
+ lv_timer_t * timer;
+ lv_image_dsc_t imgdsc;
+ int32_t loop_count;
+ uint32_t is_open : 1;
+} lv_gif_t;
+
/**********************
* STATIC PROTOTYPES
**********************/
static void lv_gif_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj);
static void lv_gif_destructor(const lv_obj_class_t * class_p, lv_obj_t * obj);
+static void initialize(lv_gif_t * gifobj);
static void next_frame_task_cb(lv_timer_t * t);
/**********************
@@ -59,63 +74,52 @@ lv_obj_t * lv_gif_create(lv_obj_t * parent)
return obj;
}
-void lv_gif_set_src(lv_obj_t * obj, const void * src)
+void lv_gif_set_color_format(lv_obj_t * obj, lv_color_format_t color_format)
{
lv_gif_t * gifobj = (lv_gif_t *) obj;
- gd_GIF * gif = gifobj->gif;
- /*Close previous gif if any*/
- if(gif != NULL) {
- lv_image_cache_drop(lv_image_get_src(obj));
-
- gd_close_gif(gif);
- gifobj->gif = NULL;
- gifobj->imgdsc.data = NULL;
- }
-
- if(lv_image_src_get_type(src) == LV_IMAGE_SRC_VARIABLE) {
- const lv_image_dsc_t * img_dsc = src;
- gif = gd_open_gif_data(img_dsc->data);
- }
- else if(lv_image_src_get_type(src) == LV_IMAGE_SRC_FILE) {
- gif = gd_open_gif_file(src);
- }
- if(gif == NULL) {
- LV_LOG_WARN("Couldn't load the source");
+ if(gifobj->color_format == color_format) {
return;
}
- gifobj->gif = gif;
- gifobj->imgdsc.data = gif->canvas;
- gifobj->imgdsc.header.magic = LV_IMAGE_HEADER_MAGIC;
- gifobj->imgdsc.header.flags = LV_IMAGE_FLAGS_MODIFIABLE;
- gifobj->imgdsc.header.cf = LV_COLOR_FORMAT_ARGB8888;
- gifobj->imgdsc.header.h = gif->height;
- gifobj->imgdsc.header.w = gif->width;
- gifobj->imgdsc.header.stride = gif->width * 4;
- gifobj->imgdsc.data_size = gif->width * gif->height * 4;
+ switch(color_format) {
+ case LV_COLOR_FORMAT_RGB565:
+ case LV_COLOR_FORMAT_RGB565_SWAPPED:
+ case LV_COLOR_FORMAT_RGB888:
+ case LV_COLOR_FORMAT_ARGB8888:
+ break;
+ default:
+ LV_LOG_WARN("gif widget does not support this color format");
+ return;
+ }
- gifobj->last_call = lv_tick_get();
+ gifobj->color_format = color_format;
- lv_image_set_src(obj, &gifobj->imgdsc);
+ if(gifobj->src != NULL) {
+ initialize(gifobj);
+ }
+}
- lv_timer_resume(gifobj->timer);
- lv_timer_reset(gifobj->timer);
+void lv_gif_set_src(lv_obj_t * obj, const void * src)
+{
+ lv_gif_t * gifobj = (lv_gif_t *) obj;
- next_frame_task_cb(gifobj->timer);
+ gifobj->src = src;
+ initialize(gifobj);
}
void lv_gif_restart(lv_obj_t * obj)
{
lv_gif_t * gifobj = (lv_gif_t *) obj;
- if(gifobj->gif == NULL) {
+ if(!gifobj->is_open) {
LV_LOG_WARN("Gif resource not loaded correctly");
return;
}
- gd_rewind(gifobj->gif);
+ GIF_reset(&gifobj->gif);
+ gifobj->loop_count = -1; /* match the behavior of the old library */
lv_timer_resume(gifobj->timer);
lv_timer_reset(gifobj->timer);
}
@@ -130,7 +134,7 @@ void lv_gif_resume(lv_obj_t * obj)
{
lv_gif_t * gifobj = (lv_gif_t *) obj;
- if(gifobj->gif == NULL) {
+ if(!gifobj->is_open) {
LV_LOG_WARN("Gif resource not loaded correctly");
return;
}
@@ -142,30 +146,30 @@ bool lv_gif_is_loaded(lv_obj_t * obj)
{
lv_gif_t * gifobj = (lv_gif_t *) obj;
- return (gifobj->gif != NULL);
+ return gifobj->is_open;
}
int32_t lv_gif_get_loop_count(lv_obj_t * obj)
{
lv_gif_t * gifobj = (lv_gif_t *) obj;
- if(gifobj->gif == NULL) {
+ if(!gifobj->is_open) {
return -1;
}
- return gifobj->gif->loop_count;
+ return gifobj->loop_count;
}
void lv_gif_set_loop_count(lv_obj_t * obj, int32_t count)
{
lv_gif_t * gifobj = (lv_gif_t *) obj;
- if(gifobj->gif == NULL) {
+ if(!gifobj->is_open) {
LV_LOG_WARN("Gif resource not loaded correctly");
return;
}
- gifobj->gif->loop_count = count;
+ gifobj->loop_count = count;
}
/**********************
@@ -178,7 +182,8 @@ static void lv_gif_constructor(const lv_obj_class_t * class_p, lv_obj_t * obj)
lv_gif_t * gifobj = (lv_gif_t *) obj;
- gifobj->gif = NULL;
+ gifobj->color_format = LV_COLOR_FORMAT_ARGB8888;
+ gifobj->is_open = 0;
gifobj->timer = lv_timer_create(next_frame_task_cb, 10, obj);
lv_timer_pause(gifobj->timer);
}
@@ -190,29 +195,121 @@ static void lv_gif_destructor(const lv_obj_class_t * class_p, lv_obj_t * obj)
lv_image_cache_drop(lv_image_get_src(obj));
- if(gifobj->gif)
- gd_close_gif(gifobj->gif);
+ if(gifobj->is_open) {
+ void * framebuffer = gifobj->gif.pFrameBuffer;
+ GIF_close(&gifobj->gif);
+ lv_free(framebuffer);
+ }
lv_timer_delete(gifobj->timer);
}
+static void initialize(lv_gif_t * gifobj)
+{
+ GIFIMAGE * gif = &gifobj->gif;
+
+ /*Close previous gif if any*/
+ if(gifobj->is_open) {
+ lv_image_cache_drop(lv_image_get_src((lv_obj_t *) gifobj));
+
+ void * framebuffer = gif->pFrameBuffer;
+ GIF_close(gif);
+ lv_free(framebuffer);
+ gifobj->is_open = 0;
+ gifobj->imgdsc.data = NULL;
+ }
+
+ animatedgif_color_format_t decoder_cf;
+ uint32_t pixel_size_bytes;
+ switch(gifobj->color_format) {
+ case LV_COLOR_FORMAT_RGB565:
+ decoder_cf = GIF_PALETTE_RGB565_LE;
+ pixel_size_bytes = 2;
+ break;
+ case LV_COLOR_FORMAT_RGB565_SWAPPED:
+ decoder_cf = GIF_PALETTE_RGB565_BE;
+ pixel_size_bytes = 2;
+ break;
+ case LV_COLOR_FORMAT_RGB888:
+ decoder_cf = GIF_PALETTE_RGB888;
+ pixel_size_bytes = 3;
+ break;
+ case LV_COLOR_FORMAT_ARGB8888:
+ decoder_cf = GIF_PALETTE_RGB8888;
+ pixel_size_bytes = 4;
+ break;
+ default:
+ return;
+ }
+
+ GIF_begin(gif, decoder_cf);
+
+ if(lv_image_src_get_type(gifobj->src) == LV_IMAGE_SRC_VARIABLE) {
+ const lv_image_dsc_t * img_dsc = gifobj->src;
+ gifobj->is_open = GIF_openRAM(gif, (uint8_t *) img_dsc->data, img_dsc->data_size, NULL);
+ }
+ else if(lv_image_src_get_type(gifobj->src) == LV_IMAGE_SRC_FILE) {
+ gifobj->is_open = GIF_openFile(gif, gifobj->src, NULL);
+ }
+ if(gifobj->is_open == 0) {
+ LV_LOG_WARN("Couldn't load the source");
+ return;
+ }
+
+ uint32_t width = GIF_getCanvasWidth(gif);
+ uint32_t height = GIF_getCanvasHeight(gif);
+ gif->pFrameBuffer = lv_malloc(width * height * (pixel_size_bytes + 1));
+ gif->ucDrawType = GIF_DRAW_COOKED;
+ LV_ASSERT_MALLOC(gif->pFrameBuffer);
+ if(gif->pFrameBuffer == NULL) {
+ LV_LOG_WARN("Couldn't allocate a buffer for a GIF");
+ GIF_close(gif);
+ gifobj->is_open = 0;
+ return;
+ }
+
+ gifobj->imgdsc.data = gif->pFrameBuffer + width * height;
+ gifobj->imgdsc.header.magic = LV_IMAGE_HEADER_MAGIC;
+ gifobj->imgdsc.header.flags = LV_IMAGE_FLAGS_MODIFIABLE;
+ gifobj->imgdsc.header.cf = gifobj->color_format;
+ gifobj->imgdsc.header.h = height;
+ gifobj->imgdsc.header.w = width;
+ gifobj->imgdsc.header.stride = width * pixel_size_bytes;
+ gifobj->imgdsc.data_size = width * height * pixel_size_bytes;
+
+ lv_image_set_src((lv_obj_t *) gifobj, &gifobj->imgdsc);
+
+ gifobj->loop_count = GIF_getLoopCount(&gifobj->gif);
+
+ lv_timer_resume(gifobj->timer);
+ lv_timer_reset(gifobj->timer);
+
+ next_frame_task_cb(gifobj->timer);
+
+}
+
static void next_frame_task_cb(lv_timer_t * t)
{
lv_obj_t * obj = t->user_data;
lv_gif_t * gifobj = (lv_gif_t *) obj;
- uint32_t elaps = lv_tick_elaps(gifobj->last_call);
- if(elaps < gifobj->gif->gce.delay * 10) return;
- gifobj->last_call = lv_tick_get();
-
- int has_next = gd_get_frame(gifobj->gif);
- if(has_next == 0) {
+ int ms_delay_next;
+ int has_next = GIF_playFrame(&gifobj->gif, &ms_delay_next, gifobj);
+ if(has_next <= 0) {
/*It was the last repeat*/
lv_result_t res = lv_obj_send_event(obj, LV_EVENT_READY, NULL);
- lv_timer_pause(t);
+ if(gifobj->loop_count > 0) {
+ if(gifobj->loop_count == 1) {
+ lv_timer_pause(t);
+ }
+ else {
+ gifobj->loop_count--;
+ }
+ }
if(res != LV_RESULT_OK) return;
}
-
- gd_render_frame(gifobj->gif, (uint8_t *)gifobj->imgdsc.data);
+ else {
+ lv_timer_set_period(gifobj->timer, ms_delay_next);
+ }
lv_image_cache_drop(lv_image_get_src(obj));
lv_obj_invalidate(obj);
diff --git a/lib/libesp32_lvgl/lvgl/src/libs/gif/lv_gif.h b/lib/libesp32_lvgl/lvgl/src/libs/gif/lv_gif.h
index cf1bee479..ff72e1a59 100644
--- a/lib/libesp32_lvgl/lvgl/src/libs/gif/lv_gif.h
+++ b/lib/libesp32_lvgl/lvgl/src/libs/gif/lv_gif.h
@@ -16,14 +16,11 @@ extern "C" {
#include "../../lv_conf_internal.h"
#include "../../misc/lv_types.h"
-#include "../../draw/lv_draw_buf.h"
-#include "../../widgets/image/lv_image.h"
-#include "../../core/lv_obj_class.h"
#include LV_STDBOOL_INCLUDE
#include LV_STDINT_INCLUDE
#if LV_USE_GIF
-#include "gifdec.h"
+#include "../../misc/lv_color.h"
/*********************
* DEFINES
@@ -46,6 +43,15 @@ LV_ATTRIBUTE_EXTERN_DATA extern const lv_obj_class_t lv_gif_class;
*/
lv_obj_t * lv_gif_create(lv_obj_t * parent);
+/**
+ * Set the color format of the internally allocated framebuffer that the gif
+ * will be decoded to. The default is LV_COLOR_FORMAT_ARGB8888.
+ * Call this before `lv_gif_set_src` to avoid reallocating the framebuffer.
+ * @param obj pointer to a gif object
+ * @param color_format the color format of the gif framebuffer
+ */
+void lv_gif_set_color_format(lv_obj_t * obj, lv_color_format_t color_format);
+
/**
* Set the gif data to display on the object
* @param obj pointer to a gif object
diff --git a/lib/libesp32_lvgl/lvgl/src/libs/gltf/fastgltf/lv_fastgltf.hpp b/lib/libesp32_lvgl/lvgl/src/libs/gltf/fastgltf/lv_fastgltf.hpp
new file mode 100644
index 000000000..f4465dc30
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/libs/gltf/fastgltf/lv_fastgltf.hpp
@@ -0,0 +1,124 @@
+/**
+ * @file lv_fastgltf.hpp
+ *
+ */
+
+/*********************
+ * INCLUDES
+ *********************/
+
+#include "../../../lv_conf_internal.h"
+
+#if LV_USE_GLTF
+
+#include
+#include
+#include
+#include
+
+namespace fastgltf
+{
+FASTGLTF_EXPORT template
+#if FASTGLTF_HAS_CONCEPTS
+requires std::same_as, Asset> &&
+ std::is_invocable_v
+#endif
+ void namegen_iterate_scene_nodes(AssetType &&asset,
+ std::size_t sceneIndex,
+ Callback callback)
+{
+ auto &scene = asset.scenes[sceneIndex];
+
+ std::string _id = std::string("");
+ std::string _ip = std::string("");
+ if (asset.scenes.size() > 1) {
+ _id = "scene_" + std::to_string(sceneIndex);
+ _ip = std::to_string(sceneIndex);
+ }
+ auto function = [&](std::size_t nodeIndex, std::string &parentId,
+ std::string &parentIp, std::size_t __child_index,
+ auto &self) -> void {
+ assert(asset.nodes.size() > nodeIndex);
+ auto &node = asset.nodes[nodeIndex];
+ std::string _nodeId =
+ parentId + std::string("/") + std::string(node.name);
+ std::string _nodeIp = parentIp + std::string(".") +
+ std::to_string(__child_index);
+ std::invoke(callback, node, _nodeId, _nodeIp, nodeIndex,
+ __child_index);
+ std::size_t ____child_index = 0;
+ for (auto &child : node.children) {
+ self(child, _nodeId, _nodeIp, ____child_index, self);
+ ____child_index += 1;
+ }
+ };
+ std::size_t child_index = 0;
+ for (auto &sceneNode : scene.nodeIndices) {
+ function(sceneNode, _id, _ip, child_index, function);
+ child_index += 1;
+ }
+}
+FASTGLTF_EXPORT template
+#if FASTGLTF_HAS_CONCEPTS
+requires std::same_as, Asset> &&
+ std::is_invocable_v
+#endif
+ void
+ findlight_iterate_scene_nodes(AssetType &&asset, std::size_t sceneIndex,
+ math::fmat4x4 *initial, Callback callback)
+{
+ auto &scene = asset.scenes[sceneIndex];
+ auto function = [&](std::size_t nodeIndex,
+ math::fmat4x4 &parentWorldMatrix,
+ auto &self) -> void {
+ assert(asset.nodes.size() > nodeIndex);
+ auto &node = asset.nodes[nodeIndex];
+ auto _localMat = getTransformMatrix(node, math::fmat4x4());
+ std::invoke(callback, node, parentWorldMatrix, _localMat);
+ for (auto &child : node.children) {
+ math::fmat4x4 _parentWorldTemp =
+ parentWorldMatrix * _localMat;
+ self(child, _parentWorldTemp, self);
+ }
+ };
+ for (auto &sceneNode : scene.nodeIndices) {
+ auto tmat2 = fastgltf::math::fmat4x4(*initial);
+ function(sceneNode, tmat2, function);
+ }
+}
+FASTGLTF_EXPORT template
+#if FASTGLTF_HAS_CONCEPTS
+ requires std::same_as, Asset>
+ && std::is_invocable_v
+#endif
+inline void custom_iterate_scene_nodes(AssetType&& asset, std::size_t sceneIndex, math::fmat4x4 * initial,
+ Callback callback)
+{
+ auto & scene = asset.scenes[sceneIndex];
+ auto & nodes = asset.nodes;
+ auto function = [&](std::size_t nodeIndex, math::fmat4x4 & parentWorldMatrix, auto & self) -> void {
+ //assert(asset.nodes.size() > nodeIndex);
+ auto & node = nodes[nodeIndex];
+ auto _localMat = getTransformMatrix(node, math::fmat4x4());
+ std::invoke(callback, node, parentWorldMatrix, _localMat);
+ uint32_t num_children = node.children.size();
+ if(num_children > 0) {
+ math::fmat4x4 _parentWorldTemp = parentWorldMatrix * _localMat;
+ if(num_children > 1) {
+ math::fmat4x4 per_child_copy = math::fmat4x4(_parentWorldTemp);
+ for(auto & child : node.children) self(child, per_child_copy, self);
+ }
+ else {
+ self(node.children[0], _parentWorldTemp, self);
+ }
+ }
+ };
+ // auto tempmat = fastgltf::math::fmat4x4(*initial);
+ //for (auto& sceneNode : scene.nodeIndices) function(sceneNode, &tempmat, function);
+ for(auto & sceneNode : scene.nodeIndices) function(sceneNode, *initial, function);
+}
+}
+
+
+#endif /*LV_USE_GLTF*/
diff --git a/lib/libesp32_lvgl/lvgl/src/libs/gltf/gltf_data/lv_gltf_bind.cpp b/lib/libesp32_lvgl/lvgl/src/libs/gltf/gltf_data/lv_gltf_bind.cpp
new file mode 100644
index 000000000..5c2a1f671
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/libs/gltf/gltf_data/lv_gltf_bind.cpp
@@ -0,0 +1,153 @@
+
+#include "lv_gltf_data_internal.hpp"
+
+#if LV_USE_GLTF
+#include "../../../drivers/opengles/lv_opengles_private.h"
+
+#include
+
+#include
+#include
+#include
+
+#include "lv_gltf_bind.h"
+
+static uint32_t bind_count = 0;
+
+void lv_gltf_bind_set(lv_gltf_bind_t * bind, uint8_t channel, float data)
+{
+ LV_ASSERT_NULL(bind);
+ LV_ASSERT(channel < LV_GLTF_BIND_MAX_CHANNELS);
+
+ if(data != bind->data[channel]) {
+ bind->data[channel] = data;
+ bind->dirty = true;
+ }
+}
+
+float lv_gltf_bind_get(lv_gltf_bind_t * bind, uint8_t channel)
+{
+ LV_ASSERT_NULL(bind);
+ LV_ASSERT(channel < LV_GLTF_BIND_MAX_CHANNELS);
+ return bind->data[channel];
+}
+
+void lv_gltf_bind_bind_clean(lv_gltf_bind_t * bind)
+{
+ bind->dirty = false;
+}
+
+lv_gltf_bind_t * add_by_node(lv_gltf_model_t * gltf_data, fastgltf::Node * node, lv_gltf_bind_prop_t which_prop,
+ uint32_t data_mask,
+ lv_gltf_bind_dir_t dir)
+{
+ if(node == nullptr) {
+ return nullptr;
+ }
+
+ lv_gltf_bind_t new_bind;
+ new_bind.id = bind_count++;
+ new_bind.prop = which_prop;
+ new_bind.data_mask = data_mask;
+ new_bind.data[0] = new_bind.data[1] = new_bind.data[2] = which_prop == LV_GLTF_BIND_PROP_SCALE ? 1.f : 0.f;
+ new_bind.dir = dir;
+ new_bind.dirty = true;
+ new_bind.next_bind = nullptr;
+
+ // Check if an bind already exists for this node
+ if(gltf_data->node_binds.find(node) != gltf_data->node_binds.end()) {
+ // Get the existing bind
+ lv_gltf_bind_t * existingbind = gltf_data->node_binds[node];
+
+ // Traverse to the end of the linked list of binds
+ while(existingbind->next_bind != nullptr)
+ existingbind = existingbind->next_bind;
+
+ lv_array_push_back(&gltf_data->binds, &new_bind);
+ existingbind->next_bind = (lv_gltf_bind_t *)lv_array_at(&gltf_data->binds, lv_array_size(&gltf_data->binds) - 1);
+ return existingbind->next_bind;
+ }
+ else {
+ // No existing bind, insert the new one
+ lv_array_push_back(&gltf_data->binds, &new_bind);
+ gltf_data->node_binds[node] = (lv_gltf_bind_t *)lv_array_at(&gltf_data->binds, lv_array_size(&gltf_data->binds) - 1);
+ return gltf_data->node_binds[node];
+ }
+ return nullptr;
+}
+
+lv_gltf_bind_t * lv_gltf_bind_add_by_index(lv_gltf_model_t * data, size_t index, lv_gltf_bind_prop_t which_prop,
+ uint32_t data_mask,
+ lv_gltf_bind_dir_t dir)
+{
+ lv_gltf_data_node_t * node = lv_gltf_data_node_get_by_index(data, index);
+ if(!node) {
+ return nullptr;
+ }
+
+ return add_by_node(data, node->node, which_prop, data_mask, dir);
+}
+
+lv_gltf_bind_t * lv_gltf_bind_add_by_ip(lv_gltf_model_t * data, const char * ip, lv_gltf_bind_prop_t which_prop,
+ uint32_t data_mask,
+ lv_gltf_bind_dir_t dir)
+{
+ lv_gltf_data_node_t * node = lv_gltf_data_node_get_by_ip(data, ip);
+ if(!node) {
+ return nullptr;
+ }
+ return add_by_node(data, node->node, which_prop, data_mask, dir);
+}
+
+lv_gltf_bind_t * lv_gltf_bind_add_by_path(lv_gltf_model_t * data, const char * path, lv_gltf_bind_prop_t which_prop,
+ uint32_t data_mask, lv_gltf_bind_dir_t dir)
+{
+ lv_gltf_data_node_t * node = lv_gltf_data_node_get_by_path(data, path);
+
+ if(!node) {
+ return nullptr;
+ }
+
+ return add_by_node(data, node->node, which_prop, data_mask, dir);
+}
+
+lv_result_t lv_gltf_bind_remove(lv_gltf_model_t * gltf_data, lv_gltf_bind_t * bind_to_remove)
+{
+ for(auto pair : gltf_data->node_binds) {
+ lv_gltf_bind_t * currentbind = pair.second;
+ lv_gltf_bind_t * previousbind = nullptr;
+
+ while(currentbind != nullptr) {
+ if(currentbind->id == bind_to_remove->id) {
+ // Found the bind to remove
+ if(previousbind != nullptr) {
+ // Link the previous bind to the next one
+ previousbind->next_bind = currentbind->next_bind;
+ }
+ else {
+ gltf_data->node_binds[pair.first] = currentbind->next_bind;
+ }
+
+ for(uint32_t i = 0; i < lv_array_size(&gltf_data->binds); ++i) {
+ const lv_gltf_bind_t * current_entry = (const lv_gltf_bind_t *)lv_array_at(&gltf_data->binds, i);
+ if(current_entry->id == bind_to_remove->id) {
+ lv_array_remove(&gltf_data->binds, i);
+ }
+ }
+ return LV_RESULT_OK;
+ }
+ previousbind = currentbind;
+ if(currentbind != nullptr) {
+ if(currentbind->next_bind != nullptr) {
+ currentbind = currentbind->next_bind;
+ }
+ else {
+ currentbind = nullptr;
+ }
+ }
+ }
+ }
+ return LV_RESULT_INVALID;
+}
+
+#endif /*LV_USE_GLTF*/
diff --git a/lib/libesp32_lvgl/lvgl/src/libs/gltf/gltf_data/lv_gltf_bind.h b/lib/libesp32_lvgl/lvgl/src/libs/gltf/gltf_data/lv_gltf_bind.h
new file mode 100644
index 000000000..1210fbf74
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/libs/gltf/gltf_data/lv_gltf_bind.h
@@ -0,0 +1,106 @@
+#ifndef LV_GLTF_BIND_H
+#define LV_GLTF_BIND_H
+
+#include "lv_gltf_model.h"
+
+#if LV_USE_GLTF
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum {
+ LV_GLTF_BIND_PROP_VISIBILITY,
+ LV_GLTF_BIND_PROP_POSITION,
+ LV_GLTF_BIND_PROP_ROTATION,
+ LV_GLTF_BIND_PROP_SCALE,
+ LV_GLTF_BIND_PROP_BASE_COLOR,
+ LV_GLTF_BIND_PROP_ALPHA_FACTOR,
+ LV_GLTF_BIND_PROP_EMIS_COLOR,
+ LV_GLTF_BIND_PROP_WORLD_POSITION
+} lv_gltf_bind_prop_t;
+
+#define LV_GLTF_BIND_MAX_CHANNELS 4
+#define LV_GLTF_BIND_CHANNEL_0 (0x01)
+#define LV_GLTF_BIND_CHANNEL_1 (0x02)
+#define LV_GLTF_BIND_CHANNEL_2 (0x04)
+#define LV_GLTF_BIND_CHANNEL_3 (0x08)
+
+typedef enum { LV_GLTF_BIND_DIR_READ, LV_GLTF_BIND_DIR_WRITE } lv_gltf_bind_dir_t;
+
+struct _lv_gltf_bind {
+ struct _lv_gltf_bind * next_bind;
+ lv_gltf_bind_prop_t prop;
+ lv_gltf_bind_dir_t dir;
+ uint32_t id;
+ uint32_t data_mask;
+ float data[LV_GLTF_BIND_MAX_CHANNELS];
+ bool dirty;
+};
+
+typedef struct _lv_gltf_bind lv_gltf_bind_t;
+
+void lv_gltf_bind_set(lv_gltf_bind_t * bind, uint8_t channel, float data);
+float lv_gltf_bind_get(lv_gltf_bind_t * bind, uint8_t channel);
+
+/**
+ * @brief Reset the dirty flag for a given bind.
+ *
+ * @param bind Pointer to the lv_gltf_bind_t to reset the dirty flag for.
+ */
+void lv_gltf_bind_bind_clean(lv_gltf_bind_t * bind);
+
+/**
+ * @brief Add an bind to a GLTF data object by node index.
+ *
+ * @param gltf_data Pointer to the lv_gltf_data_t object to which the bind will be added.
+ * @param nodeIndex The index of the node to bind.
+ * @param which_prop The property to bind.
+ * @param data_mask A mask indicating which data fields to bind.
+ * @return Pointer to the newly created lv_gltf_bind_t object, or NULL if the operation failed.
+ */
+lv_gltf_bind_t * lv_gltf_bind_add_by_index(lv_gltf_model_t * data, size_t index, lv_gltf_bind_prop_t which_prop,
+ uint32_t data_mask,
+ lv_gltf_bind_dir_t dir);
+
+/**
+ * @brief Add an bind to a GLTF data object by node IP address.
+ *
+ * @param gltf_data Pointer to the lv_gltf_data_t object to which the bind will be added.
+ * @param nodeIp The IP address of the node to bind.
+ * @param which_prop The property to bind.
+ * @param data_mask A mask indicating which data fields to bind.
+ * @return Pointer to the newly created lv_gltf_bind_t object, or NULL if the operation failed.
+ */
+lv_gltf_bind_t * lv_gltf_bind_add_by_ip(lv_gltf_model_t * data, const char * node_ip, lv_gltf_bind_prop_t which_prop,
+ uint32_t data_mask, lv_gltf_bind_dir_t dir);
+
+/**
+ * @brief Add an bind to a GLTF data object by node ID.
+ *
+ * @param gltf_data Pointer to the lv_gltf_data_t object to which the bind will be added.
+ * @param nodeId The ID of the node to bind.
+ * @param which_prop The property to bind.
+ * @param data_mask A mask indicating which data fields to bind.
+ * @return Pointer to the newly created lv_gltf_bind_t object, or NULL if the operation failed.
+ */
+lv_gltf_bind_t * lv_gltf_bind_add_by_path(lv_gltf_model_t * data, const char * path, lv_gltf_bind_prop_t which_prop,
+ uint32_t data_mask, lv_gltf_bind_dir_t dir);
+
+/**
+ * @brief Remove an bind from a GLTF data object.
+ *
+ * @param gltf_data Pointer to the lv_gltf_data_t object from which the bind will be removed.
+ * @param bind The bind to be removed.
+ * @param which_prop The property to bind.
+ * @param data_mask A mask indicating which data fields to bind.
+ * @return True on success, False on failure.
+ */
+lv_result_t lv_gltf_bind_remove(lv_gltf_model_t * _data, lv_gltf_bind_t * bind);
+
+#ifdef __cplusplus
+} /*extern "C"*/
+#endif
+
+#endif /*LV_USE_GLTF*/
+#endif /*LV_GLTF_BIND_H*/
diff --git a/lib/libesp32_lvgl/lvgl/src/libs/gltf/gltf_data/lv_gltf_data.cpp b/lib/libesp32_lvgl/lvgl/src/libs/gltf/gltf_data/lv_gltf_data.cpp
new file mode 100644
index 000000000..60f2e6ed4
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/libs/gltf/gltf_data/lv_gltf_data.cpp
@@ -0,0 +1,271 @@
+/**
+ * @file lv_gltf_data.c
+ *
+ */
+
+/*********************
+ * INCLUDES
+ *********************/
+
+#include "lv_gltf_data_internal.hpp"
+
+#if LV_USE_GLTF
+
+#include
+#include "../../../misc/lv_assert.h"
+#include "../../../core/lv_obj_pos.h"
+#include "../../../misc/lv_timer.h"
+#include "../gltf_view/lv_gltf_view_internal.h"
+
+
+/*********************
+ * DEFINES
+ *********************/
+
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+/**********************
+ * STATIC PROTOTYPES
+ **********************/
+
+static void update_animation_cb(lv_timer_t * timer);
+
+/**********************
+ * STATIC VARIABLES
+ **********************/
+
+/**********************
+ * MACROS
+ **********************/
+
+/**********************
+ * GLOBAL FUNCTIONS
+ **********************/
+lv_gltf_model_t * lv_gltf_data_create_internal(const char * gltf_path,
+ fastgltf::Asset asset)
+{
+ lv_gltf_model_t * data = (lv_gltf_model_t *)lv_zalloc(sizeof(*data));
+ LV_ASSERT_MALLOC(data);
+ new(data) lv_gltf_model_t;
+ new(&data->asset) fastgltf::Asset(std::move(asset));
+ data->filename = gltf_path;
+ data->last_camera_index = -5;
+ data->last_anim_num = -5;
+ data->current_animation_max_time = 0;
+ data->local_timestamp = 0.0f;
+ data->last_material_index = 99999;
+ data->last_frame_was_antialiased = false;
+ data->last_frame_no_motion = false;
+ data->_last_frame_no_motion = false;
+
+ data->animation_update_timer = lv_timer_create(update_animation_cb, LV_DEF_REFR_PERIOD, data);
+ lv_timer_pause(data->animation_update_timer);
+ LV_ASSERT_NULL(data->animation_update_timer);
+
+ new(&data->node_binds) NodeOverrideMap();
+ new(&data->node_transform_cache) NodeTransformMap();
+ new(&data->opaque_nodes_by_material_index) MaterialIndexMap();
+ new(&data->blended_nodes_by_material_index) MaterialIndexMap();
+ new(&data->validated_skins) LongVector();
+ new(&data->skin_tex) IntVector();
+ new(&data->local_mesh_to_center_points_by_primitive)
+ NodePrimCenterMap();
+ new(&data->node_by_light_index) NodeVector();
+ new(&data->meshes) std::vector();
+ new(&data->textures) std::vector();
+
+ lv_array_init(&data->binds, 0, sizeof(lv_gltf_bind_t));
+ lv_array_init(&data->compiled_shaders, 1, sizeof(lv_gltf_compiled_shader_t));
+ return data;
+}
+
+void lv_gltf_data_destroy(lv_gltf_model_t * data)
+{
+ lv_gltf_data_destroy_textures(data);
+ lv_free(data);
+}
+
+const char * lv_gltf_get_filename(const lv_gltf_model_t * data)
+{
+ LV_ASSERT_NULL(data);
+ return data->filename;
+}
+
+size_t lv_gltf_model_get_image_count(const lv_gltf_model_t * data)
+{
+ LV_ASSERT_NULL(data);
+ return data->asset.images.size();
+}
+
+size_t lv_gltf_model_get_texture_count(const lv_gltf_model_t * data)
+{
+ LV_ASSERT_NULL(data);
+ return data->asset.textures.size();
+}
+
+GLuint lv_gltf_data_get_texture(lv_gltf_model_t * data, size_t index)
+{
+ LV_ASSERT_NULL(data);
+ LV_ASSERT(index < data->textures.size());
+ return data->textures[index];
+}
+
+size_t lv_gltf_model_get_material_count(const lv_gltf_model_t * data)
+{
+ LV_ASSERT_NULL(data);
+ return data->asset.materials.size();
+}
+size_t lv_gltf_model_get_camera_count(const lv_gltf_model_t * data)
+{
+ LV_ASSERT_NULL(data);
+ return data->asset.cameras.size();
+}
+size_t lv_gltf_model_get_node_count(const lv_gltf_model_t * data)
+{
+ LV_ASSERT_NULL(data);
+ return data->asset.nodes.size();
+}
+size_t lv_gltf_model_get_mesh_count(const lv_gltf_model_t * data)
+{
+ LV_ASSERT_NULL(data);
+ return data->asset.meshes.size();
+}
+size_t lv_gltf_model_get_scene_count(const lv_gltf_model_t * data)
+{
+ LV_ASSERT_NULL(data);
+ return data->asset.scenes.size();
+}
+size_t lv_gltf_model_get_animation_count(const lv_gltf_model_t * data)
+{
+ LV_ASSERT_NULL(data);
+ return data->asset.animations.size();
+}
+
+lv_result_t lv_gltf_model_play_animation(lv_gltf_model_t * model, size_t index)
+{
+ LV_ASSERT_NULL(model);
+ if(index >= model->asset.animations.size()) {
+ return LV_RESULT_INVALID;
+ }
+
+ if(lv_timer_get_paused(model->animation_update_timer)) {
+ model->last_tick = lv_tick_get();
+ lv_timer_resume(model->animation_update_timer);
+ }
+
+ model->current_animation_max_time = lv_gltf_data_get_animation_total_time(model, index);
+ model->current_animation = index;
+ model->is_animation_enabled = true;
+ return LV_RESULT_OK;
+}
+
+void lv_gltf_model_pause_animation(lv_gltf_model_t * model)
+{
+ LV_ASSERT_NULL(model);
+ model->is_animation_enabled = false;
+ lv_timer_pause(model->animation_update_timer);
+}
+
+bool lv_gltf_model_is_animation_paused(lv_gltf_model_t * model)
+{
+
+ LV_ASSERT_NULL(model);
+ return !model->is_animation_enabled;
+}
+
+size_t lv_gltf_model_get_animation(lv_gltf_model_t * model)
+{
+
+ LV_ASSERT_NULL(model);
+ return model->current_animation;
+}
+
+lv_gltf_model_t *
+lv_gltf_data_load_from_file(const char * file_path,
+ lv_opengl_shader_manager_t * shader_manager)
+{
+ return lv_gltf_data_load_internal(file_path, 0, shader_manager);
+}
+
+lv_gltf_model_t *
+lv_gltf_data_load_from_bytes(const uint8_t * data, size_t data_size,
+ lv_opengl_shader_manager_t * shader_manager)
+{
+ return lv_gltf_data_load_internal(data, data_size, shader_manager);
+}
+
+fastgltf::Asset * lv_gltf_data_get_asset(lv_gltf_model_t * data)
+{
+ LV_ASSERT_NULL(data);
+ return &data->asset;
+}
+double lv_gltf_data_get_radius(lv_gltf_model_t * data)
+{
+ LV_ASSERT_NULL(data);
+ return data->bound_radius;
+}
+fastgltf::math::fvec3 lv_gltf_data_get_center(const lv_gltf_model_t * data)
+{
+ LV_ASSERT_NULL(data);
+ return data->vertex_cen;
+}
+fastgltf::math::fvec3 lv_gltf_data_get_bounds_min(const lv_gltf_model_t * data)
+{
+ LV_ASSERT_NULL(data);
+ return data->vertex_min;
+}
+fastgltf::math::fvec3 lv_gltf_data_get_bounds_max(const lv_gltf_model_t * data)
+{
+ LV_ASSERT_NULL(data);
+ return data->vertex_max;
+}
+
+
+
+
+void lv_gltf_data_copy_bounds_info(lv_gltf_model_t * to, lv_gltf_model_t * from)
+{
+ {
+ to->vertex_min[0] = from->vertex_min[0];
+ to->vertex_min[1] = from->vertex_min[1];
+ to->vertex_min[2] = from->vertex_min[2];
+ }
+ {
+ to->vertex_max[0] = from->vertex_max[0];
+ to->vertex_max[1] = from->vertex_max[1];
+ to->vertex_max[2] = from->vertex_max[2];
+ }
+ {
+ to->vertex_cen[0] = from->vertex_cen[0];
+ to->vertex_cen[1] = from->vertex_cen[1];
+ to->vertex_cen[2] = from->vertex_cen[2];
+ }
+ to->bound_radius = from->bound_radius;
+}
+
+
+/**********************
+ * STATIC FUNCTIONS
+ **********************/
+
+static void update_animation_cb(lv_timer_t * timer)
+{
+ lv_gltf_model_t * model = (lv_gltf_model_t *)lv_timer_get_user_data(timer);
+
+ const uint32_t current_tick = lv_tick_get();
+ const uint32_t delta = lv_tick_diff(current_tick, model->last_tick);
+
+ model->last_tick = current_tick;
+ model->local_timestamp += (delta * model->viewer->desc.animation_speed_ratio) / 1000;
+
+ if(model->local_timestamp >= model->current_animation_max_time) {
+ model->local_timestamp = 50;
+ }
+ lv_obj_invalidate((lv_obj_t *)model->viewer);
+}
+
+#endif /*LV_USE_GLTF*/
+
diff --git a/lib/libesp32_lvgl/lvgl/src/libs/gltf/gltf_data/lv_gltf_data_animations.cpp b/lib/libesp32_lvgl/lvgl/src/libs/gltf/gltf_data/lv_gltf_data_animations.cpp
new file mode 100644
index 000000000..1d8da05ea
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/libs/gltf/gltf_data/lv_gltf_data_animations.cpp
@@ -0,0 +1,244 @@
+/**
+ * @file lv_gltf_data_animations.cpp
+ *
+ */
+
+/*********************
+ * INCLUDES
+ *********************/
+
+#include "lv_gltf_data_internal.hpp"
+
+#if LV_USE_GLTF
+#include
+
+/*********************
+ * DEFINES
+ *********************/
+
+#define TIME_LOC_PREPASS_COUNT 16
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+/**********************
+ * STATIC PROTOTYPES
+ **********************/
+
+#include "fastgltf/math.hpp"
+#include "lv_gltf_data_internal.hpp"
+static fastgltf::math::fvec3 animation_get_vec3_at_timestamp(lv_gltf_model_t * data,
+ fastgltf::AnimationSampler * sampler,
+ float seconds);
+
+static fastgltf::math::fquat animation_get_quat_at_timestamp(lv_gltf_model_t * data,
+ fastgltf::AnimationSampler * sampler,
+ float _seconds);
+
+/**********************
+ * STATIC VARIABLES
+ **********************/
+
+/**********************
+ * MACROS
+ **********************/
+
+/**********************
+ * GLOBAL FUNCTIONS
+ **********************/
+
+uint32_t lv_gltf_data_get_animation_total_time(lv_gltf_model_t * data, uint32_t index)
+{
+ LV_ASSERT(data->asset.animations.size() > index);
+ auto & animation = data->asset.animations[index];
+ float max_time = -1.0f;
+ for(uint64_t i = 0; i < animation.channels.size(); i++) {
+ auto & accessor = data->asset.accessors[animation.samplers[i].inputAccessor];
+ max_time = std::max(max_time, fastgltf::getAccessorElement(data->asset, accessor, accessor.count - 1));
+ }
+ return (uint32_t)(max_time * 1000);
+}
+
+std::vector * lv_gltf_data_animation_get_channel_set(std::size_t anim_num, lv_gltf_model_t * data,
+ fastgltf::Node & node)
+{
+ const auto & asset = lv_gltf_data_get_asset(data);
+ size_t animation_count = lv_gltf_model_get_animation_count(data);
+ if(data->channel_set_cache.find(&node) == data->channel_set_cache.end()) {
+ std::vector new_cache = std::vector();
+ if(animation_count > anim_num) {
+ auto & anim = asset->animations[anim_num];
+
+ for(uint64_t c = 0; c < anim.channels.size(); c++) {
+ auto & channel = anim.channels[c];
+ if(&(asset->nodes[channel.nodeIndex.value()]) == &node) {
+ new_cache.push_back(c);
+ }
+ }
+ }
+ data->channel_set_cache[&node] = new_cache;
+ }
+ return &data->channel_set_cache[&node];
+}
+
+void lv_gltf_data_animation_matrix_apply(float timestamp, std::size_t anim_num, lv_gltf_model_t * gltf_data,
+ fastgltf::Node & node,
+ fastgltf::math::fmat4x4 & matrix)
+{
+ const auto & asset = lv_gltf_data_get_asset(gltf_data);
+
+ size_t animation_count = lv_gltf_model_get_animation_count(gltf_data);
+ auto _channel_set = lv_gltf_data_animation_get_channel_set(anim_num, gltf_data, node);
+ if(_channel_set->size() == 0) {
+ return;
+ }
+ if(animation_count > anim_num) {
+ auto & anim = asset->animations[anim_num];
+ fastgltf::math::fvec3 newPos, newScale;
+ fastgltf::math::fmat3x3 rotmat;
+ for(const auto & c : (*_channel_set)) {
+ switch(anim.channels[c].path) {
+ case fastgltf::AnimationPath::Translation:
+ newPos = animation_get_vec3_at_timestamp(gltf_data, &anim.samplers[c], timestamp);
+ matrix[3][0] = newPos[0];
+ matrix[3][1] = newPos[1];
+ matrix[3][2] = newPos[2];
+ break;
+ case fastgltf::AnimationPath::Rotation:
+ rotmat = fastgltf::math::asMatrix(animation_get_quat_at_timestamp(gltf_data, &anim.samplers[c], timestamp));
+ matrix[0][0] = rotmat[0][0];
+ matrix[0][1] = rotmat[0][1];
+ matrix[0][2] = rotmat[0][2];
+
+ matrix[1][0] = rotmat[1][0];
+ matrix[1][1] = rotmat[1][1];
+ matrix[1][2] = rotmat[1][2];
+
+ matrix[2][0] = rotmat[2][0];
+ matrix[2][1] = rotmat[2][1];
+ matrix[2][2] = rotmat[2][2];
+ break;
+ case fastgltf::AnimationPath::Scale:
+ newScale = animation_get_vec3_at_timestamp(gltf_data, &anim.samplers[c], timestamp);
+ for(int32_t rs = 0; rs < 3; ++rs) {
+ matrix[0][rs] *= newScale[0];
+ matrix[1][rs] *= newScale[1];
+ matrix[2][rs] *= newScale[2];
+ }
+ break;
+ case fastgltf::AnimationPath::Weights:
+ LV_LOG_WARN("Unhandled weights animation");
+ break;
+ }
+ }
+ }
+}
+
+/**********************
+ * STATIC FUNCTIONS
+ **********************/
+
+static fastgltf::math::fquat animation_get_quat_at_timestamp(lv_gltf_model_t * data,
+ fastgltf::AnimationSampler * sampler,
+ float _seconds)
+{
+ const auto & asset = lv_gltf_data_get_asset(data);
+ auto & _inAcc = asset->accessors[sampler->inputAccessor];
+ auto & _outAcc = asset->accessors[sampler->outputAccessor];
+ std::size_t _inAccCount = _inAcc.count;
+ float _maxTime = fastgltf::getAccessorElement(*asset, _inAcc, _inAccCount - 1);
+ std::size_t _lowerIndex = 0;
+ float _lowerTimestamp = 0.0f;
+
+ if(_seconds < 0.001f) {
+ _lowerIndex = 0;
+ }
+ else {
+ std::size_t _firstCheckOffset = 0;
+ std::size_t _lastCheckOffset = _inAccCount;
+ std::size_t _prepassLeft = TIME_LOC_PREPASS_COUNT;
+ while(_prepassLeft > 0) {
+ _prepassLeft -= 1;
+ if(_seconds >= fastgltf::getAccessorElement(*asset, _inAcc, (_firstCheckOffset + _lastCheckOffset) >> 1)) {
+ _firstCheckOffset = (_firstCheckOffset + _lastCheckOffset) >> 1;
+ }
+ else {
+ _lastCheckOffset = (_firstCheckOffset + _lastCheckOffset) >> 1;
+ if(_lastCheckOffset <= _firstCheckOffset + 1) {
+ _prepassLeft = 0;
+ }
+ }
+ }
+ for(uint64_t ii = _firstCheckOffset; ii < _inAccCount; ii++) {
+ float _stampTime = fastgltf::getAccessorElement(*asset, _inAcc, ii);
+ if(_stampTime > _seconds) {
+ _lowerIndex = ii - 1;
+ break;
+ }
+ _lowerTimestamp = _stampTime;
+ }
+ }
+
+ fastgltf::math::fquat _lowerValue = fastgltf::getAccessorElement(*asset, _outAcc, _lowerIndex);
+ if(_seconds >= _maxTime || _seconds <= 0.0f) {
+ return _lowerValue;
+ }
+ std::size_t _upperIndex = _lowerIndex + 1;
+ float _linDist = fastgltf::getAccessorElement(*asset, _inAcc, _upperIndex) - _lowerTimestamp;
+ return fastgltf::math::slerp(_lowerValue, fastgltf::getAccessorElement(*asset, _outAcc,
+ _upperIndex), (_seconds - _lowerTimestamp) / _linDist);
+}
+
+fastgltf::math::fvec3 animation_get_vec3_at_timestamp(lv_gltf_model_t * data, fastgltf::AnimationSampler * sampler,
+ float _seconds)
+{
+ const auto & asset = lv_gltf_data_get_asset(data);
+ auto & _inAcc = asset->accessors[sampler->inputAccessor];
+ auto & _outAcc = asset->accessors[sampler->outputAccessor];
+ std::size_t _inAccCount = _inAcc.count;
+ float _maxTime = fastgltf::getAccessorElement(*asset, _inAcc, _inAccCount - 1);
+ std::size_t _lowerIndex = 0;
+ float _lowerTimestamp = 0.0f;
+
+ if(_seconds < 0.001f) {
+ _lowerIndex = 0;
+ }
+ else {
+ std::size_t _firstCheckOffset = 0;
+ std::size_t _lastCheckOffset = _inAccCount;
+ std::size_t _prepassLeft = TIME_LOC_PREPASS_COUNT;
+ while(_prepassLeft > 0) {
+ _prepassLeft -= 1;
+ if(_seconds >= fastgltf::getAccessorElement(*asset, _inAcc, (_firstCheckOffset + _lastCheckOffset) >> 1)) {
+ _firstCheckOffset = (_firstCheckOffset + _lastCheckOffset) >> 1;
+ }
+ else {
+ _lastCheckOffset = (_firstCheckOffset + _lastCheckOffset) >> 1;
+ if(_lastCheckOffset <= _firstCheckOffset + 1) {
+ _prepassLeft = 0;
+ }
+ }
+ }
+ for(uint64_t ii = _firstCheckOffset; ii < _inAccCount; ii++) {
+ float _stampTime = fastgltf::getAccessorElement(*asset, _inAcc, ii);
+ if(_stampTime > _seconds) {
+ _lowerIndex = ii - 1;
+ break;
+ }
+ _lowerTimestamp = _stampTime;
+ }
+ }
+
+ fastgltf::math::fvec3 _lowerValue = fastgltf::getAccessorElement(*asset, _outAcc, _lowerIndex);
+ if(_seconds >= _maxTime || _seconds <= 0.0f) {
+ return _lowerValue;
+ }
+ std::size_t _upperIndex = _lowerIndex + 1;
+ fastgltf::math::fvec3 _upperValue = fastgltf::getAccessorElement(*asset, _outAcc, _upperIndex);
+ float _upperTimestamp = fastgltf::getAccessorElement(*asset, _inAcc, _upperIndex);
+ return fastgltf::math::lerp(_lowerValue, _upperValue,
+ (_seconds - _lowerTimestamp) / (_upperTimestamp - _lowerTimestamp));
+}
+
+#endif /*LV_USE_GLTF*/
diff --git a/lib/libesp32_lvgl/lvgl/src/libs/gltf/gltf_data/lv_gltf_data_cache.cpp b/lib/libesp32_lvgl/lvgl/src/libs/gltf/gltf_data/lv_gltf_data_cache.cpp
new file mode 100644
index 000000000..69bae4e7a
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/libs/gltf/gltf_data/lv_gltf_data_cache.cpp
@@ -0,0 +1,103 @@
+/**
+ * @file lv_gltf_data_cache.cpp
+ *
+ */
+
+/*********************
+ * INCLUDES
+ *********************/
+
+#include "lv_gltf_data_internal.hpp"
+
+#if LV_USE_GLTF
+/*********************
+ * DEFINES
+ *********************/
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+/**********************
+ * STATIC PROTOTYPES
+ **********************/
+
+/**********************
+ * STATIC VARIABLES
+ **********************/
+
+/**********************
+ * MACROS
+ **********************/
+
+/**********************
+ * GLOBAL FUNCTIONS
+ **********************/
+
+fastgltf::math::fmat4x4 lv_gltf_data_get_cached_transform(lv_gltf_model_t * data,
+ fastgltf::Node * node)
+{
+ return data->node_transform_cache[node];
+}
+
+bool lv_gltf_data_has_cached_transform(lv_gltf_model_t * data, fastgltf::Node * node)
+{
+ return (data->node_transform_cache.find(node) !=
+ data->node_transform_cache.end());
+}
+void lv_gltf_data_set_cached_transform(lv_gltf_model_t * data, fastgltf::Node * node,
+ fastgltf::math::fmat4x4 M)
+{
+ data->node_transform_cache[node] = M;
+}
+void lv_gltf_data_clear_transform_cache(lv_gltf_model_t * data)
+{
+ data->node_transform_cache.clear();
+}
+bool lv_gltf_data_transform_cache_is_empty(lv_gltf_model_t * data)
+{
+ return data->node_transform_cache.size() == 0;
+}
+
+void recache_centerpoint(lv_gltf_model_t * data, size_t index_mesh, int32_t primitive)
+{
+ data->local_mesh_to_center_points_by_primitive[index_mesh][primitive] =
+ lv_gltf_get_primitive_centerpoint(data, data->asset.meshes[index_mesh],
+ primitive);
+}
+
+fastgltf::math::fvec3 lv_gltf_data_get_centerpoint(lv_gltf_model_t * gltf_data,
+ fastgltf::math::fmat4x4 matrix,
+ size_t mesh_index, int32_t elem)
+{
+ if(!lv_gltf_data_centerpoint_cache_contains(gltf_data, mesh_index, elem)) {
+ recache_centerpoint(gltf_data, mesh_index, elem);
+ }
+ return get_cached_centerpoint(gltf_data, mesh_index, elem, matrix);
+}
+bool lv_gltf_data_centerpoint_cache_contains(lv_gltf_model_t * data, size_t index, int32_t element)
+{
+ return data->local_mesh_to_center_points_by_primitive.find(index) !=
+ data->local_mesh_to_center_points_by_primitive.end() &&
+ data->local_mesh_to_center_points_by_primitive[index].find(element) !=
+ data->local_mesh_to_center_points_by_primitive[index].end();
+}
+
+fastgltf::math::fvec3 get_cached_centerpoint(lv_gltf_model_t * data, size_t index,
+ int32_t element,
+ fastgltf::math::fmat4x4 matrix)
+{
+ fastgltf::math::fvec4 tv = fastgltf::math::fvec4(
+ data->local_mesh_to_center_points_by_primitive[index][element]);
+ tv[3] = 1.f;
+ tv = matrix * tv;
+ return fastgltf::math::fvec3(tv[0], tv[1], tv[2]);
+}
+
+
+
+/**********************
+ * STATIC FUNCTIONS
+ **********************/
+
+#endif /*LV_USE_GLTF*/
diff --git a/lib/libesp32_lvgl/lvgl/src/libs/gltf/gltf_data/lv_gltf_data_injest.cpp b/lib/libesp32_lvgl/lvgl/src/libs/gltf/gltf_data/lv_gltf_data_injest.cpp
new file mode 100644
index 000000000..a6b9e18a8
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/libs/gltf/gltf_data/lv_gltf_data_injest.cpp
@@ -0,0 +1,843 @@
+/**
+ * @file lv_gltf_data_injest.cpp
+ *
+ */
+
+/*********************
+ * INCLUDES
+ *********************/
+#include "lv_gltf_data_internal.hpp"
+
+#if LV_USE_GLTF
+
+#include
+#include
+#include
+#include
+#include "../fastgltf/lv_fastgltf.hpp"
+#include "../../../misc/lv_assert.h"
+#include "../../../misc/lv_log.h"
+#include "../../../misc/lv_math.h"
+#include "../../../stdlib/lv_sprintf.h"
+#include "../../../misc/lv_fs.h"
+
+#include "../stb_image/stb_image.h"
+#include
+
+/*********************
+ * DEFINES
+ *********************/
+constexpr auto SUPPORTED_EXTENSIONS =
+ //fastgltf::Extensions::KHR_draco_mesh_compression |
+ //fastgltf::Extensions::EXT_meshopt_compression |
+ fastgltf::Extensions::KHR_mesh_quantization | fastgltf::Extensions::KHR_texture_transform |
+ fastgltf::Extensions::KHR_lights_punctual | fastgltf::Extensions::KHR_materials_anisotropy |
+ fastgltf::Extensions::KHR_materials_clearcoat | fastgltf::Extensions::KHR_materials_dispersion |
+ fastgltf::Extensions::KHR_materials_emissive_strength | fastgltf::Extensions::KHR_materials_ior |
+ fastgltf::Extensions::KHR_materials_iridescence | fastgltf::Extensions::KHR_materials_sheen |
+ fastgltf::Extensions::KHR_materials_specular |
+ fastgltf::Extensions::
+ KHR_materials_pbrSpecularGlossiness
+ | // Depreciated, to enable support make sure to define FASTGLTF_ENABLE_DEPRECATED_EXT
+ fastgltf::Extensions::KHR_materials_transmission |
+ fastgltf::Extensions::KHR_materials_volume | fastgltf::Extensions::KHR_materials_unlit |
+ fastgltf::Extensions::EXT_texture_webp |
+ //fastgltf::Extensions::KHR_materials_diffuse_transmission |
+ fastgltf::Extensions::KHR_materials_variants;
+
+constexpr auto GLTF_OPTIONS = fastgltf::Options::DontRequireValidAssetMember | fastgltf::Options::AllowDouble |
+ fastgltf::Options::LoadExternalBuffers | fastgltf::Options::LoadExternalImages |
+ fastgltf::Options::GenerateMeshIndices;
+
+/**********************
+ * TYPEDEFS
+ **********************/
+
+typedef struct {
+ fastgltf::math::fvec3 position;
+ fastgltf::math::fvec3 normal;
+ fastgltf::math::fvec4 tangent;
+ fastgltf::math::fvec2 uv;
+ fastgltf::math::fvec2 uv2;
+ fastgltf::math::fvec4 joints;
+ fastgltf::math::fvec4 joints2;
+ fastgltf::math::fvec4 weights;
+ fastgltf::math::fvec4 weights2;
+} vertex_t;
+
+/**********************
+ * STATIC PROTOTYPES
+ **********************/
+
+static void set_bounds_info(lv_gltf_model_t * data, fastgltf::math::fvec3 v_min, fastgltf::math::fvec3 v_max,
+ fastgltf::math::fvec3 v_cen, float radius);
+static lv_gltf_model_t * create_data_from_bytes(const uint8_t * bytes, size_t data_size);
+
+static lv_gltf_model_t * create_data_from_file(const char * path);
+
+static void injest_grow_bounds_to_include(lv_gltf_model_t * data, const fastgltf::math::fmat4x4 & matrix,
+ const fastgltf::Mesh & mesh);
+
+static void injest_set_initial_bounds(lv_gltf_model_t * data, const fastgltf::math::fmat4x4 & matrix,
+ const fastgltf::Mesh & mesh);
+
+static bool injest_image(lv_opengl_shader_manager_t * shader_manager, lv_gltf_model_t * data, fastgltf::Image & image,
+ uint32_t index);
+
+static bool injest_image_from_buffer_view(lv_gltf_model_t * data, fastgltf::sources::BufferView & view,
+ GLuint texture_id);
+static void injest_light(lv_gltf_model_t * data, size_t light_index, fastgltf::Light & light, size_t scene_index);
+static bool injest_mesh(lv_gltf_model_t * data, fastgltf::Mesh & mesh);
+
+static void make_small_magenta_texture(uint32_t new_magenta_tex);
+
+template
+static size_t injest_vec_attribute(uint8_t vec_size, int32_t current_attrib_index, lv_gltf_model_t * data,
+ const fastgltf::Primitive * prim, const char * attrib_id, GLuint primitive_vertex_buffer,
+ size_t offset, Func &&functor);
+
+static int32_t injest_get_any_image_index(fastgltf::Optional tex);
+static bool injest_check_any_image_index_valid(fastgltf::Optional tex);
+
+static inline GLsizei get_level_count(int32_t width, int32_t height)
+{
+ return static_cast(1 + floor(log2(width > height ? width : height)));
+}
+
+static void load_mesh_texture_impl(lv_gltf_model_t * data, const fastgltf::TextureInfo & material_prop,
+ GLuint * primitive_tex_prop,
+ GLint * primitive_tex_uv_id);
+static void load_mesh_texture(lv_gltf_model_t * data, const fastgltf::Optional & material_prop,
+ GLuint * primitive_tex_prop, GLint * primitive_tex_uv_id);
+
+static void load_mesh_texture(lv_gltf_model_t * data,
+ const fastgltf::Optional & material_prop,
+ GLuint * primitive_tex_prop, GLint * primitive_tex_uv_id);
+
+static void load_mesh_texture(lv_gltf_model_t * data,
+ const fastgltf::Optional & material_prop,
+ GLuint * primitive_tex_prop, GLint * primitive_tex_uv_id);
+
+/**********************
+ * STATIC VARIABLES
+ **********************/
+
+/**********************
+ * MACROS
+ **********************/
+
+/**********************
+ * GLOBAL FUNCTIONS
+ **********************/
+
+lv_gltf_model_t * lv_gltf_data_load_internal(const void * data_source, size_t data_size,
+ lv_opengl_shader_manager_t * shaders)
+{
+ lv_gltf_model_t * data = NULL;
+ if(data_size > 0) {
+ data = create_data_from_bytes((const uint8_t *)data_source, data_size);
+ }
+ else {
+ data = create_data_from_file((const char *)data_source);
+ }
+
+ LV_ASSERT_MSG(data, "Failed to create gltf data");
+ if(!data) {
+ return NULL;
+ }
+
+ // Parse the visible node structure to get a world transform matrix for each mesh component
+ // instance per node, and apply that matrix to the min/max of the untransformed mesh, then
+ // grow a bounding volume to include those transformed points
+
+ int32_t scene_index = 0;
+ bool first_visible_mesh = true;
+ fastgltf::iterateSceneNodes(
+ data->asset, scene_index, fastgltf::math::fmat4x4(), [&](fastgltf::Node & node, fastgltf::math::fmat4x4 matrix) {
+ if(!node.meshIndex.has_value()) {
+ return;
+ }
+ if(first_visible_mesh) {
+ injest_set_initial_bounds(data, matrix, data->asset.meshes[node.meshIndex.value()]);
+ }
+ else {
+ injest_grow_bounds_to_include(data, matrix, data->asset.meshes[node.meshIndex.value()]);
+ }
+ first_visible_mesh = false;
+ });
+ lv_gltf_data_nodes_init(data, data->asset.nodes.size());
+
+ fastgltf::namegen_iterate_scene_nodes(data->asset, scene_index,
+ [&](fastgltf::Node & node, const std::string & node_path, const std::string & node_ip,
+ size_t node_index, std::size_t child_index) {
+ LV_UNUSED(node_index);
+ LV_UNUSED(child_index);
+ lv_gltf_data_node_t data_node;
+ lv_gltf_data_node_init(&data_node, &node, node_path.c_str(), node_ip.c_str());
+ lv_gltf_data_node_add(data, &data_node);
+ });
+
+ {
+ uint32_t i = 0;
+ for(auto & image : data->asset.images) {
+ injest_image(shaders, data, image, i);
+ i++;
+ }
+ }
+ uint16_t lightnum = 0;
+ for(auto & light : data->asset.lights) {
+ injest_light(data, lightnum, light, 0);
+ lightnum += 1;
+ }
+ for(auto & mesh : data->asset.meshes) {
+ injest_mesh(data, mesh);
+ }
+
+ if(data->asset.defaultScene.has_value()) {
+ LV_LOG_INFO("Default scene = #%d", data->asset.defaultScene.value());
+ }
+
+ return data;
+}
+
+/**********************
+ * STATIC FUNCTIONS
+ **********************/
+
+static lv_gltf_model_t * create_data_from_file(const char * path)
+{
+#if !FASTGLTF_HAS_MEMORY_MAPPED_FILE
+#error This version of fastgltf can not open GLTF files from filesystem. Either encode your GLB into a source file and create or build fastgltf with FASTGLTF_HAS_MEMORY_MAPPED_FILE set to '1'
+#endif
+
+ lv_fs_file_t file;
+ lv_fs_res_t res = lv_fs_open(&file, path, LV_FS_MODE_RD);
+ if(res != LV_FS_RES_OK) {
+ LV_LOG_ERROR("Failed to open file '%s': %d", path, res);
+ return NULL;
+ }
+ res = lv_fs_seek(&file, 0, LV_FS_SEEK_END);
+ if(res != LV_FS_RES_OK) {
+ LV_LOG_ERROR("Failed to seek end of file '%s': %d", path, res);
+ return NULL;
+ }
+ uint32_t file_size;
+ res = lv_fs_tell(&file, &file_size);
+ if(res != LV_FS_RES_OK) {
+ LV_LOG_ERROR("Failed to get file count size '%s': %d", path, res);
+ return NULL;
+ }
+
+ res = lv_fs_seek(&file, 0, LV_FS_SEEK_SET);
+ if(res != LV_FS_RES_OK) {
+ LV_LOG_ERROR("Failed to seek start of file '%s': %d", path, res);
+ return NULL;
+ }
+
+ uint8_t * bytes = (uint8_t *) lv_malloc(file_size);
+
+ uint32_t bytes_read;
+ res = lv_fs_read(&file, bytes, file_size, &bytes_read);
+ if(res != LV_FS_RES_OK) {
+ LV_LOG_ERROR("Failed to seek start of file '%s': %d", path, res);
+ return NULL;
+ }
+ if(bytes_read != file_size) {
+ LV_LOG_ERROR("Failed to read the entire gltf file '%s': %d", path, res);
+ return NULL;
+ }
+ lv_fs_close(&file);
+
+ lv_gltf_model_t * model = create_data_from_bytes(bytes, file_size);
+ lv_free(bytes);
+
+ model->filename = path;
+ return model;
+}
+
+static lv_gltf_model_t * create_data_from_bytes(const uint8_t * bytes, size_t data_size)
+{
+ fastgltf::Parser parser(SUPPORTED_EXTENSIONS);
+ auto gltf_buffer = fastgltf::GltfDataBuffer::FromBytes(reinterpret_cast(bytes), data_size);
+ if(!gltf_buffer) {
+ LV_LOG_ERROR("Failed to create glTF buffer from bytes: %s",
+ std::string(fastgltf::getErrorMessage(gltf_buffer.error())).c_str());
+ return NULL;
+ }
+ auto asset = parser.loadGltf(gltf_buffer.get(), ".", GLTF_OPTIONS);
+ if(!asset) {
+ LV_LOG_ERROR("Failed to decode glTF bytes: %s", std::string(fastgltf::getErrorMessage(asset.error())).c_str());
+ return NULL;
+ }
+ return lv_gltf_data_create_internal("from_bytes", std::move(asset.get()));
+}
+
+static void make_small_magenta_texture(uint32_t new_magenta_tex)
+{
+ GL_CALL(glBindTexture(GL_TEXTURE_2D, new_magenta_tex));
+ unsigned char clearBytes[4] = { 255, 0, 255, 255 }; // RGBA format
+ GL_CALL(glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, clearBytes));
+ // Set texture parameters (optional but recommended)
+ GL_CALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST));
+ GL_CALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST));
+ GL_CALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE));
+ GL_CALL(glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE));
+ GL_CALL(glGenerateMipmap(GL_TEXTURE_2D));
+ GL_CALL(glBindTexture(GL_TEXTURE_2D, 0));
+ return;
+}
+
+static void load_mesh_texture_impl(lv_gltf_model_t * data, const fastgltf::TextureInfo & material_prop,
+ GLuint * primitive_tex_prop,
+ GLint * primitive_tex_uv_id)
+{
+ const auto & texture = data->asset.textures[material_prop.textureIndex];
+ if(!injest_check_any_image_index_valid(texture)) {
+ return;
+ }
+ *primitive_tex_prop = data->textures[injest_get_any_image_index(texture)];
+ if(material_prop.transform && material_prop.transform->texCoordIndex.has_value()) {
+ *primitive_tex_uv_id = material_prop.transform->texCoordIndex.value();
+ }
+ else {
+ *primitive_tex_uv_id = material_prop.texCoordIndex;
+ }
+ LV_LOG_TRACE("Prim tex prop: %d Prim tex uv id %d", *primitive_tex_prop, *primitive_tex_uv_id);
+}
+
+static void load_mesh_texture(lv_gltf_model_t * data,
+ const fastgltf::Optional & material_prop,
+ GLuint * primitive_tex_prop, GLint * primitive_tex_uv_id)
+{
+ if(!material_prop) {
+ return;
+ }
+ load_mesh_texture_impl(data, material_prop.value(), primitive_tex_prop, primitive_tex_uv_id);
+}
+
+static void load_mesh_texture(lv_gltf_model_t * data, const fastgltf::Optional & material_prop,
+ GLuint * primitive_tex_prop, GLint * primitive_tex_uv_id)
+{
+ if(!material_prop) {
+ return;
+ }
+ load_mesh_texture_impl(data, material_prop.value(), primitive_tex_prop, primitive_tex_uv_id);
+}
+
+static void load_mesh_texture(lv_gltf_model_t * data,
+ const fastgltf::Optional & material_prop,
+ GLuint * primitive_tex_prop, GLint * primitive_tex_uv_id)
+{
+ if(!material_prop) {
+ return;
+ }
+ load_mesh_texture_impl(data, material_prop.value(), primitive_tex_prop, primitive_tex_uv_id);
+}
+
+static int32_t injest_get_any_image_index(fastgltf::Optional tex)
+{
+ if(tex->imageIndex.has_value()) {
+ return tex->imageIndex.value();
+ }
+
+ if(tex->webpImageIndex.has_value()) {
+ return tex->webpImageIndex.value();
+ }
+ return 0;
+}
+static bool injest_check_any_image_index_valid(fastgltf::Optional tex)
+{
+ if(tex->imageIndex.has_value())
+ return true;
+ if(tex->webpImageIndex.has_value())
+ return true;
+ return false;
+}
+
+static void injest_grow_bounds_to_include(lv_gltf_model_t * data, const fastgltf::math::fmat4x4 & matrix,
+ const fastgltf::Mesh & mesh)
+{
+ /* Grow the bounds to include the specified mesh. */
+ fastgltf::math::fvec3 v_min{ data->vertex_min[0], data->vertex_min[1], data->vertex_min[2] };
+
+ fastgltf::math::fvec3 v_max{
+ data->vertex_max[0],
+ data->vertex_max[1],
+ data->vertex_max[2],
+ };
+ fastgltf::math::fvec3 v_cen{ data->vertex_cen[0], data->vertex_cen[1], data->vertex_cen[2] };
+
+ float new_bound_radius = data->bound_radius;
+ if(mesh.primitives.size() > 0) {
+ set_bounds_info(data, v_min, v_max, v_cen, new_bound_radius);
+ return;
+ }
+ size_t accessor_index = mesh.primitives[0].findAttribute("POSITION")->accessorIndex;
+ const auto & accessor = data->asset.accessors[accessor_index];
+
+ if(!accessor.bufferViewIndex.has_value() || !(accessor.min.has_value() && accessor.max.has_value())) {
+ set_bounds_info(data, v_min, v_max, v_cen, new_bound_radius);
+ return;
+ }
+
+ fastgltf::math::fvec4 t_min{ (float)(accessor.min.value().get(0)), (float)(accessor.min.value().get(1)),
+ (float)(accessor.min.value().get(2)), 1.f };
+ fastgltf::math::fvec4 t_max{ (float)(accessor.max.value().get(0)), (float)(accessor.max.value().get(1)),
+ (float)(accessor.max.value().get(2)), 1.f };
+
+ t_min = matrix * t_min;
+ t_max = matrix * t_max;
+ v_max[0] = LV_MAX(LV_MAX(v_max[0], t_min.x()), t_max.x());
+ v_max[1] = LV_MAX(LV_MAX(v_max[1], t_min.y()), t_max.y());
+ v_max[2] = LV_MAX(LV_MAX(v_max[2], t_min.z()), t_max.z());
+ v_min[0] = LV_MIN(LV_MIN(v_min[0], t_min.x()), t_max.x());
+ v_min[1] = LV_MIN(LV_MIN(v_min[1], t_min.y()), t_max.y());
+ v_min[2] = LV_MIN(LV_MIN(v_min[2], t_min.z()), t_max.z());
+ v_cen[0] = (v_max[0] + v_min[0]) / 2.0f;
+ v_cen[1] = (v_max[1] + v_min[1]) / 2.0f;
+ v_cen[2] = (v_max[2] + v_min[2]) / 2.0f;
+
+ float size_x = v_max[0] - v_min[0];
+ float size_y = v_max[1] - v_min[1];
+ float size_z = v_max[2] - v_min[2];
+ new_bound_radius = std::sqrt((size_x * size_x) + (size_y * size_y) + (size_z * size_z)) / 2.0f;
+
+ set_bounds_info(data, v_min, v_max, v_cen, new_bound_radius);
+}
+static void injest_set_initial_bounds(lv_gltf_model_t * data, const fastgltf::math::fmat4x4 & matrix,
+ const fastgltf::Mesh & mesh)
+{
+ fastgltf::math::fvec3 v_min, v_max, v_cen;
+ float radius = 0.f;
+ if(mesh.primitives.size() == 0) {
+ set_bounds_info(data, v_min, v_max, v_cen, radius);
+ return;
+ }
+
+ size_t accessor_index = mesh.primitives[0].findAttribute("POSITION")->accessorIndex;
+ const auto & accessor = data->asset.accessors[accessor_index];
+
+ if(!accessor.bufferViewIndex.has_value() || !(accessor.min.has_value() && accessor.max.has_value())) {
+ set_bounds_info(data, v_min, v_max, v_cen, radius);
+ return;
+ }
+
+ fastgltf::math::fvec4 t_min{ (float)(accessor.min.value().get(0)), (float)(accessor.min.value().get(1)),
+ (float)(accessor.min.value().get(2)), 1.f };
+
+ fastgltf::math::fvec4 t_max{ (float)(accessor.max.value().get(0)), (float)(accessor.max.value().get(1)),
+ (float)(accessor.max.value().get(2)), 1.f };
+
+ t_min = matrix * t_min;
+ t_max = matrix * t_max;
+
+ v_max[0] = LV_MAX(t_min.x(), t_max.x());
+ v_max[1] = LV_MAX(t_min.y(), t_max.y());
+ v_max[2] = LV_MAX(t_min.z(), t_max.z());
+ v_min[0] = LV_MIN(t_min.x(), t_max.x());
+ v_min[1] = LV_MIN(t_min.y(), t_max.y());
+ v_min[2] = LV_MIN(t_min.z(), t_max.z());
+ v_cen[0] = (v_max[0] + v_min[0]) / 2.0f;
+ v_cen[1] = (v_max[1] + v_min[1]) / 2.0f;
+ v_cen[2] = (v_max[2] + v_min[2]) / 2.0f;
+ const float size_x = v_max[0] - v_min[0];
+ const float size_y = v_max[1] - v_min[1];
+ const float size_z = v_max[2] - v_min[2];
+ radius = std::sqrt((size_x * size_x) + (size_y * size_y) + (size_z * size_z)) / 2.0f;
+
+ set_bounds_info(data, v_min, v_max, v_cen, radius);
+}
+
+bool injest_image(lv_opengl_shader_manager_t * shader_manager, lv_gltf_model_t * data, fastgltf::Image & image,
+ uint32_t index)
+{
+ std::string _tex_id = std::string(lv_gltf_get_filename(data)) + "_IMG" + std::to_string(index);
+
+ char tmp[512];
+ lv_snprintf(tmp, sizeof(tmp), "%s_img_%u", data->filename, index);
+ const uint32_t hash = lv_opengl_shader_hash(tmp);
+ GLuint texture_id = lv_opengl_shader_manager_get_texture(shader_manager, hash);
+
+ if(texture_id != GL_NONE) {
+ LV_LOG_TRACE("Emplacing back already cached texture from previous injest iteration %u", texture_id);
+ data->textures.emplace_back(texture_id);
+ return true;
+ }
+
+ LV_LOG_TRACE("Image (%s) [%d] [%u]", image.name.c_str(), texture_id, hash);
+ glGenTextures(1, &texture_id);
+ glBindTexture(GL_TEXTURE_2D, texture_id);
+
+ GL_CALL(glPixelStorei(GL_UNPACK_ALIGNMENT, 1));
+ bool image_invalidated = false;
+ std::visit(fastgltf::visitor{
+ [](auto & arg)
+ {
+ LV_UNUSED(arg);
+ LV_LOG_ERROR("Unexpected image source");
+ },
+ [&](fastgltf::sources::URI & file_path)
+ {
+ LV_ASSERT_MSG(file_path.fileByteOffset == 0, "Offsets aren't supported with stbi");
+ LV_ASSERT_MSG(file_path.uri.isLocalPath(), "We're only capable of loading local files.");
+
+ int32_t width, height, nrChannels;
+ LV_LOG_TRACE("Loading image: %s", image.name.c_str());
+ const std::string path(file_path.uri.path().begin(), file_path.uri.path().end());
+ unsigned char * data = stbi_load(path.c_str(), &width, &height, &nrChannels, 4);
+ glTexStorage2D(GL_TEXTURE_2D, get_level_count(width, height), GL_RGBA8, width, height);
+ glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE, data);
+ stbi_image_free(data);
+ },
+ [&](fastgltf::sources::Array & vector)
+ {
+ int32_t width, height, nrChannels;
+ LV_LOG_TRACE("Unpacking image data: %s", image.name.c_str());
+
+ unsigned char * data = stbi_load_from_memory(
+ reinterpret_cast(vector.bytes.data()),
+ static_cast(vector.bytes.size()), &width, &height, &nrChannels, 4);
+ glTexStorage2D(GL_TEXTURE_2D, get_level_count(width, height), GL_RGBA8, width, height);
+ glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE, data);
+ stbi_image_free(data);
+ },
+ [&](fastgltf::sources::BufferView & view)
+ {
+ LV_LOG_TRACE("Injesting image from bufferview: %s", image.name.c_str());
+ image_invalidated |= injest_image_from_buffer_view(data, view, texture_id);
+ },
+ }, image.data);
+
+ if(!image_invalidated) {
+ glGenerateMipmap(GL_TEXTURE_2D);
+ }
+ else {
+ LV_LOG_ERROR("Failed to load image %s", image.name.c_str());
+ }
+ LV_LOG_TRACE("Storing texture with hash: %u %u", hash, texture_id);
+ lv_opengl_shader_manager_store_texture(shader_manager, hash, texture_id);
+ GL_CALL(glBindTexture(GL_TEXTURE_2D, 0));
+ data->textures.emplace_back(texture_id);
+ return true;
+}
+
+static bool injest_image_from_buffer_view(lv_gltf_model_t * data, fastgltf::sources::BufferView & view,
+ GLuint texture_id)
+{
+ /* Yes, we've already loaded every buffer into some GL buffer. However, with GL it's simpler
+ to just copy the buffer data again for the texture. Besides, this is just an example. */
+ auto & buffer_view = data->asset.bufferViews[view.bufferViewIndex];
+ auto & buffer = data->asset.buffers[buffer_view.bufferIndex];
+ LV_LOG_INFO("Unpacking image bufferView: %s from %d bytes", image.name, bufferView.byteLenght);
+ return std::visit(
+ fastgltf::visitor{
+ // We only care about VectorWithMime here, because we specify LoadExternalBuffers, meaning
+ // all buffers are already loaded into a vector.
+ [](auto & arg)
+ {
+ LV_UNUSED(arg);
+ LV_LOG_ERROR("Unexpected image source");
+ return false;
+ },
+ [&](fastgltf::sources::Array & vector)
+ {
+ LV_LOG_TRACE("[WEBP] width: %d height: %d", width, height);
+ int32_t width, height, nrChannels;
+ int32_t webpRes = WebPGetInfo(
+ reinterpret_cast(vector.bytes.data() + buffer_view.byteOffset),
+ static_cast(buffer_view.byteLength), &width, &height);
+
+ if(!webpRes) {
+ unsigned char * data = stbi_load_from_memory(
+ reinterpret_cast(vector.bytes.data() + buffer_view.byteOffset),
+ static_cast(buffer_view.byteLength), &width, &height, &nrChannels, 4);
+ if((width <= 0) || (height <= 0)) {
+ LV_LOG_ERROR("Failed to load image from memory");
+ make_small_magenta_texture(texture_id);
+ return true;
+ }
+ LV_LOG_TRACE("[WEBP] width: %d height: %d", width, height);
+ glTexStorage2D(GL_TEXTURE_2D, get_level_count(width, height), GL_RGBA8, width, height);
+ glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE, data);
+ stbi_image_free(data);
+ return false;
+ }
+ WebPBitstreamFeatures features = WebPBitstreamFeatures();
+ auto status_code = WebPGetFeatures(
+ reinterpret_cast(vector.bytes.data() + buffer_view.byteOffset),
+ static_cast(buffer_view.byteLength), &features);
+ if(status_code != VP8_STATUS_OK) {
+ LV_LOG_ERROR("Failed to load webp image %d", status_code);
+ make_small_magenta_texture(texture_id);
+ return true;
+ }
+ if(features.has_alpha) {
+ uint8_t * unpacked = WebPDecodeRGBA(
+ reinterpret_cast(vector.bytes.data() + buffer_view.byteOffset),
+ static_cast(buffer_view.byteLength), &width, &height);
+ glTexStorage2D(GL_TEXTURE_2D, get_level_count(width, height), GL_RGBA8, width, height);
+ glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, width, height, GL_RGBA, GL_UNSIGNED_BYTE,
+ unpacked);
+ WebPFree(unpacked);
+ }
+ else {
+ uint8_t * unpacked = WebPDecodeRGB(
+ reinterpret_cast(vector.bytes.data() + buffer_view.byteOffset),
+ static_cast(buffer_view.byteLength), &width, &height);
+ glTexStorage2D(GL_TEXTURE_2D, get_level_count(width, height), GL_RGB8, width, height);
+ glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, width, height, GL_RGB, GL_UNSIGNED_BYTE,
+ unpacked);
+ WebPFree(unpacked);
+ }
+ return false;
+ } },
+ buffer.data);
+}
+static void injest_light(lv_gltf_model_t * data, size_t light_index, fastgltf::Light & light, size_t scene_index)
+{
+ fastgltf::math::fmat4x4 tmat;
+ // It would seem like we'd need this info but not really, just the index will do at the loading phase, the rest is pulled during frame updates.
+ LV_UNUSED(light);
+
+ fastgltf::findlight_iterate_scene_nodes(data->asset, scene_index, &tmat,
+ [&](fastgltf::Node & node, const fastgltf::math::fmat4x4 & parentworldmatrix,
+ const fastgltf::math::fmat4x4 & localmatrix) {
+ LV_UNUSED(parentworldmatrix);
+ LV_UNUSED(localmatrix);
+ if(!node.lightIndex.has_value() ||
+ node.lightIndex.value() != light_index) {
+ return;
+ }
+ LV_LOG_INFO("SCENE LIGHT BEING ADDED #%d\n", light_index);
+ data->node_by_light_index.push_back(&node);
+ });
+}
+
+static bool injest_mesh(lv_gltf_model_t * data, fastgltf::Mesh & mesh)
+{
+ /*const auto &asset = GET_ASSET(data);*/
+ const auto & outMesh = lv_gltf_get_new_meshdata(data);
+ outMesh->primitives.resize(mesh.primitives.size());
+
+ for(auto it = mesh.primitives.begin(); it != mesh.primitives.end(); ++it) {
+ if(it->dracoCompression) {
+ LV_LOG_WARN("Unhandled draco compression");
+ }
+ auto * positionIt = it->findAttribute("POSITION");
+ // A mesh primitive is required to hold the POSITION attribute.
+ //
+ assert(positionIt != it->attributes.end());
+ assert(it->indicesAccessor.has_value()); // We specify GenerateMeshIndices, so we should always have indices
+
+ auto index = std::distance(mesh.primitives.begin(), it);
+ auto & primitive = outMesh->primitives[index];
+
+ // Generate the VAO
+ GLuint vao;
+ glGenVertexArrays(1, &vao);
+ glBindVertexArray(vao);
+ primitive.primitiveType = fastgltf::to_underlying(it->type);
+ primitive.vertexArray = vao;
+
+ if(it->materialIndex.has_value()) {
+ // Adjust for default material
+ primitive.materialUniformsIndex = it->materialIndex.value() + 1;
+ auto & material = data->asset.materials[it->materialIndex.value()];
+ load_mesh_texture(data, material.pbrData.baseColorTexture, &primitive.albedoTexture,
+ &primitive.baseColorTexcoordIndex);
+
+ load_mesh_texture(data, material.pbrData.metallicRoughnessTexture, &primitive.metalRoughTexture,
+ &primitive.metallicRoughnessTexcoordIndex);
+ load_mesh_texture(data, material.normalTexture, &primitive.normalTexture, &primitive.normalTexcoordIndex);
+ load_mesh_texture(data, material.occlusionTexture, &primitive.occlusionTexture,
+ &primitive.occlusionTexcoordIndex);
+ load_mesh_texture(data, material.emissiveTexture, &primitive.emissiveTexture,
+ &primitive.emissiveTexcoordIndex);
+ if(material.volume)
+ load_mesh_texture(data, material.volume->thicknessTexture, &primitive.thicknessTexture,
+ &primitive.thicknessTexcoordIndex);
+ if(material.transmission)
+ load_mesh_texture(data, material.transmission->transmissionTexture,
+ &primitive.transmissionTexture, (GLint *)&primitive.transmissionTexcoordIndex);
+ if(material.clearcoat) {
+ load_mesh_texture(data, material.clearcoat->clearcoatTexture,
+ (GLuint *)&primitive.clearcoatTexture, &primitive.clearcoatTexcoordIndex);
+ load_mesh_texture(data, material.clearcoat->clearcoatRoughnessTexture,
+ (GLuint *)&primitive.clearcoatRoughnessTexture,
+ &primitive.clearcoatRoughnessTexcoordIndex);
+ load_mesh_texture(data, material.clearcoat->clearcoatNormalTexture,
+ (GLuint *)&primitive.clearcoatNormalTexture,
+ &primitive.clearcoatNormalTexcoordIndex);
+ }
+ if(material.diffuseTransmission) {
+ load_mesh_texture(data, material.diffuseTransmission->diffuseTransmissionTexture,
+ &primitive.diffuseTransmissionTexture,
+ &primitive.diffuseTransmissionTexcoordIndex);
+ load_mesh_texture(data, material.diffuseTransmission->diffuseTransmissionColorTexture,
+ &primitive.diffuseTransmissionColorTexture,
+ &primitive.diffuseTransmissionColorTexcoordIndex);
+ }
+ }
+ else {
+ primitive.materialUniformsIndex = 0;
+ }
+
+ auto & positionAccessor = data->asset.accessors[positionIt->accessorIndex];
+ if(!positionAccessor.bufferViewIndex.has_value()) {
+ continue;
+ }
+
+ // Create the vertex buffer for this primitive, and use the accessor tools to copy directly into the mapped buffer.
+ GL_CALL(glGenBuffers(1, &primitive.vertexBuffer));
+ GL_CALL(glBindBuffer(GL_ARRAY_BUFFER, primitive.vertexBuffer));
+
+ std::vector vertices_vec(positionAccessor.count);
+ vertex_t * vertices = vertices_vec.data();
+ glBufferData(GL_ARRAY_BUFFER, positionAccessor.count * sizeof(*vertices), nullptr, GL_STATIC_DRAW);
+ {
+ int32_t attr_index = 0;
+ attr_index = injest_vec_attribute(
+ 3, attr_index, data, &(*it), "POSITION", primitive.vertexBuffer, offsetof(vertex_t, position),
+ [&](fastgltf::math::fvec3 vec, size_t idx) {
+ vertices[idx].position = vec;
+ });
+ attr_index = injest_vec_attribute(
+ 4, attr_index, data, &(*it), "JOINTS_0", primitive.vertexBuffer, offsetof(vertex_t, joints),
+ [&](fastgltf::math::fvec4 vec, size_t idx) {
+ vertices[idx].joints = vec;
+ });
+ attr_index = injest_vec_attribute(
+ 4, attr_index, data, &(*it), "JOINTS_1", primitive.vertexBuffer, offsetof(vertex_t, joints2),
+ [&](fastgltf::math::fvec4 vec, std::size_t idx) {
+ vertices[idx].joints2 = vec;
+ });
+ attr_index = injest_vec_attribute(
+ 4, attr_index, data, &(*it), "WEIGHTS_0", primitive.vertexBuffer, offsetof(vertex_t, weights),
+ [&](fastgltf::math::fvec4 vec, std::size_t idx) {
+ vertices[idx].weights = vec;
+ });
+ attr_index = injest_vec_attribute(
+ 4, attr_index, data, &(*it), "WEIGHTS_1", primitive.vertexBuffer, offsetof(vertex_t, weights2),
+ [&](fastgltf::math::fvec4 vec, size_t idx) {
+ vertices[idx].weights2 = vec;
+ });
+ attr_index = injest_vec_attribute(
+ 3, attr_index, data, &(*it), "NORMAL", primitive.vertexBuffer, offsetof(vertex_t, normal),
+ [&](fastgltf::math::fvec3 vec, std::size_t idx) {
+ vertices[idx].normal = vec;
+ });
+ attr_index = injest_vec_attribute(
+ 4, attr_index, data, &(*it), "TANGENT", primitive.vertexBuffer, offsetof(vertex_t, tangent),
+ [&](fastgltf::math::fvec4 vec, size_t idx) {
+ vertices[idx].tangent = vec;
+ });
+ attr_index = injest_vec_attribute(
+ 2, attr_index, data, &(*it), "TEXCOORD_0", primitive.vertexBuffer, offsetof(vertex_t, uv),
+ [&](fastgltf::math::fvec2 vec, size_t idx) {
+ vertices[idx].uv = vec;
+ });
+ attr_index = injest_vec_attribute(
+ 2, attr_index, data, &(*it), "TEXCOORD_1", primitive.vertexBuffer, offsetof(vertex_t, uv2),
+ [&](fastgltf::math::fvec2 vec, size_t idx) {
+ vertices[idx].uv2 = vec;
+ });
+ }
+ glBindVertexArray(vao);
+ glBindBuffer(GL_ARRAY_BUFFER, primitive.vertexBuffer);
+ glBufferData(GL_ARRAY_BUFFER, positionAccessor.count * sizeof(vertex_t), vertices_vec.data(), GL_STATIC_DRAW);
+
+ // Generate the indirect draw command
+ auto & draw = primitive.draw;
+ draw.instanceCount = 1;
+ draw.baseInstance = 0;
+ draw.baseVertex = 0;
+ draw.firstIndex = 0;
+
+ auto & indexAccessor = data->asset.accessors[it->indicesAccessor.value()];
+ if(!indexAccessor.bufferViewIndex.has_value())
+ return false;
+ draw.count = static_cast(indexAccessor.count);
+
+ // Create the index buffer and copy the indices into it.
+ glGenBuffers(1, &primitive.indexBuffer);
+ glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, primitive.indexBuffer);
+ if(indexAccessor.componentType == fastgltf::ComponentType::UnsignedByte ||
+ indexAccessor.componentType == fastgltf::ComponentType::UnsignedShort) {
+ primitive.indexType = GL_UNSIGNED_SHORT;
+ std::uint16_t * tempIndices = new std::uint16_t[indexAccessor.count];
+ fastgltf::copyFromAccessor(data->asset, indexAccessor, tempIndices);
+ glBufferData(GL_ELEMENT_ARRAY_BUFFER,
+ static_cast(indexAccessor.count * sizeof(std::uint16_t)), tempIndices,
+ GL_STATIC_DRAW);
+ delete[] tempIndices;
+ }
+ else {
+ primitive.indexType = GL_UNSIGNED_INT;
+ //std::uint32_t tempIndices[indexAccessor.count];
+ std::uint32_t * tempIndices = new std::uint32_t[indexAccessor.count];
+ fastgltf::copyFromAccessor(data->asset, indexAccessor, tempIndices);
+ glBufferData(GL_ELEMENT_ARRAY_BUFFER,
+ static_cast(indexAccessor.count * sizeof(std::uint32_t)), tempIndices,
+ GL_STATIC_DRAW);
+ delete[] tempIndices;
+ }
+ }
+
+ glBindVertexArray(0);
+ return true;
+}
+template
+static size_t injest_vec_attribute(uint8_t vec_size, int32_t current_attrib_index, lv_gltf_model_t * data,
+ const fastgltf::Primitive * prim, const char * attrib_id, GLuint primitive_vertex_buffer,
+ size_t offset, Func &&functor
+
+ )
+{
+ const auto & asset = data->asset;
+ if(const auto * _attrib = prim->findAttribute(std::string(attrib_id)); _attrib != prim->attributes.end()) {
+ auto & accessor = asset.accessors[_attrib->accessorIndex];
+ if(accessor.bufferViewIndex.has_value()) {
+ glBindBuffer(GL_ARRAY_BUFFER, primitive_vertex_buffer);
+ fastgltf::iterateAccessorWithIndex(asset, accessor, functor);
+ // Specify the layout of the vertex data
+ glVertexAttribPointer(current_attrib_index, // Attribute index
+ vec_size, // Number of components per vertex
+ GL_FLOAT, // Data type
+ GL_FALSE, // Normalized
+ sizeof(vertex_t), // Stride (size of one vertex)
+ (void *)offset); // Offset in the buffer
+ glEnableVertexAttribArray(current_attrib_index);
+ }
+ else {
+ glDisableVertexAttribArray(current_attrib_index);
+ }
+ current_attrib_index++;
+ }
+ return current_attrib_index;
+}
+
+static void set_bounds_info(lv_gltf_model_t * data, fastgltf::math::fvec3 v_min, fastgltf::math::fvec3 v_max,
+ fastgltf::math::fvec3 v_cen, float radius)
+{
+ {
+ auto _d = v_min.data();
+ data->vertex_min[0] = _d[0];
+ data->vertex_min[1] = _d[1];
+ data->vertex_min[2] = _d[2];
+ }
+ {
+ auto _d = v_max.data();
+ data->vertex_max[0] = _d[0];
+ data->vertex_max[1] = _d[1];
+ data->vertex_max[2] = _d[2];
+ }
+ {
+ auto _d = v_cen.data();
+ data->vertex_cen[0] = _d[0];
+ data->vertex_cen[1] = _d[1];
+ data->vertex_cen[2] = _d[2];
+ }
+ data->bound_radius = radius;
+}
+
+#endif /*LV_USE_GLTF*/
diff --git a/lib/libesp32_lvgl/lvgl/src/libs/gltf/gltf_data/lv_gltf_data_internal.h b/lib/libesp32_lvgl/lvgl/src/libs/gltf/gltf_data/lv_gltf_data_internal.h
new file mode 100644
index 000000000..f8615a232
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/libs/gltf/gltf_data/lv_gltf_data_internal.h
@@ -0,0 +1,252 @@
+#ifndef LV_GLTFDATA_PRIVATE_H
+#define LV_GLTFDATA_PRIVATE_H
+
+#include "../../../lv_conf_internal.h"
+#if LV_USE_GLTF
+#include "../../../drivers/opengles/opengl_shader/lv_opengl_shader_internal.h"
+#include "../../../draw/lv_image_dsc.h"
+#include "../../../misc/lv_types.h"
+
+typedef struct {
+ GLuint count;
+ GLuint instanceCount;
+ GLuint firstIndex;
+ GLint baseVertex;
+ GLuint baseInstance;
+} IndirectDrawCommand;
+
+typedef struct {
+ IndirectDrawCommand draw;
+ GLenum primitiveType;
+ GLenum indexType;
+ GLuint vertexArray;
+
+ GLuint vertexBuffer;
+ GLuint indexBuffer;
+
+ GLuint materialUniformsIndex;
+ GLuint albedoTexture;
+ GLuint emissiveTexture;
+ GLuint metalRoughTexture;
+ GLuint occlusionTexture;
+ GLuint normalTexture;
+ GLuint diffuseTransmissionTexture;
+ GLuint diffuseTransmissionColorTexture;
+ GLuint transmissionTexture;
+ GLuint transmissionTexcoordIndex;
+
+ GLint baseColorTexcoordIndex;
+ GLint emissiveTexcoordIndex;
+
+ GLint metallicRoughnessTexcoordIndex;
+ GLint occlusionTexcoordIndex;
+ GLint normalTexcoordIndex;
+ GLint diffuseTransmissionTexcoordIndex;
+ GLint diffuseTransmissionColorTexcoordIndex;
+
+ GLint clearcoatTexture;
+ GLint clearcoatRoughnessTexture;
+ GLint clearcoatNormalTexture;
+ GLint clearcoatTexcoordIndex;
+ GLint clearcoatRoughnessTexcoordIndex;
+ GLint clearcoatNormalTexcoordIndex;
+
+ GLuint thicknessTexture;
+ GLint thicknessTexcoordIndex;
+
+ GLuint diffuseTexture;
+ GLint diffuseTexcoordIndex;
+
+ GLuint specularGlossinessTexture;
+ GLint specularGlossinessTexcoordIndex;
+
+} lv_gltf_primitive_t;
+
+typedef struct {
+ GLint camera;
+ GLint view_projection_matrix;
+ GLint model_matrix;
+ GLint view_matrix;
+ GLint projection_matrix;
+
+ GLint env_intensity;
+ GLint env_diffuse_sampler;
+ GLint env_specular_sampler;
+ GLint env_sheen_sampler;
+ GLint env_ggx_lut_sampler;
+ GLint env_charlie_lut_sampler;
+ GLint env_mip_count;
+
+ GLint exposure;
+ GLint roughness_factor;
+
+ GLint base_color_factor;
+ GLint base_color_sampler;
+ GLint base_color_uv_set;
+ GLint base_color_uv_transform;
+
+ GLint emissive_factor;
+ GLint emissive_sampler;
+ GLint emissive_uv_set;
+ GLint emissive_uv_transform;
+ GLint emissive_strength;
+
+ GLint metallic_factor;
+ GLint metallic_roughness_sampler;
+ GLint metallic_roughness_uv_set;
+ GLint metallic_roughness_uv_transform;
+
+ GLint occlusion_strength;
+ GLint occlusion_sampler;
+ GLint occlusion_uv_set;
+ GLint occlusion_uv_transform;
+
+ GLint normal_scale;
+ GLint normal_sampler;
+ GLint normal_uv_set;
+ GLint normal_uv_transform;
+
+ GLint clearcoat_factor;
+ GLint clearcoat_roughness_factor;
+ GLint clearcoat_sampler;
+ GLint clearcoat_uv_set;
+ GLint clearcoat_uv_transform;
+ GLint clearcoat_roughness_sampler;
+ GLint clearcoat_roughness_uv_set;
+ GLint clearcoat_roughness_uv_transform;
+ GLint clearcoat_normal_scale;
+ GLint clearcoat_normal_sampler;
+ GLint clearcoat_normal_uv_set;
+ GLint clearcoat_normal_uv_transform;
+
+ GLint thickness;
+ GLint thickness_sampler;
+ GLint thickness_uv_set;
+ GLint thickness_uv_transform;
+
+ GLint diffuse_transmission_sampler;
+ GLint diffuse_transmission_uv_set;
+ GLint diffuse_transmission_uv_transform;
+
+ GLint diffuse_transmission_color_sampler;
+ GLint diffuse_transmission_color_uv_set;
+ GLint diffuse_transmission_color_uv_transform;
+
+ GLint sheen_color_factor;
+ GLint sheen_roughness_factor;
+
+ GLint specular_color_factor;
+ GLint specular_factor;
+
+ GLint diffuse_transmission_color_factor;
+ GLint diffuse_transmission_factor;
+
+ GLint ior;
+ GLint alpha_cutoff;
+
+ GLint dispersion;
+ GLint screen_size;
+ GLint transmission_factor;
+ GLint transmission_sampler;
+ GLint transmission_uv_set;
+ GLint transmission_uv_transform;
+ GLint transmission_framebuffer_sampler;
+ GLint transmission_framebuffer_size;
+
+ GLint attenuation_distance;
+ GLint attenuation_color;
+
+ GLint joints_sampler;
+
+ GLint diffuse_factor;
+ GLint glossiness_factor;
+
+ GLint diffuse_sampler;
+ GLint diffuse_uv_set;
+ GLint diffuse_uv_transform;
+ GLint specular_glossiness_sampler;
+ GLint specular_glossiness_uv_set;
+ GLint specular_glossiness_uv_transform;
+
+} lv_gltf_uniform_locations_t;
+
+lv_gltf_uniform_locations_t lv_gltf_uniform_locations_create(GLuint program);
+
+typedef struct {
+ GLuint program;
+ uint32_t bg_program;
+ uint32_t vert;
+ uint32_t frag;
+} lv_gltf_shaderset_t;
+
+typedef struct {
+ lv_gltf_uniform_locations_t uniforms;
+ lv_gltf_shaderset_t shaderset;
+} lv_gltf_compiled_shader_t;
+
+void lv_gltf_store_compiled_shader(lv_gltf_model_t * data, size_t identifier, lv_gltf_compiled_shader_t * shader);
+lv_gltf_compiled_shader_t * lv_gltf_get_compiled_shader(lv_gltf_model_t * data, size_t identifier);
+
+/**
+ * @brief Load the gltf file at the specified filepath
+ *
+ * @param gltf_path The gltf filename
+ * @param ret_data Pointer to the data container that will be populated.
+ * @param shaders Pointer to the shader cache object this file uses.
+ */
+lv_gltf_model_t *
+lv_gltf_data_load_from_file(const char * file_path,
+ lv_opengl_shader_manager_t * shader_manager);
+
+/**
+ * @brief Load the gltf file encoded within the supplied byte array
+ *
+ * @param gltf_path The gltf filename
+ * @param gltf_data_size if gltf_path is instead a byte array, pass the size of that array in through this variable (or 0 if it's a file path).
+ * @param ret_data Pointer to the data container that will be populated.
+ * @param shaders Pointer to the shader cache object this file uses.
+ */
+
+lv_gltf_model_t *
+lv_gltf_data_load_from_bytes(const uint8_t * data, size_t data_size,
+ lv_opengl_shader_manager_t * shader_manager);
+
+
+/**
+ * @brief Retrieve the radius of the GLTF data object.
+ *
+ * @param D Pointer to the lv_gltf_data_t object from which to get the radius.
+ * @return The radius of the GLTF data object.
+ */
+double lv_gltf_data_get_radius(lv_gltf_model_t * D);
+
+
+/**
+ * @brief Destroy a GLTF data object and free associated resources.
+ *
+ * @param _data Pointer to the lv_gltf_data_t object to be destroyed.
+ */
+void lv_gltf_data_destroy(lv_gltf_model_t * _data);
+
+/**
+ * @brief Copy the bounds information from one GLTF data object to another.
+ *
+ * @param to Pointer to the destination lv_gltf_data_t object.
+ * @param from Pointer to the source lv_gltf_data_t object.
+ */
+void lv_gltf_data_copy_bounds_info(lv_gltf_model_t * to, lv_gltf_model_t * from);
+
+/**
+ * @brief Swap the red and blue channels in a pixel buffer.
+ *
+ * @param pixel_buffer Pointer to the pixel buffer containing the image data.
+ * @param byte_total_count The total number of bytes in the pixel buffer.
+ * @param has_alpha Flag indicating whether the pixel buffer includes an alpha channel.
+ */
+void lv_gltf_data_rgb_to_bgr(uint8_t * pixel_buffer,
+ size_t byte_total_count,
+ bool has_alpha);
+
+
+#endif /*LV_USE_GLTF*/
+#endif /* LV_GLTFDATA_PRIVATE_H */
diff --git a/lib/libesp32_lvgl/lvgl/src/libs/gltf/gltf_data/lv_gltf_data_internal.hpp b/lib/libesp32_lvgl/lvgl/src/libs/gltf/gltf_data/lv_gltf_data_internal.hpp
new file mode 100644
index 000000000..c254aafd4
--- /dev/null
+++ b/lib/libesp32_lvgl/lvgl/src/libs/gltf/gltf_data/lv_gltf_data_internal.hpp
@@ -0,0 +1,373 @@
+#ifndef LV_GLTFDATA_HPP
+#define LV_GLTFDATA_HPP
+
+#include "../../../lv_conf_internal.h"
+
+#if LV_USE_GLTF
+
+#include
+#include "lv_gltf_data_internal.h"
+#include "lv_gltf_bind.h"
+
+#include "../../../misc/lv_array.h"
+#include "../../../drivers/opengles/lv_opengles_private.h"
+
+#ifdef __cplusplus
+
+#include
+#include
+#include