diff --git a/client/cmdhf.c b/client/cmdhf.c index 35b50b852..418cc8b90 100644 --- a/client/cmdhf.c +++ b/client/cmdhf.c @@ -178,7 +178,7 @@ int CmdHFTune(const char *Cmd) { if (cmdp == 'h') return usage_hf_tune(); int iter = param_get32ex(Cmd, 0, 0, 10); - PrintAndLogEx(SUCCESS, "Measuring HF antenna, click " _GREEN_("pm3 button") "or press " _GREEN_("Enter") "to exit"); + PrintAndLogEx(INFO, "Measuring HF antenna, click " _GREEN_("pm3 button") "or press " _GREEN_("Enter") "to exit"); PacketResponseNG resp; clearCommandBuffer(); @@ -218,7 +218,7 @@ int CmdHFTune(const char *Cmd) { return PM3_ETIMEOUT; } PrintAndLogEx(NORMAL, ""); - PrintAndLogEx(SUCCESS, "Done."); + PrintAndLogEx(INFO, "Done."); return PM3_SUCCESS; } diff --git a/client/cmdlf.c b/client/cmdlf.c index 31d10ce49..18b055b8c 100644 --- a/client/cmdlf.c +++ b/client/cmdlf.c @@ -253,7 +253,7 @@ static int CmdLFTune(const char *Cmd) { //Validations if (errors) return usage_lf_tune(); - PrintAndLogEx(SUCCESS, "Measuring LF antenna at " _YELLOW_("%.2f") "kHz, click " _GREEN_("pm3 button") "or press " _GREEN_("Enter") "to exit", LF_DIV2FREQ(divisor)); + PrintAndLogEx(INFO, "Measuring LF antenna at " _YELLOW_("%.2f") "kHz, click " _GREEN_("pm3 button") "or press " _GREEN_("Enter") "to exit", LF_DIV2FREQ(divisor)); uint8_t params[] = {1, 0}; params[1] = divisor; @@ -295,7 +295,7 @@ static int CmdLFTune(const char *Cmd) { return PM3_ETIMEOUT; } PrintAndLogEx(NORMAL, ""); - PrintAndLogEx(SUCCESS, "Done."); + PrintAndLogEx(INFO, "Done."); return PM3_SUCCESS; } diff --git a/client/emojis.h b/client/emojis.h new file mode 100644 index 000000000..b7ef0e92a --- /dev/null +++ b/client/emojis.h @@ -0,0 +1,1862 @@ +#ifndef EMOJIS_H__ +#define EMOJIS_H__ + +typedef struct emoji_s { + const char *alias; + const char *emoji; +} emoji_t; +// emoji_t array are expected to be NULL terminated + +static emoji_t EmojiTable[] = { + {":grinning:", "๐Ÿ˜€"}, + {":smiley:", "๐Ÿ˜ƒ"}, + {":smile:", "๐Ÿ˜„"}, + {":grin:", "๐Ÿ˜"}, + {":laughing:", "๐Ÿ˜†"}, + {":satisfied:", "๐Ÿ˜†"}, + {":sweat_smile:", "๐Ÿ˜…"}, + {":rofl:", "๐Ÿคฃ"}, + {":joy:", "๐Ÿ˜‚"}, + {":slightly_smiling_face:", "๐Ÿ™‚"}, + {":upside_down_face:", "๐Ÿ™ƒ"}, + {":wink:", "๐Ÿ˜‰"}, + {":blush:", "๐Ÿ˜Š"}, + {":innocent:", "๐Ÿ˜‡"}, + {":smiling_face_with_three_hearts:", "๐Ÿฅฐ"}, + {":heart_eyes:", "๐Ÿ˜"}, + {":star_struck:", "๐Ÿคฉ"}, + {":kissing_heart:", "๐Ÿ˜˜"}, + {":kissing:", "๐Ÿ˜—"}, + {":relaxed:", "โ˜บ๏ธ"}, + {":kissing_closed_eyes:", "๐Ÿ˜š"}, + {":kissing_smiling_eyes:", "๐Ÿ˜™"}, + {":smiling_face_with_tear:", "๐Ÿฅฒ"}, + {":yum:", "๐Ÿ˜‹"}, + {":stuck_out_tongue:", "๐Ÿ˜›"}, + {":stuck_out_tongue_winking_eye:", "๐Ÿ˜œ"}, + {":zany_face:", "๐Ÿคช"}, + {":stuck_out_tongue_closed_eyes:", "๐Ÿ˜"}, + {":money_mouth_face:", "๐Ÿค‘"}, + {":hugs:", "๐Ÿค—"}, + {":hand_over_mouth:", "๐Ÿคญ"}, + {":shushing_face:", "๐Ÿคซ"}, + {":thinking:", "๐Ÿค”"}, + {":zipper_mouth_face:", "๐Ÿค"}, + {":raised_eyebrow:", "๐Ÿคจ"}, + {":neutral_face:", "๐Ÿ˜"}, + {":expressionless:", "๐Ÿ˜‘"}, + {":no_mouth:", "๐Ÿ˜ถ"}, + {":smirk:", "๐Ÿ˜"}, + {":unamused:", "๐Ÿ˜’"}, + {":roll_eyes:", "๐Ÿ™„"}, + {":grimacing:", "๐Ÿ˜ฌ"}, + {":lying_face:", "๐Ÿคฅ"}, + {":relieved:", "๐Ÿ˜Œ"}, + {":pensive:", "๐Ÿ˜”"}, + {":sleepy:", "๐Ÿ˜ช"}, + {":drooling_face:", "๐Ÿคค"}, + {":sleeping:", "๐Ÿ˜ด"}, + {":mask:", "๐Ÿ˜ท"}, + {":face_with_thermometer:", "๐Ÿค’"}, + {":face_with_head_bandage:", "๐Ÿค•"}, + {":nauseated_face:", "๐Ÿคข"}, + {":vomiting_face:", "๐Ÿคฎ"}, + {":sneezing_face:", "๐Ÿคง"}, + {":hot_face:", "๐Ÿฅต"}, + {":cold_face:", "๐Ÿฅถ"}, + {":woozy_face:", "๐Ÿฅด"}, + {":dizzy_face:", "๐Ÿ˜ต"}, + {":exploding_head:", "๐Ÿคฏ"}, + {":cowboy_hat_face:", "๐Ÿค "}, + {":partying_face:", "๐Ÿฅณ"}, + {":disguised_face:", "๐Ÿฅธ"}, + {":sunglasses:", "๐Ÿ˜Ž"}, + {":nerd_face:", "๐Ÿค“"}, + {":monocle_face:", "๐Ÿง"}, + {":confused:", "๐Ÿ˜•"}, + {":worried:", "๐Ÿ˜Ÿ"}, + {":slightly_frowning_face:", "๐Ÿ™"}, + {":frowning_face:", "โ˜น๏ธ"}, + {":open_mouth:", "๐Ÿ˜ฎ"}, + {":hushed:", "๐Ÿ˜ฏ"}, + {":astonished:", "๐Ÿ˜ฒ"}, + {":flushed:", "๐Ÿ˜ณ"}, + {":pleading_face:", "๐Ÿฅบ"}, + {":frowning:", "๐Ÿ˜ฆ"}, + {":anguished:", "๐Ÿ˜ง"}, + {":fearful:", "๐Ÿ˜จ"}, + {":cold_sweat:", "๐Ÿ˜ฐ"}, + {":disappointed_relieved:", "๐Ÿ˜ฅ"}, + {":cry:", "๐Ÿ˜ข"}, + {":sob:", "๐Ÿ˜ญ"}, + {":scream:", "๐Ÿ˜ฑ"}, + {":confounded:", "๐Ÿ˜–"}, + {":persevere:", "๐Ÿ˜ฃ"}, + {":disappointed:", "๐Ÿ˜ž"}, + {":sweat:", "๐Ÿ˜“"}, + {":weary:", "๐Ÿ˜ฉ"}, + {":tired_face:", "๐Ÿ˜ซ"}, + {":yawning_face:", "๐Ÿฅฑ"}, + {":triumph:", "๐Ÿ˜ค"}, + {":rage:", "๐Ÿ˜ก"}, + {":pout:", "๐Ÿ˜ก"}, + {":angry:", "๐Ÿ˜ "}, + {":cursing_face:", "๐Ÿคฌ"}, + {":smiling_imp:", "๐Ÿ˜ˆ"}, + {":imp:", "๐Ÿ‘ฟ"}, + {":skull:", "๐Ÿ’€"}, + {":skull_and_crossbones:", "โ˜ ๏ธ"}, + {":hankey:", "๐Ÿ’ฉ"}, + {":poop:", "๐Ÿ’ฉ"}, + {":shit:", "๐Ÿ’ฉ"}, + {":clown_face:", "๐Ÿคก"}, + {":japanese_ogre:", "๐Ÿ‘น"}, + {":japanese_goblin:", "๐Ÿ‘บ"}, + {":ghost:", "๐Ÿ‘ป"}, + {":alien:", "๐Ÿ‘ฝ"}, + {":space_invader:", "๐Ÿ‘พ"}, + {":robot:", "๐Ÿค–"}, + {":smiley_cat:", "๐Ÿ˜บ"}, + {":smile_cat:", "๐Ÿ˜ธ"}, + {":joy_cat:", "๐Ÿ˜น"}, + {":heart_eyes_cat:", "๐Ÿ˜ป"}, + {":smirk_cat:", "๐Ÿ˜ผ"}, + {":kissing_cat:", "๐Ÿ˜ฝ"}, + {":scream_cat:", "๐Ÿ™€"}, + {":crying_cat_face:", "๐Ÿ˜ฟ"}, + {":pouting_cat:", "๐Ÿ˜พ"}, + {":see_no_evil:", "๐Ÿ™ˆ"}, + {":hear_no_evil:", "๐Ÿ™‰"}, + {":speak_no_evil:", "๐Ÿ™Š"}, + {":kiss:", "๐Ÿ’‹"}, + {":love_letter:", "๐Ÿ’Œ"}, + {":cupid:", "๐Ÿ’˜"}, + {":gift_heart:", "๐Ÿ’"}, + {":sparkling_heart:", "๐Ÿ’–"}, + {":heartpulse:", "๐Ÿ’—"}, + {":heartbeat:", "๐Ÿ’“"}, + {":revolving_hearts:", "๐Ÿ’ž"}, + {":two_hearts:", "๐Ÿ’•"}, + {":heart_decoration:", "๐Ÿ’Ÿ"}, + {":heavy_heart_exclamation:", "โฃ๏ธ"}, + {":broken_heart:", "๐Ÿ’”"}, + {":heart:", "โค๏ธ"}, + {":orange_heart:", "๐Ÿงก"}, + {":yellow_heart:", "๐Ÿ’›"}, + {":green_heart:", "๐Ÿ’š"}, + {":blue_heart:", "๐Ÿ’™"}, + {":purple_heart:", "๐Ÿ’œ"}, + {":brown_heart:", "๐ŸคŽ"}, + {":black_heart:", "๐Ÿ–ค"}, + {":white_heart:", "๐Ÿค"}, + {":100:", "๐Ÿ’ฏ"}, + {":anger:", "๐Ÿ’ข"}, + {":boom:", "๐Ÿ’ฅ"}, + {":collision:", "๐Ÿ’ฅ"}, + {":dizzy:", "๐Ÿ’ซ"}, + {":sweat_drops:", "๐Ÿ’ฆ"}, + {":dash:", "๐Ÿ’จ"}, + {":hole:", "๐Ÿ•ณ๏ธ"}, + {":bomb:", "๐Ÿ’ฃ"}, + {":speech_balloon:", "๐Ÿ’ฌ"}, + {":eye_speech_bubble:", "๐Ÿ‘๏ธโ€๐Ÿ—จ๏ธ"}, + {":left_speech_bubble:", "๐Ÿ—จ๏ธ"}, + {":right_anger_bubble:", "๐Ÿ—ฏ๏ธ"}, + {":thought_balloon:", "๐Ÿ’ญ"}, + {":zzz:", "๐Ÿ’ค"}, + {":wave:", "๐Ÿ‘‹"}, + {":raised_back_of_hand:", "๐Ÿคš"}, + {":raised_hand_with_fingers_splayed:", "๐Ÿ–๏ธ"}, + {":hand:", "โœ‹"}, + {":raised_hand:", "โœ‹"}, + {":vulcan_salute:", "๐Ÿ––"}, + {":ok_hand:", "๐Ÿ‘Œ"}, + {":pinched_fingers:", "๐ŸคŒ"}, + {":pinching_hand:", "๐Ÿค"}, + {":v:", "โœŒ๏ธ"}, + {":crossed_fingers:", "๐Ÿคž"}, + {":love_you_gesture:", "๐ŸคŸ"}, + {":metal:", "๐Ÿค˜"}, + {":call_me_hand:", "๐Ÿค™"}, + {":point_left:", "๐Ÿ‘ˆ"}, + {":point_right:", "๐Ÿ‘‰"}, + {":point_up_2:", "๐Ÿ‘†"}, + {":middle_finger:", "๐Ÿ–•"}, + {":fu:", "๐Ÿ–•"}, + {":point_down:", "๐Ÿ‘‡"}, + {":point_up:", "โ˜๏ธ"}, + {":+1:", "๐Ÿ‘"}, + {":thumbsup:", "๐Ÿ‘"}, + {":-1:", "๐Ÿ‘Ž"}, + {":thumbsdown:", "๐Ÿ‘Ž"}, + {":fist_raised:", "โœŠ"}, + {":fist:", "โœŠ"}, + {":fist_oncoming:", "๐Ÿ‘Š"}, + {":facepunch:", "๐Ÿ‘Š"}, + {":punch:", "๐Ÿ‘Š"}, + {":fist_left:", "๐Ÿค›"}, + {":fist_right:", "๐Ÿคœ"}, + {":clap:", "๐Ÿ‘"}, + {":raised_hands:", "๐Ÿ™Œ"}, + {":open_hands:", "๐Ÿ‘"}, + {":palms_up_together:", "๐Ÿคฒ"}, + {":handshake:", "๐Ÿค"}, + {":pray:", "๐Ÿ™"}, + {":writing_hand:", "โœ๏ธ"}, + {":nail_care:", "๐Ÿ’…"}, + {":selfie:", "๐Ÿคณ"}, + {":muscle:", "๐Ÿ’ช"}, + {":mechanical_arm:", "๐Ÿฆพ"}, + {":mechanical_leg:", "๐Ÿฆฟ"}, + {":leg:", "๐Ÿฆต"}, + {":foot:", "๐Ÿฆถ"}, + {":ear:", "๐Ÿ‘‚"}, + {":ear_with_hearing_aid:", "๐Ÿฆป"}, + {":nose:", "๐Ÿ‘ƒ"}, + {":brain:", "๐Ÿง "}, + {":anatomical_heart:", "๐Ÿซ€"}, + {":lungs:", "๐Ÿซ"}, + {":tooth:", "๐Ÿฆท"}, + {":bone:", "๐Ÿฆด"}, + {":eyes:", "๐Ÿ‘€"}, + {":eye:", "๐Ÿ‘๏ธ"}, + {":tongue:", "๐Ÿ‘…"}, + {":lips:", "๐Ÿ‘„"}, + {":baby:", "๐Ÿ‘ถ"}, + {":child:", "๐Ÿง’"}, + {":boy:", "๐Ÿ‘ฆ"}, + {":girl:", "๐Ÿ‘ง"}, + {":adult:", "๐Ÿง‘"}, + {":blond_haired_person:", "๐Ÿ‘ฑ"}, + {":man:", "๐Ÿ‘จ"}, + {":bearded_person:", "๐Ÿง”"}, + {":red_haired_man:", "๐Ÿ‘จโ€๐Ÿฆฐ"}, + {":curly_haired_man:", "๐Ÿ‘จโ€๐Ÿฆฑ"}, + {":white_haired_man:", "๐Ÿ‘จโ€๐Ÿฆณ"}, + {":bald_man:", "๐Ÿ‘จโ€๐Ÿฆฒ"}, + {":woman:", "๐Ÿ‘ฉ"}, + {":red_haired_woman:", "๐Ÿ‘ฉโ€๐Ÿฆฐ"}, + {":person_red_hair:", "๐Ÿง‘โ€๐Ÿฆฐ"}, + {":curly_haired_woman:", "๐Ÿ‘ฉโ€๐Ÿฆฑ"}, + {":person_curly_hair:", "๐Ÿง‘โ€๐Ÿฆฑ"}, + {":white_haired_woman:", "๐Ÿ‘ฉโ€๐Ÿฆณ"}, + {":person_white_hair:", "๐Ÿง‘โ€๐Ÿฆณ"}, + {":bald_woman:", "๐Ÿ‘ฉโ€๐Ÿฆฒ"}, + {":person_bald:", "๐Ÿง‘โ€๐Ÿฆฒ"}, + {":blond_haired_woman:", "๐Ÿ‘ฑโ€โ™€๏ธ"}, + {":blonde_woman:", "๐Ÿ‘ฑโ€โ™€๏ธ"}, + {":blond_haired_man:", "๐Ÿ‘ฑโ€โ™‚๏ธ"}, + {":older_adult:", "๐Ÿง“"}, + {":older_man:", "๐Ÿ‘ด"}, + {":older_woman:", "๐Ÿ‘ต"}, + {":frowning_person:", "๐Ÿ™"}, + {":frowning_man:", "๐Ÿ™โ€โ™‚๏ธ"}, + {":frowning_woman:", "๐Ÿ™โ€โ™€๏ธ"}, + {":pouting_face:", "๐Ÿ™Ž"}, + {":pouting_man:", "๐Ÿ™Žโ€โ™‚๏ธ"}, + {":pouting_woman:", "๐Ÿ™Žโ€โ™€๏ธ"}, + {":no_good:", "๐Ÿ™…"}, + {":no_good_man:", "๐Ÿ™…โ€โ™‚๏ธ"}, + {":ng_man:", "๐Ÿ™…โ€โ™‚๏ธ"}, + {":no_good_woman:", "๐Ÿ™…โ€โ™€๏ธ"}, + {":ng_woman:", "๐Ÿ™…โ€โ™€๏ธ"}, + {":ok_person:", "๐Ÿ™†"}, + {":ok_man:", "๐Ÿ™†โ€โ™‚๏ธ"}, + {":ok_woman:", "๐Ÿ™†โ€โ™€๏ธ"}, + {":tipping_hand_person:", "๐Ÿ’"}, + {":information_desk_person:", "๐Ÿ’"}, + {":tipping_hand_man:", "๐Ÿ’โ€โ™‚๏ธ"}, + {":sassy_man:", "๐Ÿ’โ€โ™‚๏ธ"}, + {":tipping_hand_woman:", "๐Ÿ’โ€โ™€๏ธ"}, + {":sassy_woman:", "๐Ÿ’โ€โ™€๏ธ"}, + {":raising_hand:", "๐Ÿ™‹"}, + {":raising_hand_man:", "๐Ÿ™‹โ€โ™‚๏ธ"}, + {":raising_hand_woman:", "๐Ÿ™‹โ€โ™€๏ธ"}, + {":deaf_person:", "๐Ÿง"}, + {":deaf_man:", "๐Ÿงโ€โ™‚๏ธ"}, + {":deaf_woman:", "๐Ÿงโ€โ™€๏ธ"}, + {":bow:", "๐Ÿ™‡"}, + {":bowing_man:", "๐Ÿ™‡โ€โ™‚๏ธ"}, + {":bowing_woman:", "๐Ÿ™‡โ€โ™€๏ธ"}, + {":facepalm:", "๐Ÿคฆ"}, + {":man_facepalming:", "๐Ÿคฆโ€โ™‚๏ธ"}, + {":woman_facepalming:", "๐Ÿคฆโ€โ™€๏ธ"}, + {":shrug:", "๐Ÿคท"}, + {":man_shrugging:", "๐Ÿคทโ€โ™‚๏ธ"}, + {":woman_shrugging:", "๐Ÿคทโ€โ™€๏ธ"}, + {":health_worker:", "๐Ÿง‘โ€โš•๏ธ"}, + {":man_health_worker:", "๐Ÿ‘จโ€โš•๏ธ"}, + {":woman_health_worker:", "๐Ÿ‘ฉโ€โš•๏ธ"}, + {":student:", "๐Ÿง‘โ€๐ŸŽ“"}, + {":man_student:", "๐Ÿ‘จโ€๐ŸŽ“"}, + {":woman_student:", "๐Ÿ‘ฉโ€๐ŸŽ“"}, + {":teacher:", "๐Ÿง‘โ€๐Ÿซ"}, + {":man_teacher:", "๐Ÿ‘จโ€๐Ÿซ"}, + {":woman_teacher:", "๐Ÿ‘ฉโ€๐Ÿซ"}, + {":judge:", "๐Ÿง‘โ€โš–๏ธ"}, + {":man_judge:", "๐Ÿ‘จโ€โš–๏ธ"}, + {":woman_judge:", "๐Ÿ‘ฉโ€โš–๏ธ"}, + {":farmer:", "๐Ÿง‘โ€๐ŸŒพ"}, + {":man_farmer:", "๐Ÿ‘จโ€๐ŸŒพ"}, + {":woman_farmer:", "๐Ÿ‘ฉโ€๐ŸŒพ"}, + {":cook:", "๐Ÿง‘โ€๐Ÿณ"}, + {":man_cook:", "๐Ÿ‘จโ€๐Ÿณ"}, + {":woman_cook:", "๐Ÿ‘ฉโ€๐Ÿณ"}, + {":mechanic:", "๐Ÿง‘โ€๐Ÿ”ง"}, + {":man_mechanic:", "๐Ÿ‘จโ€๐Ÿ”ง"}, + {":woman_mechanic:", "๐Ÿ‘ฉโ€๐Ÿ”ง"}, + {":factory_worker:", "๐Ÿง‘โ€๐Ÿญ"}, + {":man_factory_worker:", "๐Ÿ‘จโ€๐Ÿญ"}, + {":woman_factory_worker:", "๐Ÿ‘ฉโ€๐Ÿญ"}, + {":office_worker:", "๐Ÿง‘โ€๐Ÿ’ผ"}, + {":man_office_worker:", "๐Ÿ‘จโ€๐Ÿ’ผ"}, + {":woman_office_worker:", "๐Ÿ‘ฉโ€๐Ÿ’ผ"}, + {":scientist:", "๐Ÿง‘โ€๐Ÿ”ฌ"}, + {":man_scientist:", "๐Ÿ‘จโ€๐Ÿ”ฌ"}, + {":woman_scientist:", "๐Ÿ‘ฉโ€๐Ÿ”ฌ"}, + {":technologist:", "๐Ÿง‘โ€๐Ÿ’ป"}, + {":man_technologist:", "๐Ÿ‘จโ€๐Ÿ’ป"}, + {":woman_technologist:", "๐Ÿ‘ฉโ€๐Ÿ’ป"}, + {":singer:", "๐Ÿง‘โ€๐ŸŽค"}, + {":man_singer:", "๐Ÿ‘จโ€๐ŸŽค"}, + {":woman_singer:", "๐Ÿ‘ฉโ€๐ŸŽค"}, + {":artist:", "๐Ÿง‘โ€๐ŸŽจ"}, + {":man_artist:", "๐Ÿ‘จโ€๐ŸŽจ"}, + {":woman_artist:", "๐Ÿ‘ฉโ€๐ŸŽจ"}, + {":pilot:", "๐Ÿง‘โ€โœˆ๏ธ"}, + {":man_pilot:", "๐Ÿ‘จโ€โœˆ๏ธ"}, + {":woman_pilot:", "๐Ÿ‘ฉโ€โœˆ๏ธ"}, + {":astronaut:", "๐Ÿง‘โ€๐Ÿš€"}, + {":man_astronaut:", "๐Ÿ‘จโ€๐Ÿš€"}, + {":woman_astronaut:", "๐Ÿ‘ฉโ€๐Ÿš€"}, + {":firefighter:", "๐Ÿง‘โ€๐Ÿš’"}, + {":man_firefighter:", "๐Ÿ‘จโ€๐Ÿš’"}, + {":woman_firefighter:", "๐Ÿ‘ฉโ€๐Ÿš’"}, + {":police_officer:", "๐Ÿ‘ฎ"}, + {":cop:", "๐Ÿ‘ฎ"}, + {":policeman:", "๐Ÿ‘ฎโ€โ™‚๏ธ"}, + {":policewoman:", "๐Ÿ‘ฎโ€โ™€๏ธ"}, + {":detective:", "๐Ÿ•ต๏ธ"}, + {":male_detective:", "๐Ÿ•ต๏ธโ€โ™‚๏ธ"}, + {":female_detective:", "๐Ÿ•ต๏ธโ€โ™€๏ธ"}, + {":guard:", "๐Ÿ’‚"}, + {":guardsman:", "๐Ÿ’‚โ€โ™‚๏ธ"}, + {":guardswoman:", "๐Ÿ’‚โ€โ™€๏ธ"}, + {":ninja:", "๐Ÿฅท"}, + {":construction_worker:", "๐Ÿ‘ท"}, + {":construction_worker_man:", "๐Ÿ‘ทโ€โ™‚๏ธ"}, + {":construction_worker_woman:", "๐Ÿ‘ทโ€โ™€๏ธ"}, + {":prince:", "๐Ÿคด"}, + {":princess:", "๐Ÿ‘ธ"}, + {":person_with_turban:", "๐Ÿ‘ณ"}, + {":man_with_turban:", "๐Ÿ‘ณโ€โ™‚๏ธ"}, + {":woman_with_turban:", "๐Ÿ‘ณโ€โ™€๏ธ"}, + {":man_with_gua_pi_mao:", "๐Ÿ‘ฒ"}, + {":woman_with_headscarf:", "๐Ÿง•"}, + {":person_in_tuxedo:", "๐Ÿคต"}, + {":man_in_tuxedo:", "๐Ÿคตโ€โ™‚๏ธ"}, + {":woman_in_tuxedo:", "๐Ÿคตโ€โ™€๏ธ"}, + {":person_with_veil:", "๐Ÿ‘ฐ"}, + {":man_with_veil:", "๐Ÿ‘ฐโ€โ™‚๏ธ"}, + {":woman_with_veil:", "๐Ÿ‘ฐโ€โ™€๏ธ"}, + {":bride_with_veil:", "๐Ÿ‘ฐโ€โ™€๏ธ"}, + {":pregnant_woman:", "๐Ÿคฐ"}, + {":breast_feeding:", "๐Ÿคฑ"}, + {":woman_feeding_baby:", "๐Ÿ‘ฉโ€๐Ÿผ"}, + {":man_feeding_baby:", "๐Ÿ‘จโ€๐Ÿผ"}, + {":person_feeding_baby:", "๐Ÿง‘โ€๐Ÿผ"}, + {":angel:", "๐Ÿ‘ผ"}, + {":santa:", "๐ŸŽ…"}, + {":mrs_claus:", "๐Ÿคถ"}, + {":mx_claus:", "๐Ÿง‘โ€๐ŸŽ„"}, + {":superhero:", "๐Ÿฆธ"}, + {":superhero_man:", "๐Ÿฆธโ€โ™‚๏ธ"}, + {":superhero_woman:", "๐Ÿฆธโ€โ™€๏ธ"}, + {":supervillain:", "๐Ÿฆน"}, + {":supervillain_man:", "๐Ÿฆนโ€โ™‚๏ธ"}, + {":supervillain_woman:", "๐Ÿฆนโ€โ™€๏ธ"}, + {":mage:", "๐Ÿง™"}, + {":mage_man:", "๐Ÿง™โ€โ™‚๏ธ"}, + {":mage_woman:", "๐Ÿง™โ€โ™€๏ธ"}, + {":fairy:", "๐Ÿงš"}, + {":fairy_man:", "๐Ÿงšโ€โ™‚๏ธ"}, + {":fairy_woman:", "๐Ÿงšโ€โ™€๏ธ"}, + {":vampire:", "๐Ÿง›"}, + {":vampire_man:", "๐Ÿง›โ€โ™‚๏ธ"}, + {":vampire_woman:", "๐Ÿง›โ€โ™€๏ธ"}, + {":merperson:", "๐Ÿงœ"}, + {":merman:", "๐Ÿงœโ€โ™‚๏ธ"}, + {":mermaid:", "๐Ÿงœโ€โ™€๏ธ"}, + {":elf:", "๐Ÿง"}, + {":elf_man:", "๐Ÿงโ€โ™‚๏ธ"}, + {":elf_woman:", "๐Ÿงโ€โ™€๏ธ"}, + {":genie:", "๐Ÿงž"}, + {":genie_man:", "๐Ÿงžโ€โ™‚๏ธ"}, + {":genie_woman:", "๐Ÿงžโ€โ™€๏ธ"}, + {":zombie:", "๐ŸงŸ"}, + {":zombie_man:", "๐ŸงŸโ€โ™‚๏ธ"}, + {":zombie_woman:", "๐ŸงŸโ€โ™€๏ธ"}, + {":massage:", "๐Ÿ’†"}, + {":massage_man:", "๐Ÿ’†โ€โ™‚๏ธ"}, + {":massage_woman:", "๐Ÿ’†โ€โ™€๏ธ"}, + {":haircut:", "๐Ÿ’‡"}, + {":haircut_man:", "๐Ÿ’‡โ€โ™‚๏ธ"}, + {":haircut_woman:", "๐Ÿ’‡โ€โ™€๏ธ"}, + {":walking:", "๐Ÿšถ"}, + {":walking_man:", "๐Ÿšถโ€โ™‚๏ธ"}, + {":walking_woman:", "๐Ÿšถโ€โ™€๏ธ"}, + {":standing_person:", "๐Ÿง"}, + {":standing_man:", "๐Ÿงโ€โ™‚๏ธ"}, + {":standing_woman:", "๐Ÿงโ€โ™€๏ธ"}, + {":kneeling_person:", "๐ŸงŽ"}, + {":kneeling_man:", "๐ŸงŽโ€โ™‚๏ธ"}, + {":kneeling_woman:", "๐ŸงŽโ€โ™€๏ธ"}, + {":person_with_probing_cane:", "๐Ÿง‘โ€๐Ÿฆฏ"}, + {":man_with_probing_cane:", "๐Ÿ‘จโ€๐Ÿฆฏ"}, + {":woman_with_probing_cane:", "๐Ÿ‘ฉโ€๐Ÿฆฏ"}, + {":person_in_motorized_wheelchair:", "๐Ÿง‘โ€๐Ÿฆผ"}, + {":man_in_motorized_wheelchair:", "๐Ÿ‘จโ€๐Ÿฆผ"}, + {":woman_in_motorized_wheelchair:", "๐Ÿ‘ฉโ€๐Ÿฆผ"}, + {":person_in_manual_wheelchair:", "๐Ÿง‘โ€๐Ÿฆฝ"}, + {":man_in_manual_wheelchair:", "๐Ÿ‘จโ€๐Ÿฆฝ"}, + {":woman_in_manual_wheelchair:", "๐Ÿ‘ฉโ€๐Ÿฆฝ"}, + {":runner:", "๐Ÿƒ"}, + {":running:", "๐Ÿƒ"}, + {":running_man:", "๐Ÿƒโ€โ™‚๏ธ"}, + {":running_woman:", "๐Ÿƒโ€โ™€๏ธ"}, + {":woman_dancing:", "๐Ÿ’ƒ"}, + {":dancer:", "๐Ÿ’ƒ"}, + {":man_dancing:", "๐Ÿ•บ"}, + {":business_suit_levitating:", "๐Ÿ•ด๏ธ"}, + {":dancers:", "๐Ÿ‘ฏ"}, + {":dancing_men:", "๐Ÿ‘ฏโ€โ™‚๏ธ"}, + {":dancing_women:", "๐Ÿ‘ฏโ€โ™€๏ธ"}, + {":sauna_person:", "๐Ÿง–"}, + {":sauna_man:", "๐Ÿง–โ€โ™‚๏ธ"}, + {":sauna_woman:", "๐Ÿง–โ€โ™€๏ธ"}, + {":climbing:", "๐Ÿง—"}, + {":climbing_man:", "๐Ÿง—โ€โ™‚๏ธ"}, + {":climbing_woman:", "๐Ÿง—โ€โ™€๏ธ"}, + {":person_fencing:", "๐Ÿคบ"}, + {":horse_racing:", "๐Ÿ‡"}, + {":skier:", "โ›ท๏ธ"}, + {":snowboarder:", "๐Ÿ‚"}, + {":golfing:", "๐ŸŒ๏ธ"}, + {":golfing_man:", "๐ŸŒ๏ธโ€โ™‚๏ธ"}, + {":golfing_woman:", "๐ŸŒ๏ธโ€โ™€๏ธ"}, + {":surfer:", "๐Ÿ„"}, + {":surfing_man:", "๐Ÿ„โ€โ™‚๏ธ"}, + {":surfing_woman:", "๐Ÿ„โ€โ™€๏ธ"}, + {":rowboat:", "๐Ÿšฃ"}, + {":rowing_man:", "๐Ÿšฃโ€โ™‚๏ธ"}, + {":rowing_woman:", "๐Ÿšฃโ€โ™€๏ธ"}, + {":swimmer:", "๐ŸŠ"}, + {":swimming_man:", "๐ŸŠโ€โ™‚๏ธ"}, + {":swimming_woman:", "๐ŸŠโ€โ™€๏ธ"}, + {":bouncing_ball_person:", "โ›น๏ธ"}, + {":bouncing_ball_man:", "โ›น๏ธโ€โ™‚๏ธ"}, + {":basketball_man:", "โ›น๏ธโ€โ™‚๏ธ"}, + {":bouncing_ball_woman:", "โ›น๏ธโ€โ™€๏ธ"}, + {":basketball_woman:", "โ›น๏ธโ€โ™€๏ธ"}, + {":weight_lifting:", "๐Ÿ‹๏ธ"}, + {":weight_lifting_man:", "๐Ÿ‹๏ธโ€โ™‚๏ธ"}, + {":weight_lifting_woman:", "๐Ÿ‹๏ธโ€โ™€๏ธ"}, + {":bicyclist:", "๐Ÿšด"}, + {":biking_man:", "๐Ÿšดโ€โ™‚๏ธ"}, + {":biking_woman:", "๐Ÿšดโ€โ™€๏ธ"}, + {":mountain_bicyclist:", "๐Ÿšต"}, + {":mountain_biking_man:", "๐Ÿšตโ€โ™‚๏ธ"}, + {":mountain_biking_woman:", "๐Ÿšตโ€โ™€๏ธ"}, + {":cartwheeling:", "๐Ÿคธ"}, + {":man_cartwheeling:", "๐Ÿคธโ€โ™‚๏ธ"}, + {":woman_cartwheeling:", "๐Ÿคธโ€โ™€๏ธ"}, + {":wrestling:", "๐Ÿคผ"}, + {":men_wrestling:", "๐Ÿคผโ€โ™‚๏ธ"}, + {":women_wrestling:", "๐Ÿคผโ€โ™€๏ธ"}, + {":water_polo:", "๐Ÿคฝ"}, + {":man_playing_water_polo:", "๐Ÿคฝโ€โ™‚๏ธ"}, + {":woman_playing_water_polo:", "๐Ÿคฝโ€โ™€๏ธ"}, + {":handball_person:", "๐Ÿคพ"}, + {":man_playing_handball:", "๐Ÿคพโ€โ™‚๏ธ"}, + {":woman_playing_handball:", "๐Ÿคพโ€โ™€๏ธ"}, + {":juggling_person:", "๐Ÿคน"}, + {":man_juggling:", "๐Ÿคนโ€โ™‚๏ธ"}, + {":woman_juggling:", "๐Ÿคนโ€โ™€๏ธ"}, + {":lotus_position:", "๐Ÿง˜"}, + {":lotus_position_man:", "๐Ÿง˜โ€โ™‚๏ธ"}, + {":lotus_position_woman:", "๐Ÿง˜โ€โ™€๏ธ"}, + {":bath:", "๐Ÿ›€"}, + {":sleeping_bed:", "๐Ÿ›Œ"}, + {":people_holding_hands:", "๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘"}, + {":two_women_holding_hands:", "๐Ÿ‘ญ"}, + {":couple:", "๐Ÿ‘ซ"}, + {":two_men_holding_hands:", "๐Ÿ‘ฌ"}, + {":couplekiss:", "๐Ÿ’"}, + {":couplekiss_man_woman:", "๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ"}, + {":couplekiss_man_man:", "๐Ÿ‘จโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ"}, + {":couplekiss_woman_woman:", "๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ"}, + {":couple_with_heart:", "๐Ÿ’‘"}, + {":couple_with_heart_woman_man:", "๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ‘จ"}, + {":couple_with_heart_man_man:", "๐Ÿ‘จโ€โค๏ธโ€๐Ÿ‘จ"}, + {":couple_with_heart_woman_woman:", "๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ‘ฉ"}, + {":family:", "๐Ÿ‘ช"}, + {":family_man_woman_boy:", "๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆ"}, + {":family_man_woman_girl:", "๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ง"}, + {":family_man_woman_girl_boy:", "๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ"}, + {":family_man_woman_boy_boy:", "๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ"}, + {":family_man_woman_girl_girl:", "๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง"}, + {":family_man_man_boy:", "๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ฆ"}, + {":family_man_man_girl:", "๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ง"}, + {":family_man_man_girl_boy:", "๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ฆ"}, + {":family_man_man_boy_boy:", "๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ"}, + {":family_man_man_girl_girl:", "๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ง"}, + {":family_woman_woman_boy:", "๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆ"}, + {":family_woman_woman_girl:", "๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ง"}, + {":family_woman_woman_girl_boy:", "๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ"}, + {":family_woman_woman_boy_boy:", "๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ"}, + {":family_woman_woman_girl_girl:", "๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง"}, + {":family_man_boy:", "๐Ÿ‘จโ€๐Ÿ‘ฆ"}, + {":family_man_boy_boy:", "๐Ÿ‘จโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ"}, + {":family_man_girl:", "๐Ÿ‘จโ€๐Ÿ‘ง"}, + {":family_man_girl_boy:", "๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ฆ"}, + {":family_man_girl_girl:", "๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ง"}, + {":family_woman_boy:", "๐Ÿ‘ฉโ€๐Ÿ‘ฆ"}, + {":family_woman_boy_boy:", "๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ"}, + {":family_woman_girl:", "๐Ÿ‘ฉโ€๐Ÿ‘ง"}, + {":family_woman_girl_boy:", "๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ"}, + {":family_woman_girl_girl:", "๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง"}, + {":speaking_head:", "๐Ÿ—ฃ๏ธ"}, + {":bust_in_silhouette:", "๐Ÿ‘ค"}, + {":busts_in_silhouette:", "๐Ÿ‘ฅ"}, + {":people_hugging:", "๐Ÿซ‚"}, + {":footprints:", "๐Ÿ‘ฃ"}, + {":monkey_face:", "๐Ÿต"}, + {":monkey:", "๐Ÿ’"}, + {":gorilla:", "๐Ÿฆ"}, + {":orangutan:", "๐Ÿฆง"}, + {":dog:", "๐Ÿถ"}, + {":dog2:", "๐Ÿ•"}, + {":guide_dog:", "๐Ÿฆฎ"}, + {":service_dog:", "๐Ÿ•โ€๐Ÿฆบ"}, + {":poodle:", "๐Ÿฉ"}, + {":wolf:", "๐Ÿบ"}, + {":fox_face:", "๐ŸฆŠ"}, + {":raccoon:", "๐Ÿฆ"}, + {":cat:", "๐Ÿฑ"}, + {":cat2:", "๐Ÿˆ"}, + {":black_cat:", "๐Ÿˆโ€โฌ›"}, + {":lion:", "๐Ÿฆ"}, + {":tiger:", "๐Ÿฏ"}, + {":tiger2:", "๐Ÿ…"}, + {":leopard:", "๐Ÿ†"}, + {":horse:", "๐Ÿด"}, + {":racehorse:", "๐ŸŽ"}, + {":unicorn:", "๐Ÿฆ„"}, + {":zebra:", "๐Ÿฆ“"}, + {":deer:", "๐ŸฆŒ"}, + {":bison:", "๐Ÿฆฌ"}, + {":cow:", "๐Ÿฎ"}, + {":ox:", "๐Ÿ‚"}, + {":water_buffalo:", "๐Ÿƒ"}, + {":cow2:", "๐Ÿ„"}, + {":pig:", "๐Ÿท"}, + {":pig2:", "๐Ÿ–"}, + {":boar:", "๐Ÿ—"}, + {":pig_nose:", "๐Ÿฝ"}, + {":ram:", "๐Ÿ"}, + {":sheep:", "๐Ÿ‘"}, + {":goat:", "๐Ÿ"}, + {":dromedary_camel:", "๐Ÿช"}, + {":camel:", "๐Ÿซ"}, + {":llama:", "๐Ÿฆ™"}, + {":giraffe:", "๐Ÿฆ’"}, + {":elephant:", "๐Ÿ˜"}, + {":mammoth:", "๐Ÿฆฃ"}, + {":rhinoceros:", "๐Ÿฆ"}, + {":hippopotamus:", "๐Ÿฆ›"}, + {":mouse:", "๐Ÿญ"}, + {":mouse2:", "๐Ÿ"}, + {":rat:", "๐Ÿ€"}, + {":hamster:", "๐Ÿน"}, + {":rabbit:", "๐Ÿฐ"}, + {":rabbit2:", "๐Ÿ‡"}, + {":chipmunk:", "๐Ÿฟ๏ธ"}, + {":beaver:", "๐Ÿฆซ"}, + {":hedgehog:", "๐Ÿฆ”"}, + {":bat:", "๐Ÿฆ‡"}, + {":bear:", "๐Ÿป"}, + {":polar_bear:", "๐Ÿปโ€โ„๏ธ"}, + {":koala:", "๐Ÿจ"}, + {":panda_face:", "๐Ÿผ"}, + {":sloth:", "๐Ÿฆฅ"}, + {":otter:", "๐Ÿฆฆ"}, + {":skunk:", "๐Ÿฆจ"}, + {":kangaroo:", "๐Ÿฆ˜"}, + {":badger:", "๐Ÿฆก"}, + {":feet:", "๐Ÿพ"}, + {":paw_prints:", "๐Ÿพ"}, + {":turkey:", "๐Ÿฆƒ"}, + {":chicken:", "๐Ÿ”"}, + {":rooster:", "๐Ÿ“"}, + {":hatching_chick:", "๐Ÿฃ"}, + {":baby_chick:", "๐Ÿค"}, + {":hatched_chick:", "๐Ÿฅ"}, + {":bird:", "๐Ÿฆ"}, + {":penguin:", "๐Ÿง"}, + {":dove:", "๐Ÿ•Š๏ธ"}, + {":eagle:", "๐Ÿฆ…"}, + {":duck:", "๐Ÿฆ†"}, + {":swan:", "๐Ÿฆข"}, + {":owl:", "๐Ÿฆ‰"}, + {":dodo:", "๐Ÿฆค"}, + {":feather:", "๐Ÿชถ"}, + {":flamingo:", "๐Ÿฆฉ"}, + {":peacock:", "๐Ÿฆš"}, + {":parrot:", "๐Ÿฆœ"}, + {":frog:", "๐Ÿธ"}, + {":crocodile:", "๐ŸŠ"}, + {":turtle:", "๐Ÿข"}, + {":lizard:", "๐ŸฆŽ"}, + {":snake:", "๐Ÿ"}, + {":dragon_face:", "๐Ÿฒ"}, + {":dragon:", "๐Ÿ‰"}, + {":sauropod:", "๐Ÿฆ•"}, + {":t-rex:", "๐Ÿฆ–"}, + {":whale:", "๐Ÿณ"}, + {":whale2:", "๐Ÿ‹"}, + {":dolphin:", "๐Ÿฌ"}, + {":flipper:", "๐Ÿฌ"}, + {":seal:", "๐Ÿฆญ"}, + {":fish:", "๐ŸŸ"}, + {":tropical_fish:", "๐Ÿ "}, + {":blowfish:", "๐Ÿก"}, + {":shark:", "๐Ÿฆˆ"}, + {":octopus:", "๐Ÿ™"}, + {":shell:", "๐Ÿš"}, + {":snail:", "๐ŸŒ"}, + {":butterfly:", "๐Ÿฆ‹"}, + {":bug:", "๐Ÿ›"}, + {":ant:", "๐Ÿœ"}, + {":bee:", "๐Ÿ"}, + {":honeybee:", "๐Ÿ"}, + {":beetle:", "๐Ÿชฒ"}, + {":lady_beetle:", "๐Ÿž"}, + {":cricket:", "๐Ÿฆ—"}, + {":cockroach:", "๐Ÿชณ"}, + {":spider:", "๐Ÿ•ท๏ธ"}, + {":spider_web:", "๐Ÿ•ธ๏ธ"}, + {":scorpion:", "๐Ÿฆ‚"}, + {":mosquito:", "๐ŸฆŸ"}, + {":fly:", "๐Ÿชฐ"}, + {":worm:", "๐Ÿชฑ"}, + {":microbe:", "๐Ÿฆ "}, + {":bouquet:", "๐Ÿ’"}, + {":cherry_blossom:", "๐ŸŒธ"}, + {":white_flower:", "๐Ÿ’ฎ"}, + {":rosette:", "๐Ÿต๏ธ"}, + {":rose:", "๐ŸŒน"}, + {":wilted_flower:", "๐Ÿฅ€"}, + {":hibiscus:", "๐ŸŒบ"}, + {":sunflower:", "๐ŸŒป"}, + {":blossom:", "๐ŸŒผ"}, + {":tulip:", "๐ŸŒท"}, + {":seedling:", "๐ŸŒฑ"}, + {":potted_plant:", "๐Ÿชด"}, + {":evergreen_tree:", "๐ŸŒฒ"}, + {":deciduous_tree:", "๐ŸŒณ"}, + {":palm_tree:", "๐ŸŒด"}, + {":cactus:", "๐ŸŒต"}, + {":ear_of_rice:", "๐ŸŒพ"}, + {":herb:", "๐ŸŒฟ"}, + {":shamrock:", "โ˜˜๏ธ"}, + {":four_leaf_clover:", "๐Ÿ€"}, + {":maple_leaf:", "๐Ÿ"}, + {":fallen_leaf:", "๐Ÿ‚"}, + {":leaves:", "๐Ÿƒ"}, + {":grapes:", "๐Ÿ‡"}, + {":melon:", "๐Ÿˆ"}, + {":watermelon:", "๐Ÿ‰"}, + {":tangerine:", "๐ŸŠ"}, + {":orange:", "๐ŸŠ"}, + {":mandarin:", "๐ŸŠ"}, + {":lemon:", "๐Ÿ‹"}, + {":banana:", "๐ŸŒ"}, + {":pineapple:", "๐Ÿ"}, + {":mango:", "๐Ÿฅญ"}, + {":apple:", "๐ŸŽ"}, + {":green_apple:", "๐Ÿ"}, + {":pear:", "๐Ÿ"}, + {":peach:", "๐Ÿ‘"}, + {":cherries:", "๐Ÿ’"}, + {":strawberry:", "๐Ÿ“"}, + {":blueberries:", "๐Ÿซ"}, + {":kiwi_fruit:", "๐Ÿฅ"}, + {":tomato:", "๐Ÿ…"}, + {":olive:", "๐Ÿซ’"}, + {":coconut:", "๐Ÿฅฅ"}, + {":avocado:", "๐Ÿฅ‘"}, + {":eggplant:", "๐Ÿ†"}, + {":potato:", "๐Ÿฅ”"}, + {":carrot:", "๐Ÿฅ•"}, + {":corn:", "๐ŸŒฝ"}, + {":hot_pepper:", "๐ŸŒถ๏ธ"}, + {":bell_pepper:", "๐Ÿซ‘"}, + {":cucumber:", "๐Ÿฅ’"}, + {":leafy_green:", "๐Ÿฅฌ"}, + {":broccoli:", "๐Ÿฅฆ"}, + {":garlic:", "๐Ÿง„"}, + {":onion:", "๐Ÿง…"}, + {":mushroom:", "๐Ÿ„"}, + {":peanuts:", "๐Ÿฅœ"}, + {":chestnut:", "๐ŸŒฐ"}, + {":bread:", "๐Ÿž"}, + {":croissant:", "๐Ÿฅ"}, + {":baguette_bread:", "๐Ÿฅ–"}, + {":flatbread:", "๐Ÿซ“"}, + {":pretzel:", "๐Ÿฅจ"}, + {":bagel:", "๐Ÿฅฏ"}, + {":pancakes:", "๐Ÿฅž"}, + {":waffle:", "๐Ÿง‡"}, + {":cheese:", "๐Ÿง€"}, + {":meat_on_bone:", "๐Ÿ–"}, + {":poultry_leg:", "๐Ÿ—"}, + {":cut_of_meat:", "๐Ÿฅฉ"}, + {":bacon:", "๐Ÿฅ“"}, + {":hamburger:", "๐Ÿ”"}, + {":fries:", "๐ŸŸ"}, + {":pizza:", "๐Ÿ•"}, + {":hotdog:", "๐ŸŒญ"}, + {":sandwich:", "๐Ÿฅช"}, + {":taco:", "๐ŸŒฎ"}, + {":burrito:", "๐ŸŒฏ"}, + {":tamale:", "๐Ÿซ”"}, + {":stuffed_flatbread:", "๐Ÿฅ™"}, + {":falafel:", "๐Ÿง†"}, + {":egg:", "๐Ÿฅš"}, + {":fried_egg:", "๐Ÿณ"}, + {":shallow_pan_of_food:", "๐Ÿฅ˜"}, + {":stew:", "๐Ÿฒ"}, + {":fondue:", "๐Ÿซ•"}, + {":bowl_with_spoon:", "๐Ÿฅฃ"}, + {":green_salad:", "๐Ÿฅ—"}, + {":popcorn:", "๐Ÿฟ"}, + {":butter:", "๐Ÿงˆ"}, + {":salt:", "๐Ÿง‚"}, + {":canned_food:", "๐Ÿฅซ"}, + {":bento:", "๐Ÿฑ"}, + {":rice_cracker:", "๐Ÿ˜"}, + {":rice_ball:", "๐Ÿ™"}, + {":rice:", "๐Ÿš"}, + {":curry:", "๐Ÿ›"}, + {":ramen:", "๐Ÿœ"}, + {":spaghetti:", "๐Ÿ"}, + {":sweet_potato:", "๐Ÿ "}, + {":oden:", "๐Ÿข"}, + {":sushi:", "๐Ÿฃ"}, + {":fried_shrimp:", "๐Ÿค"}, + {":fish_cake:", "๐Ÿฅ"}, + {":moon_cake:", "๐Ÿฅฎ"}, + {":dango:", "๐Ÿก"}, + {":dumpling:", "๐ŸฅŸ"}, + {":fortune_cookie:", "๐Ÿฅ "}, + {":takeout_box:", "๐Ÿฅก"}, + {":crab:", "๐Ÿฆ€"}, + {":lobster:", "๐Ÿฆž"}, + {":shrimp:", "๐Ÿฆ"}, + {":squid:", "๐Ÿฆ‘"}, + {":oyster:", "๐Ÿฆช"}, + {":icecream:", "๐Ÿฆ"}, + {":shaved_ice:", "๐Ÿง"}, + {":ice_cream:", "๐Ÿจ"}, + {":doughnut:", "๐Ÿฉ"}, + {":cookie:", "๐Ÿช"}, + {":birthday:", "๐ŸŽ‚"}, + {":cake:", "๐Ÿฐ"}, + {":cupcake:", "๐Ÿง"}, + {":pie:", "๐Ÿฅง"}, + {":chocolate_bar:", "๐Ÿซ"}, + {":candy:", "๐Ÿฌ"}, + {":lollipop:", "๐Ÿญ"}, + {":custard:", "๐Ÿฎ"}, + {":honey_pot:", "๐Ÿฏ"}, + {":baby_bottle:", "๐Ÿผ"}, + {":milk_glass:", "๐Ÿฅ›"}, + {":coffee:", "โ˜•"}, + {":teapot:", "๐Ÿซ–"}, + {":tea:", "๐Ÿต"}, + {":sake:", "๐Ÿถ"}, + {":champagne:", "๐Ÿพ"}, + {":wine_glass:", "๐Ÿท"}, + {":cocktail:", "๐Ÿธ"}, + {":tropical_drink:", "๐Ÿน"}, + {":beer:", "๐Ÿบ"}, + {":beers:", "๐Ÿป"}, + {":clinking_glasses:", "๐Ÿฅ‚"}, + {":tumbler_glass:", "๐Ÿฅƒ"}, + {":cup_with_straw:", "๐Ÿฅค"}, + {":bubble_tea:", "๐Ÿง‹"}, + {":beverage_box:", "๐Ÿงƒ"}, + {":mate:", "๐Ÿง‰"}, + {":ice_cube:", "๐ŸงŠ"}, + {":chopsticks:", "๐Ÿฅข"}, + {":plate_with_cutlery:", "๐Ÿฝ๏ธ"}, + {":fork_and_knife:", "๐Ÿด"}, + {":spoon:", "๐Ÿฅ„"}, + {":hocho:", "๐Ÿ”ช"}, + {":knife:", "๐Ÿ”ช"}, + {":amphora:", "๐Ÿบ"}, + {":earth_africa:", "๐ŸŒ"}, + {":earth_americas:", "๐ŸŒŽ"}, + {":earth_asia:", "๐ŸŒ"}, + {":globe_with_meridians:", "๐ŸŒ"}, + {":world_map:", "๐Ÿ—บ๏ธ"}, + {":japan:", "๐Ÿ—พ"}, + {":compass:", "๐Ÿงญ"}, + {":mountain_snow:", "๐Ÿ”๏ธ"}, + {":mountain:", "โ›ฐ๏ธ"}, + {":volcano:", "๐ŸŒ‹"}, + {":mount_fuji:", "๐Ÿ—ป"}, + {":camping:", "๐Ÿ•๏ธ"}, + {":beach_umbrella:", "๐Ÿ–๏ธ"}, + {":desert:", "๐Ÿœ๏ธ"}, + {":desert_island:", "๐Ÿ๏ธ"}, + {":national_park:", "๐Ÿž๏ธ"}, + {":stadium:", "๐ŸŸ๏ธ"}, + {":classical_building:", "๐Ÿ›๏ธ"}, + {":building_construction:", "๐Ÿ—๏ธ"}, + {":bricks:", "๐Ÿงฑ"}, + {":rock:", "๐Ÿชจ"}, + {":wood:", "๐Ÿชต"}, + {":hut:", "๐Ÿ›–"}, + {":houses:", "๐Ÿ˜๏ธ"}, + {":derelict_house:", "๐Ÿš๏ธ"}, + {":house:", "๐Ÿ "}, + {":house_with_garden:", "๐Ÿก"}, + {":office:", "๐Ÿข"}, + {":post_office:", "๐Ÿฃ"}, + {":european_post_office:", "๐Ÿค"}, + {":hospital:", "๐Ÿฅ"}, + {":bank:", "๐Ÿฆ"}, + {":hotel:", "๐Ÿจ"}, + {":love_hotel:", "๐Ÿฉ"}, + {":convenience_store:", "๐Ÿช"}, + {":school:", "๐Ÿซ"}, + {":department_store:", "๐Ÿฌ"}, + {":factory:", "๐Ÿญ"}, + {":japanese_castle:", "๐Ÿฏ"}, + {":european_castle:", "๐Ÿฐ"}, + {":wedding:", "๐Ÿ’’"}, + {":tokyo_tower:", "๐Ÿ—ผ"}, + {":statue_of_liberty:", "๐Ÿ—ฝ"}, + {":church:", "โ›ช"}, + {":mosque:", "๐Ÿ•Œ"}, + {":hindu_temple:", "๐Ÿ›•"}, + {":synagogue:", "๐Ÿ•"}, + {":shinto_shrine:", "โ›ฉ๏ธ"}, + {":kaaba:", "๐Ÿ•‹"}, + {":fountain:", "โ›ฒ"}, + {":tent:", "โ›บ"}, + {":foggy:", "๐ŸŒ"}, + {":night_with_stars:", "๐ŸŒƒ"}, + {":cityscape:", "๐Ÿ™๏ธ"}, + {":sunrise_over_mountains:", "๐ŸŒ„"}, + {":sunrise:", "๐ŸŒ…"}, + {":city_sunset:", "๐ŸŒ†"}, + {":city_sunrise:", "๐ŸŒ‡"}, + {":bridge_at_night:", "๐ŸŒ‰"}, + {":hotsprings:", "โ™จ๏ธ"}, + {":carousel_horse:", "๐ŸŽ "}, + {":ferris_wheel:", "๐ŸŽก"}, + {":roller_coaster:", "๐ŸŽข"}, + {":barber:", "๐Ÿ’ˆ"}, + {":circus_tent:", "๐ŸŽช"}, + {":steam_locomotive:", "๐Ÿš‚"}, + {":railway_car:", "๐Ÿšƒ"}, + {":bullettrain_side:", "๐Ÿš„"}, + {":bullettrain_front:", "๐Ÿš…"}, + {":train2:", "๐Ÿš†"}, + {":metro:", "๐Ÿš‡"}, + {":light_rail:", "๐Ÿšˆ"}, + {":station:", "๐Ÿš‰"}, + {":tram:", "๐ŸšŠ"}, + {":monorail:", "๐Ÿš"}, + {":mountain_railway:", "๐Ÿšž"}, + {":train:", "๐Ÿš‹"}, + {":bus:", "๐ŸšŒ"}, + {":oncoming_bus:", "๐Ÿš"}, + {":trolleybus:", "๐ŸšŽ"}, + {":minibus:", "๐Ÿš"}, + {":ambulance:", "๐Ÿš‘"}, + {":fire_engine:", "๐Ÿš’"}, + {":police_car:", "๐Ÿš“"}, + {":oncoming_police_car:", "๐Ÿš”"}, + {":taxi:", "๐Ÿš•"}, + {":oncoming_taxi:", "๐Ÿš–"}, + {":car:", "๐Ÿš—"}, + {":red_car:", "๐Ÿš—"}, + {":oncoming_automobile:", "๐Ÿš˜"}, + {":blue_car:", "๐Ÿš™"}, + {":pickup_truck:", "๐Ÿ›ป"}, + {":truck:", "๐Ÿšš"}, + {":articulated_lorry:", "๐Ÿš›"}, + {":tractor:", "๐Ÿšœ"}, + {":racing_car:", "๐ŸŽ๏ธ"}, + {":motorcycle:", "๐Ÿ๏ธ"}, + {":motor_scooter:", "๐Ÿ›ต"}, + {":manual_wheelchair:", "๐Ÿฆฝ"}, + {":motorized_wheelchair:", "๐Ÿฆผ"}, + {":auto_rickshaw:", "๐Ÿ›บ"}, + {":bike:", "๐Ÿšฒ"}, + {":kick_scooter:", "๐Ÿ›ด"}, + {":skateboard:", "๐Ÿ›น"}, + {":roller_skate:", "๐Ÿ›ผ"}, + {":busstop:", "๐Ÿš"}, + {":motorway:", "๐Ÿ›ฃ๏ธ"}, + {":railway_track:", "๐Ÿ›ค๏ธ"}, + {":oil_drum:", "๐Ÿ›ข๏ธ"}, + {":fuelpump:", "โ›ฝ"}, + {":rotating_light:", "๐Ÿšจ"}, + {":traffic_light:", "๐Ÿšฅ"}, + {":vertical_traffic_light:", "๐Ÿšฆ"}, + {":stop_sign:", "๐Ÿ›‘"}, + {":construction:", "๐Ÿšง"}, + {":anchor:", "โš“"}, + {":boat:", "โ›ต"}, + {":sailboat:", "โ›ต"}, + {":canoe:", "๐Ÿ›ถ"}, + {":speedboat:", "๐Ÿšค"}, + {":passenger_ship:", "๐Ÿ›ณ๏ธ"}, + {":ferry:", "โ›ด๏ธ"}, + {":motor_boat:", "๐Ÿ›ฅ๏ธ"}, + {":ship:", "๐Ÿšข"}, + {":airplane:", "โœˆ๏ธ"}, + {":small_airplane:", "๐Ÿ›ฉ๏ธ"}, + {":flight_departure:", "๐Ÿ›ซ"}, + {":flight_arrival:", "๐Ÿ›ฌ"}, + {":parachute:", "๐Ÿช‚"}, + {":seat:", "๐Ÿ’บ"}, + {":helicopter:", "๐Ÿš"}, + {":suspension_railway:", "๐ŸšŸ"}, + {":mountain_cableway:", "๐Ÿš "}, + {":aerial_tramway:", "๐Ÿšก"}, + {":artificial_satellite:", "๐Ÿ›ฐ๏ธ"}, + {":rocket:", "๐Ÿš€"}, + {":flying_saucer:", "๐Ÿ›ธ"}, + {":bellhop_bell:", "๐Ÿ›Ž๏ธ"}, + {":luggage:", "๐Ÿงณ"}, + {":hourglass:", "โŒ›"}, + {":hourglass_flowing_sand:", "โณ"}, + {":watch:", "โŒš"}, + {":alarm_clock:", "โฐ"}, + {":stopwatch:", "โฑ๏ธ"}, + {":timer_clock:", "โฒ๏ธ"}, + {":mantelpiece_clock:", "๐Ÿ•ฐ๏ธ"}, + {":clock12:", "๐Ÿ•›"}, + {":clock1230:", "๐Ÿ•ง"}, + {":clock1:", "๐Ÿ•"}, + {":clock130:", "๐Ÿ•œ"}, + {":clock2:", "๐Ÿ•‘"}, + {":clock230:", "๐Ÿ•"}, + {":clock3:", "๐Ÿ•’"}, + {":clock330:", "๐Ÿ•ž"}, + {":clock4:", "๐Ÿ•“"}, + {":clock430:", "๐Ÿ•Ÿ"}, + {":clock5:", "๐Ÿ•”"}, + {":clock530:", "๐Ÿ• "}, + {":clock6:", "๐Ÿ••"}, + {":clock630:", "๐Ÿ•ก"}, + {":clock7:", "๐Ÿ•–"}, + {":clock730:", "๐Ÿ•ข"}, + {":clock8:", "๐Ÿ•—"}, + {":clock830:", "๐Ÿ•ฃ"}, + {":clock9:", "๐Ÿ•˜"}, + {":clock930:", "๐Ÿ•ค"}, + {":clock10:", "๐Ÿ•™"}, + {":clock1030:", "๐Ÿ•ฅ"}, + {":clock11:", "๐Ÿ•š"}, + {":clock1130:", "๐Ÿ•ฆ"}, + {":new_moon:", "๐ŸŒ‘"}, + {":waxing_crescent_moon:", "๐ŸŒ’"}, + {":first_quarter_moon:", "๐ŸŒ“"}, + {":moon:", "๐ŸŒ”"}, + {":waxing_gibbous_moon:", "๐ŸŒ”"}, + {":full_moon:", "๐ŸŒ•"}, + {":waning_gibbous_moon:", "๐ŸŒ–"}, + {":last_quarter_moon:", "๐ŸŒ—"}, + {":waning_crescent_moon:", "๐ŸŒ˜"}, + {":crescent_moon:", "๐ŸŒ™"}, + {":new_moon_with_face:", "๐ŸŒš"}, + {":first_quarter_moon_with_face:", "๐ŸŒ›"}, + {":last_quarter_moon_with_face:", "๐ŸŒœ"}, + {":thermometer:", "๐ŸŒก๏ธ"}, + {":sunny:", "โ˜€๏ธ"}, + {":full_moon_with_face:", "๐ŸŒ"}, + {":sun_with_face:", "๐ŸŒž"}, + {":ringed_planet:", "๐Ÿช"}, + {":star:", "โญ"}, + {":star2:", "๐ŸŒŸ"}, + {":stars:", "๐ŸŒ "}, + {":milky_way:", "๐ŸŒŒ"}, + {":cloud:", "โ˜๏ธ"}, + {":partly_sunny:", "โ›…"}, + {":cloud_with_lightning_and_rain:", "โ›ˆ๏ธ"}, + {":sun_behind_small_cloud:", "๐ŸŒค๏ธ"}, + {":sun_behind_large_cloud:", "๐ŸŒฅ๏ธ"}, + {":sun_behind_rain_cloud:", "๐ŸŒฆ๏ธ"}, + {":cloud_with_rain:", "๐ŸŒง๏ธ"}, + {":cloud_with_snow:", "๐ŸŒจ๏ธ"}, + {":cloud_with_lightning:", "๐ŸŒฉ๏ธ"}, + {":tornado:", "๐ŸŒช๏ธ"}, + {":fog:", "๐ŸŒซ๏ธ"}, + {":wind_face:", "๐ŸŒฌ๏ธ"}, + {":cyclone:", "๐ŸŒ€"}, + {":rainbow:", "๐ŸŒˆ"}, + {":closed_umbrella:", "๐ŸŒ‚"}, + {":open_umbrella:", "โ˜‚๏ธ"}, + {":umbrella:", "โ˜”"}, + {":parasol_on_ground:", "โ›ฑ๏ธ"}, + {":zap:", "โšก"}, + {":snowflake:", "โ„๏ธ"}, + {":snowman_with_snow:", "โ˜ƒ๏ธ"}, + {":snowman:", "โ›„"}, + {":comet:", "โ˜„๏ธ"}, + {":fire:", "๐Ÿ”ฅ"}, + {":droplet:", "๐Ÿ’ง"}, + {":ocean:", "๐ŸŒŠ"}, + {":jack_o_lantern:", "๐ŸŽƒ"}, + {":christmas_tree:", "๐ŸŽ„"}, + {":fireworks:", "๐ŸŽ†"}, + {":sparkler:", "๐ŸŽ‡"}, + {":firecracker:", "๐Ÿงจ"}, + {":sparkles:", "โœจ"}, + {":balloon:", "๐ŸŽˆ"}, + {":tada:", "๐ŸŽ‰"}, + {":confetti_ball:", "๐ŸŽŠ"}, + {":tanabata_tree:", "๐ŸŽ‹"}, + {":bamboo:", "๐ŸŽ"}, + {":dolls:", "๐ŸŽŽ"}, + {":flags:", "๐ŸŽ"}, + {":wind_chime:", "๐ŸŽ"}, + {":rice_scene:", "๐ŸŽ‘"}, + {":red_envelope:", "๐Ÿงง"}, + {":ribbon:", "๐ŸŽ€"}, + {":gift:", "๐ŸŽ"}, + {":reminder_ribbon:", "๐ŸŽ—๏ธ"}, + {":tickets:", "๐ŸŽŸ๏ธ"}, + {":ticket:", "๐ŸŽซ"}, + {":medal_military:", "๐ŸŽ–๏ธ"}, + {":trophy:", "๐Ÿ†"}, + {":medal_sports:", "๐Ÿ…"}, + {":1st_place_medal:", "๐Ÿฅ‡"}, + {":2nd_place_medal:", "๐Ÿฅˆ"}, + {":3rd_place_medal:", "๐Ÿฅ‰"}, + {":soccer:", "โšฝ"}, + {":baseball:", "โšพ"}, + {":softball:", "๐ŸฅŽ"}, + {":basketball:", "๐Ÿ€"}, + {":volleyball:", "๐Ÿ"}, + {":football:", "๐Ÿˆ"}, + {":rugby_football:", "๐Ÿ‰"}, + {":tennis:", "๐ŸŽพ"}, + {":flying_disc:", "๐Ÿฅ"}, + {":bowling:", "๐ŸŽณ"}, + {":cricket_game:", "๐Ÿ"}, + {":field_hockey:", "๐Ÿ‘"}, + {":ice_hockey:", "๐Ÿ’"}, + {":lacrosse:", "๐Ÿฅ"}, + {":ping_pong:", "๐Ÿ“"}, + {":badminton:", "๐Ÿธ"}, + {":boxing_glove:", "๐ŸฅŠ"}, + {":martial_arts_uniform:", "๐Ÿฅ‹"}, + {":goal_net:", "๐Ÿฅ…"}, + {":golf:", "โ›ณ"}, + {":ice_skate:", "โ›ธ๏ธ"}, + {":fishing_pole_and_fish:", "๐ŸŽฃ"}, + {":diving_mask:", "๐Ÿคฟ"}, + {":running_shirt_with_sash:", "๐ŸŽฝ"}, + {":ski:", "๐ŸŽฟ"}, + {":sled:", "๐Ÿ›ท"}, + {":curling_stone:", "๐ŸฅŒ"}, + {":dart:", "๐ŸŽฏ"}, + {":yo_yo:", "๐Ÿช€"}, + {":kite:", "๐Ÿช"}, + {":8ball:", "๐ŸŽฑ"}, + {":crystal_ball:", "๐Ÿ”ฎ"}, + {":magic_wand:", "๐Ÿช„"}, + {":nazar_amulet:", "๐Ÿงฟ"}, + {":video_game:", "๐ŸŽฎ"}, + {":joystick:", "๐Ÿ•น๏ธ"}, + {":slot_machine:", "๐ŸŽฐ"}, + {":game_die:", "๐ŸŽฒ"}, + {":jigsaw:", "๐Ÿงฉ"}, + {":teddy_bear:", "๐Ÿงธ"}, + {":pi_ata:", "๐Ÿช…"}, + {":nesting_dolls:", "๐Ÿช†"}, + {":spades:", "โ™ ๏ธ"}, + {":hearts:", "โ™ฅ๏ธ"}, + {":diamonds:", "โ™ฆ๏ธ"}, + {":clubs:", "โ™ฃ๏ธ"}, + {":chess_pawn:", "โ™Ÿ๏ธ"}, + {":black_joker:", "๐Ÿƒ"}, + {":mahjong:", "๐Ÿ€„"}, + {":flower_playing_cards:", "๐ŸŽด"}, + {":performing_arts:", "๐ŸŽญ"}, + {":framed_picture:", "๐Ÿ–ผ๏ธ"}, + {":art:", "๐ŸŽจ"}, + {":thread:", "๐Ÿงต"}, + {":sewing_needle:", "๐Ÿชก"}, + {":yarn:", "๐Ÿงถ"}, + {":knot:", "๐Ÿชข"}, + {":eyeglasses:", "๐Ÿ‘“"}, + {":dark_sunglasses:", "๐Ÿ•ถ๏ธ"}, + {":goggles:", "๐Ÿฅฝ"}, + {":lab_coat:", "๐Ÿฅผ"}, + {":safety_vest:", "๐Ÿฆบ"}, + {":necktie:", "๐Ÿ‘”"}, + {":shirt:", "๐Ÿ‘•"}, + {":tshirt:", "๐Ÿ‘•"}, + {":jeans:", "๐Ÿ‘–"}, + {":scarf:", "๐Ÿงฃ"}, + {":gloves:", "๐Ÿงค"}, + {":coat:", "๐Ÿงฅ"}, + {":socks:", "๐Ÿงฆ"}, + {":dress:", "๐Ÿ‘—"}, + {":kimono:", "๐Ÿ‘˜"}, + {":sari:", "๐Ÿฅป"}, + {":one_piece_swimsuit:", "๐Ÿฉฑ"}, + {":swim_brief:", "๐Ÿฉฒ"}, + {":shorts:", "๐Ÿฉณ"}, + {":bikini:", "๐Ÿ‘™"}, + {":womans_clothes:", "๐Ÿ‘š"}, + {":purse:", "๐Ÿ‘›"}, + {":handbag:", "๐Ÿ‘œ"}, + {":pouch:", "๐Ÿ‘"}, + {":shopping:", "๐Ÿ›๏ธ"}, + {":school_satchel:", "๐ŸŽ’"}, + {":thong_sandal:", "๐Ÿฉด"}, + {":mans_shoe:", "๐Ÿ‘ž"}, + {":shoe:", "๐Ÿ‘ž"}, + {":athletic_shoe:", "๐Ÿ‘Ÿ"}, + {":hiking_boot:", "๐Ÿฅพ"}, + {":flat_shoe:", "๐Ÿฅฟ"}, + {":high_heel:", "๐Ÿ‘ "}, + {":sandal:", "๐Ÿ‘ก"}, + {":ballet_shoes:", "๐Ÿฉฐ"}, + {":boot:", "๐Ÿ‘ข"}, + {":crown:", "๐Ÿ‘‘"}, + {":womans_hat:", "๐Ÿ‘’"}, + {":tophat:", "๐ŸŽฉ"}, + {":mortar_board:", "๐ŸŽ“"}, + {":billed_cap:", "๐Ÿงข"}, + {":military_helmet:", "๐Ÿช–"}, + {":rescue_worker_helmet:", "โ›‘๏ธ"}, + {":prayer_beads:", "๐Ÿ“ฟ"}, + {":lipstick:", "๐Ÿ’„"}, + {":ring:", "๐Ÿ’"}, + {":gem:", "๐Ÿ’Ž"}, + {":mute:", "๐Ÿ”‡"}, + {":speaker:", "๐Ÿ”ˆ"}, + {":sound:", "๐Ÿ”‰"}, + {":loud_sound:", "๐Ÿ”Š"}, + {":loudspeaker:", "๐Ÿ“ข"}, + {":mega:", "๐Ÿ“ฃ"}, + {":postal_horn:", "๐Ÿ“ฏ"}, + {":bell:", "๐Ÿ””"}, + {":no_bell:", "๐Ÿ”•"}, + {":musical_score:", "๐ŸŽผ"}, + {":musical_note:", "๐ŸŽต"}, + {":notes:", "๐ŸŽถ"}, + {":studio_microphone:", "๐ŸŽ™๏ธ"}, + {":level_slider:", "๐ŸŽš๏ธ"}, + {":control_knobs:", "๐ŸŽ›๏ธ"}, + {":microphone:", "๐ŸŽค"}, + {":headphones:", "๐ŸŽง"}, + {":radio:", "๐Ÿ“ป"}, + {":saxophone:", "๐ŸŽท"}, + {":accordion:", "๐Ÿช—"}, + {":guitar:", "๐ŸŽธ"}, + {":musical_keyboard:", "๐ŸŽน"}, + {":trumpet:", "๐ŸŽบ"}, + {":violin:", "๐ŸŽป"}, + {":banjo:", "๐Ÿช•"}, + {":drum:", "๐Ÿฅ"}, + {":long_drum:", "๐Ÿช˜"}, + {":iphone:", "๐Ÿ“ฑ"}, + {":calling:", "๐Ÿ“ฒ"}, + {":phone:", "โ˜Ž๏ธ"}, + {":telephone:", "โ˜Ž๏ธ"}, + {":telephone_receiver:", "๐Ÿ“ž"}, + {":pager:", "๐Ÿ“Ÿ"}, + {":fax:", "๐Ÿ“ "}, + {":battery:", "๐Ÿ”‹"}, + {":electric_plug:", "๐Ÿ”Œ"}, + {":computer:", "๐Ÿ’ป"}, + {":desktop_computer:", "๐Ÿ–ฅ๏ธ"}, + {":printer:", "๐Ÿ–จ๏ธ"}, + {":keyboard:", "โŒจ๏ธ"}, + {":computer_mouse:", "๐Ÿ–ฑ๏ธ"}, + {":trackball:", "๐Ÿ–ฒ๏ธ"}, + {":minidisc:", "๐Ÿ’ฝ"}, + {":floppy_disk:", "๐Ÿ’พ"}, + {":cd:", "๐Ÿ’ฟ"}, + {":dvd:", "๐Ÿ“€"}, + {":abacus:", "๐Ÿงฎ"}, + {":movie_camera:", "๐ŸŽฅ"}, + {":film_strip:", "๐ŸŽž๏ธ"}, + {":film_projector:", "๐Ÿ“ฝ๏ธ"}, + {":clapper:", "๐ŸŽฌ"}, + {":tv:", "๐Ÿ“บ"}, + {":camera:", "๐Ÿ“ท"}, + {":camera_flash:", "๐Ÿ“ธ"}, + {":video_camera:", "๐Ÿ“น"}, + {":vhs:", "๐Ÿ“ผ"}, + {":mag:", "๐Ÿ”"}, + {":mag_right:", "๐Ÿ”Ž"}, + {":candle:", "๐Ÿ•ฏ๏ธ"}, + {":bulb:", "๐Ÿ’ก"}, + {":flashlight:", "๐Ÿ”ฆ"}, + {":izakaya_lantern:", "๐Ÿฎ"}, + {":lantern:", "๐Ÿฎ"}, + {":diya_lamp:", "๐Ÿช”"}, + {":notebook_with_decorative_cover:", "๐Ÿ“”"}, + {":closed_book:", "๐Ÿ“•"}, + {":book:", "๐Ÿ“–"}, + {":open_book:", "๐Ÿ“–"}, + {":green_book:", "๐Ÿ“—"}, + {":blue_book:", "๐Ÿ“˜"}, + {":orange_book:", "๐Ÿ“™"}, + {":books:", "๐Ÿ“š"}, + {":notebook:", "๐Ÿ““"}, + {":ledger:", "๐Ÿ“’"}, + {":page_with_curl:", "๐Ÿ“ƒ"}, + {":scroll:", "๐Ÿ“œ"}, + {":page_facing_up:", "๐Ÿ“„"}, + {":newspaper:", "๐Ÿ“ฐ"}, + {":newspaper_roll:", "๐Ÿ—ž๏ธ"}, + {":bookmark_tabs:", "๐Ÿ“‘"}, + {":bookmark:", "๐Ÿ”–"}, + {":label:", "๐Ÿท๏ธ"}, + {":moneybag:", "๐Ÿ’ฐ"}, + {":coin:", "๐Ÿช™"}, + {":yen:", "๐Ÿ’ด"}, + {":dollar:", "๐Ÿ’ต"}, + {":euro:", "๐Ÿ’ถ"}, + {":pound:", "๐Ÿ’ท"}, + {":money_with_wings:", "๐Ÿ’ธ"}, + {":credit_card:", "๐Ÿ’ณ"}, + {":receipt:", "๐Ÿงพ"}, + {":chart:", "๐Ÿ’น"}, + {":email:", "โœ‰๏ธ"}, + {":envelope:", "โœ‰๏ธ"}, + {":e-mail:", "๐Ÿ“ง"}, + {":incoming_envelope:", "๐Ÿ“จ"}, + {":envelope_with_arrow:", "๐Ÿ“ฉ"}, + {":outbox_tray:", "๐Ÿ“ค"}, + {":inbox_tray:", "๐Ÿ“ฅ"}, + {":package:", "๐Ÿ“ฆ"}, + {":mailbox:", "๐Ÿ“ซ"}, + {":mailbox_closed:", "๐Ÿ“ช"}, + {":mailbox_with_mail:", "๐Ÿ“ฌ"}, + {":mailbox_with_no_mail:", "๐Ÿ“ญ"}, + {":postbox:", "๐Ÿ“ฎ"}, + {":ballot_box:", "๐Ÿ—ณ๏ธ"}, + {":pencil2:", "โœ๏ธ"}, + {":black_nib:", "โœ’๏ธ"}, + {":fountain_pen:", "๐Ÿ–‹๏ธ"}, + {":pen:", "๐Ÿ–Š๏ธ"}, + {":paintbrush:", "๐Ÿ–Œ๏ธ"}, + {":crayon:", "๐Ÿ–๏ธ"}, + {":memo:", "๐Ÿ“"}, + {":pencil:", "๐Ÿ“"}, + {":briefcase:", "๐Ÿ’ผ"}, + {":file_folder:", "๐Ÿ“"}, + {":open_file_folder:", "๐Ÿ“‚"}, + {":card_index_dividers:", "๐Ÿ—‚๏ธ"}, + {":date:", "๐Ÿ“…"}, + {":calendar:", "๐Ÿ“†"}, + {":spiral_notepad:", "๐Ÿ—’๏ธ"}, + {":spiral_calendar:", "๐Ÿ—“๏ธ"}, + {":card_index:", "๐Ÿ“‡"}, + {":chart_with_upwards_trend:", "๐Ÿ“ˆ"}, + {":chart_with_downwards_trend:", "๐Ÿ“‰"}, + {":bar_chart:", "๐Ÿ“Š"}, + {":clipboard:", "๐Ÿ“‹"}, + {":pushpin:", "๐Ÿ“Œ"}, + {":round_pushpin:", "๐Ÿ“"}, + {":paperclip:", "๐Ÿ“Ž"}, + {":paperclips:", "๐Ÿ–‡๏ธ"}, + {":straight_ruler:", "๐Ÿ“"}, + {":triangular_ruler:", "๐Ÿ“"}, + {":scissors:", "โœ‚๏ธ"}, + {":card_file_box:", "๐Ÿ—ƒ๏ธ"}, + {":file_cabinet:", "๐Ÿ—„๏ธ"}, + {":wastebasket:", "๐Ÿ—‘๏ธ"}, + {":lock:", "๐Ÿ”’"}, + {":unlock:", "๐Ÿ”“"}, + {":lock_with_ink_pen:", "๐Ÿ”"}, + {":closed_lock_with_key:", "๐Ÿ”"}, + {":key:", "๐Ÿ”‘"}, + {":old_key:", "๐Ÿ—๏ธ"}, + {":hammer:", "๐Ÿ”จ"}, + {":axe:", "๐Ÿช“"}, + {":pick:", "โ›๏ธ"}, + {":hammer_and_pick:", "โš’๏ธ"}, + {":hammer_and_wrench:", "๐Ÿ› ๏ธ"}, + {":dagger:", "๐Ÿ—ก๏ธ"}, + {":crossed_swords:", "โš”๏ธ"}, + {":gun:", "๐Ÿ”ซ"}, + {":boomerang:", "๐Ÿชƒ"}, + {":bow_and_arrow:", "๐Ÿน"}, + {":shield:", "๐Ÿ›ก๏ธ"}, + {":carpentry_saw:", "๐Ÿชš"}, + {":wrench:", "๐Ÿ”ง"}, + {":screwdriver:", "๐Ÿช›"}, + {":nut_and_bolt:", "๐Ÿ”ฉ"}, + {":gear:", "โš™๏ธ"}, + {":clamp:", "๐Ÿ—œ๏ธ"}, + {":balance_scale:", "โš–๏ธ"}, + {":probing_cane:", "๐Ÿฆฏ"}, + {":link:", "๐Ÿ”—"}, + {":chains:", "โ›“๏ธ"}, + {":hook:", "๐Ÿช"}, + {":toolbox:", "๐Ÿงฐ"}, + {":magnet:", "๐Ÿงฒ"}, + {":ladder:", "๐Ÿชœ"}, + {":alembic:", "โš—๏ธ"}, + {":test_tube:", "๐Ÿงช"}, + {":petri_dish:", "๐Ÿงซ"}, + {":dna:", "๐Ÿงฌ"}, + {":microscope:", "๐Ÿ”ฌ"}, + {":telescope:", "๐Ÿ”ญ"}, + {":satellite:", "๐Ÿ“ก"}, + {":syringe:", "๐Ÿ’‰"}, + {":drop_of_blood:", "๐Ÿฉธ"}, + {":pill:", "๐Ÿ’Š"}, + {":adhesive_bandage:", "๐Ÿฉน"}, + {":stethoscope:", "๐Ÿฉบ"}, + {":door:", "๐Ÿšช"}, + {":elevator:", "๐Ÿ›—"}, + {":mirror:", "๐Ÿชž"}, + {":window:", "๐ŸชŸ"}, + {":bed:", "๐Ÿ›๏ธ"}, + {":couch_and_lamp:", "๐Ÿ›‹๏ธ"}, + {":chair:", "๐Ÿช‘"}, + {":toilet:", "๐Ÿšฝ"}, + {":plunger:", "๐Ÿช "}, + {":shower:", "๐Ÿšฟ"}, + {":bathtub:", "๐Ÿ›"}, + {":mouse_trap:", "๐Ÿชค"}, + {":razor:", "๐Ÿช’"}, + {":lotion_bottle:", "๐Ÿงด"}, + {":safety_pin:", "๐Ÿงท"}, + {":broom:", "๐Ÿงน"}, + {":basket:", "๐Ÿงบ"}, + {":roll_of_paper:", "๐Ÿงป"}, + {":bucket:", "๐Ÿชฃ"}, + {":soap:", "๐Ÿงผ"}, + {":toothbrush:", "๐Ÿชฅ"}, + {":sponge:", "๐Ÿงฝ"}, + {":fire_extinguisher:", "๐Ÿงฏ"}, + {":shopping_cart:", "๐Ÿ›’"}, + {":smoking:", "๐Ÿšฌ"}, + {":coffin:", "โšฐ๏ธ"}, + {":headstone:", "๐Ÿชฆ"}, + {":funeral_urn:", "โšฑ๏ธ"}, + {":moyai:", "๐Ÿ—ฟ"}, + {":placard:", "๐Ÿชง"}, + {":atm:", "๐Ÿง"}, + {":put_litter_in_its_place:", "๐Ÿšฎ"}, + {":potable_water:", "๐Ÿšฐ"}, + {":wheelchair:", "โ™ฟ"}, + {":mens:", "๐Ÿšน"}, + {":womens:", "๐Ÿšบ"}, + {":restroom:", "๐Ÿšป"}, + {":baby_symbol:", "๐Ÿšผ"}, + {":wc:", "๐Ÿšพ"}, + {":passport_control:", "๐Ÿ›‚"}, + {":customs:", "๐Ÿ›ƒ"}, + {":baggage_claim:", "๐Ÿ›„"}, + {":left_luggage:", "๐Ÿ›…"}, + {":warning:", "โš ๏ธ"}, + {":children_crossing:", "๐Ÿšธ"}, + {":no_entry:", "โ›”"}, + {":no_entry_sign:", "๐Ÿšซ"}, + {":no_bicycles:", "๐Ÿšณ"}, + {":no_smoking:", "๐Ÿšญ"}, + {":do_not_litter:", "๐Ÿšฏ"}, + {":non-potable_water:", "๐Ÿšฑ"}, + {":no_pedestrians:", "๐Ÿšท"}, + {":no_mobile_phones:", "๐Ÿ“ต"}, + {":underage:", "๐Ÿ”ž"}, + {":radioactive:", "โ˜ข๏ธ"}, + {":biohazard:", "โ˜ฃ๏ธ"}, + {":arrow_up:", "โฌ†๏ธ"}, + {":arrow_upper_right:", "โ†—๏ธ"}, + {":arrow_right:", "โžก๏ธ"}, + {":arrow_lower_right:", "โ†˜๏ธ"}, + {":arrow_down:", "โฌ‡๏ธ"}, + {":arrow_lower_left:", "โ†™๏ธ"}, + {":arrow_left:", "โฌ…๏ธ"}, + {":arrow_upper_left:", "โ†–๏ธ"}, + {":arrow_up_down:", "โ†•๏ธ"}, + {":left_right_arrow:", "โ†”๏ธ"}, + {":leftwards_arrow_with_hook:", "โ†ฉ๏ธ"}, + {":arrow_right_hook:", "โ†ช๏ธ"}, + {":arrow_heading_up:", "โคด๏ธ"}, + {":arrow_heading_down:", "โคต๏ธ"}, + {":arrows_clockwise:", "๐Ÿ”ƒ"}, + {":arrows_counterclockwise:", "๐Ÿ”„"}, + {":back:", "๐Ÿ”™"}, + {":end:", "๐Ÿ”š"}, + {":on:", "๐Ÿ”›"}, + {":soon:", "๐Ÿ”œ"}, + {":top:", "๐Ÿ”"}, + {":place_of_worship:", "๐Ÿ›"}, + {":atom_symbol:", "โš›๏ธ"}, + {":om:", "๐Ÿ•‰๏ธ"}, + {":star_of_david:", "โœก๏ธ"}, + {":wheel_of_dharma:", "โ˜ธ๏ธ"}, + {":yin_yang:", "โ˜ฏ๏ธ"}, + {":latin_cross:", "โœ๏ธ"}, + {":orthodox_cross:", "โ˜ฆ๏ธ"}, + {":star_and_crescent:", "โ˜ช๏ธ"}, + {":peace_symbol:", "โ˜ฎ๏ธ"}, + {":menorah:", "๐Ÿ•Ž"}, + {":six_pointed_star:", "๐Ÿ”ฏ"}, + {":aries:", "โ™ˆ"}, + {":taurus:", "โ™‰"}, + {":gemini:", "โ™Š"}, + {":cancer:", "โ™‹"}, + {":leo:", "โ™Œ"}, + {":virgo:", "โ™"}, + {":libra:", "โ™Ž"}, + {":scorpius:", "โ™"}, + {":sagittarius:", "โ™"}, + {":capricorn:", "โ™‘"}, + {":aquarius:", "โ™’"}, + {":pisces:", "โ™“"}, + {":ophiuchus:", "โ›Ž"}, + {":twisted_rightwards_arrows:", "๐Ÿ”€"}, + {":repeat:", "๐Ÿ”"}, + {":repeat_one:", "๐Ÿ”‚"}, + {":arrow_forward:", "โ–ถ๏ธ"}, + {":fast_forward:", "โฉ"}, + {":next_track_button:", "โญ๏ธ"}, + {":play_or_pause_button:", "โฏ๏ธ"}, + {":arrow_backward:", "โ—€๏ธ"}, + {":rewind:", "โช"}, + {":previous_track_button:", "โฎ๏ธ"}, + {":arrow_up_small:", "๐Ÿ”ผ"}, + {":arrow_double_up:", "โซ"}, + {":arrow_down_small:", "๐Ÿ”ฝ"}, + {":arrow_double_down:", "โฌ"}, + {":pause_button:", "โธ๏ธ"}, + {":stop_button:", "โน๏ธ"}, + {":record_button:", "โบ๏ธ"}, + {":eject_button:", "โ๏ธ"}, + {":cinema:", "๐ŸŽฆ"}, + {":low_brightness:", "๐Ÿ”…"}, + {":high_brightness:", "๐Ÿ”†"}, + {":signal_strength:", "๐Ÿ“ถ"}, + {":vibration_mode:", "๐Ÿ“ณ"}, + {":mobile_phone_off:", "๐Ÿ“ด"}, + {":female_sign:", "โ™€๏ธ"}, + {":male_sign:", "โ™‚๏ธ"}, + {":transgender_symbol:", "โšง๏ธ"}, + {":heavy_multiplication_x:", "โœ–๏ธ"}, + {":heavy_plus_sign:", "โž•"}, + {":heavy_minus_sign:", "โž–"}, + {":heavy_division_sign:", "โž—"}, + {":infinity:", "โ™พ๏ธ"}, + {":bangbang:", "โ€ผ๏ธ"}, + {":interrobang:", "โ‰๏ธ"}, + {":question:", "โ“"}, + {":grey_question:", "โ”"}, + {":grey_exclamation:", "โ•"}, + {":exclamation:", "โ—"}, + {":heavy_exclamation_mark:", "โ—"}, + {":wavy_dash:", "ใ€ฐ๏ธ"}, + {":currency_exchange:", "๐Ÿ’ฑ"}, + {":heavy_dollar_sign:", "๐Ÿ’ฒ"}, + {":medical_symbol:", "โš•๏ธ"}, + {":recycle:", "โ™ป๏ธ"}, + {":fleur_de_lis:", "โšœ๏ธ"}, + {":trident:", "๐Ÿ”ฑ"}, + {":name_badge:", "๐Ÿ“›"}, + {":beginner:", "๐Ÿ”ฐ"}, + {":o:", "โญ•"}, + {":white_check_mark:", "โœ…"}, + {":ballot_box_with_check:", "โ˜‘๏ธ"}, + {":heavy_check_mark:", "โœ”๏ธ"}, + {":x:", "โŒ"}, + {":negative_squared_cross_mark:", "โŽ"}, + {":curly_loop:", "โžฐ"}, + {":loop:", "โžฟ"}, + {":part_alternation_mark:", "ใ€ฝ๏ธ"}, + {":eight_spoked_asterisk:", "โœณ๏ธ"}, + {":eight_pointed_black_star:", "โœด๏ธ"}, + {":sparkle:", "โ‡๏ธ"}, + {":copyright:", "ยฉ๏ธ"}, + {":registered:", "ยฎ๏ธ"}, + {":tm:", "โ„ข๏ธ"}, + {":hash:", "#๏ธโƒฃ"}, + {":asterisk:", "*๏ธโƒฃ"}, + {":zero:", "0๏ธโƒฃ"}, + {":one:", "1๏ธโƒฃ"}, + {":two:", "2๏ธโƒฃ"}, + {":three:", "3๏ธโƒฃ"}, + {":four:", "4๏ธโƒฃ"}, + {":five:", "5๏ธโƒฃ"}, + {":six:", "6๏ธโƒฃ"}, + {":seven:", "7๏ธโƒฃ"}, + {":eight:", "8๏ธโƒฃ"}, + {":nine:", "9๏ธโƒฃ"}, + {":keycap_ten:", "๐Ÿ”Ÿ"}, + {":capital_abcd:", "๐Ÿ” "}, + {":abcd:", "๐Ÿ”ก"}, + {":1234:", "๐Ÿ”ข"}, + {":symbols:", "๐Ÿ”ฃ"}, + {":abc:", "๐Ÿ”ค"}, + {":a:", "๐Ÿ…ฐ๏ธ"}, + {":ab:", "๐Ÿ†Ž"}, + {":b:", "๐Ÿ…ฑ๏ธ"}, + {":cl:", "๐Ÿ†‘"}, + {":cool:", "๐Ÿ†’"}, + {":free:", "๐Ÿ†“"}, + {":information_source:", "โ„น๏ธ"}, + {":id:", "๐Ÿ†”"}, + {":m:", "โ“‚๏ธ"}, + {":new:", "๐Ÿ†•"}, + {":ng:", "๐Ÿ†–"}, + {":o2:", "๐Ÿ…พ๏ธ"}, + {":ok:", "๐Ÿ†—"}, + {":parking:", "๐Ÿ…ฟ๏ธ"}, + {":sos:", "๐Ÿ†˜"}, + {":up:", "๐Ÿ†™"}, + {":vs:", "๐Ÿ†š"}, + {":koko:", "๐Ÿˆ"}, + {":sa:", "๐Ÿˆ‚๏ธ"}, + {":u6708:", "๐Ÿˆท๏ธ"}, + {":u6709:", "๐Ÿˆถ"}, + {":u6307:", "๐Ÿˆฏ"}, + {":ideograph_advantage:", "๐Ÿ‰"}, + {":u5272:", "๐Ÿˆน"}, + {":u7121:", "๐Ÿˆš"}, + {":u7981:", "๐Ÿˆฒ"}, + {":accept:", "๐Ÿ‰‘"}, + {":u7533:", "๐Ÿˆธ"}, + {":u5408:", "๐Ÿˆด"}, + {":u7a7a:", "๐Ÿˆณ"}, + {":congratulations:", "ใŠ—๏ธ"}, + {":secret:", "ใŠ™๏ธ"}, + {":u55b6:", "๐Ÿˆบ"}, + {":u6e80:", "๐Ÿˆต"}, + {":red_circle:", "๐Ÿ”ด"}, + {":orange_circle:", "๐ŸŸ "}, + {":yellow_circle:", "๐ŸŸก"}, + {":green_circle:", "๐ŸŸข"}, + {":large_blue_circle:", "๐Ÿ”ต"}, + {":purple_circle:", "๐ŸŸฃ"}, + {":brown_circle:", "๐ŸŸค"}, + {":black_circle:", "โšซ"}, + {":white_circle:", "โšช"}, + {":red_square:", "๐ŸŸฅ"}, + {":orange_square:", "๐ŸŸง"}, + {":yellow_square:", "๐ŸŸจ"}, + {":green_square:", "๐ŸŸฉ"}, + {":blue_square:", "๐ŸŸฆ"}, + {":purple_square:", "๐ŸŸช"}, + {":brown_square:", "๐ŸŸซ"}, + {":black_large_square:", "โฌ›"}, + {":white_large_square:", "โฌœ"}, + {":black_medium_square:", "โ—ผ๏ธ"}, + {":white_medium_square:", "โ—ป๏ธ"}, + {":black_medium_small_square:", "โ—พ"}, + {":white_medium_small_square:", "โ—ฝ"}, + {":black_small_square:", "โ–ช๏ธ"}, + {":white_small_square:", "โ–ซ๏ธ"}, + {":large_orange_diamond:", "๐Ÿ”ถ"}, + {":large_blue_diamond:", "๐Ÿ”ท"}, + {":small_orange_diamond:", "๐Ÿ”ธ"}, + {":small_blue_diamond:", "๐Ÿ”น"}, + {":small_red_triangle:", "๐Ÿ”บ"}, + {":small_red_triangle_down:", "๐Ÿ”ป"}, + {":diamond_shape_with_a_dot_inside:", "๐Ÿ’ "}, + {":radio_button:", "๐Ÿ”˜"}, + {":white_square_button:", "๐Ÿ”ณ"}, + {":black_square_button:", "๐Ÿ”ฒ"}, + {":checkered_flag:", "๐Ÿ"}, + {":triangular_flag_on_post:", "๐Ÿšฉ"}, + {":crossed_flags:", "๐ŸŽŒ"}, + {":black_flag:", "๐Ÿด"}, + {":white_flag:", "๐Ÿณ๏ธ"}, + {":rainbow_flag:", "๐Ÿณ๏ธโ€๐ŸŒˆ"}, + {":transgender_flag:", "๐Ÿณ๏ธโ€โšง๏ธ"}, + {":pirate_flag:", "๐Ÿดโ€โ˜ ๏ธ"}, + {":ascension_island:", "๐Ÿ‡ฆ๐Ÿ‡จ"}, + {":andorra:", "๐Ÿ‡ฆ๐Ÿ‡ฉ"}, + {":united_arab_emirates:", "๐Ÿ‡ฆ๐Ÿ‡ช"}, + {":afghanistan:", "๐Ÿ‡ฆ๐Ÿ‡ซ"}, + {":antigua_barbuda:", "๐Ÿ‡ฆ๐Ÿ‡ฌ"}, + {":anguilla:", "๐Ÿ‡ฆ๐Ÿ‡ฎ"}, + {":albania:", "๐Ÿ‡ฆ๐Ÿ‡ฑ"}, + {":armenia:", "๐Ÿ‡ฆ๐Ÿ‡ฒ"}, + {":angola:", "๐Ÿ‡ฆ๐Ÿ‡ด"}, + {":antarctica:", "๐Ÿ‡ฆ๐Ÿ‡ถ"}, + {":argentina:", "๐Ÿ‡ฆ๐Ÿ‡ท"}, + {":american_samoa:", "๐Ÿ‡ฆ๐Ÿ‡ธ"}, + {":austria:", "๐Ÿ‡ฆ๐Ÿ‡น"}, + {":australia:", "๐Ÿ‡ฆ๐Ÿ‡บ"}, + {":aruba:", "๐Ÿ‡ฆ๐Ÿ‡ผ"}, + {":aland_islands:", "๐Ÿ‡ฆ๐Ÿ‡ฝ"}, + {":azerbaijan:", "๐Ÿ‡ฆ๐Ÿ‡ฟ"}, + {":bosnia_herzegovina:", "๐Ÿ‡ง๐Ÿ‡ฆ"}, + {":barbados:", "๐Ÿ‡ง๐Ÿ‡ง"}, + {":bangladesh:", "๐Ÿ‡ง๐Ÿ‡ฉ"}, + {":belgium:", "๐Ÿ‡ง๐Ÿ‡ช"}, + {":burkina_faso:", "๐Ÿ‡ง๐Ÿ‡ซ"}, + {":bulgaria:", "๐Ÿ‡ง๐Ÿ‡ฌ"}, + {":bahrain:", "๐Ÿ‡ง๐Ÿ‡ญ"}, + {":burundi:", "๐Ÿ‡ง๐Ÿ‡ฎ"}, + {":benin:", "๐Ÿ‡ง๐Ÿ‡ฏ"}, + {":st_barthelemy:", "๐Ÿ‡ง๐Ÿ‡ฑ"}, + {":bermuda:", "๐Ÿ‡ง๐Ÿ‡ฒ"}, + {":brunei:", "๐Ÿ‡ง๐Ÿ‡ณ"}, + {":bolivia:", "๐Ÿ‡ง๐Ÿ‡ด"}, + {":caribbean_netherlands:", "๐Ÿ‡ง๐Ÿ‡ถ"}, + {":brazil:", "๐Ÿ‡ง๐Ÿ‡ท"}, + {":bahamas:", "๐Ÿ‡ง๐Ÿ‡ธ"}, + {":bhutan:", "๐Ÿ‡ง๐Ÿ‡น"}, + {":bouvet_island:", "๐Ÿ‡ง๐Ÿ‡ป"}, + {":botswana:", "๐Ÿ‡ง๐Ÿ‡ผ"}, + {":belarus:", "๐Ÿ‡ง๐Ÿ‡พ"}, + {":belize:", "๐Ÿ‡ง๐Ÿ‡ฟ"}, + {":canada:", "๐Ÿ‡จ๐Ÿ‡ฆ"}, + {":cocos_islands:", "๐Ÿ‡จ๐Ÿ‡จ"}, + {":congo_kinshasa:", "๐Ÿ‡จ๐Ÿ‡ฉ"}, + {":central_african_republic:", "๐Ÿ‡จ๐Ÿ‡ซ"}, + {":congo_brazzaville:", "๐Ÿ‡จ๐Ÿ‡ฌ"}, + {":switzerland:", "๐Ÿ‡จ๐Ÿ‡ญ"}, + {":cote_divoire:", "๐Ÿ‡จ๐Ÿ‡ฎ"}, + {":cook_islands:", "๐Ÿ‡จ๐Ÿ‡ฐ"}, + {":chile:", "๐Ÿ‡จ๐Ÿ‡ฑ"}, + {":cameroon:", "๐Ÿ‡จ๐Ÿ‡ฒ"}, + {":cn:", "๐Ÿ‡จ๐Ÿ‡ณ"}, + {":colombia:", "๐Ÿ‡จ๐Ÿ‡ด"}, + {":clipperton_island:", "๐Ÿ‡จ๐Ÿ‡ต"}, + {":costa_rica:", "๐Ÿ‡จ๐Ÿ‡ท"}, + {":cuba:", "๐Ÿ‡จ๐Ÿ‡บ"}, + {":cape_verde:", "๐Ÿ‡จ๐Ÿ‡ป"}, + {":curacao:", "๐Ÿ‡จ๐Ÿ‡ผ"}, + {":christmas_island:", "๐Ÿ‡จ๐Ÿ‡ฝ"}, + {":cyprus:", "๐Ÿ‡จ๐Ÿ‡พ"}, + {":czech_republic:", "๐Ÿ‡จ๐Ÿ‡ฟ"}, + {":de:", "๐Ÿ‡ฉ๐Ÿ‡ช"}, + {":diego_garcia:", "๐Ÿ‡ฉ๐Ÿ‡ฌ"}, + {":djibouti:", "๐Ÿ‡ฉ๐Ÿ‡ฏ"}, + {":denmark:", "๐Ÿ‡ฉ๐Ÿ‡ฐ"}, + {":dominica:", "๐Ÿ‡ฉ๐Ÿ‡ฒ"}, + {":dominican_republic:", "๐Ÿ‡ฉ๐Ÿ‡ด"}, + {":algeria:", "๐Ÿ‡ฉ๐Ÿ‡ฟ"}, + {":ceuta_melilla:", "๐Ÿ‡ช๐Ÿ‡ฆ"}, + {":ecuador:", "๐Ÿ‡ช๐Ÿ‡จ"}, + {":estonia:", "๐Ÿ‡ช๐Ÿ‡ช"}, + {":egypt:", "๐Ÿ‡ช๐Ÿ‡ฌ"}, + {":western_sahara:", "๐Ÿ‡ช๐Ÿ‡ญ"}, + {":eritrea:", "๐Ÿ‡ช๐Ÿ‡ท"}, + {":es:", "๐Ÿ‡ช๐Ÿ‡ธ"}, + {":ethiopia:", "๐Ÿ‡ช๐Ÿ‡น"}, + {":eu:", "๐Ÿ‡ช๐Ÿ‡บ"}, + {":european_union:", "๐Ÿ‡ช๐Ÿ‡บ"}, + {":finland:", "๐Ÿ‡ซ๐Ÿ‡ฎ"}, + {":fiji:", "๐Ÿ‡ซ๐Ÿ‡ฏ"}, + {":falkland_islands:", "๐Ÿ‡ซ๐Ÿ‡ฐ"}, + {":micronesia:", "๐Ÿ‡ซ๐Ÿ‡ฒ"}, + {":faroe_islands:", "๐Ÿ‡ซ๐Ÿ‡ด"}, + {":fr:", "๐Ÿ‡ซ๐Ÿ‡ท"}, + {":gabon:", "๐Ÿ‡ฌ๐Ÿ‡ฆ"}, + {":gb:", "๐Ÿ‡ฌ๐Ÿ‡ง"}, + {":uk:", "๐Ÿ‡ฌ๐Ÿ‡ง"}, + {":grenada:", "๐Ÿ‡ฌ๐Ÿ‡ฉ"}, + {":georgia:", "๐Ÿ‡ฌ๐Ÿ‡ช"}, + {":french_guiana:", "๐Ÿ‡ฌ๐Ÿ‡ซ"}, + {":guernsey:", "๐Ÿ‡ฌ๐Ÿ‡ฌ"}, + {":ghana:", "๐Ÿ‡ฌ๐Ÿ‡ญ"}, + {":gibraltar:", "๐Ÿ‡ฌ๐Ÿ‡ฎ"}, + {":greenland:", "๐Ÿ‡ฌ๐Ÿ‡ฑ"}, + {":gambia:", "๐Ÿ‡ฌ๐Ÿ‡ฒ"}, + {":guinea:", "๐Ÿ‡ฌ๐Ÿ‡ณ"}, + {":guadeloupe:", "๐Ÿ‡ฌ๐Ÿ‡ต"}, + {":equatorial_guinea:", "๐Ÿ‡ฌ๐Ÿ‡ถ"}, + {":greece:", "๐Ÿ‡ฌ๐Ÿ‡ท"}, + {":south_georgia_south_sandwich_islands:", "๐Ÿ‡ฌ๐Ÿ‡ธ"}, + {":guatemala:", "๐Ÿ‡ฌ๐Ÿ‡น"}, + {":guam:", "๐Ÿ‡ฌ๐Ÿ‡บ"}, + {":guinea_bissau:", "๐Ÿ‡ฌ๐Ÿ‡ผ"}, + {":guyana:", "๐Ÿ‡ฌ๐Ÿ‡พ"}, + {":hong_kong:", "๐Ÿ‡ญ๐Ÿ‡ฐ"}, + {":heard_mcdonald_islands:", "๐Ÿ‡ญ๐Ÿ‡ฒ"}, + {":honduras:", "๐Ÿ‡ญ๐Ÿ‡ณ"}, + {":croatia:", "๐Ÿ‡ญ๐Ÿ‡ท"}, + {":haiti:", "๐Ÿ‡ญ๐Ÿ‡น"}, + {":hungary:", "๐Ÿ‡ญ๐Ÿ‡บ"}, + {":canary_islands:", "๐Ÿ‡ฎ๐Ÿ‡จ"}, + {":indonesia:", "๐Ÿ‡ฎ๐Ÿ‡ฉ"}, + {":ireland:", "๐Ÿ‡ฎ๐Ÿ‡ช"}, + {":israel:", "๐Ÿ‡ฎ๐Ÿ‡ฑ"}, + {":isle_of_man:", "๐Ÿ‡ฎ๐Ÿ‡ฒ"}, + {":india:", "๐Ÿ‡ฎ๐Ÿ‡ณ"}, + {":british_indian_ocean_territory:", "๐Ÿ‡ฎ๐Ÿ‡ด"}, + {":iraq:", "๐Ÿ‡ฎ๐Ÿ‡ถ"}, + {":iran:", "๐Ÿ‡ฎ๐Ÿ‡ท"}, + {":iceland:", "๐Ÿ‡ฎ๐Ÿ‡ธ"}, + {":it:", "๐Ÿ‡ฎ๐Ÿ‡น"}, + {":jersey:", "๐Ÿ‡ฏ๐Ÿ‡ช"}, + {":jamaica:", "๐Ÿ‡ฏ๐Ÿ‡ฒ"}, + {":jordan:", "๐Ÿ‡ฏ๐Ÿ‡ด"}, + {":jp:", "๐Ÿ‡ฏ๐Ÿ‡ต"}, + {":kenya:", "๐Ÿ‡ฐ๐Ÿ‡ช"}, + {":kyrgyzstan:", "๐Ÿ‡ฐ๐Ÿ‡ฌ"}, + {":cambodia:", "๐Ÿ‡ฐ๐Ÿ‡ญ"}, + {":kiribati:", "๐Ÿ‡ฐ๐Ÿ‡ฎ"}, + {":comoros:", "๐Ÿ‡ฐ๐Ÿ‡ฒ"}, + {":st_kitts_nevis:", "๐Ÿ‡ฐ๐Ÿ‡ณ"}, + {":north_korea:", "๐Ÿ‡ฐ๐Ÿ‡ต"}, + {":kr:", "๐Ÿ‡ฐ๐Ÿ‡ท"}, + {":kuwait:", "๐Ÿ‡ฐ๐Ÿ‡ผ"}, + {":cayman_islands:", "๐Ÿ‡ฐ๐Ÿ‡พ"}, + {":kazakhstan:", "๐Ÿ‡ฐ๐Ÿ‡ฟ"}, + {":laos:", "๐Ÿ‡ฑ๐Ÿ‡ฆ"}, + {":lebanon:", "๐Ÿ‡ฑ๐Ÿ‡ง"}, + {":st_lucia:", "๐Ÿ‡ฑ๐Ÿ‡จ"}, + {":liechtenstein:", "๐Ÿ‡ฑ๐Ÿ‡ฎ"}, + {":sri_lanka:", "๐Ÿ‡ฑ๐Ÿ‡ฐ"}, + {":liberia:", "๐Ÿ‡ฑ๐Ÿ‡ท"}, + {":lesotho:", "๐Ÿ‡ฑ๐Ÿ‡ธ"}, + {":lithuania:", "๐Ÿ‡ฑ๐Ÿ‡น"}, + {":luxembourg:", "๐Ÿ‡ฑ๐Ÿ‡บ"}, + {":latvia:", "๐Ÿ‡ฑ๐Ÿ‡ป"}, + {":libya:", "๐Ÿ‡ฑ๐Ÿ‡พ"}, + {":morocco:", "๐Ÿ‡ฒ๐Ÿ‡ฆ"}, + {":monaco:", "๐Ÿ‡ฒ๐Ÿ‡จ"}, + {":moldova:", "๐Ÿ‡ฒ๐Ÿ‡ฉ"}, + {":montenegro:", "๐Ÿ‡ฒ๐Ÿ‡ช"}, + {":st_martin:", "๐Ÿ‡ฒ๐Ÿ‡ซ"}, + {":madagascar:", "๐Ÿ‡ฒ๐Ÿ‡ฌ"}, + {":marshall_islands:", "๐Ÿ‡ฒ๐Ÿ‡ญ"}, + {":macedonia:", "๐Ÿ‡ฒ๐Ÿ‡ฐ"}, + {":mali:", "๐Ÿ‡ฒ๐Ÿ‡ฑ"}, + {":myanmar:", "๐Ÿ‡ฒ๐Ÿ‡ฒ"}, + {":mongolia:", "๐Ÿ‡ฒ๐Ÿ‡ณ"}, + {":macau:", "๐Ÿ‡ฒ๐Ÿ‡ด"}, + {":northern_mariana_islands:", "๐Ÿ‡ฒ๐Ÿ‡ต"}, + {":martinique:", "๐Ÿ‡ฒ๐Ÿ‡ถ"}, + {":mauritania:", "๐Ÿ‡ฒ๐Ÿ‡ท"}, + {":montserrat:", "๐Ÿ‡ฒ๐Ÿ‡ธ"}, + {":malta:", "๐Ÿ‡ฒ๐Ÿ‡น"}, + {":mauritius:", "๐Ÿ‡ฒ๐Ÿ‡บ"}, + {":maldives:", "๐Ÿ‡ฒ๐Ÿ‡ป"}, + {":malawi:", "๐Ÿ‡ฒ๐Ÿ‡ผ"}, + {":mexico:", "๐Ÿ‡ฒ๐Ÿ‡ฝ"}, + {":malaysia:", "๐Ÿ‡ฒ๐Ÿ‡พ"}, + {":mozambique:", "๐Ÿ‡ฒ๐Ÿ‡ฟ"}, + {":namibia:", "๐Ÿ‡ณ๐Ÿ‡ฆ"}, + {":new_caledonia:", "๐Ÿ‡ณ๐Ÿ‡จ"}, + {":niger:", "๐Ÿ‡ณ๐Ÿ‡ช"}, + {":norfolk_island:", "๐Ÿ‡ณ๐Ÿ‡ซ"}, + {":nigeria:", "๐Ÿ‡ณ๐Ÿ‡ฌ"}, + {":nicaragua:", "๐Ÿ‡ณ๐Ÿ‡ฎ"}, + {":netherlands:", "๐Ÿ‡ณ๐Ÿ‡ฑ"}, + {":norway:", "๐Ÿ‡ณ๐Ÿ‡ด"}, + {":nepal:", "๐Ÿ‡ณ๐Ÿ‡ต"}, + {":nauru:", "๐Ÿ‡ณ๐Ÿ‡ท"}, + {":niue:", "๐Ÿ‡ณ๐Ÿ‡บ"}, + {":new_zealand:", "๐Ÿ‡ณ๐Ÿ‡ฟ"}, + {":oman:", "๐Ÿ‡ด๐Ÿ‡ฒ"}, + {":panama:", "๐Ÿ‡ต๐Ÿ‡ฆ"}, + {":peru:", "๐Ÿ‡ต๐Ÿ‡ช"}, + {":french_polynesia:", "๐Ÿ‡ต๐Ÿ‡ซ"}, + {":papua_new_guinea:", "๐Ÿ‡ต๐Ÿ‡ฌ"}, + {":philippines:", "๐Ÿ‡ต๐Ÿ‡ญ"}, + {":pakistan:", "๐Ÿ‡ต๐Ÿ‡ฐ"}, + {":poland:", "๐Ÿ‡ต๐Ÿ‡ฑ"}, + {":st_pierre_miquelon:", "๐Ÿ‡ต๐Ÿ‡ฒ"}, + {":pitcairn_islands:", "๐Ÿ‡ต๐Ÿ‡ณ"}, + {":puerto_rico:", "๐Ÿ‡ต๐Ÿ‡ท"}, + {":palestinian_territories:", "๐Ÿ‡ต๐Ÿ‡ธ"}, + {":portugal:", "๐Ÿ‡ต๐Ÿ‡น"}, + {":palau:", "๐Ÿ‡ต๐Ÿ‡ผ"}, + {":paraguay:", "๐Ÿ‡ต๐Ÿ‡พ"}, + {":qatar:", "๐Ÿ‡ถ๐Ÿ‡ฆ"}, + {":reunion:", "๐Ÿ‡ท๐Ÿ‡ช"}, + {":romania:", "๐Ÿ‡ท๐Ÿ‡ด"}, + {":serbia:", "๐Ÿ‡ท๐Ÿ‡ธ"}, + {":ru:", "๐Ÿ‡ท๐Ÿ‡บ"}, + {":rwanda:", "๐Ÿ‡ท๐Ÿ‡ผ"}, + {":saudi_arabia:", "๐Ÿ‡ธ๐Ÿ‡ฆ"}, + {":solomon_islands:", "๐Ÿ‡ธ๐Ÿ‡ง"}, + {":seychelles:", "๐Ÿ‡ธ๐Ÿ‡จ"}, + {":sudan:", "๐Ÿ‡ธ๐Ÿ‡ฉ"}, + {":sweden:", "๐Ÿ‡ธ๐Ÿ‡ช"}, + {":singapore:", "๐Ÿ‡ธ๐Ÿ‡ฌ"}, + {":st_helena:", "๐Ÿ‡ธ๐Ÿ‡ญ"}, + {":slovenia:", "๐Ÿ‡ธ๐Ÿ‡ฎ"}, + {":svalbard_jan_mayen:", "๐Ÿ‡ธ๐Ÿ‡ฏ"}, + {":slovakia:", "๐Ÿ‡ธ๐Ÿ‡ฐ"}, + {":sierra_leone:", "๐Ÿ‡ธ๐Ÿ‡ฑ"}, + {":san_marino:", "๐Ÿ‡ธ๐Ÿ‡ฒ"}, + {":senegal:", "๐Ÿ‡ธ๐Ÿ‡ณ"}, + {":somalia:", "๐Ÿ‡ธ๐Ÿ‡ด"}, + {":suriname:", "๐Ÿ‡ธ๐Ÿ‡ท"}, + {":south_sudan:", "๐Ÿ‡ธ๐Ÿ‡ธ"}, + {":sao_tome_principe:", "๐Ÿ‡ธ๐Ÿ‡น"}, + {":el_salvador:", "๐Ÿ‡ธ๐Ÿ‡ป"}, + {":sint_maarten:", "๐Ÿ‡ธ๐Ÿ‡ฝ"}, + {":syria:", "๐Ÿ‡ธ๐Ÿ‡พ"}, + {":swaziland:", "๐Ÿ‡ธ๐Ÿ‡ฟ"}, + {":tristan_da_cunha:", "๐Ÿ‡น๐Ÿ‡ฆ"}, + {":turks_caicos_islands:", "๐Ÿ‡น๐Ÿ‡จ"}, + {":chad:", "๐Ÿ‡น๐Ÿ‡ฉ"}, + {":french_southern_territories:", "๐Ÿ‡น๐Ÿ‡ซ"}, + {":togo:", "๐Ÿ‡น๐Ÿ‡ฌ"}, + {":thailand:", "๐Ÿ‡น๐Ÿ‡ญ"}, + {":tajikistan:", "๐Ÿ‡น๐Ÿ‡ฏ"}, + {":tokelau:", "๐Ÿ‡น๐Ÿ‡ฐ"}, + {":timor_leste:", "๐Ÿ‡น๐Ÿ‡ฑ"}, + {":turkmenistan:", "๐Ÿ‡น๐Ÿ‡ฒ"}, + {":tunisia:", "๐Ÿ‡น๐Ÿ‡ณ"}, + {":tonga:", "๐Ÿ‡น๐Ÿ‡ด"}, + {":tr:", "๐Ÿ‡น๐Ÿ‡ท"}, + {":trinidad_tobago:", "๐Ÿ‡น๐Ÿ‡น"}, + {":tuvalu:", "๐Ÿ‡น๐Ÿ‡ป"}, + {":taiwan:", "๐Ÿ‡น๐Ÿ‡ผ"}, + {":tanzania:", "๐Ÿ‡น๐Ÿ‡ฟ"}, + {":ukraine:", "๐Ÿ‡บ๐Ÿ‡ฆ"}, + {":uganda:", "๐Ÿ‡บ๐Ÿ‡ฌ"}, + {":us_outlying_islands:", "๐Ÿ‡บ๐Ÿ‡ฒ"}, + {":united_nations:", "๐Ÿ‡บ๐Ÿ‡ณ"}, + {":us:", "๐Ÿ‡บ๐Ÿ‡ธ"}, + {":uruguay:", "๐Ÿ‡บ๐Ÿ‡พ"}, + {":uzbekistan:", "๐Ÿ‡บ๐Ÿ‡ฟ"}, + {":vatican_city:", "๐Ÿ‡ป๐Ÿ‡ฆ"}, + {":st_vincent_grenadines:", "๐Ÿ‡ป๐Ÿ‡จ"}, + {":venezuela:", "๐Ÿ‡ป๐Ÿ‡ช"}, + {":british_virgin_islands:", "๐Ÿ‡ป๐Ÿ‡ฌ"}, + {":us_virgin_islands:", "๐Ÿ‡ป๐Ÿ‡ฎ"}, + {":vietnam:", "๐Ÿ‡ป๐Ÿ‡ณ"}, + {":vanuatu:", "๐Ÿ‡ป๐Ÿ‡บ"}, + {":wallis_futuna:", "๐Ÿ‡ผ๐Ÿ‡ซ"}, + {":samoa:", "๐Ÿ‡ผ๐Ÿ‡ธ"}, + {":kosovo:", "๐Ÿ‡ฝ๐Ÿ‡ฐ"}, + {":yemen:", "๐Ÿ‡พ๐Ÿ‡ช"}, + {":mayotte:", "๐Ÿ‡พ๐Ÿ‡น"}, + {":south_africa:", "๐Ÿ‡ฟ๐Ÿ‡ฆ"}, + {":zambia:", "๐Ÿ‡ฟ๐Ÿ‡ฒ"}, + {":zimbabwe:", "๐Ÿ‡ฟ๐Ÿ‡ผ"}, + {":england:", "๐Ÿด๓ ง๓ ข๓ ฅ๓ ฎ๓ ง๓ ฟ"}, + {":scotland:", "๐Ÿด๓ ง๓ ข๓ ณ๓ ฃ๓ ด๓ ฟ"}, + {":wales:", "๐Ÿด๓ ง๓ ข๓ ท๓ ฌ๓ ณ๓ ฟ"}, + {NULL, NULL} +}; + +#endif diff --git a/client/emojis_alt.h b/client/emojis_alt.h new file mode 100644 index 000000000..9d11f73b9 --- /dev/null +++ b/client/emojis_alt.h @@ -0,0 +1,15 @@ +#ifndef EMOJIS_ALT_H__ +#define EMOJIS_ALT_H__ + +typedef struct emoji_alt_s { + const char *alias; + const char *alttext; +} emoji_alt_t; +// emoji_alt_t array are expected to be NULL terminated + +static emoji_alt_t EmojiAltTable[] = { + {":wink:", ";)"}, + {NULL, NULL} +}; + +#endif diff --git a/client/emojis_scrap_github.py b/client/emojis_scrap_github.py new file mode 100755 index 000000000..777bf8aa5 --- /dev/null +++ b/client/emojis_scrap_github.py @@ -0,0 +1,35 @@ +#!/usr/bin/env python3 + +# Mostly derived from https://github.com/mrowa44/emojify Copyright (c) 2015 Justyna Rachowicz + +from urllib.request import urlopen +import json + + +EMOJI_JSON_URL = 'https://raw.githubusercontent.com/github/gemoji/master/db/emoji.json' + +def print_emoji(emoji_json): + for alias in emoji_json['aliases']: + print(' {{":{0}:", "{1}"}},'.format(alias, emoji_json['emoji'])) + +print( +"""#ifndef EMOJIS_H__ +#define EMOJIS_H__ + +typedef struct emoji_s { + const char *alias; + const char *emoji; +} emoji_t; +// emoji_t array are expected to be NULL terminated + +static emoji_t EmojiTable[] = {""") +with urlopen(EMOJI_JSON_URL) as conn: + emojis_json = json.loads(conn.read().decode('utf-8')) + for emoji_json in emojis_json: + print_emoji(emoji_json) + +print( +""" {NULL, NULL} +}; + +#endif""") diff --git a/client/proxmark3.c b/client/proxmark3.c index 522d982c7..c21852852 100644 --- a/client/proxmark3.c +++ b/client/proxmark3.c @@ -36,7 +36,7 @@ static void showBanner(void) { PrintAndLogEx(NORMAL, " " _BLUE_("โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ•— ")); PrintAndLogEx(NORMAL, " " _BLUE_("โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ•‘ โ•โ•โ–ˆโ•‘")); PrintAndLogEx(NORMAL, " " _BLUE_("โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ•”โ–ˆโ–ˆโ–ˆโ–ˆโ•”โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ–ˆโ–ˆโ•”โ•")); - PrintAndLogEx(NORMAL, " " _BLUE_("โ–ˆโ–ˆโ•”โ•โ•โ•โ• โ–ˆโ–ˆโ•‘โ•šโ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ•‘ โ•โ•โ–ˆโ•‘") " iceman@icesql.net"); + PrintAndLogEx(NORMAL, " " _BLUE_("โ–ˆโ–ˆโ•”โ•โ•โ•โ• โ–ˆโ–ˆโ•‘โ•šโ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ•‘ โ•โ•โ–ˆโ•‘") " :snowflake: iceman@icesql.net"); PrintAndLogEx(NORMAL, " " _BLUE_("โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•‘ โ•šโ•โ• โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ–ˆโ–ˆโ•”โ•") " https://github.com/rfidresearchgroup/proxmark3/"); PrintAndLogEx(NORMAL, " " _BLUE_("โ•šโ•โ• โ•šโ•โ• โ•šโ•โ• โ•šโ•โ•โ•โ• ") "pre-release v4.0"); #else @@ -756,6 +756,7 @@ int main(int argc, char *argv[]) { } session.supports_colors = DetectWindowsAnsiSupport(); + session.emoji_mode = ALTTEXT; session.stdinOnTTY = isatty(STDIN_FILENO); session.stdoutOnTTY = isatty(STDOUT_FILENO); @@ -766,8 +767,10 @@ int main(int argc, char *argv[]) { // For info, grep --color=auto is doing sth like this, plus test getenv("TERM") != "dumb": // struct stat tmp_stat; // if ((fstat (STDOUT_FILENO, &tmp_stat) == 0) && (S_ISCHR (tmp_stat.st_mode)) && isatty(STDIN_FILENO)) - if (session.stdinOnTTY && session.stdoutOnTTY) + if (session.stdinOnTTY && session.stdoutOnTTY) { session.supports_colors = true; + session.emoji_mode = EMOJI; + } #endif // Let's take a baudrate ok for real UART, USB-CDC & BT don't use that info anyway if (speed == 0) diff --git a/client/ui.c b/client/ui.c index 91a2a49e6..1c04def6c 100644 --- a/client/ui.c +++ b/client/ui.c @@ -31,6 +31,8 @@ # include // _mkdir #endif #include +#include "emojis.h" +#include "emojis_alt.h" session_arg_t session; double CursorScaleFactor = 1; @@ -132,39 +134,66 @@ void PrintAndLogEx(logLevel_t level, const char *fmt, ...) { if (g_showhints == 0 && level == HINT) return; - char prefix[20] = {0}; + char prefix[40] = {0}; char buffer[MAX_PRINT_BUFFER] = {0}; - char buffer2[MAX_PRINT_BUFFER + 20] = {0}; + char buffer2[MAX_PRINT_BUFFER + sizeof(prefix)] = {0}; char *token = NULL; char *tmp_ptr = NULL; FILE *stream = stdout; const char *spinner[] = {_YELLOW_("[\\]"), _YELLOW_("[|]"), _YELLOW_("[/]"), _YELLOW_("[-]")}; + const char *spinner_emoji[] = {" :clock1: ", " :clock2: ", " :clock3: ", " :clock4: ", " :clock5: ", " :clock6: ", + " :clock7: ", " :clock8: ", " :clock9: ", " :clock10: ", " :clock11: ", " :clock12: "}; switch (level) { case ERR: - strncpy(prefix, _RED_("[!!]"), sizeof(prefix) - 1); + if (session.emoji_mode == EMOJI) + strncpy(prefix, " :rotating_light: ", sizeof(prefix) - 1); + else + strncpy(prefix, _RED_("[!!]"), sizeof(prefix) - 1); stream = stderr; break; case FAILED: - strncpy(prefix, _RED_("[-]"), sizeof(prefix) - 1); + if (session.emoji_mode == EMOJI) + strncpy(prefix, " :no_entry: ", sizeof(prefix) - 1); + else + strncpy(prefix, _RED_("[-]"), sizeof(prefix) - 1); break; case DEBUG: - strncpy(prefix, _BLUE_("[#]"), sizeof(prefix) - 1); + if (session.emoji_mode == EMOJI) + strncpy(prefix, " :speech_balloon: ", sizeof(prefix) - 1); + else + strncpy(prefix, _BLUE_("[#]"), sizeof(prefix) - 1); break; case HINT: case SUCCESS: - strncpy(prefix, _GREEN_("[+]"), sizeof(prefix) - 1); + if (session.emoji_mode == EMOJI) + strncpy(prefix, " :star: ", sizeof(prefix) - 1); + else + strncpy(prefix, _GREEN_("[+]"), sizeof(prefix) - 1); break; case WARNING: - strncpy(prefix, _CYAN_("[!]"), sizeof(prefix) - 1); + if (session.emoji_mode == EMOJI) + strncpy(prefix, " :warning: ", sizeof(prefix) - 1); + else + strncpy(prefix, _CYAN_("[!]"), sizeof(prefix) - 1); break; case INFO: - strncpy(prefix, _YELLOW_("[=]"), sizeof(prefix) - 1); + if (session.emoji_mode == EMOJI) + strncpy(prefix, " :information_source: ", sizeof(prefix) - 1); + else + strncpy(prefix, _YELLOW_("[=]"), sizeof(prefix) - 1); break; case INPLACE: - strncpy(prefix, spinner[PrintAndLogEx_spinidx], sizeof(prefix) - 1); - PrintAndLogEx_spinidx++; - if (PrintAndLogEx_spinidx == ARRAYLEN(spinner)) - PrintAndLogEx_spinidx = 0; + if (session.emoji_mode == EMOJI) { + strncpy(prefix, spinner_emoji[PrintAndLogEx_spinidx], sizeof(prefix) - 1); + PrintAndLogEx_spinidx++; + if (PrintAndLogEx_spinidx >= ARRAYLEN(spinner_emoji)) + PrintAndLogEx_spinidx = 0; + } else { + strncpy(prefix, spinner[PrintAndLogEx_spinidx], sizeof(prefix) - 1); + PrintAndLogEx_spinidx++; + if (PrintAndLogEx_spinidx >= ARRAYLEN(spinner)) + PrintAndLogEx_spinidx = 0; + } break; case NORMAL: // no prefixes for normal @@ -207,9 +236,11 @@ void PrintAndLogEx(logLevel_t level, const char *fmt, ...) { } else { snprintf(buffer2, sizeof(buffer2), "%s%s", prefix, buffer); if (level == INPLACE) { - char buffer3[MAX_PRINT_BUFFER + 20] = {0}; + char buffer3[sizeof(buffer2)] = {0}; + char buffer4[sizeof(buffer2)] = {0}; memcpy_filter_ansi(buffer3, buffer2, sizeof(buffer2), !session.supports_colors); - fprintf(stream, "\r%s", buffer3); + memcpy_filter_emoji(buffer4, buffer3, sizeof(buffer3), session.emoji_mode); + fprintf(stream, "\r%s", buffer4); fflush(stream); } else { fPrintAndLog(stream, "%s", buffer2); @@ -225,6 +256,7 @@ static void fPrintAndLog(FILE *stream, const char *fmt, ...) { static int logging = 1; char buffer[MAX_PRINT_BUFFER] = {0}; char buffer2[MAX_PRINT_BUFFER] = {0}; + char buffer3[MAX_PRINT_BUFFER] = {0}; // lock this section to avoid interlacing prints from different threads pthread_mutex_lock(&print_lock); @@ -281,7 +313,8 @@ static void fPrintAndLog(FILE *stream, const char *fmt, ...) { bool filter_ansi = !session.supports_colors; memcpy_filter_ansi(buffer2, buffer, sizeof(buffer), filter_ansi); if (g_printAndLog & PRINTANDLOG_PRINT) { - fprintf(stream, "%s", buffer2); + memcpy_filter_emoji(buffer3, buffer2, sizeof(buffer2), session.emoji_mode); + fprintf(stream, "%s", buffer3); fprintf(stream, " "); // cleaning prompt fprintf(stream, "\n"); } @@ -356,6 +389,102 @@ void memcpy_filter_ansi(void *dest, const void *src, size_t n, bool filter) { } } +static bool emojify_token(const char *token, uint8_t token_length, const char **emojified_token, uint8_t *emojified_token_length, emojiMode_t mode) { + int i = 0; + while (EmojiTable[i].alias) { + if ((strlen(EmojiTable[i].alias) == token_length) && (0 == memcmp(EmojiTable[i].alias, token, token_length))) { + switch (mode) { + case EMOJI: { + *emojified_token = EmojiTable[i].emoji; + *emojified_token_length = strlen(EmojiTable[i].emoji); + break; + } + case ALTTEXT: { + int j = 0; + *emojified_token_length = 0; + while (EmojiAltTable[j].alias) { + if ((strlen(EmojiAltTable[j].alias) == token_length) && (0 == memcmp(EmojiAltTable[j].alias, token, token_length))) { + *emojified_token = EmojiAltTable[j].alttext; + *emojified_token_length = strlen(EmojiAltTable[j].alttext); + break; + } + ++j; + } + break; + } + default: {// ERASE + *emojified_token_length = 0; + break; + } + } + return true; + } + ++i; + } + return false; +} + +static bool token_charset(uint8_t c) { + if ((c >= '0') && (c <= '9')) return true; + if ((c >= 'a') && (c <= 'z')) return true; + if ((c >= 'A') && (c <= 'Z')) return true; + if ((c == '_') || (c == '+') || (c == '-')) return true; + return false; +} + +void memcpy_filter_emoji(void *dest, const void *src, size_t n, emojiMode_t mode) { + if (mode == ALIAS) { + memcpy(dest, src, n); + } else { + // tokenize emoji + const char *emojified_token = NULL; + uint8_t emojified_token_length = 0; + char *current_token = NULL; + uint8_t current_token_length=0; + char current_char; + char *rdest = (char *)dest; + char *rsrc = (char *)src; + uint16_t si = 0; + for (uint16_t i = 0; i < n; i++) { + current_char = rsrc[i]; + + if (current_token_length == 0) { + // starting a new token. + if (current_char == ':') { + current_token = rsrc + i; + current_token_length = 1; + } else { // not starting a new token. + rdest[si++] = current_char; + } + } else { + // finishing the current token. + if (current_char == ':') { + // nothing changed? we still need the ending ':' as it might serve for an upcoming emoji + if (! emojify_token(current_token, current_token_length + 1, &emojified_token, &emojified_token_length, mode)) { + memcpy(rdest + si, current_token, current_token_length); + si += current_token_length; + current_token = rsrc + i; + current_token_length = 1; + } else { + memcpy(rdest + si, emojified_token, emojified_token_length); + si += emojified_token_length; + current_token_length = 0; + } + } else if (token_charset(current_char)) { // continuing the current token. + current_token_length++; + } else { // dropping the current token. + current_token_length++; + memcpy(rdest + si, current_token, current_token_length); + si += current_token_length; + current_token_length = 0; + } + } + } + memcpy(rdest + si, current_token, current_token_length); + si += current_token_length; + } +} + void iceIIR_Butterworth(int *data, const size_t len) { int *output = (int *) calloc(sizeof(int) * len, sizeof(uint8_t)); diff --git a/client/ui.h b/client/ui.h index c67865593..3b07caf46 100644 --- a/client/ui.h +++ b/client/ui.h @@ -17,10 +17,14 @@ #define _USE_MATH_DEFINES +typedef enum logLevel {NORMAL, SUCCESS, INFO, FAILED, WARNING, ERR, DEBUG, INPLACE, HINT} logLevel_t; +typedef enum emojiMode {ALIAS, EMOJI, ALTTEXT, ERASE} emojiMode_t; + typedef struct { bool stdinOnTTY; bool stdoutOnTTY; bool supports_colors; + emojiMode_t emoji_mode; bool pm3_present; bool help_dump_mode; } session_arg_t; @@ -31,7 +35,6 @@ extern session_arg_t session; #define M_PI 3.14159265358979323846264338327 #endif #define MAX_PRINT_BUFFER 2048 -typedef enum logLevel {NORMAL, SUCCESS, INFO, FAILED, WARNING, ERR, DEBUG, INPLACE, HINT} logLevel_t; void ShowGui(void); void HideGraphWindow(void); @@ -41,6 +44,7 @@ void PrintAndLogOptions(const char *str[][2], size_t size, size_t space); void PrintAndLogEx(logLevel_t level, const char *fmt, ...); void SetFlushAfterWrite(bool value); void memcpy_filter_ansi(void *dest, const void *src, size_t n, bool filter); +void memcpy_filter_emoji(void *dest, const void *src, size_t n, emojiMode_t mode); extern double CursorScaleFactor; extern int PlotGridX, PlotGridY, PlotGridXdefault, PlotGridYdefault, GridOffset;