From 855f752814eb7ef05960d2ca3178909a0814b2d4 Mon Sep 17 00:00:00 2001 From: epriestley Date: Mon, 29 Sep 2014 08:31:00 -0700 Subject: [PATCH] Support `:emoji:` in Remarkup Summary: Ref T1191. This actually works without T1191, but makes emoji use on the desktop easier. Test Plan: {F210416} Reviewers: chad, btrahan Reviewed By: btrahan Subscribers: epriestley Maniphest Tasks: T1191 Differential Revision: https://secure.phabricator.com/D10605 --- src/__phutil_library_map__.php | 2 + .../PhabricatorMacroApplication.php | 1 + .../markup/PhabricatorEmojiRemarkupRule.php | 903 ++++++++++++++++++ 3 files changed, 906 insertions(+) create mode 100644 src/applications/macro/markup/PhabricatorEmojiRemarkupRule.php diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php index 89f3334e51..74f9e21459 100644 --- a/src/__phutil_library_map__.php +++ b/src/__phutil_library_map__.php @@ -1539,6 +1539,7 @@ phutil_register_library_map(array( 'PhabricatorEmailLoginController' => 'applications/auth/controller/PhabricatorEmailLoginController.php', 'PhabricatorEmailVerificationController' => 'applications/auth/controller/PhabricatorEmailVerificationController.php', 'PhabricatorEmbedFileRemarkupRule' => 'applications/files/markup/PhabricatorEmbedFileRemarkupRule.php', + 'PhabricatorEmojiRemarkupRule' => 'applications/macro/markup/PhabricatorEmojiRemarkupRule.php', 'PhabricatorEmptyQueryException' => 'infrastructure/query/PhabricatorEmptyQueryException.php', 'PhabricatorEnglishTranslation' => 'infrastructure/internationalization/translation/PhabricatorEnglishTranslation.php', 'PhabricatorEnv' => 'infrastructure/env/PhabricatorEnv.php', @@ -4482,6 +4483,7 @@ phutil_register_library_map(array( 'PhabricatorEmailLoginController' => 'PhabricatorAuthController', 'PhabricatorEmailVerificationController' => 'PhabricatorAuthController', 'PhabricatorEmbedFileRemarkupRule' => 'PhabricatorObjectRemarkupRule', + 'PhabricatorEmojiRemarkupRule' => 'PhutilRemarkupRule', 'PhabricatorEmptyQueryException' => 'Exception', 'PhabricatorEnglishTranslation' => 'PhabricatorBaseEnglishTranslation', 'PhabricatorEnvTestCase' => 'PhabricatorTestCase', diff --git a/src/applications/macro/application/PhabricatorMacroApplication.php b/src/applications/macro/application/PhabricatorMacroApplication.php index 51b1152ba6..384d9fa951 100644 --- a/src/applications/macro/application/PhabricatorMacroApplication.php +++ b/src/applications/macro/application/PhabricatorMacroApplication.php @@ -45,6 +45,7 @@ final class PhabricatorMacroApplication extends PhabricatorApplication { public function getRemarkupRules() { return array( new PhabricatorIconRemarkupRule(), + new PhabricatorEmojiRemarkupRule(), ); } diff --git a/src/applications/macro/markup/PhabricatorEmojiRemarkupRule.php b/src/applications/macro/markup/PhabricatorEmojiRemarkupRule.php new file mode 100644 index 0000000000..b1e24c23ff --- /dev/null +++ b/src/applications/macro/markup/PhabricatorEmojiRemarkupRule.php @@ -0,0 +1,903 @@ +isFlatText($matches[0])) { + return $matches[0]; + } + + static $map = array( + 'watch' => "\xE2\x8C\x9A", + 'hourglass' => "\xE2\x8C\x9B", + 'fast_forward' => "\xE2\x8F\xA9", + 'rewind' => "\xE2\x8F\xAA", + 'arrow_double_up' => "\xE2\x8F\xAB", + 'arrow_double_down' => "\xE2\x8F\xAC", + 'alarm_clock' => "\xE2\x8F\xB0", + 'hourglass_flowing_sand' => "\xE2\x8F\xB3", + 'white_medium_small_square' => "\xE2\x97\xBD", + 'black_medium_small_square' => "\xE2\x97\xBE", + 'umbrella' => "\xE2\x98\x94", + 'coffee' => "\xE2\x98\x95", + 'aries' => "\xE2\x99\x88", + 'taurus' => "\xE2\x99\x89", + 'gemini' => "\xE2\x99\x8A", + 'cancer' => "\xE2\x99\x8B", + 'leo' => "\xE2\x99\x8C", + 'virgo' => "\xE2\x99\x8D", + 'libra' => "\xE2\x99\x8E", + 'scorpius' => "\xE2\x99\x8F", + 'sagittarius' => "\xE2\x99\x90", + 'capricorn' => "\xE2\x99\x91", + 'aquarius' => "\xE2\x99\x92", + 'pisces' => "\xE2\x99\x93", + 'wheelchair' => "\xE2\x99\xBF", + 'anchor' => "\xE2\x9A\x93", + 'zap' => "\xE2\x9A\xA1", + 'white_circle' => "\xE2\x9A\xAA", + 'black_circle' => "\xE2\x9A\xAB", + 'soccer' => "\xE2\x9A\xBD", + 'snowman' => "\xE2\x9B\x84", + 'partly_sunny' => "\xE2\x9B\x85", + 'ophiuchus' => "\xE2\x9B\x8E", + 'no_entry' => "\xE2\x9B\x94", + 'church' => "\xE2\x9B\xAA", + 'fountain' => "\xE2\x9B\xB2", + 'golf' => "\xE2\x9B\xB3", + 'sailboat' => "\xE2\x9B\xB5", + 'boat' => "\xE2\x9B\xB5", + 'tent' => "\xE2\x9B\xBA", + 'fuelpump' => "\xE2\x9B\xBD", + 'white_check_mark' => "\xE2\x9C\x85", + 'fist' => "\xE2\x9C\x8A", + 'hand' => "\xE2\x9C\x8B", + 'raised_hand' => "\xE2\x9C\x8B", + 'sparkles' => "\xE2\x9C\xA8", + 'x' => "\xE2\x9D\x8C", + 'negative_squared_cross_mark' => "\xE2\x9D\x8E", + 'question' => "\xE2\x9D\x93", + 'grey_question' => "\xE2\x9D\x94", + 'grey_exclamation' => "\xE2\x9D\x95", + 'exclamation' => "\xE2\x9D\x97", + 'heavy_exclamation_mark' => "\xE2\x9D\x97", + 'heavy_plus_sign' => "\xE2\x9E\x95", + 'heavy_minus_sign' => "\xE2\x9E\x96", + 'heavy_division_sign' => "\xE2\x9E\x97", + 'curly_loop' => "\xE2\x9E\xB0", + 'loop' => "\xE2\x9E\xBF", + 'black_large_square' => "\xE2\xAC\x9B", + 'white_large_square' => "\xE2\xAC\x9C", + 'star' => "\xE2\xAD\x90", + 'o' => "\xE2\xAD\x95", + 'mahjong' => "\xF0\x9F\x80\x84", + 'black_joker' => "\xF0\x9F\x83\x8F", + 'ab' => "\xF0\x9F\x86\x8E", + 'cl' => "\xF0\x9F\x86\x91", + 'cool' => "\xF0\x9F\x86\x92", + 'free' => "\xF0\x9F\x86\x93", + 'id' => "\xF0\x9F\x86\x94", + 'new' => "\xF0\x9F\x86\x95", + 'ng' => "\xF0\x9F\x86\x96", + 'ok' => "\xF0\x9F\x86\x97", + 'sos' => "\xF0\x9F\x86\x98", + 'up' => "\xF0\x9F\x86\x99", + 'vs' => "\xF0\x9F\x86\x9A", + 'koko' => "\xF0\x9F\x88\x81", + 'u7121' => "\xF0\x9F\x88\x9A", + 'u6307' => "\xF0\x9F\x88\xAF", + 'u7981' => "\xF0\x9F\x88\xB2", + 'u7a7a' => "\xF0\x9F\x88\xB3", + 'u5408' => "\xF0\x9F\x88\xB4", + 'u6e80' => "\xF0\x9F\x88\xB5", + 'u6709' => "\xF0\x9F\x88\xB6", + 'u7533' => "\xF0\x9F\x88\xB8", + 'u5272' => "\xF0\x9F\x88\xB9", + 'u55b6' => "\xF0\x9F\x88\xBA", + 'ideograph_advantage' => "\xF0\x9F\x89\x90", + 'accept' => "\xF0\x9F\x89\x91", + 'cyclone' => "\xF0\x9F\x8C\x80", + 'foggy' => "\xF0\x9F\x8C\x81", + 'closed_umbrella' => "\xF0\x9F\x8C\x82", + 'night_with_stars' => "\xF0\x9F\x8C\x83", + 'sunrise_over_mountains' => "\xF0\x9F\x8C\x84", + 'sunrise' => "\xF0\x9F\x8C\x85", + 'city_sunset' => "\xF0\x9F\x8C\x86", + 'city_sunrise' => "\xF0\x9F\x8C\x87", + 'rainbow' => "\xF0\x9F\x8C\x88", + 'bridge_at_night' => "\xF0\x9F\x8C\x89", + 'ocean' => "\xF0\x9F\x8C\x8A", + 'volcano' => "\xF0\x9F\x8C\x8B", + 'milky_way' => "\xF0\x9F\x8C\x8C", + 'earth_africa' => "\xF0\x9F\x8C\x8D", + 'earth_americas' => "\xF0\x9F\x8C\x8E", + 'earth_asia' => "\xF0\x9F\x8C\x8F", + 'globe_with_meridians' => "\xF0\x9F\x8C\x90", + 'new_moon' => "\xF0\x9F\x8C\x91", + 'waxing_crescent_moon' => "\xF0\x9F\x8C\x92", + 'first_quarter_moon' => "\xF0\x9F\x8C\x93", + 'waxing_gibbous_moon' => "\xF0\x9F\x8C\x94", + 'moon' => "\xF0\x9F\x8C\x94", + 'full_moon' => "\xF0\x9F\x8C\x95", + 'waning_gibbous_moon' => "\xF0\x9F\x8C\x96", + 'last_quarter_moon' => "\xF0\x9F\x8C\x97", + 'waning_crescent_moon' => "\xF0\x9F\x8C\x98", + 'crescent_moon' => "\xF0\x9F\x8C\x99", + 'new_moon_with_face' => "\xF0\x9F\x8C\x9A", + 'first_quarter_moon_with_face' => "\xF0\x9F\x8C\x9B", + 'last_quarter_moon_with_face' => "\xF0\x9F\x8C\x9C", + 'full_moon_with_face' => "\xF0\x9F\x8C\x9D", + 'sun_with_face' => "\xF0\x9F\x8C\x9E", + 'star2' => "\xF0\x9F\x8C\x9F", + 'stars' => "\xF0\x9F\x8C\xA0", + 'chestnut' => "\xF0\x9F\x8C\xB0", + 'seedling' => "\xF0\x9F\x8C\xB1", + 'evergreen_tree' => "\xF0\x9F\x8C\xB2", + 'deciduous_tree' => "\xF0\x9F\x8C\xB3", + 'palm_tree' => "\xF0\x9F\x8C\xB4", + 'cactus' => "\xF0\x9F\x8C\xB5", + 'tulip' => "\xF0\x9F\x8C\xB7", + 'cherry_blossom' => "\xF0\x9F\x8C\xB8", + 'rose' => "\xF0\x9F\x8C\xB9", + 'hibiscus' => "\xF0\x9F\x8C\xBA", + 'sunflower' => "\xF0\x9F\x8C\xBB", + 'blossom' => "\xF0\x9F\x8C\xBC", + 'corn' => "\xF0\x9F\x8C\xBD", + 'ear_of_rice' => "\xF0\x9F\x8C\xBE", + 'herb' => "\xF0\x9F\x8C\xBF", + 'four_leaf_clover' => "\xF0\x9F\x8D\x80", + 'maple_leaf' => "\xF0\x9F\x8D\x81", + 'fallen_leaf' => "\xF0\x9F\x8D\x82", + 'leaves' => "\xF0\x9F\x8D\x83", + 'mushroom' => "\xF0\x9F\x8D\x84", + 'tomato' => "\xF0\x9F\x8D\x85", + 'eggplant' => "\xF0\x9F\x8D\x86", + 'grapes' => "\xF0\x9F\x8D\x87", + 'melon' => "\xF0\x9F\x8D\x88", + 'watermelon' => "\xF0\x9F\x8D\x89", + 'tangerine' => "\xF0\x9F\x8D\x8A", + 'lemon' => "\xF0\x9F\x8D\x8B", + 'banana' => "\xF0\x9F\x8D\x8C", + 'pineapple' => "\xF0\x9F\x8D\x8D", + 'apple' => "\xF0\x9F\x8D\x8E", + 'green_apple' => "\xF0\x9F\x8D\x8F", + 'pear' => "\xF0\x9F\x8D\x90", + 'peach' => "\xF0\x9F\x8D\x91", + 'cherries' => "\xF0\x9F\x8D\x92", + 'strawberry' => "\xF0\x9F\x8D\x93", + 'hamburger' => "\xF0\x9F\x8D\x94", + 'pizza' => "\xF0\x9F\x8D\x95", + 'meat_on_bone' => "\xF0\x9F\x8D\x96", + 'poultry_leg' => "\xF0\x9F\x8D\x97", + 'rice_cracker' => "\xF0\x9F\x8D\x98", + 'rice_ball' => "\xF0\x9F\x8D\x99", + 'rice' => "\xF0\x9F\x8D\x9A", + 'curry' => "\xF0\x9F\x8D\x9B", + 'ramen' => "\xF0\x9F\x8D\x9C", + 'spaghetti' => "\xF0\x9F\x8D\x9D", + 'bread' => "\xF0\x9F\x8D\x9E", + 'fries' => "\xF0\x9F\x8D\x9F", + 'sweet_potato' => "\xF0\x9F\x8D\xA0", + 'dango' => "\xF0\x9F\x8D\xA1", + 'oden' => "\xF0\x9F\x8D\xA2", + 'sushi' => "\xF0\x9F\x8D\xA3", + 'fried_shrimp' => "\xF0\x9F\x8D\xA4", + 'fish_cake' => "\xF0\x9F\x8D\xA5", + 'icecream' => "\xF0\x9F\x8D\xA6", + 'shaved_ice' => "\xF0\x9F\x8D\xA7", + 'ice_cream' => "\xF0\x9F\x8D\xA8", + 'doughnut' => "\xF0\x9F\x8D\xA9", + 'cookie' => "\xF0\x9F\x8D\xAA", + 'chocolate_bar' => "\xF0\x9F\x8D\xAB", + 'candy' => "\xF0\x9F\x8D\xAC", + 'lollipop' => "\xF0\x9F\x8D\xAD", + 'custard' => "\xF0\x9F\x8D\xAE", + 'honey_pot' => "\xF0\x9F\x8D\xAF", + 'cake' => "\xF0\x9F\x8D\xB0", + 'bento' => "\xF0\x9F\x8D\xB1", + 'stew' => "\xF0\x9F\x8D\xB2", + 'egg' => "\xF0\x9F\x8D\xB3", + 'fork_and_knife' => "\xF0\x9F\x8D\xB4", + 'tea' => "\xF0\x9F\x8D\xB5", + 'sake' => "\xF0\x9F\x8D\xB6", + 'wine_glass' => "\xF0\x9F\x8D\xB7", + 'cocktail' => "\xF0\x9F\x8D\xB8", + 'tropical_drink' => "\xF0\x9F\x8D\xB9", + 'beer' => "\xF0\x9F\x8D\xBA", + 'beers' => "\xF0\x9F\x8D\xBB", + 'baby_bottle' => "\xF0\x9F\x8D\xBC", + 'ribbon' => "\xF0\x9F\x8E\x80", + 'gift' => "\xF0\x9F\x8E\x81", + 'birthday' => "\xF0\x9F\x8E\x82", + 'jack_o_lantern' => "\xF0\x9F\x8E\x83", + 'christmas_tree' => "\xF0\x9F\x8E\x84", + 'santa' => "\xF0\x9F\x8E\x85", + 'fireworks' => "\xF0\x9F\x8E\x86", + 'sparkler' => "\xF0\x9F\x8E\x87", + 'balloon' => "\xF0\x9F\x8E\x88", + 'tada' => "\xF0\x9F\x8E\x89", + 'confetti_ball' => "\xF0\x9F\x8E\x8A", + 'tanabata_tree' => "\xF0\x9F\x8E\x8B", + 'crossed_flags' => "\xF0\x9F\x8E\x8C", + 'bamboo' => "\xF0\x9F\x8E\x8D", + 'dolls' => "\xF0\x9F\x8E\x8E", + 'flags' => "\xF0\x9F\x8E\x8F", + 'wind_chime' => "\xF0\x9F\x8E\x90", + 'rice_scene' => "\xF0\x9F\x8E\x91", + 'school_satchel' => "\xF0\x9F\x8E\x92", + 'mortar_board' => "\xF0\x9F\x8E\x93", + 'carousel_horse' => "\xF0\x9F\x8E\xA0", + 'ferris_wheel' => "\xF0\x9F\x8E\xA1", + 'roller_coaster' => "\xF0\x9F\x8E\xA2", + 'fishing_pole_and_fish' => "\xF0\x9F\x8E\xA3", + 'microphone' => "\xF0\x9F\x8E\xA4", + 'movie_camera' => "\xF0\x9F\x8E\xA5", + 'cinema' => "\xF0\x9F\x8E\xA6", + 'headphones' => "\xF0\x9F\x8E\xA7", + 'art' => "\xF0\x9F\x8E\xA8", + 'tophat' => "\xF0\x9F\x8E\xA9", + 'circus_tent' => "\xF0\x9F\x8E\xAA", + 'ticket' => "\xF0\x9F\x8E\xAB", + 'clapper' => "\xF0\x9F\x8E\xAC", + 'performing_arts' => "\xF0\x9F\x8E\xAD", + 'video_game' => "\xF0\x9F\x8E\xAE", + 'dart' => "\xF0\x9F\x8E\xAF", + 'slot_machine' => "\xF0\x9F\x8E\xB0", + '8ball' => "\xF0\x9F\x8E\xB1", + 'game_die' => "\xF0\x9F\x8E\xB2", + 'bowling' => "\xF0\x9F\x8E\xB3", + 'flower_playing_cards' => "\xF0\x9F\x8E\xB4", + 'musical_note' => "\xF0\x9F\x8E\xB5", + 'notes' => "\xF0\x9F\x8E\xB6", + 'saxophone' => "\xF0\x9F\x8E\xB7", + 'guitar' => "\xF0\x9F\x8E\xB8", + 'musical_keyboard' => "\xF0\x9F\x8E\xB9", + 'trumpet' => "\xF0\x9F\x8E\xBA", + 'violin' => "\xF0\x9F\x8E\xBB", + 'musical_score' => "\xF0\x9F\x8E\xBC", + 'running_shirt_with_sash' => "\xF0\x9F\x8E\xBD", + 'tennis' => "\xF0\x9F\x8E\xBE", + 'ski' => "\xF0\x9F\x8E\xBF", + 'basketball' => "\xF0\x9F\x8F\x80", + 'checkered_flag' => "\xF0\x9F\x8F\x81", + 'snowboarder' => "\xF0\x9F\x8F\x82", + 'runner' => "\xF0\x9F\x8F\x83", + 'running' => "\xF0\x9F\x8F\x83", + 'surfer' => "\xF0\x9F\x8F\x84", + 'trophy' => "\xF0\x9F\x8F\x86", + 'horse_racing' => "\xF0\x9F\x8F\x87", + 'football' => "\xF0\x9F\x8F\x88", + 'rugby_football' => "\xF0\x9F\x8F\x89", + 'swimmer' => "\xF0\x9F\x8F\x8A", + 'house' => "\xF0\x9F\x8F\xA0", + 'house_with_garden' => "\xF0\x9F\x8F\xA1", + 'office' => "\xF0\x9F\x8F\xA2", + 'post_office' => "\xF0\x9F\x8F\xA3", + 'european_post_office' => "\xF0\x9F\x8F\xA4", + 'hospital' => "\xF0\x9F\x8F\xA5", + 'bank' => "\xF0\x9F\x8F\xA6", + 'atm' => "\xF0\x9F\x8F\xA7", + 'hotel' => "\xF0\x9F\x8F\xA8", + 'love_hotel' => "\xF0\x9F\x8F\xA9", + 'convenience_store' => "\xF0\x9F\x8F\xAA", + 'school' => "\xF0\x9F\x8F\xAB", + 'department_store' => "\xF0\x9F\x8F\xAC", + 'factory' => "\xF0\x9F\x8F\xAD", + 'lantern' => "\xF0\x9F\x8F\xAE", + 'izakaya_lantern' => "\xF0\x9F\x8F\xAE", + 'japanese_castle' => "\xF0\x9F\x8F\xAF", + 'european_castle' => "\xF0\x9F\x8F\xB0", + 'rat' => "\xF0\x9F\x90\x80", + 'mouse2' => "\xF0\x9F\x90\x81", + 'ox' => "\xF0\x9F\x90\x82", + 'water_buffalo' => "\xF0\x9F\x90\x83", + 'cow2' => "\xF0\x9F\x90\x84", + 'tiger2' => "\xF0\x9F\x90\x85", + 'leopard' => "\xF0\x9F\x90\x86", + 'rabbit2' => "\xF0\x9F\x90\x87", + 'cat2' => "\xF0\x9F\x90\x88", + 'dragon' => "\xF0\x9F\x90\x89", + 'crocodile' => "\xF0\x9F\x90\x8A", + 'whale2' => "\xF0\x9F\x90\x8B", + 'snail' => "\xF0\x9F\x90\x8C", + 'snake' => "\xF0\x9F\x90\x8D", + 'racehorse' => "\xF0\x9F\x90\x8E", + 'ram' => "\xF0\x9F\x90\x8F", + 'goat' => "\xF0\x9F\x90\x90", + 'sheep' => "\xF0\x9F\x90\x91", + 'monkey' => "\xF0\x9F\x90\x92", + 'rooster' => "\xF0\x9F\x90\x93", + 'chicken' => "\xF0\x9F\x90\x94", + 'dog2' => "\xF0\x9F\x90\x95", + 'pig2' => "\xF0\x9F\x90\x96", + 'boar' => "\xF0\x9F\x90\x97", + 'elephant' => "\xF0\x9F\x90\x98", + 'octopus' => "\xF0\x9F\x90\x99", + 'shell' => "\xF0\x9F\x90\x9A", + 'bug' => "\xF0\x9F\x90\x9B", + 'ant' => "\xF0\x9F\x90\x9C", + 'bee' => "\xF0\x9F\x90\x9D", + 'honeybee' => "\xF0\x9F\x90\x9D", + 'beetle' => "\xF0\x9F\x90\x9E", + 'fish' => "\xF0\x9F\x90\x9F", + 'tropical_fish' => "\xF0\x9F\x90\xA0", + 'blowfish' => "\xF0\x9F\x90\xA1", + 'turtle' => "\xF0\x9F\x90\xA2", + 'hatching_chick' => "\xF0\x9F\x90\xA3", + 'baby_chick' => "\xF0\x9F\x90\xA4", + 'hatched_chick' => "\xF0\x9F\x90\xA5", + 'bird' => "\xF0\x9F\x90\xA6", + 'penguin' => "\xF0\x9F\x90\xA7", + 'koala' => "\xF0\x9F\x90\xA8", + 'poodle' => "\xF0\x9F\x90\xA9", + 'dromedary_camel' => "\xF0\x9F\x90\xAA", + 'camel' => "\xF0\x9F\x90\xAB", + 'dolphin' => "\xF0\x9F\x90\xAC", + 'flipper' => "\xF0\x9F\x90\xAC", + 'mouse' => "\xF0\x9F\x90\xAD", + 'cow' => "\xF0\x9F\x90\xAE", + 'tiger' => "\xF0\x9F\x90\xAF", + 'rabbit' => "\xF0\x9F\x90\xB0", + 'cat' => "\xF0\x9F\x90\xB1", + 'dragon_face' => "\xF0\x9F\x90\xB2", + 'whale' => "\xF0\x9F\x90\xB3", + 'horse' => "\xF0\x9F\x90\xB4", + 'monkey_face' => "\xF0\x9F\x90\xB5", + 'dog' => "\xF0\x9F\x90\xB6", + 'pig' => "\xF0\x9F\x90\xB7", + 'frog' => "\xF0\x9F\x90\xB8", + 'hamster' => "\xF0\x9F\x90\xB9", + 'wolf' => "\xF0\x9F\x90\xBA", + 'bear' => "\xF0\x9F\x90\xBB", + 'panda_face' => "\xF0\x9F\x90\xBC", + 'pig_nose' => "\xF0\x9F\x90\xBD", + 'paw_prints' => "\xF0\x9F\x90\xBE", + 'feet' => "\xF0\x9F\x90\xBE", + 'eyes' => "\xF0\x9F\x91\x80", + 'ear' => "\xF0\x9F\x91\x82", + 'nose' => "\xF0\x9F\x91\x83", + 'lips' => "\xF0\x9F\x91\x84", + 'tongue' => "\xF0\x9F\x91\x85", + 'point_up_2' => "\xF0\x9F\x91\x86", + 'point_down' => "\xF0\x9F\x91\x87", + 'point_left' => "\xF0\x9F\x91\x88", + 'point_right' => "\xF0\x9F\x91\x89", + 'punch' => "\xF0\x9F\x91\x8A", + 'facepunch' => "\xF0\x9F\x91\x8A", + 'wave' => "\xF0\x9F\x91\x8B", + 'ok_hand' => "\xF0\x9F\x91\x8C", + '+1' => "\xF0\x9F\x91\x8D", + 'thumbsup' => "\xF0\x9F\x91\x8D", + '_1' => "\xF0\x9F\x91\x8E", + 'thumbsdown' => "\xF0\x9F\x91\x8E", + 'clap' => "\xF0\x9F\x91\x8F", + 'open_hands' => "\xF0\x9F\x91\x90", + 'crown' => "\xF0\x9F\x91\x91", + 'womans_hat' => "\xF0\x9F\x91\x92", + 'eyeglasses' => "\xF0\x9F\x91\x93", + 'necktie' => "\xF0\x9F\x91\x94", + 'tshirt' => "\xF0\x9F\x91\x95", + 'shirt' => "\xF0\x9F\x91\x95", + 'jeans' => "\xF0\x9F\x91\x96", + 'dress' => "\xF0\x9F\x91\x97", + 'kimono' => "\xF0\x9F\x91\x98", + 'bikini' => "\xF0\x9F\x91\x99", + 'womans_clothes' => "\xF0\x9F\x91\x9A", + 'purse' => "\xF0\x9F\x91\x9B", + 'handbag' => "\xF0\x9F\x91\x9C", + 'pouch' => "\xF0\x9F\x91\x9D", + 'mans_shoe' => "\xF0\x9F\x91\x9E", + 'shoe' => "\xF0\x9F\x91\x9E", + 'athletic_shoe' => "\xF0\x9F\x91\x9F", + 'high_heel' => "\xF0\x9F\x91\xA0", + 'sandal' => "\xF0\x9F\x91\xA1", + 'boot' => "\xF0\x9F\x91\xA2", + 'footprints' => "\xF0\x9F\x91\xA3", + 'bust_in_silhouette' => "\xF0\x9F\x91\xA4", + 'busts_in_silhouette' => "\xF0\x9F\x91\xA5", + 'boy' => "\xF0\x9F\x91\xA6", + 'girl' => "\xF0\x9F\x91\xA7", + 'man' => "\xF0\x9F\x91\xA8", + 'woman' => "\xF0\x9F\x91\xA9", + 'family' => "\xF0\x9F\x91\xAA", + 'couple' => "\xF0\x9F\x91\xAB", + 'two_men_holding_hands' => "\xF0\x9F\x91\xAC", + 'two_women_holding_hands' => "\xF0\x9F\x91\xAD", + 'cop' => "\xF0\x9F\x91\xAE", + 'dancers' => "\xF0\x9F\x91\xAF", + 'bride_with_veil' => "\xF0\x9F\x91\xB0", + 'person_with_blond_hair' => "\xF0\x9F\x91\xB1", + 'man_with_gua_pi_mao' => "\xF0\x9F\x91\xB2", + 'man_with_turban' => "\xF0\x9F\x91\xB3", + 'older_man' => "\xF0\x9F\x91\xB4", + 'older_woman' => "\xF0\x9F\x91\xB5", + 'baby' => "\xF0\x9F\x91\xB6", + 'construction_worker' => "\xF0\x9F\x91\xB7", + 'princess' => "\xF0\x9F\x91\xB8", + 'japanese_ogre' => "\xF0\x9F\x91\xB9", + 'japanese_goblin' => "\xF0\x9F\x91\xBA", + 'ghost' => "\xF0\x9F\x91\xBB", + 'angel' => "\xF0\x9F\x91\xBC", + 'alien' => "\xF0\x9F\x91\xBD", + 'space_invader' => "\xF0\x9F\x91\xBE", + 'imp' => "\xF0\x9F\x91\xBF", + 'skull' => "\xF0\x9F\x92\x80", + 'information_desk_person' => "\xF0\x9F\x92\x81", + 'guardsman' => "\xF0\x9F\x92\x82", + 'dancer' => "\xF0\x9F\x92\x83", + 'lipstick' => "\xF0\x9F\x92\x84", + 'nail_care' => "\xF0\x9F\x92\x85", + 'massage' => "\xF0\x9F\x92\x86", + 'haircut' => "\xF0\x9F\x92\x87", + 'barber' => "\xF0\x9F\x92\x88", + 'syringe' => "\xF0\x9F\x92\x89", + 'pill' => "\xF0\x9F\x92\x8A", + 'kiss' => "\xF0\x9F\x92\x8B", + 'love_letter' => "\xF0\x9F\x92\x8C", + 'ring' => "\xF0\x9F\x92\x8D", + 'gem' => "\xF0\x9F\x92\x8E", + 'couplekiss' => "\xF0\x9F\x92\x8F", + 'bouquet' => "\xF0\x9F\x92\x90", + 'couple_with_heart' => "\xF0\x9F\x92\x91", + 'wedding' => "\xF0\x9F\x92\x92", + 'heartbeat' => "\xF0\x9F\x92\x93", + 'broken_heart' => "\xF0\x9F\x92\x94", + 'two_hearts' => "\xF0\x9F\x92\x95", + 'sparkling_heart' => "\xF0\x9F\x92\x96", + 'heartpulse' => "\xF0\x9F\x92\x97", + 'cupid' => "\xF0\x9F\x92\x98", + 'blue_heart' => "\xF0\x9F\x92\x99", + 'green_heart' => "\xF0\x9F\x92\x9A", + 'yellow_heart' => "\xF0\x9F\x92\x9B", + 'purple_heart' => "\xF0\x9F\x92\x9C", + 'gift_heart' => "\xF0\x9F\x92\x9D", + 'revolving_hearts' => "\xF0\x9F\x92\x9E", + 'heart_decoration' => "\xF0\x9F\x92\x9F", + 'diamond_shape_with_a_dot_inside' => "\xF0\x9F\x92\xA0", + 'bulb' => "\xF0\x9F\x92\xA1", + 'anger' => "\xF0\x9F\x92\xA2", + 'bomb' => "\xF0\x9F\x92\xA3", + 'zzz' => "\xF0\x9F\x92\xA4", + 'boom' => "\xF0\x9F\x92\xA5", + 'collision' => "\xF0\x9F\x92\xA5", + 'sweat_drops' => "\xF0\x9F\x92\xA6", + 'droplet' => "\xF0\x9F\x92\xA7", + 'dash' => "\xF0\x9F\x92\xA8", + 'poop' => "\xF0\x9F\x92\xA9", + 'shit' => "\xF0\x9F\x92\xA9", + 'hankey' => "\xF0\x9F\x92\xA9", + 'muscle' => "\xF0\x9F\x92\xAA", + 'dizzy' => "\xF0\x9F\x92\xAB", + 'speech_balloon' => "\xF0\x9F\x92\xAC", + 'thought_balloon' => "\xF0\x9F\x92\xAD", + 'white_flower' => "\xF0\x9F\x92\xAE", + '100' => "\xF0\x9F\x92\xAF", + 'moneybag' => "\xF0\x9F\x92\xB0", + 'currency_exchange' => "\xF0\x9F\x92\xB1", + 'heavy_dollar_sign' => "\xF0\x9F\x92\xB2", + 'credit_card' => "\xF0\x9F\x92\xB3", + 'yen' => "\xF0\x9F\x92\xB4", + 'dollar' => "\xF0\x9F\x92\xB5", + 'euro' => "\xF0\x9F\x92\xB6", + 'pound' => "\xF0\x9F\x92\xB7", + 'money_with_wings' => "\xF0\x9F\x92\xB8", + 'chart' => "\xF0\x9F\x92\xB9", + 'seat' => "\xF0\x9F\x92\xBA", + 'computer' => "\xF0\x9F\x92\xBB", + 'briefcase' => "\xF0\x9F\x92\xBC", + 'minidisc' => "\xF0\x9F\x92\xBD", + 'floppy_disk' => "\xF0\x9F\x92\xBE", + 'cd' => "\xF0\x9F\x92\xBF", + 'dvd' => "\xF0\x9F\x93\x80", + 'file_folder' => "\xF0\x9F\x93\x81", + 'open_file_folder' => "\xF0\x9F\x93\x82", + 'page_with_curl' => "\xF0\x9F\x93\x83", + 'page_facing_up' => "\xF0\x9F\x93\x84", + 'date' => "\xF0\x9F\x93\x85", + 'calendar' => "\xF0\x9F\x93\x86", + 'card_index' => "\xF0\x9F\x93\x87", + 'chart_with_upwards_trend' => "\xF0\x9F\x93\x88", + 'chart_with_downwards_trend' => "\xF0\x9F\x93\x89", + 'bar_chart' => "\xF0\x9F\x93\x8A", + 'clipboard' => "\xF0\x9F\x93\x8B", + 'pushpin' => "\xF0\x9F\x93\x8C", + 'round_pushpin' => "\xF0\x9F\x93\x8D", + 'paperclip' => "\xF0\x9F\x93\x8E", + 'straight_ruler' => "\xF0\x9F\x93\x8F", + 'triangular_ruler' => "\xF0\x9F\x93\x90", + 'bookmark_tabs' => "\xF0\x9F\x93\x91", + 'ledger' => "\xF0\x9F\x93\x92", + 'notebook' => "\xF0\x9F\x93\x93", + 'notebook_with_decorative_cover' => "\xF0\x9F\x93\x94", + 'closed_book' => "\xF0\x9F\x93\x95", + 'book' => "\xF0\x9F\x93\x96", + 'open_book' => "\xF0\x9F\x93\x96", + 'green_book' => "\xF0\x9F\x93\x97", + 'blue_book' => "\xF0\x9F\x93\x98", + 'orange_book' => "\xF0\x9F\x93\x99", + 'books' => "\xF0\x9F\x93\x9A", + 'name_badge' => "\xF0\x9F\x93\x9B", + 'scroll' => "\xF0\x9F\x93\x9C", + 'pencil' => "\xF0\x9F\x93\x9D", + 'memo' => "\xF0\x9F\x93\x9D", + 'telephone_receiver' => "\xF0\x9F\x93\x9E", + 'pager' => "\xF0\x9F\x93\x9F", + 'fax' => "\xF0\x9F\x93\xA0", + 'satellite' => "\xF0\x9F\x93\xA1", + 'loudspeaker' => "\xF0\x9F\x93\xA2", + 'mega' => "\xF0\x9F\x93\xA3", + 'outbox_tray' => "\xF0\x9F\x93\xA4", + 'inbox_tray' => "\xF0\x9F\x93\xA5", + 'package' => "\xF0\x9F\x93\xA6", + 'e_mail' => "\xF0\x9F\x93\xA7", + 'incoming_envelope' => "\xF0\x9F\x93\xA8", + 'envelope_with_arrow' => "\xF0\x9F\x93\xA9", + 'mailbox_closed' => "\xF0\x9F\x93\xAA", + 'mailbox' => "\xF0\x9F\x93\xAB", + 'mailbox_with_mail' => "\xF0\x9F\x93\xAC", + 'mailbox_with_no_mail' => "\xF0\x9F\x93\xAD", + 'postbox' => "\xF0\x9F\x93\xAE", + 'postal_horn' => "\xF0\x9F\x93\xAF", + 'newspaper' => "\xF0\x9F\x93\xB0", + 'iphone' => "\xF0\x9F\x93\xB1", + 'calling' => "\xF0\x9F\x93\xB2", + 'vibration_mode' => "\xF0\x9F\x93\xB3", + 'mobile_phone_off' => "\xF0\x9F\x93\xB4", + 'no_mobile_phones' => "\xF0\x9F\x93\xB5", + 'signal_strength' => "\xF0\x9F\x93\xB6", + 'camera' => "\xF0\x9F\x93\xB7", + 'video_camera' => "\xF0\x9F\x93\xB9", + 'tv' => "\xF0\x9F\x93\xBA", + 'radio' => "\xF0\x9F\x93\xBB", + 'vhs' => "\xF0\x9F\x93\xBC", + 'twisted_rightwards_arrows' => "\xF0\x9F\x94\x80", + 'repeat' => "\xF0\x9F\x94\x81", + 'repeat_one' => "\xF0\x9F\x94\x82", + 'arrows_clockwise' => "\xF0\x9F\x94\x83", + 'arrows_counterclockwise' => "\xF0\x9F\x94\x84", + 'low_brightness' => "\xF0\x9F\x94\x85", + 'high_brightness' => "\xF0\x9F\x94\x86", + 'mute' => "\xF0\x9F\x94\x87", + 'speaker' => "\xF0\x9F\x94\x88", + 'sound' => "\xF0\x9F\x94\x89", + 'loud_sound' => "\xF0\x9F\x94\x8A", + 'battery' => "\xF0\x9F\x94\x8B", + 'electric_plug' => "\xF0\x9F\x94\x8C", + 'mag' => "\xF0\x9F\x94\x8D", + 'mag_right' => "\xF0\x9F\x94\x8E", + 'lock_with_ink_pen' => "\xF0\x9F\x94\x8F", + 'closed_lock_with_key' => "\xF0\x9F\x94\x90", + 'key' => "\xF0\x9F\x94\x91", + 'lock' => "\xF0\x9F\x94\x92", + 'unlock' => "\xF0\x9F\x94\x93", + 'bell' => "\xF0\x9F\x94\x94", + 'no_bell' => "\xF0\x9F\x94\x95", + 'bookmark' => "\xF0\x9F\x94\x96", + 'link' => "\xF0\x9F\x94\x97", + 'radio_button' => "\xF0\x9F\x94\x98", + 'back' => "\xF0\x9F\x94\x99", + 'end' => "\xF0\x9F\x94\x9A", + 'on' => "\xF0\x9F\x94\x9B", + 'soon' => "\xF0\x9F\x94\x9C", + 'top' => "\xF0\x9F\x94\x9D", + 'underage' => "\xF0\x9F\x94\x9E", + 'keycap_ten' => "\xF0\x9F\x94\x9F", + 'capital_abcd' => "\xF0\x9F\x94\xA0", + 'abcd' => "\xF0\x9F\x94\xA1", + '1234' => "\xF0\x9F\x94\xA2", + 'symbols' => "\xF0\x9F\x94\xA3", + 'abc' => "\xF0\x9F\x94\xA4", + 'fire' => "\xF0\x9F\x94\xA5", + 'flashlight' => "\xF0\x9F\x94\xA6", + 'wrench' => "\xF0\x9F\x94\xA7", + 'hammer' => "\xF0\x9F\x94\xA8", + 'nut_and_bolt' => "\xF0\x9F\x94\xA9", + 'knife' => "\xF0\x9F\x94\xAA", + 'hocho' => "\xF0\x9F\x94\xAA", + 'gun' => "\xF0\x9F\x94\xAB", + 'microscope' => "\xF0\x9F\x94\xAC", + 'telescope' => "\xF0\x9F\x94\xAD", + 'crystal_ball' => "\xF0\x9F\x94\xAE", + 'six_pointed_star' => "\xF0\x9F\x94\xAF", + 'beginner' => "\xF0\x9F\x94\xB0", + 'trident' => "\xF0\x9F\x94\xB1", + 'black_square_button' => "\xF0\x9F\x94\xB2", + 'white_square_button' => "\xF0\x9F\x94\xB3", + 'red_circle' => "\xF0\x9F\x94\xB4", + 'large_blue_circle' => "\xF0\x9F\x94\xB5", + 'large_orange_diamond' => "\xF0\x9F\x94\xB6", + 'large_blue_diamond' => "\xF0\x9F\x94\xB7", + 'small_orange_diamond' => "\xF0\x9F\x94\xB8", + 'small_blue_diamond' => "\xF0\x9F\x94\xB9", + 'small_red_triangle' => "\xF0\x9F\x94\xBA", + 'small_red_triangle_down' => "\xF0\x9F\x94\xBB", + 'arrow_up_small' => "\xF0\x9F\x94\xBC", + 'arrow_down_small' => "\xF0\x9F\x94\xBD", + 'clock1' => "\xF0\x9F\x95\x90", + 'clock2' => "\xF0\x9F\x95\x91", + 'clock3' => "\xF0\x9F\x95\x92", + 'clock4' => "\xF0\x9F\x95\x93", + 'clock5' => "\xF0\x9F\x95\x94", + 'clock6' => "\xF0\x9F\x95\x95", + 'clock7' => "\xF0\x9F\x95\x96", + 'clock8' => "\xF0\x9F\x95\x97", + 'clock9' => "\xF0\x9F\x95\x98", + 'clock10' => "\xF0\x9F\x95\x99", + 'clock11' => "\xF0\x9F\x95\x9A", + 'clock12' => "\xF0\x9F\x95\x9B", + 'clock130' => "\xF0\x9F\x95\x9C", + 'clock230' => "\xF0\x9F\x95\x9D", + 'clock330' => "\xF0\x9F\x95\x9E", + 'clock430' => "\xF0\x9F\x95\x9F", + 'clock530' => "\xF0\x9F\x95\xA0", + 'clock630' => "\xF0\x9F\x95\xA1", + 'clock730' => "\xF0\x9F\x95\xA2", + 'clock830' => "\xF0\x9F\x95\xA3", + 'clock930' => "\xF0\x9F\x95\xA4", + 'clock1030' => "\xF0\x9F\x95\xA5", + 'clock1130' => "\xF0\x9F\x95\xA6", + 'clock1230' => "\xF0\x9F\x95\xA7", + 'mount_fuji' => "\xF0\x9F\x97\xBB", + 'tokyo_tower' => "\xF0\x9F\x97\xBC", + 'statue_of_liberty' => "\xF0\x9F\x97\xBD", + 'japan' => "\xF0\x9F\x97\xBE", + 'moyai' => "\xF0\x9F\x97\xBF", + 'grinning' => "\xF0\x9F\x98\x80", + 'grin' => "\xF0\x9F\x98\x81", + 'joy' => "\xF0\x9F\x98\x82", + 'smiley' => "\xF0\x9F\x98\x83", + 'smile' => "\xF0\x9F\x98\x84", + 'sweat_smile' => "\xF0\x9F\x98\x85", + 'satisfied' => "\xF0\x9F\x98\x86", + 'laughing' => "\xF0\x9F\x98\x86", + 'innocent' => "\xF0\x9F\x98\x87", + 'smiling_imp' => "\xF0\x9F\x98\x88", + 'wink' => "\xF0\x9F\x98\x89", + 'blush' => "\xF0\x9F\x98\x8A", + 'yum' => "\xF0\x9F\x98\x8B", + 'relieved' => "\xF0\x9F\x98\x8C", + 'heart_eyes' => "\xF0\x9F\x98\x8D", + 'sunglasses' => "\xF0\x9F\x98\x8E", + 'smirk' => "\xF0\x9F\x98\x8F", + 'neutral_face' => "\xF0\x9F\x98\x90", + 'expressionless' => "\xF0\x9F\x98\x91", + 'unamused' => "\xF0\x9F\x98\x92", + 'sweat' => "\xF0\x9F\x98\x93", + 'pensive' => "\xF0\x9F\x98\x94", + 'confused' => "\xF0\x9F\x98\x95", + 'confounded' => "\xF0\x9F\x98\x96", + 'kissing' => "\xF0\x9F\x98\x97", + 'kissing_heart' => "\xF0\x9F\x98\x98", + 'kissing_smiling_eyes' => "\xF0\x9F\x98\x99", + 'kissing_closed_eyes' => "\xF0\x9F\x98\x9A", + 'stuck_out_tongue' => "\xF0\x9F\x98\x9B", + 'stuck_out_tongue_winking_eye' => "\xF0\x9F\x98\x9C", + 'stuck_out_tongue_closed_eyes' => "\xF0\x9F\x98\x9D", + 'disappointed' => "\xF0\x9F\x98\x9E", + 'worried' => "\xF0\x9F\x98\x9F", + 'angry' => "\xF0\x9F\x98\xA0", + 'rage' => "\xF0\x9F\x98\xA1", + 'cry' => "\xF0\x9F\x98\xA2", + 'persevere' => "\xF0\x9F\x98\xA3", + 'triumph' => "\xF0\x9F\x98\xA4", + 'disappointed_relieved' => "\xF0\x9F\x98\xA5", + 'frowning' => "\xF0\x9F\x98\xA6", + 'anguished' => "\xF0\x9F\x98\xA7", + 'fearful' => "\xF0\x9F\x98\xA8", + 'weary' => "\xF0\x9F\x98\xA9", + 'sleepy' => "\xF0\x9F\x98\xAA", + 'tired_face' => "\xF0\x9F\x98\xAB", + 'grimacing' => "\xF0\x9F\x98\xAC", + 'sob' => "\xF0\x9F\x98\xAD", + 'open_mouth' => "\xF0\x9F\x98\xAE", + 'hushed' => "\xF0\x9F\x98\xAF", + 'cold_sweat' => "\xF0\x9F\x98\xB0", + 'scream' => "\xF0\x9F\x98\xB1", + 'astonished' => "\xF0\x9F\x98\xB2", + 'flushed' => "\xF0\x9F\x98\xB3", + 'sleeping' => "\xF0\x9F\x98\xB4", + 'dizzy_face' => "\xF0\x9F\x98\xB5", + 'no_mouth' => "\xF0\x9F\x98\xB6", + 'mask' => "\xF0\x9F\x98\xB7", + 'smile_cat' => "\xF0\x9F\x98\xB8", + 'joy_cat' => "\xF0\x9F\x98\xB9", + 'smiley_cat' => "\xF0\x9F\x98\xBA", + 'heart_eyes_cat' => "\xF0\x9F\x98\xBB", + 'smirk_cat' => "\xF0\x9F\x98\xBC", + 'kissing_cat' => "\xF0\x9F\x98\xBD", + 'pouting_cat' => "\xF0\x9F\x98\xBE", + 'crying_cat_face' => "\xF0\x9F\x98\xBF", + 'scream_cat' => "\xF0\x9F\x99\x80", + 'no_good' => "\xF0\x9F\x99\x85", + 'ok_woman' => "\xF0\x9F\x99\x86", + 'bow' => "\xF0\x9F\x99\x87", + 'see_no_evil' => "\xF0\x9F\x99\x88", + 'hear_no_evil' => "\xF0\x9F\x99\x89", + 'speak_no_evil' => "\xF0\x9F\x99\x8A", + 'raising_hand' => "\xF0\x9F\x99\x8B", + 'raised_hands' => "\xF0\x9F\x99\x8C", + 'person_frowning' => "\xF0\x9F\x99\x8D", + 'person_with_pouting_face' => "\xF0\x9F\x99\x8E", + 'pray' => "\xF0\x9F\x99\x8F", + 'rocket' => "\xF0\x9F\x9A\x80", + 'helicopter' => "\xF0\x9F\x9A\x81", + 'steam_locomotive' => "\xF0\x9F\x9A\x82", + 'railway_car' => "\xF0\x9F\x9A\x83", + 'bullettrain_side' => "\xF0\x9F\x9A\x84", + 'bullettrain_front' => "\xF0\x9F\x9A\x85", + 'train2' => "\xF0\x9F\x9A\x86", + 'metro' => "\xF0\x9F\x9A\x87", + 'light_rail' => "\xF0\x9F\x9A\x88", + 'station' => "\xF0\x9F\x9A\x89", + 'tram' => "\xF0\x9F\x9A\x8A", + 'train' => "\xF0\x9F\x9A\x8B", + 'bus' => "\xF0\x9F\x9A\x8C", + 'oncoming_bus' => "\xF0\x9F\x9A\x8D", + 'trolleybus' => "\xF0\x9F\x9A\x8E", + 'busstop' => "\xF0\x9F\x9A\x8F", + 'minibus' => "\xF0\x9F\x9A\x90", + 'ambulance' => "\xF0\x9F\x9A\x91", + 'fire_engine' => "\xF0\x9F\x9A\x92", + 'police_car' => "\xF0\x9F\x9A\x93", + 'oncoming_police_car' => "\xF0\x9F\x9A\x94", + 'taxi' => "\xF0\x9F\x9A\x95", + 'oncoming_taxi' => "\xF0\x9F\x9A\x96", + 'red_car' => "\xF0\x9F\x9A\x97", + 'car' => "\xF0\x9F\x9A\x97", + 'oncoming_automobile' => "\xF0\x9F\x9A\x98", + 'blue_car' => "\xF0\x9F\x9A\x99", + 'truck' => "\xF0\x9F\x9A\x9A", + 'articulated_lorry' => "\xF0\x9F\x9A\x9B", + 'tractor' => "\xF0\x9F\x9A\x9C", + 'monorail' => "\xF0\x9F\x9A\x9D", + 'mountain_railway' => "\xF0\x9F\x9A\x9E", + 'suspension_railway' => "\xF0\x9F\x9A\x9F", + 'mountain_cableway' => "\xF0\x9F\x9A\xA0", + 'aerial_tramway' => "\xF0\x9F\x9A\xA1", + 'ship' => "\xF0\x9F\x9A\xA2", + 'rowboat' => "\xF0\x9F\x9A\xA3", + 'speedboat' => "\xF0\x9F\x9A\xA4", + 'traffic_light' => "\xF0\x9F\x9A\xA5", + 'vertical_traffic_light' => "\xF0\x9F\x9A\xA6", + 'construction' => "\xF0\x9F\x9A\xA7", + 'rotating_light' => "\xF0\x9F\x9A\xA8", + 'triangular_flag_on_post' => "\xF0\x9F\x9A\xA9", + 'door' => "\xF0\x9F\x9A\xAA", + 'no_entry_sign' => "\xF0\x9F\x9A\xAB", + 'smoking' => "\xF0\x9F\x9A\xAC", + 'no_smoking' => "\xF0\x9F\x9A\xAD", + 'put_litter_in_its_place' => "\xF0\x9F\x9A\xAE", + 'do_not_litter' => "\xF0\x9F\x9A\xAF", + 'potable_water' => "\xF0\x9F\x9A\xB0", + 'non_potable_water' => "\xF0\x9F\x9A\xB1", + 'bike' => "\xF0\x9F\x9A\xB2", + 'no_bicycles' => "\xF0\x9F\x9A\xB3", + 'bicyclist' => "\xF0\x9F\x9A\xB4", + 'mountain_bicyclist' => "\xF0\x9F\x9A\xB5", + 'walking' => "\xF0\x9F\x9A\xB6", + 'no_pedestrians' => "\xF0\x9F\x9A\xB7", + 'children_crossing' => "\xF0\x9F\x9A\xB8", + 'mens' => "\xF0\x9F\x9A\xB9", + 'womens' => "\xF0\x9F\x9A\xBA", + 'restroom' => "\xF0\x9F\x9A\xBB", + 'baby_symbol' => "\xF0\x9F\x9A\xBC", + 'toilet' => "\xF0\x9F\x9A\xBD", + 'wc' => "\xF0\x9F\x9A\xBE", + 'shower' => "\xF0\x9F\x9A\xBF", + 'bath' => "\xF0\x9F\x9B\x80", + 'bathtub' => "\xF0\x9F\x9B\x81", + 'passport_control' => "\xF0\x9F\x9B\x82", + 'customs' => "\xF0\x9F\x9B\x83", + 'baggage_claim' => "\xF0\x9F\x9B\x84", + 'left_luggage' => "\xF0\x9F\x9B\x85", + 'copyright' => "\xC2\xA9\xEF\xB8\x8F", + 'registered' => "\xC2\xAE\xEF\xB8\x8F", + 'bangbang' => "\xE2\x80\xBC\xEF\xB8\x8F", + 'interrobang' => "\xE2\x81\x89\xEF\xB8\x8F", + 'tm' => "\xE2\x84\xA2\xEF\xB8\x8F", + 'information_source' => "\xE2\x84\xB9\xEF\xB8\x8F", + 'left_right_arrow' => "\xE2\x86\x94\xEF\xB8\x8F", + 'arrow_up_down' => "\xE2\x86\x95\xEF\xB8\x8F", + 'arrow_upper_left' => "\xE2\x86\x96\xEF\xB8\x8F", + 'arrow_upper_right' => "\xE2\x86\x97\xEF\xB8\x8F", + 'arrow_lower_right' => "\xE2\x86\x98\xEF\xB8\x8F", + 'arrow_lower_left' => "\xE2\x86\x99\xEF\xB8\x8F", + 'leftwards_arrow_with_hook' => "\xE2\x86\xA9\xEF\xB8\x8F", + 'arrow_right_hook' => "\xE2\x86\xAA\xEF\xB8\x8F", + 'm' => "\xE2\x93\x82\xEF\xB8\x8F", + 'black_small_square' => "\xE2\x96\xAA\xEF\xB8\x8F", + 'white_small_square' => "\xE2\x96\xAB\xEF\xB8\x8F", + 'arrow_forward' => "\xE2\x96\xB6\xEF\xB8\x8F", + 'arrow_backward' => "\xE2\x97\x80\xEF\xB8\x8F", + 'white_medium_square' => "\xE2\x97\xBB\xEF\xB8\x8F", + 'black_medium_square' => "\xE2\x97\xBC\xEF\xB8\x8F", + 'sunny' => "\xE2\x98\x80\xEF\xB8\x8F", + 'cloud' => "\xE2\x98\x81\xEF\xB8\x8F", + 'telephone' => "\xE2\x98\x8E\xEF\xB8\x8F", + 'phone' => "\xE2\x98\x8E\xEF\xB8\x8F", + 'ballot_box_with_check' => "\xE2\x98\x91\xEF\xB8\x8F", + 'point_up' => "\xE2\x98\x9D\xEF\xB8\x8F", + 'relaxed' => "\xE2\x98\xBA\xEF\xB8\x8F", + 'spades' => "\xE2\x99\xA0\xEF\xB8\x8F", + 'clubs' => "\xE2\x99\xA3\xEF\xB8\x8F", + 'hearts' => "\xE2\x99\xA5\xEF\xB8\x8F", + 'diamonds' => "\xE2\x99\xA6\xEF\xB8\x8F", + 'hotsprings' => "\xE2\x99\xA8\xEF\xB8\x8F", + 'recycle' => "\xE2\x99\xBB\xEF\xB8\x8F", + 'warning' => "\xE2\x9A\xA0\xEF\xB8\x8F", + 'baseball' => "\xE2\x9A\xBE\xEF\xB8\x8F", + 'scissors' => "\xE2\x9C\x82\xEF\xB8\x8F", + 'airplane' => "\xE2\x9C\x88\xEF\xB8\x8F", + 'email' => "\xE2\x9C\x89\xEF\xB8\x8F", + 'envelope' => "\xE2\x9C\x89\xEF\xB8\x8F", + 'v' => "\xE2\x9C\x8C\xEF\xB8\x8F", + 'pencil2' => "\xE2\x9C\x8F\xEF\xB8\x8F", + 'black_nib' => "\xE2\x9C\x92\xEF\xB8\x8F", + 'heavy_check_mark' => "\xE2\x9C\x94\xEF\xB8\x8F", + 'heavy_multiplication_x' => "\xE2\x9C\x96\xEF\xB8\x8F", + 'eight_spoked_asterisk' => "\xE2\x9C\xB3\xEF\xB8\x8F", + 'eight_pointed_black_star' => "\xE2\x9C\xB4\xEF\xB8\x8F", + 'snowflake' => "\xE2\x9D\x84\xEF\xB8\x8F", + 'sparkle' => "\xE2\x9D\x87\xEF\xB8\x8F", + 'heart' => "\xE2\x9D\xA4\xEF\xB8\x8F", + 'arrow_right' => "\xE2\x9E\xA1\xEF\xB8\x8F", + 'arrow_heading_up' => "\xE2\xA4\xB4\xEF\xB8\x8F", + 'arrow_heading_down' => "\xE2\xA4\xB5\xEF\xB8\x8F", + 'arrow_left' => "\xE2\xAC\x85\xEF\xB8\x8F", + 'arrow_up' => "\xE2\xAC\x86\xEF\xB8\x8F", + 'arrow_down' => "\xE2\xAC\x87\xEF\xB8\x8F", + 'wavy_dash' => "\xE3\x80\xB0\xEF\xB8\x8F", + 'part_alternation_mark' => "\xE3\x80\xBD\xEF\xB8\x8F", + 'congratulations' => "\xE3\x8A\x97\xEF\xB8\x8F", + 'secret' => "\xE3\x8A\x99\xEF\xB8\x8F", + 'hash' => "\x23\xEF\xB8\x8F\xE2\x83\xA3", + 'zero' => "\x30\xEF\xB8\x8F\xE2\x83\xA3", + 'one' => "\x31\xEF\xB8\x8F\xE2\x83\xA3", + 'two' => "\x32\xEF\xB8\x8F\xE2\x83\xA3", + 'three' => "\x33\xEF\xB8\x8F\xE2\x83\xA3", + 'four' => "\x34\xEF\xB8\x8F\xE2\x83\xA3", + 'five' => "\x35\xEF\xB8\x8F\xE2\x83\xA3", + 'six' => "\x36\xEF\xB8\x8F\xE2\x83\xA3", + 'seven' => "\x37\xEF\xB8\x8F\xE2\x83\xA3", + 'eight' => "\x38\xEF\xB8\x8F\xE2\x83\xA3", + 'nine' => "\x39\xEF\xB8\x8F\xE2\x83\xA3", + 'a' => "\xF0\x9F\x85\xB0\xEF\xB8\x8F", + 'b' => "\xF0\x9F\x85\xB1\xEF\xB8\x8F", + 'o2' => "\xF0\x9F\x85\xBE\xEF\xB8\x8F", + 'parking' => "\xF0\x9F\x85\xBF\xEF\xB8\x8F", + 'sa' => "\xF0\x9F\x88\x82\xEF\xB8\x8F", + 'u6708' => "\xF0\x9F\x88\xB7\xEF\xB8\x8F", + 'cn' => "\xF0\x9F\x87\xA8\xF0\x9F\x87\xB3", + 'de' => "\xF0\x9F\x87\xA9\xF0\x9F\x87\xAA", + 'es' => "\xF0\x9F\x87\xAA\xF0\x9F\x87\xB8", + 'fr' => "\xF0\x9F\x87\xAB\xF0\x9F\x87\xB7", + 'uk' => "\xF0\x9F\x87\xAC\xF0\x9F\x87\xA7", + 'gb' => "\xF0\x9F\x87\xAC\xF0\x9F\x87\xA7", + 'it' => "\xF0\x9F\x87\xAE\xF0\x9F\x87\xB9", + 'jp' => "\xF0\x9F\x87\xAF\xF0\x9F\x87\xB5", + 'kr' => "\xF0\x9F\x87\xB0\xF0\x9F\x87\xB7", + 'ru' => "\xF0\x9F\x87\xB7\xF0\x9F\x87\xBA", + 'us' => "\xF0\x9F\x87\xBA\xF0\x9F\x87\xB8", + ); + + $matches[1] = str_replace('-', '_', $matches[1]); + + if (isset($map[$matches[1]])) { + return $map[$matches[1]]; + } + + return $matches[0]; + } + +}