summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--resources/emoji-test.txt156
-rwxr-xr-xscripts/emoji_codegen.py2
-rw-r--r--src/emoji/Provider.cpp396
3 files changed, 484 insertions, 70 deletions
diff --git a/resources/emoji-test.txt b/resources/emoji-test.txt
index d3c6d12b..dd549336 100644
--- a/resources/emoji-test.txt
+++ b/resources/emoji-test.txt
@@ -1,11 +1,11 @@
 # emoji-test.txt
-# Date: 2020-09-12, 22:19:50 GMT
-# © 2020 Unicode®, Inc.
+# Date: 2021-08-26, 17:22:23 GMT
+# © 2021 Unicode®, Inc.
 # Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
 # For terms of use, see http://www.unicode.org/terms_of_use.html
 #
 # Emoji Keyboard/Display Test Data for UTS #51
-# Version: 13.1
+# Version: 14.0
 #
 # For documentation and usage, see http://www.unicode.org/reports/tr51
 #
@@ -43,6 +43,7 @@
 1F602                                                  ; fully-qualified     # 😂 E0.6 face with tears of joy
 1F642                                                  ; fully-qualified     # 🙂 E1.0 slightly smiling face
 1F643                                                  ; fully-qualified     # 🙃 E1.0 upside-down face
+1FAE0                                                  ; fully-qualified     # 🫠 E14.0 melting face
 1F609                                                  ; fully-qualified     # 😉 E0.6 winking face
 1F60A                                                  ; fully-qualified     # 😊 E0.6 smiling face with smiling eyes
 1F607                                                  ; fully-qualified     # 😇 E1.0 smiling face with halo
@@ -68,10 +69,13 @@
 1F911                                                  ; fully-qualified     # 🤑 E1.0 money-mouth face
 
 # subgroup: face-hand
-1F917                                                  ; fully-qualified     # 🤗 E1.0 hugging face
+1F917                                                  ; fully-qualified     # 🤗 E1.0 smiling face with open hands
 1F92D                                                  ; fully-qualified     # 🤭 E5.0 face with hand over mouth
+1FAE2                                                  ; fully-qualified     # 🫢 E14.0 face with open eyes and hand over mouth
+1FAE3                                                  ; fully-qualified     # 🫣 E14.0 face with peeking eye
 1F92B                                                  ; fully-qualified     # 🤫 E5.0 shushing face
 1F914                                                  ; fully-qualified     # 🤔 E1.0 thinking face
+1FAE1                                                  ; fully-qualified     # 🫡 E14.0 saluting face
 
 # subgroup: face-neutral-skeptical
 1F910                                                  ; fully-qualified     # 🤐 E1.0 zipper-mouth face
@@ -79,6 +83,7 @@
 1F610                                                  ; fully-qualified     # 😐 E0.7 neutral face
 1F611                                                  ; fully-qualified     # 😑 E1.0 expressionless face
 1F636                                                  ; fully-qualified     # 😶 E1.0 face without mouth
+1FAE5                                                  ; fully-qualified     # 🫥 E14.0 dotted line face
 1F636 200D 1F32B FE0F                                  ; fully-qualified     # 😶‍🌫️ E13.1 face in clouds
 1F636 200D 1F32B                                       ; minimally-qualified # 😶‍🌫 E13.1 face in clouds
 1F60F                                                  ; fully-qualified     # 😏 E0.6 smirking face
@@ -105,7 +110,7 @@
 1F975                                                  ; fully-qualified     # 🥵 E11.0 hot face
 1F976                                                  ; fully-qualified     # 🥶 E11.0 cold face
 1F974                                                  ; fully-qualified     # 🥴 E11.0 woozy face
-1F635                                                  ; fully-qualified     # 😵 E0.6 knocked-out face
+1F635                                                  ; fully-qualified     # 😵 E0.6 face with crossed-out eyes
 1F635 200D 1F4AB                                       ; fully-qualified     # 😵‍💫 E13.1 face with spiral eyes
 1F92F                                                  ; fully-qualified     # 🤯 E5.0 exploding head
 
@@ -121,6 +126,7 @@
 
 # subgroup: face-concerned
 1F615                                                  ; fully-qualified     # 😕 E1.0 confused face
+1FAE4                                                  ; fully-qualified     # 🫤 E14.0 face with diagonal mouth
 1F61F                                                  ; fully-qualified     # 😟 E1.0 worried face
 1F641                                                  ; fully-qualified     # 🙁 E1.0 slightly frowning face
 2639 FE0F                                              ; fully-qualified     # ☹️ E0.7 frowning face
@@ -130,6 +136,7 @@
 1F632                                                  ; fully-qualified     # 😲 E0.6 astonished face
 1F633                                                  ; fully-qualified     # 😳 E0.6 flushed face
 1F97A                                                  ; fully-qualified     # 🥺 E11.0 pleading face
+1F979                                                  ; fully-qualified     # 🥹 E14.0 face holding back tears
 1F626                                                  ; fully-qualified     # 😦 E1.0 frowning face with open mouth
 1F627                                                  ; fully-qualified     # 😧 E1.0 anguished face
 1F628                                                  ; fully-qualified     # 😨 E0.6 fearful face
@@ -232,8 +239,8 @@
 1F4AD                                                  ; fully-qualified     # 💭 E1.0 thought balloon
 1F4A4                                                  ; fully-qualified     # 💤 E0.6 zzz
 
-# Smileys & Emotion subtotal:		170
-# Smileys & Emotion subtotal:		170	w/o modifiers
+# Smileys & Emotion subtotal:		177
+# Smileys & Emotion subtotal:		177	w/o modifiers
 
 # group: People & Body
 
@@ -269,6 +276,30 @@
 1F596 1F3FD                                            ; fully-qualified     # 🖖🏽 E1.0 vulcan salute: medium skin tone
 1F596 1F3FE                                            ; fully-qualified     # 🖖🏾 E1.0 vulcan salute: medium-dark skin tone
 1F596 1F3FF                                            ; fully-qualified     # 🖖🏿 E1.0 vulcan salute: dark skin tone
+1FAF1                                                  ; fully-qualified     # 🫱 E14.0 rightwards hand
+1FAF1 1F3FB                                            ; fully-qualified     # 🫱🏻 E14.0 rightwards hand: light skin tone
+1FAF1 1F3FC                                            ; fully-qualified     # 🫱🏼 E14.0 rightwards hand: medium-light skin tone
+1FAF1 1F3FD                                            ; fully-qualified     # 🫱🏽 E14.0 rightwards hand: medium skin tone
+1FAF1 1F3FE                                            ; fully-qualified     # 🫱🏾 E14.0 rightwards hand: medium-dark skin tone
+1FAF1 1F3FF                                            ; fully-qualified     # 🫱🏿 E14.0 rightwards hand: dark skin tone
+1FAF2                                                  ; fully-qualified     # 🫲 E14.0 leftwards hand
+1FAF2 1F3FB                                            ; fully-qualified     # 🫲🏻 E14.0 leftwards hand: light skin tone
+1FAF2 1F3FC                                            ; fully-qualified     # 🫲🏼 E14.0 leftwards hand: medium-light skin tone
+1FAF2 1F3FD                                            ; fully-qualified     # 🫲🏽 E14.0 leftwards hand: medium skin tone
+1FAF2 1F3FE                                            ; fully-qualified     # 🫲🏾 E14.0 leftwards hand: medium-dark skin tone
+1FAF2 1F3FF                                            ; fully-qualified     # 🫲🏿 E14.0 leftwards hand: dark skin tone
+1FAF3                                                  ; fully-qualified     # 🫳 E14.0 palm down hand
+1FAF3 1F3FB                                            ; fully-qualified     # 🫳🏻 E14.0 palm down hand: light skin tone
+1FAF3 1F3FC                                            ; fully-qualified     # 🫳🏼 E14.0 palm down hand: medium-light skin tone
+1FAF3 1F3FD                                            ; fully-qualified     # 🫳🏽 E14.0 palm down hand: medium skin tone
+1FAF3 1F3FE                                            ; fully-qualified     # 🫳🏾 E14.0 palm down hand: medium-dark skin tone
+1FAF3 1F3FF                                            ; fully-qualified     # 🫳🏿 E14.0 palm down hand: dark skin tone
+1FAF4                                                  ; fully-qualified     # 🫴 E14.0 palm up hand
+1FAF4 1F3FB                                            ; fully-qualified     # 🫴🏻 E14.0 palm up hand: light skin tone
+1FAF4 1F3FC                                            ; fully-qualified     # 🫴🏼 E14.0 palm up hand: medium-light skin tone
+1FAF4 1F3FD                                            ; fully-qualified     # 🫴🏽 E14.0 palm up hand: medium skin tone
+1FAF4 1F3FE                                            ; fully-qualified     # 🫴🏾 E14.0 palm up hand: medium-dark skin tone
+1FAF4 1F3FF                                            ; fully-qualified     # 🫴🏿 E14.0 palm up hand: dark skin tone
 
 # subgroup: hand-fingers-partial
 1F44C                                                  ; fully-qualified     # 👌 E0.6 OK hand
@@ -302,6 +333,12 @@
 1F91E 1F3FD                                            ; fully-qualified     # 🤞🏽 E3.0 crossed fingers: medium skin tone
 1F91E 1F3FE                                            ; fully-qualified     # 🤞🏾 E3.0 crossed fingers: medium-dark skin tone
 1F91E 1F3FF                                            ; fully-qualified     # 🤞🏿 E3.0 crossed fingers: dark skin tone
+1FAF0                                                  ; fully-qualified     # 🫰 E14.0 hand with index finger and thumb crossed
+1FAF0 1F3FB                                            ; fully-qualified     # 🫰🏻 E14.0 hand with index finger and thumb crossed: light skin tone
+1FAF0 1F3FC                                            ; fully-qualified     # 🫰🏼 E14.0 hand with index finger and thumb crossed: medium-light skin tone
+1FAF0 1F3FD                                            ; fully-qualified     # 🫰🏽 E14.0 hand with index finger and thumb crossed: medium skin tone
+1FAF0 1F3FE                                            ; fully-qualified     # 🫰🏾 E14.0 hand with index finger and thumb crossed: medium-dark skin tone
+1FAF0 1F3FF                                            ; fully-qualified     # 🫰🏿 E14.0 hand with index finger and thumb crossed: dark skin tone
 1F91F                                                  ; fully-qualified     # 🤟 E5.0 love-you gesture
 1F91F 1F3FB                                            ; fully-qualified     # 🤟🏻 E5.0 love-you gesture: light skin tone
 1F91F 1F3FC                                            ; fully-qualified     # 🤟🏼 E5.0 love-you gesture: medium-light skin tone
@@ -359,6 +396,12 @@
 261D 1F3FD                                             ; fully-qualified     # ☝🏽 E1.0 index pointing up: medium skin tone
 261D 1F3FE                                             ; fully-qualified     # ☝🏾 E1.0 index pointing up: medium-dark skin tone
 261D 1F3FF                                             ; fully-qualified     # ☝🏿 E1.0 index pointing up: dark skin tone
+1FAF5                                                  ; fully-qualified     # 🫵 E14.0 index pointing at the viewer
+1FAF5 1F3FB                                            ; fully-qualified     # 🫵🏻 E14.0 index pointing at the viewer: light skin tone
+1FAF5 1F3FC                                            ; fully-qualified     # 🫵🏼 E14.0 index pointing at the viewer: medium-light skin tone
+1FAF5 1F3FD                                            ; fully-qualified     # 🫵🏽 E14.0 index pointing at the viewer: medium skin tone
+1FAF5 1F3FE                                            ; fully-qualified     # 🫵🏾 E14.0 index pointing at the viewer: medium-dark skin tone
+1FAF5 1F3FF                                            ; fully-qualified     # 🫵🏿 E14.0 index pointing at the viewer: dark skin tone
 
 # subgroup: hand-fingers-closed
 1F44D                                                  ; fully-qualified     # 👍 E0.6 thumbs up
@@ -411,6 +454,12 @@
 1F64C 1F3FD                                            ; fully-qualified     # 🙌🏽 E1.0 raising hands: medium skin tone
 1F64C 1F3FE                                            ; fully-qualified     # 🙌🏾 E1.0 raising hands: medium-dark skin tone
 1F64C 1F3FF                                            ; fully-qualified     # 🙌🏿 E1.0 raising hands: dark skin tone
+1FAF6                                                  ; fully-qualified     # 🫶 E14.0 heart hands
+1FAF6 1F3FB                                            ; fully-qualified     # 🫶🏻 E14.0 heart hands: light skin tone
+1FAF6 1F3FC                                            ; fully-qualified     # 🫶🏼 E14.0 heart hands: medium-light skin tone
+1FAF6 1F3FD                                            ; fully-qualified     # 🫶🏽 E14.0 heart hands: medium skin tone
+1FAF6 1F3FE                                            ; fully-qualified     # 🫶🏾 E14.0 heart hands: medium-dark skin tone
+1FAF6 1F3FF                                            ; fully-qualified     # 🫶🏿 E14.0 heart hands: dark skin tone
 1F450                                                  ; fully-qualified     # 👐 E0.6 open hands
 1F450 1F3FB                                            ; fully-qualified     # 👐🏻 E1.0 open hands: light skin tone
 1F450 1F3FC                                            ; fully-qualified     # 👐🏼 E1.0 open hands: medium-light skin tone
@@ -424,6 +473,31 @@
 1F932 1F3FE                                            ; fully-qualified     # 🤲🏾 E5.0 palms up together: medium-dark skin tone
 1F932 1F3FF                                            ; fully-qualified     # 🤲🏿 E5.0 palms up together: dark skin tone
 1F91D                                                  ; fully-qualified     # 🤝 E3.0 handshake
+1F91D 1F3FB                                            ; fully-qualified     # 🤝🏻 E3.0 handshake: light skin tone
+1F91D 1F3FC                                            ; fully-qualified     # 🤝🏼 E3.0 handshake: medium-light skin tone
+1F91D 1F3FD                                            ; fully-qualified     # 🤝🏽 E3.0 handshake: medium skin tone
+1F91D 1F3FE                                            ; fully-qualified     # 🤝🏾 E3.0 handshake: medium-dark skin tone
+1F91D 1F3FF                                            ; fully-qualified     # 🤝🏿 E3.0 handshake: dark skin tone
+1FAF1 1F3FB 200D 1FAF2 1F3FC                           ; fully-qualified     # 🫱🏻‍🫲🏼 E14.0 handshake: light skin tone, medium-light skin tone
+1FAF1 1F3FB 200D 1FAF2 1F3FD                           ; fully-qualified     # 🫱🏻‍🫲🏽 E14.0 handshake: light skin tone, medium skin tone
+1FAF1 1F3FB 200D 1FAF2 1F3FE                           ; fully-qualified     # 🫱🏻‍🫲🏾 E14.0 handshake: light skin tone, medium-dark skin tone
+1FAF1 1F3FB 200D 1FAF2 1F3FF                           ; fully-qualified     # 🫱🏻‍🫲🏿 E14.0 handshake: light skin tone, dark skin tone
+1FAF1 1F3FC 200D 1FAF2 1F3FB                           ; fully-qualified     # 🫱🏼‍🫲🏻 E14.0 handshake: medium-light skin tone, light skin tone
+1FAF1 1F3FC 200D 1FAF2 1F3FD                           ; fully-qualified     # 🫱🏼‍🫲🏽 E14.0 handshake: medium-light skin tone, medium skin tone
+1FAF1 1F3FC 200D 1FAF2 1F3FE                           ; fully-qualified     # 🫱🏼‍🫲🏾 E14.0 handshake: medium-light skin tone, medium-dark skin tone
+1FAF1 1F3FC 200D 1FAF2 1F3FF                           ; fully-qualified     # 🫱🏼‍🫲🏿 E14.0 handshake: medium-light skin tone, dark skin tone
+1FAF1 1F3FD 200D 1FAF2 1F3FB                           ; fully-qualified     # 🫱🏽‍🫲🏻 E14.0 handshake: medium skin tone, light skin tone
+1FAF1 1F3FD 200D 1FAF2 1F3FC                           ; fully-qualified     # 🫱🏽‍🫲🏼 E14.0 handshake: medium skin tone, medium-light skin tone
+1FAF1 1F3FD 200D 1FAF2 1F3FE                           ; fully-qualified     # 🫱🏽‍🫲🏾 E14.0 handshake: medium skin tone, medium-dark skin tone
+1FAF1 1F3FD 200D 1FAF2 1F3FF                           ; fully-qualified     # 🫱🏽‍🫲🏿 E14.0 handshake: medium skin tone, dark skin tone
+1FAF1 1F3FE 200D 1FAF2 1F3FB                           ; fully-qualified     # 🫱🏾‍🫲🏻 E14.0 handshake: medium-dark skin tone, light skin tone
+1FAF1 1F3FE 200D 1FAF2 1F3FC                           ; fully-qualified     # 🫱🏾‍🫲🏼 E14.0 handshake: medium-dark skin tone, medium-light skin tone
+1FAF1 1F3FE 200D 1FAF2 1F3FD                           ; fully-qualified     # 🫱🏾‍🫲🏽 E14.0 handshake: medium-dark skin tone, medium skin tone
+1FAF1 1F3FE 200D 1FAF2 1F3FF                           ; fully-qualified     # 🫱🏾‍🫲🏿 E14.0 handshake: medium-dark skin tone, dark skin tone
+1FAF1 1F3FF 200D 1FAF2 1F3FB                           ; fully-qualified     # 🫱🏿‍🫲🏻 E14.0 handshake: dark skin tone, light skin tone
+1FAF1 1F3FF 200D 1FAF2 1F3FC                           ; fully-qualified     # 🫱🏿‍🫲🏼 E14.0 handshake: dark skin tone, medium-light skin tone
+1FAF1 1F3FF 200D 1FAF2 1F3FD                           ; fully-qualified     # 🫱🏿‍🫲🏽 E14.0 handshake: dark skin tone, medium skin tone
+1FAF1 1F3FF 200D 1FAF2 1F3FE                           ; fully-qualified     # 🫱🏿‍🫲🏾 E14.0 handshake: dark skin tone, medium-dark skin tone
 1F64F                                                  ; fully-qualified     # 🙏 E0.6 folded hands
 1F64F 1F3FB                                            ; fully-qualified     # 🙏🏻 E1.0 folded hands: light skin tone
 1F64F 1F3FC                                            ; fully-qualified     # 🙏🏼 E1.0 folded hands: medium-light skin tone
@@ -501,6 +575,7 @@
 1F441                                                  ; unqualified         # 👁 E0.7 eye
 1F445                                                  ; fully-qualified     # 👅 E0.6 tongue
 1F444                                                  ; fully-qualified     # 👄 E0.6 mouth
+1FAE6                                                  ; fully-qualified     # 🫦 E14.0 biting lip
 
 # subgroup: person
 1F476                                                  ; fully-qualified     # 👶 E0.6 baby
@@ -1472,6 +1547,12 @@
 1F477 1F3FE 200D 2640                                  ; minimally-qualified # 👷🏾‍♀ E4.0 woman construction worker: medium-dark skin tone
 1F477 1F3FF 200D 2640 FE0F                             ; fully-qualified     # 👷🏿‍♀️ E4.0 woman construction worker: dark skin tone
 1F477 1F3FF 200D 2640                                  ; minimally-qualified # 👷🏿‍♀ E4.0 woman construction worker: dark skin tone
+1FAC5                                                  ; fully-qualified     # 🫅 E14.0 person with crown
+1FAC5 1F3FB                                            ; fully-qualified     # 🫅🏻 E14.0 person with crown: light skin tone
+1FAC5 1F3FC                                            ; fully-qualified     # 🫅🏼 E14.0 person with crown: medium-light skin tone
+1FAC5 1F3FD                                            ; fully-qualified     # 🫅🏽 E14.0 person with crown: medium skin tone
+1FAC5 1F3FE                                            ; fully-qualified     # 🫅🏾 E14.0 person with crown: medium-dark skin tone
+1FAC5 1F3FF                                            ; fully-qualified     # 🫅🏿 E14.0 person with crown: dark skin tone
 1F934                                                  ; fully-qualified     # 🤴 E3.0 prince
 1F934 1F3FB                                            ; fully-qualified     # 🤴🏻 E3.0 prince: light skin tone
 1F934 1F3FC                                            ; fully-qualified     # 🤴🏼 E3.0 prince: medium-light skin tone
@@ -1592,6 +1673,18 @@
 1F930 1F3FD                                            ; fully-qualified     # 🤰🏽 E3.0 pregnant woman: medium skin tone
 1F930 1F3FE                                            ; fully-qualified     # 🤰🏾 E3.0 pregnant woman: medium-dark skin tone
 1F930 1F3FF                                            ; fully-qualified     # 🤰🏿 E3.0 pregnant woman: dark skin tone
+1FAC3                                                  ; fully-qualified     # 🫃 E14.0 pregnant man
+1FAC3 1F3FB                                            ; fully-qualified     # 🫃🏻 E14.0 pregnant man: light skin tone
+1FAC3 1F3FC                                            ; fully-qualified     # 🫃🏼 E14.0 pregnant man: medium-light skin tone
+1FAC3 1F3FD                                            ; fully-qualified     # 🫃🏽 E14.0 pregnant man: medium skin tone
+1FAC3 1F3FE                                            ; fully-qualified     # 🫃🏾 E14.0 pregnant man: medium-dark skin tone
+1FAC3 1F3FF                                            ; fully-qualified     # 🫃🏿 E14.0 pregnant man: dark skin tone
+1FAC4                                                  ; fully-qualified     # 🫄 E14.0 pregnant person
+1FAC4 1F3FB                                            ; fully-qualified     # 🫄🏻 E14.0 pregnant person: light skin tone
+1FAC4 1F3FC                                            ; fully-qualified     # 🫄🏼 E14.0 pregnant person: medium-light skin tone
+1FAC4 1F3FD                                            ; fully-qualified     # 🫄🏽 E14.0 pregnant person: medium skin tone
+1FAC4 1F3FE                                            ; fully-qualified     # 🫄🏾 E14.0 pregnant person: medium-dark skin tone
+1FAC4 1F3FF                                            ; fully-qualified     # 🫄🏿 E14.0 pregnant person: dark skin tone
 1F931                                                  ; fully-qualified     # 🤱 E5.0 breast-feeding
 1F931 1F3FB                                            ; fully-qualified     # 🤱🏻 E5.0 breast-feeding: light skin tone
 1F931 1F3FC                                            ; fully-qualified     # 🤱🏼 E5.0 breast-feeding: medium-light skin tone
@@ -1862,6 +1955,7 @@
 1F9DF 200D 2642                                        ; minimally-qualified # 🧟‍♂ E5.0 man zombie
 1F9DF 200D 2640 FE0F                                   ; fully-qualified     # 🧟‍♀️ E5.0 woman zombie
 1F9DF 200D 2640                                        ; minimally-qualified # 🧟‍♀ E5.0 woman zombie
+1F9CC                                                  ; fully-qualified     # 🧌 E14.0 troll
 
 # subgroup: person-activity
 1F486                                                  ; fully-qualified     # 💆 E0.6 person getting massage
@@ -3168,8 +3262,8 @@
 1FAC2                                                  ; fully-qualified     # 🫂 E13.0 people hugging
 1F463                                                  ; fully-qualified     # 👣 E0.6 footprints
 
-# People & Body subtotal:		2899
-# People & Body subtotal:		494	w/o modifiers
+# People & Body subtotal:		2986
+# People & Body subtotal:		506	w/o modifiers
 
 # group: Component
 
@@ -3304,6 +3398,7 @@
 1F988                                                  ; fully-qualified     # 🦈 E3.0 shark
 1F419                                                  ; fully-qualified     # 🐙 E0.6 octopus
 1F41A                                                  ; fully-qualified     # 🐚 E0.6 spiral shell
+1FAB8                                                  ; fully-qualified     # 🪸 E14.0 coral
 
 # subgroup: animal-bug
 1F40C                                                  ; fully-qualified     # 🐌 E0.6 snail
@@ -3329,6 +3424,7 @@
 1F490                                                  ; fully-qualified     # 💐 E0.6 bouquet
 1F338                                                  ; fully-qualified     # 🌸 E0.6 cherry blossom
 1F4AE                                                  ; fully-qualified     # 💮 E0.6 white flower
+1FAB7                                                  ; fully-qualified     # 🪷 E14.0 lotus
 1F3F5 FE0F                                             ; fully-qualified     # 🏵️ E0.7 rosette
 1F3F5                                                  ; unqualified         # 🏵 E0.7 rosette
 1F339                                                  ; fully-qualified     # 🌹 E0.6 rose
@@ -3353,9 +3449,11 @@
 1F341                                                  ; fully-qualified     # 🍁 E0.6 maple leaf
 1F342                                                  ; fully-qualified     # 🍂 E0.6 fallen leaf
 1F343                                                  ; fully-qualified     # 🍃 E0.6 leaf fluttering in wind
+1FAB9                                                  ; fully-qualified     # 🪹 E14.0 empty nest
+1FABA                                                  ; fully-qualified     # 🪺 E14.0 nest with eggs
 
-# Animals & Nature subtotal:		147
-# Animals & Nature subtotal:		147	w/o modifiers
+# Animals & Nature subtotal:		151
+# Animals & Nature subtotal:		151	w/o modifiers
 
 # group: Food & Drink
 
@@ -3396,6 +3494,7 @@
 1F9C5                                                  ; fully-qualified     # 🧅 E12.0 onion
 1F344                                                  ; fully-qualified     # 🍄 E0.6 mushroom
 1F95C                                                  ; fully-qualified     # 🥜 E3.0 peanuts
+1FAD8                                                  ; fully-qualified     # 🫘 E14.0 beans
 1F330                                                  ; fully-qualified     # 🌰 E0.6 chestnut
 
 # subgroup: food-prepared
@@ -3491,6 +3590,7 @@
 1F37B                                                  ; fully-qualified     # 🍻 E0.6 clinking beer mugs
 1F942                                                  ; fully-qualified     # 🥂 E3.0 clinking glasses
 1F943                                                  ; fully-qualified     # 🥃 E3.0 tumbler glass
+1FAD7                                                  ; fully-qualified     # 🫗 E14.0 pouring liquid
 1F964                                                  ; fully-qualified     # 🥤 E5.0 cup with straw
 1F9CB                                                  ; fully-qualified     # 🧋 E13.0 bubble tea
 1F9C3                                                  ; fully-qualified     # 🧃 E12.0 beverage box
@@ -3504,10 +3604,11 @@
 1F374                                                  ; fully-qualified     # 🍴 E0.6 fork and knife
 1F944                                                  ; fully-qualified     # 🥄 E3.0 spoon
 1F52A                                                  ; fully-qualified     # 🔪 E0.6 kitchen knife
+1FAD9                                                  ; fully-qualified     # 🫙 E14.0 jar
 1F3FA                                                  ; fully-qualified     # 🏺 E1.0 amphora
 
-# Food & Drink subtotal:		131
-# Food & Drink subtotal:		131	w/o modifiers
+# Food & Drink subtotal:		134
+# Food & Drink subtotal:		134	w/o modifiers
 
 # group: Travel & Places
 
@@ -3597,6 +3698,7 @@
 2668 FE0F                                              ; fully-qualified     # ♨️ E0.6 hot springs
 2668                                                   ; unqualified         # ♨ E0.6 hot springs
 1F3A0                                                  ; fully-qualified     # 🎠 E0.6 carousel horse
+1F6DD                                                  ; fully-qualified     # 🛝 E14.0 playground slide
 1F3A1                                                  ; fully-qualified     # 🎡 E0.6 ferris wheel
 1F3A2                                                  ; fully-qualified     # 🎢 E0.6 roller coaster
 1F488                                                  ; fully-qualified     # 💈 E0.6 barber pole
@@ -3652,6 +3754,7 @@
 1F6E2 FE0F                                             ; fully-qualified     # 🛢️ E0.7 oil drum
 1F6E2                                                  ; unqualified         # 🛢 E0.7 oil drum
 26FD                                                   ; fully-qualified     # ⛽ E0.6 fuel pump
+1F6DE                                                  ; fully-qualified     # 🛞 E14.0 wheel
 1F6A8                                                  ; fully-qualified     # 🚨 E0.6 police car light
 1F6A5                                                  ; fully-qualified     # 🚥 E0.6 horizontal traffic light
 1F6A6                                                  ; fully-qualified     # 🚦 E1.0 vertical traffic light
@@ -3660,6 +3763,7 @@
 
 # subgroup: transport-water
 2693                                                   ; fully-qualified     # ⚓ E0.6 anchor
+1F6DF                                                  ; fully-qualified     # 🛟 E14.0 ring buoy
 26F5                                                   ; fully-qualified     # ⛵ E0.6 sailboat
 1F6F6                                                  ; fully-qualified     # 🛶 E3.0 canoe
 1F6A4                                                  ; fully-qualified     # 🚤 E0.6 speedboat
@@ -3797,8 +3901,8 @@
 1F4A7                                                  ; fully-qualified     # 💧 E0.6 droplet
 1F30A                                                  ; fully-qualified     # 🌊 E0.6 water wave
 
-# Travel & Places subtotal:		264
-# Travel & Places subtotal:		264	w/o modifiers
+# Travel & Places subtotal:		267
+# Travel & Places subtotal:		267	w/o modifiers
 
 # group: Activities
 
@@ -3874,6 +3978,7 @@
 1F52E                                                  ; fully-qualified     # 🔮 E0.6 crystal ball
 1FA84                                                  ; fully-qualified     # 🪄 E13.0 magic wand
 1F9FF                                                  ; fully-qualified     # 🧿 E11.0 nazar amulet
+1FAAC                                                  ; fully-qualified     # 🪬 E14.0 hamsa
 1F3AE                                                  ; fully-qualified     # 🎮 E0.6 video game
 1F579 FE0F                                             ; fully-qualified     # 🕹️ E0.7 joystick
 1F579                                                  ; unqualified         # 🕹 E0.7 joystick
@@ -3882,6 +3987,7 @@
 1F9E9                                                  ; fully-qualified     # 🧩 E11.0 puzzle piece
 1F9F8                                                  ; fully-qualified     # 🧸 E11.0 teddy bear
 1FA85                                                  ; fully-qualified     # 🪅 E13.0 piñata
+1FAA9                                                  ; fully-qualified     # 🪩 E14.0 mirror ball
 1FA86                                                  ; fully-qualified     # 🪆 E13.0 nesting dolls
 2660 FE0F                                              ; fully-qualified     # ♠️ E0.6 spade suit
 2660                                                   ; unqualified         # ♠ E0.6 spade suit
@@ -3907,8 +4013,8 @@
 1F9F6                                                  ; fully-qualified     # 🧶 E11.0 yarn
 1FAA2                                                  ; fully-qualified     # 🪢 E13.0 knot
 
-# Activities subtotal:		95
-# Activities subtotal:		95	w/o modifiers
+# Activities subtotal:		97
+# Activities subtotal:		97	w/o modifiers
 
 # group: Objects
 
@@ -4009,6 +4115,7 @@
 
 # subgroup: computer
 1F50B                                                  ; fully-qualified     # 🔋 E0.6 battery
+1FAAB                                                  ; fully-qualified     # 🪫 E14.0 low battery
 1F50C                                                  ; fully-qualified     # 🔌 E0.6 electric plug
 1F4BB                                                  ; fully-qualified     # 💻 E0.6 laptop
 1F5A5 FE0F                                             ; fully-qualified     # 🖥️ E0.7 desktop computer
@@ -4207,7 +4314,9 @@
 1FA78                                                  ; fully-qualified     # 🩸 E12.0 drop of blood
 1F48A                                                  ; fully-qualified     # 💊 E0.6 pill
 1FA79                                                  ; fully-qualified     # 🩹 E12.0 adhesive bandage
+1FA7C                                                  ; fully-qualified     # 🩼 E14.0 crutch
 1FA7A                                                  ; fully-qualified     # 🩺 E12.0 stethoscope
+1FA7B                                                  ; fully-qualified     # 🩻 E14.0 x-ray
 
 # subgroup: household
 1F6AA                                                  ; fully-qualified     # 🚪 E0.6 door
@@ -4232,6 +4341,7 @@
 1F9FB                                                  ; fully-qualified     # 🧻 E11.0 roll of paper
 1FAA3                                                  ; fully-qualified     # 🪣 E13.0 bucket
 1F9FC                                                  ; fully-qualified     # 🧼 E11.0 soap
+1FAE7                                                  ; fully-qualified     # 🫧 E14.0 bubbles
 1FAA5                                                  ; fully-qualified     # 🪥 E13.0 toothbrush
 1F9FD                                                  ; fully-qualified     # 🧽 E11.0 sponge
 1F9EF                                                  ; fully-qualified     # 🧯 E11.0 fire extinguisher
@@ -4246,9 +4356,10 @@
 26B1                                                   ; unqualified         # ⚱ E1.0 funeral urn
 1F5FF                                                  ; fully-qualified     # 🗿 E0.6 moai
 1FAA7                                                  ; fully-qualified     # 🪧 E13.0 placard
+1FAAA                                                  ; fully-qualified     # 🪪 E14.0 identification card
 
-# Objects subtotal:		299
-# Objects subtotal:		299	w/o modifiers
+# Objects subtotal:		304
+# Objects subtotal:		304	w/o modifiers
 
 # group: Symbols
 
@@ -4409,6 +4520,7 @@
 2795                                                   ; fully-qualified     # ➕ E0.6 plus
 2796                                                   ; fully-qualified     # ➖ E0.6 minus
 2797                                                   ; fully-qualified     # ➗ E0.6 divide
+1F7F0                                                  ; fully-qualified     # 🟰 E14.0 heavy equals sign
 267E FE0F                                              ; fully-qualified     # ♾️ E11.0 infinity
 267E                                                   ; unqualified         # ♾ E11.0 infinity
 
@@ -4581,8 +4693,8 @@
 1F533                                                  ; fully-qualified     # 🔳 E0.6 white square button
 1F532                                                  ; fully-qualified     # 🔲 E0.6 black square button
 
-# Symbols subtotal:		301
-# Symbols subtotal:		301	w/o modifiers
+# Symbols subtotal:		302
+# Symbols subtotal:		302	w/o modifiers
 
 # group: Flags
 
@@ -4871,7 +4983,7 @@
 # Flags subtotal:		275	w/o modifiers
 
 # Status Counts
-# fully-qualified : 3512
+# fully-qualified : 3624
 # minimally-qualified : 817
 # unqualified : 252
 # component : 9
diff --git a/scripts/emoji_codegen.py b/scripts/emoji_codegen.py
index df581036..88f711f3 100755
--- a/scripts/emoji_codegen.py
+++ b/scripts/emoji_codegen.py
@@ -54,7 +54,7 @@ if __name__ == '__main__':
     }
 
     current_category = ''
-    for line in open(filename, 'r'):
+    for line in open(filename, 'r', encoding="utf8"):
         if line.startswith('# group:'):
             current_category = line.split(':', 1)[1].strip()
 
diff --git a/src/emoji/Provider.cpp b/src/emoji/Provider.cpp
index 70ac474e..d62eeee4 100644
--- a/src/emoji/Provider.cpp
+++ b/src/emoji/Provider.cpp
@@ -34,6 +34,7 @@ const QVector<Emoji> emoji::Provider::emoji = {
         "slightly smiling face",
         emoji::Emoji::Category::People},
   Emoji{QString::fromUtf8("\xf0\x9f\x99\x83"), "upside-down face", emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xa0"), "melting face", emoji::Emoji::Category::People},
   Emoji{QString::fromUtf8("\xf0\x9f\x98\x89"), "winking face", emoji::Emoji::Category::People},
   Emoji{QString::fromUtf8("\xf0\x9f\x98\x8a"),
         "smiling face with smiling eyes",
@@ -74,12 +75,21 @@ const QVector<Emoji> emoji::Provider::emoji = {
         "squinting face with tongue",
         emoji::Emoji::Category::People},
   Emoji{QString::fromUtf8("\xf0\x9f\xa4\x91"), "money-mouth face", emoji::Emoji::Category::People},
-  Emoji{QString::fromUtf8("\xf0\x9f\xa4\x97"), "hugging face", emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xa4\x97"),
+        "smiling face with open hands",
+        emoji::Emoji::Category::People},
   Emoji{QString::fromUtf8("\xf0\x9f\xa4\xad"),
         "face with hand over mouth",
         emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xa2"),
+        "face with open eyes and hand over mouth",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xa3"),
+        "face with peeking eye",
+        emoji::Emoji::Category::People},
   Emoji{QString::fromUtf8("\xf0\x9f\xa4\xab"), "shushing face", emoji::Emoji::Category::People},
   Emoji{QString::fromUtf8("\xf0\x9f\xa4\x94"), "thinking face", emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xa1"), "saluting face", emoji::Emoji::Category::People},
   Emoji{QString::fromUtf8("\xf0\x9f\xa4\x90"), "zipper-mouth face", emoji::Emoji::Category::People},
   Emoji{QString::fromUtf8("\xf0\x9f\xa4\xa8"),
         "face with raised eyebrow",
@@ -91,6 +101,7 @@ const QVector<Emoji> emoji::Provider::emoji = {
   Emoji{QString::fromUtf8("\xf0\x9f\x98\xb6"),
         "face without mouth",
         emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xa5"), "dotted line face", emoji::Emoji::Category::People},
   Emoji{QString::fromUtf8("\xf0\x9f\x98\xb6\xe2\x80\x8d\xf0\x9f\x8c\xab"),
         "face in clouds",
         emoji::Emoji::Category::People},
@@ -124,7 +135,9 @@ const QVector<Emoji> emoji::Provider::emoji = {
   Emoji{QString::fromUtf8("\xf0\x9f\xa5\xb5"), "hot face", emoji::Emoji::Category::People},
   Emoji{QString::fromUtf8("\xf0\x9f\xa5\xb6"), "cold face", emoji::Emoji::Category::People},
   Emoji{QString::fromUtf8("\xf0\x9f\xa5\xb4"), "woozy face", emoji::Emoji::Category::People},
-  Emoji{QString::fromUtf8("\xf0\x9f\x98\xb5"), "knocked-out face", emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\x98\xb5"),
+        "face with crossed-out eyes",
+        emoji::Emoji::Category::People},
   Emoji{QString::fromUtf8("\xf0\x9f\x98\xb5\xe2\x80\x8d\xf0\x9f\x92\xab"),
         "face with spiral eyes",
         emoji::Emoji::Category::People},
@@ -138,6 +151,9 @@ const QVector<Emoji> emoji::Provider::emoji = {
   Emoji{QString::fromUtf8("\xf0\x9f\xa4\x93"), "nerd face", emoji::Emoji::Category::People},
   Emoji{QString::fromUtf8("\xf0\x9f\xa7\x90"), "face with monocle", emoji::Emoji::Category::People},
   Emoji{QString::fromUtf8("\xf0\x9f\x98\x95"), "confused face", emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xa4"),
+        "face with diagonal mouth",
+        emoji::Emoji::Category::People},
   Emoji{QString::fromUtf8("\xf0\x9f\x98\x9f"), "worried face", emoji::Emoji::Category::People},
   Emoji{QString::fromUtf8("\xf0\x9f\x99\x81"),
         "slightly frowning face",
@@ -150,6 +166,9 @@ const QVector<Emoji> emoji::Provider::emoji = {
   Emoji{QString::fromUtf8("\xf0\x9f\x98\xb2"), "astonished face", emoji::Emoji::Category::People},
   Emoji{QString::fromUtf8("\xf0\x9f\x98\xb3"), "flushed face", emoji::Emoji::Category::People},
   Emoji{QString::fromUtf8("\xf0\x9f\xa5\xba"), "pleading face", emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xa5\xb9"),
+        "face holding back tears",
+        emoji::Emoji::Category::People},
   Emoji{QString::fromUtf8("\xf0\x9f\x98\xa6"),
         "frowning face with open mouth",
         emoji::Emoji::Category::People},
@@ -367,6 +386,70 @@ const QVector<Emoji> emoji::Provider::emoji = {
   Emoji{QString::fromUtf8("\xf0\x9f\x96\x96\xf0\x9f\x8f\xbf"),
         "vulcan salute: dark skin tone",
         emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xb1"), "rightwards hand", emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xb1\xf0\x9f\x8f\xbb"),
+        "rightwards hand: light skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xb1\xf0\x9f\x8f\xbc"),
+        "rightwards hand: medium-light skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xb1\xf0\x9f\x8f\xbd"),
+        "rightwards hand: medium skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xb1\xf0\x9f\x8f\xbe"),
+        "rightwards hand: medium-dark skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xb1\xf0\x9f\x8f\xbf"),
+        "rightwards hand: dark skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xb2"), "leftwards hand", emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xb2\xf0\x9f\x8f\xbb"),
+        "leftwards hand: light skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xb2\xf0\x9f\x8f\xbc"),
+        "leftwards hand: medium-light skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xb2\xf0\x9f\x8f\xbd"),
+        "leftwards hand: medium skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xb2\xf0\x9f\x8f\xbe"),
+        "leftwards hand: medium-dark skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xb2\xf0\x9f\x8f\xbf"),
+        "leftwards hand: dark skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xb3"), "palm down hand", emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xb3\xf0\x9f\x8f\xbb"),
+        "palm down hand: light skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xb3\xf0\x9f\x8f\xbc"),
+        "palm down hand: medium-light skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xb3\xf0\x9f\x8f\xbd"),
+        "palm down hand: medium skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xb3\xf0\x9f\x8f\xbe"),
+        "palm down hand: medium-dark skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xb3\xf0\x9f\x8f\xbf"),
+        "palm down hand: dark skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xb4"), "palm up hand", emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xb4\xf0\x9f\x8f\xbb"),
+        "palm up hand: light skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xb4\xf0\x9f\x8f\xbc"),
+        "palm up hand: medium-light skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xb4\xf0\x9f\x8f\xbd"),
+        "palm up hand: medium skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xb4\xf0\x9f\x8f\xbe"),
+        "palm up hand: medium-dark skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xb4\xf0\x9f\x8f\xbf"),
+        "palm up hand: dark skin tone",
+        emoji::Emoji::Category::People},
   Emoji{QString::fromUtf8("\xf0\x9f\x91\x8c"), "OK hand", emoji::Emoji::Category::People},
   Emoji{QString::fromUtf8("\xf0\x9f\x91\x8c\xf0\x9f\x8f\xbb"),
         "OK hand: light skin tone",
@@ -447,6 +530,24 @@ const QVector<Emoji> emoji::Provider::emoji = {
   Emoji{QString::fromUtf8("\xf0\x9f\xa4\x9e\xf0\x9f\x8f\xbf"),
         "crossed fingers: dark skin tone",
         emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xb0"),
+        "hand with index finger and thumb crossed",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xb0\xf0\x9f\x8f\xbb"),
+        "hand with index finger and thumb crossed: light skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xb0\xf0\x9f\x8f\xbc"),
+        "hand with index finger and thumb crossed: medium-light skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xb0\xf0\x9f\x8f\xbd"),
+        "hand with index finger and thumb crossed: medium skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xb0\xf0\x9f\x8f\xbe"),
+        "hand with index finger and thumb crossed: medium-dark skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xb0\xf0\x9f\x8f\xbf"),
+        "hand with index finger and thumb crossed: dark skin tone",
+        emoji::Emoji::Category::People},
   Emoji{QString::fromUtf8("\xf0\x9f\xa4\x9f"), "love-you gesture", emoji::Emoji::Category::People},
   Emoji{QString::fromUtf8("\xf0\x9f\xa4\x9f\xf0\x9f\x8f\xbb"),
         "love-you gesture: light skin tone",
@@ -599,6 +700,24 @@ const QVector<Emoji> emoji::Provider::emoji = {
   Emoji{QString::fromUtf8("\xe2\x98\x9d\xf0\x9f\x8f\xbf"),
         "index pointing up: dark skin tone",
         emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xb5"),
+        "index pointing at the viewer",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xb5\xf0\x9f\x8f\xbb"),
+        "index pointing at the viewer: light skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xb5\xf0\x9f\x8f\xbc"),
+        "index pointing at the viewer: medium-light skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xb5\xf0\x9f\x8f\xbd"),
+        "index pointing at the viewer: medium skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xb5\xf0\x9f\x8f\xbe"),
+        "index pointing at the viewer: medium-dark skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xb5\xf0\x9f\x8f\xbf"),
+        "index pointing at the viewer: dark skin tone",
+        emoji::Emoji::Category::People},
   Emoji{QString::fromUtf8("\xf0\x9f\x91\x8d"), "thumbs up", emoji::Emoji::Category::People},
   Emoji{QString::fromUtf8("\xf0\x9f\x91\x8d\xf0\x9f\x8f\xbb"),
         "thumbs up: light skin tone",
@@ -727,6 +846,22 @@ const QVector<Emoji> emoji::Provider::emoji = {
   Emoji{QString::fromUtf8("\xf0\x9f\x99\x8c\xf0\x9f\x8f\xbf"),
         "raising hands: dark skin tone",
         emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xb6"), "heart hands", emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xb6\xf0\x9f\x8f\xbb"),
+        "heart hands: light skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xb6\xf0\x9f\x8f\xbc"),
+        "heart hands: medium-light skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xb6\xf0\x9f\x8f\xbd"),
+        "heart hands: medium skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xb6\xf0\x9f\x8f\xbe"),
+        "heart hands: medium-dark skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xb6\xf0\x9f\x8f\xbf"),
+        "heart hands: dark skin tone",
+        emoji::Emoji::Category::People},
   Emoji{QString::fromUtf8("\xf0\x9f\x91\x90"), "open hands", emoji::Emoji::Category::People},
   Emoji{QString::fromUtf8("\xf0\x9f\x91\x90\xf0\x9f\x8f\xbb"),
         "open hands: light skin tone",
@@ -760,6 +895,101 @@ const QVector<Emoji> emoji::Provider::emoji = {
         "palms up together: dark skin tone",
         emoji::Emoji::Category::People},
   Emoji{QString::fromUtf8("\xf0\x9f\xa4\x9d"), "handshake", emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xa4\x9d\xf0\x9f\x8f\xbb"),
+        "handshake: light skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xa4\x9d\xf0\x9f\x8f\xbc"),
+        "handshake: medium-light skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xa4\x9d\xf0\x9f\x8f\xbd"),
+        "handshake: medium skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xa4\x9d\xf0\x9f\x8f\xbe"),
+        "handshake: medium-dark skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xa4\x9d\xf0\x9f\x8f\xbf"),
+        "handshake: dark skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8(
+          "\xf0\x9f\xab\xb1\xf0\x9f\x8f\xbb\xe2\x80\x8d\xf0\x9f\xab\xb2\xf0\x9f\x8f\xbc"),
+        "handshake: light skin tone, medium-light skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8(
+          "\xf0\x9f\xab\xb1\xf0\x9f\x8f\xbb\xe2\x80\x8d\xf0\x9f\xab\xb2\xf0\x9f\x8f\xbd"),
+        "handshake: light skin tone, medium skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8(
+          "\xf0\x9f\xab\xb1\xf0\x9f\x8f\xbb\xe2\x80\x8d\xf0\x9f\xab\xb2\xf0\x9f\x8f\xbe"),
+        "handshake: light skin tone, medium-dark skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8(
+          "\xf0\x9f\xab\xb1\xf0\x9f\x8f\xbb\xe2\x80\x8d\xf0\x9f\xab\xb2\xf0\x9f\x8f\xbf"),
+        "handshake: light skin tone, dark skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8(
+          "\xf0\x9f\xab\xb1\xf0\x9f\x8f\xbc\xe2\x80\x8d\xf0\x9f\xab\xb2\xf0\x9f\x8f\xbb"),
+        "handshake: medium-light skin tone, light skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8(
+          "\xf0\x9f\xab\xb1\xf0\x9f\x8f\xbc\xe2\x80\x8d\xf0\x9f\xab\xb2\xf0\x9f\x8f\xbd"),
+        "handshake: medium-light skin tone, medium skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8(
+          "\xf0\x9f\xab\xb1\xf0\x9f\x8f\xbc\xe2\x80\x8d\xf0\x9f\xab\xb2\xf0\x9f\x8f\xbe"),
+        "handshake: medium-light skin tone, medium-dark skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8(
+          "\xf0\x9f\xab\xb1\xf0\x9f\x8f\xbc\xe2\x80\x8d\xf0\x9f\xab\xb2\xf0\x9f\x8f\xbf"),
+        "handshake: medium-light skin tone, dark skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8(
+          "\xf0\x9f\xab\xb1\xf0\x9f\x8f\xbd\xe2\x80\x8d\xf0\x9f\xab\xb2\xf0\x9f\x8f\xbb"),
+        "handshake: medium skin tone, light skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8(
+          "\xf0\x9f\xab\xb1\xf0\x9f\x8f\xbd\xe2\x80\x8d\xf0\x9f\xab\xb2\xf0\x9f\x8f\xbc"),
+        "handshake: medium skin tone, medium-light skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8(
+          "\xf0\x9f\xab\xb1\xf0\x9f\x8f\xbd\xe2\x80\x8d\xf0\x9f\xab\xb2\xf0\x9f\x8f\xbe"),
+        "handshake: medium skin tone, medium-dark skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8(
+          "\xf0\x9f\xab\xb1\xf0\x9f\x8f\xbd\xe2\x80\x8d\xf0\x9f\xab\xb2\xf0\x9f\x8f\xbf"),
+        "handshake: medium skin tone, dark skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8(
+          "\xf0\x9f\xab\xb1\xf0\x9f\x8f\xbe\xe2\x80\x8d\xf0\x9f\xab\xb2\xf0\x9f\x8f\xbb"),
+        "handshake: medium-dark skin tone, light skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8(
+          "\xf0\x9f\xab\xb1\xf0\x9f\x8f\xbe\xe2\x80\x8d\xf0\x9f\xab\xb2\xf0\x9f\x8f\xbc"),
+        "handshake: medium-dark skin tone, medium-light skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8(
+          "\xf0\x9f\xab\xb1\xf0\x9f\x8f\xbe\xe2\x80\x8d\xf0\x9f\xab\xb2\xf0\x9f\x8f\xbd"),
+        "handshake: medium-dark skin tone, medium skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8(
+          "\xf0\x9f\xab\xb1\xf0\x9f\x8f\xbe\xe2\x80\x8d\xf0\x9f\xab\xb2\xf0\x9f\x8f\xbf"),
+        "handshake: medium-dark skin tone, dark skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8(
+          "\xf0\x9f\xab\xb1\xf0\x9f\x8f\xbf\xe2\x80\x8d\xf0\x9f\xab\xb2\xf0\x9f\x8f\xbb"),
+        "handshake: dark skin tone, light skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8(
+          "\xf0\x9f\xab\xb1\xf0\x9f\x8f\xbf\xe2\x80\x8d\xf0\x9f\xab\xb2\xf0\x9f\x8f\xbc"),
+        "handshake: dark skin tone, medium-light skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8(
+          "\xf0\x9f\xab\xb1\xf0\x9f\x8f\xbf\xe2\x80\x8d\xf0\x9f\xab\xb2\xf0\x9f\x8f\xbd"),
+        "handshake: dark skin tone, medium skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8(
+          "\xf0\x9f\xab\xb1\xf0\x9f\x8f\xbf\xe2\x80\x8d\xf0\x9f\xab\xb2\xf0\x9f\x8f\xbe"),
+        "handshake: dark skin tone, medium-dark skin tone",
+        emoji::Emoji::Category::People},
   Emoji{QString::fromUtf8("\xf0\x9f\x99\x8f"), "folded hands", emoji::Emoji::Category::People},
   Emoji{QString::fromUtf8("\xf0\x9f\x99\x8f\xf0\x9f\x8f\xbb"),
         "folded hands: light skin tone",
@@ -933,6 +1163,7 @@ const QVector<Emoji> emoji::Provider::emoji = {
   Emoji{QString::fromUtf8("\xf0\x9f\x91\x81"), "eye", emoji::Emoji::Category::People},
   Emoji{QString::fromUtf8("\xf0\x9f\x91\x85"), "tongue", emoji::Emoji::Category::People},
   Emoji{QString::fromUtf8("\xf0\x9f\x91\x84"), "mouth", emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xa6"), "biting lip", emoji::Emoji::Category::People},
   Emoji{QString::fromUtf8("\xf0\x9f\x91\xb6"), "baby", emoji::Emoji::Category::People},
   Emoji{QString::fromUtf8("\xf0\x9f\x91\xb6\xf0\x9f\x8f\xbb"),
         "baby: light skin tone",
@@ -3041,6 +3272,22 @@ const QVector<Emoji> emoji::Provider::emoji = {
   Emoji{QString::fromUtf8("\xf0\x9f\x91\xb7\xf0\x9f\x8f\xbf\xe2\x80\x8d\xe2\x99\x80"),
         "woman construction worker: dark skin tone",
         emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\x85"), "person with crown", emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\x85\xf0\x9f\x8f\xbb"),
+        "person with crown: light skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\x85\xf0\x9f\x8f\xbc"),
+        "person with crown: medium-light skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\x85\xf0\x9f\x8f\xbd"),
+        "person with crown: medium skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\x85\xf0\x9f\x8f\xbe"),
+        "person with crown: medium-dark skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\x85\xf0\x9f\x8f\xbf"),
+        "person with crown: dark skin tone",
+        emoji::Emoji::Category::People},
   Emoji{QString::fromUtf8("\xf0\x9f\xa4\xb4"), "prince", emoji::Emoji::Category::People},
   Emoji{QString::fromUtf8("\xf0\x9f\xa4\xb4\xf0\x9f\x8f\xbb"),
         "prince: light skin tone",
@@ -3283,6 +3530,38 @@ const QVector<Emoji> emoji::Provider::emoji = {
   Emoji{QString::fromUtf8("\xf0\x9f\xa4\xb0\xf0\x9f\x8f\xbf"),
         "pregnant woman: dark skin tone",
         emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\x83"), "pregnant man", emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\x83\xf0\x9f\x8f\xbb"),
+        "pregnant man: light skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\x83\xf0\x9f\x8f\xbc"),
+        "pregnant man: medium-light skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\x83\xf0\x9f\x8f\xbd"),
+        "pregnant man: medium skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\x83\xf0\x9f\x8f\xbe"),
+        "pregnant man: medium-dark skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\x83\xf0\x9f\x8f\xbf"),
+        "pregnant man: dark skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\x84"), "pregnant person", emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\x84\xf0\x9f\x8f\xbb"),
+        "pregnant person: light skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\x84\xf0\x9f\x8f\xbc"),
+        "pregnant person: medium-light skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\x84\xf0\x9f\x8f\xbd"),
+        "pregnant person: medium skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\x84\xf0\x9f\x8f\xbe"),
+        "pregnant person: medium-dark skin tone",
+        emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\x84\xf0\x9f\x8f\xbf"),
+        "pregnant person: dark skin tone",
+        emoji::Emoji::Category::People},
   Emoji{QString::fromUtf8("\xf0\x9f\xa4\xb1"), "breast-feeding", emoji::Emoji::Category::People},
   Emoji{QString::fromUtf8("\xf0\x9f\xa4\xb1\xf0\x9f\x8f\xbb"),
         "breast-feeding: light skin tone",
@@ -3797,6 +4076,7 @@ const QVector<Emoji> emoji::Provider::emoji = {
   Emoji{QString::fromUtf8("\xf0\x9f\xa7\x9f\xe2\x80\x8d\xe2\x99\x80"),
         "woman zombie",
         emoji::Emoji::Category::People},
+  Emoji{QString::fromUtf8("\xf0\x9f\xa7\x8c"), "troll", emoji::Emoji::Category::People},
   Emoji{QString::fromUtf8("\xf0\x9f\x92\x86"),
         "person getting massage",
         emoji::Emoji::Category::People},
@@ -7432,6 +7712,7 @@ const QVector<Emoji> emoji::Provider::emoji = {
   Emoji{QString::fromUtf8("\xf0\x9f\xa6\x88"), "shark", emoji::Emoji::Category::Nature},
   Emoji{QString::fromUtf8("\xf0\x9f\x90\x99"), "octopus", emoji::Emoji::Category::Nature},
   Emoji{QString::fromUtf8("\xf0\x9f\x90\x9a"), "spiral shell", emoji::Emoji::Category::Nature},
+  Emoji{QString::fromUtf8("\xf0\x9f\xaa\xb8"), "coral", emoji::Emoji::Category::Nature},
   Emoji{QString::fromUtf8("\xf0\x9f\x90\x8c"), "snail", emoji::Emoji::Category::Nature},
   Emoji{QString::fromUtf8("\xf0\x9f\xa6\x8b"), "butterfly", emoji::Emoji::Category::Nature},
   Emoji{QString::fromUtf8("\xf0\x9f\x90\x9b"), "bug", emoji::Emoji::Category::Nature},
@@ -7451,6 +7732,7 @@ const QVector<Emoji> emoji::Provider::emoji = {
   Emoji{QString::fromUtf8("\xf0\x9f\x92\x90"), "bouquet", emoji::Emoji::Category::Nature},
   Emoji{QString::fromUtf8("\xf0\x9f\x8c\xb8"), "cherry blossom", emoji::Emoji::Category::Nature},
   Emoji{QString::fromUtf8("\xf0\x9f\x92\xae"), "white flower", emoji::Emoji::Category::Nature},
+  Emoji{QString::fromUtf8("\xf0\x9f\xaa\xb7"), "lotus", emoji::Emoji::Category::Nature},
   Emoji{QString::fromUtf8("\xf0\x9f\x8f\xb5"), "rosette", emoji::Emoji::Category::Nature},
   Emoji{QString::fromUtf8("\xf0\x9f\x8c\xb9"), "rose", emoji::Emoji::Category::Nature},
   Emoji{QString::fromUtf8("\xf0\x9f\xa5\x80"), "wilted flower", emoji::Emoji::Category::Nature},
@@ -7473,6 +7755,8 @@ const QVector<Emoji> emoji::Provider::emoji = {
   Emoji{QString::fromUtf8("\xf0\x9f\x8d\x83"),
         "leaf fluttering in wind",
         emoji::Emoji::Category::Nature},
+  Emoji{QString::fromUtf8("\xf0\x9f\xaa\xb9"), "empty nest", emoji::Emoji::Category::Nature},
+  Emoji{QString::fromUtf8("\xf0\x9f\xaa\xba"), "nest with eggs", emoji::Emoji::Category::Nature},
   // Food
   Emoji{QString::fromUtf8("\xf0\x9f\x8d\x87"), "grapes", emoji::Emoji::Category::Food},
   Emoji{QString::fromUtf8("\xf0\x9f\x8d\x88"), "melon", emoji::Emoji::Category::Food},
@@ -7507,6 +7791,7 @@ const QVector<Emoji> emoji::Provider::emoji = {
   Emoji{QString::fromUtf8("\xf0\x9f\xa7\x85"), "onion", emoji::Emoji::Category::Food},
   Emoji{QString::fromUtf8("\xf0\x9f\x8d\x84"), "mushroom", emoji::Emoji::Category::Food},
   Emoji{QString::fromUtf8("\xf0\x9f\xa5\x9c"), "peanuts", emoji::Emoji::Category::Food},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\x98"), "beans", emoji::Emoji::Category::Food},
   Emoji{QString::fromUtf8("\xf0\x9f\x8c\xb0"), "chestnut", emoji::Emoji::Category::Food},
   Emoji{QString::fromUtf8("\xf0\x9f\x8d\x9e"), "bread", emoji::Emoji::Category::Food},
   Emoji{QString::fromUtf8("\xf0\x9f\xa5\x90"), "croissant", emoji::Emoji::Category::Food},
@@ -7600,6 +7885,7 @@ const QVector<Emoji> emoji::Provider::emoji = {
   Emoji{QString::fromUtf8("\xf0\x9f\x8d\xbb"), "clinking beer mugs", emoji::Emoji::Category::Food},
   Emoji{QString::fromUtf8("\xf0\x9f\xa5\x82"), "clinking glasses", emoji::Emoji::Category::Food},
   Emoji{QString::fromUtf8("\xf0\x9f\xa5\x83"), "tumbler glass", emoji::Emoji::Category::Food},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\x97"), "pouring liquid", emoji::Emoji::Category::Food},
   Emoji{QString::fromUtf8("\xf0\x9f\xa5\xa4"), "cup with straw", emoji::Emoji::Category::Food},
   Emoji{QString::fromUtf8("\xf0\x9f\xa7\x8b"), "bubble tea", emoji::Emoji::Category::Food},
   Emoji{QString::fromUtf8("\xf0\x9f\xa7\x83"), "beverage box", emoji::Emoji::Category::Food},
@@ -7612,6 +7898,7 @@ const QVector<Emoji> emoji::Provider::emoji = {
   Emoji{QString::fromUtf8("\xf0\x9f\x8d\xb4"), "fork and knife", emoji::Emoji::Category::Food},
   Emoji{QString::fromUtf8("\xf0\x9f\xa5\x84"), "spoon", emoji::Emoji::Category::Food},
   Emoji{QString::fromUtf8("\xf0\x9f\x94\xaa"), "kitchen knife", emoji::Emoji::Category::Food},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\x99"), "jar", emoji::Emoji::Category::Food},
   Emoji{QString::fromUtf8("\xf0\x9f\x8f\xba"), "amphora", emoji::Emoji::Category::Food},
   // Activity
   Emoji{QString::fromUtf8("\xf0\x9f\x8e\x83"), "jack-o-lantern", emoji::Emoji::Category::Activity},
@@ -7683,13 +7970,15 @@ const QVector<Emoji> emoji::Provider::emoji = {
   Emoji{QString::fromUtf8("\xf0\x9f\x94\xae"), "crystal ball", emoji::Emoji::Category::Activity},
   Emoji{QString::fromUtf8("\xf0\x9f\xaa\x84"), "magic wand", emoji::Emoji::Category::Activity},
   Emoji{QString::fromUtf8("\xf0\x9f\xa7\xbf"), "nazar amulet", emoji::Emoji::Category::Activity},
+  Emoji{QString::fromUtf8("\xf0\x9f\xaa\xac"), "hamsa", emoji::Emoji::Category::Activity},
   Emoji{QString::fromUtf8("\xf0\x9f\x8e\xae"), "video game", emoji::Emoji::Category::Activity},
   Emoji{QString::fromUtf8("\xf0\x9f\x95\xb9"), "joystick", emoji::Emoji::Category::Activity},
   Emoji{QString::fromUtf8("\xf0\x9f\x8e\xb0"), "slot machine", emoji::Emoji::Category::Activity},
   Emoji{QString::fromUtf8("\xf0\x9f\x8e\xb2"), "game die", emoji::Emoji::Category::Activity},
   Emoji{QString::fromUtf8("\xf0\x9f\xa7\xa9"), "puzzle piece", emoji::Emoji::Category::Activity},
   Emoji{QString::fromUtf8("\xf0\x9f\xa7\xb8"), "teddy bear", emoji::Emoji::Category::Activity},
-  Emoji{QString::fromUtf8("\xf0\x9f\xaa\x85"), "piñata", emoji::Emoji::Category::Activity},
+  Emoji{QString::fromUtf8("\xf0\x9f\xaa\x85"), "pi�ata", emoji::Emoji::Category::Activity},
+  Emoji{QString::fromUtf8("\xf0\x9f\xaa\xa9"), "mirror ball", emoji::Emoji::Category::Activity},
   Emoji{QString::fromUtf8("\xf0\x9f\xaa\x86"), "nesting dolls", emoji::Emoji::Category::Activity},
   Emoji{QString::fromUtf8("\xe2\x99\xa0"), "spade suit", emoji::Emoji::Category::Activity},
   Emoji{QString::fromUtf8("\xe2\x99\xa5"), "heart suit", emoji::Emoji::Category::Activity},
@@ -7792,6 +8081,7 @@ const QVector<Emoji> emoji::Provider::emoji = {
   Emoji{QString::fromUtf8("\xf0\x9f\x8c\x89"), "bridge at night", emoji::Emoji::Category::Travel},
   Emoji{QString::fromUtf8("\xe2\x99\xa8"), "hot springs", emoji::Emoji::Category::Travel},
   Emoji{QString::fromUtf8("\xf0\x9f\x8e\xa0"), "carousel horse", emoji::Emoji::Category::Travel},
+  Emoji{QString::fromUtf8("\xf0\x9f\x9b\x9d"), "playground slide", emoji::Emoji::Category::Travel},
   Emoji{QString::fromUtf8("\xf0\x9f\x8e\xa1"), "ferris wheel", emoji::Emoji::Category::Travel},
   Emoji{QString::fromUtf8("\xf0\x9f\x8e\xa2"), "roller coaster", emoji::Emoji::Category::Travel},
   Emoji{QString::fromUtf8("\xf0\x9f\x92\x88"), "barber pole", emoji::Emoji::Category::Travel},
@@ -7848,6 +8138,7 @@ const QVector<Emoji> emoji::Provider::emoji = {
   Emoji{QString::fromUtf8("\xf0\x9f\x9b\xa4"), "railway track", emoji::Emoji::Category::Travel},
   Emoji{QString::fromUtf8("\xf0\x9f\x9b\xa2"), "oil drum", emoji::Emoji::Category::Travel},
   Emoji{QString::fromUtf8("\xe2\x9b\xbd"), "fuel pump", emoji::Emoji::Category::Travel},
+  Emoji{QString::fromUtf8("\xf0\x9f\x9b\x9e"), "wheel", emoji::Emoji::Category::Travel},
   Emoji{QString::fromUtf8("\xf0\x9f\x9a\xa8"), "police car light", emoji::Emoji::Category::Travel},
   Emoji{QString::fromUtf8("\xf0\x9f\x9a\xa5"),
         "horizontal traffic light",
@@ -7858,6 +8149,7 @@ const QVector<Emoji> emoji::Provider::emoji = {
   Emoji{QString::fromUtf8("\xf0\x9f\x9b\x91"), "stop sign", emoji::Emoji::Category::Travel},
   Emoji{QString::fromUtf8("\xf0\x9f\x9a\xa7"), "construction", emoji::Emoji::Category::Travel},
   Emoji{QString::fromUtf8("\xe2\x9a\x93"), "anchor", emoji::Emoji::Category::Travel},
+  Emoji{QString::fromUtf8("\xf0\x9f\x9b\x9f"), "ring buoy", emoji::Emoji::Category::Travel},
   Emoji{QString::fromUtf8("\xe2\x9b\xb5"), "sailboat", emoji::Emoji::Category::Travel},
   Emoji{QString::fromUtf8("\xf0\x9f\x9b\xb6"), "canoe", emoji::Emoji::Category::Travel},
   Emoji{QString::fromUtf8("\xf0\x9f\x9a\xa4"), "speedboat", emoji::Emoji::Category::Travel},
@@ -7891,29 +8183,29 @@ const QVector<Emoji> emoji::Provider::emoji = {
   Emoji{QString::fromUtf8("\xe2\x8f\xb1"), "stopwatch", emoji::Emoji::Category::Travel},
   Emoji{QString::fromUtf8("\xe2\x8f\xb2"), "timer clock", emoji::Emoji::Category::Travel},
   Emoji{QString::fromUtf8("\xf0\x9f\x95\xb0"), "mantelpiece clock", emoji::Emoji::Category::Travel},
-  Emoji{QString::fromUtf8("\xf0\x9f\x95\x9b"), "twelve o’clock", emoji::Emoji::Category::Travel},
+  Emoji{QString::fromUtf8("\xf0\x9f\x95\x9b"), "twelve o�clock", emoji::Emoji::Category::Travel},
   Emoji{QString::fromUtf8("\xf0\x9f\x95\xa7"), "twelve-thirty", emoji::Emoji::Category::Travel},
-  Emoji{QString::fromUtf8("\xf0\x9f\x95\x90"), "one o’clock", emoji::Emoji::Category::Travel},
+  Emoji{QString::fromUtf8("\xf0\x9f\x95\x90"), "one o�clock", emoji::Emoji::Category::Travel},
   Emoji{QString::fromUtf8("\xf0\x9f\x95\x9c"), "one-thirty", emoji::Emoji::Category::Travel},
-  Emoji{QString::fromUtf8("\xf0\x9f\x95\x91"), "two o’clock", emoji::Emoji::Category::Travel},
+  Emoji{QString::fromUtf8("\xf0\x9f\x95\x91"), "two o�clock", emoji::Emoji::Category::Travel},
   Emoji{QString::fromUtf8("\xf0\x9f\x95\x9d"), "two-thirty", emoji::Emoji::Category::Travel},
-  Emoji{QString::fromUtf8("\xf0\x9f\x95\x92"), "three o’clock", emoji::Emoji::Category::Travel},
+  Emoji{QString::fromUtf8("\xf0\x9f\x95\x92"), "three o�clock", emoji::Emoji::Category::Travel},
   Emoji{QString::fromUtf8("\xf0\x9f\x95\x9e"), "three-thirty", emoji::Emoji::Category::Travel},
-  Emoji{QString::fromUtf8("\xf0\x9f\x95\x93"), "four o’clock", emoji::Emoji::Category::Travel},
+  Emoji{QString::fromUtf8("\xf0\x9f\x95\x93"), "four o�clock", emoji::Emoji::Category::Travel},
   Emoji{QString::fromUtf8("\xf0\x9f\x95\x9f"), "four-thirty", emoji::Emoji::Category::Travel},
-  Emoji{QString::fromUtf8("\xf0\x9f\x95\x94"), "five o’clock", emoji::Emoji::Category::Travel},
+  Emoji{QString::fromUtf8("\xf0\x9f\x95\x94"), "five o�clock", emoji::Emoji::Category::Travel},
   Emoji{QString::fromUtf8("\xf0\x9f\x95\xa0"), "five-thirty", emoji::Emoji::Category::Travel},
-  Emoji{QString::fromUtf8("\xf0\x9f\x95\x95"), "six o’clock", emoji::Emoji::Category::Travel},
+  Emoji{QString::fromUtf8("\xf0\x9f\x95\x95"), "six o�clock", emoji::Emoji::Category::Travel},
   Emoji{QString::fromUtf8("\xf0\x9f\x95\xa1"), "six-thirty", emoji::Emoji::Category::Travel},
-  Emoji{QString::fromUtf8("\xf0\x9f\x95\x96"), "seven o’clock", emoji::Emoji::Category::Travel},
+  Emoji{QString::fromUtf8("\xf0\x9f\x95\x96"), "seven o�clock", emoji::Emoji::Category::Travel},
   Emoji{QString::fromUtf8("\xf0\x9f\x95\xa2"), "seven-thirty", emoji::Emoji::Category::Travel},
-  Emoji{QString::fromUtf8("\xf0\x9f\x95\x97"), "eight o’clock", emoji::Emoji::Category::Travel},
+  Emoji{QString::fromUtf8("\xf0\x9f\x95\x97"), "eight o�clock", emoji::Emoji::Category::Travel},
   Emoji{QString::fromUtf8("\xf0\x9f\x95\xa3"), "eight-thirty", emoji::Emoji::Category::Travel},
-  Emoji{QString::fromUtf8("\xf0\x9f\x95\x98"), "nine o’clock", emoji::Emoji::Category::Travel},
+  Emoji{QString::fromUtf8("\xf0\x9f\x95\x98"), "nine o�clock", emoji::Emoji::Category::Travel},
   Emoji{QString::fromUtf8("\xf0\x9f\x95\xa4"), "nine-thirty", emoji::Emoji::Category::Travel},
-  Emoji{QString::fromUtf8("\xf0\x9f\x95\x99"), "ten o’clock", emoji::Emoji::Category::Travel},
+  Emoji{QString::fromUtf8("\xf0\x9f\x95\x99"), "ten o�clock", emoji::Emoji::Category::Travel},
   Emoji{QString::fromUtf8("\xf0\x9f\x95\xa5"), "ten-thirty", emoji::Emoji::Category::Travel},
-  Emoji{QString::fromUtf8("\xf0\x9f\x95\x9a"), "eleven o’clock", emoji::Emoji::Category::Travel},
+  Emoji{QString::fromUtf8("\xf0\x9f\x95\x9a"), "eleven o�clock", emoji::Emoji::Category::Travel},
   Emoji{QString::fromUtf8("\xf0\x9f\x95\xa6"), "eleven-thirty", emoji::Emoji::Category::Travel},
   Emoji{QString::fromUtf8("\xf0\x9f\x8c\x91"), "new moon", emoji::Emoji::Category::Travel},
   Emoji{QString::fromUtf8("\xf0\x9f\x8c\x92"),
@@ -8010,29 +8302,29 @@ const QVector<Emoji> emoji::Provider::emoji = {
   Emoji{QString::fromUtf8("\xf0\x9f\xa9\xb2"), "briefs", emoji::Emoji::Category::Objects},
   Emoji{QString::fromUtf8("\xf0\x9f\xa9\xb3"), "shorts", emoji::Emoji::Category::Objects},
   Emoji{QString::fromUtf8("\xf0\x9f\x91\x99"), "bikini", emoji::Emoji::Category::Objects},
-  Emoji{QString::fromUtf8("\xf0\x9f\x91\x9a"), "woman’s clothes", emoji::Emoji::Category::Objects},
+  Emoji{QString::fromUtf8("\xf0\x9f\x91\x9a"), "woman�s clothes", emoji::Emoji::Category::Objects},
   Emoji{QString::fromUtf8("\xf0\x9f\x91\x9b"), "purse", emoji::Emoji::Category::Objects},
   Emoji{QString::fromUtf8("\xf0\x9f\x91\x9c"), "handbag", emoji::Emoji::Category::Objects},
   Emoji{QString::fromUtf8("\xf0\x9f\x91\x9d"), "clutch bag", emoji::Emoji::Category::Objects},
   Emoji{QString::fromUtf8("\xf0\x9f\x9b\x8d"), "shopping bags", emoji::Emoji::Category::Objects},
   Emoji{QString::fromUtf8("\xf0\x9f\x8e\x92"), "backpack", emoji::Emoji::Category::Objects},
   Emoji{QString::fromUtf8("\xf0\x9f\xa9\xb4"), "thong sandal", emoji::Emoji::Category::Objects},
-  Emoji{QString::fromUtf8("\xf0\x9f\x91\x9e"), "man’s shoe", emoji::Emoji::Category::Objects},
+  Emoji{QString::fromUtf8("\xf0\x9f\x91\x9e"), "man�s shoe", emoji::Emoji::Category::Objects},
   Emoji{QString::fromUtf8("\xf0\x9f\x91\x9f"), "running shoe", emoji::Emoji::Category::Objects},
   Emoji{QString::fromUtf8("\xf0\x9f\xa5\xbe"), "hiking boot", emoji::Emoji::Category::Objects},
   Emoji{QString::fromUtf8("\xf0\x9f\xa5\xbf"), "flat shoe", emoji::Emoji::Category::Objects},
   Emoji{QString::fromUtf8("\xf0\x9f\x91\xa0"), "high-heeled shoe", emoji::Emoji::Category::Objects},
-  Emoji{QString::fromUtf8("\xf0\x9f\x91\xa1"), "woman’s sandal", emoji::Emoji::Category::Objects},
+  Emoji{QString::fromUtf8("\xf0\x9f\x91\xa1"), "woman�s sandal", emoji::Emoji::Category::Objects},
   Emoji{QString::fromUtf8("\xf0\x9f\xa9\xb0"), "ballet shoes", emoji::Emoji::Category::Objects},
-  Emoji{QString::fromUtf8("\xf0\x9f\x91\xa2"), "woman’s boot", emoji::Emoji::Category::Objects},
+  Emoji{QString::fromUtf8("\xf0\x9f\x91\xa2"), "woman�s boot", emoji::Emoji::Category::Objects},
   Emoji{QString::fromUtf8("\xf0\x9f\x91\x91"), "crown", emoji::Emoji::Category::Objects},
-  Emoji{QString::fromUtf8("\xf0\x9f\x91\x92"), "woman’s hat", emoji::Emoji::Category::Objects},
+  Emoji{QString::fromUtf8("\xf0\x9f\x91\x92"), "woman�s hat", emoji::Emoji::Category::Objects},
   Emoji{QString::fromUtf8("\xf0\x9f\x8e\xa9"), "top hat", emoji::Emoji::Category::Objects},
   Emoji{QString::fromUtf8("\xf0\x9f\x8e\x93"), "graduation cap", emoji::Emoji::Category::Objects},
   Emoji{QString::fromUtf8("\xf0\x9f\xa7\xa2"), "billed cap", emoji::Emoji::Category::Objects},
   Emoji{QString::fromUtf8("\xf0\x9f\xaa\x96"), "military helmet", emoji::Emoji::Category::Objects},
   Emoji{QString::fromUtf8("\xe2\x9b\x91"),
-        "rescue worker’s helmet",
+        "rescue worker�s helmet",
         emoji::Emoji::Category::Objects},
   Emoji{QString::fromUtf8("\xf0\x9f\x93\xbf"), "prayer beads", emoji::Emoji::Category::Objects},
   Emoji{QString::fromUtf8("\xf0\x9f\x92\x84"), "lipstick", emoji::Emoji::Category::Objects},
@@ -8084,6 +8376,7 @@ const QVector<Emoji> emoji::Provider::emoji = {
   Emoji{QString::fromUtf8("\xf0\x9f\x93\x9f"), "pager", emoji::Emoji::Category::Objects},
   Emoji{QString::fromUtf8("\xf0\x9f\x93\xa0"), "fax machine", emoji::Emoji::Category::Objects},
   Emoji{QString::fromUtf8("\xf0\x9f\x94\x8b"), "battery", emoji::Emoji::Category::Objects},
+  Emoji{QString::fromUtf8("\xf0\x9f\xaa\xab"), "low battery", emoji::Emoji::Category::Objects},
   Emoji{QString::fromUtf8("\xf0\x9f\x94\x8c"), "electric plug", emoji::Emoji::Category::Objects},
   Emoji{QString::fromUtf8("\xf0\x9f\x92\xbb"), "laptop", emoji::Emoji::Category::Objects},
   Emoji{QString::fromUtf8("\xf0\x9f\x96\xa5"), "desktop computer", emoji::Emoji::Category::Objects},
@@ -8262,7 +8555,9 @@ const QVector<Emoji> emoji::Provider::emoji = {
   Emoji{QString::fromUtf8("\xf0\x9f\xa9\xb8"), "drop of blood", emoji::Emoji::Category::Objects},
   Emoji{QString::fromUtf8("\xf0\x9f\x92\x8a"), "pill", emoji::Emoji::Category::Objects},
   Emoji{QString::fromUtf8("\xf0\x9f\xa9\xb9"), "adhesive bandage", emoji::Emoji::Category::Objects},
+  Emoji{QString::fromUtf8("\xf0\x9f\xa9\xbc"), "crutch", emoji::Emoji::Category::Objects},
   Emoji{QString::fromUtf8("\xf0\x9f\xa9\xba"), "stethoscope", emoji::Emoji::Category::Objects},
+  Emoji{QString::fromUtf8("\xf0\x9f\xa9\xbb"), "x-ray", emoji::Emoji::Category::Objects},
   Emoji{QString::fromUtf8("\xf0\x9f\x9a\xaa"), "door", emoji::Emoji::Category::Objects},
   Emoji{QString::fromUtf8("\xf0\x9f\x9b\x97"), "elevator", emoji::Emoji::Category::Objects},
   Emoji{QString::fromUtf8("\xf0\x9f\xaa\x9e"), "mirror", emoji::Emoji::Category::Objects},
@@ -8283,6 +8578,7 @@ const QVector<Emoji> emoji::Provider::emoji = {
   Emoji{QString::fromUtf8("\xf0\x9f\xa7\xbb"), "roll of paper", emoji::Emoji::Category::Objects},
   Emoji{QString::fromUtf8("\xf0\x9f\xaa\xa3"), "bucket", emoji::Emoji::Category::Objects},
   Emoji{QString::fromUtf8("\xf0\x9f\xa7\xbc"), "soap", emoji::Emoji::Category::Objects},
+  Emoji{QString::fromUtf8("\xf0\x9f\xab\xa7"), "bubbles", emoji::Emoji::Category::Objects},
   Emoji{QString::fromUtf8("\xf0\x9f\xaa\xa5"), "toothbrush", emoji::Emoji::Category::Objects},
   Emoji{QString::fromUtf8("\xf0\x9f\xa7\xbd"), "sponge", emoji::Emoji::Category::Objects},
   Emoji{QString::fromUtf8("\xf0\x9f\xa7\xaf"),
@@ -8295,6 +8591,9 @@ const QVector<Emoji> emoji::Provider::emoji = {
   Emoji{QString::fromUtf8("\xe2\x9a\xb1"), "funeral urn", emoji::Emoji::Category::Objects},
   Emoji{QString::fromUtf8("\xf0\x9f\x97\xbf"), "moai", emoji::Emoji::Category::Objects},
   Emoji{QString::fromUtf8("\xf0\x9f\xaa\xa7"), "placard", emoji::Emoji::Category::Objects},
+  Emoji{QString::fromUtf8("\xf0\x9f\xaa\xaa"),
+        "identification card",
+        emoji::Emoji::Category::Objects},
   // Symbols
   Emoji{QString::fromUtf8("\xf0\x9f\x8f\xa7"), "ATM sign", emoji::Emoji::Category::Symbols},
   Emoji{QString::fromUtf8("\xf0\x9f\x9a\xae"),
@@ -8302,8 +8601,8 @@ const QVector<Emoji> emoji::Provider::emoji = {
         emoji::Emoji::Category::Symbols},
   Emoji{QString::fromUtf8("\xf0\x9f\x9a\xb0"), "potable water", emoji::Emoji::Category::Symbols},
   Emoji{QString::fromUtf8("\xe2\x99\xbf"), "wheelchair symbol", emoji::Emoji::Category::Symbols},
-  Emoji{QString::fromUtf8("\xf0\x9f\x9a\xb9"), "men’s room", emoji::Emoji::Category::Symbols},
-  Emoji{QString::fromUtf8("\xf0\x9f\x9a\xba"), "women’s room", emoji::Emoji::Category::Symbols},
+  Emoji{QString::fromUtf8("\xf0\x9f\x9a\xb9"), "men�s room", emoji::Emoji::Category::Symbols},
+  Emoji{QString::fromUtf8("\xf0\x9f\x9a\xba"), "women�s room", emoji::Emoji::Category::Symbols},
   Emoji{QString::fromUtf8("\xf0\x9f\x9a\xbb"), "restroom", emoji::Emoji::Category::Symbols},
   Emoji{QString::fromUtf8("\xf0\x9f\x9a\xbc"), "baby symbol", emoji::Emoji::Category::Symbols},
   Emoji{QString::fromUtf8("\xf0\x9f\x9a\xbe"), "water closet", emoji::Emoji::Category::Symbols},
@@ -8425,6 +8724,9 @@ const QVector<Emoji> emoji::Provider::emoji = {
   Emoji{QString::fromUtf8("\xe2\x9e\x95"), "plus", emoji::Emoji::Category::Symbols},
   Emoji{QString::fromUtf8("\xe2\x9e\x96"), "minus", emoji::Emoji::Category::Symbols},
   Emoji{QString::fromUtf8("\xe2\x9e\x97"), "divide", emoji::Emoji::Category::Symbols},
+  Emoji{QString::fromUtf8("\xf0\x9f\x9f\xb0"),
+        "heavy equals sign",
+        emoji::Emoji::Category::Symbols},
   Emoji{QString::fromUtf8("\xe2\x99\xbe"), "infinity", emoji::Emoji::Category::Symbols},
   Emoji{QString::fromUtf8("\xe2\x80\xbc"),
         "double exclamation mark",
@@ -8558,55 +8860,55 @@ const QVector<Emoji> emoji::Provider::emoji = {
   Emoji{QString::fromUtf8("\xf0\x9f\x86\x99"), "UP! button", emoji::Emoji::Category::Symbols},
   Emoji{QString::fromUtf8("\xf0\x9f\x86\x9a"), "VS button", emoji::Emoji::Category::Symbols},
   Emoji{QString::fromUtf8("\xf0\x9f\x88\x81"),
-        "Japanese “here” button",
+        "Japanese �here� button",
         emoji::Emoji::Category::Symbols},
   Emoji{QString::fromUtf8("\xf0\x9f\x88\x82"),
-        "Japanese “service charge” button",
+        "Japanese �service charge� button",
         emoji::Emoji::Category::Symbols},
   Emoji{QString::fromUtf8("\xf0\x9f\x88\xb7"),
-        "Japanese “monthly amount” button",
+        "Japanese �monthly amount� button",
         emoji::Emoji::Category::Symbols},
   Emoji{QString::fromUtf8("\xf0\x9f\x88\xb6"),
-        "Japanese “not free of charge” button",
+        "Japanese �not free of charge� button",
         emoji::Emoji::Category::Symbols},
   Emoji{QString::fromUtf8("\xf0\x9f\x88\xaf"),
-        "Japanese “reserved” button",
+        "Japanese �reserved� button",
         emoji::Emoji::Category::Symbols},
   Emoji{QString::fromUtf8("\xf0\x9f\x89\x90"),
-        "Japanese “bargain” button",
+        "Japanese �bargain� button",
         emoji::Emoji::Category::Symbols},
   Emoji{QString::fromUtf8("\xf0\x9f\x88\xb9"),
-        "Japanese “discount” button",
+        "Japanese �discount� button",
         emoji::Emoji::Category::Symbols},
   Emoji{QString::fromUtf8("\xf0\x9f\x88\x9a"),
-        "Japanese “free of charge” button",
+        "Japanese �free of charge� button",
         emoji::Emoji::Category::Symbols},
   Emoji{QString::fromUtf8("\xf0\x9f\x88\xb2"),
-        "Japanese “prohibited” button",
+        "Japanese �prohibited� button",
         emoji::Emoji::Category::Symbols},
   Emoji{QString::fromUtf8("\xf0\x9f\x89\x91"),
-        "Japanese “acceptable” button",
+        "Japanese �acceptable� button",
         emoji::Emoji::Category::Symbols},
   Emoji{QString::fromUtf8("\xf0\x9f\x88\xb8"),
-        "Japanese “application” button",
+        "Japanese �application� button",
         emoji::Emoji::Category::Symbols},
   Emoji{QString::fromUtf8("\xf0\x9f\x88\xb4"),
-        "Japanese “passing grade” button",
+        "Japanese �passing grade� button",
         emoji::Emoji::Category::Symbols},
   Emoji{QString::fromUtf8("\xf0\x9f\x88\xb3"),
-        "Japanese “vacancy” button",
+        "Japanese �vacancy� button",
         emoji::Emoji::Category::Symbols},
   Emoji{QString::fromUtf8("\xe3\x8a\x97"),
-        "Japanese “congratulations” button",
+        "Japanese �congratulations� button",
         emoji::Emoji::Category::Symbols},
   Emoji{QString::fromUtf8("\xe3\x8a\x99"),
-        "Japanese “secret” button",
+        "Japanese �secret� button",
         emoji::Emoji::Category::Symbols},
   Emoji{QString::fromUtf8("\xf0\x9f\x88\xba"),
-        "Japanese “open for business” button",
+        "Japanese �open for business� button",
         emoji::Emoji::Category::Symbols},
   Emoji{QString::fromUtf8("\xf0\x9f\x88\xb5"),
-        "Japanese “no vacancy” button",
+        "Japanese �no vacancy� button",
         emoji::Emoji::Category::Symbols},
   Emoji{QString::fromUtf8("\xf0\x9f\x94\xb4"), "red circle", emoji::Emoji::Category::Symbols},
   Emoji{QString::fromUtf8("\xf0\x9f\x9f\xa0"), "orange circle", emoji::Emoji::Category::Symbols},
@@ -8731,7 +9033,7 @@ const QVector<Emoji> emoji::Provider::emoji = {
         "flag: Aruba",
         emoji::Emoji::Category::Flags},
   Emoji{QString::fromUtf8("\xf0\x9f\x87\xa6\xf0\x9f\x87\xbd"),
-        "flag: Åland Islands",
+        "flag: �land Islands",
         emoji::Emoji::Category::Flags},
   Emoji{QString::fromUtf8("\xf0\x9f\x87\xa6\xf0\x9f\x87\xbf"),
         "flag: Azerbaijan",
@@ -8764,7 +9066,7 @@ const QVector<Emoji> emoji::Provider::emoji = {
         "flag: Benin",
         emoji::Emoji::Category::Flags},
   Emoji{QString::fromUtf8("\xf0\x9f\x87\xa7\xf0\x9f\x87\xb1"),
-        "flag: St. Barthélemy",
+        "flag: St. Barth�lemy",
         emoji::Emoji::Category::Flags},
   Emoji{QString::fromUtf8("\xf0\x9f\x87\xa7\xf0\x9f\x87\xb2"),
         "flag: Bermuda",
@@ -8818,7 +9120,7 @@ const QVector<Emoji> emoji::Provider::emoji = {
         "flag: Switzerland",
         emoji::Emoji::Category::Flags},
   Emoji{QString::fromUtf8("\xf0\x9f\x87\xa8\xf0\x9f\x87\xae"),
-        "flag: Côte d’Ivoire",
+        "flag: C�te d�Ivoire",
         emoji::Emoji::Category::Flags},
   Emoji{QString::fromUtf8("\xf0\x9f\x87\xa8\xf0\x9f\x87\xb0"),
         "flag: Cook Islands",
@@ -8848,7 +9150,7 @@ const QVector<Emoji> emoji::Provider::emoji = {
         "flag: Cape Verde",
         emoji::Emoji::Category::Flags},
   Emoji{QString::fromUtf8("\xf0\x9f\x87\xa8\xf0\x9f\x87\xbc"),
-        "flag: Curaçao",
+        "flag: Cura�ao",
         emoji::Emoji::Category::Flags},
   Emoji{QString::fromUtf8("\xf0\x9f\x87\xa8\xf0\x9f\x87\xbd"),
         "flag: Christmas Island",
@@ -9265,7 +9567,7 @@ const QVector<Emoji> emoji::Provider::emoji = {
         "flag: Qatar",
         emoji::Emoji::Category::Flags},
   Emoji{QString::fromUtf8("\xf0\x9f\x87\xb7\xf0\x9f\x87\xaa"),
-        "flag: Réunion",
+        "flag: R�union",
         emoji::Emoji::Category::Flags},
   Emoji{QString::fromUtf8("\xf0\x9f\x87\xb7\xf0\x9f\x87\xb4"),
         "flag: Romania",
@@ -9328,7 +9630,7 @@ const QVector<Emoji> emoji::Provider::emoji = {
         "flag: South Sudan",
         emoji::Emoji::Category::Flags},
   Emoji{QString::fromUtf8("\xf0\x9f\x87\xb8\xf0\x9f\x87\xb9"),
-        "flag: São Tomé & Príncipe",
+        "flag: S�o Tom� & Pr�ncipe",
         emoji::Emoji::Category::Flags},
   Emoji{QString::fromUtf8("\xf0\x9f\x87\xb8\xf0\x9f\x87\xbb"),
         "flag: El Salvador",
@@ -9471,4 +9773,4 @@ const QVector<Emoji> emoji::Provider::emoji = {
                           "\x81\xac\xf3\xa0\x81\xb3\xf3\xa0\x81\xbf"),
         "flag: Wales",
         emoji::Emoji::Category::Flags},
-};
+};
\ No newline at end of file