From db20d528847fe6b451c19eb0b95eeb12954f98a4 Mon Sep 17 00:00:00 2001 From: jaguillo Date: Fri, 23 Oct 2015 14:22:43 +0200 Subject: [PATCH] Start with emojis --- emoji_gen.py | 1757 +++++++++++++++++++++++ project.properties | 2 +- res/layout/emoji_pane.xml | 7 + res/layout/{input.xml => keyboard.xml} | 0 srcs/juloo.keyboard2/Emoji.java | 906 ++++++++++++ srcs/juloo.keyboard2/EmojiGridView.java | 107 ++ srcs/juloo.keyboard2/Keyboard2.java | 56 +- srcs/juloo.keyboard2/Keyboard2View.java | 2 +- 8 files changed, 2815 insertions(+), 22 deletions(-) create mode 100644 emoji_gen.py create mode 100644 res/layout/emoji_pane.xml rename res/layout/{input.xml => keyboard.xml} (100%) create mode 100644 srcs/juloo.keyboard2/Emoji.java create mode 100644 srcs/juloo.keyboard2/EmojiGridView.java diff --git a/emoji_gen.py b/emoji_gen.py new file mode 100644 index 0000000..ae0436b --- /dev/null +++ b/emoji_gen.py @@ -0,0 +1,1757 @@ + + +# http://apps.timwhitlock.info/emoji/tables/unicode +# var all = document.querySelectorAll("tr,h3") +# var emojis = []; +# for (var i = 0; i < all.length;i++) +# { +# var t = all[i]; +# if (t.nodeName == "H3") +# emojis.push('\n// ' + t.innerText + '\n'); +# else +# { +# var codes = t.querySelectorAll(".code,.name"); +# var str = []; +# for (var j = 0; j < codes.length; j++) +# str.push(codes[j].innerText); +# if (str.length > 0) +# emojis.push('"' + str.join('", "') + '"'); +# } +# } +# document.body.innerText = emojis.join("\n"); + +emoji_list = [ + +"TYPE_EMOTICONS", "U+1F601", "\xF0\x9F\x98\x81", "grinning face with smiling eyes", +"TYPE_EMOTICONS", "U+1F602", "\xF0\x9F\x98\x82", "face with tears of joy", +"TYPE_EMOTICONS", "U+1F603", "\xF0\x9F\x98\x83", "smiling face with open mouth", +"TYPE_EMOTICONS", "U+1F604", "\xF0\x9F\x98\x84", "smiling face with open mouth and smiling eyes", +"TYPE_EMOTICONS", "U+1F605", "\xF0\x9F\x98\x85", "smiling face with open mouth and cold sweat", +"TYPE_EMOTICONS", "U+1F606", "\xF0\x9F\x98\x86", "smiling face with open mouth and tightly-closed eyes", +"TYPE_EMOTICONS", "U+1F609", "\xF0\x9F\x98\x89", "winking face", +"TYPE_EMOTICONS", "U+1F60A", "\xF0\x9F\x98\x8A", "smiling face with smiling eyes", +"TYPE_EMOTICONS", "U+1F60B", "\xF0\x9F\x98\x8B", "face savouring delicious food", +"TYPE_EMOTICONS", "U+1F60C", "\xF0\x9F\x98\x8C", "relieved face", +"TYPE_EMOTICONS", "U+1F60D", "\xF0\x9F\x98\x8D", "smiling face with heart-shaped eyes", +"TYPE_EMOTICONS", "U+1F60F", "\xF0\x9F\x98\x8F", "smirking face", +"TYPE_EMOTICONS", "U+1F612", "\xF0\x9F\x98\x92", "unamused face", +"TYPE_EMOTICONS", "U+1F613", "\xF0\x9F\x98\x93", "face with cold sweat", +"TYPE_EMOTICONS", "U+1F614", "\xF0\x9F\x98\x94", "pensive face", +"TYPE_EMOTICONS", "U+1F616", "\xF0\x9F\x98\x96", "confounded face", +"TYPE_EMOTICONS", "U+1F618", "\xF0\x9F\x98\x98", "face throwing a kiss", +"TYPE_EMOTICONS", "U+1F61A", "\xF0\x9F\x98\x9A", "kissing face with closed eyes", +"TYPE_EMOTICONS", "U+1F61C", "\xF0\x9F\x98\x9C", "face with stuck-out tongue and winking eye", +"TYPE_EMOTICONS", "U+1F61D", "\xF0\x9F\x98\x9D", "face with stuck-out tongue and tightly-closed eyes", +"TYPE_EMOTICONS", "U+1F61E", "\xF0\x9F\x98\x9E", "disappointed face", +"TYPE_EMOTICONS", "U+1F620", "\xF0\x9F\x98\xA0", "angry face", +"TYPE_EMOTICONS", "U+1F621", "\xF0\x9F\x98\xA1", "pouting face", +"TYPE_EMOTICONS", "U+1F622", "\xF0\x9F\x98\xA2", "crying face", +"TYPE_EMOTICONS", "U+1F623", "\xF0\x9F\x98\xA3", "persevering face", +"TYPE_EMOTICONS", "U+1F624", "\xF0\x9F\x98\xA4", "face with look of triumph", +"TYPE_EMOTICONS", "U+1F625", "\xF0\x9F\x98\xA5", "disappointed but relieved face", +"TYPE_EMOTICONS", "U+1F628", "\xF0\x9F\x98\xA8", "fearful face", +"TYPE_EMOTICONS", "U+1F629", "\xF0\x9F\x98\xA9", "weary face", +"TYPE_EMOTICONS", "U+1F62A", "\xF0\x9F\x98\xAA", "sleepy face", +"TYPE_EMOTICONS", "U+1F62B", "\xF0\x9F\x98\xAB", "tired face", +"TYPE_EMOTICONS", "U+1F62D", "\xF0\x9F\x98\xAD", "loudly crying face", +"TYPE_EMOTICONS", "U+1F630", "\xF0\x9F\x98\xB0", "face with open mouth and cold sweat", +"TYPE_EMOTICONS", "U+1F631", "\xF0\x9F\x98\xB1", "face screaming in fear", +"TYPE_EMOTICONS", "U+1F632", "\xF0\x9F\x98\xB2", "astonished face", +"TYPE_EMOTICONS", "U+1F633", "\xF0\x9F\x98\xB3", "flushed face", +"TYPE_EMOTICONS", "U+1F635", "\xF0\x9F\x98\xB5", "dizzy face", +"TYPE_EMOTICONS", "U+1F637", "\xF0\x9F\x98\xB7", "face with medical mask", +"TYPE_EMOTICONS", "U+1F638", "\xF0\x9F\x98\xB8", "grinning cat face with smiling eyes", +"TYPE_EMOTICONS", "U+1F639", "\xF0\x9F\x98\xB9", "cat face with tears of joy", +"TYPE_EMOTICONS", "U+1F63A", "\xF0\x9F\x98\xBA", "smiling cat face with open mouth", +"TYPE_EMOTICONS", "U+1F63B", "\xF0\x9F\x98\xBB", "smiling cat face with heart-shaped eyes", +"TYPE_EMOTICONS", "U+1F63C", "\xF0\x9F\x98\xBC", "cat face with wry smile", +"TYPE_EMOTICONS", "U+1F63D", "\xF0\x9F\x98\xBD", "kissing cat face with closed eyes", +"TYPE_EMOTICONS", "U+1F63E", "\xF0\x9F\x98\xBE", "pouting cat face", +"TYPE_EMOTICONS", "U+1F63F", "\xF0\x9F\x98\xBF", "crying cat face", +"TYPE_EMOTICONS", "U+1F640", "\xF0\x9F\x99\x80", "weary cat face", +"TYPE_EMOTICONS", "U+1F645", "\xF0\x9F\x99\x85", "face with no good gesture", +"TYPE_EMOTICONS", "U+1F646", "\xF0\x9F\x99\x86", "face with ok gesture", +"TYPE_EMOTICONS", "U+1F647", "\xF0\x9F\x99\x87", "person bowing deeply", +"TYPE_EMOTICONS", "U+1F648", "\xF0\x9F\x99\x88", "see-no-evil monkey", +"TYPE_EMOTICONS", "U+1F649", "\xF0\x9F\x99\x89", "hear-no-evil monkey", +"TYPE_EMOTICONS", "U+1F64A", "\xF0\x9F\x99\x8A", "speak-no-evil monkey", +"TYPE_EMOTICONS", "U+1F64B", "\xF0\x9F\x99\x8B", "happy person raising one hand", +"TYPE_EMOTICONS", "U+1F64C", "\xF0\x9F\x99\x8C", "person raising both hands in celebration", +"TYPE_EMOTICONS", "U+1F64D", "\xF0\x9F\x99\x8D", "person frowning", +"TYPE_EMOTICONS", "U+1F64E", "\xF0\x9F\x99\x8E", "person with pouting face", +"TYPE_EMOTICONS", "U+1F64F", "\xF0\x9F\x99\x8F", "person with folded hands", + +"TYPE_EMOTICONS", "U+1F600", "\xF0\x9F\x98\x80", "grinning face", +"TYPE_EMOTICONS", "U+1F607", "\xF0\x9F\x98\x87", "smiling face with halo", +"TYPE_EMOTICONS", "U+1F608", "\xF0\x9F\x98\x88", "smiling face with horns", +"TYPE_EMOTICONS", "U+1F60E", "\xF0\x9F\x98\x8E", "smiling face with sunglasses", +"TYPE_EMOTICONS", "U+1F610", "\xF0\x9F\x98\x90", "neutral face", +"TYPE_EMOTICONS", "U+1F611", "\xF0\x9F\x98\x91", "expressionless face", +"TYPE_EMOTICONS", "U+1F615", "\xF0\x9F\x98\x95", "confused face", +"TYPE_EMOTICONS", "U+1F617", "\xF0\x9F\x98\x97", "kissing face", +"TYPE_EMOTICONS", "U+1F619", "\xF0\x9F\x98\x99", "kissing face with smiling eyes", +"TYPE_EMOTICONS", "U+1F61B", "\xF0\x9F\x98\x9B", "face with stuck-out tongue", +"TYPE_EMOTICONS", "U+1F61F", "\xF0\x9F\x98\x9F", "worried face", +"TYPE_EMOTICONS", "U+1F626", "\xF0\x9F\x98\xA6", "frowning face with open mouth", +"TYPE_EMOTICONS", "U+1F627", "\xF0\x9F\x98\xA7", "anguished face", +"TYPE_EMOTICONS", "U+1F62C", "\xF0\x9F\x98\xAC", "grimacing face", +"TYPE_EMOTICONS", "U+1F62E", "\xF0\x9F\x98\xAE", "face with open mouth", +"TYPE_EMOTICONS", "U+1F62F", "\xF0\x9F\x98\xAF", "hushed face", +"TYPE_EMOTICONS", "U+1F634", "\xF0\x9F\x98\xB4", "sleeping face", +"TYPE_EMOTICONS", "U+1F636", "\xF0\x9F\x98\xB6", "face without mouth", + +"TYPE_DINGBATS", "U+2702", "\xE2\x9C\x82", "black scissors", +"TYPE_DINGBATS", "U+2705", "\xE2\x9C\x85", "white heavy check mark", +"TYPE_DINGBATS", "U+2708", "\xE2\x9C\x88", "airplane", +"TYPE_DINGBATS", "U+2709", "\xE2\x9C\x89", "envelope", +"TYPE_DINGBATS", "U+270A", "\xE2\x9C\x8A", "raised fist", +"TYPE_DINGBATS", "U+270B", "\xE2\x9C\x8B", "raised hand", +"TYPE_DINGBATS", "U+270C", "\xE2\x9C\x8C", "victory hand", +"TYPE_DINGBATS", "U+270F", "\xE2\x9C\x8F", "pencil", +"TYPE_DINGBATS", "U+2712", "\xE2\x9C\x92", "black nib", +"TYPE_DINGBATS", "U+2714", "\xE2\x9C\x94", "heavy check mark", +"TYPE_DINGBATS", "U+2716", "\xE2\x9C\x96", "heavy multiplication x", +"TYPE_DINGBATS", "U+2728", "\xE2\x9C\xA8", "sparkles", +"TYPE_DINGBATS", "U+2733", "\xE2\x9C\xB3", "eight spoked asterisk", +"TYPE_DINGBATS", "U+2734", "\xE2\x9C\xB4", "eight pointed black star", +"TYPE_DINGBATS", "U+2744", "\xE2\x9D\x84", "snowflake", +"TYPE_DINGBATS", "U+2747", "\xE2\x9D\x87", "sparkle", +"TYPE_DINGBATS", "U+274C", "\xE2\x9D\x8C", "cross mark", +"TYPE_DINGBATS", "U+274E", "\xE2\x9D\x8E", "negative squared cross mark", +"TYPE_DINGBATS", "U+2753", "\xE2\x9D\x93", "black question mark ornament", +"TYPE_DINGBATS", "U+2754", "\xE2\x9D\x94", "white question mark ornament", +"TYPE_DINGBATS", "U+2755", "\xE2\x9D\x95", "white exclamation mark ornament", +"TYPE_DINGBATS", "U+2757", "\xE2\x9D\x97", "heavy exclamation mark symbol", +"TYPE_DINGBATS", "U+2764", "\xE2\x9D\xA4", "heavy black heart", +"TYPE_DINGBATS", "U+2795", "\xE2\x9E\x95", "heavy plus sign", +"TYPE_DINGBATS", "U+2796", "\xE2\x9E\x96", "heavy minus sign", +"TYPE_DINGBATS", "U+2797", "\xE2\x9E\x97", "heavy division sign", +"TYPE_DINGBATS", "U+27A1", "\xE2\x9E\xA1", "black rightwards arrow", +"TYPE_DINGBATS", "U+27B0", "\xE2\x9E\xB0", "curly loop", + +"TYPE_TRANSPORT", "U+1F680", "\xF0\x9F\x9A\x80", "rocket", +"TYPE_TRANSPORT", "U+1F683", "\xF0\x9F\x9A\x83", "railway car", +"TYPE_TRANSPORT", "U+1F684", "\xF0\x9F\x9A\x84", "high-speed train", +"TYPE_TRANSPORT", "U+1F685", "\xF0\x9F\x9A\x85", "high-speed train with bullet nose", +"TYPE_TRANSPORT", "U+1F687", "\xF0\x9F\x9A\x87", "metro", +"TYPE_TRANSPORT", "U+1F689", "\xF0\x9F\x9A\x89", "station", +"TYPE_TRANSPORT", "U+1F68C", "\xF0\x9F\x9A\x8C", "bus", +"TYPE_TRANSPORT", "U+1F68F", "\xF0\x9F\x9A\x8F", "bus stop", +"TYPE_TRANSPORT", "U+1F691", "\xF0\x9F\x9A\x91", "ambulance", +"TYPE_TRANSPORT", "U+1F692", "\xF0\x9F\x9A\x92", "fire engine", +"TYPE_TRANSPORT", "U+1F693", "\xF0\x9F\x9A\x93", "police car", +"TYPE_TRANSPORT", "U+1F695", "\xF0\x9F\x9A\x95", "taxi", +"TYPE_TRANSPORT", "U+1F697", "\xF0\x9F\x9A\x97", "automobile", +"TYPE_TRANSPORT", "U+1F699", "\xF0\x9F\x9A\x99", "recreational vehicle", +"TYPE_TRANSPORT", "U+1F69A", "\xF0\x9F\x9A\x9A", "delivery truck", +"TYPE_TRANSPORT", "U+1F6A2", "\xF0\x9F\x9A\xA2", "ship", +"TYPE_TRANSPORT", "U+1F6A4", "\xF0\x9F\x9A\xA4", "speedboat", +"TYPE_TRANSPORT", "U+1F6A5", "\xF0\x9F\x9A\xA5", "horizontal traffic light", +"TYPE_TRANSPORT", "U+1F6A7", "\xF0\x9F\x9A\xA7", "construction sign", +"TYPE_TRANSPORT", "U+1F6A8", "\xF0\x9F\x9A\xA8", "police cars revolving light", +"TYPE_TRANSPORT", "U+1F6A9", "\xF0\x9F\x9A\xA9", "triangular flag on post", +"TYPE_TRANSPORT", "U+1F6AA", "\xF0\x9F\x9A\xAA", "door", +"TYPE_TRANSPORT", "U+1F6AB", "\xF0\x9F\x9A\xAB", "no entry sign", +"TYPE_TRANSPORT", "U+1F6AC", "\xF0\x9F\x9A\xAC", "smoking symbol", +"TYPE_TRANSPORT", "U+1F6AD", "\xF0\x9F\x9A\xAD", "no smoking symbol", +"TYPE_TRANSPORT", "U+1F6B2", "\xF0\x9F\x9A\xB2", "bicycle", +"TYPE_TRANSPORT", "U+1F6B6", "\xF0\x9F\x9A\xB6", "pedestrian", +"TYPE_TRANSPORT", "U+1F6B9", "\xF0\x9F\x9A\xB9", "mens symbol", +"TYPE_TRANSPORT", "U+1F6BA", "\xF0\x9F\x9A\xBA", "womens symbol", +"TYPE_TRANSPORT", "U+1F6BB", "\xF0\x9F\x9A\xBB", "restroom", +"TYPE_TRANSPORT", "U+1F6BC", "\xF0\x9F\x9A\xBC", "baby symbol", +"TYPE_TRANSPORT", "U+1F6BD", "\xF0\x9F\x9A\xBD", "toilet", +"TYPE_TRANSPORT", "U+1F6BE", "\xF0\x9F\x9A\xBE", "water closet", +"TYPE_TRANSPORT", "U+1F6C0", "\xF0\x9F\x9B\x80", "bath", + +"TYPE_TRANSPORT", "U+1F681", "\xF0\x9F\x9A\x81", "helicopter", +"TYPE_TRANSPORT", "U+1F682", "\xF0\x9F\x9A\x82", "steam locomotive", +"TYPE_TRANSPORT", "U+1F686", "\xF0\x9F\x9A\x86", "train", +"TYPE_TRANSPORT", "U+1F688", "\xF0\x9F\x9A\x88", "light rail", +"TYPE_TRANSPORT", "U+1F68A", "\xF0\x9F\x9A\x8A", "tram", +"TYPE_TRANSPORT", "U+1F68D", "\xF0\x9F\x9A\x8D", "oncoming bus", +"TYPE_TRANSPORT", "U+1F68E", "\xF0\x9F\x9A\x8E", "trolleybus", +"TYPE_TRANSPORT", "U+1F690", "\xF0\x9F\x9A\x90", "minibus", +"TYPE_TRANSPORT", "U+1F694", "\xF0\x9F\x9A\x94", "oncoming police car", +"TYPE_TRANSPORT", "U+1F696", "\xF0\x9F\x9A\x96", "oncoming taxi", +"TYPE_TRANSPORT", "U+1F698", "\xF0\x9F\x9A\x98", "oncoming automobile", +"TYPE_TRANSPORT", "U+1F69B", "\xF0\x9F\x9A\x9B", "articulated lorry", +"TYPE_TRANSPORT", "U+1F69C", "\xF0\x9F\x9A\x9C", "tractor", +"TYPE_TRANSPORT", "U+1F69D", "\xF0\x9F\x9A\x9D", "monorail", +"TYPE_TRANSPORT", "U+1F69E", "\xF0\x9F\x9A\x9E", "mountain railway", +"TYPE_TRANSPORT", "U+1F69F", "\xF0\x9F\x9A\x9F", "suspension railway", +"TYPE_TRANSPORT", "U+1F6A0", "\xF0\x9F\x9A\xA0", "mountain cableway", +"TYPE_TRANSPORT", "U+1F6A1", "\xF0\x9F\x9A\xA1", "aerial tramway", +"TYPE_TRANSPORT", "U+1F6A3", "\xF0\x9F\x9A\xA3", "rowboat", +"TYPE_TRANSPORT", "U+1F6A6", "\xF0\x9F\x9A\xA6", "vertical traffic light", +"TYPE_TRANSPORT", "U+1F6AE", "\xF0\x9F\x9A\xAE", "put litter in its place symbol", +"TYPE_TRANSPORT", "U+1F6AF", "\xF0\x9F\x9A\xAF", "do not litter symbol", +"TYPE_TRANSPORT", "U+1F6B0", "\xF0\x9F\x9A\xB0", "potable water symbol", +"TYPE_TRANSPORT", "U+1F6B1", "\xF0\x9F\x9A\xB1", "non-potable water symbol", +"TYPE_TRANSPORT", "U+1F6B3", "\xF0\x9F\x9A\xB3", "no bicycles", +"TYPE_TRANSPORT", "U+1F6B4", "\xF0\x9F\x9A\xB4", "bicyclist", +"TYPE_TRANSPORT", "U+1F6B5", "\xF0\x9F\x9A\xB5", "mountain bicyclist", +"TYPE_TRANSPORT", "U+1F6B7", "\xF0\x9F\x9A\xB7", "no pedestrians", +"TYPE_TRANSPORT", "U+1F6B8", "\xF0\x9F\x9A\xB8", "children crossing", +"TYPE_TRANSPORT", "U+1F6BF", "\xF0\x9F\x9A\xBF", "shower", +"TYPE_TRANSPORT", "U+1F6C1", "\xF0\x9F\x9B\x81", "bathtub", +"TYPE_TRANSPORT", "U+1F6C2", "\xF0\x9F\x9B\x82", "passport control", +"TYPE_TRANSPORT", "U+1F6C3", "\xF0\x9F\x9B\x83", "customs", +"TYPE_TRANSPORT", "U+1F6C4", "\xF0\x9F\x9B\x84", "baggage claim", +"TYPE_TRANSPORT", "U+1F6C5", "\xF0\x9F\x9B\x85", "left luggage", + +"TYPE_ENCLOSED_CHARACTERS", "U+24C2", "\xE2\x93\x82", "circled latin capital letter m", +"TYPE_ENCLOSED_CHARACTERS", "U+1F170", "\xF0\x9F\x85\xB0", "negative squared latin capital letter a", +"TYPE_ENCLOSED_CHARACTERS", "U+1F171", "\xF0\x9F\x85\xB1", "negative squared latin capital letter b", +"TYPE_ENCLOSED_CHARACTERS", "U+1F17E", "\xF0\x9F\x85\xBE", "negative squared latin capital letter o", +"TYPE_ENCLOSED_CHARACTERS", "U+1F17F", "\xF0\x9F\x85\xBF", "negative squared latin capital letter p", +"TYPE_ENCLOSED_CHARACTERS", "U+1F18E", "\xF0\x9F\x86\x8E", "negative squared ab", +"TYPE_ENCLOSED_CHARACTERS", "U+1F191", "\xF0\x9F\x86\x91", "squared cl", +"TYPE_ENCLOSED_CHARACTERS", "U+1F192", "\xF0\x9F\x86\x92", "squared cool", +"TYPE_ENCLOSED_CHARACTERS", "U+1F193", "\xF0\x9F\x86\x93", "squared free", +"TYPE_ENCLOSED_CHARACTERS", "U+1F194", "\xF0\x9F\x86\x94", "squared id", +"TYPE_ENCLOSED_CHARACTERS", "U+1F195", "\xF0\x9F\x86\x95", "squared new", +"TYPE_ENCLOSED_CHARACTERS", "U+1F196", "\xF0\x9F\x86\x96", "squared ng", +"TYPE_ENCLOSED_CHARACTERS", "U+1F197", "\xF0\x9F\x86\x97", "squared ok", +"TYPE_ENCLOSED_CHARACTERS", "U+1F198", "\xF0\x9F\x86\x98", "squared sos", +"TYPE_ENCLOSED_CHARACTERS", "U+1F199", "\xF0\x9F\x86\x99", "squared up with exclamation mark", +"TYPE_ENCLOSED_CHARACTERS", "U+1F19A", "\xF0\x9F\x86\x9A", "squared vs", +"TYPE_ENCLOSED_CHARACTERS", "U+1F1E9 U+1F1EA", "\xF0\x9F\x87\xA9\xF0\x9F\x87\xAA", "regional indicator symbol letter d + regional indicator symbol letter e", +"TYPE_ENCLOSED_CHARACTERS", "U+1F1EC U+1F1E7", "\xF0\x9F\x87\xAC\xF0\x9F\x87\xA7", "regional indicator symbol letter g + regional indicator symbol letter b", +"TYPE_ENCLOSED_CHARACTERS", "U+1F1E8 U+1F1F3", "\xF0\x9F\x87\xA8\xF0\x9F\x87\xB3", "regional indicator symbol letter c + regional indicator symbol letter n", +"TYPE_ENCLOSED_CHARACTERS", "U+1F1EF U+1F1F5", "\xF0\x9F\x87\xAF\xF0\x9F\x87\xB5", "regional indicator symbol letter j + regional indicator symbol letter p", +"TYPE_ENCLOSED_CHARACTERS", "U+1F1F0 U+1F1F7", "\xF0\x9F\x87\xB0\xF0\x9F\x87\xB7", "regional indicator symbol letter k + regional indicator symbol letter r", +"TYPE_ENCLOSED_CHARACTERS", "U+1F1EB U+1F1F7", "\xF0\x9F\x87\xAB\xF0\x9F\x87\xB7", "regional indicator symbol letter f + regional indicator symbol letter r", +"TYPE_ENCLOSED_CHARACTERS", "U+1F1EA U+1F1F8", "\xF0\x9F\x87\xAA\xF0\x9F\x87\xB8", "regional indicator symbol letter e + regional indicator symbol letter s", +"TYPE_ENCLOSED_CHARACTERS", "U+1F1EE U+1F1F9", "\xF0\x9F\x87\xAE\xF0\x9F\x87\xB9", "regional indicator symbol letter i + regional indicator symbol letter t", +"TYPE_ENCLOSED_CHARACTERS", "U+1F1FA U+1F1F8", "\xF0\x9F\x87\xBA\xF0\x9F\x87\xB8", "regional indicator symbol letter u + regional indicator symbol letter s", +"TYPE_ENCLOSED_CHARACTERS", "U+1F1F7 U+1F1FA", "\xF0\x9F\x87\xB7\xF0\x9F\x87\xBA", "regional indicator symbol letter r + regional indicator symbol letter u", +"TYPE_ENCLOSED_CHARACTERS", "U+1F201", "\xF0\x9F\x88\x81", "squared katakana koko", +"TYPE_ENCLOSED_CHARACTERS", "U+1F202", "\xF0\x9F\x88\x82", "squared katakana sa", +"TYPE_ENCLOSED_CHARACTERS", "U+1F21A", "\xF0\x9F\x88\x9A", "squared cjk unified ideograph-7121", +"TYPE_ENCLOSED_CHARACTERS", "U+1F22F", "\xF0\x9F\x88\xAF", "squared cjk unified ideograph-6307", +"TYPE_ENCLOSED_CHARACTERS", "U+1F232", "\xF0\x9F\x88\xB2", "squared cjk unified ideograph-7981", +"TYPE_ENCLOSED_CHARACTERS", "U+1F233", "\xF0\x9F\x88\xB3", "squared cjk unified ideograph-7a7a", +"TYPE_ENCLOSED_CHARACTERS", "U+1F234", "\xF0\x9F\x88\xB4", "squared cjk unified ideograph-5408", +"TYPE_ENCLOSED_CHARACTERS", "U+1F235", "\xF0\x9F\x88\xB5", "squared cjk unified ideograph-6e80", +"TYPE_ENCLOSED_CHARACTERS", "U+1F236", "\xF0\x9F\x88\xB6", "squared cjk unified ideograph-6709", +"TYPE_ENCLOSED_CHARACTERS", "U+1F237", "\xF0\x9F\x88\xB7", "squared cjk unified ideograph-6708", +"TYPE_ENCLOSED_CHARACTERS", "U+1F238", "\xF0\x9F\x88\xB8", "squared cjk unified ideograph-7533", +"TYPE_ENCLOSED_CHARACTERS", "U+1F239", "\xF0\x9F\x88\xB9", "squared cjk unified ideograph-5272", +"TYPE_ENCLOSED_CHARACTERS", "U+1F23A", "\xF0\x9F\x88\xBA", "squared cjk unified ideograph-55b6", +"TYPE_ENCLOSED_CHARACTERS", "U+1F250", "\xF0\x9F\x89\x90", "circled ideograph advantage", +"TYPE_ENCLOSED_CHARACTERS", "U+1F251", "\xF0\x9F\x89\x91", "circled ideograph accept", + +"TYPE_UNCATEGORIZED", "U+00A9", "\xC2\xA9", "copyright sign", +"TYPE_UNCATEGORIZED", "U+00AE", "\xC2\xAE", "registered sign", +"TYPE_UNCATEGORIZED", "U+203C", "\xE2\x80\xBC", "double exclamation mark", +"TYPE_UNCATEGORIZED", "U+2049", "\xE2\x81\x89", "exclamation question mark", +"TYPE_UNCATEGORIZED", "U+0038 U+20E3", "\x38\xE2\x83\xA3", "digit eight + combining enclosing keycap", +"TYPE_UNCATEGORIZED", "U+0039 U+20E3", "\x39\xE2\x83\xA3", "digit nine + combining enclosing keycap", +"TYPE_UNCATEGORIZED", "U+0037 U+20E3", "\x37\xE2\x83\xA3", "digit seven + combining enclosing keycap", +"TYPE_UNCATEGORIZED", "U+0036 U+20E3", "\x36\xE2\x83\xA3", "digit six + combining enclosing keycap", +"TYPE_UNCATEGORIZED", "U+0031 U+20E3", "\x31\xE2\x83\xA3", "digit one + combining enclosing keycap", +"TYPE_UNCATEGORIZED", "U+0030 U+20E3", "\x30\xE2\x83\xA3", "digit zero + combining enclosing keycap", +"TYPE_UNCATEGORIZED", "U+0032 U+20E3", "\x32\xE2\x83\xA3", "digit two + combining enclosing keycap", +"TYPE_UNCATEGORIZED", "U+0033 U+20E3", "\x33\xE2\x83\xA3", "digit three + combining enclosing keycap", +"TYPE_UNCATEGORIZED", "U+0035 U+20E3", "\x35\xE2\x83\xA3", "digit five + combining enclosing keycap", +"TYPE_UNCATEGORIZED", "U+0034 U+20E3", "\x34\xE2\x83\xA3", "digit four + combining enclosing keycap", +"TYPE_UNCATEGORIZED", "U+0023 U+20E3", "\x23\xE2\x83\xA3", "number sign + combining enclosing keycap", +"TYPE_UNCATEGORIZED", "U+2122", "\xE2\x84\xA2", "trade mark sign", +"TYPE_UNCATEGORIZED", "U+2139", "\xE2\x84\xB9", "information source", +"TYPE_UNCATEGORIZED", "U+2194", "\xE2\x86\x94", "left right arrow", +"TYPE_UNCATEGORIZED", "U+2195", "\xE2\x86\x95", "up down arrow", +"TYPE_UNCATEGORIZED", "U+2196", "\xE2\x86\x96", "north west arrow", +"TYPE_UNCATEGORIZED", "U+2197", "\xE2\x86\x97", "north east arrow", +"TYPE_UNCATEGORIZED", "U+2198", "\xE2\x86\x98", "south east arrow", +"TYPE_UNCATEGORIZED", "U+2199", "\xE2\x86\x99", "south west arrow", +"TYPE_UNCATEGORIZED", "U+21A9", "\xE2\x86\xA9", "leftwards arrow with hook", +"TYPE_UNCATEGORIZED", "U+21AA", "\xE2\x86\xAA", "rightwards arrow with hook", +"TYPE_UNCATEGORIZED", "U+231A", "\xE2\x8C\x9A", "watch", +"TYPE_UNCATEGORIZED", "U+231B", "\xE2\x8C\x9B", "hourglass", +"TYPE_UNCATEGORIZED", "U+23E9", "\xE2\x8F\xA9", "black right-pointing double triangle", +"TYPE_UNCATEGORIZED", "U+23EA", "\xE2\x8F\xAA", "black left-pointing double triangle", +"TYPE_UNCATEGORIZED", "U+23EB", "\xE2\x8F\xAB", "black up-pointing double triangle", +"TYPE_UNCATEGORIZED", "U+23EC", "\xE2\x8F\xAC", "black down-pointing double triangle", +"TYPE_UNCATEGORIZED", "U+23F0", "\xE2\x8F\xB0", "alarm clock", +"TYPE_UNCATEGORIZED", "U+23F3", "\xE2\x8F\xB3", "hourglass with flowing sand", +"TYPE_UNCATEGORIZED", "U+25AA", "\xE2\x96\xAA", "black small square", +"TYPE_UNCATEGORIZED", "U+25AB", "\xE2\x96\xAB", "white small square", +"TYPE_UNCATEGORIZED", "U+25B6", "\xE2\x96\xB6", "black right-pointing triangle", +"TYPE_UNCATEGORIZED", "U+25C0", "\xE2\x97\x80", "black left-pointing triangle", +"TYPE_UNCATEGORIZED", "U+25FB", "\xE2\x97\xBB", "white medium square", +"TYPE_UNCATEGORIZED", "U+25FC", "\xE2\x97\xBC", "black medium square", +"TYPE_UNCATEGORIZED", "U+25FD", "\xE2\x97\xBD", "white medium small square", +"TYPE_UNCATEGORIZED", "U+25FE", "\xE2\x97\xBE", "black medium small square", +"TYPE_UNCATEGORIZED", "U+2600", "\xE2\x98\x80", "black sun with rays", +"TYPE_UNCATEGORIZED", "U+2601", "\xE2\x98\x81", "cloud", +"TYPE_UNCATEGORIZED", "U+260E", "\xE2\x98\x8E", "black telephone", +"TYPE_UNCATEGORIZED", "U+2611", "\xE2\x98\x91", "ballot box with check", +"TYPE_UNCATEGORIZED", "U+2614", "\xE2\x98\x94", "umbrella with rain drops", +"TYPE_UNCATEGORIZED", "U+2615", "\xE2\x98\x95", "hot beverage", +"TYPE_UNCATEGORIZED", "U+261D", "\xE2\x98\x9D", "white up pointing index", +"TYPE_UNCATEGORIZED", "U+263A", "\xE2\x98\xBA", "white smiling face", +"TYPE_UNCATEGORIZED", "U+2648", "\xE2\x99\x88", "aries", +"TYPE_UNCATEGORIZED", "U+2649", "\xE2\x99\x89", "taurus", +"TYPE_UNCATEGORIZED", "U+264A", "\xE2\x99\x8A", "gemini", +"TYPE_UNCATEGORIZED", "U+264B", "\xE2\x99\x8B", "cancer", +"TYPE_UNCATEGORIZED", "U+264C", "\xE2\x99\x8C", "leo", +"TYPE_UNCATEGORIZED", "U+264D", "\xE2\x99\x8D", "virgo", +"TYPE_UNCATEGORIZED", "U+264E", "\xE2\x99\x8E", "libra", +"TYPE_UNCATEGORIZED", "U+264F", "\xE2\x99\x8F", "scorpius", +"TYPE_UNCATEGORIZED", "U+2650", "\xE2\x99\x90", "sagittarius", +"TYPE_UNCATEGORIZED", "U+2651", "\xE2\x99\x91", "capricorn", +"TYPE_UNCATEGORIZED", "U+2652", "\xE2\x99\x92", "aquarius", +"TYPE_UNCATEGORIZED", "U+2653", "\xE2\x99\x93", "pisces", +"TYPE_UNCATEGORIZED", "U+2660", "\xE2\x99\xA0", "black spade suit", +"TYPE_UNCATEGORIZED", "U+2663", "\xE2\x99\xA3", "black club suit", +"TYPE_UNCATEGORIZED", "U+2665", "\xE2\x99\xA5", "black heart suit", +"TYPE_UNCATEGORIZED", "U+2666", "\xE2\x99\xA6", "black diamond suit", +"TYPE_UNCATEGORIZED", "U+2668", "\xE2\x99\xA8", "hot springs", +"TYPE_UNCATEGORIZED", "U+267B", "\xE2\x99\xBB", "black universal recycling symbol", +"TYPE_UNCATEGORIZED", "U+267F", "\xE2\x99\xBF", "wheelchair symbol", +"TYPE_UNCATEGORIZED", "U+2693", "\xE2\x9A\x93", "anchor", +"TYPE_UNCATEGORIZED", "U+26A0", "\xE2\x9A\xA0", "warning sign", +"TYPE_UNCATEGORIZED", "U+26A1", "\xE2\x9A\xA1", "high voltage sign", +"TYPE_UNCATEGORIZED", "U+26AA", "\xE2\x9A\xAA", "medium white circle", +"TYPE_UNCATEGORIZED", "U+26AB", "\xE2\x9A\xAB", "medium black circle", +"TYPE_UNCATEGORIZED", "U+26BD", "\xE2\x9A\xBD", "soccer ball", +"TYPE_UNCATEGORIZED", "U+26BE", "\xE2\x9A\xBE", "baseball", +"TYPE_UNCATEGORIZED", "U+26C4", "\xE2\x9B\x84", "snowman without snow", +"TYPE_UNCATEGORIZED", "U+26C5", "\xE2\x9B\x85", "sun behind cloud", +"TYPE_UNCATEGORIZED", "U+26CE", "\xE2\x9B\x8E", "ophiuchus", +"TYPE_UNCATEGORIZED", "U+26D4", "\xE2\x9B\x94", "no entry", +"TYPE_UNCATEGORIZED", "U+26EA", "\xE2\x9B\xAA", "church", +"TYPE_UNCATEGORIZED", "U+26F2", "\xE2\x9B\xB2", "fountain", +"TYPE_UNCATEGORIZED", "U+26F3", "\xE2\x9B\xB3", "flag in hole", +"TYPE_UNCATEGORIZED", "U+26F5", "\xE2\x9B\xB5", "sailboat", +"TYPE_UNCATEGORIZED", "U+26FA", "\xE2\x9B\xBA", "tent", +"TYPE_UNCATEGORIZED", "U+26FD", "\xE2\x9B\xBD", "fuel pump", +"TYPE_UNCATEGORIZED", "U+2934", "\xE2\xA4\xB4", "arrow pointing rightwards then curving upwards", +"TYPE_UNCATEGORIZED", "U+2935", "\xE2\xA4\xB5", "arrow pointing rightwards then curving downwards", +"TYPE_UNCATEGORIZED", "U+2B05", "\xE2\xAC\x85", "leftwards black arrow", +"TYPE_UNCATEGORIZED", "U+2B06", "\xE2\xAC\x86", "upwards black arrow", +"TYPE_UNCATEGORIZED", "U+2B07", "\xE2\xAC\x87", "downwards black arrow", +"TYPE_UNCATEGORIZED", "U+2B1B", "\xE2\xAC\x9B", "black large square", +"TYPE_UNCATEGORIZED", "U+2B1C", "\xE2\xAC\x9C", "white large square", +"TYPE_UNCATEGORIZED", "U+2B50", "\xE2\xAD\x90", "white medium star", +"TYPE_UNCATEGORIZED", "U+2B55", "\xE2\xAD\x95", "heavy large circle", +"TYPE_UNCATEGORIZED", "U+3030", "\xE3\x80\xB0", "wavy dash", +"TYPE_UNCATEGORIZED", "U+303D", "\xE3\x80\xBD", "part alternation mark", +"TYPE_UNCATEGORIZED", "U+3297", "\xE3\x8A\x97", "circled ideograph congratulation", +"TYPE_UNCATEGORIZED", "U+3299", "\xE3\x8A\x99", "circled ideograph secret", +"TYPE_UNCATEGORIZED", "U+1F004", "\xF0\x9F\x80\x84", "mahjong tile red dragon", +"TYPE_UNCATEGORIZED", "U+1F0CF", "\xF0\x9F\x83\x8F", "playing card black joker", +"TYPE_UNCATEGORIZED", "U+1F300", "\xF0\x9F\x8C\x80", "cyclone", +"TYPE_UNCATEGORIZED", "U+1F301", "\xF0\x9F\x8C\x81", "foggy", +"TYPE_UNCATEGORIZED", "U+1F302", "\xF0\x9F\x8C\x82", "closed umbrella", +"TYPE_UNCATEGORIZED", "U+1F303", "\xF0\x9F\x8C\x83", "night with stars", +"TYPE_UNCATEGORIZED", "U+1F304", "\xF0\x9F\x8C\x84", "sunrise over mountains", +"TYPE_UNCATEGORIZED", "U+1F305", "\xF0\x9F\x8C\x85", "sunrise", +"TYPE_UNCATEGORIZED", "U+1F306", "\xF0\x9F\x8C\x86", "cityscape at dusk", +"TYPE_UNCATEGORIZED", "U+1F307", "\xF0\x9F\x8C\x87", "sunset over buildings", +"TYPE_UNCATEGORIZED", "U+1F308", "\xF0\x9F\x8C\x88", "rainbow", +"TYPE_UNCATEGORIZED", "U+1F309", "\xF0\x9F\x8C\x89", "bridge at night", +"TYPE_UNCATEGORIZED", "U+1F30A", "\xF0\x9F\x8C\x8A", "water wave", +"TYPE_UNCATEGORIZED", "U+1F30B", "\xF0\x9F\x8C\x8B", "volcano", +"TYPE_UNCATEGORIZED", "U+1F30C", "\xF0\x9F\x8C\x8C", "milky way", +"TYPE_UNCATEGORIZED", "U+1F30F", "\xF0\x9F\x8C\x8F", "earth globe asia-australia", +"TYPE_UNCATEGORIZED", "U+1F311", "\xF0\x9F\x8C\x91", "new moon symbol", +"TYPE_UNCATEGORIZED", "U+1F313", "\xF0\x9F\x8C\x93", "first quarter moon symbol", +"TYPE_UNCATEGORIZED", "U+1F314", "\xF0\x9F\x8C\x94", "waxing gibbous moon symbol", +"TYPE_UNCATEGORIZED", "U+1F315", "\xF0\x9F\x8C\x95", "full moon symbol", +"TYPE_UNCATEGORIZED", "U+1F319", "\xF0\x9F\x8C\x99", "crescent moon", +"TYPE_UNCATEGORIZED", "U+1F31B", "\xF0\x9F\x8C\x9B", "first quarter moon with face", +"TYPE_UNCATEGORIZED", "U+1F31F", "\xF0\x9F\x8C\x9F", "glowing star", +"TYPE_UNCATEGORIZED", "U+1F320", "\xF0\x9F\x8C\xA0", "shooting star", +"TYPE_UNCATEGORIZED", "U+1F330", "\xF0\x9F\x8C\xB0", "chestnut", +"TYPE_UNCATEGORIZED", "U+1F331", "\xF0\x9F\x8C\xB1", "seedling", +"TYPE_UNCATEGORIZED", "U+1F334", "\xF0\x9F\x8C\xB4", "palm tree", +"TYPE_UNCATEGORIZED", "U+1F335", "\xF0\x9F\x8C\xB5", "cactus", +"TYPE_UNCATEGORIZED", "U+1F337", "\xF0\x9F\x8C\xB7", "tulip", +"TYPE_UNCATEGORIZED", "U+1F338", "\xF0\x9F\x8C\xB8", "cherry blossom", +"TYPE_UNCATEGORIZED", "U+1F339", "\xF0\x9F\x8C\xB9", "rose", +"TYPE_UNCATEGORIZED", "U+1F33A", "\xF0\x9F\x8C\xBA", "hibiscus", +"TYPE_UNCATEGORIZED", "U+1F33B", "\xF0\x9F\x8C\xBB", "sunflower", +"TYPE_UNCATEGORIZED", "U+1F33C", "\xF0\x9F\x8C\xBC", "blossom", +"TYPE_UNCATEGORIZED", "U+1F33D", "\xF0\x9F\x8C\xBD", "ear of maize", +"TYPE_UNCATEGORIZED", "U+1F33E", "\xF0\x9F\x8C\xBE", "ear of rice", +"TYPE_UNCATEGORIZED", "U+1F33F", "\xF0\x9F\x8C\xBF", "herb", +"TYPE_UNCATEGORIZED", "U+1F340", "\xF0\x9F\x8D\x80", "four leaf clover", +"TYPE_UNCATEGORIZED", "U+1F341", "\xF0\x9F\x8D\x81", "maple leaf", +"TYPE_UNCATEGORIZED", "U+1F342", "\xF0\x9F\x8D\x82", "fallen leaf", +"TYPE_UNCATEGORIZED", "U+1F343", "\xF0\x9F\x8D\x83", "leaf fluttering in wind", +"TYPE_UNCATEGORIZED", "U+1F344", "\xF0\x9F\x8D\x84", "mushroom", +"TYPE_UNCATEGORIZED", "U+1F345", "\xF0\x9F\x8D\x85", "tomato", +"TYPE_UNCATEGORIZED", "U+1F346", "\xF0\x9F\x8D\x86", "aubergine", +"TYPE_UNCATEGORIZED", "U+1F347", "\xF0\x9F\x8D\x87", "grapes", +"TYPE_UNCATEGORIZED", "U+1F348", "\xF0\x9F\x8D\x88", "melon", +"TYPE_UNCATEGORIZED", "U+1F349", "\xF0\x9F\x8D\x89", "watermelon", +"TYPE_UNCATEGORIZED", "U+1F34A", "\xF0\x9F\x8D\x8A", "tangerine", +"TYPE_UNCATEGORIZED", "U+1F34C", "\xF0\x9F\x8D\x8C", "banana", +"TYPE_UNCATEGORIZED", "U+1F34D", "\xF0\x9F\x8D\x8D", "pineapple", +"TYPE_UNCATEGORIZED", "U+1F34E", "\xF0\x9F\x8D\x8E", "red apple", +"TYPE_UNCATEGORIZED", "U+1F34F", "\xF0\x9F\x8D\x8F", "green apple", +"TYPE_UNCATEGORIZED", "U+1F351", "\xF0\x9F\x8D\x91", "peach", +"TYPE_UNCATEGORIZED", "U+1F352", "\xF0\x9F\x8D\x92", "cherries", +"TYPE_UNCATEGORIZED", "U+1F353", "\xF0\x9F\x8D\x93", "strawberry", +"TYPE_UNCATEGORIZED", "U+1F354", "\xF0\x9F\x8D\x94", "hamburger", +"TYPE_UNCATEGORIZED", "U+1F355", "\xF0\x9F\x8D\x95", "slice of pizza", +"TYPE_UNCATEGORIZED", "U+1F356", "\xF0\x9F\x8D\x96", "meat on bone", +"TYPE_UNCATEGORIZED", "U+1F357", "\xF0\x9F\x8D\x97", "poultry leg", +"TYPE_UNCATEGORIZED", "U+1F358", "\xF0\x9F\x8D\x98", "rice cracker", +"TYPE_UNCATEGORIZED", "U+1F359", "\xF0\x9F\x8D\x99", "rice ball", +"TYPE_UNCATEGORIZED", "U+1F35A", "\xF0\x9F\x8D\x9A", "cooked rice", +"TYPE_UNCATEGORIZED", "U+1F35B", "\xF0\x9F\x8D\x9B", "curry and rice", +"TYPE_UNCATEGORIZED", "U+1F35C", "\xF0\x9F\x8D\x9C", "steaming bowl", +"TYPE_UNCATEGORIZED", "U+1F35D", "\xF0\x9F\x8D\x9D", "spaghetti", +"TYPE_UNCATEGORIZED", "U+1F35E", "\xF0\x9F\x8D\x9E", "bread", +"TYPE_UNCATEGORIZED", "U+1F35F", "\xF0\x9F\x8D\x9F", "french fries", +"TYPE_UNCATEGORIZED", "U+1F360", "\xF0\x9F\x8D\xA0", "roasted sweet potato", +"TYPE_UNCATEGORIZED", "U+1F361", "\xF0\x9F\x8D\xA1", "dango", +"TYPE_UNCATEGORIZED", "U+1F362", "\xF0\x9F\x8D\xA2", "oden", +"TYPE_UNCATEGORIZED", "U+1F363", "\xF0\x9F\x8D\xA3", "sushi", +"TYPE_UNCATEGORIZED", "U+1F364", "\xF0\x9F\x8D\xA4", "fried shrimp", +"TYPE_UNCATEGORIZED", "U+1F365", "\xF0\x9F\x8D\xA5", "fish cake with swirl design", +"TYPE_UNCATEGORIZED", "U+1F366", "\xF0\x9F\x8D\xA6", "soft ice cream", +"TYPE_UNCATEGORIZED", "U+1F367", "\xF0\x9F\x8D\xA7", "shaved ice", +"TYPE_UNCATEGORIZED", "U+1F368", "\xF0\x9F\x8D\xA8", "ice cream", +"TYPE_UNCATEGORIZED", "U+1F369", "\xF0\x9F\x8D\xA9", "doughnut", +"TYPE_UNCATEGORIZED", "U+1F36A", "\xF0\x9F\x8D\xAA", "cookie", +"TYPE_UNCATEGORIZED", "U+1F36B", "\xF0\x9F\x8D\xAB", "chocolate bar", +"TYPE_UNCATEGORIZED", "U+1F36C", "\xF0\x9F\x8D\xAC", "candy", +"TYPE_UNCATEGORIZED", "U+1F36D", "\xF0\x9F\x8D\xAD", "lollipop", +"TYPE_UNCATEGORIZED", "U+1F36E", "\xF0\x9F\x8D\xAE", "custard", +"TYPE_UNCATEGORIZED", "U+1F36F", "\xF0\x9F\x8D\xAF", "honey pot", +"TYPE_UNCATEGORIZED", "U+1F370", "\xF0\x9F\x8D\xB0", "shortcake", +"TYPE_UNCATEGORIZED", "U+1F371", "\xF0\x9F\x8D\xB1", "bento box", +"TYPE_UNCATEGORIZED", "U+1F372", "\xF0\x9F\x8D\xB2", "pot of food", +"TYPE_UNCATEGORIZED", "U+1F373", "\xF0\x9F\x8D\xB3", "cooking", +"TYPE_UNCATEGORIZED", "U+1F374", "\xF0\x9F\x8D\xB4", "fork and knife", +"TYPE_UNCATEGORIZED", "U+1F375", "\xF0\x9F\x8D\xB5", "teacup without handle", +"TYPE_UNCATEGORIZED", "U+1F376", "\xF0\x9F\x8D\xB6", "sake bottle and cup", +"TYPE_UNCATEGORIZED", "U+1F377", "\xF0\x9F\x8D\xB7", "wine glass", +"TYPE_UNCATEGORIZED", "U+1F378", "\xF0\x9F\x8D\xB8", "cocktail glass", +"TYPE_UNCATEGORIZED", "U+1F379", "\xF0\x9F\x8D\xB9", "tropical drink", +"TYPE_UNCATEGORIZED", "U+1F37A", "\xF0\x9F\x8D\xBA", "beer mug", +"TYPE_UNCATEGORIZED", "U+1F37B", "\xF0\x9F\x8D\xBB", "clinking beer mugs", +"TYPE_UNCATEGORIZED", "U+1F380", "\xF0\x9F\x8E\x80", "ribbon", +"TYPE_UNCATEGORIZED", "U+1F381", "\xF0\x9F\x8E\x81", "wrapped present", +"TYPE_UNCATEGORIZED", "U+1F382", "\xF0\x9F\x8E\x82", "birthday cake", +"TYPE_UNCATEGORIZED", "U+1F383", "\xF0\x9F\x8E\x83", "jack-o-lantern", +"TYPE_UNCATEGORIZED", "U+1F384", "\xF0\x9F\x8E\x84", "christmas tree", +"TYPE_UNCATEGORIZED", "U+1F385", "\xF0\x9F\x8E\x85", "father christmas", +"TYPE_UNCATEGORIZED", "U+1F386", "\xF0\x9F\x8E\x86", "fireworks", +"TYPE_UNCATEGORIZED", "U+1F387", "\xF0\x9F\x8E\x87", "firework sparkler", +"TYPE_UNCATEGORIZED", "U+1F388", "\xF0\x9F\x8E\x88", "balloon", +"TYPE_UNCATEGORIZED", "U+1F389", "\xF0\x9F\x8E\x89", "party popper", +"TYPE_UNCATEGORIZED", "U+1F38A", "\xF0\x9F\x8E\x8A", "confetti ball", +"TYPE_UNCATEGORIZED", "U+1F38B", "\xF0\x9F\x8E\x8B", "tanabata tree", +"TYPE_UNCATEGORIZED", "U+1F38C", "\xF0\x9F\x8E\x8C", "crossed flags", +"TYPE_UNCATEGORIZED", "U+1F38D", "\xF0\x9F\x8E\x8D", "pine decoration", +"TYPE_UNCATEGORIZED", "U+1F38E", "\xF0\x9F\x8E\x8E", "japanese dolls", +"TYPE_UNCATEGORIZED", "U+1F38F", "\xF0\x9F\x8E\x8F", "carp streamer", +"TYPE_UNCATEGORIZED", "U+1F390", "\xF0\x9F\x8E\x90", "wind chime", +"TYPE_UNCATEGORIZED", "U+1F391", "\xF0\x9F\x8E\x91", "moon viewing ceremony", +"TYPE_UNCATEGORIZED", "U+1F392", "\xF0\x9F\x8E\x92", "school satchel", +"TYPE_UNCATEGORIZED", "U+1F393", "\xF0\x9F\x8E\x93", "graduation cap", +"TYPE_UNCATEGORIZED", "U+1F3A0", "\xF0\x9F\x8E\xA0", "carousel horse", +"TYPE_UNCATEGORIZED", "U+1F3A1", "\xF0\x9F\x8E\xA1", "ferris wheel", +"TYPE_UNCATEGORIZED", "U+1F3A2", "\xF0\x9F\x8E\xA2", "roller coaster", +"TYPE_UNCATEGORIZED", "U+1F3A3", "\xF0\x9F\x8E\xA3", "fishing pole and fish", +"TYPE_UNCATEGORIZED", "U+1F3A4", "\xF0\x9F\x8E\xA4", "microphone", +"TYPE_UNCATEGORIZED", "U+1F3A5", "\xF0\x9F\x8E\xA5", "movie camera", +"TYPE_UNCATEGORIZED", "U+1F3A6", "\xF0\x9F\x8E\xA6", "cinema", +"TYPE_UNCATEGORIZED", "U+1F3A7", "\xF0\x9F\x8E\xA7", "headphone", +"TYPE_UNCATEGORIZED", "U+1F3A8", "\xF0\x9F\x8E\xA8", "artist palette", +"TYPE_UNCATEGORIZED", "U+1F3A9", "\xF0\x9F\x8E\xA9", "top hat", +"TYPE_UNCATEGORIZED", "U+1F3AA", "\xF0\x9F\x8E\xAA", "circus tent", +"TYPE_UNCATEGORIZED", "U+1F3AB", "\xF0\x9F\x8E\xAB", "ticket", +"TYPE_UNCATEGORIZED", "U+1F3AC", "\xF0\x9F\x8E\xAC", "clapper board", +"TYPE_UNCATEGORIZED", "U+1F3AD", "\xF0\x9F\x8E\xAD", "performing arts", +"TYPE_UNCATEGORIZED", "U+1F3AE", "\xF0\x9F\x8E\xAE", "video game", +"TYPE_UNCATEGORIZED", "U+1F3AF", "\xF0\x9F\x8E\xAF", "direct hit", +"TYPE_UNCATEGORIZED", "U+1F3B0", "\xF0\x9F\x8E\xB0", "slot machine", +"TYPE_UNCATEGORIZED", "U+1F3B1", "\xF0\x9F\x8E\xB1", "billiards", +"TYPE_UNCATEGORIZED", "U+1F3B2", "\xF0\x9F\x8E\xB2", "game die", +"TYPE_UNCATEGORIZED", "U+1F3B3", "\xF0\x9F\x8E\xB3", "bowling", +"TYPE_UNCATEGORIZED", "U+1F3B4", "\xF0\x9F\x8E\xB4", "flower playing cards", +"TYPE_UNCATEGORIZED", "U+1F3B5", "\xF0\x9F\x8E\xB5", "musical note", +"TYPE_UNCATEGORIZED", "U+1F3B6", "\xF0\x9F\x8E\xB6", "multiple musical notes", +"TYPE_UNCATEGORIZED", "U+1F3B7", "\xF0\x9F\x8E\xB7", "saxophone", +"TYPE_UNCATEGORIZED", "U+1F3B8", "\xF0\x9F\x8E\xB8", "guitar", +"TYPE_UNCATEGORIZED", "U+1F3B9", "\xF0\x9F\x8E\xB9", "musical keyboard", +"TYPE_UNCATEGORIZED", "U+1F3BA", "\xF0\x9F\x8E\xBA", "trumpet", +"TYPE_UNCATEGORIZED", "U+1F3BB", "\xF0\x9F\x8E\xBB", "violin", +"TYPE_UNCATEGORIZED", "U+1F3BC", "\xF0\x9F\x8E\xBC", "musical score", +"TYPE_UNCATEGORIZED", "U+1F3BD", "\xF0\x9F\x8E\xBD", "running shirt with sash", +"TYPE_UNCATEGORIZED", "U+1F3BE", "\xF0\x9F\x8E\xBE", "tennis racquet and ball", +"TYPE_UNCATEGORIZED", "U+1F3BF", "\xF0\x9F\x8E\xBF", "ski and ski boot", +"TYPE_UNCATEGORIZED", "U+1F3C0", "\xF0\x9F\x8F\x80", "basketball and hoop", +"TYPE_UNCATEGORIZED", "U+1F3C1", "\xF0\x9F\x8F\x81", "chequered flag", +"TYPE_UNCATEGORIZED", "U+1F3C2", "\xF0\x9F\x8F\x82", "snowboarder", +"TYPE_UNCATEGORIZED", "U+1F3C3", "\xF0\x9F\x8F\x83", "runner", +"TYPE_UNCATEGORIZED", "U+1F3C4", "\xF0\x9F\x8F\x84", "surfer", +"TYPE_UNCATEGORIZED", "U+1F3C6", "\xF0\x9F\x8F\x86", "trophy", +"TYPE_UNCATEGORIZED", "U+1F3C8", "\xF0\x9F\x8F\x88", "american football", +"TYPE_UNCATEGORIZED", "U+1F3CA", "\xF0\x9F\x8F\x8A", "swimmer", +"TYPE_UNCATEGORIZED", "U+1F3E0", "\xF0\x9F\x8F\xA0", "house building", +"TYPE_UNCATEGORIZED", "U+1F3E1", "\xF0\x9F\x8F\xA1", "house with garden", +"TYPE_UNCATEGORIZED", "U+1F3E2", "\xF0\x9F\x8F\xA2", "office building", +"TYPE_UNCATEGORIZED", "U+1F3E3", "\xF0\x9F\x8F\xA3", "japanese post office", +"TYPE_UNCATEGORIZED", "U+1F3E5", "\xF0\x9F\x8F\xA5", "hospital", +"TYPE_UNCATEGORIZED", "U+1F3E6", "\xF0\x9F\x8F\xA6", "bank", +"TYPE_UNCATEGORIZED", "U+1F3E7", "\xF0\x9F\x8F\xA7", "automated teller machine", +"TYPE_UNCATEGORIZED", "U+1F3E8", "\xF0\x9F\x8F\xA8", "hotel", +"TYPE_UNCATEGORIZED", "U+1F3E9", "\xF0\x9F\x8F\xA9", "love hotel", +"TYPE_UNCATEGORIZED", "U+1F3EA", "\xF0\x9F\x8F\xAA", "convenience store", +"TYPE_UNCATEGORIZED", "U+1F3EB", "\xF0\x9F\x8F\xAB", "school", +"TYPE_UNCATEGORIZED", "U+1F3EC", "\xF0\x9F\x8F\xAC", "department store", +"TYPE_UNCATEGORIZED", "U+1F3ED", "\xF0\x9F\x8F\xAD", "factory", +"TYPE_UNCATEGORIZED", "U+1F3EE", "\xF0\x9F\x8F\xAE", "izakaya lantern", +"TYPE_UNCATEGORIZED", "U+1F3EF", "\xF0\x9F\x8F\xAF", "japanese castle", +"TYPE_UNCATEGORIZED", "U+1F3F0", "\xF0\x9F\x8F\xB0", "european castle", +"TYPE_UNCATEGORIZED", "U+1F40C", "\xF0\x9F\x90\x8C", "snail", +"TYPE_UNCATEGORIZED", "U+1F40D", "\xF0\x9F\x90\x8D", "snake", +"TYPE_UNCATEGORIZED", "U+1F40E", "\xF0\x9F\x90\x8E", "horse", +"TYPE_UNCATEGORIZED", "U+1F411", "\xF0\x9F\x90\x91", "sheep", +"TYPE_UNCATEGORIZED", "U+1F412", "\xF0\x9F\x90\x92", "monkey", +"TYPE_UNCATEGORIZED", "U+1F414", "\xF0\x9F\x90\x94", "chicken", +"TYPE_UNCATEGORIZED", "U+1F417", "\xF0\x9F\x90\x97", "boar", +"TYPE_UNCATEGORIZED", "U+1F418", "\xF0\x9F\x90\x98", "elephant", +"TYPE_UNCATEGORIZED", "U+1F419", "\xF0\x9F\x90\x99", "octopus", +"TYPE_UNCATEGORIZED", "U+1F41A", "\xF0\x9F\x90\x9A", "spiral shell", +"TYPE_UNCATEGORIZED", "U+1F41B", "\xF0\x9F\x90\x9B", "bug", +"TYPE_UNCATEGORIZED", "U+1F41C", "\xF0\x9F\x90\x9C", "ant", +"TYPE_UNCATEGORIZED", "U+1F41D", "\xF0\x9F\x90\x9D", "honeybee", +"TYPE_UNCATEGORIZED", "U+1F41E", "\xF0\x9F\x90\x9E", "lady beetle", +"TYPE_UNCATEGORIZED", "U+1F41F", "\xF0\x9F\x90\x9F", "fish", +"TYPE_UNCATEGORIZED", "U+1F420", "\xF0\x9F\x90\xA0", "tropical fish", +"TYPE_UNCATEGORIZED", "U+1F421", "\xF0\x9F\x90\xA1", "blowfish", +"TYPE_UNCATEGORIZED", "U+1F422", "\xF0\x9F\x90\xA2", "turtle", +"TYPE_UNCATEGORIZED", "U+1F423", "\xF0\x9F\x90\xA3", "hatching chick", +"TYPE_UNCATEGORIZED", "U+1F424", "\xF0\x9F\x90\xA4", "baby chick", +"TYPE_UNCATEGORIZED", "U+1F425", "\xF0\x9F\x90\xA5", "front-facing baby chick", +"TYPE_UNCATEGORIZED", "U+1F426", "\xF0\x9F\x90\xA6", "bird", +"TYPE_UNCATEGORIZED", "U+1F427", "\xF0\x9F\x90\xA7", "penguin", +"TYPE_UNCATEGORIZED", "U+1F428", "\xF0\x9F\x90\xA8", "koala", +"TYPE_UNCATEGORIZED", "U+1F429", "\xF0\x9F\x90\xA9", "poodle", +"TYPE_UNCATEGORIZED", "U+1F42B", "\xF0\x9F\x90\xAB", "bactrian camel", +"TYPE_UNCATEGORIZED", "U+1F42C", "\xF0\x9F\x90\xAC", "dolphin", +"TYPE_UNCATEGORIZED", "U+1F42D", "\xF0\x9F\x90\xAD", "mouse face", +"TYPE_UNCATEGORIZED", "U+1F42E", "\xF0\x9F\x90\xAE", "cow face", +"TYPE_UNCATEGORIZED", "U+1F42F", "\xF0\x9F\x90\xAF", "tiger face", +"TYPE_UNCATEGORIZED", "U+1F430", "\xF0\x9F\x90\xB0", "rabbit face", +"TYPE_UNCATEGORIZED", "U+1F431", "\xF0\x9F\x90\xB1", "cat face", +"TYPE_UNCATEGORIZED", "U+1F432", "\xF0\x9F\x90\xB2", "dragon face", +"TYPE_UNCATEGORIZED", "U+1F433", "\xF0\x9F\x90\xB3", "spouting whale", +"TYPE_UNCATEGORIZED", "U+1F434", "\xF0\x9F\x90\xB4", "horse face", +"TYPE_UNCATEGORIZED", "U+1F435", "\xF0\x9F\x90\xB5", "monkey face", +"TYPE_UNCATEGORIZED", "U+1F436", "\xF0\x9F\x90\xB6", "dog face", +"TYPE_UNCATEGORIZED", "U+1F437", "\xF0\x9F\x90\xB7", "pig face", +"TYPE_UNCATEGORIZED", "U+1F438", "\xF0\x9F\x90\xB8", "frog face", +"TYPE_UNCATEGORIZED", "U+1F439", "\xF0\x9F\x90\xB9", "hamster face", +"TYPE_UNCATEGORIZED", "U+1F43A", "\xF0\x9F\x90\xBA", "wolf face", +"TYPE_UNCATEGORIZED", "U+1F43B", "\xF0\x9F\x90\xBB", "bear face", +"TYPE_UNCATEGORIZED", "U+1F43C", "\xF0\x9F\x90\xBC", "panda face", +"TYPE_UNCATEGORIZED", "U+1F43D", "\xF0\x9F\x90\xBD", "pig nose", +"TYPE_UNCATEGORIZED", "U+1F43E", "\xF0\x9F\x90\xBE", "paw prints", +"TYPE_UNCATEGORIZED", "U+1F440", "\xF0\x9F\x91\x80", "eyes", +"TYPE_UNCATEGORIZED", "U+1F442", "\xF0\x9F\x91\x82", "ear", +"TYPE_UNCATEGORIZED", "U+1F443", "\xF0\x9F\x91\x83", "nose", +"TYPE_UNCATEGORIZED", "U+1F444", "\xF0\x9F\x91\x84", "mouth", +"TYPE_UNCATEGORIZED", "U+1F445", "\xF0\x9F\x91\x85", "tongue", +"TYPE_UNCATEGORIZED", "U+1F446", "\xF0\x9F\x91\x86", "white up pointing backhand index", +"TYPE_UNCATEGORIZED", "U+1F447", "\xF0\x9F\x91\x87", "white down pointing backhand index", +"TYPE_UNCATEGORIZED", "U+1F448", "\xF0\x9F\x91\x88", "white left pointing backhand index", +"TYPE_UNCATEGORIZED", "U+1F449", "\xF0\x9F\x91\x89", "white right pointing backhand index", +"TYPE_UNCATEGORIZED", "U+1F44A", "\xF0\x9F\x91\x8A", "fisted hand sign", +"TYPE_UNCATEGORIZED", "U+1F44B", "\xF0\x9F\x91\x8B", "waving hand sign", +"TYPE_UNCATEGORIZED", "U+1F44C", "\xF0\x9F\x91\x8C", "ok hand sign", +"TYPE_UNCATEGORIZED", "U+1F44D", "\xF0\x9F\x91\x8D", "thumbs up sign", +"TYPE_UNCATEGORIZED", "U+1F44E", "\xF0\x9F\x91\x8E", "thumbs down sign", +"TYPE_UNCATEGORIZED", "U+1F44F", "\xF0\x9F\x91\x8F", "clapping hands sign", +"TYPE_UNCATEGORIZED", "U+1F450", "\xF0\x9F\x91\x90", "open hands sign", +"TYPE_UNCATEGORIZED", "U+1F451", "\xF0\x9F\x91\x91", "crown", +"TYPE_UNCATEGORIZED", "U+1F452", "\xF0\x9F\x91\x92", "womans hat", +"TYPE_UNCATEGORIZED", "U+1F453", "\xF0\x9F\x91\x93", "eyeglasses", +"TYPE_UNCATEGORIZED", "U+1F454", "\xF0\x9F\x91\x94", "necktie", +"TYPE_UNCATEGORIZED", "U+1F455", "\xF0\x9F\x91\x95", "t-shirt", +"TYPE_UNCATEGORIZED", "U+1F456", "\xF0\x9F\x91\x96", "jeans", +"TYPE_UNCATEGORIZED", "U+1F457", "\xF0\x9F\x91\x97", "dress", +"TYPE_UNCATEGORIZED", "U+1F458", "\xF0\x9F\x91\x98", "kimono", +"TYPE_UNCATEGORIZED", "U+1F459", "\xF0\x9F\x91\x99", "bikini", +"TYPE_UNCATEGORIZED", "U+1F45A", "\xF0\x9F\x91\x9A", "womans clothes", +"TYPE_UNCATEGORIZED", "U+1F45B", "\xF0\x9F\x91\x9B", "purse", +"TYPE_UNCATEGORIZED", "U+1F45C", "\xF0\x9F\x91\x9C", "handbag", +"TYPE_UNCATEGORIZED", "U+1F45D", "\xF0\x9F\x91\x9D", "pouch", +"TYPE_UNCATEGORIZED", "U+1F45E", "\xF0\x9F\x91\x9E", "mans shoe", +"TYPE_UNCATEGORIZED", "U+1F45F", "\xF0\x9F\x91\x9F", "athletic shoe", +"TYPE_UNCATEGORIZED", "U+1F460", "\xF0\x9F\x91\xA0", "high-heeled shoe", +"TYPE_UNCATEGORIZED", "U+1F461", "\xF0\x9F\x91\xA1", "womans sandal", +"TYPE_UNCATEGORIZED", "U+1F462", "\xF0\x9F\x91\xA2", "womans boots", +"TYPE_UNCATEGORIZED", "U+1F463", "\xF0\x9F\x91\xA3", "footprints", +"TYPE_UNCATEGORIZED", "U+1F464", "\xF0\x9F\x91\xA4", "bust in silhouette", +"TYPE_UNCATEGORIZED", "U+1F466", "\xF0\x9F\x91\xA6", "boy", +"TYPE_UNCATEGORIZED", "U+1F467", "\xF0\x9F\x91\xA7", "girl", +"TYPE_UNCATEGORIZED", "U+1F468", "\xF0\x9F\x91\xA8", "man", +"TYPE_UNCATEGORIZED", "U+1F469", "\xF0\x9F\x91\xA9", "woman", +"TYPE_UNCATEGORIZED", "U+1F46A", "\xF0\x9F\x91\xAA", "family", +"TYPE_UNCATEGORIZED", "U+1F46B", "\xF0\x9F\x91\xAB", "man and woman holding hands", +"TYPE_UNCATEGORIZED", "U+1F46E", "\xF0\x9F\x91\xAE", "police officer", +"TYPE_UNCATEGORIZED", "U+1F46F", "\xF0\x9F\x91\xAF", "woman with bunny ears", +"TYPE_UNCATEGORIZED", "U+1F470", "\xF0\x9F\x91\xB0", "bride with veil", +"TYPE_UNCATEGORIZED", "U+1F471", "\xF0\x9F\x91\xB1", "person with blond hair", +"TYPE_UNCATEGORIZED", "U+1F472", "\xF0\x9F\x91\xB2", "man with gua pi mao", +"TYPE_UNCATEGORIZED", "U+1F473", "\xF0\x9F\x91\xB3", "man with turban", +"TYPE_UNCATEGORIZED", "U+1F474", "\xF0\x9F\x91\xB4", "older man", +"TYPE_UNCATEGORIZED", "U+1F475", "\xF0\x9F\x91\xB5", "older woman", +"TYPE_UNCATEGORIZED", "U+1F476", "\xF0\x9F\x91\xB6", "baby", +"TYPE_UNCATEGORIZED", "U+1F477", "\xF0\x9F\x91\xB7", "construction worker", +"TYPE_UNCATEGORIZED", "U+1F478", "\xF0\x9F\x91\xB8", "princess", +"TYPE_UNCATEGORIZED", "U+1F479", "\xF0\x9F\x91\xB9", "japanese ogre", +"TYPE_UNCATEGORIZED", "U+1F47A", "\xF0\x9F\x91\xBA", "japanese goblin", +"TYPE_UNCATEGORIZED", "U+1F47B", "\xF0\x9F\x91\xBB", "ghost", +"TYPE_UNCATEGORIZED", "U+1F47C", "\xF0\x9F\x91\xBC", "baby angel", +"TYPE_UNCATEGORIZED", "U+1F47D", "\xF0\x9F\x91\xBD", "extraterrestrial alien", +"TYPE_UNCATEGORIZED", "U+1F47E", "\xF0\x9F\x91\xBE", "alien monster", +"TYPE_UNCATEGORIZED", "U+1F47F", "\xF0\x9F\x91\xBF", "imp", +"TYPE_UNCATEGORIZED", "U+1F480", "\xF0\x9F\x92\x80", "skull", +"TYPE_UNCATEGORIZED", "U+1F481", "\xF0\x9F\x92\x81", "information desk person", +"TYPE_UNCATEGORIZED", "U+1F482", "\xF0\x9F\x92\x82", "guardsman", +"TYPE_UNCATEGORIZED", "U+1F483", "\xF0\x9F\x92\x83", "dancer", +"TYPE_UNCATEGORIZED", "U+1F484", "\xF0\x9F\x92\x84", "lipstick", +"TYPE_UNCATEGORIZED", "U+1F485", "\xF0\x9F\x92\x85", "nail polish", +"TYPE_UNCATEGORIZED", "U+1F486", "\xF0\x9F\x92\x86", "face massage", +"TYPE_UNCATEGORIZED", "U+1F487", "\xF0\x9F\x92\x87", "haircut", +"TYPE_UNCATEGORIZED", "U+1F488", "\xF0\x9F\x92\x88", "barber pole", +"TYPE_UNCATEGORIZED", "U+1F489", "\xF0\x9F\x92\x89", "syringe", +"TYPE_UNCATEGORIZED", "U+1F48A", "\xF0\x9F\x92\x8A", "pill", +"TYPE_UNCATEGORIZED", "U+1F48B", "\xF0\x9F\x92\x8B", "kiss mark", +"TYPE_UNCATEGORIZED", "U+1F48C", "\xF0\x9F\x92\x8C", "love letter", +"TYPE_UNCATEGORIZED", "U+1F48D", "\xF0\x9F\x92\x8D", "ring", +"TYPE_UNCATEGORIZED", "U+1F48E", "\xF0\x9F\x92\x8E", "gem stone", +"TYPE_UNCATEGORIZED", "U+1F48F", "\xF0\x9F\x92\x8F", "kiss", +"TYPE_UNCATEGORIZED", "U+1F490", "\xF0\x9F\x92\x90", "bouquet", +"TYPE_UNCATEGORIZED", "U+1F491", "\xF0\x9F\x92\x91", "couple with heart", +"TYPE_UNCATEGORIZED", "U+1F492", "\xF0\x9F\x92\x92", "wedding", +"TYPE_UNCATEGORIZED", "U+1F493", "\xF0\x9F\x92\x93", "beating heart", +"TYPE_UNCATEGORIZED", "U+1F494", "\xF0\x9F\x92\x94", "broken heart", +"TYPE_UNCATEGORIZED", "U+1F495", "\xF0\x9F\x92\x95", "two hearts", +"TYPE_UNCATEGORIZED", "U+1F496", "\xF0\x9F\x92\x96", "sparkling heart", +"TYPE_UNCATEGORIZED", "U+1F497", "\xF0\x9F\x92\x97", "growing heart", +"TYPE_UNCATEGORIZED", "U+1F498", "\xF0\x9F\x92\x98", "heart with arrow", +"TYPE_UNCATEGORIZED", "U+1F499", "\xF0\x9F\x92\x99", "blue heart", +"TYPE_UNCATEGORIZED", "U+1F49A", "\xF0\x9F\x92\x9A", "green heart", +"TYPE_UNCATEGORIZED", "U+1F49B", "\xF0\x9F\x92\x9B", "yellow heart", +"TYPE_UNCATEGORIZED", "U+1F49C", "\xF0\x9F\x92\x9C", "purple heart", +"TYPE_UNCATEGORIZED", "U+1F49D", "\xF0\x9F\x92\x9D", "heart with ribbon", +"TYPE_UNCATEGORIZED", "U+1F49E", "\xF0\x9F\x92\x9E", "revolving hearts", +"TYPE_UNCATEGORIZED", "U+1F49F", "\xF0\x9F\x92\x9F", "heart decoration", +"TYPE_UNCATEGORIZED", "U+1F4A0", "\xF0\x9F\x92\xA0", "diamond shape with a dot inside", +"TYPE_UNCATEGORIZED", "U+1F4A1", "\xF0\x9F\x92\xA1", "electric light bulb", +"TYPE_UNCATEGORIZED", "U+1F4A2", "\xF0\x9F\x92\xA2", "anger symbol", +"TYPE_UNCATEGORIZED", "U+1F4A3", "\xF0\x9F\x92\xA3", "bomb", +"TYPE_UNCATEGORIZED", "U+1F4A4", "\xF0\x9F\x92\xA4", "sleeping symbol", +"TYPE_UNCATEGORIZED", "U+1F4A5", "\xF0\x9F\x92\xA5", "collision symbol", +"TYPE_UNCATEGORIZED", "U+1F4A6", "\xF0\x9F\x92\xA6", "splashing sweat symbol", +"TYPE_UNCATEGORIZED", "U+1F4A7", "\xF0\x9F\x92\xA7", "droplet", +"TYPE_UNCATEGORIZED", "U+1F4A8", "\xF0\x9F\x92\xA8", "dash symbol", +"TYPE_UNCATEGORIZED", "U+1F4A9", "\xF0\x9F\x92\xA9", "pile of poo", +"TYPE_UNCATEGORIZED", "U+1F4AA", "\xF0\x9F\x92\xAA", "flexed biceps", +"TYPE_UNCATEGORIZED", "U+1F4AB", "\xF0\x9F\x92\xAB", "dizzy symbol", +"TYPE_UNCATEGORIZED", "U+1F4AC", "\xF0\x9F\x92\xAC", "speech balloon", +"TYPE_UNCATEGORIZED", "U+1F4AE", "\xF0\x9F\x92\xAE", "white flower", +"TYPE_UNCATEGORIZED", "U+1F4AF", "\xF0\x9F\x92\xAF", "hundred points symbol", +"TYPE_UNCATEGORIZED", "U+1F4B0", "\xF0\x9F\x92\xB0", "money bag", +"TYPE_UNCATEGORIZED", "U+1F4B1", "\xF0\x9F\x92\xB1", "currency exchange", +"TYPE_UNCATEGORIZED", "U+1F4B2", "\xF0\x9F\x92\xB2", "heavy dollar sign", +"TYPE_UNCATEGORIZED", "U+1F4B3", "\xF0\x9F\x92\xB3", "credit card", +"TYPE_UNCATEGORIZED", "U+1F4B4", "\xF0\x9F\x92\xB4", "banknote with yen sign", +"TYPE_UNCATEGORIZED", "U+1F4B5", "\xF0\x9F\x92\xB5", "banknote with dollar sign", +"TYPE_UNCATEGORIZED", "U+1F4B8", "\xF0\x9F\x92\xB8", "money with wings", +"TYPE_UNCATEGORIZED", "U+1F4B9", "\xF0\x9F\x92\xB9", "chart with upwards trend and yen sign", +"TYPE_UNCATEGORIZED", "U+1F4BA", "\xF0\x9F\x92\xBA", "seat", +"TYPE_UNCATEGORIZED", "U+1F4BB", "\xF0\x9F\x92\xBB", "personal computer", +"TYPE_UNCATEGORIZED", "U+1F4BC", "\xF0\x9F\x92\xBC", "briefcase", +"TYPE_UNCATEGORIZED", "U+1F4BD", "\xF0\x9F\x92\xBD", "minidisc", +"TYPE_UNCATEGORIZED", "U+1F4BE", "\xF0\x9F\x92\xBE", "floppy disk", +"TYPE_UNCATEGORIZED", "U+1F4BF", "\xF0\x9F\x92\xBF", "optical disc", +"TYPE_UNCATEGORIZED", "U+1F4C0", "\xF0\x9F\x93\x80", "dvd", +"TYPE_UNCATEGORIZED", "U+1F4C1", "\xF0\x9F\x93\x81", "file folder", +"TYPE_UNCATEGORIZED", "U+1F4C2", "\xF0\x9F\x93\x82", "open file folder", +"TYPE_UNCATEGORIZED", "U+1F4C3", "\xF0\x9F\x93\x83", "page with curl", +"TYPE_UNCATEGORIZED", "U+1F4C4", "\xF0\x9F\x93\x84", "page facing up", +"TYPE_UNCATEGORIZED", "U+1F4C5", "\xF0\x9F\x93\x85", "calendar", +"TYPE_UNCATEGORIZED", "U+1F4C6", "\xF0\x9F\x93\x86", "tear-off calendar", +"TYPE_UNCATEGORIZED", "U+1F4C7", "\xF0\x9F\x93\x87", "card index", +"TYPE_UNCATEGORIZED", "U+1F4C8", "\xF0\x9F\x93\x88", "chart with upwards trend", +"TYPE_UNCATEGORIZED", "U+1F4C9", "\xF0\x9F\x93\x89", "chart with downwards trend", +"TYPE_UNCATEGORIZED", "U+1F4CA", "\xF0\x9F\x93\x8A", "bar chart", +"TYPE_UNCATEGORIZED", "U+1F4CB", "\xF0\x9F\x93\x8B", "clipboard", +"TYPE_UNCATEGORIZED", "U+1F4CC", "\xF0\x9F\x93\x8C", "pushpin", +"TYPE_UNCATEGORIZED", "U+1F4CD", "\xF0\x9F\x93\x8D", "round pushpin", +"TYPE_UNCATEGORIZED", "U+1F4CE", "\xF0\x9F\x93\x8E", "paperclip", +"TYPE_UNCATEGORIZED", "U+1F4CF", "\xF0\x9F\x93\x8F", "straight ruler", +"TYPE_UNCATEGORIZED", "U+1F4D0", "\xF0\x9F\x93\x90", "triangular ruler", +"TYPE_UNCATEGORIZED", "U+1F4D1", "\xF0\x9F\x93\x91", "bookmark tabs", +"TYPE_UNCATEGORIZED", "U+1F4D2", "\xF0\x9F\x93\x92", "ledger", +"TYPE_UNCATEGORIZED", "U+1F4D3", "\xF0\x9F\x93\x93", "notebook", +"TYPE_UNCATEGORIZED", "U+1F4D4", "\xF0\x9F\x93\x94", "notebook with decorative cover", +"TYPE_UNCATEGORIZED", "U+1F4D5", "\xF0\x9F\x93\x95", "closed book", +"TYPE_UNCATEGORIZED", "U+1F4D6", "\xF0\x9F\x93\x96", "open book", +"TYPE_UNCATEGORIZED", "U+1F4D7", "\xF0\x9F\x93\x97", "green book", +"TYPE_UNCATEGORIZED", "U+1F4D8", "\xF0\x9F\x93\x98", "blue book", +"TYPE_UNCATEGORIZED", "U+1F4D9", "\xF0\x9F\x93\x99", "orange book", +"TYPE_UNCATEGORIZED", "U+1F4DA", "\xF0\x9F\x93\x9A", "books", +"TYPE_UNCATEGORIZED", "U+1F4DB", "\xF0\x9F\x93\x9B", "name badge", +"TYPE_UNCATEGORIZED", "U+1F4DC", "\xF0\x9F\x93\x9C", "scroll", +"TYPE_UNCATEGORIZED", "U+1F4DD", "\xF0\x9F\x93\x9D", "memo", +"TYPE_UNCATEGORIZED", "U+1F4DE", "\xF0\x9F\x93\x9E", "telephone receiver", +"TYPE_UNCATEGORIZED", "U+1F4DF", "\xF0\x9F\x93\x9F", "pager", +"TYPE_UNCATEGORIZED", "U+1F4E0", "\xF0\x9F\x93\xA0", "fax machine", +"TYPE_UNCATEGORIZED", "U+1F4E1", "\xF0\x9F\x93\xA1", "satellite antenna", +"TYPE_UNCATEGORIZED", "U+1F4E2", "\xF0\x9F\x93\xA2", "public address loudspeaker", +"TYPE_UNCATEGORIZED", "U+1F4E3", "\xF0\x9F\x93\xA3", "cheering megaphone", +"TYPE_UNCATEGORIZED", "U+1F4E4", "\xF0\x9F\x93\xA4", "outbox tray", +"TYPE_UNCATEGORIZED", "U+1F4E5", "\xF0\x9F\x93\xA5", "inbox tray", +"TYPE_UNCATEGORIZED", "U+1F4E6", "\xF0\x9F\x93\xA6", "package", +"TYPE_UNCATEGORIZED", "U+1F4E7", "\xF0\x9F\x93\xA7", "e-mail symbol", +"TYPE_UNCATEGORIZED", "U+1F4E8", "\xF0\x9F\x93\xA8", "incoming envelope", +"TYPE_UNCATEGORIZED", "U+1F4E9", "\xF0\x9F\x93\xA9", "envelope with downwards arrow above", +"TYPE_UNCATEGORIZED", "U+1F4EA", "\xF0\x9F\x93\xAA", "closed mailbox with lowered flag", +"TYPE_UNCATEGORIZED", "U+1F4EB", "\xF0\x9F\x93\xAB", "closed mailbox with raised flag", +"TYPE_UNCATEGORIZED", "U+1F4EE", "\xF0\x9F\x93\xAE", "postbox", +"TYPE_UNCATEGORIZED", "U+1F4F0", "\xF0\x9F\x93\xB0", "newspaper", +"TYPE_UNCATEGORIZED", "U+1F4F1", "\xF0\x9F\x93\xB1", "mobile phone", +"TYPE_UNCATEGORIZED", "U+1F4F2", "\xF0\x9F\x93\xB2", "mobile phone with rightwards arrow at left", +"TYPE_UNCATEGORIZED", "U+1F4F3", "\xF0\x9F\x93\xB3", "vibration mode", +"TYPE_UNCATEGORIZED", "U+1F4F4", "\xF0\x9F\x93\xB4", "mobile phone off", +"TYPE_UNCATEGORIZED", "U+1F4F6", "\xF0\x9F\x93\xB6", "antenna with bars", +"TYPE_UNCATEGORIZED", "U+1F4F7", "\xF0\x9F\x93\xB7", "camera", +"TYPE_UNCATEGORIZED", "U+1F4F9", "\xF0\x9F\x93\xB9", "video camera", +"TYPE_UNCATEGORIZED", "U+1F4FA", "\xF0\x9F\x93\xBA", "television", +"TYPE_UNCATEGORIZED", "U+1F4FB", "\xF0\x9F\x93\xBB", "radio", +"TYPE_UNCATEGORIZED", "U+1F4FC", "\xF0\x9F\x93\xBC", "videocassette", +"TYPE_UNCATEGORIZED", "U+1F503", "\xF0\x9F\x94\x83", "clockwise downwards and upwards open circle arrows", +"TYPE_UNCATEGORIZED", "U+1F50A", "\xF0\x9F\x94\x8A", "speaker with three sound waves", +"TYPE_UNCATEGORIZED", "U+1F50B", "\xF0\x9F\x94\x8B", "battery", +"TYPE_UNCATEGORIZED", "U+1F50C", "\xF0\x9F\x94\x8C", "electric plug", +"TYPE_UNCATEGORIZED", "U+1F50D", "\xF0\x9F\x94\x8D", "left-pointing magnifying glass", +"TYPE_UNCATEGORIZED", "U+1F50E", "\xF0\x9F\x94\x8E", "right-pointing magnifying glass", +"TYPE_UNCATEGORIZED", "U+1F50F", "\xF0\x9F\x94\x8F", "lock with ink pen", +"TYPE_UNCATEGORIZED", "U+1F510", "\xF0\x9F\x94\x90", "closed lock with key", +"TYPE_UNCATEGORIZED", "U+1F511", "\xF0\x9F\x94\x91", "key", +"TYPE_UNCATEGORIZED", "U+1F512", "\xF0\x9F\x94\x92", "lock", +"TYPE_UNCATEGORIZED", "U+1F513", "\xF0\x9F\x94\x93", "open lock", +"TYPE_UNCATEGORIZED", "U+1F514", "\xF0\x9F\x94\x94", "bell", +"TYPE_UNCATEGORIZED", "U+1F516", "\xF0\x9F\x94\x96", "bookmark", +"TYPE_UNCATEGORIZED", "U+1F517", "\xF0\x9F\x94\x97", "link symbol", +"TYPE_UNCATEGORIZED", "U+1F518", "\xF0\x9F\x94\x98", "radio button", +"TYPE_UNCATEGORIZED", "U+1F519", "\xF0\x9F\x94\x99", "back with leftwards arrow above", +"TYPE_UNCATEGORIZED", "U+1F51A", "\xF0\x9F\x94\x9A", "end with leftwards arrow above", +"TYPE_UNCATEGORIZED", "U+1F51B", "\xF0\x9F\x94\x9B", "on with exclamation mark with left right arrow above", +"TYPE_UNCATEGORIZED", "U+1F51C", "\xF0\x9F\x94\x9C", "soon with rightwards arrow above", +"TYPE_UNCATEGORIZED", "U+1F51D", "\xF0\x9F\x94\x9D", "top with upwards arrow above", +"TYPE_UNCATEGORIZED", "U+1F51E", "\xF0\x9F\x94\x9E", "no one under eighteen symbol", +"TYPE_UNCATEGORIZED", "U+1F51F", "\xF0\x9F\x94\x9F", "keycap ten", +"TYPE_UNCATEGORIZED", "U+1F520", "\xF0\x9F\x94\xA0", "input symbol for latin capital letters", +"TYPE_UNCATEGORIZED", "U+1F521", "\xF0\x9F\x94\xA1", "input symbol for latin small letters", +"TYPE_UNCATEGORIZED", "U+1F522", "\xF0\x9F\x94\xA2", "input symbol for numbers", +"TYPE_UNCATEGORIZED", "U+1F523", "\xF0\x9F\x94\xA3", "input symbol for symbols", +"TYPE_UNCATEGORIZED", "U+1F524", "\xF0\x9F\x94\xA4", "input symbol for latin letters", +"TYPE_UNCATEGORIZED", "U+1F525", "\xF0\x9F\x94\xA5", "fire", +"TYPE_UNCATEGORIZED", "U+1F526", "\xF0\x9F\x94\xA6", "electric torch", +"TYPE_UNCATEGORIZED", "U+1F527", "\xF0\x9F\x94\xA7", "wrench", +"TYPE_UNCATEGORIZED", "U+1F528", "\xF0\x9F\x94\xA8", "hammer", +"TYPE_UNCATEGORIZED", "U+1F529", "\xF0\x9F\x94\xA9", "nut and bolt", +"TYPE_UNCATEGORIZED", "U+1F52A", "\xF0\x9F\x94\xAA", "hocho", +"TYPE_UNCATEGORIZED", "U+1F52B", "\xF0\x9F\x94\xAB", "pistol", +"TYPE_UNCATEGORIZED", "U+1F52E", "\xF0\x9F\x94\xAE", "crystal ball", +"TYPE_UNCATEGORIZED", "U+1F52F", "\xF0\x9F\x94\xAF", "six pointed star with middle dot", +"TYPE_UNCATEGORIZED", "U+1F530", "\xF0\x9F\x94\xB0", "japanese symbol for beginner", +"TYPE_UNCATEGORIZED", "U+1F531", "\xF0\x9F\x94\xB1", "trident emblem", +"TYPE_UNCATEGORIZED", "U+1F532", "\xF0\x9F\x94\xB2", "black square button", +"TYPE_UNCATEGORIZED", "U+1F533", "\xF0\x9F\x94\xB3", "white square button", +"TYPE_UNCATEGORIZED", "U+1F534", "\xF0\x9F\x94\xB4", "large red circle", +"TYPE_UNCATEGORIZED", "U+1F535", "\xF0\x9F\x94\xB5", "large blue circle", +"TYPE_UNCATEGORIZED", "U+1F536", "\xF0\x9F\x94\xB6", "large orange diamond", +"TYPE_UNCATEGORIZED", "U+1F537", "\xF0\x9F\x94\xB7", "large blue diamond", +"TYPE_UNCATEGORIZED", "U+1F538", "\xF0\x9F\x94\xB8", "small orange diamond", +"TYPE_UNCATEGORIZED", "U+1F539", "\xF0\x9F\x94\xB9", "small blue diamond", +"TYPE_UNCATEGORIZED", "U+1F53A", "\xF0\x9F\x94\xBA", "up-pointing red triangle", +"TYPE_UNCATEGORIZED", "U+1F53B", "\xF0\x9F\x94\xBB", "down-pointing red triangle", +"TYPE_UNCATEGORIZED", "U+1F53C", "\xF0\x9F\x94\xBC", "up-pointing small red triangle", +"TYPE_UNCATEGORIZED", "U+1F53D", "\xF0\x9F\x94\xBD", "down-pointing small red triangle", +"TYPE_UNCATEGORIZED", "U+1F550", "\xF0\x9F\x95\x90", "clock face one oclock", +"TYPE_UNCATEGORIZED", "U+1F551", "\xF0\x9F\x95\x91", "clock face two oclock", +"TYPE_UNCATEGORIZED", "U+1F552", "\xF0\x9F\x95\x92", "clock face three oclock", +"TYPE_UNCATEGORIZED", "U+1F553", "\xF0\x9F\x95\x93", "clock face four oclock", +"TYPE_UNCATEGORIZED", "U+1F554", "\xF0\x9F\x95\x94", "clock face five oclock", +"TYPE_UNCATEGORIZED", "U+1F555", "\xF0\x9F\x95\x95", "clock face six oclock", +"TYPE_UNCATEGORIZED", "U+1F556", "\xF0\x9F\x95\x96", "clock face seven oclock", +"TYPE_UNCATEGORIZED", "U+1F557", "\xF0\x9F\x95\x97", "clock face eight oclock", +"TYPE_UNCATEGORIZED", "U+1F558", "\xF0\x9F\x95\x98", "clock face nine oclock", +"TYPE_UNCATEGORIZED", "U+1F559", "\xF0\x9F\x95\x99", "clock face ten oclock", +"TYPE_UNCATEGORIZED", "U+1F55A", "\xF0\x9F\x95\x9A", "clock face eleven oclock", +"TYPE_UNCATEGORIZED", "U+1F55B", "\xF0\x9F\x95\x9B", "clock face twelve oclock", +"TYPE_UNCATEGORIZED", "U+1F5FB", "\xF0\x9F\x97\xBB", "mount fuji", +"TYPE_UNCATEGORIZED", "U+1F5FC", "\xF0\x9F\x97\xBC", "tokyo tower", +"TYPE_UNCATEGORIZED", "U+1F5FD", "\xF0\x9F\x97\xBD", "statue of liberty", +"TYPE_UNCATEGORIZED", "U+1F5FE", "\xF0\x9F\x97\xBE", "silhouette of japan", +"TYPE_UNCATEGORIZED", "U+1F5FF", "\xF0\x9F\x97\xBF", "moyai", + +"TYPE_UNCATEGORIZED", "U+1F30D", "\xF0\x9F\x8C\x8D", "earth globe europe-africa", +"TYPE_UNCATEGORIZED", "U+1F30E", "\xF0\x9F\x8C\x8E", "earth globe americas", +"TYPE_UNCATEGORIZED", "U+1F310", "\xF0\x9F\x8C\x90", "globe with meridians", +"TYPE_UNCATEGORIZED", "U+1F312", "\xF0\x9F\x8C\x92", "waxing crescent moon symbol", +"TYPE_UNCATEGORIZED", "U+1F316", "\xF0\x9F\x8C\x96", "waning gibbous moon symbol", +"TYPE_UNCATEGORIZED", "U+1F317", "\xF0\x9F\x8C\x97", "last quarter moon symbol", +"TYPE_UNCATEGORIZED", "U+1F318", "\xF0\x9F\x8C\x98", "waning crescent moon symbol", +"TYPE_UNCATEGORIZED", "U+1F31A", "\xF0\x9F\x8C\x9A", "new moon with face", +"TYPE_UNCATEGORIZED", "U+1F31C", "\xF0\x9F\x8C\x9C", "last quarter moon with face", +"TYPE_UNCATEGORIZED", "U+1F31D", "\xF0\x9F\x8C\x9D", "full moon with face", +"TYPE_UNCATEGORIZED", "U+1F31E", "\xF0\x9F\x8C\x9E", "sun with face", +"TYPE_UNCATEGORIZED", "U+1F332", "\xF0\x9F\x8C\xB2", "evergreen tree", +"TYPE_UNCATEGORIZED", "U+1F333", "\xF0\x9F\x8C\xB3", "deciduous tree", +"TYPE_UNCATEGORIZED", "U+1F34B", "\xF0\x9F\x8D\x8B", "lemon", +"TYPE_UNCATEGORIZED", "U+1F350", "\xF0\x9F\x8D\x90", "pear", +"TYPE_UNCATEGORIZED", "U+1F37C", "\xF0\x9F\x8D\xBC", "baby bottle", +"TYPE_UNCATEGORIZED", "U+1F3C7", "\xF0\x9F\x8F\x87", "horse racing", +"TYPE_UNCATEGORIZED", "U+1F3C9", "\xF0\x9F\x8F\x89", "rugby football", +"TYPE_UNCATEGORIZED", "U+1F3E4", "\xF0\x9F\x8F\xA4", "european post office", +"TYPE_UNCATEGORIZED", "U+1F400", "\xF0\x9F\x90\x80", "rat", +"TYPE_UNCATEGORIZED", "U+1F401", "\xF0\x9F\x90\x81", "mouse", +"TYPE_UNCATEGORIZED", "U+1F402", "\xF0\x9F\x90\x82", "ox", +"TYPE_UNCATEGORIZED", "U+1F403", "\xF0\x9F\x90\x83", "water buffalo", +"TYPE_UNCATEGORIZED", "U+1F404", "\xF0\x9F\x90\x84", "cow", +"TYPE_UNCATEGORIZED", "U+1F405", "\xF0\x9F\x90\x85", "tiger", +"TYPE_UNCATEGORIZED", "U+1F406", "\xF0\x9F\x90\x86", "leopard", +"TYPE_UNCATEGORIZED", "U+1F407", "\xF0\x9F\x90\x87", "rabbit", +"TYPE_UNCATEGORIZED", "U+1F408", "\xF0\x9F\x90\x88", "cat", +"TYPE_UNCATEGORIZED", "U+1F409", "\xF0\x9F\x90\x89", "dragon", +"TYPE_UNCATEGORIZED", "U+1F40A", "\xF0\x9F\x90\x8A", "crocodile", +"TYPE_UNCATEGORIZED", "U+1F40B", "\xF0\x9F\x90\x8B", "whale", +"TYPE_UNCATEGORIZED", "U+1F40F", "\xF0\x9F\x90\x8F", "ram", +"TYPE_UNCATEGORIZED", "U+1F410", "\xF0\x9F\x90\x90", "goat", +"TYPE_UNCATEGORIZED", "U+1F413", "\xF0\x9F\x90\x93", "rooster", +"TYPE_UNCATEGORIZED", "U+1F415", "\xF0\x9F\x90\x95", "dog", +"TYPE_UNCATEGORIZED", "U+1F416", "\xF0\x9F\x90\x96", "pig", +"TYPE_UNCATEGORIZED", "U+1F42A", "\xF0\x9F\x90\xAA", "dromedary camel", +"TYPE_UNCATEGORIZED", "U+1F465", "\xF0\x9F\x91\xA5", "busts in silhouette", +"TYPE_UNCATEGORIZED", "U+1F46C", "\xF0\x9F\x91\xAC", "two men holding hands", +"TYPE_UNCATEGORIZED", "U+1F46D", "\xF0\x9F\x91\xAD", "two women holding hands", +"TYPE_UNCATEGORIZED", "U+1F4AD", "\xF0\x9F\x92\xAD", "thought balloon", +"TYPE_UNCATEGORIZED", "U+1F4B6", "\xF0\x9F\x92\xB6", "banknote with euro sign", +"TYPE_UNCATEGORIZED", "U+1F4B7", "\xF0\x9F\x92\xB7", "banknote with pound sign", +"TYPE_UNCATEGORIZED", "U+1F4EC", "\xF0\x9F\x93\xAC", "open mailbox with raised flag", +"TYPE_UNCATEGORIZED", "U+1F4ED", "\xF0\x9F\x93\xAD", "open mailbox with lowered flag", +"TYPE_UNCATEGORIZED", "U+1F4EF", "\xF0\x9F\x93\xAF", "postal horn", +"TYPE_UNCATEGORIZED", "U+1F4F5", "\xF0\x9F\x93\xB5", "no mobile phones", +"TYPE_UNCATEGORIZED", "U+1F500", "\xF0\x9F\x94\x80", "twisted rightwards arrows", +"TYPE_UNCATEGORIZED", "U+1F501", "\xF0\x9F\x94\x81", "clockwise rightwards and leftwards open circle arrows", +"TYPE_UNCATEGORIZED", "U+1F502", "\xF0\x9F\x94\x82", "clockwise rightwards and leftwards open circle arrows with circled one overlay", +"TYPE_UNCATEGORIZED", "U+1F504", "\xF0\x9F\x94\x84", "anticlockwise downwards and upwards open circle arrows", +"TYPE_UNCATEGORIZED", "U+1F505", "\xF0\x9F\x94\x85", "low brightness symbol", +"TYPE_UNCATEGORIZED", "U+1F506", "\xF0\x9F\x94\x86", "high brightness symbol", +"TYPE_UNCATEGORIZED", "U+1F507", "\xF0\x9F\x94\x87", "speaker with cancellation stroke", +"TYPE_UNCATEGORIZED", "U+1F509", "\xF0\x9F\x94\x89", "speaker with one sound wave", +"TYPE_UNCATEGORIZED", "U+1F515", "\xF0\x9F\x94\x95", "bell with cancellation stroke", +"TYPE_UNCATEGORIZED", "U+1F52C", "\xF0\x9F\x94\xAC", "microscope", +"TYPE_UNCATEGORIZED", "U+1F52D", "\xF0\x9F\x94\xAD", "telescope", +"TYPE_UNCATEGORIZED", "U+1F55C", "\xF0\x9F\x95\x9C", "clock face one-thirty", +"TYPE_UNCATEGORIZED", "U+1F55D", "\xF0\x9F\x95\x9D", "clock face two-thirty", +"TYPE_UNCATEGORIZED", "U+1F55E", "\xF0\x9F\x95\x9E", "clock face three-thirty", +"TYPE_UNCATEGORIZED", "U+1F55F", "\xF0\x9F\x95\x9F", "clock face four-thirty", +"TYPE_UNCATEGORIZED", "U+1F560", "\xF0\x9F\x95\xA0", "clock face five-thirty", +"TYPE_UNCATEGORIZED", "U+1F561", "\xF0\x9F\x95\xA1", "clock face six-thirty", +"TYPE_UNCATEGORIZED", "U+1F562", "\xF0\x9F\x95\xA2", "clock face seven-thirty", +"TYPE_UNCATEGORIZED", "U+1F563", "\xF0\x9F\x95\xA3", "clock face eight-thirty", +"TYPE_UNCATEGORIZED", "U+1F564", "\xF0\x9F\x95\xA4", "clock face nine-thirty", +"TYPE_UNCATEGORIZED", "U+1F565", "\xF0\x9F\x95\xA5", "clock face ten-thirty", +"TYPE_UNCATEGORIZED", "U+1F566", "\xF0\x9F\x95\xA6", "clock face eleven-thirty", +"TYPE_UNCATEGORIZED", "U+1F567", "\xF0\x9F\x95\xA7", "clock face twelve-thirty", +] + +name_map = { +"U+1F44D": ":+1:", +"U+1F44E": ":-1:", +"U+1F4AF": ":100:", +"U+1F522": ":1234:", +"U+1F3B1": ":8ball:", +"U+1F170": ":a:", +"U+1F18E": ":ab:", +"U+1F524": ":abc:", +"U+1F521": ":abcd:", +"U+1F251": ":accept:", +"U+1F6A1": ":aerial_tramway:", +"U+02708": ":airplane:", +"U+023F0": ":alarm_clock:", +"U+1F47D": ":alien:", +"U+1F691": ":ambulance:", +"U+02693": ":anchor:", +"U+1F47C": ":angel:", +"U+1F4A2": ":anger:", +"U+1F620": ":angry:", +"U+1F627": ":anguished:", +"U+1F41C": ":ant:", +"U+1F34E": ":apple:", +"U+02652": ":aquarius:", +"U+02648": ":aries:", +"U+025C0": ":arrow_backward:", +"U+023EC": ":arrow_double_down:", +"U+023EB": ":arrow_double_up:", +"U+02B07": ":arrow_down:", +"U+1F53D": ":arrow_down_small:", +"U+025B6": ":arrow_forward:", +"U+02935": ":arrow_heading_down:", +"U+02934": ":arrow_heading_up:", +"U+02B05": ":arrow_left:", +"U+02199": ":arrow_lower_left:", +"U+02198": ":arrow_lower_right:", +"U+027A1": ":arrow_right:", +"U+021AA": ":arrow_right_hook:", +"U+02B06": ":arrow_up:", +"U+02195": ":arrow_up_down:", +"U+1F53C": ":arrow_up_small:", +"U+02196": ":arrow_upper_left:", +"U+02197": ":arrow_upper_right:", +"U+1F503": ":arrows_clockwise:", +"U+1F504": ":arrows_counterclockwise:", +"U+1F3A8": ":art:", +"U+1F69B": ":articulated_lorry:", +"U+1F632": ":astonished:", +"U+1F45F": ":athletic_shoe:", +"U+1F3E7": ":atm:", +"U+1F171": ":b:", +"U+1F476": ":baby:", +"U+1F37C": ":baby_bottle:", +"U+1F424": ":baby_chick:", +"U+1F6BC": ":baby_symbol:", +"U+1F519": ":back:", +"U+1F6C4": ":baggage_claim:", +"U+1F388": ":balloon:", +"U+02611": ":ballot_box_with_check:", +"U+1F38D": ":bamboo:", +"U+1F34C": ":banana:", +"U+0203C": ":bangbang:", +"U+1F3E6": ":bank:", +"U+1F4CA": ":bar_chart:", +"U+1F488": ":barber:", +"U+026BE": ":baseball:", +"U+1F3C0": ":basketball:", +"U+1F6C0": ":bath:", +"U+1F6C1": ":bathtub:", +"U+1F50B": ":battery:", +"U+1F43B": ":bear:", +"U+1F41D": ":bee:", +"U+1F37A": ":beer:", +"U+1F37B": ":beers:", +"U+1F41E": ":beetle:", +"U+1F530": ":beginner:", +"U+1F514": ":bell:", +"U+1F371": ":bento:", +"U+1F6B4": ":bicyclist:", +"U+1F6B2": ":bike:", +"U+1F459": ":bikini:", +"U+1F426": ":bird:", +"U+1F382": ":birthday:", +"U+026AB": ":black_circle:", +"U+1F0CF": ":black_joker:", +"U+02B1B": ":black_large_square:", +"U+025FE": ":black_medium_small_square:", +"U+025FC": ":black_medium_square:", +"U+02712": ":black_nib:", +"U+025AA": ":black_small_square:", +"U+1F532": ":black_square_button:", +"U+1F33C": ":blossom:", +"U+1F421": ":blowfish:", +"U+1F4D8": ":blue_book:", +"U+1F699": ":blue_car:", +"U+1F499": ":blue_heart:", +"U+1F60A": ":blush:", +"U+1F417": ":boar:", +"U+026F5": ":boat:", +"U+1F4A3": ":bomb:", +"U+1F4D6": ":book:", +"U+1F516": ":bookmark:", +"U+1F4D1": ":bookmark_tabs:", +"U+1F4DA": ":books:", +"U+1F4A5": ":boom:", +"U+1F462": ":boot:", +"U+1F490": ":bouquet:", +"U+1F647": ":bow:", +"U+1F3B3": ":bowling:", +"U+1F466": ":boy:", +"U+1F35E": ":bread:", +"U+1F470": ":bride_with_veil:", +"U+1F309": ":bridge_at_night:", +"U+1F4BC": ":briefcase:", +"U+1F494": ":broken_heart:", +"U+1F41B": ":bug:", +"U+1F4A1": ":bulb:", +"U+1F685": ":bullettrain_front:", +"U+1F684": ":bullettrain_side:", +"U+1F68C": ":bus:", +"U+1F68F": ":busstop:", +"U+1F464": ":bust_in_silhouette:", +"U+1F465": ":busts_in_silhouette:", +"U+1F335": ":cactus:", +"U+1F370": ":cake:", +"U+1F4C6": ":calendar:", +"U+1F4F2": ":calling:", +"U+1F42B": ":camel:", +"U+1F4F7": ":camera:", +"U+0264B": ":cancer:", +"U+1F36C": ":candy:", +"U+1F520": ":capital_abcd:", +"U+02651": ":capricorn:", +"U+1F697": ":car:", +"U+1F4C7": ":card_index:", +"U+1F3A0": ":carousel_horse:", +"U+1F431": ":cat:", +"U+1F408": ":cat2:", +"U+1F4BF": ":cd:", +"U+1F4B9": ":chart:", +"U+1F4C9": ":chart_with_downwards_trend:", +"U+1F4C8": ":chart_with_upwards_trend:", +"U+1F3C1": ":checkered_flag:", +"U+1F352": ":cherries:", +"U+1F338": ":cherry_blossom:", +"U+1F330": ":chestnut:", +"U+1F414": ":chicken:", +"U+1F6B8": ":children_crossing:", +"U+1F36B": ":chocolate_bar:", +"U+1F384": ":christmas_tree:", +"U+026EA": ":church:", +"U+1F3A6": ":cinema:", +"U+1F3AA": ":circus_tent:", +"U+1F307": ":city_sunrise:", +"U+1F306": ":city_sunset:", +"U+1F191": ":cl:", +"U+1F44F": ":clap:", +"U+1F3AC": ":clapper:", +"U+1F4CB": ":clipboard:", +"U+1F550": ":clock1:", +"U+1F559": ":clock10:", +"U+1F565": ":clock1030:", +"U+1F55A": ":clock11:", +"U+1F566": ":clock1130:", +"U+1F55B": ":clock12:", +"U+1F567": ":clock1230:", +"U+1F55C": ":clock130:", +"U+1F551": ":clock2:", +"U+1F55D": ":clock230:", +"U+1F552": ":clock3:", +"U+1F55E": ":clock330:", +"U+1F553": ":clock4:", +"U+1F55F": ":clock430:", +"U+1F554": ":clock5:", +"U+1F560": ":clock530:", +"U+1F555": ":clock6:", +"U+1F561": ":clock630:", +"U+1F556": ":clock7:", +"U+1F562": ":clock730:", +"U+1F557": ":clock8:", +"U+1F563": ":clock830:", +"U+1F558": ":clock9:", +"U+1F564": ":clock930:", +"U+1F4D5": ":closed_book:", +"U+1F510": ":closed_lock_with_key:", +"U+1F302": ":closed_umbrella:", +"U+02601": ":cloud:", +"U+02663": ":clubs:", +"U+1F378": ":cocktail:", +"U+02615": ":coffee:", +"U+1F630": ":cold_sweat:", +"U+1F4A5": ":collision:", +"U+1F4BB": ":computer:", +"U+1F38A": ":confetti_ball:", +"U+1F616": ":confounded:", +"U+1F615": ":confused:", +"U+03297": ":congratulations:", +"U+1F6A7": ":construction:", +"U+1F477": ":construction_worker:", +"U+1F3EA": ":convenience_store:", +"U+1F36A": ":cookie:", +"U+1F192": ":cool:", +"U+1F46E": ":cop:", +"U+000A9": ":copyright:", +"U+1F33D": ":corn:", +"U+1F46B": ":couple:", +"U+1F491": ":couple_with_heart:", +"U+1F48F": ":couplekiss:", +"U+1F42E": ":cow:", +"U+1F404": ":cow2:", +"U+1F4B3": ":credit_card:", +"U+1F319": ":crescent_moon:", +"U+1F40A": ":crocodile:", +"U+1F38C": ":crossed_flags:", +"U+1F451": ":crown:", +"U+1F622": ":cry:", +"U+1F63F": ":crying_cat_face:", +"U+1F52E": ":crystal_ball:", +"U+1F498": ":cupid:", +"U+027B0": ":curly_loop:", +"U+1F4B1": ":currency_exchange:", +"U+1F35B": ":curry:", +"U+1F36E": ":custard:", +"U+1F6C3": ":customs:", +"U+1F300": ":cyclone:", +"U+1F483": ":dancer:", +"U+1F46F": ":dancers:", +"U+1F361": ":dango:", +"U+1F3AF": ":dart:", +"U+1F4A8": ":dash:", +"U+1F4C5": ":date:", +"U+1F333": ":deciduous_tree:", +"U+1F3EC": ":department_store:", +"U+1F4A0": ":diamond_shape_with_a_dot_inside:", +"U+02666": ":diamonds:", +"U+1F61E": ":disappointed:", +"U+1F625": ":disappointed_relieved:", +"U+1F4AB": ":dizzy:", +"U+1F635": ":dizzy_face:", +"U+1F6AF": ":do_not_litter:", +"U+1F436": ":dog:", +"U+1F415": ":dog2:", +"U+1F4B5": ":dollar:", +"U+1F38E": ":dolls:", +"U+1F42C": ":dolphin:", +"U+1F6AA": ":door:", +"U+1F369": ":doughnut:", +"U+1F409": ":dragon:", +"U+1F432": ":dragon_face:", +"U+1F457": ":dress:", +"U+1F42A": ":dromedary_camel:", +"U+1F4A7": ":droplet:", +"U+1F4C0": ":dvd:", +"U+1F4E7": ":e-mail:", +"U+1F442": ":ear:", +"U+1F33E": ":ear_of_rice:", +"U+1F30D": ":earth_africa:", +"U+1F30E": ":earth_americas:", +"U+1F30F": ":earth_asia:", +"U+1F373": ":egg:", +"U+1F346": ":eggplant:", +"U+02734": ":eight_pointed_black_star:", +"U+02733": ":eight_spoked_asterisk:", +"U+1F50C": ":electric_plug:", +"U+1F418": ":elephant:", +"U+02709": ":email:", +"U+1F51A": ":end:", +"U+02709": ":envelope:", +"U+1F4E9": ":envelope_with_arrow:", +"U+1F4B6": ":euro:", +"U+1F3F0": ":european_castle:", +"U+1F3E4": ":european_post_office:", +"U+1F332": ":evergreen_tree:", +"U+02757": ":exclamation:", +"U+1F611": ":expressionless:", +"U+1F453": ":eyeglasses:", +"U+1F440": ":eyes:", +"U+1F44A": ":facepunch:", +"U+1F3ED": ":factory:", +"U+1F342": ":fallen_leaf:", +"U+1F46A": ":family:", +"U+023E9": ":fast_forward:", +"U+1F4E0": ":fax:", +"U+1F628": ":fearful:", +"U+1F43E": ":feet:", +"U+1F3A1": ":ferris_wheel:", +"U+1F4C1": ":file_folder:", +"U+1F525": ":fire:", +"U+1F692": ":fire_engine:", +"U+1F386": ":fireworks:", +"U+1F313": ":first_quarter_moon:", +"U+1F31B": ":first_quarter_moon_with_face:", +"U+1F41F": ":fish:", +"U+1F365": ":fish_cake:", +"U+1F3A3": ":fishing_pole_and_fish:", +"U+0270A": ":fist:", +"U+1F38F": ":flags:", +"U+1F526": ":flashlight:", +"U+1F42C": ":flipper:", +"U+1F4BE": ":floppy_disk:", +"U+1F3B4": ":flower_playing_cards:", +"U+1F633": ":flushed:", +"U+1F301": ":foggy:", +"U+1F3C8": ":football:", +"U+1F463": ":footprints:", +"U+1F374": ":fork_and_knife:", +"U+026F2": ":fountain:", +"U+1F340": ":four_leaf_clover:", +"U+1F193": ":free:", +"U+1F364": ":fried_shrimp:", +"U+1F35F": ":fries:", +"U+1F438": ":frog:", +"U+1F626": ":frowning:", +"U+026FD": ":fuelpump:", +"U+1F315": ":full_moon:", +"U+1F31D": ":full_moon_with_face:", +"U+1F3B2": ":game_die:", +"U+1F48E": ":gem:", +"U+0264A": ":gemini:", +"U+1F47B": ":ghost:", +"U+1F381": ":gift:", +"U+1F49D": ":gift_heart:", +"U+1F467": ":girl:", +"U+1F310": ":globe_with_meridians:", +"U+1F410": ":goat:", +"U+026F3": ":golf:", +"U+1F347": ":grapes:", +"U+1F34F": ":green_apple:", +"U+1F4D7": ":green_book:", +"U+1F49A": ":green_heart:", +"U+02755": ":grey_exclamation:", +"U+02754": ":grey_question:", +"U+1F62C": ":grimacing:", +"U+1F601": ":grin:", +"U+1F600": ":grinning:", +"U+1F482": ":guardsman:", +"U+1F3B8": ":guitar:", +"U+1F52B": ":gun:", +"U+1F487": ":haircut:", +"U+1F354": ":hamburger:", +"U+1F528": ":hammer:", +"U+1F439": ":hamster:", +"U+0270B": ":hand:", +"U+1F45C": ":handbag:", +"U+1F4A9": ":hankey:", +"U+1F425": ":hatched_chick:", +"U+1F423": ":hatching_chick:", +"U+1F3A7": ":headphones:", +"U+1F649": ":hear_no_evil:", +"U+02764": ":heart:", +"U+1F49F": ":heart_decoration:", +"U+1F60D": ":heart_eyes:", +"U+1F63B": ":heart_eyes_cat:", +"U+1F493": ":heartbeat:", +"U+1F497": ":heartpulse:", +"U+02665": ":hearts:", +"U+02714": ":heavy_check_mark:", +"U+02797": ":heavy_division_sign:", +"U+1F4B2": ":heavy_dollar_sign:", +"U+02757": ":heavy_exclamation_mark:", +"U+02796": ":heavy_minus_sign:", +"U+02716": ":heavy_multiplication_x:", +"U+02795": ":heavy_plus_sign:", +"U+1F681": ":helicopter:", +"U+1F33F": ":herb:", +"U+1F33A": ":hibiscus:", +"U+1F506": ":high_brightness:", +"U+1F460": ":high_heel:", +"U+1F52A": ":hocho:", +"U+1F36F": ":honey_pot:", +"U+1F41D": ":honeybee:", +"U+1F434": ":horse:", +"U+1F3C7": ":horse_racing:", +"U+1F3E5": ":hospital:", +"U+1F3E8": ":hotel:", +"U+02668": ":hotsprings:", +"U+0231B": ":hourglass:", +"U+023F3": ":hourglass_flowing_sand:", +"U+1F3E0": ":house:", +"U+1F3E1": ":house_with_garden:", +"U+1F62F": ":hushed:", +"U+1F368": ":ice_cream:", +"U+1F366": ":icecream:", +"U+1F194": ":id:", +"U+1F250": ":ideograph_advantage:", +"U+1F47F": ":imp:", +"U+1F4E5": ":inbox_tray:", +"U+1F4E8": ":incoming_envelope:", +"U+1F481": ":information_desk_person:", +"U+02139": ":information_source:", +"U+1F607": ":innocent:", +"U+02049": ":interrobang:", +"U+1F4F1": ":iphone:", +"U+1F3EE": ":izakaya_lantern:", +"U+1F383": ":jack_o_lantern:", +"U+1F5FE": ":japan:", +"U+1F3EF": ":japanese_castle:", +"U+1F47A": ":japanese_goblin:", +"U+1F479": ":japanese_ogre:", +"U+1F456": ":jeans:", +"U+1F602": ":joy:", +"U+1F639": ":joy_cat:", +"U+1F511": ":key:", +"U+1F51F": ":keycap_ten:", +"U+1F458": ":kimono:", +"U+1F48B": ":kiss:", +"U+1F617": ":kissing:", +"U+1F63D": ":kissing_cat:", +"U+1F61A": ":kissing_closed_eyes:", +"U+1F618": ":kissing_heart:", +"U+1F619": ":kissing_smiling_eyes:", +"U+1F428": ":koala:", +"U+1F201": ":koko:", +"U+1F3EE": ":lantern:", +"U+1F535": ":large_blue_circle:", +"U+1F537": ":large_blue_diamond:", +"U+1F536": ":large_orange_diamond:", +"U+1F317": ":last_quarter_moon:", +"U+1F31C": ":last_quarter_moon_with_face:", +"U+1F606": ":laughing:", +"U+1F343": ":leaves:", +"U+1F4D2": ":ledger:", +"U+1F6C5": ":left_luggage:", +"U+02194": ":left_right_arrow:", +"U+021A9": ":leftwards_arrow_with_hook:", +"U+1F34B": ":lemon:", +"U+0264C": ":leo:", +"U+1F406": ":leopard:", +"U+0264E": ":libra:", +"U+1F688": ":light_rail:", +"U+1F517": ":link:", +"U+1F444": ":lips:", +"U+1F484": ":lipstick:", +"U+1F512": ":lock:", +"U+1F50F": ":lock_with_ink_pen:", +"U+1F36D": ":lollipop:", +"U+027BF": ":loop:", +"U+1F4E2": ":loudspeaker:", +"U+1F3E9": ":love_hotel:", +"U+1F48C": ":love_letter:", +"U+1F505": ":low_brightness:", +"U+024C2": ":m:", +"U+1F50D": ":mag:", +"U+1F50E": ":mag_right:", +"U+1F004": ":mahjong:", +"U+1F4EB": ":mailbox:", +"U+1F4EA": ":mailbox_closed:", +"U+1F4EC": ":mailbox_with_mail:", +"U+1F4ED": ":mailbox_with_no_mail:", +"U+1F468": ":man:", +"U+1F472": ":man_with_gua_pi_mao:", +"U+1F473": ":man_with_turban:", +"U+1F45E": ":mans_shoe:", +"U+1F341": ":maple_leaf:", +"U+1F637": ":mask:", +"U+1F486": ":massage:", +"U+1F356": ":meat_on_bone:", +"U+1F4E3": ":mega:", +"U+1F348": ":melon:", +"U+1F4DD": ":memo:", +"U+1F6B9": ":mens:", +"U+1F687": ":metro:", +"U+1F3A4": ":microphone:", +"U+1F52C": ":microscope:", +"U+1F30C": ":milky_way:", +"U+1F690": ":minibus:", +"U+1F4BD": ":minidisc:", +"U+1F4F4": ":mobile_phone_off:", +"U+1F4B8": ":money_with_wings:", +"U+1F4B0": ":moneybag:", +"U+1F412": ":monkey:", +"U+1F435": ":monkey_face:", +"U+1F69D": ":monorail:", +"U+1F314": ":moon:", +"U+1F393": ":mortar_board:", +"U+1F5FB": ":mount_fuji:", +"U+1F6B5": ":mountain_bicyclist:", +"U+1F6A0": ":mountain_cableway:", +"U+1F69E": ":mountain_railway:", +"U+1F42D": ":mouse:", +"U+1F401": ":mouse2:", +"U+1F3A5": ":movie_camera:", +"U+1F5FF": ":moyai:", +"U+1F4AA": ":muscle:", +"U+1F344": ":mushroom:", +"U+1F3B9": ":musical_keyboard:", +"U+1F3B5": ":musical_note:", +"U+1F3BC": ":musical_score:", +"U+1F507": ":mute:", +"U+1F485": ":nail_care:", +"U+1F4DB": ":name_badge:", +"U+1F454": ":necktie:", +"U+0274E": ":negative_squared_cross_mark:", +"U+1F610": ":neutral_face:", +"U+1F195": ":new:", +"U+1F311": ":new_moon:", +"U+1F31A": ":new_moon_with_face:", +"U+1F4F0": ":newspaper:", +"U+1F196": ":ng:", +"U+1F515": ":no_bell:", +"U+1F6B3": ":no_bicycles:", +"U+026D4": ":no_entry:", +"U+1F6AB": ":no_entry_sign:", +"U+1F645": ":no_good:", +"U+1F4F5": ":no_mobile_phones:", +"U+1F636": ":no_mouth:", +"U+1F6B7": ":no_pedestrians:", +"U+1F6AD": ":no_smoking:", +"U+1F6B1": ":non-potable_water:", +"U+1F443": ":nose:", +"U+1F4D3": ":notebook:", +"U+1F4D4": ":notebook_with_decorative_cover:", +"U+1F3B6": ":notes:", +"U+1F529": ":nut_and_bolt:", +"U+02B55": ":o:", +"U+1F17E": ":o2:", +"U+1F30A": ":ocean:", +"U+1F419": ":octopus:", +"U+1F362": ":oden:", +"U+1F3E2": ":office:", +"U+1F197": ":ok:", +"U+1F44C": ":ok_hand:", +"U+1F646": ":ok_woman:", +"U+1F474": ":older_man:", +"U+1F475": ":older_woman:", +"U+1F51B": ":on:", +"U+1F698": ":oncoming_automobile:", +"U+1F68D": ":oncoming_bus:", +"U+1F694": ":oncoming_police_car:", +"U+1F696": ":oncoming_taxi:", +"U+1F4D6": ":open_book:", +"U+1F4C2": ":open_file_folder:", +"U+1F450": ":open_hands:", +"U+1F62E": ":open_mouth:", +"U+026CE": ":ophiuchus:", +"U+1F4D9": ":orange_book:", +"U+1F4E4": ":outbox_tray:", +"U+1F402": ":ox:", +"U+1F4E6": ":package:", +"U+1F4C4": ":page_facing_up:", +"U+1F4C3": ":page_with_curl:", +"U+1F4DF": ":pager:", +"U+1F334": ":palm_tree:", +"U+1F43C": ":panda_face:", +"U+1F4CE": ":paperclip:", +"U+1F17F": ":parking:", +"U+0303D": ":part_alternation_mark:", +"U+026C5": ":partly_sunny:", +"U+1F6C2": ":passport_control:", +"U+1F43E": ":paw_prints:", +"U+1F351": ":peach:", +"U+1F350": ":pear:", +"U+1F4DD": ":pencil:", +"U+0270F": ":pencil2:", +"U+1F427": ":penguin:", +"U+1F614": ":pensive:", +"U+1F3AD": ":performing_arts:", +"U+1F623": ":persevere:", +"U+1F64D": ":person_frowning:", +"U+1F471": ":person_with_blond_hair:", +"U+1F64E": ":person_with_pouting_face:", +"U+0260E": ":phone:", +"U+1F437": ":pig:", +"U+1F416": ":pig2:", +"U+1F43D": ":pig_nose:", +"U+1F48A": ":pill:", +"U+1F34D": ":pineapple:", +"U+02653": ":pisces:", +"U+1F355": ":pizza:", +"U+1F447": ":point_down:", +"U+1F448": ":point_left:", +"U+1F449": ":point_right:", +"U+0261D": ":point_up:", +"U+1F446": ":point_up_2:", +"U+1F693": ":police_car:", +"U+1F429": ":poodle:", +"U+1F4A9": ":poop:", +"U+1F3E3": ":post_office:", +"U+1F4EF": ":postal_horn:", +"U+1F4EE": ":postbox:", +"U+1F6B0": ":potable_water:", +"U+1F45D": ":pouch:", +"U+1F357": ":poultry_leg:", +"U+1F4B7": ":pound:", +"U+1F63E": ":pouting_cat:", +"U+1F64F": ":pray:", +"U+1F478": ":princess:", +"U+1F44A": ":punch:", +"U+1F49C": ":purple_heart:", +"U+1F45B": ":purse:", +"U+1F4CC": ":pushpin:", +"U+1F6AE": ":put_litter_in_its_place:", +"U+02753": ":question:", +"U+1F430": ":rabbit:", +"U+1F407": ":rabbit2:", +"U+1F40E": ":racehorse:", +"U+1F4FB": ":radio:", +"U+1F518": ":radio_button:", +"U+1F621": ":rage:", +"U+1F683": ":railway_car:", +"U+1F308": ":rainbow:", +"U+0270B": ":raised_hand:", +"U+1F64C": ":raised_hands:", +"U+1F64B": ":raising_hand:", +"U+1F40F": ":ram:", +"U+1F35C": ":ramen:", +"U+1F400": ":rat:", +"U+0267B": ":recycle:", +"U+1F697": ":red_car:", +"U+1F534": ":red_circle:", +"U+000AE": ":registered:", +"U+0263A": ":relaxed:", +"U+1F60C": ":relieved:", +"U+1F501": ":repeat:", +"U+1F502": ":repeat_one:", +"U+1F6BB": ":restroom:", +"U+1F49E": ":revolving_hearts:", +"U+023EA": ":rewind:", +"U+1F380": ":ribbon:", +"U+1F35A": ":rice:", +"U+1F359": ":rice_ball:", +"U+1F358": ":rice_cracker:", +"U+1F391": ":rice_scene:", +"U+1F48D": ":ring:", +"U+1F680": ":rocket:", +"U+1F3A2": ":roller_coaster:", +"U+1F413": ":rooster:", +"U+1F339": ":rose:", +"U+1F6A8": ":rotating_light:", +"U+1F4CD": ":round_pushpin:", +"U+1F6A3": ":rowboat:", +"U+1F3C9": ":rugby_football:", +"U+1F3C3": ":runner:", +"U+1F3C3": ":running:", +"U+1F3BD": ":running_shirt_with_sash:", +"U+1F202": ":sa:", +"U+02650": ":sagittarius:", +"U+026F5": ":sailboat:", +"U+1F376": ":sake:", +"U+1F461": ":sandal:", +"U+1F385": ":santa:", +"U+1F4E1": ":satellite:", +"U+1F606": ":satisfied:", +"U+1F3B7": ":saxophone:", +"U+1F3EB": ":school:", +"U+1F392": ":school_satchel:", +"U+02702": ":scissors:", +"U+0264F": ":scorpius:", +"U+1F631": ":scream:", +"U+1F640": ":scream_cat:", +"U+1F4DC": ":scroll:", +"U+1F4BA": ":seat:", +"U+03299": ":secret:", +"U+1F648": ":see_no_evil:", +"U+1F331": ":seedling:", +"U+1F367": ":shaved_ice:", +"U+1F411": ":sheep:", +"U+1F41A": ":shell:", +"U+1F6A2": ":ship:", +"U+1F455": ":shirt:", +"U+1F4A9": ":shit:", +"U+1F45E": ":shoe:", +"U+1F6BF": ":shower:", +"U+1F4F6": ":signal_strength:", +"U+1F52F": ":six_pointed_star:", +"U+1F3BF": ":ski:", +"U+1F480": ":skull:", +"U+1F634": ":sleeping:", +"U+1F62A": ":sleepy:", +"U+1F3B0": ":slot_machine:", +"U+1F539": ":small_blue_diamond:", +"U+1F538": ":small_orange_diamond:", +"U+1F53A": ":small_red_triangle:", +"U+1F53B": ":small_red_triangle_down:", +"U+1F604": ":smile:", +"U+1F638": ":smile_cat:", +"U+1F603": ":smiley:", +"U+1F63A": ":smiley_cat:", +"U+1F608": ":smiling_imp:", +"U+1F60F": ":smirk:", +"U+1F63C": ":smirk_cat:", +"U+1F6AC": ":smoking:", +"U+1F40C": ":snail:", +"U+1F40D": ":snake:", +"U+1F3C2": ":snowboarder:", +"U+02744": ":snowflake:", +"U+026C4": ":snowman:", +"U+1F62D": ":sob:", +"U+026BD": ":soccer:", +"U+1F51C": ":soon:", +"U+1F198": ":sos:", +"U+1F509": ":sound:", +"U+1F47E": ":space_invader:", +"U+02660": ":spades:", +"U+1F35D": ":spaghetti:", +"U+02747": ":sparkle:", +"U+1F387": ":sparkler:", +"U+02728": ":sparkles:", +"U+1F496": ":sparkling_heart:", +"U+1F64A": ":speak_no_evil:", +"U+1F50A": ":speaker:", +"U+1F4AC": ":speech_balloon:", +"U+1F6A4": ":speedboat:", +"U+02B50": ":star:", +"U+1F31F": ":star2:", +"U+1F303": ":stars:", +"U+1F689": ":station:", +"U+1F5FD": ":statue_of_liberty:", +"U+1F682": ":steam_locomotive:", +"U+1F372": ":stew:", +"U+1F4CF": ":straight_ruler:", +"U+1F353": ":strawberry:", +"U+1F61B": ":stuck_out_tongue:", +"U+1F61D": ":stuck_out_tongue_closed_eyes:", +"U+1F61C": ":stuck_out_tongue_winking_eye:", +"U+1F31E": ":sun_with_face:", +"U+1F33B": ":sunflower:", +"U+1F60E": ":sunglasses:", +"U+02600": ":sunny:", +"U+1F305": ":sunrise:", +"U+1F304": ":sunrise_over_mountains:", +"U+1F3C4": ":surfer:", +"U+1F363": ":sushi:", +"U+1F69F": ":suspension_railway:", +"U+1F613": ":sweat:", +"U+1F4A6": ":sweat_drops:", +"U+1F605": ":sweat_smile:", +"U+1F360": ":sweet_potato:", +"U+1F3CA": ":swimmer:", +"U+1F523": ":symbols:", +"U+1F489": ":syringe:", +"U+1F389": ":tada:", +"U+1F38B": ":tanabata_tree:", +"U+1F34A": ":tangerine:", +"U+02649": ":taurus:", +"U+1F695": ":taxi:", +"U+1F375": ":tea:", +"U+0260E": ":telephone:", +"U+1F4DE": ":telephone_receiver:", +"U+1F52D": ":telescope:", +"U+1F3BE": ":tennis:", +"U+026FA": ":tent:", +"U+1F4AD": ":thought_balloon:", +"U+1F44E": ":thumbsdown:", +"U+1F44D": ":thumbsup:", +"U+1F3AB": ":ticket:", +"U+1F42F": ":tiger:", +"U+1F405": ":tiger2:", +"U+1F62B": ":tired_face:", +"U+02122": ":tm:", +"U+1F6BD": ":toilet:", +"U+1F5FC": ":tokyo_tower:", +"U+1F345": ":tomato:", +"U+1F445": ":tongue:", +"U+1F51D": ":top:", +"U+1F3A9": ":tophat:", +"U+1F69C": ":tractor:", +"U+1F6A5": ":traffic_light:", +"U+1F683": ":train:", +"U+1F686": ":train2:", +"U+1F68A": ":tram:", +"U+1F6A9": ":triangular_flag_on_post:", +"U+1F4D0": ":triangular_ruler:", +"U+1F531": ":trident:", +"U+1F624": ":triumph:", +"U+1F68E": ":trolleybus:", +"U+1F3C6": ":trophy:", +"U+1F379": ":tropical_drink:", +"U+1F420": ":tropical_fish:", +"U+1F69A": ":truck:", +"U+1F3BA": ":trumpet:", +"U+1F455": ":tshirt:", +"U+1F337": ":tulip:", +"U+1F422": ":turtle:", +"U+1F4FA": ":tv:", +"U+1F500": ":twisted_rightwards_arrows:", +"U+1F495": ":two_hearts:", +"U+1F46C": ":two_men_holding_hands:", +"U+1F46D": ":two_women_holding_hands:", +"U+1F239": ":u5272:", +"U+1F234": ":u5408:", +"U+1F23A": ":u55b6:", +"U+1F22F": ":u6307:", +"U+1F237": ":u6708:", +"U+1F236": ":u6709:", +"U+1F235": ":u6e80:", +"U+1F21A": ":u7121:", +"U+1F238": ":u7533:", +"U+1F232": ":u7981:", +"U+1F233": ":u7a7a:", +"U+02614": ":umbrella:", +"U+1F612": ":unamused:", +"U+1F51E": ":underage:", +"U+1F513": ":unlock:", +"U+1F199": ":up:", +"U+0270C": ":v:", +"U+1F6A6": ":vertical_traffic_light:", +"U+1F4FC": ":vhs:", +"U+1F4F3": ":vibration_mode:", +"U+1F4F9": ":video_camera:", +"U+1F3AE": ":video_game:", +"U+1F3BB": ":violin:", +"U+0264D": ":virgo:", +"U+1F30B": ":volcano:", +"U+1F19A": ":vs:", +"U+1F6B6": ":walking:", +"U+1F318": ":waning_crescent_moon:", +"U+1F316": ":waning_gibbous_moon:", +"U+026A0": ":warning:", +"U+0231A": ":watch:", +"U+1F403": ":water_buffalo:", +"U+1F349": ":watermelon:", +"U+1F44B": ":wave:", +"U+03030": ":wavy_dash:", +"U+1F312": ":waxing_crescent_moon:", +"U+1F314": ":waxing_gibbous_moon:", +"U+1F6BE": ":wc:", +"U+1F629": ":weary:", +"U+1F492": ":wedding:", +"U+1F433": ":whale:", +"U+1F40B": ":whale2:", +"U+0267F": ":wheelchair:", +"U+02705": ":white_check_mark:", +"U+026AA": ":white_circle:", +"U+1F4AE": ":white_flower:", +"U+02B1C": ":white_large_square:", +"U+025FD": ":white_medium_small_square:", +"U+025FB": ":white_medium_square:", +"U+025AB": ":white_small_square:", +"U+1F533": ":white_square_button:", +"U+1F390": ":wind_chime:", +"U+1F377": ":wine_glass:", +"U+1F609": ":wink:", +"U+1F43A": ":wolf:", +"U+1F469": ":woman:", +"U+1F45A": ":womans_clothes:", +"U+1F452": ":womans_hat:", +"U+1F6BA": ":womens:", +"U+1F61F": ":worried:", +"U+1F527": ":wrench:", +"U+0274C": ":x:", +"U+1F49B": ":yellow_heart:", +"U+1F4B4": ":yen:", +"U+1F60B": ":yum:", +"U+026A1": ":zap:", +"U+1F4A4": ":zzz:", +} + +def to_java_repr(s): + s = s.decode('utf-8').encode('utf-16be') + rep = "" + i = 0 + for c in s: + if i <= 0: + i = 2 + rep += "\\u" + rep += hex(ord(c))[2:].zfill(2).upper() + i -= 1 + return rep + +last_type = "" +total = 0 +i = 0 +while i < len(emoji_list): + emoji_type = emoji_list[i] + ucode = emoji_list[i + 1] + bytecode = to_java_repr(emoji_list[i + 2]) + desc = emoji_list[i + 3] + name = name_map[ucode] if ucode in name_map else "" + i += 4 + if emoji_type != last_type: + if last_type != "": + print "});" + print "emoji_type_map.put(%s, new Emoji[]" % emoji_type + print "{" + last_type = emoji_type + print '\tnew Emoji("%s", "%s", "%s"),' % (name, bytecode, desc) + total += 1 +if last_type != "": + print "});" + +# print "Total: %d" % total diff --git a/project.properties b/project.properties index 916037e..00cf62b 100644 --- a/project.properties +++ b/project.properties @@ -11,4 +11,4 @@ #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt # Project target. -target=android-23 +target=android-22 diff --git a/res/layout/emoji_pane.xml b/res/layout/emoji_pane.xml new file mode 100644 index 0000000..8fe9fe4 --- /dev/null +++ b/res/layout/emoji_pane.xml @@ -0,0 +1,7 @@ + + + + diff --git a/res/layout/input.xml b/res/layout/keyboard.xml similarity index 100% rename from res/layout/input.xml rename to res/layout/keyboard.xml diff --git a/srcs/juloo.keyboard2/Emoji.java b/srcs/juloo.keyboard2/Emoji.java new file mode 100644 index 0000000..ed28603 --- /dev/null +++ b/srcs/juloo.keyboard2/Emoji.java @@ -0,0 +1,906 @@ +package juloo.keyboard2; + +import java.util.HashMap; + +public class Emoji +{ + public static final int TYPE_EMOTICONS = 1; + public static final int TYPE_DINGBATS = 2; + public static final int TYPE_TRANSPORT = 3; + public static final int TYPE_UNCATEGORIZED = 4; + public static final int TYPE_ENCLOSED_CHARACTERS = 5; + + private final String _name; + private final String _bytecode; + private final String _desc; + + private Emoji(String name, String bytecode, String desc) + { + _name = name; + _bytecode = bytecode; + _desc = desc; + } + + public String getName() + { + return (_name); + } + + public String getBytecode() + { + return (_bytecode); + } + + public String getDescription() + { + return (_desc); + } + + private static final HashMap emoji_type_map = new HashMap(); + + public static Emoji[] getEmojiByType(int type) + { + return (emoji_type_map.get(type)); + } + + static + { + emoji_type_map.put(TYPE_EMOTICONS, new Emoji[] + { + new Emoji(":grin:", "\uD83D\uDE01", "grinning face with smiling eyes"), + new Emoji(":joy:", "\uD83D\uDE02", "face with tears of joy"), + new Emoji(":smiley:", "\uD83D\uDE03", "smiling face with open mouth"), + new Emoji(":smile:", "\uD83D\uDE04", "smiling face with open mouth and smiling eyes"), + new Emoji(":sweat_smile:", "\uD83D\uDE05", "smiling face with open mouth and cold sweat"), + new Emoji(":satisfied:", "\uD83D\uDE06", "smiling face with open mouth and tightly-closed eyes"), + new Emoji(":wink:", "\uD83D\uDE09", "winking face"), + new Emoji(":blush:", "\uD83D\uDE0A", "smiling face with smiling eyes"), + new Emoji(":yum:", "\uD83D\uDE0B", "face savouring delicious food"), + new Emoji(":relieved:", "\uD83D\uDE0C", "relieved face"), + new Emoji(":heart_eyes:", "\uD83D\uDE0D", "smiling face with heart-shaped eyes"), + new Emoji(":smirk:", "\uD83D\uDE0F", "smirking face"), + new Emoji(":unamused:", "\uD83D\uDE12", "unamused face"), + new Emoji(":sweat:", "\uD83D\uDE13", "face with cold sweat"), + new Emoji(":pensive:", "\uD83D\uDE14", "pensive face"), + new Emoji(":confounded:", "\uD83D\uDE16", "confounded face"), + new Emoji(":kissing_heart:", "\uD83D\uDE18", "face throwing a kiss"), + new Emoji(":kissing_closed_eyes:", "\uD83D\uDE1A", "kissing face with closed eyes"), + new Emoji(":stuck_out_tongue_winking_eye:", "\uD83D\uDE1C", "face with stuck-out tongue and winking eye"), + new Emoji(":stuck_out_tongue_closed_eyes:", "\uD83D\uDE1D", "face with stuck-out tongue and tightly-closed eyes"), + new Emoji(":disappointed:", "\uD83D\uDE1E", "disappointed face"), + new Emoji(":angry:", "\uD83D\uDE20", "angry face"), + new Emoji(":rage:", "\uD83D\uDE21", "pouting face"), + new Emoji(":cry:", "\uD83D\uDE22", "crying face"), + new Emoji(":persevere:", "\uD83D\uDE23", "persevering face"), + new Emoji(":triumph:", "\uD83D\uDE24", "face with look of triumph"), + new Emoji(":disappointed_relieved:", "\uD83D\uDE25", "disappointed but relieved face"), + new Emoji(":fearful:", "\uD83D\uDE28", "fearful face"), + new Emoji(":weary:", "\uD83D\uDE29", "weary face"), + new Emoji(":sleepy:", "\uD83D\uDE2A", "sleepy face"), + new Emoji(":tired_face:", "\uD83D\uDE2B", "tired face"), + new Emoji(":sob:", "\uD83D\uDE2D", "loudly crying face"), + new Emoji(":cold_sweat:", "\uD83D\uDE30", "face with open mouth and cold sweat"), + new Emoji(":scream:", "\uD83D\uDE31", "face screaming in fear"), + new Emoji(":astonished:", "\uD83D\uDE32", "astonished face"), + new Emoji(":flushed:", "\uD83D\uDE33", "flushed face"), + new Emoji(":dizzy_face:", "\uD83D\uDE35", "dizzy face"), + new Emoji(":mask:", "\uD83D\uDE37", "face with medical mask"), + new Emoji(":smile_cat:", "\uD83D\uDE38", "grinning cat face with smiling eyes"), + new Emoji(":joy_cat:", "\uD83D\uDE39", "cat face with tears of joy"), + new Emoji(":smiley_cat:", "\uD83D\uDE3A", "smiling cat face with open mouth"), + new Emoji(":heart_eyes_cat:", "\uD83D\uDE3B", "smiling cat face with heart-shaped eyes"), + new Emoji(":smirk_cat:", "\uD83D\uDE3C", "cat face with wry smile"), + new Emoji(":kissing_cat:", "\uD83D\uDE3D", "kissing cat face with closed eyes"), + new Emoji(":pouting_cat:", "\uD83D\uDE3E", "pouting cat face"), + new Emoji(":crying_cat_face:", "\uD83D\uDE3F", "crying cat face"), + new Emoji(":scream_cat:", "\uD83D\uDE40", "weary cat face"), + new Emoji(":no_good:", "\uD83D\uDE45", "face with no good gesture"), + new Emoji(":ok_woman:", "\uD83D\uDE46", "face with ok gesture"), + new Emoji(":bow:", "\uD83D\uDE47", "person bowing deeply"), + new Emoji(":see_no_evil:", "\uD83D\uDE48", "see-no-evil monkey"), + new Emoji(":hear_no_evil:", "\uD83D\uDE49", "hear-no-evil monkey"), + new Emoji(":speak_no_evil:", "\uD83D\uDE4A", "speak-no-evil monkey"), + new Emoji(":raising_hand:", "\uD83D\uDE4B", "happy person raising one hand"), + new Emoji(":raised_hands:", "\uD83D\uDE4C", "person raising both hands in celebration"), + new Emoji(":person_frowning:", "\uD83D\uDE4D", "person frowning"), + new Emoji(":person_with_pouting_face:", "\uD83D\uDE4E", "person with pouting face"), + new Emoji(":pray:", "\uD83D\uDE4F", "person with folded hands"), + new Emoji(":grinning:", "\uD83D\uDE00", "grinning face"), + new Emoji(":innocent:", "\uD83D\uDE07", "smiling face with halo"), + new Emoji(":smiling_imp:", "\uD83D\uDE08", "smiling face with horns"), + new Emoji(":sunglasses:", "\uD83D\uDE0E", "smiling face with sunglasses"), + new Emoji(":neutral_face:", "\uD83D\uDE10", "neutral face"), + new Emoji(":expressionless:", "\uD83D\uDE11", "expressionless face"), + new Emoji(":confused:", "\uD83D\uDE15", "confused face"), + new Emoji(":kissing:", "\uD83D\uDE17", "kissing face"), + new Emoji(":kissing_smiling_eyes:", "\uD83D\uDE19", "kissing face with smiling eyes"), + new Emoji(":stuck_out_tongue:", "\uD83D\uDE1B", "face with stuck-out tongue"), + new Emoji(":worried:", "\uD83D\uDE1F", "worried face"), + new Emoji(":frowning:", "\uD83D\uDE26", "frowning face with open mouth"), + new Emoji(":anguished:", "\uD83D\uDE27", "anguished face"), + new Emoji(":grimacing:", "\uD83D\uDE2C", "grimacing face"), + new Emoji(":open_mouth:", "\uD83D\uDE2E", "face with open mouth"), + new Emoji(":hushed:", "\uD83D\uDE2F", "hushed face"), + new Emoji(":sleeping:", "\uD83D\uDE34", "sleeping face"), + new Emoji(":no_mouth:", "\uD83D\uDE36", "face without mouth"), + }); + emoji_type_map.put(TYPE_DINGBATS, new Emoji[] + { + new Emoji("", "\u2702", "black scissors"), + new Emoji("", "\u2705", "white heavy check mark"), + new Emoji("", "\u2708", "airplane"), + new Emoji("", "\u2709", "envelope"), + new Emoji("", "\u270A", "raised fist"), + new Emoji("", "\u270B", "raised hand"), + new Emoji("", "\u270C", "victory hand"), + new Emoji("", "\u270F", "pencil"), + new Emoji("", "\u2712", "black nib"), + new Emoji("", "\u2714", "heavy check mark"), + new Emoji("", "\u2716", "heavy multiplication x"), + new Emoji("", "\u2728", "sparkles"), + new Emoji("", "\u2733", "eight spoked asterisk"), + new Emoji("", "\u2734", "eight pointed black star"), + new Emoji("", "\u2744", "snowflake"), + new Emoji("", "\u2747", "sparkle"), + new Emoji("", "\u274C", "cross mark"), + new Emoji("", "\u274E", "negative squared cross mark"), + new Emoji("", "\u2753", "black question mark ornament"), + new Emoji("", "\u2754", "white question mark ornament"), + new Emoji("", "\u2755", "white exclamation mark ornament"), + new Emoji("", "\u2757", "heavy exclamation mark symbol"), + new Emoji("", "\u2764", "heavy black heart"), + new Emoji("", "\u2795", "heavy plus sign"), + new Emoji("", "\u2796", "heavy minus sign"), + new Emoji("", "\u2797", "heavy division sign"), + new Emoji("", "\u27A1", "black rightwards arrow"), + new Emoji("", "\u27B0", "curly loop"), + }); + emoji_type_map.put(TYPE_TRANSPORT, new Emoji[] + { + new Emoji(":rocket:", "\uD83D\uDE80", "rocket"), + new Emoji(":train:", "\uD83D\uDE83", "railway car"), + new Emoji(":bullettrain_side:", "\uD83D\uDE84", "high-speed train"), + new Emoji(":bullettrain_front:", "\uD83D\uDE85", "high-speed train with bullet nose"), + new Emoji(":metro:", "\uD83D\uDE87", "metro"), + new Emoji(":station:", "\uD83D\uDE89", "station"), + new Emoji(":bus:", "\uD83D\uDE8C", "bus"), + new Emoji(":busstop:", "\uD83D\uDE8F", "bus stop"), + new Emoji(":ambulance:", "\uD83D\uDE91", "ambulance"), + new Emoji(":fire_engine:", "\uD83D\uDE92", "fire engine"), + new Emoji(":police_car:", "\uD83D\uDE93", "police car"), + new Emoji(":taxi:", "\uD83D\uDE95", "taxi"), + new Emoji(":red_car:", "\uD83D\uDE97", "automobile"), + new Emoji(":blue_car:", "\uD83D\uDE99", "recreational vehicle"), + new Emoji(":truck:", "\uD83D\uDE9A", "delivery truck"), + new Emoji(":ship:", "\uD83D\uDEA2", "ship"), + new Emoji(":speedboat:", "\uD83D\uDEA4", "speedboat"), + new Emoji(":traffic_light:", "\uD83D\uDEA5", "horizontal traffic light"), + new Emoji(":construction:", "\uD83D\uDEA7", "construction sign"), + new Emoji(":rotating_light:", "\uD83D\uDEA8", "police cars revolving light"), + new Emoji(":triangular_flag_on_post:", "\uD83D\uDEA9", "triangular flag on post"), + new Emoji(":door:", "\uD83D\uDEAA", "door"), + new Emoji(":no_entry_sign:", "\uD83D\uDEAB", "no entry sign"), + new Emoji(":smoking:", "\uD83D\uDEAC", "smoking symbol"), + new Emoji(":no_smoking:", "\uD83D\uDEAD", "no smoking symbol"), + new Emoji(":bike:", "\uD83D\uDEB2", "bicycle"), + new Emoji(":walking:", "\uD83D\uDEB6", "pedestrian"), + new Emoji(":mens:", "\uD83D\uDEB9", "mens symbol"), + new Emoji(":womens:", "\uD83D\uDEBA", "womens symbol"), + new Emoji(":restroom:", "\uD83D\uDEBB", "restroom"), + new Emoji(":baby_symbol:", "\uD83D\uDEBC", "baby symbol"), + new Emoji(":toilet:", "\uD83D\uDEBD", "toilet"), + new Emoji(":wc:", "\uD83D\uDEBE", "water closet"), + new Emoji(":bath:", "\uD83D\uDEC0", "bath"), + new Emoji(":helicopter:", "\uD83D\uDE81", "helicopter"), + new Emoji(":steam_locomotive:", "\uD83D\uDE82", "steam locomotive"), + new Emoji(":train2:", "\uD83D\uDE86", "train"), + new Emoji(":light_rail:", "\uD83D\uDE88", "light rail"), + new Emoji(":tram:", "\uD83D\uDE8A", "tram"), + new Emoji(":oncoming_bus:", "\uD83D\uDE8D", "oncoming bus"), + new Emoji(":trolleybus:", "\uD83D\uDE8E", "trolleybus"), + new Emoji(":minibus:", "\uD83D\uDE90", "minibus"), + new Emoji(":oncoming_police_car:", "\uD83D\uDE94", "oncoming police car"), + new Emoji(":oncoming_taxi:", "\uD83D\uDE96", "oncoming taxi"), + new Emoji(":oncoming_automobile:", "\uD83D\uDE98", "oncoming automobile"), + new Emoji(":articulated_lorry:", "\uD83D\uDE9B", "articulated lorry"), + new Emoji(":tractor:", "\uD83D\uDE9C", "tractor"), + new Emoji(":monorail:", "\uD83D\uDE9D", "monorail"), + new Emoji(":mountain_railway:", "\uD83D\uDE9E", "mountain railway"), + new Emoji(":suspension_railway:", "\uD83D\uDE9F", "suspension railway"), + new Emoji(":mountain_cableway:", "\uD83D\uDEA0", "mountain cableway"), + new Emoji(":aerial_tramway:", "\uD83D\uDEA1", "aerial tramway"), + new Emoji(":rowboat:", "\uD83D\uDEA3", "rowboat"), + new Emoji(":vertical_traffic_light:", "\uD83D\uDEA6", "vertical traffic light"), + new Emoji(":put_litter_in_its_place:", "\uD83D\uDEAE", "put litter in its place symbol"), + new Emoji(":do_not_litter:", "\uD83D\uDEAF", "do not litter symbol"), + new Emoji(":potable_water:", "\uD83D\uDEB0", "potable water symbol"), + new Emoji(":non-potable_water:", "\uD83D\uDEB1", "non-potable water symbol"), + new Emoji(":no_bicycles:", "\uD83D\uDEB3", "no bicycles"), + new Emoji(":bicyclist:", "\uD83D\uDEB4", "bicyclist"), + new Emoji(":mountain_bicyclist:", "\uD83D\uDEB5", "mountain bicyclist"), + new Emoji(":no_pedestrians:", "\uD83D\uDEB7", "no pedestrians"), + new Emoji(":children_crossing:", "\uD83D\uDEB8", "children crossing"), + new Emoji(":shower:", "\uD83D\uDEBF", "shower"), + new Emoji(":bathtub:", "\uD83D\uDEC1", "bathtub"), + new Emoji(":passport_control:", "\uD83D\uDEC2", "passport control"), + new Emoji(":customs:", "\uD83D\uDEC3", "customs"), + new Emoji(":baggage_claim:", "\uD83D\uDEC4", "baggage claim"), + new Emoji(":left_luggage:", "\uD83D\uDEC5", "left luggage"), + }); + emoji_type_map.put(TYPE_ENCLOSED_CHARACTERS, new Emoji[] + { + new Emoji("", "\u24C2", "circled latin capital letter m"), + new Emoji(":a:", "\uD83C\uDD70", "negative squared latin capital letter a"), + new Emoji(":b:", "\uD83C\uDD71", "negative squared latin capital letter b"), + new Emoji(":o2:", "\uD83C\uDD7E", "negative squared latin capital letter o"), + new Emoji(":parking:", "\uD83C\uDD7F", "negative squared latin capital letter p"), + new Emoji(":ab:", "\uD83C\uDD8E", "negative squared ab"), + new Emoji(":cl:", "\uD83C\uDD91", "squared cl"), + new Emoji(":cool:", "\uD83C\uDD92", "squared cool"), + new Emoji(":free:", "\uD83C\uDD93", "squared free"), + new Emoji(":id:", "\uD83C\uDD94", "squared id"), + new Emoji(":new:", "\uD83C\uDD95", "squared new"), + new Emoji(":ng:", "\uD83C\uDD96", "squared ng"), + new Emoji(":ok:", "\uD83C\uDD97", "squared ok"), + new Emoji(":sos:", "\uD83C\uDD98", "squared sos"), + new Emoji(":up:", "\uD83C\uDD99", "squared up with exclamation mark"), + new Emoji(":vs:", "\uD83C\uDD9A", "squared vs"), + new Emoji("", "\uD83C\uDDE9\uD83C\uDDEA", "regional indicator symbol letter d + regional indicator symbol letter e"), + new Emoji("", "\uD83C\uDDEC\uD83C\uDDE7", "regional indicator symbol letter g + regional indicator symbol letter b"), + new Emoji("", "\uD83C\uDDE8\uD83C\uDDF3", "regional indicator symbol letter c + regional indicator symbol letter n"), + new Emoji("", "\uD83C\uDDEF\uD83C\uDDF5", "regional indicator symbol letter j + regional indicator symbol letter p"), + new Emoji("", "\uD83C\uDDF0\uD83C\uDDF7", "regional indicator symbol letter k + regional indicator symbol letter r"), + new Emoji("", "\uD83C\uDDEB\uD83C\uDDF7", "regional indicator symbol letter f + regional indicator symbol letter r"), + new Emoji("", "\uD83C\uDDEA\uD83C\uDDF8", "regional indicator symbol letter e + regional indicator symbol letter s"), + new Emoji("", "\uD83C\uDDEE\uD83C\uDDF9", "regional indicator symbol letter i + regional indicator symbol letter t"), + new Emoji("", "\uD83C\uDDFA\uD83C\uDDF8", "regional indicator symbol letter u + regional indicator symbol letter s"), + new Emoji("", "\uD83C\uDDF7\uD83C\uDDFA", "regional indicator symbol letter r + regional indicator symbol letter u"), + new Emoji(":koko:", "\uD83C\uDE01", "squared katakana koko"), + new Emoji(":sa:", "\uD83C\uDE02", "squared katakana sa"), + new Emoji(":u7121:", "\uD83C\uDE1A", "squared cjk unified ideograph-7121"), + new Emoji(":u6307:", "\uD83C\uDE2F", "squared cjk unified ideograph-6307"), + new Emoji(":u7981:", "\uD83C\uDE32", "squared cjk unified ideograph-7981"), + new Emoji(":u7a7a:", "\uD83C\uDE33", "squared cjk unified ideograph-7a7a"), + new Emoji(":u5408:", "\uD83C\uDE34", "squared cjk unified ideograph-5408"), + new Emoji(":u6e80:", "\uD83C\uDE35", "squared cjk unified ideograph-6e80"), + new Emoji(":u6709:", "\uD83C\uDE36", "squared cjk unified ideograph-6709"), + new Emoji(":u6708:", "\uD83C\uDE37", "squared cjk unified ideograph-6708"), + new Emoji(":u7533:", "\uD83C\uDE38", "squared cjk unified ideograph-7533"), + new Emoji(":u5272:", "\uD83C\uDE39", "squared cjk unified ideograph-5272"), + new Emoji(":u55b6:", "\uD83C\uDE3A", "squared cjk unified ideograph-55b6"), + new Emoji(":ideograph_advantage:", "\uD83C\uDE50", "circled ideograph advantage"), + new Emoji(":accept:", "\uD83C\uDE51", "circled ideograph accept"), + }); + emoji_type_map.put(TYPE_UNCATEGORIZED, new Emoji[] + { + new Emoji("", "\u00A9", "copyright sign"), + new Emoji("", "\u00AE", "registered sign"), + new Emoji("", "\u203C", "double exclamation mark"), + new Emoji("", "\u2049", "exclamation question mark"), + new Emoji("", "\u0038\u20E3", "digit eight + combining enclosing keycap"), + new Emoji("", "\u0039\u20E3", "digit nine + combining enclosing keycap"), + new Emoji("", "\u0037\u20E3", "digit seven + combining enclosing keycap"), + new Emoji("", "\u0036\u20E3", "digit six + combining enclosing keycap"), + new Emoji("", "\u0031\u20E3", "digit one + combining enclosing keycap"), + new Emoji("", "\u0030\u20E3", "digit zero + combining enclosing keycap"), + new Emoji("", "\u0032\u20E3", "digit two + combining enclosing keycap"), + new Emoji("", "\u0033\u20E3", "digit three + combining enclosing keycap"), + new Emoji("", "\u0035\u20E3", "digit five + combining enclosing keycap"), + new Emoji("", "\u0034\u20E3", "digit four + combining enclosing keycap"), + new Emoji("", "\u0023\u20E3", "number sign + combining enclosing keycap"), + new Emoji("", "\u2122", "trade mark sign"), + new Emoji("", "\u2139", "information source"), + new Emoji("", "\u2194", "left right arrow"), + new Emoji("", "\u2195", "up down arrow"), + new Emoji("", "\u2196", "north west arrow"), + new Emoji("", "\u2197", "north east arrow"), + new Emoji("", "\u2198", "south east arrow"), + new Emoji("", "\u2199", "south west arrow"), + new Emoji("", "\u21A9", "leftwards arrow with hook"), + new Emoji("", "\u21AA", "rightwards arrow with hook"), + new Emoji("", "\u231A", "watch"), + new Emoji("", "\u231B", "hourglass"), + new Emoji("", "\u23E9", "black right-pointing double triangle"), + new Emoji("", "\u23EA", "black left-pointing double triangle"), + new Emoji("", "\u23EB", "black up-pointing double triangle"), + new Emoji("", "\u23EC", "black down-pointing double triangle"), + new Emoji("", "\u23F0", "alarm clock"), + new Emoji("", "\u23F3", "hourglass with flowing sand"), + new Emoji("", "\u25AA", "black small square"), + new Emoji("", "\u25AB", "white small square"), + new Emoji("", "\u25B6", "black right-pointing triangle"), + new Emoji("", "\u25C0", "black left-pointing triangle"), + new Emoji("", "\u25FB", "white medium square"), + new Emoji("", "\u25FC", "black medium square"), + new Emoji("", "\u25FD", "white medium small square"), + new Emoji("", "\u25FE", "black medium small square"), + new Emoji("", "\u2600", "black sun with rays"), + new Emoji("", "\u2601", "cloud"), + new Emoji("", "\u260E", "black telephone"), + new Emoji("", "\u2611", "ballot box with check"), + new Emoji("", "\u2614", "umbrella with rain drops"), + new Emoji("", "\u2615", "hot beverage"), + new Emoji("", "\u261D", "white up pointing index"), + new Emoji("", "\u263A", "white smiling face"), + new Emoji("", "\u2648", "aries"), + new Emoji("", "\u2649", "taurus"), + new Emoji("", "\u264A", "gemini"), + new Emoji("", "\u264B", "cancer"), + new Emoji("", "\u264C", "leo"), + new Emoji("", "\u264D", "virgo"), + new Emoji("", "\u264E", "libra"), + new Emoji("", "\u264F", "scorpius"), + new Emoji("", "\u2650", "sagittarius"), + new Emoji("", "\u2651", "capricorn"), + new Emoji("", "\u2652", "aquarius"), + new Emoji("", "\u2653", "pisces"), + new Emoji("", "\u2660", "black spade suit"), + new Emoji("", "\u2663", "black club suit"), + new Emoji("", "\u2665", "black heart suit"), + new Emoji("", "\u2666", "black diamond suit"), + new Emoji("", "\u2668", "hot springs"), + new Emoji("", "\u267B", "black universal recycling symbol"), + new Emoji("", "\u267F", "wheelchair symbol"), + new Emoji("", "\u2693", "anchor"), + new Emoji("", "\u26A0", "warning sign"), + new Emoji("", "\u26A1", "high voltage sign"), + new Emoji("", "\u26AA", "medium white circle"), + new Emoji("", "\u26AB", "medium black circle"), + new Emoji("", "\u26BD", "soccer ball"), + new Emoji("", "\u26BE", "baseball"), + new Emoji("", "\u26C4", "snowman without snow"), + new Emoji("", "\u26C5", "sun behind cloud"), + new Emoji("", "\u26CE", "ophiuchus"), + new Emoji("", "\u26D4", "no entry"), + new Emoji("", "\u26EA", "church"), + new Emoji("", "\u26F2", "fountain"), + new Emoji("", "\u26F3", "flag in hole"), + new Emoji("", "\u26F5", "sailboat"), + new Emoji("", "\u26FA", "tent"), + new Emoji("", "\u26FD", "fuel pump"), + new Emoji("", "\u2934", "arrow pointing rightwards then curving upwards"), + new Emoji("", "\u2935", "arrow pointing rightwards then curving downwards"), + new Emoji("", "\u2B05", "leftwards black arrow"), + new Emoji("", "\u2B06", "upwards black arrow"), + new Emoji("", "\u2B07", "downwards black arrow"), + new Emoji("", "\u2B1B", "black large square"), + new Emoji("", "\u2B1C", "white large square"), + new Emoji("", "\u2B50", "white medium star"), + new Emoji("", "\u2B55", "heavy large circle"), + new Emoji("", "\u3030", "wavy dash"), + new Emoji("", "\u303D", "part alternation mark"), + new Emoji("", "\u3297", "circled ideograph congratulation"), + new Emoji("", "\u3299", "circled ideograph secret"), + new Emoji(":mahjong:", "\uD83C\uDC04", "mahjong tile red dragon"), + new Emoji(":black_joker:", "\uD83C\uDCCF", "playing card black joker"), + new Emoji(":cyclone:", "\uD83C\uDF00", "cyclone"), + new Emoji(":foggy:", "\uD83C\uDF01", "foggy"), + new Emoji(":closed_umbrella:", "\uD83C\uDF02", "closed umbrella"), + new Emoji(":stars:", "\uD83C\uDF03", "night with stars"), + new Emoji(":sunrise_over_mountains:", "\uD83C\uDF04", "sunrise over mountains"), + new Emoji(":sunrise:", "\uD83C\uDF05", "sunrise"), + new Emoji(":city_sunset:", "\uD83C\uDF06", "cityscape at dusk"), + new Emoji(":city_sunrise:", "\uD83C\uDF07", "sunset over buildings"), + new Emoji(":rainbow:", "\uD83C\uDF08", "rainbow"), + new Emoji(":bridge_at_night:", "\uD83C\uDF09", "bridge at night"), + new Emoji(":ocean:", "\uD83C\uDF0A", "water wave"), + new Emoji(":volcano:", "\uD83C\uDF0B", "volcano"), + new Emoji(":milky_way:", "\uD83C\uDF0C", "milky way"), + new Emoji(":earth_asia:", "\uD83C\uDF0F", "earth globe asia-australia"), + new Emoji(":new_moon:", "\uD83C\uDF11", "new moon symbol"), + new Emoji(":first_quarter_moon:", "\uD83C\uDF13", "first quarter moon symbol"), + new Emoji(":waxing_gibbous_moon:", "\uD83C\uDF14", "waxing gibbous moon symbol"), + new Emoji(":full_moon:", "\uD83C\uDF15", "full moon symbol"), + new Emoji(":crescent_moon:", "\uD83C\uDF19", "crescent moon"), + new Emoji(":first_quarter_moon_with_face:", "\uD83C\uDF1B", "first quarter moon with face"), + new Emoji(":star2:", "\uD83C\uDF1F", "glowing star"), + new Emoji("", "\uD83C\uDF20", "shooting star"), + new Emoji(":chestnut:", "\uD83C\uDF30", "chestnut"), + new Emoji(":seedling:", "\uD83C\uDF31", "seedling"), + new Emoji(":palm_tree:", "\uD83C\uDF34", "palm tree"), + new Emoji(":cactus:", "\uD83C\uDF35", "cactus"), + new Emoji(":tulip:", "\uD83C\uDF37", "tulip"), + new Emoji(":cherry_blossom:", "\uD83C\uDF38", "cherry blossom"), + new Emoji(":rose:", "\uD83C\uDF39", "rose"), + new Emoji(":hibiscus:", "\uD83C\uDF3A", "hibiscus"), + new Emoji(":sunflower:", "\uD83C\uDF3B", "sunflower"), + new Emoji(":blossom:", "\uD83C\uDF3C", "blossom"), + new Emoji(":corn:", "\uD83C\uDF3D", "ear of maize"), + new Emoji(":ear_of_rice:", "\uD83C\uDF3E", "ear of rice"), + new Emoji(":herb:", "\uD83C\uDF3F", "herb"), + new Emoji(":four_leaf_clover:", "\uD83C\uDF40", "four leaf clover"), + new Emoji(":maple_leaf:", "\uD83C\uDF41", "maple leaf"), + new Emoji(":fallen_leaf:", "\uD83C\uDF42", "fallen leaf"), + new Emoji(":leaves:", "\uD83C\uDF43", "leaf fluttering in wind"), + new Emoji(":mushroom:", "\uD83C\uDF44", "mushroom"), + new Emoji(":tomato:", "\uD83C\uDF45", "tomato"), + new Emoji(":eggplant:", "\uD83C\uDF46", "aubergine"), + new Emoji(":grapes:", "\uD83C\uDF47", "grapes"), + new Emoji(":melon:", "\uD83C\uDF48", "melon"), + new Emoji(":watermelon:", "\uD83C\uDF49", "watermelon"), + new Emoji(":tangerine:", "\uD83C\uDF4A", "tangerine"), + new Emoji(":banana:", "\uD83C\uDF4C", "banana"), + new Emoji(":pineapple:", "\uD83C\uDF4D", "pineapple"), + new Emoji(":apple:", "\uD83C\uDF4E", "red apple"), + new Emoji(":green_apple:", "\uD83C\uDF4F", "green apple"), + new Emoji(":peach:", "\uD83C\uDF51", "peach"), + new Emoji(":cherries:", "\uD83C\uDF52", "cherries"), + new Emoji(":strawberry:", "\uD83C\uDF53", "strawberry"), + new Emoji(":hamburger:", "\uD83C\uDF54", "hamburger"), + new Emoji(":pizza:", "\uD83C\uDF55", "slice of pizza"), + new Emoji(":meat_on_bone:", "\uD83C\uDF56", "meat on bone"), + new Emoji(":poultry_leg:", "\uD83C\uDF57", "poultry leg"), + new Emoji(":rice_cracker:", "\uD83C\uDF58", "rice cracker"), + new Emoji(":rice_ball:", "\uD83C\uDF59", "rice ball"), + new Emoji(":rice:", "\uD83C\uDF5A", "cooked rice"), + new Emoji(":curry:", "\uD83C\uDF5B", "curry and rice"), + new Emoji(":ramen:", "\uD83C\uDF5C", "steaming bowl"), + new Emoji(":spaghetti:", "\uD83C\uDF5D", "spaghetti"), + new Emoji(":bread:", "\uD83C\uDF5E", "bread"), + new Emoji(":fries:", "\uD83C\uDF5F", "french fries"), + new Emoji(":sweet_potato:", "\uD83C\uDF60", "roasted sweet potato"), + new Emoji(":dango:", "\uD83C\uDF61", "dango"), + new Emoji(":oden:", "\uD83C\uDF62", "oden"), + new Emoji(":sushi:", "\uD83C\uDF63", "sushi"), + new Emoji(":fried_shrimp:", "\uD83C\uDF64", "fried shrimp"), + new Emoji(":fish_cake:", "\uD83C\uDF65", "fish cake with swirl design"), + new Emoji(":icecream:", "\uD83C\uDF66", "soft ice cream"), + new Emoji(":shaved_ice:", "\uD83C\uDF67", "shaved ice"), + new Emoji(":ice_cream:", "\uD83C\uDF68", "ice cream"), + new Emoji(":doughnut:", "\uD83C\uDF69", "doughnut"), + new Emoji(":cookie:", "\uD83C\uDF6A", "cookie"), + new Emoji(":chocolate_bar:", "\uD83C\uDF6B", "chocolate bar"), + new Emoji(":candy:", "\uD83C\uDF6C", "candy"), + new Emoji(":lollipop:", "\uD83C\uDF6D", "lollipop"), + new Emoji(":custard:", "\uD83C\uDF6E", "custard"), + new Emoji(":honey_pot:", "\uD83C\uDF6F", "honey pot"), + new Emoji(":cake:", "\uD83C\uDF70", "shortcake"), + new Emoji(":bento:", "\uD83C\uDF71", "bento box"), + new Emoji(":stew:", "\uD83C\uDF72", "pot of food"), + new Emoji(":egg:", "\uD83C\uDF73", "cooking"), + new Emoji(":fork_and_knife:", "\uD83C\uDF74", "fork and knife"), + new Emoji(":tea:", "\uD83C\uDF75", "teacup without handle"), + new Emoji(":sake:", "\uD83C\uDF76", "sake bottle and cup"), + new Emoji(":wine_glass:", "\uD83C\uDF77", "wine glass"), + new Emoji(":cocktail:", "\uD83C\uDF78", "cocktail glass"), + new Emoji(":tropical_drink:", "\uD83C\uDF79", "tropical drink"), + new Emoji(":beer:", "\uD83C\uDF7A", "beer mug"), + new Emoji(":beers:", "\uD83C\uDF7B", "clinking beer mugs"), + new Emoji(":ribbon:", "\uD83C\uDF80", "ribbon"), + new Emoji(":gift:", "\uD83C\uDF81", "wrapped present"), + new Emoji(":birthday:", "\uD83C\uDF82", "birthday cake"), + new Emoji(":jack_o_lantern:", "\uD83C\uDF83", "jack-o-lantern"), + new Emoji(":christmas_tree:", "\uD83C\uDF84", "christmas tree"), + new Emoji(":santa:", "\uD83C\uDF85", "father christmas"), + new Emoji(":fireworks:", "\uD83C\uDF86", "fireworks"), + new Emoji(":sparkler:", "\uD83C\uDF87", "firework sparkler"), + new Emoji(":balloon:", "\uD83C\uDF88", "balloon"), + new Emoji(":tada:", "\uD83C\uDF89", "party popper"), + new Emoji(":confetti_ball:", "\uD83C\uDF8A", "confetti ball"), + new Emoji(":tanabata_tree:", "\uD83C\uDF8B", "tanabata tree"), + new Emoji(":crossed_flags:", "\uD83C\uDF8C", "crossed flags"), + new Emoji(":bamboo:", "\uD83C\uDF8D", "pine decoration"), + new Emoji(":dolls:", "\uD83C\uDF8E", "japanese dolls"), + new Emoji(":flags:", "\uD83C\uDF8F", "carp streamer"), + new Emoji(":wind_chime:", "\uD83C\uDF90", "wind chime"), + new Emoji(":rice_scene:", "\uD83C\uDF91", "moon viewing ceremony"), + new Emoji(":school_satchel:", "\uD83C\uDF92", "school satchel"), + new Emoji(":mortar_board:", "\uD83C\uDF93", "graduation cap"), + new Emoji(":carousel_horse:", "\uD83C\uDFA0", "carousel horse"), + new Emoji(":ferris_wheel:", "\uD83C\uDFA1", "ferris wheel"), + new Emoji(":roller_coaster:", "\uD83C\uDFA2", "roller coaster"), + new Emoji(":fishing_pole_and_fish:", "\uD83C\uDFA3", "fishing pole and fish"), + new Emoji(":microphone:", "\uD83C\uDFA4", "microphone"), + new Emoji(":movie_camera:", "\uD83C\uDFA5", "movie camera"), + new Emoji(":cinema:", "\uD83C\uDFA6", "cinema"), + new Emoji(":headphones:", "\uD83C\uDFA7", "headphone"), + new Emoji(":art:", "\uD83C\uDFA8", "artist palette"), + new Emoji(":tophat:", "\uD83C\uDFA9", "top hat"), + new Emoji(":circus_tent:", "\uD83C\uDFAA", "circus tent"), + new Emoji(":ticket:", "\uD83C\uDFAB", "ticket"), + new Emoji(":clapper:", "\uD83C\uDFAC", "clapper board"), + new Emoji(":performing_arts:", "\uD83C\uDFAD", "performing arts"), + new Emoji(":video_game:", "\uD83C\uDFAE", "video game"), + new Emoji(":dart:", "\uD83C\uDFAF", "direct hit"), + new Emoji(":slot_machine:", "\uD83C\uDFB0", "slot machine"), + new Emoji(":8ball:", "\uD83C\uDFB1", "billiards"), + new Emoji(":game_die:", "\uD83C\uDFB2", "game die"), + new Emoji(":bowling:", "\uD83C\uDFB3", "bowling"), + new Emoji(":flower_playing_cards:", "\uD83C\uDFB4", "flower playing cards"), + new Emoji(":musical_note:", "\uD83C\uDFB5", "musical note"), + new Emoji(":notes:", "\uD83C\uDFB6", "multiple musical notes"), + new Emoji(":saxophone:", "\uD83C\uDFB7", "saxophone"), + new Emoji(":guitar:", "\uD83C\uDFB8", "guitar"), + new Emoji(":musical_keyboard:", "\uD83C\uDFB9", "musical keyboard"), + new Emoji(":trumpet:", "\uD83C\uDFBA", "trumpet"), + new Emoji(":violin:", "\uD83C\uDFBB", "violin"), + new Emoji(":musical_score:", "\uD83C\uDFBC", "musical score"), + new Emoji(":running_shirt_with_sash:", "\uD83C\uDFBD", "running shirt with sash"), + new Emoji(":tennis:", "\uD83C\uDFBE", "tennis racquet and ball"), + new Emoji(":ski:", "\uD83C\uDFBF", "ski and ski boot"), + new Emoji(":basketball:", "\uD83C\uDFC0", "basketball and hoop"), + new Emoji(":checkered_flag:", "\uD83C\uDFC1", "chequered flag"), + new Emoji(":snowboarder:", "\uD83C\uDFC2", "snowboarder"), + new Emoji(":running:", "\uD83C\uDFC3", "runner"), + new Emoji(":surfer:", "\uD83C\uDFC4", "surfer"), + new Emoji(":trophy:", "\uD83C\uDFC6", "trophy"), + new Emoji(":football:", "\uD83C\uDFC8", "american football"), + new Emoji(":swimmer:", "\uD83C\uDFCA", "swimmer"), + new Emoji(":house:", "\uD83C\uDFE0", "house building"), + new Emoji(":house_with_garden:", "\uD83C\uDFE1", "house with garden"), + new Emoji(":office:", "\uD83C\uDFE2", "office building"), + new Emoji(":post_office:", "\uD83C\uDFE3", "japanese post office"), + new Emoji(":hospital:", "\uD83C\uDFE5", "hospital"), + new Emoji(":bank:", "\uD83C\uDFE6", "bank"), + new Emoji(":atm:", "\uD83C\uDFE7", "automated teller machine"), + new Emoji(":hotel:", "\uD83C\uDFE8", "hotel"), + new Emoji(":love_hotel:", "\uD83C\uDFE9", "love hotel"), + new Emoji(":convenience_store:", "\uD83C\uDFEA", "convenience store"), + new Emoji(":school:", "\uD83C\uDFEB", "school"), + new Emoji(":department_store:", "\uD83C\uDFEC", "department store"), + new Emoji(":factory:", "\uD83C\uDFED", "factory"), + new Emoji(":lantern:", "\uD83C\uDFEE", "izakaya lantern"), + new Emoji(":japanese_castle:", "\uD83C\uDFEF", "japanese castle"), + new Emoji(":european_castle:", "\uD83C\uDFF0", "european castle"), + new Emoji(":snail:", "\uD83D\uDC0C", "snail"), + new Emoji(":snake:", "\uD83D\uDC0D", "snake"), + new Emoji(":racehorse:", "\uD83D\uDC0E", "horse"), + new Emoji(":sheep:", "\uD83D\uDC11", "sheep"), + new Emoji(":monkey:", "\uD83D\uDC12", "monkey"), + new Emoji(":chicken:", "\uD83D\uDC14", "chicken"), + new Emoji(":boar:", "\uD83D\uDC17", "boar"), + new Emoji(":elephant:", "\uD83D\uDC18", "elephant"), + new Emoji(":octopus:", "\uD83D\uDC19", "octopus"), + new Emoji(":shell:", "\uD83D\uDC1A", "spiral shell"), + new Emoji(":bug:", "\uD83D\uDC1B", "bug"), + new Emoji(":ant:", "\uD83D\uDC1C", "ant"), + new Emoji(":honeybee:", "\uD83D\uDC1D", "honeybee"), + new Emoji(":beetle:", "\uD83D\uDC1E", "lady beetle"), + new Emoji(":fish:", "\uD83D\uDC1F", "fish"), + new Emoji(":tropical_fish:", "\uD83D\uDC20", "tropical fish"), + new Emoji(":blowfish:", "\uD83D\uDC21", "blowfish"), + new Emoji(":turtle:", "\uD83D\uDC22", "turtle"), + new Emoji(":hatching_chick:", "\uD83D\uDC23", "hatching chick"), + new Emoji(":baby_chick:", "\uD83D\uDC24", "baby chick"), + new Emoji(":hatched_chick:", "\uD83D\uDC25", "front-facing baby chick"), + new Emoji(":bird:", "\uD83D\uDC26", "bird"), + new Emoji(":penguin:", "\uD83D\uDC27", "penguin"), + new Emoji(":koala:", "\uD83D\uDC28", "koala"), + new Emoji(":poodle:", "\uD83D\uDC29", "poodle"), + new Emoji(":camel:", "\uD83D\uDC2B", "bactrian camel"), + new Emoji(":flipper:", "\uD83D\uDC2C", "dolphin"), + new Emoji(":mouse:", "\uD83D\uDC2D", "mouse face"), + new Emoji(":cow:", "\uD83D\uDC2E", "cow face"), + new Emoji(":tiger:", "\uD83D\uDC2F", "tiger face"), + new Emoji(":rabbit:", "\uD83D\uDC30", "rabbit face"), + new Emoji(":cat:", "\uD83D\uDC31", "cat face"), + new Emoji(":dragon_face:", "\uD83D\uDC32", "dragon face"), + new Emoji(":whale:", "\uD83D\uDC33", "spouting whale"), + new Emoji(":horse:", "\uD83D\uDC34", "horse face"), + new Emoji(":monkey_face:", "\uD83D\uDC35", "monkey face"), + new Emoji(":dog:", "\uD83D\uDC36", "dog face"), + new Emoji(":pig:", "\uD83D\uDC37", "pig face"), + new Emoji(":frog:", "\uD83D\uDC38", "frog face"), + new Emoji(":hamster:", "\uD83D\uDC39", "hamster face"), + new Emoji(":wolf:", "\uD83D\uDC3A", "wolf face"), + new Emoji(":bear:", "\uD83D\uDC3B", "bear face"), + new Emoji(":panda_face:", "\uD83D\uDC3C", "panda face"), + new Emoji(":pig_nose:", "\uD83D\uDC3D", "pig nose"), + new Emoji(":paw_prints:", "\uD83D\uDC3E", "paw prints"), + new Emoji(":eyes:", "\uD83D\uDC40", "eyes"), + new Emoji(":ear:", "\uD83D\uDC42", "ear"), + new Emoji(":nose:", "\uD83D\uDC43", "nose"), + new Emoji(":lips:", "\uD83D\uDC44", "mouth"), + new Emoji(":tongue:", "\uD83D\uDC45", "tongue"), + new Emoji(":point_up_2:", "\uD83D\uDC46", "white up pointing backhand index"), + new Emoji(":point_down:", "\uD83D\uDC47", "white down pointing backhand index"), + new Emoji(":point_left:", "\uD83D\uDC48", "white left pointing backhand index"), + new Emoji(":point_right:", "\uD83D\uDC49", "white right pointing backhand index"), + new Emoji(":punch:", "\uD83D\uDC4A", "fisted hand sign"), + new Emoji(":wave:", "\uD83D\uDC4B", "waving hand sign"), + new Emoji(":ok_hand:", "\uD83D\uDC4C", "ok hand sign"), + new Emoji(":thumbsup:", "\uD83D\uDC4D", "thumbs up sign"), + new Emoji(":thumbsdown:", "\uD83D\uDC4E", "thumbs down sign"), + new Emoji(":clap:", "\uD83D\uDC4F", "clapping hands sign"), + new Emoji(":open_hands:", "\uD83D\uDC50", "open hands sign"), + new Emoji(":crown:", "\uD83D\uDC51", "crown"), + new Emoji(":womans_hat:", "\uD83D\uDC52", "womans hat"), + new Emoji(":eyeglasses:", "\uD83D\uDC53", "eyeglasses"), + new Emoji(":necktie:", "\uD83D\uDC54", "necktie"), + new Emoji(":tshirt:", "\uD83D\uDC55", "t-shirt"), + new Emoji(":jeans:", "\uD83D\uDC56", "jeans"), + new Emoji(":dress:", "\uD83D\uDC57", "dress"), + new Emoji(":kimono:", "\uD83D\uDC58", "kimono"), + new Emoji(":bikini:", "\uD83D\uDC59", "bikini"), + new Emoji(":womans_clothes:", "\uD83D\uDC5A", "womans clothes"), + new Emoji(":purse:", "\uD83D\uDC5B", "purse"), + new Emoji(":handbag:", "\uD83D\uDC5C", "handbag"), + new Emoji(":pouch:", "\uD83D\uDC5D", "pouch"), + new Emoji(":shoe:", "\uD83D\uDC5E", "mans shoe"), + new Emoji(":athletic_shoe:", "\uD83D\uDC5F", "athletic shoe"), + new Emoji(":high_heel:", "\uD83D\uDC60", "high-heeled shoe"), + new Emoji(":sandal:", "\uD83D\uDC61", "womans sandal"), + new Emoji(":boot:", "\uD83D\uDC62", "womans boots"), + new Emoji(":footprints:", "\uD83D\uDC63", "footprints"), + new Emoji(":bust_in_silhouette:", "\uD83D\uDC64", "bust in silhouette"), + new Emoji(":boy:", "\uD83D\uDC66", "boy"), + new Emoji(":girl:", "\uD83D\uDC67", "girl"), + new Emoji(":man:", "\uD83D\uDC68", "man"), + new Emoji(":woman:", "\uD83D\uDC69", "woman"), + new Emoji(":family:", "\uD83D\uDC6A", "family"), + new Emoji(":couple:", "\uD83D\uDC6B", "man and woman holding hands"), + new Emoji(":cop:", "\uD83D\uDC6E", "police officer"), + new Emoji(":dancers:", "\uD83D\uDC6F", "woman with bunny ears"), + new Emoji(":bride_with_veil:", "\uD83D\uDC70", "bride with veil"), + new Emoji(":person_with_blond_hair:", "\uD83D\uDC71", "person with blond hair"), + new Emoji(":man_with_gua_pi_mao:", "\uD83D\uDC72", "man with gua pi mao"), + new Emoji(":man_with_turban:", "\uD83D\uDC73", "man with turban"), + new Emoji(":older_man:", "\uD83D\uDC74", "older man"), + new Emoji(":older_woman:", "\uD83D\uDC75", "older woman"), + new Emoji(":baby:", "\uD83D\uDC76", "baby"), + new Emoji(":construction_worker:", "\uD83D\uDC77", "construction worker"), + new Emoji(":princess:", "\uD83D\uDC78", "princess"), + new Emoji(":japanese_ogre:", "\uD83D\uDC79", "japanese ogre"), + new Emoji(":japanese_goblin:", "\uD83D\uDC7A", "japanese goblin"), + new Emoji(":ghost:", "\uD83D\uDC7B", "ghost"), + new Emoji(":angel:", "\uD83D\uDC7C", "baby angel"), + new Emoji(":alien:", "\uD83D\uDC7D", "extraterrestrial alien"), + new Emoji(":space_invader:", "\uD83D\uDC7E", "alien monster"), + new Emoji(":imp:", "\uD83D\uDC7F", "imp"), + new Emoji(":skull:", "\uD83D\uDC80", "skull"), + new Emoji(":information_desk_person:", "\uD83D\uDC81", "information desk person"), + new Emoji(":guardsman:", "\uD83D\uDC82", "guardsman"), + new Emoji(":dancer:", "\uD83D\uDC83", "dancer"), + new Emoji(":lipstick:", "\uD83D\uDC84", "lipstick"), + new Emoji(":nail_care:", "\uD83D\uDC85", "nail polish"), + new Emoji(":massage:", "\uD83D\uDC86", "face massage"), + new Emoji(":haircut:", "\uD83D\uDC87", "haircut"), + new Emoji(":barber:", "\uD83D\uDC88", "barber pole"), + new Emoji(":syringe:", "\uD83D\uDC89", "syringe"), + new Emoji(":pill:", "\uD83D\uDC8A", "pill"), + new Emoji(":kiss:", "\uD83D\uDC8B", "kiss mark"), + new Emoji(":love_letter:", "\uD83D\uDC8C", "love letter"), + new Emoji(":ring:", "\uD83D\uDC8D", "ring"), + new Emoji(":gem:", "\uD83D\uDC8E", "gem stone"), + new Emoji(":couplekiss:", "\uD83D\uDC8F", "kiss"), + new Emoji(":bouquet:", "\uD83D\uDC90", "bouquet"), + new Emoji(":couple_with_heart:", "\uD83D\uDC91", "couple with heart"), + new Emoji(":wedding:", "\uD83D\uDC92", "wedding"), + new Emoji(":heartbeat:", "\uD83D\uDC93", "beating heart"), + new Emoji(":broken_heart:", "\uD83D\uDC94", "broken heart"), + new Emoji(":two_hearts:", "\uD83D\uDC95", "two hearts"), + new Emoji(":sparkling_heart:", "\uD83D\uDC96", "sparkling heart"), + new Emoji(":heartpulse:", "\uD83D\uDC97", "growing heart"), + new Emoji(":cupid:", "\uD83D\uDC98", "heart with arrow"), + new Emoji(":blue_heart:", "\uD83D\uDC99", "blue heart"), + new Emoji(":green_heart:", "\uD83D\uDC9A", "green heart"), + new Emoji(":yellow_heart:", "\uD83D\uDC9B", "yellow heart"), + new Emoji(":purple_heart:", "\uD83D\uDC9C", "purple heart"), + new Emoji(":gift_heart:", "\uD83D\uDC9D", "heart with ribbon"), + new Emoji(":revolving_hearts:", "\uD83D\uDC9E", "revolving hearts"), + new Emoji(":heart_decoration:", "\uD83D\uDC9F", "heart decoration"), + new Emoji(":diamond_shape_with_a_dot_inside:", "\uD83D\uDCA0", "diamond shape with a dot inside"), + new Emoji(":bulb:", "\uD83D\uDCA1", "electric light bulb"), + new Emoji(":anger:", "\uD83D\uDCA2", "anger symbol"), + new Emoji(":bomb:", "\uD83D\uDCA3", "bomb"), + new Emoji(":zzz:", "\uD83D\uDCA4", "sleeping symbol"), + new Emoji(":collision:", "\uD83D\uDCA5", "collision symbol"), + new Emoji(":sweat_drops:", "\uD83D\uDCA6", "splashing sweat symbol"), + new Emoji(":droplet:", "\uD83D\uDCA7", "droplet"), + new Emoji(":dash:", "\uD83D\uDCA8", "dash symbol"), + new Emoji(":shit:", "\uD83D\uDCA9", "pile of poo"), + new Emoji(":muscle:", "\uD83D\uDCAA", "flexed biceps"), + new Emoji(":dizzy:", "\uD83D\uDCAB", "dizzy symbol"), + new Emoji(":speech_balloon:", "\uD83D\uDCAC", "speech balloon"), + new Emoji(":white_flower:", "\uD83D\uDCAE", "white flower"), + new Emoji(":100:", "\uD83D\uDCAF", "hundred points symbol"), + new Emoji(":moneybag:", "\uD83D\uDCB0", "money bag"), + new Emoji(":currency_exchange:", "\uD83D\uDCB1", "currency exchange"), + new Emoji(":heavy_dollar_sign:", "\uD83D\uDCB2", "heavy dollar sign"), + new Emoji(":credit_card:", "\uD83D\uDCB3", "credit card"), + new Emoji(":yen:", "\uD83D\uDCB4", "banknote with yen sign"), + new Emoji(":dollar:", "\uD83D\uDCB5", "banknote with dollar sign"), + new Emoji(":money_with_wings:", "\uD83D\uDCB8", "money with wings"), + new Emoji(":chart:", "\uD83D\uDCB9", "chart with upwards trend and yen sign"), + new Emoji(":seat:", "\uD83D\uDCBA", "seat"), + new Emoji(":computer:", "\uD83D\uDCBB", "personal computer"), + new Emoji(":briefcase:", "\uD83D\uDCBC", "briefcase"), + new Emoji(":minidisc:", "\uD83D\uDCBD", "minidisc"), + new Emoji(":floppy_disk:", "\uD83D\uDCBE", "floppy disk"), + new Emoji(":cd:", "\uD83D\uDCBF", "optical disc"), + new Emoji(":dvd:", "\uD83D\uDCC0", "dvd"), + new Emoji(":file_folder:", "\uD83D\uDCC1", "file folder"), + new Emoji(":open_file_folder:", "\uD83D\uDCC2", "open file folder"), + new Emoji(":page_with_curl:", "\uD83D\uDCC3", "page with curl"), + new Emoji(":page_facing_up:", "\uD83D\uDCC4", "page facing up"), + new Emoji(":date:", "\uD83D\uDCC5", "calendar"), + new Emoji(":calendar:", "\uD83D\uDCC6", "tear-off calendar"), + new Emoji(":card_index:", "\uD83D\uDCC7", "card index"), + new Emoji(":chart_with_upwards_trend:", "\uD83D\uDCC8", "chart with upwards trend"), + new Emoji(":chart_with_downwards_trend:", "\uD83D\uDCC9", "chart with downwards trend"), + new Emoji(":bar_chart:", "\uD83D\uDCCA", "bar chart"), + new Emoji(":clipboard:", "\uD83D\uDCCB", "clipboard"), + new Emoji(":pushpin:", "\uD83D\uDCCC", "pushpin"), + new Emoji(":round_pushpin:", "\uD83D\uDCCD", "round pushpin"), + new Emoji(":paperclip:", "\uD83D\uDCCE", "paperclip"), + new Emoji(":straight_ruler:", "\uD83D\uDCCF", "straight ruler"), + new Emoji(":triangular_ruler:", "\uD83D\uDCD0", "triangular ruler"), + new Emoji(":bookmark_tabs:", "\uD83D\uDCD1", "bookmark tabs"), + new Emoji(":ledger:", "\uD83D\uDCD2", "ledger"), + new Emoji(":notebook:", "\uD83D\uDCD3", "notebook"), + new Emoji(":notebook_with_decorative_cover:", "\uD83D\uDCD4", "notebook with decorative cover"), + new Emoji(":closed_book:", "\uD83D\uDCD5", "closed book"), + new Emoji(":open_book:", "\uD83D\uDCD6", "open book"), + new Emoji(":green_book:", "\uD83D\uDCD7", "green book"), + new Emoji(":blue_book:", "\uD83D\uDCD8", "blue book"), + new Emoji(":orange_book:", "\uD83D\uDCD9", "orange book"), + new Emoji(":books:", "\uD83D\uDCDA", "books"), + new Emoji(":name_badge:", "\uD83D\uDCDB", "name badge"), + new Emoji(":scroll:", "\uD83D\uDCDC", "scroll"), + new Emoji(":pencil:", "\uD83D\uDCDD", "memo"), + new Emoji(":telephone_receiver:", "\uD83D\uDCDE", "telephone receiver"), + new Emoji(":pager:", "\uD83D\uDCDF", "pager"), + new Emoji(":fax:", "\uD83D\uDCE0", "fax machine"), + new Emoji(":satellite:", "\uD83D\uDCE1", "satellite antenna"), + new Emoji(":loudspeaker:", "\uD83D\uDCE2", "public address loudspeaker"), + new Emoji(":mega:", "\uD83D\uDCE3", "cheering megaphone"), + new Emoji(":outbox_tray:", "\uD83D\uDCE4", "outbox tray"), + new Emoji(":inbox_tray:", "\uD83D\uDCE5", "inbox tray"), + new Emoji(":package:", "\uD83D\uDCE6", "package"), + new Emoji(":e-mail:", "\uD83D\uDCE7", "e-mail symbol"), + new Emoji(":incoming_envelope:", "\uD83D\uDCE8", "incoming envelope"), + new Emoji(":envelope_with_arrow:", "\uD83D\uDCE9", "envelope with downwards arrow above"), + new Emoji(":mailbox_closed:", "\uD83D\uDCEA", "closed mailbox with lowered flag"), + new Emoji(":mailbox:", "\uD83D\uDCEB", "closed mailbox with raised flag"), + new Emoji(":postbox:", "\uD83D\uDCEE", "postbox"), + new Emoji(":newspaper:", "\uD83D\uDCF0", "newspaper"), + new Emoji(":iphone:", "\uD83D\uDCF1", "mobile phone"), + new Emoji(":calling:", "\uD83D\uDCF2", "mobile phone with rightwards arrow at left"), + new Emoji(":vibration_mode:", "\uD83D\uDCF3", "vibration mode"), + new Emoji(":mobile_phone_off:", "\uD83D\uDCF4", "mobile phone off"), + new Emoji(":signal_strength:", "\uD83D\uDCF6", "antenna with bars"), + new Emoji(":camera:", "\uD83D\uDCF7", "camera"), + new Emoji(":video_camera:", "\uD83D\uDCF9", "video camera"), + new Emoji(":tv:", "\uD83D\uDCFA", "television"), + new Emoji(":radio:", "\uD83D\uDCFB", "radio"), + new Emoji(":vhs:", "\uD83D\uDCFC", "videocassette"), + new Emoji(":arrows_clockwise:", "\uD83D\uDD03", "clockwise downwards and upwards open circle arrows"), + new Emoji(":speaker:", "\uD83D\uDD0A", "speaker with three sound waves"), + new Emoji(":battery:", "\uD83D\uDD0B", "battery"), + new Emoji(":electric_plug:", "\uD83D\uDD0C", "electric plug"), + new Emoji(":mag:", "\uD83D\uDD0D", "left-pointing magnifying glass"), + new Emoji(":mag_right:", "\uD83D\uDD0E", "right-pointing magnifying glass"), + new Emoji(":lock_with_ink_pen:", "\uD83D\uDD0F", "lock with ink pen"), + new Emoji(":closed_lock_with_key:", "\uD83D\uDD10", "closed lock with key"), + new Emoji(":key:", "\uD83D\uDD11", "key"), + new Emoji(":lock:", "\uD83D\uDD12", "lock"), + new Emoji(":unlock:", "\uD83D\uDD13", "open lock"), + new Emoji(":bell:", "\uD83D\uDD14", "bell"), + new Emoji(":bookmark:", "\uD83D\uDD16", "bookmark"), + new Emoji(":link:", "\uD83D\uDD17", "link symbol"), + new Emoji(":radio_button:", "\uD83D\uDD18", "radio button"), + new Emoji(":back:", "\uD83D\uDD19", "back with leftwards arrow above"), + new Emoji(":end:", "\uD83D\uDD1A", "end with leftwards arrow above"), + new Emoji(":on:", "\uD83D\uDD1B", "on with exclamation mark with left right arrow above"), + new Emoji(":soon:", "\uD83D\uDD1C", "soon with rightwards arrow above"), + new Emoji(":top:", "\uD83D\uDD1D", "top with upwards arrow above"), + new Emoji(":underage:", "\uD83D\uDD1E", "no one under eighteen symbol"), + new Emoji(":keycap_ten:", "\uD83D\uDD1F", "keycap ten"), + new Emoji(":capital_abcd:", "\uD83D\uDD20", "input symbol for latin capital letters"), + new Emoji(":abcd:", "\uD83D\uDD21", "input symbol for latin small letters"), + new Emoji(":1234:", "\uD83D\uDD22", "input symbol for numbers"), + new Emoji(":symbols:", "\uD83D\uDD23", "input symbol for symbols"), + new Emoji(":abc:", "\uD83D\uDD24", "input symbol for latin letters"), + new Emoji(":fire:", "\uD83D\uDD25", "fire"), + new Emoji(":flashlight:", "\uD83D\uDD26", "electric torch"), + new Emoji(":wrench:", "\uD83D\uDD27", "wrench"), + new Emoji(":hammer:", "\uD83D\uDD28", "hammer"), + new Emoji(":nut_and_bolt:", "\uD83D\uDD29", "nut and bolt"), + new Emoji(":hocho:", "\uD83D\uDD2A", "hocho"), + new Emoji(":gun:", "\uD83D\uDD2B", "pistol"), + new Emoji(":crystal_ball:", "\uD83D\uDD2E", "crystal ball"), + new Emoji(":six_pointed_star:", "\uD83D\uDD2F", "six pointed star with middle dot"), + new Emoji(":beginner:", "\uD83D\uDD30", "japanese symbol for beginner"), + new Emoji(":trident:", "\uD83D\uDD31", "trident emblem"), + new Emoji(":black_square_button:", "\uD83D\uDD32", "black square button"), + new Emoji(":white_square_button:", "\uD83D\uDD33", "white square button"), + new Emoji(":red_circle:", "\uD83D\uDD34", "large red circle"), + new Emoji(":large_blue_circle:", "\uD83D\uDD35", "large blue circle"), + new Emoji(":large_orange_diamond:", "\uD83D\uDD36", "large orange diamond"), + new Emoji(":large_blue_diamond:", "\uD83D\uDD37", "large blue diamond"), + new Emoji(":small_orange_diamond:", "\uD83D\uDD38", "small orange diamond"), + new Emoji(":small_blue_diamond:", "\uD83D\uDD39", "small blue diamond"), + new Emoji(":small_red_triangle:", "\uD83D\uDD3A", "up-pointing red triangle"), + new Emoji(":small_red_triangle_down:", "\uD83D\uDD3B", "down-pointing red triangle"), + new Emoji(":arrow_up_small:", "\uD83D\uDD3C", "up-pointing small red triangle"), + new Emoji(":arrow_down_small:", "\uD83D\uDD3D", "down-pointing small red triangle"), + new Emoji(":clock1:", "\uD83D\uDD50", "clock face one oclock"), + new Emoji(":clock2:", "\uD83D\uDD51", "clock face two oclock"), + new Emoji(":clock3:", "\uD83D\uDD52", "clock face three oclock"), + new Emoji(":clock4:", "\uD83D\uDD53", "clock face four oclock"), + new Emoji(":clock5:", "\uD83D\uDD54", "clock face five oclock"), + new Emoji(":clock6:", "\uD83D\uDD55", "clock face six oclock"), + new Emoji(":clock7:", "\uD83D\uDD56", "clock face seven oclock"), + new Emoji(":clock8:", "\uD83D\uDD57", "clock face eight oclock"), + new Emoji(":clock9:", "\uD83D\uDD58", "clock face nine oclock"), + new Emoji(":clock10:", "\uD83D\uDD59", "clock face ten oclock"), + new Emoji(":clock11:", "\uD83D\uDD5A", "clock face eleven oclock"), + new Emoji(":clock12:", "\uD83D\uDD5B", "clock face twelve oclock"), + new Emoji(":mount_fuji:", "\uD83D\uDDFB", "mount fuji"), + new Emoji(":tokyo_tower:", "\uD83D\uDDFC", "tokyo tower"), + new Emoji(":statue_of_liberty:", "\uD83D\uDDFD", "statue of liberty"), + new Emoji(":japan:", "\uD83D\uDDFE", "silhouette of japan"), + new Emoji(":moyai:", "\uD83D\uDDFF", "moyai"), + new Emoji(":earth_africa:", "\uD83C\uDF0D", "earth globe europe-africa"), + new Emoji(":earth_americas:", "\uD83C\uDF0E", "earth globe americas"), + new Emoji(":globe_with_meridians:", "\uD83C\uDF10", "globe with meridians"), + new Emoji(":waxing_crescent_moon:", "\uD83C\uDF12", "waxing crescent moon symbol"), + new Emoji(":waning_gibbous_moon:", "\uD83C\uDF16", "waning gibbous moon symbol"), + new Emoji(":last_quarter_moon:", "\uD83C\uDF17", "last quarter moon symbol"), + new Emoji(":waning_crescent_moon:", "\uD83C\uDF18", "waning crescent moon symbol"), + new Emoji(":new_moon_with_face:", "\uD83C\uDF1A", "new moon with face"), + new Emoji(":last_quarter_moon_with_face:", "\uD83C\uDF1C", "last quarter moon with face"), + new Emoji(":full_moon_with_face:", "\uD83C\uDF1D", "full moon with face"), + new Emoji(":sun_with_face:", "\uD83C\uDF1E", "sun with face"), + new Emoji(":evergreen_tree:", "\uD83C\uDF32", "evergreen tree"), + new Emoji(":deciduous_tree:", "\uD83C\uDF33", "deciduous tree"), + new Emoji(":lemon:", "\uD83C\uDF4B", "lemon"), + new Emoji(":pear:", "\uD83C\uDF50", "pear"), + new Emoji(":baby_bottle:", "\uD83C\uDF7C", "baby bottle"), + new Emoji(":horse_racing:", "\uD83C\uDFC7", "horse racing"), + new Emoji(":rugby_football:", "\uD83C\uDFC9", "rugby football"), + new Emoji(":european_post_office:", "\uD83C\uDFE4", "european post office"), + new Emoji(":rat:", "\uD83D\uDC00", "rat"), + new Emoji(":mouse2:", "\uD83D\uDC01", "mouse"), + new Emoji(":ox:", "\uD83D\uDC02", "ox"), + new Emoji(":water_buffalo:", "\uD83D\uDC03", "water buffalo"), + new Emoji(":cow2:", "\uD83D\uDC04", "cow"), + new Emoji(":tiger2:", "\uD83D\uDC05", "tiger"), + new Emoji(":leopard:", "\uD83D\uDC06", "leopard"), + new Emoji(":rabbit2:", "\uD83D\uDC07", "rabbit"), + new Emoji(":cat2:", "\uD83D\uDC08", "cat"), + new Emoji(":dragon:", "\uD83D\uDC09", "dragon"), + new Emoji(":crocodile:", "\uD83D\uDC0A", "crocodile"), + new Emoji(":whale2:", "\uD83D\uDC0B", "whale"), + new Emoji(":ram:", "\uD83D\uDC0F", "ram"), + new Emoji(":goat:", "\uD83D\uDC10", "goat"), + new Emoji(":rooster:", "\uD83D\uDC13", "rooster"), + new Emoji(":dog2:", "\uD83D\uDC15", "dog"), + new Emoji(":pig2:", "\uD83D\uDC16", "pig"), + new Emoji(":dromedary_camel:", "\uD83D\uDC2A", "dromedary camel"), + new Emoji(":busts_in_silhouette:", "\uD83D\uDC65", "busts in silhouette"), + new Emoji(":two_men_holding_hands:", "\uD83D\uDC6C", "two men holding hands"), + new Emoji(":two_women_holding_hands:", "\uD83D\uDC6D", "two women holding hands"), + new Emoji(":thought_balloon:", "\uD83D\uDCAD", "thought balloon"), + new Emoji(":euro:", "\uD83D\uDCB6", "banknote with euro sign"), + new Emoji(":pound:", "\uD83D\uDCB7", "banknote with pound sign"), + new Emoji(":mailbox_with_mail:", "\uD83D\uDCEC", "open mailbox with raised flag"), + new Emoji(":mailbox_with_no_mail:", "\uD83D\uDCED", "open mailbox with lowered flag"), + new Emoji(":postal_horn:", "\uD83D\uDCEF", "postal horn"), + new Emoji(":no_mobile_phones:", "\uD83D\uDCF5", "no mobile phones"), + new Emoji(":twisted_rightwards_arrows:", "\uD83D\uDD00", "twisted rightwards arrows"), + new Emoji(":repeat:", "\uD83D\uDD01", "clockwise rightwards and leftwards open circle arrows"), + new Emoji(":repeat_one:", "\uD83D\uDD02", "clockwise rightwards and leftwards open circle arrows with circled one overlay"), + new Emoji(":arrows_counterclockwise:", "\uD83D\uDD04", "anticlockwise downwards and upwards open circle arrows"), + new Emoji(":low_brightness:", "\uD83D\uDD05", "low brightness symbol"), + new Emoji(":high_brightness:", "\uD83D\uDD06", "high brightness symbol"), + new Emoji(":mute:", "\uD83D\uDD07", "speaker with cancellation stroke"), + new Emoji(":sound:", "\uD83D\uDD09", "speaker with one sound wave"), + new Emoji(":no_bell:", "\uD83D\uDD15", "bell with cancellation stroke"), + new Emoji(":microscope:", "\uD83D\uDD2C", "microscope"), + new Emoji(":telescope:", "\uD83D\uDD2D", "telescope"), + new Emoji(":clock130:", "\uD83D\uDD5C", "clock face one-thirty"), + new Emoji(":clock230:", "\uD83D\uDD5D", "clock face two-thirty"), + new Emoji(":clock330:", "\uD83D\uDD5E", "clock face three-thirty"), + new Emoji(":clock430:", "\uD83D\uDD5F", "clock face four-thirty"), + new Emoji(":clock530:", "\uD83D\uDD60", "clock face five-thirty"), + new Emoji(":clock630:", "\uD83D\uDD61", "clock face six-thirty"), + new Emoji(":clock730:", "\uD83D\uDD62", "clock face seven-thirty"), + new Emoji(":clock830:", "\uD83D\uDD63", "clock face eight-thirty"), + new Emoji(":clock930:", "\uD83D\uDD64", "clock face nine-thirty"), + new Emoji(":clock1030:", "\uD83D\uDD65", "clock face ten-thirty"), + new Emoji(":clock1130:", "\uD83D\uDD66", "clock face eleven-thirty"), + new Emoji(":clock1230:", "\uD83D\uDD67", "clock face twelve-thirty"), + }); + } +} diff --git a/srcs/juloo.keyboard2/EmojiGridView.java b/srcs/juloo.keyboard2/EmojiGridView.java new file mode 100644 index 0000000..f4d2d54 --- /dev/null +++ b/srcs/juloo.keyboard2/EmojiGridView.java @@ -0,0 +1,107 @@ +package juloo.keyboard2; + +import android.graphics.Typeface; +import android.view.Gravity; +import android.view.View; +import android.view.ViewGroup; +import android.widget.AdapterView; +import android.widget.BaseAdapter; +import android.widget.GridView; +import android.widget.TextView; + +public class EmojiGridView extends GridView + implements GridView.OnItemClickListener +{ + public static final int COLUMN_WIDTH = 192; + public static final int EMOJI_PANE_HEIGHT = 720; + public static final int EMOJI_PANE_BG = 0xFF191919; + public static final float EMOJI_SIZE = 32.f; + + public EmojiGridView(Keyboard2 context) + { + super(context); + setOnItemClickListener(this); + EmojiViewAdpater adpater = new EmojiViewAdpater(context); + adpater.setEmojiSet(Emoji.getEmojiByType(Emoji.TYPE_EMOTICONS)); + setColumnWidth(COLUMN_WIDTH); + setBackgroundColor(EMOJI_PANE_BG); + setAdapter(adpater); + } + + public void onItemClick(AdapterView parent, View v, int pos, long id) + { + System.out.println("Lol emoji: " + Emoji.getEmojiByType(Emoji.TYPE_EMOTICONS)[pos].getName()); + } + + @Override + public void onMeasure(int wSpec, int hSpec) + { + super.onMeasure(wSpec, hSpec); + setNumColumns(getMeasuredWidth() / COLUMN_WIDTH); + setMeasuredDimension(wSpec, EMOJI_PANE_HEIGHT); + } + + private static class EmojiView extends TextView + { + private static ViewGroup.LayoutParams _layoutParams = null; + + public EmojiView(Keyboard2 context) + { + super(context); + setTextSize(EMOJI_SIZE); + setGravity(Gravity.CENTER); + if (_layoutParams == null) + _layoutParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT); + setLayoutParams(_layoutParams); + } + + public void setEmoji(Emoji emoji) + { + setText(emoji.getBytecode()); + } + } + + private static class EmojiViewAdpater extends BaseAdapter + { + private Keyboard2 _main; + + private Emoji[] _emojiSet = null; + + public EmojiViewAdpater(Keyboard2 main) + { + _main = main; + } + + public void setEmojiSet(Emoji[] set) + { + _emojiSet = set; + } + + public int getCount() + { + if (_emojiSet == null) + return (0); + return (_emojiSet.length); + } + + public Object getItem(int pos) + { + return (_emojiSet[pos]); + } + + public long getItemId(int pos) + { + return (pos); + } + + public View getView(int pos, View convertView, ViewGroup parent) + { + EmojiView view = (EmojiView)convertView; + + if (view == null) + view = new EmojiView(_main); + view.setEmoji(_emojiSet[pos]); + return (view); + } + } +} diff --git a/srcs/juloo.keyboard2/Keyboard2.java b/srcs/juloo.keyboard2/Keyboard2.java index ab3c7c0..f38d41d 100644 --- a/srcs/juloo.keyboard2/Keyboard2.java +++ b/srcs/juloo.keyboard2/Keyboard2.java @@ -12,10 +12,14 @@ import android.view.KeyEvent; import android.view.View; import android.view.ViewGroup; +/* +** TODO: move config values in a Config object +*/ public class Keyboard2 extends InputMethodService implements SharedPreferences.OnSharedPreferenceChangeListener { - private Keyboard2View _inputView = null; + private Keyboard2View _keyboardView; + private ViewGroup _emojiPane = null; private KeyboardData _textKeyboard = null; private KeyboardData _numericKeyboard = null; @@ -26,34 +30,43 @@ public class Keyboard2 extends InputMethodService PreferenceManager.setDefaultValues(this, R.xml.settings, false); PreferenceManager.getDefaultSharedPreferences(this).registerOnSharedPreferenceChangeListener(this); updateConfig(); - _inputView = (Keyboard2View)getLayoutInflater().inflate(R.layout.input, null); - _inputView.reset_prefs(this); + _keyboardView = (Keyboard2View)getLayoutInflater().inflate(R.layout.keyboard, null); + _keyboardView.reset_prefs(this); + } + + private View getEmojiPane() + { + if (_emojiPane == null) + { + } + return (_emojiPane); } @Override public View onCreateInputView() { - ViewGroup parent = (ViewGroup)_inputView.getParent(); + // return (new EmojiGridView(this)); // TMP + ViewGroup parent = (ViewGroup)_keyboardView.getParent(); if (parent != null) - parent.removeView(_inputView); - return (_inputView); + parent.removeView(_keyboardView); + return (_keyboardView); } @Override public void onStartInputView(EditorInfo info, boolean restarting) { if ((info.inputType & InputType.TYPE_CLASS_NUMBER) != 0) - _inputView.setKeyboard(_numericKeyboard); + _keyboardView.setKeyboard(_numericKeyboard); else - _inputView.setKeyboard(_textKeyboard); + _keyboardView.setKeyboard(_textKeyboard); } @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { updateConfig(); - _inputView.reset_prefs(this); + _keyboardView.reset_prefs(this); } @Override @@ -64,7 +77,7 @@ public class Keyboard2 extends InputMethodService @Override public void onConfigurationChanged(Configuration newConfig) { - _inputView.reset(); + _keyboardView.reset(); } private void updateConfig() @@ -83,28 +96,31 @@ public class Keyboard2 extends InputMethodService public void handleKeyUp(KeyValue key, int flags) { + int eventCode = key.getEventCode(); + char keyChar = key.getChar(flags); + if (getCurrentInputConnection() == null) return ; - if (key.getEventCode() == KeyValue.EVENT_CONFIG) + if (eventCode == KeyValue.EVENT_CONFIG) { Intent intent = new Intent(this, SettingsActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); } - else if (key.getEventCode() == KeyValue.EVENT_SWITCH_TEXT) - _inputView.setKeyboard(_textKeyboard); - else if (key.getEventCode() == KeyValue.EVENT_SWITCH_NUMERIC) - _inputView.setKeyboard(_numericKeyboard); + else if (eventCode == KeyValue.EVENT_SWITCH_TEXT) + _keyboardView.setKeyboard(_textKeyboard); + else if (eventCode == KeyValue.EVENT_SWITCH_NUMERIC) + _keyboardView.setKeyboard(_numericKeyboard); else if ((flags & (KeyValue.FLAG_CTRL | KeyValue.FLAG_ALT)) != 0) handleMetaKeyUp(key, flags); - // else if (key.getEventCode() == KeyEvent.KEYCODE_DEL) + // else if (eventCode == KeyEvent.KEYCODE_DEL) // handleDelKey(1, 0); - // else if (key.getEventCode() == KeyEvent.KEYCODE_FORWARD_DEL) + // else if (eventCode == KeyEvent.KEYCODE_FORWARD_DEL) // handleDelKey(0, 1); - else if (key.getChar(flags) == KeyValue.CHAR_NONE && key.getEventCode() != KeyValue.EVENT_NONE) + else if (keyChar == KeyValue.CHAR_NONE && eventCode != KeyValue.EVENT_NONE) handleMetaKeyUp(key, flags); - else if (key.getChar(flags) != KeyValue.CHAR_NONE) - sendKeyChar(key.getChar(flags)); + else if (keyChar != KeyValue.CHAR_NONE) + sendKeyChar(keyChar); } // private void handleDelKey(int before, int after) diff --git a/srcs/juloo.keyboard2/Keyboard2View.java b/srcs/juloo.keyboard2/Keyboard2View.java index 4c7d131..9bb743a 100644 --- a/srcs/juloo.keyboard2/Keyboard2View.java +++ b/srcs/juloo.keyboard2/Keyboard2View.java @@ -412,7 +412,7 @@ public class Keyboard2View extends View canvas.drawText(k.getSymbol(_flags), x, y, right ? _keySubLabelRightPaint : _keySubLabelPaint); } - private class KeyDown + private static class KeyDown { public int pointerId; public KeyValue value;