From a8c2b1151f3a290af622389846d02701ee1d2b56 Mon Sep 17 00:00:00 2001 From: fourtf Date: Sat, 7 Jan 2017 20:43:55 +0100 Subject: [PATCH] added messages --- channel.cpp | 42 +- channel.h | 79 +- chatwidgetview.cpp | 2 +- emojidata.txt | 1820 +++++++++++++++++++++++++++++++++++++++++ emojis.cpp | 1931 +++----------------------------------------- emojis.h | 18 +- emotes.cpp | 4 +- emotes.h | 8 +- main.cpp | 1 + message.cpp | 122 ++- message.h | 20 +- resources.qrc | 1 + word.h | 41 +- 13 files changed, 2164 insertions(+), 1925 deletions(-) create mode 100644 emojidata.txt diff --git a/channel.cpp b/channel.cpp index 3fa4194b8..c96afe588 100644 --- a/channel.cpp +++ b/channel.cpp @@ -1,24 +1,23 @@ #include "channel.h" #include "message.h" -const Channel Channel::whispers = Channel(QString("/whispers")); -const Channel Channel::mentions = Channel(QString("/mentions")); +Channel Channel::whispers = Channel(QString("/whispers")); +Channel Channel::mentions = Channel(QString("/mentions")); QMap Channel::channels = QMap(); Channel::Channel(QString channel) : m_name((channel.length() > 0 && channel[0] == '#') ? channel.mid(1) : channel) + , m_bttvChannelEmotes() + , m_ffzChannelEmotes() + , m_messages() + , m_messageMutex() + , m_subLink("https://www.twitch.tv/" + m_name + "/subscribe?ref=in_chat_subscriber_link") + , m_channelLink("https://twitch.tv/" + m_name) + , m_popoutPlayerLink("https://player.twitch.tv/?channel=" + m_name) { - messageMutex = new QMutex(); - subLink = "https://www.twitch.tv/" + m_name + "/subscribe?ref=in_chat_subscriber_link"; - channelLink = "https://twitch.tv/" + m_name; - popoutPlayerLink = "https://player.twitch.tv/?channel=" + m_name; -} -//Channel::~Channel() -//{ -//// delete messages; -//} +} Channel* Channel::addChannel(const QString &channel) { @@ -69,26 +68,17 @@ void Channel::removeChannel(const QString &channel) } } -QString Channel::getSubLink() { return subLink ; } -QString Channel::getChannelLink() { return channelLink ; } -QString Channel::getPopoutPlayerLink() { return popoutPlayerLink ; } - -bool Channel::getIsLive() { return isLive ; } -int Channel::getStreamViewerCount() { return streamViewerCount; } -QString Channel::getStreamStatus() { return streamStatus ; } -QString Channel::getStreamGame() { return streamGame ; } - -QVector* Channel::getMessagesClone() +QVector Channel::getMessagesClone() { - messageMutex->lock(); - auto M = new QVector(*messages); - messageMutex->unlock(); + m_messageMutex.lock(); + QVector M = QVector(*m_messages); + m_messageMutex.unlock(); return M; } void Channel::addMessage(Message *message) { - messageMutex->lock(); + m_messageMutex.lock(); // messages - messageMutex->unlock(); + m_messageMutex.unlock(); } diff --git a/channel.h b/channel.h index daa734f4c..9f7bdab8a 100644 --- a/channel.h +++ b/channel.h @@ -1,64 +1,79 @@ #ifndef CHANNEL_H #define CHANNEL_H -#include "QString" -#include "QMap" -#include "QMutex" -#include "QVector" +#include "concurrentmap.h" +#include "lazyloadedimage.h" + +#include +#include +#include +#include class Message; class Channel { +// static + public: - static const Channel whispers; - static const Channel mentions; + static Channel whispers; + static Channel mentions; static Channel* addChannel(const QString &channel); static Channel* getChannel(const QString &channel); static void removeChannel(const QString &channel); - QString getSubLink(); - QString getChannelLink(); - QString getPopoutPlayerLink(); +private: + static QMap channels; - bool getIsLive(); - int getStreamViewerCount(); - QString getStreamStatus(); - QString getStreamGame(); +// members - const QString& name() const { - return m_name; - } +public: + // properties + const ConcurrentMap& bttvChannelEmotes() const { return m_bttvChannelEmotes; } + const ConcurrentMap& ffzChannelEmotes() const { return m_ffzChannelEmotes; } + const QMutex& messageMutex() const { return m_messageMutex; } + + const QString& name() const { return m_name; } + int roomID() const { return m_roomID; } + + const QString& subLink() const { return m_subLink; } + const QString& channelLink() const { return m_channelLink; } + const QString& popoutPlayerLink() const { return m_popoutPlayerLink; } + + bool isLive() const { return m_isLive; } + int streamViewerCount() const { return m_streamViewerCount; } + const QString& streamStatus() const { return m_streamStatus; } + const QString& streamGame() const { return m_streamGame; } + + // methods void addMessage(Message* message); -// ~Channel(); - QVector* getMessagesClone(); + QVector getMessagesClone(); private: Channel(QString channel); - QMutex* messageMutex; + ConcurrentMap m_bttvChannelEmotes; + ConcurrentMap m_ffzChannelEmotes; + QMutex m_messageMutex; - static QMap channels; + int m_referenceCount = 0; - int referenceCount = 1; + QVector m_messages; QString m_name; + int m_roomID; - int roomID; + QString m_subLink; + QString m_channelLink; + QString m_popoutPlayerLink; - QVector* messages = new QVector(); - - QString subLink = ""; - QString channelLink = ""; - QString popoutPlayerLink = ""; - - bool isLive = false; - int streamViewerCount = 0; - QString streamStatus = ""; - QString streamGame = ""; + bool m_isLive; + int m_streamViewerCount; + QString m_streamStatus; + QString m_streamGame; }; #endif // CHANNEL_H diff --git a/chatwidgetview.cpp b/chatwidgetview.cpp index 125880047..ef34cab80 100644 --- a/chatwidgetview.cpp +++ b/chatwidgetview.cpp @@ -30,5 +30,5 @@ void ChatWidgetView::paintEvent(QPaintEvent *) auto M = c->getMessagesClone(); - delete M; + } diff --git a/emojidata.txt b/emojidata.txt new file mode 100644 index 000000000..3b068dadb --- /dev/null +++ b/emojidata.txt @@ -0,0 +1,1820 @@ +100 1f4af +1234 1f522 +grinning 1f600 +grimacing 1f62c +grin 1f601 +joy 1f602 +smiley 1f603 +smile 1f604 +sweat_smile 1f605 +laughing 1f606 +innocent 1f607 +wink 1f609 +blush 1f60a +slight_smile 1f642 +upside_down 1f643 +relaxed 263a +yum 1f60b +relieved 1f60c +heart_eyes 1f60d +kissing_heart 1f618 +kissing 1f617 +kissing_smiling_eyes 1f619 +kissing_closed_eyes 1f61a +stuck_out_tongue_winking_eye 1f61c +stuck_out_tongue_closed_eyes 1f61d +stuck_out_tongue 1f61b +money_mouth 1f911 +nerd 1f913 +sunglasses 1f60e +hugging 1f917 +smirk 1f60f +no_mouth 1f636 +neutral_face 1f610 +expressionless 1f611 +unamused 1f612 +rolling_eyes 1f644 +thinking 1f914 +flushed 1f633 +disappointed 1f61e +worried 1f61f +angry 1f620 +rage 1f621 +pensive 1f614 +confused 1f615 +slight_frown 1f641 +frowning2 2639 +persevere 1f623 +confounded 1f616 +tired_face 1f62b +weary 1f629 +triumph 1f624 +open_mouth 1f62e +scream 1f631 +fearful 1f628 +cold_sweat 1f630 +hushed 1f62f +frowning 1f626 +anguished 1f627 +cry 1f622 +disappointed_relieved 1f625 +sleepy 1f62a +sweat 1f613 +sob 1f62d +dizzy_face 1f635 +astonished 1f632 +zipper_mouth 1f910 +mask 1f637 +thermometer_face 1f912 +head_bandage 1f915 +sleeping 1f634 +zzz 1f4a4 +poop 1f4a9 +smiling_imp 1f608 +imp 1f47f +japanese_ogre 1f479 +japanese_goblin 1f47a +skull 1f480 +ghost 1f47b +alien 1f47d +robot 1f916 +smiley_cat 1f63a +smile_cat 1f638 +joy_cat 1f639 +heart_eyes_cat 1f63b +smirk_cat 1f63c +kissing_cat 1f63d +scream_cat 1f640 +crying_cat_face 1f63f +pouting_cat 1f63e +raised_hands 1f64c +clap 1f44f +wave 1f44b +thumbsup 1f44d +thumbsdown 1f44e +punch 1f44a +fist 270a +v 270c +ok_hand 1f44c +raised_hand 270b +open_hands 1f450 +muscle 1f4aa +pray 1f64f +point_up 261d +point_up_2 1f446 +point_down 1f447 +point_left 1f448 +point_right 1f449 +middle_finger 1f595 +hand_splayed 1f590 +metal 1f918 +vulcan 1f596 +writing_hand 270d +nail_care 1f485 +lips 1f444 +tongue 1f445 +ear 1f442 +nose 1f443 +eye 1f441 +eyes 1f440 +bust_in_silhouette 1f464 +busts_in_silhouette 1f465 +speaking_head 1f5e3 +baby 1f476 +boy 1f466 +girl 1f467 +man 1f468 +woman 1f469 +person_with_blond_hair 1f471 +older_man 1f474 +older_woman 1f475 +man_with_gua_pi_mao 1f472 +man_with_turban 1f473 +cop 1f46e +construction_worker 1f477 +guardsman 1f482 +spy 1f575 +santa 1f385 +angel 1f47c +princess 1f478 +bride_with_veil 1f470 +walking 1f6b6 +runner 1f3c3 +dancer 1f483 +dancers 1f46f +couple 1f46b +two_men_holding_hands 1f46c +two_women_holding_hands 1f46d +bow 1f647 +information_desk_person 1f481 +no_good 1f645 +ok_woman 1f646 +raising_hand 1f64b +person_with_pouting_face 1f64e +person_frowning 1f64d +haircut 1f487 +massage 1f486 +couple_with_heart 1f491 +couple_ww 1f469-2764-1f469 +couple_mm 1f468-2764-1f468 +couplekiss 1f48f +kiss_ww 1f469-2764-1f48b-1f469 +kiss_mm 1f468-2764-1f48b-1f468 +family 1f46a +family_mwg 1f468-1f469-1f467 +family_mwgb 1f468-1f469-1f467-1f466 +family_mwbb 1f468-1f469-1f466-1f466 +family_mwgg 1f468-1f469-1f467-1f467 +family_wwb 1f469-1f469-1f466 +family_wwg 1f469-1f469-1f467 +family_wwgb 1f469-1f469-1f467-1f466 +family_wwbb 1f469-1f469-1f466-1f466 +family_wwgg 1f469-1f469-1f467-1f467 +family_mmb 1f468-1f468-1f466 +family_mmg 1f468-1f468-1f467 +family_mmgb 1f468-1f468-1f467-1f466 +family_mmbb 1f468-1f468-1f466-1f466 +family_mmgg 1f468-1f468-1f467-1f467 +womans_clothes 1f45a +shirt 1f455 +jeans 1f456 +necktie 1f454 +dress 1f457 +bikini 1f459 +kimono 1f458 +lipstick 1f484 +kiss 1f48b +footprints 1f463 +high_heel 1f460 +sandal 1f461 +boot 1f462 +mans_shoe 1f45e +athletic_shoe 1f45f +womans_hat 1f452 +tophat 1f3a9 +helmet_with_cross 26d1 +mortar_board 1f393 +crown 1f451 +school_satchel 1f392 +pouch 1f45d +purse 1f45b +handbag 1f45c +briefcase 1f4bc +eyeglasses 1f453 +dark_sunglasses 1f576 +ring 1f48d +closed_umbrella 1f302 +dog 1f436 +cat 1f431 +mouse 1f42d +hamster 1f439 +rabbit 1f430 +bear 1f43b +panda_face 1f43c +koala 1f428 +tiger 1f42f +lion_face 1f981 +cow 1f42e +pig 1f437 +pig_nose 1f43d +frog 1f438 +octopus 1f419 +monkey_face 1f435 +see_no_evil 1f648 +hear_no_evil 1f649 +speak_no_evil 1f64a +monkey 1f412 +chicken 1f414 +penguin 1f427 +bird 1f426 +baby_chick 1f424 +hatching_chick 1f423 +hatched_chick 1f425 +wolf 1f43a +boar 1f417 +horse 1f434 +unicorn 1f984 +bee 1f41d +bug 1f41b +snail 1f40c +beetle 1f41e +ant 1f41c +spider 1f577 +scorpion 1f982 +crab 1f980 +snake 1f40d +turtle 1f422 +tropical_fish 1f420 +fish 1f41f +blowfish 1f421 +dolphin 1f42c +whale 1f433 +whale2 1f40b +crocodile 1f40a +leopard 1f406 +tiger2 1f405 +water_buffalo 1f403 +ox 1f402 +cow2 1f404 +dromedary_camel 1f42a +camel 1f42b +elephant 1f418 +goat 1f410 +ram 1f40f +sheep 1f411 +racehorse 1f40e +pig2 1f416 +rat 1f400 +mouse2 1f401 +rooster 1f413 +turkey 1f983 +dove 1f54a +dog2 1f415 +poodle 1f429 +cat2 1f408 +rabbit2 1f407 +chipmunk 1f43f +feet 1f43e +dragon 1f409 +dragon_face 1f432 +cactus 1f335 +christmas_tree 1f384 +evergreen_tree 1f332 +deciduous_tree 1f333 +palm_tree 1f334 +seedling 1f331 +herb 1f33f +shamrock 2618 +four_leaf_clover 1f340 +bamboo 1f38d +tanabata_tree 1f38b +leaves 1f343 +fallen_leaf 1f342 +maple_leaf 1f341 +ear_of_rice 1f33e +hibiscus 1f33a +sunflower 1f33b +rose 1f339 +tulip 1f337 +blossom 1f33c +cherry_blossom 1f338 +bouquet 1f490 +mushroom 1f344 +chestnut 1f330 +jack_o_lantern 1f383 +shell 1f41a +spider_web 1f578 +earth_americas 1f30e +earth_africa 1f30d +earth_asia 1f30f +full_moon 1f315 +waning_gibbous_moon 1f316 +last_quarter_moon 1f317 +waning_crescent_moon 1f318 +new_moon 1f311 +waxing_crescent_moon 1f312 +first_quarter_moon 1f313 +waxing_gibbous_moon 1f314 +new_moon_with_face 1f31a +full_moon_with_face 1f31d +first_quarter_moon_with_face 1f31b +last_quarter_moon_with_face 1f31c +sun_with_face 1f31e +crescent_moon 1f319 +star 2b50 +star2 1f31f +dizzy 1f4ab +sparkles 2728 +comet 2604 +sunny 2600 +white_sun_small_cloud 1f324 +partly_sunny 26c5 +white_sun_cloud 1f325 +white_sun_rain_cloud 1f326 +cloud 2601 +cloud_rain 1f327 +thunder_cloud_rain 26c8 +cloud_lightning 1f329 +zap 26a1 +fire 1f525 +boom 1f4a5 +snowflake 2744 +cloud_snow 1f328 +snowman2 2603 +snowman 26c4 +wind_blowing_face 1f32c +dash 1f4a8 +cloud_tornado 1f32a +fog 1f32b +umbrella2 2602 +umbrella 2614 +droplet 1f4a7 +sweat_drops 1f4a6 +ocean 1f30a +green_apple 1f34f +apple 1f34e +pear 1f350 +tangerine 1f34a +lemon 1f34b +banana 1f34c +watermelon 1f349 +grapes 1f347 +strawberry 1f353 +melon 1f348 +cherries 1f352 +peach 1f351 +pineapple 1f34d +tomato 1f345 +eggplant 1f346 +hot_pepper 1f336 +corn 1f33d +sweet_potato 1f360 +honey_pot 1f36f +bread 1f35e +cheese 1f9c0 +poultry_leg 1f357 +meat_on_bone 1f356 +fried_shrimp 1f364 +cooking 1f373 +hamburger 1f354 +fries 1f35f +hotdog 1f32d +pizza 1f355 +spaghetti 1f35d +taco 1f32e +burrito 1f32f +ramen 1f35c +stew 1f372 +fish_cake 1f365 +sushi 1f363 +bento 1f371 +curry 1f35b +rice_ball 1f359 +rice 1f35a +rice_cracker 1f358 +oden 1f362 +dango 1f361 +shaved_ice 1f367 +ice_cream 1f368 +icecream 1f366 +cake 1f370 +birthday 1f382 +custard 1f36e +candy 1f36c +lollipop 1f36d +chocolate_bar 1f36b +popcorn 1f37f +doughnut 1f369 +cookie 1f36a +beer 1f37a +beers 1f37b +wine_glass 1f377 +cocktail 1f378 +tropical_drink 1f379 +champagne 1f37e +sake 1f376 +tea 1f375 +coffee 2615 +baby_bottle 1f37c +fork_and_knife 1f374 +fork_knife_plate 1f37d +soccer 26bd +basketball 1f3c0 +football 1f3c8 +baseball 26be +tennis 1f3be +volleyball 1f3d0 +rugby_football 1f3c9 +8ball 1f3b1 +golf 26f3 +golfer 1f3cc +ping_pong 1f3d3 +badminton 1f3f8 +hockey 1f3d2 +field_hockey 1f3d1 +cricket 1f3cf +ski 1f3bf +skier 26f7 +snowboarder 1f3c2 +ice_skate 26f8 +bow_and_arrow 1f3f9 +fishing_pole_and_fish 1f3a3 +rowboat 1f6a3 +swimmer 1f3ca +surfer 1f3c4 +bath 1f6c0 +basketball_player 26f9 +lifter 1f3cb +bicyclist 1f6b4 +mountain_bicyclist 1f6b5 +horse_racing 1f3c7 +levitate 1f574 +trophy 1f3c6 +running_shirt_with_sash 1f3bd +medal 1f3c5 +military_medal 1f396 +reminder_ribbon 1f397 +rosette 1f3f5 +ticket 1f3ab +tickets 1f39f +performing_arts 1f3ad +art 1f3a8 +circus_tent 1f3aa +microphone 1f3a4 +headphones 1f3a7 +musical_score 1f3bc +musical_keyboard 1f3b9 +saxophone 1f3b7 +trumpet 1f3ba +guitar 1f3b8 +violin 1f3bb +clapper 1f3ac +video_game 1f3ae +space_invader 1f47e +dart 1f3af +game_die 1f3b2 +slot_machine 1f3b0 +bowling 1f3b3 +red_car 1f697 +taxi 1f695 +blue_car 1f699 +bus 1f68c +trolleybus 1f68e +race_car 1f3ce +police_car 1f693 +ambulance 1f691 +fire_engine 1f692 +minibus 1f690 +truck 1f69a +articulated_lorry 1f69b +tractor 1f69c +motorcycle 1f3cd +bike 1f6b2 +rotating_light 1f6a8 +oncoming_police_car 1f694 +oncoming_bus 1f68d +oncoming_automobile 1f698 +oncoming_taxi 1f696 +aerial_tramway 1f6a1 +mountain_cableway 1f6a0 +suspension_railway 1f69f +railway_car 1f683 +train 1f68b +monorail 1f69d +bullettrain_side 1f684 +bullettrain_front 1f685 +light_rail 1f688 +mountain_railway 1f69e +steam_locomotive 1f682 +train2 1f686 +metro 1f687 +tram 1f68a +station 1f689 +helicopter 1f681 +airplane_small 1f6e9 +airplane 2708 +airplane_departure 1f6eb +airplane_arriving 1f6ec +sailboat 26f5 +motorboat 1f6e5 +speedboat 1f6a4 +ferry 26f4 +cruise_ship 1f6f3 +rocket 1f680 +satellite_orbital 1f6f0 +seat 1f4ba +anchor 2693 +construction 1f6a7 +fuelpump 26fd +busstop 1f68f +vertical_traffic_light 1f6a6 +traffic_light 1f6a5 +checkered_flag 1f3c1 +ship 1f6a2 +ferris_wheel 1f3a1 +roller_coaster 1f3a2 +carousel_horse 1f3a0 +construction_site 1f3d7 +foggy 1f301 +tokyo_tower 1f5fc +factory 1f3ed +fountain 26f2 +rice_scene 1f391 +mountain 26f0 +mountain_snow 1f3d4 +mount_fuji 1f5fb +volcano 1f30b +japan 1f5fe +camping 1f3d5 +tent 26fa +park 1f3de +motorway 1f6e3 +railway_track 1f6e4 +sunrise 1f305 +sunrise_over_mountains 1f304 +desert 1f3dc +beach 1f3d6 +island 1f3dd +city_sunset 1f307 +city_dusk 1f306 +cityscape 1f3d9 +night_with_stars 1f303 +bridge_at_night 1f309 +milky_way 1f30c +stars 1f320 +sparkler 1f387 +fireworks 1f386 +rainbow 1f308 +homes 1f3d8 +european_castle 1f3f0 +japanese_castle 1f3ef +stadium 1f3df +statue_of_liberty 1f5fd +house 1f3e0 +house_with_garden 1f3e1 +house_abandoned 1f3da +office 1f3e2 +department_store 1f3ec +post_office 1f3e3 +european_post_office 1f3e4 +hospital 1f3e5 +bank 1f3e6 +hotel 1f3e8 +convenience_store 1f3ea +school 1f3eb +love_hotel 1f3e9 +wedding 1f492 +classical_building 1f3db +church 26ea +mosque 1f54c +synagogue 1f54d +kaaba 1f54b +shinto_shrine 26e9 +watch 231a +iphone 1f4f1 +calling 1f4f2 +computer 1f4bb +keyboard 2328 +desktop 1f5a5 +printer 1f5a8 +mouse_three_button 1f5b1 +trackball 1f5b2 +joystick 1f579 +compression 1f5dc +minidisc 1f4bd +floppy_disk 1f4be +cd 1f4bf +dvd 1f4c0 +vhs 1f4fc +camera 1f4f7 +camera_with_flash 1f4f8 +video_camera 1f4f9 +movie_camera 1f3a5 +projector 1f4fd +film_frames 1f39e +telephone_receiver 1f4de +telephone 260e +pager 1f4df +fax 1f4e0 +tv 1f4fa +radio 1f4fb +microphone2 1f399 +level_slider 1f39a +control_knobs 1f39b +stopwatch 23f1 +timer 23f2 +alarm_clock 23f0 +clock 1f570 +hourglass_flowing_sand 23f3 +hourglass 231b +satellite 1f4e1 +battery 1f50b +electric_plug 1f50c +bulb 1f4a1 +flashlight 1f526 +candle 1f56f +wastebasket 1f5d1 +oil 1f6e2 +money_with_wings 1f4b8 +dollar 1f4b5 +yen 1f4b4 +euro 1f4b6 +pound 1f4b7 +moneybag 1f4b0 +credit_card 1f4b3 +gem 1f48e +scales 2696 +wrench 1f527 +hammer 1f528 +hammer_pick 2692 +tools 1f6e0 +pick 26cf +nut_and_bolt 1f529 +gear 2699 +chains 26d3 +gun 1f52b +bomb 1f4a3 +knife 1f52a +dagger 1f5e1 +crossed_swords 2694 +shield 1f6e1 +smoking 1f6ac +skull_crossbones 2620 +coffin 26b0 +urn 26b1 +amphora 1f3fa +crystal_ball 1f52e +prayer_beads 1f4ff +barber 1f488 +alembic 2697 +telescope 1f52d +microscope 1f52c +hole 1f573 +pill 1f48a +syringe 1f489 +thermometer 1f321 +label 1f3f7 +bookmark 1f516 +toilet 1f6bd +shower 1f6bf +bathtub 1f6c1 +key 1f511 +key2 1f5dd +couch 1f6cb +sleeping_accommodation 1f6cc +bed 1f6cf +door 1f6aa +bellhop 1f6ce +frame_photo 1f5bc +map 1f5fa +beach_umbrella 26f1 +moyai 1f5ff +shopping_bags 1f6cd +balloon 1f388 +flags 1f38f +ribbon 1f380 +gift 1f381 +confetti_ball 1f38a +tada 1f389 +dolls 1f38e +wind_chime 1f390 +crossed_flags 1f38c +izakaya_lantern 1f3ee +envelope 2709 +envelope_with_arrow 1f4e9 +incoming_envelope 1f4e8 +e-mail 1f4e7 +love_letter 1f48c +postbox 1f4ee +mailbox_closed 1f4ea +mailbox 1f4eb +mailbox_with_mail 1f4ec +mailbox_with_no_mail 1f4ed +package 1f4e6 +postal_horn 1f4ef +inbox_tray 1f4e5 +outbox_tray 1f4e4 +scroll 1f4dc +page_with_curl 1f4c3 +bookmark_tabs 1f4d1 +bar_chart 1f4ca +chart_with_upwards_trend 1f4c8 +chart_with_downwards_trend 1f4c9 +page_facing_up 1f4c4 +date 1f4c5 +calendar 1f4c6 +calendar_spiral 1f5d3 +card_index 1f4c7 +card_box 1f5c3 +ballot_box 1f5f3 +file_cabinet 1f5c4 +clipboard 1f4cb +notepad_spiral 1f5d2 +file_folder 1f4c1 +open_file_folder 1f4c2 +dividers 1f5c2 +newspaper2 1f5de +newspaper 1f4f0 +notebook 1f4d3 +closed_book 1f4d5 +green_book 1f4d7 +blue_book 1f4d8 +orange_book 1f4d9 +notebook_with_decorative_cover 1f4d4 +ledger 1f4d2 +books 1f4da +book 1f4d6 +link 1f517 +paperclip 1f4ce +paperclips 1f587 +scissors 2702 +triangular_ruler 1f4d0 +straight_ruler 1f4cf +pushpin 1f4cc +round_pushpin 1f4cd +triangular_flag_on_post 1f6a9 +flag_white 1f3f3 +flag_black 1f3f4 +closed_lock_with_key 1f510 +lock 1f512 +unlock 1f513 +lock_with_ink_pen 1f50f +pen_ballpoint 1f58a +pen_fountain 1f58b +black_nib 2712 +pencil 1f4dd +pencil2 270f +crayon 1f58d +paintbrush 1f58c +mag 1f50d +mag_right 1f50e +heart 2764 +yellow_heart 1f49b +green_heart 1f49a +blue_heart 1f499 +purple_heart 1f49c +broken_heart 1f494 +heart_exclamation 2763 +two_hearts 1f495 +revolving_hearts 1f49e +heartbeat 1f493 +heartpulse 1f497 +sparkling_heart 1f496 +cupid 1f498 +gift_heart 1f49d +heart_decoration 1f49f +peace 262e +cross 271d +star_and_crescent 262a +om_symbol 1f549 +wheel_of_dharma 2638 +star_of_david 2721 +six_pointed_star 1f52f +menorah 1f54e +yin_yang 262f +orthodox_cross 2626 +place_of_worship 1f6d0 +ophiuchus 26ce +aries 2648 +taurus 2649 +gemini 264a +cancer 264b +leo 264c +virgo 264d +libra 264e +scorpius 264f +sagittarius 2650 +capricorn 2651 +aquarius 2652 +pisces 2653 +id 1f194 +atom 269b +u7a7a 1f233 +u5272 1f239 +radioactive 2622 +biohazard 2623 +mobile_phone_off 1f4f4 +vibration_mode 1f4f3 +u6709 1f236 +u7121 1f21a +u7533 1f238 +u55b6 1f23a +u6708 1f237 +eight_pointed_black_star 2734 +vs 1f19a +accept 1f251 +white_flower 1f4ae +ideograph_advantage 1f250 +secret 3299 +congratulations 3297 +u5408 1f234 +u6e80 1f235 +u7981 1f232 +a 1f170 +b 1f171 +ab 1f18e +cl 1f191 +o2 1f17e +sos 1f198 +no_entry 26d4 +name_badge 1f4db +no_entry_sign 1f6ab +x 274c +o 2b55 +anger 1f4a2 +hotsprings 2668 +no_pedestrians 1f6b7 +do_not_litter 1f6af +no_bicycles 1f6b3 +non-potable_water 1f6b1 +underage 1f51e +no_mobile_phones 1f4f5 +exclamation 2757 +grey_exclamation 2755 +question 2753 +grey_question 2754 +bangbang 203c +interrobang 2049 +low_brightness 1f505 +high_brightness 1f506 +trident 1f531 +fleur-de-lis 269c +part_alternation_mark 303d +warning 26a0 +children_crossing 1f6b8 +beginner 1f530 +recycle 267b +u6307 1f22f +chart 1f4b9 +sparkle 2747 +eight_spoked_asterisk 2733 +negative_squared_cross_mark 274e +white_check_mark 2705 +diamond_shape_with_a_dot_inside 1f4a0 +cyclone 1f300 +loop 27bf +globe_with_meridians 1f310 +m 24c2 +atm 1f3e7 +sa 1f202 +passport_control 1f6c2 +customs 1f6c3 +baggage_claim 1f6c4 +left_luggage 1f6c5 +wheelchair 267f +no_smoking 1f6ad +wc 1f6be +parking 1f17f +potable_water 1f6b0 +mens 1f6b9 +womens 1f6ba +baby_symbol 1f6bc +restroom 1f6bb +put_litter_in_its_place 1f6ae +cinema 1f3a6 +signal_strength 1f4f6 +koko 1f201 +ng 1f196 +ok 1f197 +up 1f199 +cool 1f192 +new 1f195 +free 1f193 +#zero 30-20e3 +#one 31-20e3 +#two 32-20e3 +#three 33-20e3 +#four 34-20e3 +#five 35-20e3 +#six 36-20e3 +#seven 37-20e3 +#eight 38-20e3 +#nine 39-20e3 +keycap_ten 1f51f +arrow_forward 25b6 +pause_button 23f8 +play_pause 23ef +stop_button 23f9 +record_button 23fa +track_next 23ed +track_previous 23ee +fast_forward 23e9 +rewind 23ea +twisted_rightwards_arrows 1f500 +repeat 1f501 +repeat_one 1f502 +arrow_backward 25c0 +arrow_up_small 1f53c +arrow_down_small 1f53d +arrow_double_up 23eb +arrow_double_down 23ec +arrow_right 27a1 +arrow_left 2b05 +arrow_up 2b06 +arrow_down 2b07 +arrow_upper_right 2197 +arrow_lower_right 2198 +arrow_lower_left 2199 +arrow_upper_left 2196 +arrow_up_down 2195 +left_right_arrow 2194 +arrows_counterclockwise 1f504 +arrow_right_hook 21aa +leftwards_arrow_with_hook 21a9 +arrow_heading_up 2934 +arrow_heading_down 2935 +hash 23-20e3 +asterisk 2a-20e3 +information_source 2139 +abc 1f524 +abcd 1f521 +capital_abcd 1f520 +symbols 1f523 +musical_note 1f3b5 +notes 1f3b6 +wavy_dash 3030 +curly_loop 27b0 +heavy_check_mark 2714 +arrows_clockwise 1f503 +heavy_plus_sign 2795 +heavy_minus_sign 2796 +heavy_division_sign 2797 +heavy_multiplication_x 2716 +heavy_dollar_sign 1f4b2 +currency_exchange 1f4b1 +copyright a9 +registered ae +tm 2122 +end 1f51a +back 1f519 +on 1f51b +top 1f51d +soon 1f51c +ballot_box_with_check 2611 +radio_button 1f518 +white_circle 26aa +black_circle 26ab +red_circle 1f534 +large_blue_circle 1f535 +small_orange_diamond 1f538 +small_blue_diamond 1f539 +large_orange_diamond 1f536 +large_blue_diamond 1f537 +small_red_triangle 1f53a +black_small_square 25aa +white_small_square 25ab +black_large_square 2b1b +white_large_square 2b1c +small_red_triangle_down 1f53b +black_medium_square 25fc +white_medium_square 25fb +black_medium_small_square 25fe +white_medium_small_square 25fd +black_square_button 1f532 +white_square_button 1f533 +speaker 1f508 +sound 1f509 +loud_sound 1f50a +mute 1f507 +mega 1f4e3 +loudspeaker 1f4e2 +bell 1f514 +no_bell 1f515 +black_joker 1f0cf +mahjong 1f004 +spades 2660 +clubs 2663 +hearts 2665 +diamonds 2666 +flower_playing_cards 1f3b4 +thought_balloon 1f4ad +anger_right 1f5ef +speech_balloon 1f4ac +clock1 1f550 +clock2 1f551 +clock3 1f552 +clock4 1f553 +clock5 1f554 +clock6 1f555 +clock7 1f556 +clock8 1f557 +clock9 1f558 +clock10 1f559 +clock11 1f55a +clock12 1f55b +clock130 1f55c +clock230 1f55d +clock330 1f55e +clock430 1f55f +clock530 1f560 +clock630 1f561 +clock730 1f562 +clock830 1f563 +clock930 1f564 +clock1030 1f565 +clock1130 1f566 +clock1230 1f567 +eye_in_speech_bubble 1f441-1f5e8 +flag_ac 1f1e6-1f1e8 +flag_af 1f1e6-1f1eb +flag_al 1f1e6-1f1f1 +flag_dz 1f1e9-1f1ff +flag_ad 1f1e6-1f1e9 +flag_ao 1f1e6-1f1f4 +flag_ai 1f1e6-1f1ee +flag_ag 1f1e6-1f1ec +flag_ar 1f1e6-1f1f7 +flag_am 1f1e6-1f1f2 +flag_aw 1f1e6-1f1fc +flag_au 1f1e6-1f1fa +flag_at 1f1e6-1f1f9 +flag_az 1f1e6-1f1ff +flag_bs 1f1e7-1f1f8 +flag_bh 1f1e7-1f1ed +flag_bd 1f1e7-1f1e9 +flag_bb 1f1e7-1f1e7 +flag_by 1f1e7-1f1fe +flag_be 1f1e7-1f1ea +flag_bz 1f1e7-1f1ff +flag_bj 1f1e7-1f1ef +flag_bm 1f1e7-1f1f2 +flag_bt 1f1e7-1f1f9 +flag_bo 1f1e7-1f1f4 +flag_ba 1f1e7-1f1e6 +flag_bw 1f1e7-1f1fc +flag_br 1f1e7-1f1f7 +flag_bn 1f1e7-1f1f3 +flag_bg 1f1e7-1f1ec +flag_bf 1f1e7-1f1eb +flag_bi 1f1e7-1f1ee +flag_cv 1f1e8-1f1fb +flag_kh 1f1f0-1f1ed +flag_cm 1f1e8-1f1f2 +flag_ca 1f1e8-1f1e6 +flag_ky 1f1f0-1f1fe +flag_cf 1f1e8-1f1eb +flag_td 1f1f9-1f1e9 +flag_cl 1f1e8-1f1f1 +flag_cn 1f1e8-1f1f3 +flag_co 1f1e8-1f1f4 +flag_km 1f1f0-1f1f2 +flag_cg 1f1e8-1f1ec +flag_cd 1f1e8-1f1e9 +flag_cr 1f1e8-1f1f7 +flag_hr 1f1ed-1f1f7 +flag_cu 1f1e8-1f1fa +flag_cy 1f1e8-1f1fe +flag_cz 1f1e8-1f1ff +flag_dk 1f1e9-1f1f0 +flag_dj 1f1e9-1f1ef +flag_dm 1f1e9-1f1f2 +flag_do 1f1e9-1f1f4 +flag_ec 1f1ea-1f1e8 +flag_eg 1f1ea-1f1ec +flag_sv 1f1f8-1f1fb +flag_gq 1f1ec-1f1f6 +flag_er 1f1ea-1f1f7 +flag_ee 1f1ea-1f1ea +flag_et 1f1ea-1f1f9 +flag_fk 1f1eb-1f1f0 +flag_fo 1f1eb-1f1f4 +flag_fj 1f1eb-1f1ef +flag_fi 1f1eb-1f1ee +flag_fr 1f1eb-1f1f7 +flag_pf 1f1f5-1f1eb +flag_ga 1f1ec-1f1e6 +flag_gm 1f1ec-1f1f2 +flag_ge 1f1ec-1f1ea +flag_de 1f1e9-1f1ea +flag_gh 1f1ec-1f1ed +flag_gi 1f1ec-1f1ee +flag_gr 1f1ec-1f1f7 +flag_gl 1f1ec-1f1f1 +flag_gd 1f1ec-1f1e9 +flag_gu 1f1ec-1f1fa +flag_gt 1f1ec-1f1f9 +flag_gn 1f1ec-1f1f3 +flag_gw 1f1ec-1f1fc +flag_gy 1f1ec-1f1fe +flag_ht 1f1ed-1f1f9 +flag_hn 1f1ed-1f1f3 +flag_hk 1f1ed-1f1f0 +flag_hu 1f1ed-1f1fa +flag_is 1f1ee-1f1f8 +flag_in 1f1ee-1f1f3 +flag_id 1f1ee-1f1e9 +flag_ir 1f1ee-1f1f7 +flag_iq 1f1ee-1f1f6 +flag_ie 1f1ee-1f1ea +flag_il 1f1ee-1f1f1 +flag_it 1f1ee-1f1f9 +flag_ci 1f1e8-1f1ee +flag_jm 1f1ef-1f1f2 +flag_jp 1f1ef-1f1f5 +flag_je 1f1ef-1f1ea +flag_jo 1f1ef-1f1f4 +flag_kz 1f1f0-1f1ff +flag_ke 1f1f0-1f1ea +flag_ki 1f1f0-1f1ee +flag_xk 1f1fd-1f1f0 +flag_kw 1f1f0-1f1fc +flag_kg 1f1f0-1f1ec +flag_la 1f1f1-1f1e6 +flag_lv 1f1f1-1f1fb +flag_lb 1f1f1-1f1e7 +flag_ls 1f1f1-1f1f8 +flag_lr 1f1f1-1f1f7 +flag_ly 1f1f1-1f1fe +flag_li 1f1f1-1f1ee +flag_lt 1f1f1-1f1f9 +flag_lu 1f1f1-1f1fa +flag_mo 1f1f2-1f1f4 +flag_mk 1f1f2-1f1f0 +flag_mg 1f1f2-1f1ec +flag_mw 1f1f2-1f1fc +flag_my 1f1f2-1f1fe +flag_mv 1f1f2-1f1fb +flag_ml 1f1f2-1f1f1 +flag_mt 1f1f2-1f1f9 +flag_mh 1f1f2-1f1ed +flag_mr 1f1f2-1f1f7 +flag_mu 1f1f2-1f1fa +flag_mx 1f1f2-1f1fd +flag_fm 1f1eb-1f1f2 +flag_md 1f1f2-1f1e9 +flag_mc 1f1f2-1f1e8 +flag_mn 1f1f2-1f1f3 +flag_me 1f1f2-1f1ea +flag_ms 1f1f2-1f1f8 +flag_ma 1f1f2-1f1e6 +flag_mz 1f1f2-1f1ff +flag_mm 1f1f2-1f1f2 +flag_na 1f1f3-1f1e6 +flag_nr 1f1f3-1f1f7 +flag_np 1f1f3-1f1f5 +flag_nl 1f1f3-1f1f1 +flag_nc 1f1f3-1f1e8 +flag_nz 1f1f3-1f1ff +flag_ni 1f1f3-1f1ee +flag_ne 1f1f3-1f1ea +flag_ng 1f1f3-1f1ec +flag_nu 1f1f3-1f1fa +flag_kp 1f1f0-1f1f5 +flag_no 1f1f3-1f1f4 +flag_om 1f1f4-1f1f2 +flag_pk 1f1f5-1f1f0 +flag_pw 1f1f5-1f1fc +flag_ps 1f1f5-1f1f8 +flag_pa 1f1f5-1f1e6 +flag_pg 1f1f5-1f1ec +flag_py 1f1f5-1f1fe +flag_pe 1f1f5-1f1ea +flag_ph 1f1f5-1f1ed +flag_pl 1f1f5-1f1f1 +flag_pt 1f1f5-1f1f9 +flag_pr 1f1f5-1f1f7 +flag_qa 1f1f6-1f1e6 +flag_ro 1f1f7-1f1f4 +flag_ru 1f1f7-1f1fa +flag_rw 1f1f7-1f1fc +flag_sh 1f1f8-1f1ed +flag_kn 1f1f0-1f1f3 +flag_lc 1f1f1-1f1e8 +flag_vc 1f1fb-1f1e8 +flag_ws 1f1fc-1f1f8 +flag_sm 1f1f8-1f1f2 +flag_st 1f1f8-1f1f9 +flag_sa 1f1f8-1f1e6 +flag_sn 1f1f8-1f1f3 +flag_rs 1f1f7-1f1f8 +flag_sc 1f1f8-1f1e8 +flag_sl 1f1f8-1f1f1 +flag_sg 1f1f8-1f1ec +flag_sk 1f1f8-1f1f0 +flag_si 1f1f8-1f1ee +flag_sb 1f1f8-1f1e7 +flag_so 1f1f8-1f1f4 +flag_za 1f1ff-1f1e6 +flag_kr 1f1f0-1f1f7 +flag_es 1f1ea-1f1f8 +flag_lk 1f1f1-1f1f0 +flag_sd 1f1f8-1f1e9 +flag_sr 1f1f8-1f1f7 +flag_sz 1f1f8-1f1ff +flag_se 1f1f8-1f1ea +flag_ch 1f1e8-1f1ed +flag_sy 1f1f8-1f1fe +flag_tw 1f1f9-1f1fc +flag_tj 1f1f9-1f1ef +flag_tz 1f1f9-1f1ff +flag_th 1f1f9-1f1ed +flag_tl 1f1f9-1f1f1 +flag_tg 1f1f9-1f1ec +flag_to 1f1f9-1f1f4 +flag_tt 1f1f9-1f1f9 +flag_tn 1f1f9-1f1f3 +flag_tr 1f1f9-1f1f7 +flag_tm 1f1f9-1f1f2 +flag_tv 1f1f9-1f1fb +flag_ug 1f1fa-1f1ec +flag_ua 1f1fa-1f1e6 +flag_ae 1f1e6-1f1ea +flag_gb 1f1ec-1f1e7 +flag_us 1f1fa-1f1f8 +flag_vi 1f1fb-1f1ee +flag_uy 1f1fa-1f1fe +flag_uz 1f1fa-1f1ff +flag_vu 1f1fb-1f1fa +flag_va 1f1fb-1f1e6 +flag_ve 1f1fb-1f1ea +flag_vn 1f1fb-1f1f3 +flag_wf 1f1fc-1f1eb +flag_eh 1f1ea-1f1ed +flag_ye 1f1fe-1f1ea +flag_zm 1f1ff-1f1f2 +flag_zw 1f1ff-1f1fc +flag_re 1f1f7-1f1ea +flag_ax 1f1e6-1f1fd +flag_ta 1f1f9-1f1e6 +flag_io 1f1ee-1f1f4 +flag_bq 1f1e7-1f1f6 +flag_cx 1f1e8-1f1fd +flag_cc 1f1e8-1f1e8 +flag_gg 1f1ec-1f1ec +flag_im 1f1ee-1f1f2 +flag_yt 1f1fe-1f1f9 +flag_nf 1f1f3-1f1eb +flag_pn 1f1f5-1f1f3 +flag_bl 1f1e7-1f1f1 +flag_pm 1f1f5-1f1f2 +flag_gs 1f1ec-1f1f8 +flag_tk 1f1f9-1f1f0 +flag_bv 1f1e7-1f1fb +flag_hm 1f1ed-1f1f2 +flag_sj 1f1f8-1f1ef +flag_um 1f1fa-1f1f2 +flag_ic 1f1ee-1f1e8 +flag_ea 1f1ea-1f1e6 +flag_cp 1f1e8-1f1f5 +flag_dg 1f1e9-1f1ec +flag_as 1f1e6-1f1f8 +flag_aq 1f1e6-1f1f6 +flag_vg 1f1fb-1f1ec +flag_ck 1f1e8-1f1f0 +flag_cw 1f1e8-1f1fc +flag_eu 1f1ea-1f1fa +flag_gf 1f1ec-1f1eb +flag_tf 1f1f9-1f1eb +flag_gp 1f1ec-1f1f5 +flag_mq 1f1f2-1f1f6 +flag_mp 1f1f2-1f1f5 +flag_sx 1f1f8-1f1fd +flag_ss 1f1f8-1f1f8 +flag_tc 1f1f9-1f1e8 +flag_mf 1f1f2-1f1eb +raised_hands_tone1 1f64c-1f3fb +raised_hands_tone2 1f64c-1f3fc +raised_hands_tone3 1f64c-1f3fd +raised_hands_tone4 1f64c-1f3fe +raised_hands_tone5 1f64c-1f3ff +clap_tone1 1f44f-1f3fb +clap_tone2 1f44f-1f3fc +clap_tone3 1f44f-1f3fd +clap_tone4 1f44f-1f3fe +clap_tone5 1f44f-1f3ff +wave_tone1 1f44b-1f3fb +wave_tone2 1f44b-1f3fc +wave_tone3 1f44b-1f3fd +wave_tone4 1f44b-1f3fe +wave_tone5 1f44b-1f3ff +thumbsup_tone1 1f44d-1f3fb +thumbsup_tone2 1f44d-1f3fc +thumbsup_tone3 1f44d-1f3fd +thumbsup_tone4 1f44d-1f3fe +thumbsup_tone5 1f44d-1f3ff +thumbsdown_tone1 1f44e-1f3fb +thumbsdown_tone2 1f44e-1f3fc +thumbsdown_tone3 1f44e-1f3fd +thumbsdown_tone4 1f44e-1f3fe +thumbsdown_tone5 1f44e-1f3ff +punch_tone1 1f44a-1f3fb +punch_tone2 1f44a-1f3fc +punch_tone3 1f44a-1f3fd +punch_tone4 1f44a-1f3fe +punch_tone5 1f44a-1f3ff +fist_tone1 270a-1f3fb +fist_tone2 270a-1f3fc +fist_tone3 270a-1f3fd +fist_tone4 270a-1f3fe +fist_tone5 270a-1f3ff +v_tone1 270c-1f3fb +v_tone2 270c-1f3fc +v_tone3 270c-1f3fd +v_tone4 270c-1f3fe +v_tone5 270c-1f3ff +ok_hand_tone1 1f44c-1f3fb +ok_hand_tone2 1f44c-1f3fc +ok_hand_tone3 1f44c-1f3fd +ok_hand_tone4 1f44c-1f3fe +ok_hand_tone5 1f44c-1f3ff +raised_hand_tone1 270b-1f3fb +raised_hand_tone2 270b-1f3fc +raised_hand_tone3 270b-1f3fd +raised_hand_tone4 270b-1f3fe +raised_hand_tone5 270b-1f3ff +open_hands_tone1 1f450-1f3fb +open_hands_tone2 1f450-1f3fc +open_hands_tone3 1f450-1f3fd +open_hands_tone4 1f450-1f3fe +open_hands_tone5 1f450-1f3ff +muscle_tone1 1f4aa-1f3fb +muscle_tone2 1f4aa-1f3fc +muscle_tone3 1f4aa-1f3fd +muscle_tone4 1f4aa-1f3fe +muscle_tone5 1f4aa-1f3ff +pray_tone1 1f64f-1f3fb +pray_tone2 1f64f-1f3fc +pray_tone3 1f64f-1f3fd +pray_tone4 1f64f-1f3fe +pray_tone5 1f64f-1f3ff +point_up_tone1 261d-1f3fb +point_up_tone2 261d-1f3fc +point_up_tone3 261d-1f3fd +point_up_tone4 261d-1f3fe +point_up_tone5 261d-1f3ff +point_up_2_tone1 1f446-1f3fb +point_up_2_tone2 1f446-1f3fc +point_up_2_tone3 1f446-1f3fd +point_up_2_tone4 1f446-1f3fe +point_up_2_tone5 1f446-1f3ff +point_down_tone1 1f447-1f3fb +point_down_tone2 1f447-1f3fc +point_down_tone3 1f447-1f3fd +point_down_tone4 1f447-1f3fe +point_down_tone5 1f447-1f3ff +point_left_tone1 1f448-1f3fb +point_left_tone2 1f448-1f3fc +point_left_tone3 1f448-1f3fd +point_left_tone4 1f448-1f3fe +point_left_tone5 1f448-1f3ff +point_right_tone1 1f449-1f3fb +point_right_tone2 1f449-1f3fc +point_right_tone3 1f449-1f3fd +point_right_tone4 1f449-1f3fe +point_right_tone5 1f449-1f3ff +middle_finger_tone1 1f595-1f3fb +middle_finger_tone2 1f595-1f3fc +middle_finger_tone3 1f595-1f3fd +middle_finger_tone4 1f595-1f3fe +middle_finger_tone5 1f595-1f3ff +hand_splayed_tone1 1f590-1f3fb +hand_splayed_tone2 1f590-1f3fc +hand_splayed_tone3 1f590-1f3fd +hand_splayed_tone4 1f590-1f3fe +hand_splayed_tone5 1f590-1f3ff +metal_tone1 1f918-1f3fb +metal_tone2 1f918-1f3fc +metal_tone3 1f918-1f3fd +metal_tone4 1f918-1f3fe +metal_tone5 1f918-1f3ff +vulcan_tone1 1f596-1f3fb +vulcan_tone2 1f596-1f3fc +vulcan_tone3 1f596-1f3fd +vulcan_tone4 1f596-1f3fe +vulcan_tone5 1f596-1f3ff +writing_hand_tone1 270d-1f3fb +writing_hand_tone2 270d-1f3fc +writing_hand_tone3 270d-1f3fd +writing_hand_tone4 270d-1f3fe +writing_hand_tone5 270d-1f3ff +nail_care_tone1 1f485-1f3fb +nail_care_tone2 1f485-1f3fc +nail_care_tone3 1f485-1f3fd +nail_care_tone4 1f485-1f3fe +nail_care_tone5 1f485-1f3ff +ear_tone1 1f442-1f3fb +ear_tone2 1f442-1f3fc +ear_tone3 1f442-1f3fd +ear_tone4 1f442-1f3fe +ear_tone5 1f442-1f3ff +nose_tone1 1f443-1f3fb +nose_tone2 1f443-1f3fc +nose_tone3 1f443-1f3fd +nose_tone4 1f443-1f3fe +nose_tone5 1f443-1f3ff +baby_tone1 1f476-1f3fb +baby_tone2 1f476-1f3fc +baby_tone3 1f476-1f3fd +baby_tone4 1f476-1f3fe +baby_tone5 1f476-1f3ff +boy_tone1 1f466-1f3fb +boy_tone2 1f466-1f3fc +boy_tone3 1f466-1f3fd +boy_tone4 1f466-1f3fe +boy_tone5 1f466-1f3ff +girl_tone1 1f467-1f3fb +girl_tone2 1f467-1f3fc +girl_tone3 1f467-1f3fd +girl_tone4 1f467-1f3fe +girl_tone5 1f467-1f3ff +man_tone1 1f468-1f3fb +man_tone2 1f468-1f3fc +man_tone3 1f468-1f3fd +man_tone4 1f468-1f3fe +man_tone5 1f468-1f3ff +woman_tone1 1f469-1f3fb +woman_tone2 1f469-1f3fc +woman_tone3 1f469-1f3fd +woman_tone4 1f469-1f3fe +woman_tone5 1f469-1f3ff +person_with_blond_hair_tone1 1f471-1f3fb +person_with_blond_hair_tone2 1f471-1f3fc +person_with_blond_hair_tone3 1f471-1f3fd +person_with_blond_hair_tone4 1f471-1f3fe +person_with_blond_hair_tone5 1f471-1f3ff +older_man_tone1 1f474-1f3fb +older_man_tone2 1f474-1f3fc +older_man_tone3 1f474-1f3fd +older_man_tone4 1f474-1f3fe +older_man_tone5 1f474-1f3ff +older_woman_tone1 1f475-1f3fb +older_woman_tone2 1f475-1f3fc +older_woman_tone3 1f475-1f3fd +older_woman_tone4 1f475-1f3fe +older_woman_tone5 1f475-1f3ff +man_with_gua_pi_mao_tone1 1f472-1f3fb +man_with_gua_pi_mao_tone2 1f472-1f3fc +man_with_gua_pi_mao_tone3 1f472-1f3fd +man_with_gua_pi_mao_tone4 1f472-1f3fe +man_with_gua_pi_mao_tone5 1f472-1f3ff +man_with_turban_tone1 1f473-1f3fb +man_with_turban_tone2 1f473-1f3fc +man_with_turban_tone3 1f473-1f3fd +man_with_turban_tone4 1f473-1f3fe +man_with_turban_tone5 1f473-1f3ff +cop_tone1 1f46e-1f3fb +cop_tone2 1f46e-1f3fc +cop_tone3 1f46e-1f3fd +cop_tone4 1f46e-1f3fe +cop_tone5 1f46e-1f3ff +construction_worker_tone1 1f477-1f3fb +construction_worker_tone2 1f477-1f3fc +construction_worker_tone3 1f477-1f3fd +construction_worker_tone4 1f477-1f3fe +construction_worker_tone5 1f477-1f3ff +guardsman_tone1 1f482-1f3fb +guardsman_tone2 1f482-1f3fc +guardsman_tone3 1f482-1f3fd +guardsman_tone4 1f482-1f3fe +guardsman_tone5 1f482-1f3ff +santa_tone1 1f385-1f3fb +santa_tone2 1f385-1f3fc +santa_tone3 1f385-1f3fd +santa_tone4 1f385-1f3fe +santa_tone5 1f385-1f3ff +angel_tone1 1f47c-1f3fb +angel_tone2 1f47c-1f3fc +angel_tone3 1f47c-1f3fd +angel_tone4 1f47c-1f3fe +angel_tone5 1f47c-1f3ff +princess_tone1 1f478-1f3fb +princess_tone2 1f478-1f3fc +princess_tone3 1f478-1f3fd +princess_tone4 1f478-1f3fe +princess_tone5 1f478-1f3ff +bride_with_veil_tone1 1f470-1f3fb +bride_with_veil_tone2 1f470-1f3fc +bride_with_veil_tone3 1f470-1f3fd +bride_with_veil_tone4 1f470-1f3fe +bride_with_veil_tone5 1f470-1f3ff +walking_tone1 1f6b6-1f3fb +walking_tone2 1f6b6-1f3fc +walking_tone3 1f6b6-1f3fd +walking_tone4 1f6b6-1f3fe +walking_tone5 1f6b6-1f3ff +runner_tone1 1f3c3-1f3fb +runner_tone2 1f3c3-1f3fc +runner_tone3 1f3c3-1f3fd +runner_tone4 1f3c3-1f3fe +runner_tone5 1f3c3-1f3ff +dancer_tone1 1f483-1f3fb +dancer_tone2 1f483-1f3fc +dancer_tone3 1f483-1f3fd +dancer_tone4 1f483-1f3fe +dancer_tone5 1f483-1f3ff +bow_tone1 1f647-1f3fb +bow_tone2 1f647-1f3fc +bow_tone3 1f647-1f3fd +bow_tone4 1f647-1f3fe +bow_tone5 1f647-1f3ff +information_desk_person_tone1 1f481-1f3fb +information_desk_person_tone2 1f481-1f3fc +information_desk_person_tone3 1f481-1f3fd +information_desk_person_tone4 1f481-1f3fe +information_desk_person_tone5 1f481-1f3ff +no_good_tone1 1f645-1f3fb +no_good_tone2 1f645-1f3fc +no_good_tone3 1f645-1f3fd +no_good_tone4 1f645-1f3fe +no_good_tone5 1f645-1f3ff +ok_woman_tone1 1f646-1f3fb +ok_woman_tone2 1f646-1f3fc +ok_woman_tone3 1f646-1f3fd +ok_woman_tone4 1f646-1f3fe +ok_woman_tone5 1f646-1f3ff +raising_hand_tone1 1f64b-1f3fb +raising_hand_tone2 1f64b-1f3fc +raising_hand_tone3 1f64b-1f3fd +raising_hand_tone4 1f64b-1f3fe +raising_hand_tone5 1f64b-1f3ff +person_with_pouting_face_tone1 1f64e-1f3fb +person_with_pouting_face_tone2 1f64e-1f3fc +person_with_pouting_face_tone3 1f64e-1f3fd +person_with_pouting_face_tone4 1f64e-1f3fe +person_with_pouting_face_tone5 1f64e-1f3ff +person_frowning_tone1 1f64d-1f3fb +person_frowning_tone2 1f64d-1f3fc +person_frowning_tone3 1f64d-1f3fd +person_frowning_tone4 1f64d-1f3fe +person_frowning_tone5 1f64d-1f3ff +haircut_tone1 1f487-1f3fb +haircut_tone2 1f487-1f3fc +haircut_tone3 1f487-1f3fd +haircut_tone4 1f487-1f3fe +haircut_tone5 1f487-1f3ff +massage_tone1 1f486-1f3fb +massage_tone2 1f486-1f3fc +massage_tone3 1f486-1f3fd +massage_tone4 1f486-1f3fe +massage_tone5 1f486-1f3ff +rowboat_tone1 1f6a3-1f3fb +rowboat_tone2 1f6a3-1f3fc +rowboat_tone3 1f6a3-1f3fd +rowboat_tone4 1f6a3-1f3fe +rowboat_tone5 1f6a3-1f3ff +swimmer_tone1 1f3ca-1f3fb +swimmer_tone2 1f3ca-1f3fc +swimmer_tone3 1f3ca-1f3fd +swimmer_tone4 1f3ca-1f3fe +swimmer_tone5 1f3ca-1f3ff +surfer_tone1 1f3c4-1f3fb +surfer_tone2 1f3c4-1f3fc +surfer_tone3 1f3c4-1f3fd +surfer_tone4 1f3c4-1f3fe +surfer_tone5 1f3c4-1f3ff +bath_tone1 1f6c0-1f3fb +bath_tone2 1f6c0-1f3fc +bath_tone3 1f6c0-1f3fd +bath_tone4 1f6c0-1f3fe +bath_tone5 1f6c0-1f3ff +basketball_player_tone1 26f9-1f3fb +basketball_player_tone2 26f9-1f3fc +basketball_player_tone3 26f9-1f3fd +basketball_player_tone4 26f9-1f3fe +basketball_player_tone5 26f9-1f3ff +lifter_tone1 1f3cb-1f3fb +lifter_tone2 1f3cb-1f3fc +lifter_tone3 1f3cb-1f3fd +lifter_tone4 1f3cb-1f3fe +lifter_tone5 1f3cb-1f3ff +bicyclist_tone1 1f6b4-1f3fb +bicyclist_tone2 1f6b4-1f3fc +bicyclist_tone3 1f6b4-1f3fd +bicyclist_tone4 1f6b4-1f3fe +bicyclist_tone5 1f6b4-1f3ff +mountain_bicyclist_tone1 1f6b5-1f3fb +mountain_bicyclist_tone2 1f6b5-1f3fc +mountain_bicyclist_tone3 1f6b5-1f3fd +mountain_bicyclist_tone4 1f6b5-1f3fe +mountain_bicyclist_tone5 1f6b5-1f3ff +horse_racing_tone1 1f3c7-1f3fb +horse_racing_tone2 1f3c7-1f3fc +horse_racing_tone3 1f3c7-1f3fd +horse_racing_tone4 1f3c7-1f3fe +horse_racing_tone5 1f3c7-1f3ff +spy_tone1 1f575-1f3fb +spy_tone2 1f575-1f3fc +spy_tone3 1f575-1f3fd +spy_tone4 1f575-1f3fe +spy_tone5 1f575-1f3ff +tone1 1f3fb +tone2 1f3fc +tone3 1f3fd +tone4 1f3fe +tone5 1f3ff +prince_tone1 1f934-1f3fb +prince_tone2 1f934-1f3fc +prince_tone3 1f934-1f3fd +prince_tone4 1f934-1f3fe +prince_tone5 1f934-1f3ff +mrs_claus_tone1 1f936-1f3fb +mrs_claus_tone2 1f936-1f3fc +mrs_claus_tone3 1f936-1f3fd +mrs_claus_tone4 1f936-1f3fe +mrs_claus_tone5 1f936-1f3ff +man_in_tuxedo_tone1 1f935-1f3fb +man_in_tuxedo_tone2 1f935-1f3fc +man_in_tuxedo_tone3 1f935-1f3fd +man_in_tuxedo_tone4 1f935-1f3fe +man_in_tuxedo_tone5 1f935-1f3ff +shrug_tone1 1f937-1f3fb +shrug_tone2 1f937-1f3fc +shrug_tone3 1f937-1f3fd +shrug_tone4 1f937-1f3fe +shrug_tone5 1f937-1f3ff +face_palm_tone1 1f926-1f3fb +face_palm_tone2 1f926-1f3fc +face_palm_tone3 1f926-1f3fd +face_palm_tone4 1f926-1f3fe +face_palm_tone5 1f926-1f3ff +pregnant_woman_tone1 1f930-1f3fb +pregnant_woman_tone2 1f930-1f3fc +pregnant_woman_tone3 1f930-1f3fd +pregnant_woman_tone4 1f930-1f3fe +pregnant_woman_tone5 1f930-1f3ff +man_dancing_tone1 1f57a-1f3fb +man_dancing_tone2 1f57a-1f3fc +man_dancing_tone3 1f57a-1f3fd +man_dancing_tone4 1f57a-1f3fe +man_dancing_tone5 1f57a-1f3ff +selfie_tone1 1f933-1f3fb +selfie_tone2 1f933-1f3fc +selfie_tone3 1f933-1f3fd +selfie_tone4 1f933-1f3fe +selfie_tone5 1f933-1f3ff +fingers_crossed_tone1 1f91e-1f3fb +fingers_crossed_tone2 1f91e-1f3fc +fingers_crossed_tone3 1f91e-1f3fd +fingers_crossed_tone4 1f91e-1f3fe +fingers_crossed_tone5 1f91e-1f3ff +call_me_tone1 1f919-1f3fb +call_me_tone2 1f919-1f3fc +call_me_tone3 1f919-1f3fd +call_me_tone4 1f919-1f3fe +call_me_tone5 1f919-1f3ff +left_facing_fist_tone1 1f91b-1f3fb +left_facing_fist_tone2 1f91b-1f3fc +left_facing_fist_tone3 1f91b-1f3fd +left_facing_fist_tone4 1f91b-1f3fe +left_facing_fist_tone5 1f91b-1f3ff +right_facing_fist_tone1 1f91c-1f3fb +right_facing_fist_tone2 1f91c-1f3fc +right_facing_fist_tone3 1f91c-1f3fd +right_facing_fist_tone4 1f91c-1f3fe +right_facing_fist_tone5 1f91c-1f3ff +raised_back_of_hand_tone1 1f91a-1f3fb +raised_back_of_hand_tone2 1f91a-1f3fc +raised_back_of_hand_tone3 1f91a-1f3fd +raised_back_of_hand_tone4 1f91a-1f3fe +raised_back_of_hand_tone5 1f91a-1f3ff +handshake_tone1 1f91d-1f3fb +handshake_tone2 1f91d-1f3fc +handshake_tone3 1f91d-1f3fd +handshake_tone4 1f91d-1f3fe +handshake_tone5 1f91d-1f3ff +cartwheel_tone1 1f938-1f3fb +cartwheel_tone2 1f938-1f3fc +cartwheel_tone3 1f938-1f3fd +cartwheel_tone4 1f938-1f3fe +cartwheel_tone5 1f938-1f3ff +wrestlers_tone1 1f93c-1f3fb +wrestlers_tone2 1f93c-1f3fc +wrestlers_tone3 1f93c-1f3fd +wrestlers_tone4 1f93c-1f3fe +wrestlers_tone5 1f93c-1f3ff +water_polo_tone1 1f93d-1f3fb +water_polo_tone2 1f93d-1f3fc +water_polo_tone3 1f93d-1f3fd +water_polo_tone4 1f93d-1f3fe +water_polo_tone5 1f93d-1f3ff +handball_tone1 1f93e-1f3fb +handball_tone2 1f93e-1f3fc +handball_tone3 1f93e-1f3fd +handball_tone4 1f93e-1f3fe +handball_tone5 1f93e-1f3ff +juggling_tone1 1f939-1f3fb +juggling_tone2 1f939-1f3fc +juggling_tone3 1f939-1f3fd +juggling_tone4 1f939-1f3fe +juggling_tone5 1f939-1f3ff +speech_left 1f5e8 +eject 23cf +gay_pride_flag 1f3f3-1f308 +cowboy 1f920 +clown 1f921 +nauseated_face 1f922 +rofl 1f923 +drooling_face 1f924 +lying_face 1f925 +sneezing_face 1f927 +prince 1f934 +man_in_tuxedo 1f935 +mrs_claus 1f936 +face_palm 1f926 +shrug 1f937 +pregnant_woman 1f930 +selfie 1f933 +man_dancing 1f57a +call_me 1f919 +raised_back_of_hand 1f91a +left_facing_fist 1f91b +right_facing_fist 1f91c +handshake 1f91d +fingers_crossed 1f91e +black_heart 1f5a4 +eagle 1f985 +duck 1f986 +bat 1f987 +shark 1f988 +owl 1f989 +fox 1f98a +butterfly 1f98b +deer 1f98c +gorilla 1f98d +lizard 1f98e +rhino 1f98f +wilted_rose 1f940 +croissant 1f950 +avocado 1f951 +cucumber 1f952 +bacon 1f953 +potato 1f954 +carrot 1f955 +french_bread 1f956 +salad 1f957 +shallow_pan_of_food 1f958 +stuffed_flatbread 1f959 +champagne_glass 1f942 +tumbler_glass 1f943 +spoon 1f944 +octagonal_sign 1f6d1 +shopping_cart 1f6d2 +scooter 1f6f4 +motor_scooter 1f6f5 +canoe 1f6f6 +cartwheel 1f938 +juggling 1f939 +wrestlers 1f93c +boxing_glove 1f94a +martial_arts_uniform 1f94b +water_polo 1f93d +handball 1f93e +goal 1f945 +fencer 1f93a +first_place 1f947 +second_place 1f948 +third_place 1f949 +drum 1f941 +shrimp 1f990 +squid 1f991 +egg 1f95a +milk 1f95b +peanuts 1f95c +kiwi 1f95d +pancakes 1f95e +regional_indicator_z 1f1ff +regional_indicator_y 1f1fe +regional_indicator_x 1f1fd +regional_indicator_w 1f1fc +regional_indicator_v 1f1fb +regional_indicator_u 1f1fa +regional_indicator_t 1f1f9 +regional_indicator_s 1f1f8 +regional_indicator_r 1f1f7 +regional_indicator_q 1f1f6 +regional_indicator_p 1f1f5 +regional_indicator_o 1f1f4 +regional_indicator_n 1f1f3 +regional_indicator_m 1f1f2 +regional_indicator_l 1f1f1 +regional_indicator_k 1f1f0 +regional_indicator_j 1f1ef +regional_indicator_i 1f1ee +regional_indicator_h 1f1ed +regional_indicator_g 1f1ec +regional_indicator_f 1f1eb +regional_indicator_e 1f1ea +regional_indicator_d 1f1e9 +regional_indicator_c 1f1e8 +regional_indicator_b 1f1e7 +regional_indicator_a 1f1e6 diff --git a/emojis.cpp b/emojis.cpp index d0fc98226..637f9c5fd 100644 --- a/emojis.cpp +++ b/emojis.cpp @@ -1,1847 +1,114 @@ +#include +#include +#include + #include "emojis.h" +#include "emotes.h" QRegularExpression* Emojis::findShortCodesRegex = new QRegularExpression(":([-+\\w]+):"); -QMap* Emojis::shortCodeToEmoji = new QMap(); + +QMap* Emojis::shortCodeToEmoji = new QMap(); QMap* Emojis::emojiToShortCode = new QMap(); -QMap> firstEmojiChars = QMap>(); +QMap>* Emojis::firstEmojiChars = new QMap>(); -std::vector> Emojis::parseEmotes(const QString& value) +ConcurrentMap* Emojis::imageCache = new ConcurrentMap(); + +QString Emojis::replaceShortCodes(const QString &text) { +#warning "xD" + return text; +} +void Emojis::parseEmojis(std::vector>& vector, const QString& text) +{ + long lastSlice = 0; - return std::vector>(); + for (auto i = 0; i < text.length() - 1; i++) + { + if (!text.at(i).isLowSurrogate()) + { + auto iter = firstEmojiChars->find(text.at(i)); + + if (iter != firstEmojiChars->end()) + { + for (auto j = std::min(8, text.length() - i); j > 0; j--) + { + QString emojiString = text.mid(i, 2); + auto emojiIter = iter.value().find(emojiString); + + if (emojiIter != iter.value().end()) + { + QString url = "https://cdnjs.cloudflare.com/ajax/libs/emojione/2.2.6/assets/png/" + emojiIter.value() + ".png"; + + if (i - lastSlice != 0) + { + vector.push_back(std::tuple(NULL, text.mid(lastSlice, i - lastSlice))); + } + + vector.push_back(std::tuple(imageCache->getOrAdd(url, [&url]{ return new LazyLoadedImage(url, 0.35); }), QString())); + + i += j - 1; + + lastSlice = i + 1; + + break; + } + } + } + } + } + + if (lastSlice < text.length()) + { + vector.push_back(std::tuple(NULL, text.mid(lastSlice))); + } } void Emojis::initEmojis() { - shortCodeToEmoji->insert(QString("100"), QString("\U0001f4af")); - shortCodeToEmoji->insert(QString("1234"), QString("\U0001f522")); - shortCodeToEmoji->insert(QString("grinning"), QString("\U0001f600")); - shortCodeToEmoji->insert(QString("grimacing"), QString("\U0001f62c")); - shortCodeToEmoji->insert(QString("grin"), QString("\U0001f601")); - shortCodeToEmoji->insert(QString("joy"), QString("\U0001f602")); - shortCodeToEmoji->insert(QString("smiley"), QString("\U0001f603")); - shortCodeToEmoji->insert(QString("smile"), QString("\U0001f604")); - shortCodeToEmoji->insert(QString("sweat_smile"), QString("\U0001f605")); - shortCodeToEmoji->insert(QString("laughing"), QString("\U0001f606")); - shortCodeToEmoji->insert(QString("innocent"), QString("\U0001f607")); - shortCodeToEmoji->insert(QString("wink"), QString("\U0001f609")); - shortCodeToEmoji->insert(QString("blush"), QString("\U0001f60a")); - shortCodeToEmoji->insert(QString("slight_smile"), QString("\U0001f642")); - shortCodeToEmoji->insert(QString("upside_down"), QString("\U0001f643")); - shortCodeToEmoji->insert(QString("relaxed"), QString("\U0000263a")); - shortCodeToEmoji->insert(QString("yum"), QString("\U0001f60b")); - shortCodeToEmoji->insert(QString("relieved"), QString("\U0001f60c")); - shortCodeToEmoji->insert(QString("heart_eyes"), QString("\U0001f60d")); - shortCodeToEmoji->insert(QString("kissing_heart"), QString("\U0001f618")); - shortCodeToEmoji->insert(QString("kissing"), QString("\U0001f617")); - shortCodeToEmoji->insert(QString("kissing_smiling_eyes"), QString("\U0001f619")); - shortCodeToEmoji->insert(QString("kissing_closed_eyes"), QString("\U0001f61a")); - shortCodeToEmoji->insert(QString("stuck_out_tongue_winking_eye"), QString("\U0001f61c")); - shortCodeToEmoji->insert(QString("stuck_out_tongue_closed_eyes"), QString("\U0001f61d")); - shortCodeToEmoji->insert(QString("stuck_out_tongue"), QString("\U0001f61b")); - shortCodeToEmoji->insert(QString("money_mouth"), QString("\U0001f911")); - shortCodeToEmoji->insert(QString("nerd"), QString("\U0001f913")); - shortCodeToEmoji->insert(QString("sunglasses"), QString("\U0001f60e")); - shortCodeToEmoji->insert(QString("hugging"), QString("\U0001f917")); - shortCodeToEmoji->insert(QString("smirk"), QString("\U0001f60f")); - shortCodeToEmoji->insert(QString("no_mouth"), QString("\U0001f636")); - shortCodeToEmoji->insert(QString("neutral_face"), QString("\U0001f610")); - shortCodeToEmoji->insert(QString("expressionless"), QString("\U0001f611")); - shortCodeToEmoji->insert(QString("unamused"), QString("\U0001f612")); - shortCodeToEmoji->insert(QString("rolling_eyes"), QString("\U0001f644")); - shortCodeToEmoji->insert(QString("thinking"), QString("\U0001f914")); - shortCodeToEmoji->insert(QString("flushed"), QString("\U0001f633")); - shortCodeToEmoji->insert(QString("disappointed"), QString("\U0001f61e")); - shortCodeToEmoji->insert(QString("worried"), QString("\U0001f61f")); - shortCodeToEmoji->insert(QString("angry"), QString("\U0001f620")); - shortCodeToEmoji->insert(QString("rage"), QString("\U0001f621")); - shortCodeToEmoji->insert(QString("pensive"), QString("\U0001f614")); - shortCodeToEmoji->insert(QString("confused"), QString("\U0001f615")); - shortCodeToEmoji->insert(QString("slight_frown"), QString("\U0001f641")); - shortCodeToEmoji->insert(QString("frowning2"), QString("\U00002639")); - shortCodeToEmoji->insert(QString("persevere"), QString("\U0001f623")); - shortCodeToEmoji->insert(QString("confounded"), QString("\U0001f616")); - shortCodeToEmoji->insert(QString("tired_face"), QString("\U0001f62b")); - shortCodeToEmoji->insert(QString("weary"), QString("\U0001f629")); - shortCodeToEmoji->insert(QString("triumph"), QString("\U0001f624")); - shortCodeToEmoji->insert(QString("open_mouth"), QString("\U0001f62e")); - shortCodeToEmoji->insert(QString("scream"), QString("\U0001f631")); - shortCodeToEmoji->insert(QString("fearful"), QString("\U0001f628")); - shortCodeToEmoji->insert(QString("cold_sweat"), QString("\U0001f630")); - shortCodeToEmoji->insert(QString("hushed"), QString("\U0001f62f")); - shortCodeToEmoji->insert(QString("frowning"), QString("\U0001f626")); - shortCodeToEmoji->insert(QString("anguished"), QString("\U0001f627")); - shortCodeToEmoji->insert(QString("cry"), QString("\U0001f622")); - shortCodeToEmoji->insert(QString("disappointed_relieved"), QString("\U0001f625")); - shortCodeToEmoji->insert(QString("sleepy"), QString("\U0001f62a")); - shortCodeToEmoji->insert(QString("sweat"), QString("\U0001f613")); - shortCodeToEmoji->insert(QString("sob"), QString("\U0001f62d")); - shortCodeToEmoji->insert(QString("dizzy_face"), QString("\U0001f635")); - shortCodeToEmoji->insert(QString("astonished"), QString("\U0001f632")); - shortCodeToEmoji->insert(QString("zipper_mouth"), QString("\U0001f910")); - shortCodeToEmoji->insert(QString("mask"), QString("\U0001f637")); - shortCodeToEmoji->insert(QString("thermometer_face"), QString("\U0001f912")); - shortCodeToEmoji->insert(QString("head_bandage"), QString("\U0001f915")); - shortCodeToEmoji->insert(QString("sleeping"), QString("\U0001f634")); - shortCodeToEmoji->insert(QString("zzz"), QString("\U0001f4a4")); - shortCodeToEmoji->insert(QString("poop"), QString("\U0001f4a9")); - shortCodeToEmoji->insert(QString("smiling_imp"), QString("\U0001f608")); - shortCodeToEmoji->insert(QString("imp"), QString("\U0001f47f")); - shortCodeToEmoji->insert(QString("japanese_ogre"), QString("\U0001f479")); - shortCodeToEmoji->insert(QString("japanese_goblin"), QString("\U0001f47a")); - shortCodeToEmoji->insert(QString("skull"), QString("\U0001f480")); - shortCodeToEmoji->insert(QString("ghost"), QString("\U0001f47b")); - shortCodeToEmoji->insert(QString("alien"), QString("\U0001f47d")); - shortCodeToEmoji->insert(QString("robot"), QString("\U0001f916")); - shortCodeToEmoji->insert(QString("smiley_cat"), QString("\U0001f63a")); - shortCodeToEmoji->insert(QString("smile_cat"), QString("\U0001f638")); - shortCodeToEmoji->insert(QString("joy_cat"), QString("\U0001f639")); - shortCodeToEmoji->insert(QString("heart_eyes_cat"), QString("\U0001f63b")); - shortCodeToEmoji->insert(QString("smirk_cat"), QString("\U0001f63c")); - shortCodeToEmoji->insert(QString("kissing_cat"), QString("\U0001f63d")); - shortCodeToEmoji->insert(QString("scream_cat"), QString("\U0001f640")); - shortCodeToEmoji->insert(QString("crying_cat_face"), QString("\U0001f63f")); - shortCodeToEmoji->insert(QString("pouting_cat"), QString("\U0001f63e")); - shortCodeToEmoji->insert(QString("raised_hands"), QString("\U0001f64c")); - shortCodeToEmoji->insert(QString("clap"), QString("\U0001f44f")); - shortCodeToEmoji->insert(QString("wave"), QString("\U0001f44b")); - shortCodeToEmoji->insert(QString("thumbsup"), QString("\U0001f44d")); - shortCodeToEmoji->insert(QString("thumbsdown"), QString("\U0001f44e")); - shortCodeToEmoji->insert(QString("punch"), QString("\U0001f44a")); - shortCodeToEmoji->insert(QString("fist"), QString("\U0000270a")); - shortCodeToEmoji->insert(QString("v"), QString("\U0000270c")); - shortCodeToEmoji->insert(QString("ok_hand"), QString("\U0001f44c")); - shortCodeToEmoji->insert(QString("raised_hand"), QString("\U0000270b")); - shortCodeToEmoji->insert(QString("open_hands"), QString("\U0001f450")); - shortCodeToEmoji->insert(QString("muscle"), QString("\U0001f4aa")); - shortCodeToEmoji->insert(QString("pray"), QString("\U0001f64f")); - shortCodeToEmoji->insert(QString("point_up"), QString("\U0000261d")); - shortCodeToEmoji->insert(QString("point_up_2"), QString("\U0001f446")); - shortCodeToEmoji->insert(QString("point_down"), QString("\U0001f447")); - shortCodeToEmoji->insert(QString("point_left"), QString("\U0001f448")); - shortCodeToEmoji->insert(QString("point_right"), QString("\U0001f449")); - shortCodeToEmoji->insert(QString("middle_finger"), QString("\U0001f595")); - shortCodeToEmoji->insert(QString("hand_splayed"), QString("\U0001f590")); - shortCodeToEmoji->insert(QString("metal"), QString("\U0001f918")); - shortCodeToEmoji->insert(QString("vulcan"), QString("\U0001f596")); - shortCodeToEmoji->insert(QString("writing_hand"), QString("\U0000270d")); - shortCodeToEmoji->insert(QString("nail_care"), QString("\U0001f485")); - shortCodeToEmoji->insert(QString("lips"), QString("\U0001f444")); - shortCodeToEmoji->insert(QString("tongue"), QString("\U0001f445")); - shortCodeToEmoji->insert(QString("ear"), QString("\U0001f442")); - shortCodeToEmoji->insert(QString("nose"), QString("\U0001f443")); - shortCodeToEmoji->insert(QString("eye"), QString("\U0001f441")); - shortCodeToEmoji->insert(QString("eyes"), QString("\U0001f440")); - shortCodeToEmoji->insert(QString("bust_in_silhouette"), QString("\U0001f464")); - shortCodeToEmoji->insert(QString("busts_in_silhouette"), QString("\U0001f465")); - shortCodeToEmoji->insert(QString("speaking_head"), QString("\U0001f5e3")); - shortCodeToEmoji->insert(QString("baby"), QString("\U0001f476")); - shortCodeToEmoji->insert(QString("boy"), QString("\U0001f466")); - shortCodeToEmoji->insert(QString("girl"), QString("\U0001f467")); - shortCodeToEmoji->insert(QString("man"), QString("\U0001f468")); - shortCodeToEmoji->insert(QString("woman"), QString("\U0001f469")); - shortCodeToEmoji->insert(QString("person_with_blond_hair"), QString("\U0001f471")); - shortCodeToEmoji->insert(QString("older_man"), QString("\U0001f474")); - shortCodeToEmoji->insert(QString("older_woman"), QString("\U0001f475")); - shortCodeToEmoji->insert(QString("man_with_gua_pi_mao"), QString("\U0001f472")); - shortCodeToEmoji->insert(QString("man_with_turban"), QString("\U0001f473")); - shortCodeToEmoji->insert(QString("cop"), QString("\U0001f46e")); - shortCodeToEmoji->insert(QString("construction_worker"), QString("\U0001f477")); - shortCodeToEmoji->insert(QString("guardsman"), QString("\U0001f482")); - shortCodeToEmoji->insert(QString("spy"), QString("\U0001f575")); - shortCodeToEmoji->insert(QString("santa"), QString("\U0001f385")); - shortCodeToEmoji->insert(QString("angel"), QString("\U0001f47c")); - shortCodeToEmoji->insert(QString("princess"), QString("\U0001f478")); - shortCodeToEmoji->insert(QString("bride_with_veil"), QString("\U0001f470")); - shortCodeToEmoji->insert(QString("walking"), QString("\U0001f6b6")); - shortCodeToEmoji->insert(QString("runner"), QString("\U0001f3c3")); - shortCodeToEmoji->insert(QString("dancer"), QString("\U0001f483")); - shortCodeToEmoji->insert(QString("dancers"), QString("\U0001f46f")); - shortCodeToEmoji->insert(QString("couple"), QString("\U0001f46b")); - shortCodeToEmoji->insert(QString("two_men_holding_hands"), QString("\U0001f46c")); - shortCodeToEmoji->insert(QString("two_women_holding_hands"), QString("\U0001f46d")); - shortCodeToEmoji->insert(QString("bow"), QString("\U0001f647")); - shortCodeToEmoji->insert(QString("information_desk_person"), QString("\U0001f481")); - shortCodeToEmoji->insert(QString("no_good"), QString("\U0001f645")); - shortCodeToEmoji->insert(QString("ok_woman"), QString("\U0001f646")); - shortCodeToEmoji->insert(QString("raising_hand"), QString("\U0001f64b")); - shortCodeToEmoji->insert(QString("person_with_pouting_face"), QString("\U0001f64e")); - shortCodeToEmoji->insert(QString("person_frowning"), QString("\U0001f64d")); - shortCodeToEmoji->insert(QString("haircut"), QString("\U0001f487")); - shortCodeToEmoji->insert(QString("massage"), QString("\U0001f486")); - shortCodeToEmoji->insert(QString("couple_with_heart"), QString("\U0001f491")); - shortCodeToEmoji->insert(QString("couple_ww"), QString("\U0001f469\U00002764\U0001f469")); - shortCodeToEmoji->insert(QString("couple_mm"), QString("\U0001f468\U00002764\U0001f468")); - shortCodeToEmoji->insert(QString("couplekiss"), QString("\U0001f48f")); - shortCodeToEmoji->insert(QString("kiss_ww"), QString("\U0001f469\U00002764\U0001f48b\U0001f469")); - shortCodeToEmoji->insert(QString("kiss_mm"), QString("\U0001f468\U00002764\U0001f48b\U0001f468")); - shortCodeToEmoji->insert(QString("family"), QString("\U0001f46a")); - shortCodeToEmoji->insert(QString("family_mwg"), QString("\U0001f468\U0001f469\U0001f467")); - shortCodeToEmoji->insert(QString("family_mwgb"), QString("\U0001f468\U0001f469\U0001f467\U0001f466")); - shortCodeToEmoji->insert(QString("family_mwbb"), QString("\U0001f468\U0001f469\U0001f466\U0001f466")); - shortCodeToEmoji->insert(QString("family_mwgg"), QString("\U0001f468\U0001f469\U0001f467\U0001f467")); - shortCodeToEmoji->insert(QString("family_wwb"), QString("\U0001f469\U0001f469\U0001f466")); - shortCodeToEmoji->insert(QString("family_wwg"), QString("\U0001f469\U0001f469\U0001f467")); - shortCodeToEmoji->insert(QString("family_wwgb"), QString("\U0001f469\U0001f469\U0001f467\U0001f466")); - shortCodeToEmoji->insert(QString("family_wwbb"), QString("\U0001f469\U0001f469\U0001f466\U0001f466")); - shortCodeToEmoji->insert(QString("family_wwgg"), QString("\U0001f469\U0001f469\U0001f467\U0001f467")); - shortCodeToEmoji->insert(QString("family_mmb"), QString("\U0001f468\U0001f468\U0001f466")); - shortCodeToEmoji->insert(QString("family_mmg"), QString("\U0001f468\U0001f468\U0001f467")); - shortCodeToEmoji->insert(QString("family_mmgb"), QString("\U0001f468\U0001f468\U0001f467\U0001f466")); - shortCodeToEmoji->insert(QString("family_mmbb"), QString("\U0001f468\U0001f468\U0001f466\U0001f466")); - shortCodeToEmoji->insert(QString("family_mmgg"), QString("\U0001f468\U0001f468\U0001f467\U0001f467")); - shortCodeToEmoji->insert(QString("womans_clothes"), QString("\U0001f45a")); - shortCodeToEmoji->insert(QString("shirt"), QString("\U0001f455")); - shortCodeToEmoji->insert(QString("jeans"), QString("\U0001f456")); - shortCodeToEmoji->insert(QString("necktie"), QString("\U0001f454")); - shortCodeToEmoji->insert(QString("dress"), QString("\U0001f457")); - shortCodeToEmoji->insert(QString("bikini"), QString("\U0001f459")); - shortCodeToEmoji->insert(QString("kimono"), QString("\U0001f458")); - shortCodeToEmoji->insert(QString("lipstick"), QString("\U0001f484")); - shortCodeToEmoji->insert(QString("kiss"), QString("\U0001f48b")); - shortCodeToEmoji->insert(QString("footprints"), QString("\U0001f463")); - shortCodeToEmoji->insert(QString("high_heel"), QString("\U0001f460")); - shortCodeToEmoji->insert(QString("sandal"), QString("\U0001f461")); - shortCodeToEmoji->insert(QString("boot"), QString("\U0001f462")); - shortCodeToEmoji->insert(QString("mans_shoe"), QString("\U0001f45e")); - shortCodeToEmoji->insert(QString("athletic_shoe"), QString("\U0001f45f")); - shortCodeToEmoji->insert(QString("womans_hat"), QString("\U0001f452")); - shortCodeToEmoji->insert(QString("tophat"), QString("\U0001f3a9")); - shortCodeToEmoji->insert(QString("helmet_with_cross"), QString("\U000026d1")); - shortCodeToEmoji->insert(QString("mortar_board"), QString("\U0001f393")); - shortCodeToEmoji->insert(QString("crown"), QString("\U0001f451")); - shortCodeToEmoji->insert(QString("school_satchel"), QString("\U0001f392")); - shortCodeToEmoji->insert(QString("pouch"), QString("\U0001f45d")); - shortCodeToEmoji->insert(QString("purse"), QString("\U0001f45b")); - shortCodeToEmoji->insert(QString("handbag"), QString("\U0001f45c")); - shortCodeToEmoji->insert(QString("briefcase"), QString("\U0001f4bc")); - shortCodeToEmoji->insert(QString("eyeglasses"), QString("\U0001f453")); - shortCodeToEmoji->insert(QString("dark_sunglasses"), QString("\U0001f576")); - shortCodeToEmoji->insert(QString("ring"), QString("\U0001f48d")); - shortCodeToEmoji->insert(QString("closed_umbrella"), QString("\U0001f302")); - shortCodeToEmoji->insert(QString("dog"), QString("\U0001f436")); - shortCodeToEmoji->insert(QString("cat"), QString("\U0001f431")); - shortCodeToEmoji->insert(QString("mouse"), QString("\U0001f42d")); - shortCodeToEmoji->insert(QString("hamster"), QString("\U0001f439")); - shortCodeToEmoji->insert(QString("rabbit"), QString("\U0001f430")); - shortCodeToEmoji->insert(QString("bear"), QString("\U0001f43b")); - shortCodeToEmoji->insert(QString("panda_face"), QString("\U0001f43c")); - shortCodeToEmoji->insert(QString("koala"), QString("\U0001f428")); - shortCodeToEmoji->insert(QString("tiger"), QString("\U0001f42f")); - shortCodeToEmoji->insert(QString("lion_face"), QString("\U0001f981")); - shortCodeToEmoji->insert(QString("cow"), QString("\U0001f42e")); - shortCodeToEmoji->insert(QString("pig"), QString("\U0001f437")); - shortCodeToEmoji->insert(QString("pig_nose"), QString("\U0001f43d")); - shortCodeToEmoji->insert(QString("frog"), QString("\U0001f438")); - shortCodeToEmoji->insert(QString("octopus"), QString("\U0001f419")); - shortCodeToEmoji->insert(QString("monkey_face"), QString("\U0001f435")); - shortCodeToEmoji->insert(QString("see_no_evil"), QString("\U0001f648")); - shortCodeToEmoji->insert(QString("hear_no_evil"), QString("\U0001f649")); - shortCodeToEmoji->insert(QString("speak_no_evil"), QString("\U0001f64a")); - shortCodeToEmoji->insert(QString("monkey"), QString("\U0001f412")); - shortCodeToEmoji->insert(QString("chicken"), QString("\U0001f414")); - shortCodeToEmoji->insert(QString("penguin"), QString("\U0001f427")); - shortCodeToEmoji->insert(QString("bird"), QString("\U0001f426")); - shortCodeToEmoji->insert(QString("baby_chick"), QString("\U0001f424")); - shortCodeToEmoji->insert(QString("hatching_chick"), QString("\U0001f423")); - shortCodeToEmoji->insert(QString("hatched_chick"), QString("\U0001f425")); - shortCodeToEmoji->insert(QString("wolf"), QString("\U0001f43a")); - shortCodeToEmoji->insert(QString("boar"), QString("\U0001f417")); - shortCodeToEmoji->insert(QString("horse"), QString("\U0001f434")); - shortCodeToEmoji->insert(QString("unicorn"), QString("\U0001f984")); - shortCodeToEmoji->insert(QString("bee"), QString("\U0001f41d")); - shortCodeToEmoji->insert(QString("bug"), QString("\U0001f41b")); - shortCodeToEmoji->insert(QString("snail"), QString("\U0001f40c")); - shortCodeToEmoji->insert(QString("beetle"), QString("\U0001f41e")); - shortCodeToEmoji->insert(QString("ant"), QString("\U0001f41c")); - shortCodeToEmoji->insert(QString("spider"), QString("\U0001f577")); - shortCodeToEmoji->insert(QString("scorpion"), QString("\U0001f982")); - shortCodeToEmoji->insert(QString("crab"), QString("\U0001f980")); - shortCodeToEmoji->insert(QString("snake"), QString("\U0001f40d")); - shortCodeToEmoji->insert(QString("turtle"), QString("\U0001f422")); - shortCodeToEmoji->insert(QString("tropical_fish"), QString("\U0001f420")); - shortCodeToEmoji->insert(QString("fish"), QString("\U0001f41f")); - shortCodeToEmoji->insert(QString("blowfish"), QString("\U0001f421")); - shortCodeToEmoji->insert(QString("dolphin"), QString("\U0001f42c")); - shortCodeToEmoji->insert(QString("whale"), QString("\U0001f433")); - shortCodeToEmoji->insert(QString("whale2"), QString("\U0001f40b")); - shortCodeToEmoji->insert(QString("crocodile"), QString("\U0001f40a")); - shortCodeToEmoji->insert(QString("leopard"), QString("\U0001f406")); - shortCodeToEmoji->insert(QString("tiger2"), QString("\U0001f405")); - shortCodeToEmoji->insert(QString("water_buffalo"), QString("\U0001f403")); - shortCodeToEmoji->insert(QString("ox"), QString("\U0001f402")); - shortCodeToEmoji->insert(QString("cow2"), QString("\U0001f404")); - shortCodeToEmoji->insert(QString("dromedary_camel"), QString("\U0001f42a")); - shortCodeToEmoji->insert(QString("camel"), QString("\U0001f42b")); - shortCodeToEmoji->insert(QString("elephant"), QString("\U0001f418")); - shortCodeToEmoji->insert(QString("goat"), QString("\U0001f410")); - shortCodeToEmoji->insert(QString("ram"), QString("\U0001f40f")); - shortCodeToEmoji->insert(QString("sheep"), QString("\U0001f411")); - shortCodeToEmoji->insert(QString("racehorse"), QString("\U0001f40e")); - shortCodeToEmoji->insert(QString("pig2"), QString("\U0001f416")); - shortCodeToEmoji->insert(QString("rat"), QString("\U0001f400")); - shortCodeToEmoji->insert(QString("mouse2"), QString("\U0001f401")); - shortCodeToEmoji->insert(QString("rooster"), QString("\U0001f413")); - shortCodeToEmoji->insert(QString("turkey"), QString("\U0001f983")); - shortCodeToEmoji->insert(QString("dove"), QString("\U0001f54a")); - shortCodeToEmoji->insert(QString("dog2"), QString("\U0001f415")); - shortCodeToEmoji->insert(QString("poodle"), QString("\U0001f429")); - shortCodeToEmoji->insert(QString("cat2"), QString("\U0001f408")); - shortCodeToEmoji->insert(QString("rabbit2"), QString("\U0001f407")); - shortCodeToEmoji->insert(QString("chipmunk"), QString("\U0001f43f")); - shortCodeToEmoji->insert(QString("feet"), QString("\U0001f43e")); - shortCodeToEmoji->insert(QString("dragon"), QString("\U0001f409")); - shortCodeToEmoji->insert(QString("dragon_face"), QString("\U0001f432")); - shortCodeToEmoji->insert(QString("cactus"), QString("\U0001f335")); - shortCodeToEmoji->insert(QString("christmas_tree"), QString("\U0001f384")); - shortCodeToEmoji->insert(QString("evergreen_tree"), QString("\U0001f332")); - shortCodeToEmoji->insert(QString("deciduous_tree"), QString("\U0001f333")); - shortCodeToEmoji->insert(QString("palm_tree"), QString("\U0001f334")); - shortCodeToEmoji->insert(QString("seedling"), QString("\U0001f331")); - shortCodeToEmoji->insert(QString("herb"), QString("\U0001f33f")); - shortCodeToEmoji->insert(QString("shamrock"), QString("\U00002618")); - shortCodeToEmoji->insert(QString("four_leaf_clover"), QString("\U0001f340")); - shortCodeToEmoji->insert(QString("bamboo"), QString("\U0001f38d")); - shortCodeToEmoji->insert(QString("tanabata_tree"), QString("\U0001f38b")); - shortCodeToEmoji->insert(QString("leaves"), QString("\U0001f343")); - shortCodeToEmoji->insert(QString("fallen_leaf"), QString("\U0001f342")); - shortCodeToEmoji->insert(QString("maple_leaf"), QString("\U0001f341")); - shortCodeToEmoji->insert(QString("ear_of_rice"), QString("\U0001f33e")); - shortCodeToEmoji->insert(QString("hibiscus"), QString("\U0001f33a")); - shortCodeToEmoji->insert(QString("sunflower"), QString("\U0001f33b")); - shortCodeToEmoji->insert(QString("rose"), QString("\U0001f339")); - shortCodeToEmoji->insert(QString("tulip"), QString("\U0001f337")); - shortCodeToEmoji->insert(QString("blossom"), QString("\U0001f33c")); - shortCodeToEmoji->insert(QString("cherry_blossom"), QString("\U0001f338")); - shortCodeToEmoji->insert(QString("bouquet"), QString("\U0001f490")); - shortCodeToEmoji->insert(QString("mushroom"), QString("\U0001f344")); - shortCodeToEmoji->insert(QString("chestnut"), QString("\U0001f330")); - shortCodeToEmoji->insert(QString("jack_o_lantern"), QString("\U0001f383")); - shortCodeToEmoji->insert(QString("shell"), QString("\U0001f41a")); - shortCodeToEmoji->insert(QString("spider_web"), QString("\U0001f578")); - shortCodeToEmoji->insert(QString("earth_americas"), QString("\U0001f30e")); - shortCodeToEmoji->insert(QString("earth_africa"), QString("\U0001f30d")); - shortCodeToEmoji->insert(QString("earth_asia"), QString("\U0001f30f")); - shortCodeToEmoji->insert(QString("full_moon"), QString("\U0001f315")); - shortCodeToEmoji->insert(QString("waning_gibbous_moon"), QString("\U0001f316")); - shortCodeToEmoji->insert(QString("last_quarter_moon"), QString("\U0001f317")); - shortCodeToEmoji->insert(QString("waning_crescent_moon"), QString("\U0001f318")); - shortCodeToEmoji->insert(QString("new_moon"), QString("\U0001f311")); - shortCodeToEmoji->insert(QString("waxing_crescent_moon"), QString("\U0001f312")); - shortCodeToEmoji->insert(QString("first_quarter_moon"), QString("\U0001f313")); - shortCodeToEmoji->insert(QString("waxing_gibbous_moon"), QString("\U0001f314")); - shortCodeToEmoji->insert(QString("new_moon_with_face"), QString("\U0001f31a")); - shortCodeToEmoji->insert(QString("full_moon_with_face"), QString("\U0001f31d")); - shortCodeToEmoji->insert(QString("first_quarter_moon_with_face"), QString("\U0001f31b")); - shortCodeToEmoji->insert(QString("last_quarter_moon_with_face"), QString("\U0001f31c")); - shortCodeToEmoji->insert(QString("sun_with_face"), QString("\U0001f31e")); - shortCodeToEmoji->insert(QString("crescent_moon"), QString("\U0001f319")); - shortCodeToEmoji->insert(QString("star"), QString("\U00002b50")); - shortCodeToEmoji->insert(QString("star2"), QString("\U0001f31f")); - shortCodeToEmoji->insert(QString("dizzy"), QString("\U0001f4ab")); - shortCodeToEmoji->insert(QString("sparkles"), QString("\U00002728")); - shortCodeToEmoji->insert(QString("comet"), QString("\U00002604")); - shortCodeToEmoji->insert(QString("sunny"), QString("\U00002600")); - shortCodeToEmoji->insert(QString("white_sun_small_cloud"), QString("\U0001f324")); - shortCodeToEmoji->insert(QString("partly_sunny"), QString("\U000026c5")); - shortCodeToEmoji->insert(QString("white_sun_cloud"), QString("\U0001f325")); - shortCodeToEmoji->insert(QString("white_sun_rain_cloud"), QString("\U0001f326")); - shortCodeToEmoji->insert(QString("cloud"), QString("\U00002601")); - shortCodeToEmoji->insert(QString("cloud_rain"), QString("\U0001f327")); - shortCodeToEmoji->insert(QString("thunder_cloud_rain"), QString("\U000026c8")); - shortCodeToEmoji->insert(QString("cloud_lightning"), QString("\U0001f329")); - shortCodeToEmoji->insert(QString("zap"), QString("\U000026a1")); - shortCodeToEmoji->insert(QString("fire"), QString("\U0001f525")); - shortCodeToEmoji->insert(QString("boom"), QString("\U0001f4a5")); - shortCodeToEmoji->insert(QString("snowflake"), QString("\U00002744")); - shortCodeToEmoji->insert(QString("cloud_snow"), QString("\U0001f328")); - shortCodeToEmoji->insert(QString("snowman2"), QString("\U00002603")); - shortCodeToEmoji->insert(QString("snowman"), QString("\U000026c4")); - shortCodeToEmoji->insert(QString("wind_blowing_face"), QString("\U0001f32c")); - shortCodeToEmoji->insert(QString("dash"), QString("\U0001f4a8")); - shortCodeToEmoji->insert(QString("cloud_tornado"), QString("\U0001f32a")); - shortCodeToEmoji->insert(QString("fog"), QString("\U0001f32b")); - shortCodeToEmoji->insert(QString("umbrella2"), QString("\U00002602")); - shortCodeToEmoji->insert(QString("umbrella"), QString("\U00002614")); - shortCodeToEmoji->insert(QString("droplet"), QString("\U0001f4a7")); - shortCodeToEmoji->insert(QString("sweat_drops"), QString("\U0001f4a6")); - shortCodeToEmoji->insert(QString("ocean"), QString("\U0001f30a")); - shortCodeToEmoji->insert(QString("green_apple"), QString("\U0001f34f")); - shortCodeToEmoji->insert(QString("apple"), QString("\U0001f34e")); - shortCodeToEmoji->insert(QString("pear"), QString("\U0001f350")); - shortCodeToEmoji->insert(QString("tangerine"), QString("\U0001f34a")); - shortCodeToEmoji->insert(QString("lemon"), QString("\U0001f34b")); - shortCodeToEmoji->insert(QString("banana"), QString("\U0001f34c")); - shortCodeToEmoji->insert(QString("watermelon"), QString("\U0001f349")); - shortCodeToEmoji->insert(QString("grapes"), QString("\U0001f347")); - shortCodeToEmoji->insert(QString("strawberry"), QString("\U0001f353")); - shortCodeToEmoji->insert(QString("melon"), QString("\U0001f348")); - shortCodeToEmoji->insert(QString("cherries"), QString("\U0001f352")); - shortCodeToEmoji->insert(QString("peach"), QString("\U0001f351")); - shortCodeToEmoji->insert(QString("pineapple"), QString("\U0001f34d")); - shortCodeToEmoji->insert(QString("tomato"), QString("\U0001f345")); - shortCodeToEmoji->insert(QString("eggplant"), QString("\U0001f346")); - shortCodeToEmoji->insert(QString("hot_pepper"), QString("\U0001f336")); - shortCodeToEmoji->insert(QString("corn"), QString("\U0001f33d")); - shortCodeToEmoji->insert(QString("sweet_potato"), QString("\U0001f360")); - shortCodeToEmoji->insert(QString("honey_pot"), QString("\U0001f36f")); - shortCodeToEmoji->insert(QString("bread"), QString("\U0001f35e")); - shortCodeToEmoji->insert(QString("cheese"), QString("\U0001f9c0")); - shortCodeToEmoji->insert(QString("poultry_leg"), QString("\U0001f357")); - shortCodeToEmoji->insert(QString("meat_on_bone"), QString("\U0001f356")); - shortCodeToEmoji->insert(QString("fried_shrimp"), QString("\U0001f364")); - shortCodeToEmoji->insert(QString("cooking"), QString("\U0001f373")); - shortCodeToEmoji->insert(QString("hamburger"), QString("\U0001f354")); - shortCodeToEmoji->insert(QString("fries"), QString("\U0001f35f")); - shortCodeToEmoji->insert(QString("hotdog"), QString("\U0001f32d")); - shortCodeToEmoji->insert(QString("pizza"), QString("\U0001f355")); - shortCodeToEmoji->insert(QString("spaghetti"), QString("\U0001f35d")); - shortCodeToEmoji->insert(QString("taco"), QString("\U0001f32e")); - shortCodeToEmoji->insert(QString("burrito"), QString("\U0001f32f")); - shortCodeToEmoji->insert(QString("ramen"), QString("\U0001f35c")); - shortCodeToEmoji->insert(QString("stew"), QString("\U0001f372")); - shortCodeToEmoji->insert(QString("fish_cake"), QString("\U0001f365")); - shortCodeToEmoji->insert(QString("sushi"), QString("\U0001f363")); - shortCodeToEmoji->insert(QString("bento"), QString("\U0001f371")); - shortCodeToEmoji->insert(QString("curry"), QString("\U0001f35b")); - shortCodeToEmoji->insert(QString("rice_ball"), QString("\U0001f359")); - shortCodeToEmoji->insert(QString("rice"), QString("\U0001f35a")); - shortCodeToEmoji->insert(QString("rice_cracker"), QString("\U0001f358")); - shortCodeToEmoji->insert(QString("oden"), QString("\U0001f362")); - shortCodeToEmoji->insert(QString("dango"), QString("\U0001f361")); - shortCodeToEmoji->insert(QString("shaved_ice"), QString("\U0001f367")); - shortCodeToEmoji->insert(QString("ice_cream"), QString("\U0001f368")); - shortCodeToEmoji->insert(QString("icecream"), QString("\U0001f366")); - shortCodeToEmoji->insert(QString("cake"), QString("\U0001f370")); - shortCodeToEmoji->insert(QString("birthday"), QString("\U0001f382")); - shortCodeToEmoji->insert(QString("custard"), QString("\U0001f36e")); - shortCodeToEmoji->insert(QString("candy"), QString("\U0001f36c")); - shortCodeToEmoji->insert(QString("lollipop"), QString("\U0001f36d")); - shortCodeToEmoji->insert(QString("chocolate_bar"), QString("\U0001f36b")); - shortCodeToEmoji->insert(QString("popcorn"), QString("\U0001f37f")); - shortCodeToEmoji->insert(QString("doughnut"), QString("\U0001f369")); - shortCodeToEmoji->insert(QString("cookie"), QString("\U0001f36a")); - shortCodeToEmoji->insert(QString("beer"), QString("\U0001f37a")); - shortCodeToEmoji->insert(QString("beers"), QString("\U0001f37b")); - shortCodeToEmoji->insert(QString("wine_glass"), QString("\U0001f377")); - shortCodeToEmoji->insert(QString("cocktail"), QString("\U0001f378")); - shortCodeToEmoji->insert(QString("tropical_drink"), QString("\U0001f379")); - shortCodeToEmoji->insert(QString("champagne"), QString("\U0001f37e")); - shortCodeToEmoji->insert(QString("sake"), QString("\U0001f376")); - shortCodeToEmoji->insert(QString("tea"), QString("\U0001f375")); - shortCodeToEmoji->insert(QString("coffee"), QString("\U00002615")); - shortCodeToEmoji->insert(QString("baby_bottle"), QString("\U0001f37c")); - shortCodeToEmoji->insert(QString("fork_and_knife"), QString("\U0001f374")); - shortCodeToEmoji->insert(QString("fork_knife_plate"), QString("\U0001f37d")); - shortCodeToEmoji->insert(QString("soccer"), QString("\U000026bd")); - shortCodeToEmoji->insert(QString("basketball"), QString("\U0001f3c0")); - shortCodeToEmoji->insert(QString("football"), QString("\U0001f3c8")); - shortCodeToEmoji->insert(QString("baseball"), QString("\U000026be")); - shortCodeToEmoji->insert(QString("tennis"), QString("\U0001f3be")); - shortCodeToEmoji->insert(QString("volleyball"), QString("\U0001f3d0")); - shortCodeToEmoji->insert(QString("rugby_football"), QString("\U0001f3c9")); - shortCodeToEmoji->insert(QString("8ball"), QString("\U0001f3b1")); - shortCodeToEmoji->insert(QString("golf"), QString("\U000026f3")); - shortCodeToEmoji->insert(QString("golfer"), QString("\U0001f3cc")); - shortCodeToEmoji->insert(QString("ping_pong"), QString("\U0001f3d3")); - shortCodeToEmoji->insert(QString("badminton"), QString("\U0001f3f8")); - shortCodeToEmoji->insert(QString("hockey"), QString("\U0001f3d2")); - shortCodeToEmoji->insert(QString("field_hockey"), QString("\U0001f3d1")); - shortCodeToEmoji->insert(QString("cricket"), QString("\U0001f3cf")); - shortCodeToEmoji->insert(QString("ski"), QString("\U0001f3bf")); - shortCodeToEmoji->insert(QString("skier"), QString("\U000026f7")); - shortCodeToEmoji->insert(QString("snowboarder"), QString("\U0001f3c2")); - shortCodeToEmoji->insert(QString("ice_skate"), QString("\U000026f8")); - shortCodeToEmoji->insert(QString("bow_and_arrow"), QString("\U0001f3f9")); - shortCodeToEmoji->insert(QString("fishing_pole_and_fish"), QString("\U0001f3a3")); - shortCodeToEmoji->insert(QString("rowboat"), QString("\U0001f6a3")); - shortCodeToEmoji->insert(QString("swimmer"), QString("\U0001f3ca")); - shortCodeToEmoji->insert(QString("surfer"), QString("\U0001f3c4")); - shortCodeToEmoji->insert(QString("bath"), QString("\U0001f6c0")); - shortCodeToEmoji->insert(QString("basketball_player"), QString("\U000026f9")); - shortCodeToEmoji->insert(QString("lifter"), QString("\U0001f3cb")); - shortCodeToEmoji->insert(QString("bicyclist"), QString("\U0001f6b4")); - shortCodeToEmoji->insert(QString("mountain_bicyclist"), QString("\U0001f6b5")); - shortCodeToEmoji->insert(QString("horse_racing"), QString("\U0001f3c7")); - shortCodeToEmoji->insert(QString("levitate"), QString("\U0001f574")); - shortCodeToEmoji->insert(QString("trophy"), QString("\U0001f3c6")); - shortCodeToEmoji->insert(QString("running_shirt_with_sash"), QString("\U0001f3bd")); - shortCodeToEmoji->insert(QString("medal"), QString("\U0001f3c5")); - shortCodeToEmoji->insert(QString("military_medal"), QString("\U0001f396")); - shortCodeToEmoji->insert(QString("reminder_ribbon"), QString("\U0001f397")); - shortCodeToEmoji->insert(QString("rosette"), QString("\U0001f3f5")); - shortCodeToEmoji->insert(QString("ticket"), QString("\U0001f3ab")); - shortCodeToEmoji->insert(QString("tickets"), QString("\U0001f39f")); - shortCodeToEmoji->insert(QString("performing_arts"), QString("\U0001f3ad")); - shortCodeToEmoji->insert(QString("art"), QString("\U0001f3a8")); - shortCodeToEmoji->insert(QString("circus_tent"), QString("\U0001f3aa")); - shortCodeToEmoji->insert(QString("microphone"), QString("\U0001f3a4")); - shortCodeToEmoji->insert(QString("headphones"), QString("\U0001f3a7")); - shortCodeToEmoji->insert(QString("musical_score"), QString("\U0001f3bc")); - shortCodeToEmoji->insert(QString("musical_keyboard"), QString("\U0001f3b9")); - shortCodeToEmoji->insert(QString("saxophone"), QString("\U0001f3b7")); - shortCodeToEmoji->insert(QString("trumpet"), QString("\U0001f3ba")); - shortCodeToEmoji->insert(QString("guitar"), QString("\U0001f3b8")); - shortCodeToEmoji->insert(QString("violin"), QString("\U0001f3bb")); - shortCodeToEmoji->insert(QString("clapper"), QString("\U0001f3ac")); - shortCodeToEmoji->insert(QString("video_game"), QString("\U0001f3ae")); - shortCodeToEmoji->insert(QString("space_invader"), QString("\U0001f47e")); - shortCodeToEmoji->insert(QString("dart"), QString("\U0001f3af")); - shortCodeToEmoji->insert(QString("game_die"), QString("\U0001f3b2")); - shortCodeToEmoji->insert(QString("slot_machine"), QString("\U0001f3b0")); - shortCodeToEmoji->insert(QString("bowling"), QString("\U0001f3b3")); - shortCodeToEmoji->insert(QString("red_car"), QString("\U0001f697")); - shortCodeToEmoji->insert(QString("taxi"), QString("\U0001f695")); - shortCodeToEmoji->insert(QString("blue_car"), QString("\U0001f699")); - shortCodeToEmoji->insert(QString("bus"), QString("\U0001f68c")); - shortCodeToEmoji->insert(QString("trolleybus"), QString("\U0001f68e")); - shortCodeToEmoji->insert(QString("race_car"), QString("\U0001f3ce")); - shortCodeToEmoji->insert(QString("police_car"), QString("\U0001f693")); - shortCodeToEmoji->insert(QString("ambulance"), QString("\U0001f691")); - shortCodeToEmoji->insert(QString("fire_engine"), QString("\U0001f692")); - shortCodeToEmoji->insert(QString("minibus"), QString("\U0001f690")); - shortCodeToEmoji->insert(QString("truck"), QString("\U0001f69a")); - shortCodeToEmoji->insert(QString("articulated_lorry"), QString("\U0001f69b")); - shortCodeToEmoji->insert(QString("tractor"), QString("\U0001f69c")); - shortCodeToEmoji->insert(QString("motorcycle"), QString("\U0001f3cd")); - shortCodeToEmoji->insert(QString("bike"), QString("\U0001f6b2")); - shortCodeToEmoji->insert(QString("rotating_light"), QString("\U0001f6a8")); - shortCodeToEmoji->insert(QString("oncoming_police_car"), QString("\U0001f694")); - shortCodeToEmoji->insert(QString("oncoming_bus"), QString("\U0001f68d")); - shortCodeToEmoji->insert(QString("oncoming_automobile"), QString("\U0001f698")); - shortCodeToEmoji->insert(QString("oncoming_taxi"), QString("\U0001f696")); - shortCodeToEmoji->insert(QString("aerial_tramway"), QString("\U0001f6a1")); - shortCodeToEmoji->insert(QString("mountain_cableway"), QString("\U0001f6a0")); - shortCodeToEmoji->insert(QString("suspension_railway"), QString("\U0001f69f")); - shortCodeToEmoji->insert(QString("railway_car"), QString("\U0001f683")); - shortCodeToEmoji->insert(QString("train"), QString("\U0001f68b")); - shortCodeToEmoji->insert(QString("monorail"), QString("\U0001f69d")); - shortCodeToEmoji->insert(QString("bullettrain_side"), QString("\U0001f684")); - shortCodeToEmoji->insert(QString("bullettrain_front"), QString("\U0001f685")); - shortCodeToEmoji->insert(QString("light_rail"), QString("\U0001f688")); - shortCodeToEmoji->insert(QString("mountain_railway"), QString("\U0001f69e")); - shortCodeToEmoji->insert(QString("steam_locomotive"), QString("\U0001f682")); - shortCodeToEmoji->insert(QString("train2"), QString("\U0001f686")); - shortCodeToEmoji->insert(QString("metro"), QString("\U0001f687")); - shortCodeToEmoji->insert(QString("tram"), QString("\U0001f68a")); - shortCodeToEmoji->insert(QString("station"), QString("\U0001f689")); - shortCodeToEmoji->insert(QString("helicopter"), QString("\U0001f681")); - shortCodeToEmoji->insert(QString("airplane_small"), QString("\U0001f6e9")); - shortCodeToEmoji->insert(QString("airplane"), QString("\U00002708")); - shortCodeToEmoji->insert(QString("airplane_departure"), QString("\U0001f6eb")); - shortCodeToEmoji->insert(QString("airplane_arriving"), QString("\U0001f6ec")); - shortCodeToEmoji->insert(QString("sailboat"), QString("\U000026f5")); - shortCodeToEmoji->insert(QString("motorboat"), QString("\U0001f6e5")); - shortCodeToEmoji->insert(QString("speedboat"), QString("\U0001f6a4")); - shortCodeToEmoji->insert(QString("ferry"), QString("\U000026f4")); - shortCodeToEmoji->insert(QString("cruise_ship"), QString("\U0001f6f3")); - shortCodeToEmoji->insert(QString("rocket"), QString("\U0001f680")); - shortCodeToEmoji->insert(QString("satellite_orbital"), QString("\U0001f6f0")); - shortCodeToEmoji->insert(QString("seat"), QString("\U0001f4ba")); - shortCodeToEmoji->insert(QString("anchor"), QString("\U00002693")); - shortCodeToEmoji->insert(QString("construction"), QString("\U0001f6a7")); - shortCodeToEmoji->insert(QString("fuelpump"), QString("\U000026fd")); - shortCodeToEmoji->insert(QString("busstop"), QString("\U0001f68f")); - shortCodeToEmoji->insert(QString("vertical_traffic_light"), QString("\U0001f6a6")); - shortCodeToEmoji->insert(QString("traffic_light"), QString("\U0001f6a5")); - shortCodeToEmoji->insert(QString("checkered_flag"), QString("\U0001f3c1")); - shortCodeToEmoji->insert(QString("ship"), QString("\U0001f6a2")); - shortCodeToEmoji->insert(QString("ferris_wheel"), QString("\U0001f3a1")); - shortCodeToEmoji->insert(QString("roller_coaster"), QString("\U0001f3a2")); - shortCodeToEmoji->insert(QString("carousel_horse"), QString("\U0001f3a0")); - shortCodeToEmoji->insert(QString("construction_site"), QString("\U0001f3d7")); - shortCodeToEmoji->insert(QString("foggy"), QString("\U0001f301")); - shortCodeToEmoji->insert(QString("tokyo_tower"), QString("\U0001f5fc")); - shortCodeToEmoji->insert(QString("factory"), QString("\U0001f3ed")); - shortCodeToEmoji->insert(QString("fountain"), QString("\U000026f2")); - shortCodeToEmoji->insert(QString("rice_scene"), QString("\U0001f391")); - shortCodeToEmoji->insert(QString("mountain"), QString("\U000026f0")); - shortCodeToEmoji->insert(QString("mountain_snow"), QString("\U0001f3d4")); - shortCodeToEmoji->insert(QString("mount_fuji"), QString("\U0001f5fb")); - shortCodeToEmoji->insert(QString("volcano"), QString("\U0001f30b")); - shortCodeToEmoji->insert(QString("japan"), QString("\U0001f5fe")); - shortCodeToEmoji->insert(QString("camping"), QString("\U0001f3d5")); - shortCodeToEmoji->insert(QString("tent"), QString("\U000026fa")); - shortCodeToEmoji->insert(QString("park"), QString("\U0001f3de")); - shortCodeToEmoji->insert(QString("motorway"), QString("\U0001f6e3")); - shortCodeToEmoji->insert(QString("railway_track"), QString("\U0001f6e4")); - shortCodeToEmoji->insert(QString("sunrise"), QString("\U0001f305")); - shortCodeToEmoji->insert(QString("sunrise_over_mountains"), QString("\U0001f304")); - shortCodeToEmoji->insert(QString("desert"), QString("\U0001f3dc")); - shortCodeToEmoji->insert(QString("beach"), QString("\U0001f3d6")); - shortCodeToEmoji->insert(QString("island"), QString("\U0001f3dd")); - shortCodeToEmoji->insert(QString("city_sunset"), QString("\U0001f307")); - shortCodeToEmoji->insert(QString("city_dusk"), QString("\U0001f306")); - shortCodeToEmoji->insert(QString("cityscape"), QString("\U0001f3d9")); - shortCodeToEmoji->insert(QString("night_with_stars"), QString("\U0001f303")); - shortCodeToEmoji->insert(QString("bridge_at_night"), QString("\U0001f309")); - shortCodeToEmoji->insert(QString("milky_way"), QString("\U0001f30c")); - shortCodeToEmoji->insert(QString("stars"), QString("\U0001f320")); - shortCodeToEmoji->insert(QString("sparkler"), QString("\U0001f387")); - shortCodeToEmoji->insert(QString("fireworks"), QString("\U0001f386")); - shortCodeToEmoji->insert(QString("rainbow"), QString("\U0001f308")); - shortCodeToEmoji->insert(QString("homes"), QString("\U0001f3d8")); - shortCodeToEmoji->insert(QString("european_castle"), QString("\U0001f3f0")); - shortCodeToEmoji->insert(QString("japanese_castle"), QString("\U0001f3ef")); - shortCodeToEmoji->insert(QString("stadium"), QString("\U0001f3df")); - shortCodeToEmoji->insert(QString("statue_of_liberty"), QString("\U0001f5fd")); - shortCodeToEmoji->insert(QString("house"), QString("\U0001f3e0")); - shortCodeToEmoji->insert(QString("house_with_garden"), QString("\U0001f3e1")); - shortCodeToEmoji->insert(QString("house_abandoned"), QString("\U0001f3da")); - shortCodeToEmoji->insert(QString("office"), QString("\U0001f3e2")); - shortCodeToEmoji->insert(QString("department_store"), QString("\U0001f3ec")); - shortCodeToEmoji->insert(QString("post_office"), QString("\U0001f3e3")); - shortCodeToEmoji->insert(QString("european_post_office"), QString("\U0001f3e4")); - shortCodeToEmoji->insert(QString("hospital"), QString("\U0001f3e5")); - shortCodeToEmoji->insert(QString("bank"), QString("\U0001f3e6")); - shortCodeToEmoji->insert(QString("hotel"), QString("\U0001f3e8")); - shortCodeToEmoji->insert(QString("convenience_store"), QString("\U0001f3ea")); - shortCodeToEmoji->insert(QString("school"), QString("\U0001f3eb")); - shortCodeToEmoji->insert(QString("love_hotel"), QString("\U0001f3e9")); - shortCodeToEmoji->insert(QString("wedding"), QString("\U0001f492")); - shortCodeToEmoji->insert(QString("classical_building"), QString("\U0001f3db")); - shortCodeToEmoji->insert(QString("church"), QString("\U000026ea")); - shortCodeToEmoji->insert(QString("mosque"), QString("\U0001f54c")); - shortCodeToEmoji->insert(QString("synagogue"), QString("\U0001f54d")); - shortCodeToEmoji->insert(QString("kaaba"), QString("\U0001f54b")); - shortCodeToEmoji->insert(QString("shinto_shrine"), QString("\U000026e9")); - shortCodeToEmoji->insert(QString("watch"), QString("\U0000231a")); - shortCodeToEmoji->insert(QString("iphone"), QString("\U0001f4f1")); - shortCodeToEmoji->insert(QString("calling"), QString("\U0001f4f2")); - shortCodeToEmoji->insert(QString("computer"), QString("\U0001f4bb")); - shortCodeToEmoji->insert(QString("keyboard"), QString("\U00002328")); - shortCodeToEmoji->insert(QString("desktop"), QString("\U0001f5a5")); - shortCodeToEmoji->insert(QString("printer"), QString("\U0001f5a8")); - shortCodeToEmoji->insert(QString("mouse_three_button"), QString("\U0001f5b1")); - shortCodeToEmoji->insert(QString("trackball"), QString("\U0001f5b2")); - shortCodeToEmoji->insert(QString("joystick"), QString("\U0001f579")); - shortCodeToEmoji->insert(QString("compression"), QString("\U0001f5dc")); - shortCodeToEmoji->insert(QString("minidisc"), QString("\U0001f4bd")); - shortCodeToEmoji->insert(QString("floppy_disk"), QString("\U0001f4be")); - shortCodeToEmoji->insert(QString("cd"), QString("\U0001f4bf")); - shortCodeToEmoji->insert(QString("dvd"), QString("\U0001f4c0")); - shortCodeToEmoji->insert(QString("vhs"), QString("\U0001f4fc")); - shortCodeToEmoji->insert(QString("camera"), QString("\U0001f4f7")); - shortCodeToEmoji->insert(QString("camera_with_flash"), QString("\U0001f4f8")); - shortCodeToEmoji->insert(QString("video_camera"), QString("\U0001f4f9")); - shortCodeToEmoji->insert(QString("movie_camera"), QString("\U0001f3a5")); - shortCodeToEmoji->insert(QString("projector"), QString("\U0001f4fd")); - shortCodeToEmoji->insert(QString("film_frames"), QString("\U0001f39e")); - shortCodeToEmoji->insert(QString("telephone_receiver"), QString("\U0001f4de")); - shortCodeToEmoji->insert(QString("telephone"), QString("\U0000260e")); - shortCodeToEmoji->insert(QString("pager"), QString("\U0001f4df")); - shortCodeToEmoji->insert(QString("fax"), QString("\U0001f4e0")); - shortCodeToEmoji->insert(QString("tv"), QString("\U0001f4fa")); - shortCodeToEmoji->insert(QString("radio"), QString("\U0001f4fb")); - shortCodeToEmoji->insert(QString("microphone2"), QString("\U0001f399")); - shortCodeToEmoji->insert(QString("level_slider"), QString("\U0001f39a")); - shortCodeToEmoji->insert(QString("control_knobs"), QString("\U0001f39b")); - shortCodeToEmoji->insert(QString("stopwatch"), QString("\U000023f1")); - shortCodeToEmoji->insert(QString("timer"), QString("\U000023f2")); - shortCodeToEmoji->insert(QString("alarm_clock"), QString("\U000023f0")); - shortCodeToEmoji->insert(QString("clock"), QString("\U0001f570")); - shortCodeToEmoji->insert(QString("hourglass_flowing_sand"), QString("\U000023f3")); - shortCodeToEmoji->insert(QString("hourglass"), QString("\U0000231b")); - shortCodeToEmoji->insert(QString("satellite"), QString("\U0001f4e1")); - shortCodeToEmoji->insert(QString("battery"), QString("\U0001f50b")); - shortCodeToEmoji->insert(QString("electric_plug"), QString("\U0001f50c")); - shortCodeToEmoji->insert(QString("bulb"), QString("\U0001f4a1")); - shortCodeToEmoji->insert(QString("flashlight"), QString("\U0001f526")); - shortCodeToEmoji->insert(QString("candle"), QString("\U0001f56f")); - shortCodeToEmoji->insert(QString("wastebasket"), QString("\U0001f5d1")); - shortCodeToEmoji->insert(QString("oil"), QString("\U0001f6e2")); - shortCodeToEmoji->insert(QString("money_with_wings"), QString("\U0001f4b8")); - shortCodeToEmoji->insert(QString("dollar"), QString("\U0001f4b5")); - shortCodeToEmoji->insert(QString("yen"), QString("\U0001f4b4")); - shortCodeToEmoji->insert(QString("euro"), QString("\U0001f4b6")); - shortCodeToEmoji->insert(QString("pound"), QString("\U0001f4b7")); - shortCodeToEmoji->insert(QString("moneybag"), QString("\U0001f4b0")); - shortCodeToEmoji->insert(QString("credit_card"), QString("\U0001f4b3")); - shortCodeToEmoji->insert(QString("gem"), QString("\U0001f48e")); - shortCodeToEmoji->insert(QString("scales"), QString("\U00002696")); - shortCodeToEmoji->insert(QString("wrench"), QString("\U0001f527")); - shortCodeToEmoji->insert(QString("hammer"), QString("\U0001f528")); - shortCodeToEmoji->insert(QString("hammer_pick"), QString("\U00002692")); - shortCodeToEmoji->insert(QString("tools"), QString("\U0001f6e0")); - shortCodeToEmoji->insert(QString("pick"), QString("\U000026cf")); - shortCodeToEmoji->insert(QString("nut_and_bolt"), QString("\U0001f529")); - shortCodeToEmoji->insert(QString("gear"), QString("\U00002699")); - shortCodeToEmoji->insert(QString("chains"), QString("\U000026d3")); - shortCodeToEmoji->insert(QString("gun"), QString("\U0001f52b")); - shortCodeToEmoji->insert(QString("bomb"), QString("\U0001f4a3")); - shortCodeToEmoji->insert(QString("knife"), QString("\U0001f52a")); - shortCodeToEmoji->insert(QString("dagger"), QString("\U0001f5e1")); - shortCodeToEmoji->insert(QString("crossed_swords"), QString("\U00002694")); - shortCodeToEmoji->insert(QString("shield"), QString("\U0001f6e1")); - shortCodeToEmoji->insert(QString("smoking"), QString("\U0001f6ac")); - shortCodeToEmoji->insert(QString("skull_crossbones"), QString("\U00002620")); - shortCodeToEmoji->insert(QString("coffin"), QString("\U000026b0")); - shortCodeToEmoji->insert(QString("urn"), QString("\U000026b1")); - shortCodeToEmoji->insert(QString("amphora"), QString("\U0001f3fa")); - shortCodeToEmoji->insert(QString("crystal_ball"), QString("\U0001f52e")); - shortCodeToEmoji->insert(QString("prayer_beads"), QString("\U0001f4ff")); - shortCodeToEmoji->insert(QString("barber"), QString("\U0001f488")); - shortCodeToEmoji->insert(QString("alembic"), QString("\U00002697")); - shortCodeToEmoji->insert(QString("telescope"), QString("\U0001f52d")); - shortCodeToEmoji->insert(QString("microscope"), QString("\U0001f52c")); - shortCodeToEmoji->insert(QString("hole"), QString("\U0001f573")); - shortCodeToEmoji->insert(QString("pill"), QString("\U0001f48a")); - shortCodeToEmoji->insert(QString("syringe"), QString("\U0001f489")); - shortCodeToEmoji->insert(QString("thermometer"), QString("\U0001f321")); - shortCodeToEmoji->insert(QString("label"), QString("\U0001f3f7")); - shortCodeToEmoji->insert(QString("bookmark"), QString("\U0001f516")); - shortCodeToEmoji->insert(QString("toilet"), QString("\U0001f6bd")); - shortCodeToEmoji->insert(QString("shower"), QString("\U0001f6bf")); - shortCodeToEmoji->insert(QString("bathtub"), QString("\U0001f6c1")); - shortCodeToEmoji->insert(QString("key"), QString("\U0001f511")); - shortCodeToEmoji->insert(QString("key2"), QString("\U0001f5dd")); - shortCodeToEmoji->insert(QString("couch"), QString("\U0001f6cb")); - shortCodeToEmoji->insert(QString("sleeping_accommodation"), QString("\U0001f6cc")); - shortCodeToEmoji->insert(QString("bed"), QString("\U0001f6cf")); - shortCodeToEmoji->insert(QString("door"), QString("\U0001f6aa")); - shortCodeToEmoji->insert(QString("bellhop"), QString("\U0001f6ce")); - shortCodeToEmoji->insert(QString("frame_photo"), QString("\U0001f5bc")); - shortCodeToEmoji->insert(QString("map"), QString("\U0001f5fa")); - shortCodeToEmoji->insert(QString("beach_umbrella"), QString("\U000026f1")); - shortCodeToEmoji->insert(QString("moyai"), QString("\U0001f5ff")); - shortCodeToEmoji->insert(QString("shopping_bags"), QString("\U0001f6cd")); - shortCodeToEmoji->insert(QString("balloon"), QString("\U0001f388")); - shortCodeToEmoji->insert(QString("flags"), QString("\U0001f38f")); - shortCodeToEmoji->insert(QString("ribbon"), QString("\U0001f380")); - shortCodeToEmoji->insert(QString("gift"), QString("\U0001f381")); - shortCodeToEmoji->insert(QString("confetti_ball"), QString("\U0001f38a")); - shortCodeToEmoji->insert(QString("tada"), QString("\U0001f389")); - shortCodeToEmoji->insert(QString("dolls"), QString("\U0001f38e")); - shortCodeToEmoji->insert(QString("wind_chime"), QString("\U0001f390")); - shortCodeToEmoji->insert(QString("crossed_flags"), QString("\U0001f38c")); - shortCodeToEmoji->insert(QString("izakaya_lantern"), QString("\U0001f3ee")); - shortCodeToEmoji->insert(QString("envelope"), QString("\U00002709")); - shortCodeToEmoji->insert(QString("envelope_with_arrow"), QString("\U0001f4e9")); - shortCodeToEmoji->insert(QString("incoming_envelope"), QString("\U0001f4e8")); - shortCodeToEmoji->insert(QString("e-mail"), QString("\U0001f4e7")); - shortCodeToEmoji->insert(QString("love_letter"), QString("\U0001f48c")); - shortCodeToEmoji->insert(QString("postbox"), QString("\U0001f4ee")); - shortCodeToEmoji->insert(QString("mailbox_closed"), QString("\U0001f4ea")); - shortCodeToEmoji->insert(QString("mailbox"), QString("\U0001f4eb")); - shortCodeToEmoji->insert(QString("mailbox_with_mail"), QString("\U0001f4ec")); - shortCodeToEmoji->insert(QString("mailbox_with_no_mail"), QString("\U0001f4ed")); - shortCodeToEmoji->insert(QString("package"), QString("\U0001f4e6")); - shortCodeToEmoji->insert(QString("postal_horn"), QString("\U0001f4ef")); - shortCodeToEmoji->insert(QString("inbox_tray"), QString("\U0001f4e5")); - shortCodeToEmoji->insert(QString("outbox_tray"), QString("\U0001f4e4")); - shortCodeToEmoji->insert(QString("scroll"), QString("\U0001f4dc")); - shortCodeToEmoji->insert(QString("page_with_curl"), QString("\U0001f4c3")); - shortCodeToEmoji->insert(QString("bookmark_tabs"), QString("\U0001f4d1")); - shortCodeToEmoji->insert(QString("bar_chart"), QString("\U0001f4ca")); - shortCodeToEmoji->insert(QString("chart_with_upwards_trend"), QString("\U0001f4c8")); - shortCodeToEmoji->insert(QString("chart_with_downwards_trend"), QString("\U0001f4c9")); - shortCodeToEmoji->insert(QString("page_facing_up"), QString("\U0001f4c4")); - shortCodeToEmoji->insert(QString("date"), QString("\U0001f4c5")); - shortCodeToEmoji->insert(QString("calendar"), QString("\U0001f4c6")); - shortCodeToEmoji->insert(QString("calendar_spiral"), QString("\U0001f5d3")); - shortCodeToEmoji->insert(QString("card_index"), QString("\U0001f4c7")); - shortCodeToEmoji->insert(QString("card_box"), QString("\U0001f5c3")); - shortCodeToEmoji->insert(QString("ballot_box"), QString("\U0001f5f3")); - shortCodeToEmoji->insert(QString("file_cabinet"), QString("\U0001f5c4")); - shortCodeToEmoji->insert(QString("clipboard"), QString("\U0001f4cb")); - shortCodeToEmoji->insert(QString("notepad_spiral"), QString("\U0001f5d2")); - shortCodeToEmoji->insert(QString("file_folder"), QString("\U0001f4c1")); - shortCodeToEmoji->insert(QString("open_file_folder"), QString("\U0001f4c2")); - shortCodeToEmoji->insert(QString("dividers"), QString("\U0001f5c2")); - shortCodeToEmoji->insert(QString("newspaper2"), QString("\U0001f5de")); - shortCodeToEmoji->insert(QString("newspaper"), QString("\U0001f4f0")); - shortCodeToEmoji->insert(QString("notebook"), QString("\U0001f4d3")); - shortCodeToEmoji->insert(QString("closed_book"), QString("\U0001f4d5")); - shortCodeToEmoji->insert(QString("green_book"), QString("\U0001f4d7")); - shortCodeToEmoji->insert(QString("blue_book"), QString("\U0001f4d8")); - shortCodeToEmoji->insert(QString("orange_book"), QString("\U0001f4d9")); - shortCodeToEmoji->insert(QString("notebook_with_decorative_cover"), QString("\U0001f4d4")); - shortCodeToEmoji->insert(QString("ledger"), QString("\U0001f4d2")); - shortCodeToEmoji->insert(QString("books"), QString("\U0001f4da")); - shortCodeToEmoji->insert(QString("book"), QString("\U0001f4d6")); - shortCodeToEmoji->insert(QString("link"), QString("\U0001f517")); - shortCodeToEmoji->insert(QString("paperclip"), QString("\U0001f4ce")); - shortCodeToEmoji->insert(QString("paperclips"), QString("\U0001f587")); - shortCodeToEmoji->insert(QString("scissors"), QString("\U00002702")); - shortCodeToEmoji->insert(QString("triangular_ruler"), QString("\U0001f4d0")); - shortCodeToEmoji->insert(QString("straight_ruler"), QString("\U0001f4cf")); - shortCodeToEmoji->insert(QString("pushpin"), QString("\U0001f4cc")); - shortCodeToEmoji->insert(QString("round_pushpin"), QString("\U0001f4cd")); - shortCodeToEmoji->insert(QString("triangular_flag_on_post"), QString("\U0001f6a9")); - shortCodeToEmoji->insert(QString("flag_white"), QString("\U0001f3f3")); - shortCodeToEmoji->insert(QString("flag_black"), QString("\U0001f3f4")); - shortCodeToEmoji->insert(QString("closed_lock_with_key"), QString("\U0001f510")); - shortCodeToEmoji->insert(QString("lock"), QString("\U0001f512")); - shortCodeToEmoji->insert(QString("unlock"), QString("\U0001f513")); - shortCodeToEmoji->insert(QString("lock_with_ink_pen"), QString("\U0001f50f")); - shortCodeToEmoji->insert(QString("pen_ballpoint"), QString("\U0001f58a")); - shortCodeToEmoji->insert(QString("pen_fountain"), QString("\U0001f58b")); - shortCodeToEmoji->insert(QString("black_nib"), QString("\U00002712")); - shortCodeToEmoji->insert(QString("pencil"), QString("\U0001f4dd")); - shortCodeToEmoji->insert(QString("pencil2"), QString("\U0000270f")); - shortCodeToEmoji->insert(QString("crayon"), QString("\U0001f58d")); - shortCodeToEmoji->insert(QString("paintbrush"), QString("\U0001f58c")); - shortCodeToEmoji->insert(QString("mag"), QString("\U0001f50d")); - shortCodeToEmoji->insert(QString("mag_right"), QString("\U0001f50e")); - shortCodeToEmoji->insert(QString("heart"), QString("\U00002764")); - shortCodeToEmoji->insert(QString("yellow_heart"), QString("\U0001f49b")); - shortCodeToEmoji->insert(QString("green_heart"), QString("\U0001f49a")); - shortCodeToEmoji->insert(QString("blue_heart"), QString("\U0001f499")); - shortCodeToEmoji->insert(QString("purple_heart"), QString("\U0001f49c")); - shortCodeToEmoji->insert(QString("broken_heart"), QString("\U0001f494")); - shortCodeToEmoji->insert(QString("heart_exclamation"), QString("\U00002763")); - shortCodeToEmoji->insert(QString("two_hearts"), QString("\U0001f495")); - shortCodeToEmoji->insert(QString("revolving_hearts"), QString("\U0001f49e")); - shortCodeToEmoji->insert(QString("heartbeat"), QString("\U0001f493")); - shortCodeToEmoji->insert(QString("heartpulse"), QString("\U0001f497")); - shortCodeToEmoji->insert(QString("sparkling_heart"), QString("\U0001f496")); - shortCodeToEmoji->insert(QString("cupid"), QString("\U0001f498")); - shortCodeToEmoji->insert(QString("gift_heart"), QString("\U0001f49d")); - shortCodeToEmoji->insert(QString("heart_decoration"), QString("\U0001f49f")); - shortCodeToEmoji->insert(QString("peace"), QString("\U0000262e")); - shortCodeToEmoji->insert(QString("cross"), QString("\U0000271d")); - shortCodeToEmoji->insert(QString("star_and_crescent"), QString("\U0000262a")); - shortCodeToEmoji->insert(QString("om_symbol"), QString("\U0001f549")); - shortCodeToEmoji->insert(QString("wheel_of_dharma"), QString("\U00002638")); - shortCodeToEmoji->insert(QString("star_of_david"), QString("\U00002721")); - shortCodeToEmoji->insert(QString("six_pointed_star"), QString("\U0001f52f")); - shortCodeToEmoji->insert(QString("menorah"), QString("\U0001f54e")); - shortCodeToEmoji->insert(QString("yin_yang"), QString("\U0000262f")); - shortCodeToEmoji->insert(QString("orthodox_cross"), QString("\U00002626")); - shortCodeToEmoji->insert(QString("place_of_worship"), QString("\U0001f6d0")); - shortCodeToEmoji->insert(QString("ophiuchus"), QString("\U000026ce")); - shortCodeToEmoji->insert(QString("aries"), QString("\U00002648")); - shortCodeToEmoji->insert(QString("taurus"), QString("\U00002649")); - shortCodeToEmoji->insert(QString("gemini"), QString("\U0000264a")); - shortCodeToEmoji->insert(QString("cancer"), QString("\U0000264b")); - shortCodeToEmoji->insert(QString("leo"), QString("\U0000264c")); - shortCodeToEmoji->insert(QString("virgo"), QString("\U0000264d")); - shortCodeToEmoji->insert(QString("libra"), QString("\U0000264e")); - shortCodeToEmoji->insert(QString("scorpius"), QString("\U0000264f")); - shortCodeToEmoji->insert(QString("sagittarius"), QString("\U00002650")); - shortCodeToEmoji->insert(QString("capricorn"), QString("\U00002651")); - shortCodeToEmoji->insert(QString("aquarius"), QString("\U00002652")); - shortCodeToEmoji->insert(QString("pisces"), QString("\U00002653")); - shortCodeToEmoji->insert(QString("id"), QString("\U0001f194")); - shortCodeToEmoji->insert(QString("atom"), QString("\U0000269b")); - shortCodeToEmoji->insert(QString("u7a7a"), QString("\U0001f233")); - shortCodeToEmoji->insert(QString("u5272"), QString("\U0001f239")); - shortCodeToEmoji->insert(QString("radioactive"), QString("\U00002622")); - shortCodeToEmoji->insert(QString("biohazard"), QString("\U00002623")); - shortCodeToEmoji->insert(QString("mobile_phone_off"), QString("\U0001f4f4")); - shortCodeToEmoji->insert(QString("vibration_mode"), QString("\U0001f4f3")); - shortCodeToEmoji->insert(QString("u6709"), QString("\U0001f236")); - shortCodeToEmoji->insert(QString("u7121"), QString("\U0001f21a")); - shortCodeToEmoji->insert(QString("u7533"), QString("\U0001f238")); - shortCodeToEmoji->insert(QString("u55b6"), QString("\U0001f23a")); - shortCodeToEmoji->insert(QString("u6708"), QString("\U0001f237")); - shortCodeToEmoji->insert(QString("eight_pointed_black_star"), QString("\U00002734")); - shortCodeToEmoji->insert(QString("vs"), QString("\U0001f19a")); - shortCodeToEmoji->insert(QString("accept"), QString("\U0001f251")); - shortCodeToEmoji->insert(QString("white_flower"), QString("\U0001f4ae")); - shortCodeToEmoji->insert(QString("ideograph_advantage"), QString("\U0001f250")); - shortCodeToEmoji->insert(QString("secret"), QString("\U00003299")); - shortCodeToEmoji->insert(QString("congratulations"), QString("\U00003297")); - shortCodeToEmoji->insert(QString("u5408"), QString("\U0001f234")); - shortCodeToEmoji->insert(QString("u6e80"), QString("\U0001f235")); - shortCodeToEmoji->insert(QString("u7981"), QString("\U0001f232")); - shortCodeToEmoji->insert(QString("a"), QString("\U0001f170")); - shortCodeToEmoji->insert(QString("b"), QString("\U0001f171")); - shortCodeToEmoji->insert(QString("ab"), QString("\U0001f18e")); - shortCodeToEmoji->insert(QString("cl"), QString("\U0001f191")); - shortCodeToEmoji->insert(QString("o2"), QString("\U0001f17e")); - shortCodeToEmoji->insert(QString("sos"), QString("\U0001f198")); - shortCodeToEmoji->insert(QString("no_entry"), QString("\U000026d4")); - shortCodeToEmoji->insert(QString("name_badge"), QString("\U0001f4db")); - shortCodeToEmoji->insert(QString("no_entry_sign"), QString("\U0001f6ab")); - shortCodeToEmoji->insert(QString("x"), QString("\U0000274c")); - shortCodeToEmoji->insert(QString("o"), QString("\U00002b55")); - shortCodeToEmoji->insert(QString("anger"), QString("\U0001f4a2")); - shortCodeToEmoji->insert(QString("hotsprings"), QString("\U00002668")); - shortCodeToEmoji->insert(QString("no_pedestrians"), QString("\U0001f6b7")); - shortCodeToEmoji->insert(QString("do_not_litter"), QString("\U0001f6af")); - shortCodeToEmoji->insert(QString("no_bicycles"), QString("\U0001f6b3")); - shortCodeToEmoji->insert(QString("non-potable_water"), QString("\U0001f6b1")); - shortCodeToEmoji->insert(QString("underage"), QString("\U0001f51e")); - shortCodeToEmoji->insert(QString("no_mobile_phones"), QString("\U0001f4f5")); - shortCodeToEmoji->insert(QString("exclamation"), QString("\U00002757")); - shortCodeToEmoji->insert(QString("grey_exclamation"), QString("\U00002755")); - shortCodeToEmoji->insert(QString("question"), QString("\U00002753")); - shortCodeToEmoji->insert(QString("grey_question"), QString("\U00002754")); - shortCodeToEmoji->insert(QString("bangbang"), QString("\U0000203c")); - shortCodeToEmoji->insert(QString("interrobang"), QString("\U00002049")); - shortCodeToEmoji->insert(QString("low_brightness"), QString("\U0001f505")); - shortCodeToEmoji->insert(QString("high_brightness"), QString("\U0001f506")); - shortCodeToEmoji->insert(QString("trident"), QString("\U0001f531")); - shortCodeToEmoji->insert(QString("fleur-de-lis"), QString("\U0000269c")); - shortCodeToEmoji->insert(QString("part_alternation_mark"), QString("\U0000303d")); - shortCodeToEmoji->insert(QString("warning"), QString("\U000026a0")); - shortCodeToEmoji->insert(QString("children_crossing"), QString("\U0001f6b8")); - shortCodeToEmoji->insert(QString("beginner"), QString("\U0001f530")); - shortCodeToEmoji->insert(QString("recycle"), QString("\U0000267b")); - shortCodeToEmoji->insert(QString("u6307"), QString("\U0001f22f")); - shortCodeToEmoji->insert(QString("chart"), QString("\U0001f4b9")); - shortCodeToEmoji->insert(QString("sparkle"), QString("\U00002747")); - shortCodeToEmoji->insert(QString("eight_spoked_asterisk"), QString("\U00002733")); - shortCodeToEmoji->insert(QString("negative_squared_cross_mark"), QString("\U0000274e")); - shortCodeToEmoji->insert(QString("white_check_mark"), QString("\U00002705")); - shortCodeToEmoji->insert(QString("diamond_shape_with_a_dot_inside"), QString("\U0001f4a0")); - shortCodeToEmoji->insert(QString("cyclone"), QString("\U0001f300")); - shortCodeToEmoji->insert(QString("loop"), QString("\U000027bf")); - shortCodeToEmoji->insert(QString("globe_with_meridians"), QString("\U0001f310")); - shortCodeToEmoji->insert(QString("m"), QString("\U000024c2")); - shortCodeToEmoji->insert(QString("atm"), QString("\U0001f3e7")); - shortCodeToEmoji->insert(QString("sa"), QString("\U0001f202")); - shortCodeToEmoji->insert(QString("passport_control"), QString("\U0001f6c2")); - shortCodeToEmoji->insert(QString("customs"), QString("\U0001f6c3")); - shortCodeToEmoji->insert(QString("baggage_claim"), QString("\U0001f6c4")); - shortCodeToEmoji->insert(QString("left_luggage"), QString("\U0001f6c5")); - shortCodeToEmoji->insert(QString("wheelchair"), QString("\U0000267f")); - shortCodeToEmoji->insert(QString("no_smoking"), QString("\U0001f6ad")); - shortCodeToEmoji->insert(QString("wc"), QString("\U0001f6be")); - shortCodeToEmoji->insert(QString("parking"), QString("\U0001f17f")); - shortCodeToEmoji->insert(QString("potable_water"), QString("\U0001f6b0")); - shortCodeToEmoji->insert(QString("mens"), QString("\U0001f6b9")); - shortCodeToEmoji->insert(QString("womens"), QString("\U0001f6ba")); - shortCodeToEmoji->insert(QString("baby_symbol"), QString("\U0001f6bc")); - shortCodeToEmoji->insert(QString("restroom"), QString("\U0001f6bb")); - shortCodeToEmoji->insert(QString("put_litter_in_its_place"), QString("\U0001f6ae")); - shortCodeToEmoji->insert(QString("cinema"), QString("\U0001f3a6")); - shortCodeToEmoji->insert(QString("signal_strength"), QString("\U0001f4f6")); - shortCodeToEmoji->insert(QString("koko"), QString("\U0001f201")); - shortCodeToEmoji->insert(QString("ng"), QString("\U0001f196")); - shortCodeToEmoji->insert(QString("ok"), QString("\U0001f197")); - shortCodeToEmoji->insert(QString("up"), QString("\U0001f199")); - shortCodeToEmoji->insert(QString("cool"), QString("\U0001f192")); - shortCodeToEmoji->insert(QString("new"), QString("\U0001f195")); - shortCodeToEmoji->insert(QString("free"), QString("\U0001f193")); - shortCodeToEmoji->insert(QString("zero"), QString("\U00000030\U000020e3")); - shortCodeToEmoji->insert(QString("one"), QString("\U00000031\U000020e3")); - shortCodeToEmoji->insert(QString("two"), QString("\U00000032\U000020e3")); - shortCodeToEmoji->insert(QString("three"), QString("\U00000033\U000020e3")); - shortCodeToEmoji->insert(QString("four"), QString("\U00000034\U000020e3")); - shortCodeToEmoji->insert(QString("five"), QString("\U00000035\U000020e3")); - shortCodeToEmoji->insert(QString("six"), QString("\U00000036\U000020e3")); - shortCodeToEmoji->insert(QString("seven"), QString("\U00000037\U000020e3")); - shortCodeToEmoji->insert(QString("eight"), QString("\U00000038\U000020e3")); - shortCodeToEmoji->insert(QString("nine"), QString("\U00000039\U000020e3")); - shortCodeToEmoji->insert(QString("keycap_ten"), QString("\U0001f51f")); - shortCodeToEmoji->insert(QString("arrow_forward"), QString("\U000025b6")); - shortCodeToEmoji->insert(QString("pause_button"), QString("\U000023f8")); - shortCodeToEmoji->insert(QString("play_pause"), QString("\U000023ef")); - shortCodeToEmoji->insert(QString("stop_button"), QString("\U000023f9")); - shortCodeToEmoji->insert(QString("record_button"), QString("\U000023fa")); - shortCodeToEmoji->insert(QString("track_next"), QString("\U000023ed")); - shortCodeToEmoji->insert(QString("track_previous"), QString("\U000023ee")); - shortCodeToEmoji->insert(QString("fast_forward"), QString("\U000023e9")); - shortCodeToEmoji->insert(QString("rewind"), QString("\U000023ea")); - shortCodeToEmoji->insert(QString("twisted_rightwards_arrows"), QString("\U0001f500")); - shortCodeToEmoji->insert(QString("repeat"), QString("\U0001f501")); - shortCodeToEmoji->insert(QString("repeat_one"), QString("\U0001f502")); - shortCodeToEmoji->insert(QString("arrow_backward"), QString("\U000025c0")); - shortCodeToEmoji->insert(QString("arrow_up_small"), QString("\U0001f53c")); - shortCodeToEmoji->insert(QString("arrow_down_small"), QString("\U0001f53d")); - shortCodeToEmoji->insert(QString("arrow_double_up"), QString("\U000023eb")); - shortCodeToEmoji->insert(QString("arrow_double_down"), QString("\U000023ec")); - shortCodeToEmoji->insert(QString("arrow_right"), QString("\U000027a1")); - shortCodeToEmoji->insert(QString("arrow_left"), QString("\U00002b05")); - shortCodeToEmoji->insert(QString("arrow_up"), QString("\U00002b06")); - shortCodeToEmoji->insert(QString("arrow_down"), QString("\U00002b07")); - shortCodeToEmoji->insert(QString("arrow_upper_right"), QString("\U00002197")); - shortCodeToEmoji->insert(QString("arrow_lower_right"), QString("\U00002198")); - shortCodeToEmoji->insert(QString("arrow_lower_left"), QString("\U00002199")); - shortCodeToEmoji->insert(QString("arrow_upper_left"), QString("\U00002196")); - shortCodeToEmoji->insert(QString("arrow_up_down"), QString("\U00002195")); - shortCodeToEmoji->insert(QString("left_right_arrow"), QString("\U00002194")); - shortCodeToEmoji->insert(QString("arrows_counterclockwise"), QString("\U0001f504")); - shortCodeToEmoji->insert(QString("arrow_right_hook"), QString("\U000021aa")); - shortCodeToEmoji->insert(QString("leftwards_arrow_with_hook"), QString("\U000021a9")); - shortCodeToEmoji->insert(QString("arrow_heading_up"), QString("\U00002934")); - shortCodeToEmoji->insert(QString("arrow_heading_down"), QString("\U00002935")); - shortCodeToEmoji->insert(QString("hash"), QString("\U00000023\U000020e3")); - shortCodeToEmoji->insert(QString("asterisk"), QString("\U0000002a\U000020e3")); - shortCodeToEmoji->insert(QString("information_source"), QString("\U00002139")); - shortCodeToEmoji->insert(QString("abc"), QString("\U0001f524")); - shortCodeToEmoji->insert(QString("abcd"), QString("\U0001f521")); - shortCodeToEmoji->insert(QString("capital_abcd"), QString("\U0001f520")); - shortCodeToEmoji->insert(QString("symbols"), QString("\U0001f523")); - shortCodeToEmoji->insert(QString("musical_note"), QString("\U0001f3b5")); - shortCodeToEmoji->insert(QString("notes"), QString("\U0001f3b6")); - shortCodeToEmoji->insert(QString("wavy_dash"), QString("\U00003030")); - shortCodeToEmoji->insert(QString("curly_loop"), QString("\U000027b0")); - shortCodeToEmoji->insert(QString("heavy_check_mark"), QString("\U00002714")); - shortCodeToEmoji->insert(QString("arrows_clockwise"), QString("\U0001f503")); - shortCodeToEmoji->insert(QString("heavy_plus_sign"), QString("\U00002795")); - shortCodeToEmoji->insert(QString("heavy_minus_sign"), QString("\U00002796")); - shortCodeToEmoji->insert(QString("heavy_division_sign"), QString("\U00002797")); - shortCodeToEmoji->insert(QString("heavy_multiplication_x"), QString("\U00002716")); - shortCodeToEmoji->insert(QString("heavy_dollar_sign"), QString("\U0001f4b2")); - shortCodeToEmoji->insert(QString("currency_exchange"), QString("\U0001f4b1")); - shortCodeToEmoji->insert(QString("copyright"), QString("\U000000a9")); - shortCodeToEmoji->insert(QString("registered"), QString("\U000000ae")); - shortCodeToEmoji->insert(QString("tm"), QString("\U00002122")); - shortCodeToEmoji->insert(QString("end"), QString("\U0001f51a")); - shortCodeToEmoji->insert(QString("back"), QString("\U0001f519")); - shortCodeToEmoji->insert(QString("on"), QString("\U0001f51b")); - shortCodeToEmoji->insert(QString("top"), QString("\U0001f51d")); - shortCodeToEmoji->insert(QString("soon"), QString("\U0001f51c")); - shortCodeToEmoji->insert(QString("ballot_box_with_check"), QString("\U00002611")); - shortCodeToEmoji->insert(QString("radio_button"), QString("\U0001f518")); - shortCodeToEmoji->insert(QString("white_circle"), QString("\U000026aa")); - shortCodeToEmoji->insert(QString("black_circle"), QString("\U000026ab")); - shortCodeToEmoji->insert(QString("red_circle"), QString("\U0001f534")); - shortCodeToEmoji->insert(QString("large_blue_circle"), QString("\U0001f535")); - shortCodeToEmoji->insert(QString("small_orange_diamond"), QString("\U0001f538")); - shortCodeToEmoji->insert(QString("small_blue_diamond"), QString("\U0001f539")); - shortCodeToEmoji->insert(QString("large_orange_diamond"), QString("\U0001f536")); - shortCodeToEmoji->insert(QString("large_blue_diamond"), QString("\U0001f537")); - shortCodeToEmoji->insert(QString("small_red_triangle"), QString("\U0001f53a")); - shortCodeToEmoji->insert(QString("black_small_square"), QString("\U000025aa")); - shortCodeToEmoji->insert(QString("white_small_square"), QString("\U000025ab")); - shortCodeToEmoji->insert(QString("black_large_square"), QString("\U00002b1b")); - shortCodeToEmoji->insert(QString("white_large_square"), QString("\U00002b1c")); - shortCodeToEmoji->insert(QString("small_red_triangle_down"), QString("\U0001f53b")); - shortCodeToEmoji->insert(QString("black_medium_square"), QString("\U000025fc")); - shortCodeToEmoji->insert(QString("white_medium_square"), QString("\U000025fb")); - shortCodeToEmoji->insert(QString("black_medium_small_square"), QString("\U000025fe")); - shortCodeToEmoji->insert(QString("white_medium_small_square"), QString("\U000025fd")); - shortCodeToEmoji->insert(QString("black_square_button"), QString("\U0001f532")); - shortCodeToEmoji->insert(QString("white_square_button"), QString("\U0001f533")); - shortCodeToEmoji->insert(QString("speaker"), QString("\U0001f508")); - shortCodeToEmoji->insert(QString("sound"), QString("\U0001f509")); - shortCodeToEmoji->insert(QString("loud_sound"), QString("\U0001f50a")); - shortCodeToEmoji->insert(QString("mute"), QString("\U0001f507")); - shortCodeToEmoji->insert(QString("mega"), QString("\U0001f4e3")); - shortCodeToEmoji->insert(QString("loudspeaker"), QString("\U0001f4e2")); - shortCodeToEmoji->insert(QString("bell"), QString("\U0001f514")); - shortCodeToEmoji->insert(QString("no_bell"), QString("\U0001f515")); - shortCodeToEmoji->insert(QString("black_joker"), QString("\U0001f0cf")); - shortCodeToEmoji->insert(QString("mahjong"), QString("\U0001f004")); - shortCodeToEmoji->insert(QString("spades"), QString("\U00002660")); - shortCodeToEmoji->insert(QString("clubs"), QString("\U00002663")); - shortCodeToEmoji->insert(QString("hearts"), QString("\U00002665")); - shortCodeToEmoji->insert(QString("diamonds"), QString("\U00002666")); - shortCodeToEmoji->insert(QString("flower_playing_cards"), QString("\U0001f3b4")); - shortCodeToEmoji->insert(QString("thought_balloon"), QString("\U0001f4ad")); - shortCodeToEmoji->insert(QString("anger_right"), QString("\U0001f5ef")); - shortCodeToEmoji->insert(QString("speech_balloon"), QString("\U0001f4ac")); - shortCodeToEmoji->insert(QString("clock1"), QString("\U0001f550")); - shortCodeToEmoji->insert(QString("clock2"), QString("\U0001f551")); - shortCodeToEmoji->insert(QString("clock3"), QString("\U0001f552")); - shortCodeToEmoji->insert(QString("clock4"), QString("\U0001f553")); - shortCodeToEmoji->insert(QString("clock5"), QString("\U0001f554")); - shortCodeToEmoji->insert(QString("clock6"), QString("\U0001f555")); - shortCodeToEmoji->insert(QString("clock7"), QString("\U0001f556")); - shortCodeToEmoji->insert(QString("clock8"), QString("\U0001f557")); - shortCodeToEmoji->insert(QString("clock9"), QString("\U0001f558")); - shortCodeToEmoji->insert(QString("clock10"), QString("\U0001f559")); - shortCodeToEmoji->insert(QString("clock11"), QString("\U0001f55a")); - shortCodeToEmoji->insert(QString("clock12"), QString("\U0001f55b")); - shortCodeToEmoji->insert(QString("clock130"), QString("\U0001f55c")); - shortCodeToEmoji->insert(QString("clock230"), QString("\U0001f55d")); - shortCodeToEmoji->insert(QString("clock330"), QString("\U0001f55e")); - shortCodeToEmoji->insert(QString("clock430"), QString("\U0001f55f")); - shortCodeToEmoji->insert(QString("clock530"), QString("\U0001f560")); - shortCodeToEmoji->insert(QString("clock630"), QString("\U0001f561")); - shortCodeToEmoji->insert(QString("clock730"), QString("\U0001f562")); - shortCodeToEmoji->insert(QString("clock830"), QString("\U0001f563")); - shortCodeToEmoji->insert(QString("clock930"), QString("\U0001f564")); - shortCodeToEmoji->insert(QString("clock1030"), QString("\U0001f565")); - shortCodeToEmoji->insert(QString("clock1130"), QString("\U0001f566")); - shortCodeToEmoji->insert(QString("clock1230"), QString("\U0001f567")); - shortCodeToEmoji->insert(QString("eye_in_speech_bubble"), QString("\U0001f441\U0001f5e8")); - shortCodeToEmoji->insert(QString("flag_ac"), QString("\U0001f1e6\U0001f1e8")); - shortCodeToEmoji->insert(QString("flag_af"), QString("\U0001f1e6\U0001f1eb")); - shortCodeToEmoji->insert(QString("flag_al"), QString("\U0001f1e6\U0001f1f1")); - shortCodeToEmoji->insert(QString("flag_dz"), QString("\U0001f1e9\U0001f1ff")); - shortCodeToEmoji->insert(QString("flag_ad"), QString("\U0001f1e6\U0001f1e9")); - shortCodeToEmoji->insert(QString("flag_ao"), QString("\U0001f1e6\U0001f1f4")); - shortCodeToEmoji->insert(QString("flag_ai"), QString("\U0001f1e6\U0001f1ee")); - shortCodeToEmoji->insert(QString("flag_ag"), QString("\U0001f1e6\U0001f1ec")); - shortCodeToEmoji->insert(QString("flag_ar"), QString("\U0001f1e6\U0001f1f7")); - shortCodeToEmoji->insert(QString("flag_am"), QString("\U0001f1e6\U0001f1f2")); - shortCodeToEmoji->insert(QString("flag_aw"), QString("\U0001f1e6\U0001f1fc")); - shortCodeToEmoji->insert(QString("flag_au"), QString("\U0001f1e6\U0001f1fa")); - shortCodeToEmoji->insert(QString("flag_at"), QString("\U0001f1e6\U0001f1f9")); - shortCodeToEmoji->insert(QString("flag_az"), QString("\U0001f1e6\U0001f1ff")); - shortCodeToEmoji->insert(QString("flag_bs"), QString("\U0001f1e7\U0001f1f8")); - shortCodeToEmoji->insert(QString("flag_bh"), QString("\U0001f1e7\U0001f1ed")); - shortCodeToEmoji->insert(QString("flag_bd"), QString("\U0001f1e7\U0001f1e9")); - shortCodeToEmoji->insert(QString("flag_bb"), QString("\U0001f1e7\U0001f1e7")); - shortCodeToEmoji->insert(QString("flag_by"), QString("\U0001f1e7\U0001f1fe")); - shortCodeToEmoji->insert(QString("flag_be"), QString("\U0001f1e7\U0001f1ea")); - shortCodeToEmoji->insert(QString("flag_bz"), QString("\U0001f1e7\U0001f1ff")); - shortCodeToEmoji->insert(QString("flag_bj"), QString("\U0001f1e7\U0001f1ef")); - shortCodeToEmoji->insert(QString("flag_bm"), QString("\U0001f1e7\U0001f1f2")); - shortCodeToEmoji->insert(QString("flag_bt"), QString("\U0001f1e7\U0001f1f9")); - shortCodeToEmoji->insert(QString("flag_bo"), QString("\U0001f1e7\U0001f1f4")); - shortCodeToEmoji->insert(QString("flag_ba"), QString("\U0001f1e7\U0001f1e6")); - shortCodeToEmoji->insert(QString("flag_bw"), QString("\U0001f1e7\U0001f1fc")); - shortCodeToEmoji->insert(QString("flag_br"), QString("\U0001f1e7\U0001f1f7")); - shortCodeToEmoji->insert(QString("flag_bn"), QString("\U0001f1e7\U0001f1f3")); - shortCodeToEmoji->insert(QString("flag_bg"), QString("\U0001f1e7\U0001f1ec")); - shortCodeToEmoji->insert(QString("flag_bf"), QString("\U0001f1e7\U0001f1eb")); - shortCodeToEmoji->insert(QString("flag_bi"), QString("\U0001f1e7\U0001f1ee")); - shortCodeToEmoji->insert(QString("flag_cv"), QString("\U0001f1e8\U0001f1fb")); - shortCodeToEmoji->insert(QString("flag_kh"), QString("\U0001f1f0\U0001f1ed")); - shortCodeToEmoji->insert(QString("flag_cm"), QString("\U0001f1e8\U0001f1f2")); - shortCodeToEmoji->insert(QString("flag_ca"), QString("\U0001f1e8\U0001f1e6")); - shortCodeToEmoji->insert(QString("flag_ky"), QString("\U0001f1f0\U0001f1fe")); - shortCodeToEmoji->insert(QString("flag_cf"), QString("\U0001f1e8\U0001f1eb")); - shortCodeToEmoji->insert(QString("flag_td"), QString("\U0001f1f9\U0001f1e9")); - shortCodeToEmoji->insert(QString("flag_cl"), QString("\U0001f1e8\U0001f1f1")); - shortCodeToEmoji->insert(QString("flag_cn"), QString("\U0001f1e8\U0001f1f3")); - shortCodeToEmoji->insert(QString("flag_co"), QString("\U0001f1e8\U0001f1f4")); - shortCodeToEmoji->insert(QString("flag_km"), QString("\U0001f1f0\U0001f1f2")); - shortCodeToEmoji->insert(QString("flag_cg"), QString("\U0001f1e8\U0001f1ec")); - shortCodeToEmoji->insert(QString("flag_cd"), QString("\U0001f1e8\U0001f1e9")); - shortCodeToEmoji->insert(QString("flag_cr"), QString("\U0001f1e8\U0001f1f7")); - shortCodeToEmoji->insert(QString("flag_hr"), QString("\U0001f1ed\U0001f1f7")); - shortCodeToEmoji->insert(QString("flag_cu"), QString("\U0001f1e8\U0001f1fa")); - shortCodeToEmoji->insert(QString("flag_cy"), QString("\U0001f1e8\U0001f1fe")); - shortCodeToEmoji->insert(QString("flag_cz"), QString("\U0001f1e8\U0001f1ff")); - shortCodeToEmoji->insert(QString("flag_dk"), QString("\U0001f1e9\U0001f1f0")); - shortCodeToEmoji->insert(QString("flag_dj"), QString("\U0001f1e9\U0001f1ef")); - shortCodeToEmoji->insert(QString("flag_dm"), QString("\U0001f1e9\U0001f1f2")); - shortCodeToEmoji->insert(QString("flag_do"), QString("\U0001f1e9\U0001f1f4")); - shortCodeToEmoji->insert(QString("flag_ec"), QString("\U0001f1ea\U0001f1e8")); - shortCodeToEmoji->insert(QString("flag_eg"), QString("\U0001f1ea\U0001f1ec")); - shortCodeToEmoji->insert(QString("flag_sv"), QString("\U0001f1f8\U0001f1fb")); - shortCodeToEmoji->insert(QString("flag_gq"), QString("\U0001f1ec\U0001f1f6")); - shortCodeToEmoji->insert(QString("flag_er"), QString("\U0001f1ea\U0001f1f7")); - shortCodeToEmoji->insert(QString("flag_ee"), QString("\U0001f1ea\U0001f1ea")); - shortCodeToEmoji->insert(QString("flag_et"), QString("\U0001f1ea\U0001f1f9")); - shortCodeToEmoji->insert(QString("flag_fk"), QString("\U0001f1eb\U0001f1f0")); - shortCodeToEmoji->insert(QString("flag_fo"), QString("\U0001f1eb\U0001f1f4")); - shortCodeToEmoji->insert(QString("flag_fj"), QString("\U0001f1eb\U0001f1ef")); - shortCodeToEmoji->insert(QString("flag_fi"), QString("\U0001f1eb\U0001f1ee")); - shortCodeToEmoji->insert(QString("flag_fr"), QString("\U0001f1eb\U0001f1f7")); - shortCodeToEmoji->insert(QString("flag_pf"), QString("\U0001f1f5\U0001f1eb")); - shortCodeToEmoji->insert(QString("flag_ga"), QString("\U0001f1ec\U0001f1e6")); - shortCodeToEmoji->insert(QString("flag_gm"), QString("\U0001f1ec\U0001f1f2")); - shortCodeToEmoji->insert(QString("flag_ge"), QString("\U0001f1ec\U0001f1ea")); - shortCodeToEmoji->insert(QString("flag_de"), QString("\U0001f1e9\U0001f1ea")); - shortCodeToEmoji->insert(QString("flag_gh"), QString("\U0001f1ec\U0001f1ed")); - shortCodeToEmoji->insert(QString("flag_gi"), QString("\U0001f1ec\U0001f1ee")); - shortCodeToEmoji->insert(QString("flag_gr"), QString("\U0001f1ec\U0001f1f7")); - shortCodeToEmoji->insert(QString("flag_gl"), QString("\U0001f1ec\U0001f1f1")); - shortCodeToEmoji->insert(QString("flag_gd"), QString("\U0001f1ec\U0001f1e9")); - shortCodeToEmoji->insert(QString("flag_gu"), QString("\U0001f1ec\U0001f1fa")); - shortCodeToEmoji->insert(QString("flag_gt"), QString("\U0001f1ec\U0001f1f9")); - shortCodeToEmoji->insert(QString("flag_gn"), QString("\U0001f1ec\U0001f1f3")); - shortCodeToEmoji->insert(QString("flag_gw"), QString("\U0001f1ec\U0001f1fc")); - shortCodeToEmoji->insert(QString("flag_gy"), QString("\U0001f1ec\U0001f1fe")); - shortCodeToEmoji->insert(QString("flag_ht"), QString("\U0001f1ed\U0001f1f9")); - shortCodeToEmoji->insert(QString("flag_hn"), QString("\U0001f1ed\U0001f1f3")); - shortCodeToEmoji->insert(QString("flag_hk"), QString("\U0001f1ed\U0001f1f0")); - shortCodeToEmoji->insert(QString("flag_hu"), QString("\U0001f1ed\U0001f1fa")); - shortCodeToEmoji->insert(QString("flag_is"), QString("\U0001f1ee\U0001f1f8")); - shortCodeToEmoji->insert(QString("flag_in"), QString("\U0001f1ee\U0001f1f3")); - shortCodeToEmoji->insert(QString("flag_id"), QString("\U0001f1ee\U0001f1e9")); - shortCodeToEmoji->insert(QString("flag_ir"), QString("\U0001f1ee\U0001f1f7")); - shortCodeToEmoji->insert(QString("flag_iq"), QString("\U0001f1ee\U0001f1f6")); - shortCodeToEmoji->insert(QString("flag_ie"), QString("\U0001f1ee\U0001f1ea")); - shortCodeToEmoji->insert(QString("flag_il"), QString("\U0001f1ee\U0001f1f1")); - shortCodeToEmoji->insert(QString("flag_it"), QString("\U0001f1ee\U0001f1f9")); - shortCodeToEmoji->insert(QString("flag_ci"), QString("\U0001f1e8\U0001f1ee")); - shortCodeToEmoji->insert(QString("flag_jm"), QString("\U0001f1ef\U0001f1f2")); - shortCodeToEmoji->insert(QString("flag_jp"), QString("\U0001f1ef\U0001f1f5")); - shortCodeToEmoji->insert(QString("flag_je"), QString("\U0001f1ef\U0001f1ea")); - shortCodeToEmoji->insert(QString("flag_jo"), QString("\U0001f1ef\U0001f1f4")); - shortCodeToEmoji->insert(QString("flag_kz"), QString("\U0001f1f0\U0001f1ff")); - shortCodeToEmoji->insert(QString("flag_ke"), QString("\U0001f1f0\U0001f1ea")); - shortCodeToEmoji->insert(QString("flag_ki"), QString("\U0001f1f0\U0001f1ee")); - shortCodeToEmoji->insert(QString("flag_xk"), QString("\U0001f1fd\U0001f1f0")); - shortCodeToEmoji->insert(QString("flag_kw"), QString("\U0001f1f0\U0001f1fc")); - shortCodeToEmoji->insert(QString("flag_kg"), QString("\U0001f1f0\U0001f1ec")); - shortCodeToEmoji->insert(QString("flag_la"), QString("\U0001f1f1\U0001f1e6")); - shortCodeToEmoji->insert(QString("flag_lv"), QString("\U0001f1f1\U0001f1fb")); - shortCodeToEmoji->insert(QString("flag_lb"), QString("\U0001f1f1\U0001f1e7")); - shortCodeToEmoji->insert(QString("flag_ls"), QString("\U0001f1f1\U0001f1f8")); - shortCodeToEmoji->insert(QString("flag_lr"), QString("\U0001f1f1\U0001f1f7")); - shortCodeToEmoji->insert(QString("flag_ly"), QString("\U0001f1f1\U0001f1fe")); - shortCodeToEmoji->insert(QString("flag_li"), QString("\U0001f1f1\U0001f1ee")); - shortCodeToEmoji->insert(QString("flag_lt"), QString("\U0001f1f1\U0001f1f9")); - shortCodeToEmoji->insert(QString("flag_lu"), QString("\U0001f1f1\U0001f1fa")); - shortCodeToEmoji->insert(QString("flag_mo"), QString("\U0001f1f2\U0001f1f4")); - shortCodeToEmoji->insert(QString("flag_mk"), QString("\U0001f1f2\U0001f1f0")); - shortCodeToEmoji->insert(QString("flag_mg"), QString("\U0001f1f2\U0001f1ec")); - shortCodeToEmoji->insert(QString("flag_mw"), QString("\U0001f1f2\U0001f1fc")); - shortCodeToEmoji->insert(QString("flag_my"), QString("\U0001f1f2\U0001f1fe")); - shortCodeToEmoji->insert(QString("flag_mv"), QString("\U0001f1f2\U0001f1fb")); - shortCodeToEmoji->insert(QString("flag_ml"), QString("\U0001f1f2\U0001f1f1")); - shortCodeToEmoji->insert(QString("flag_mt"), QString("\U0001f1f2\U0001f1f9")); - shortCodeToEmoji->insert(QString("flag_mh"), QString("\U0001f1f2\U0001f1ed")); - shortCodeToEmoji->insert(QString("flag_mr"), QString("\U0001f1f2\U0001f1f7")); - shortCodeToEmoji->insert(QString("flag_mu"), QString("\U0001f1f2\U0001f1fa")); - shortCodeToEmoji->insert(QString("flag_mx"), QString("\U0001f1f2\U0001f1fd")); - shortCodeToEmoji->insert(QString("flag_fm"), QString("\U0001f1eb\U0001f1f2")); - shortCodeToEmoji->insert(QString("flag_md"), QString("\U0001f1f2\U0001f1e9")); - shortCodeToEmoji->insert(QString("flag_mc"), QString("\U0001f1f2\U0001f1e8")); - shortCodeToEmoji->insert(QString("flag_mn"), QString("\U0001f1f2\U0001f1f3")); - shortCodeToEmoji->insert(QString("flag_me"), QString("\U0001f1f2\U0001f1ea")); - shortCodeToEmoji->insert(QString("flag_ms"), QString("\U0001f1f2\U0001f1f8")); - shortCodeToEmoji->insert(QString("flag_ma"), QString("\U0001f1f2\U0001f1e6")); - shortCodeToEmoji->insert(QString("flag_mz"), QString("\U0001f1f2\U0001f1ff")); - shortCodeToEmoji->insert(QString("flag_mm"), QString("\U0001f1f2\U0001f1f2")); - shortCodeToEmoji->insert(QString("flag_na"), QString("\U0001f1f3\U0001f1e6")); - shortCodeToEmoji->insert(QString("flag_nr"), QString("\U0001f1f3\U0001f1f7")); - shortCodeToEmoji->insert(QString("flag_np"), QString("\U0001f1f3\U0001f1f5")); - shortCodeToEmoji->insert(QString("flag_nl"), QString("\U0001f1f3\U0001f1f1")); - shortCodeToEmoji->insert(QString("flag_nc"), QString("\U0001f1f3\U0001f1e8")); - shortCodeToEmoji->insert(QString("flag_nz"), QString("\U0001f1f3\U0001f1ff")); - shortCodeToEmoji->insert(QString("flag_ni"), QString("\U0001f1f3\U0001f1ee")); - shortCodeToEmoji->insert(QString("flag_ne"), QString("\U0001f1f3\U0001f1ea")); - shortCodeToEmoji->insert(QString("flag_ng"), QString("\U0001f1f3\U0001f1ec")); - shortCodeToEmoji->insert(QString("flag_nu"), QString("\U0001f1f3\U0001f1fa")); - shortCodeToEmoji->insert(QString("flag_kp"), QString("\U0001f1f0\U0001f1f5")); - shortCodeToEmoji->insert(QString("flag_no"), QString("\U0001f1f3\U0001f1f4")); - shortCodeToEmoji->insert(QString("flag_om"), QString("\U0001f1f4\U0001f1f2")); - shortCodeToEmoji->insert(QString("flag_pk"), QString("\U0001f1f5\U0001f1f0")); - shortCodeToEmoji->insert(QString("flag_pw"), QString("\U0001f1f5\U0001f1fc")); - shortCodeToEmoji->insert(QString("flag_ps"), QString("\U0001f1f5\U0001f1f8")); - shortCodeToEmoji->insert(QString("flag_pa"), QString("\U0001f1f5\U0001f1e6")); - shortCodeToEmoji->insert(QString("flag_pg"), QString("\U0001f1f5\U0001f1ec")); - shortCodeToEmoji->insert(QString("flag_py"), QString("\U0001f1f5\U0001f1fe")); - shortCodeToEmoji->insert(QString("flag_pe"), QString("\U0001f1f5\U0001f1ea")); - shortCodeToEmoji->insert(QString("flag_ph"), QString("\U0001f1f5\U0001f1ed")); - shortCodeToEmoji->insert(QString("flag_pl"), QString("\U0001f1f5\U0001f1f1")); - shortCodeToEmoji->insert(QString("flag_pt"), QString("\U0001f1f5\U0001f1f9")); - shortCodeToEmoji->insert(QString("flag_pr"), QString("\U0001f1f5\U0001f1f7")); - shortCodeToEmoji->insert(QString("flag_qa"), QString("\U0001f1f6\U0001f1e6")); - shortCodeToEmoji->insert(QString("flag_ro"), QString("\U0001f1f7\U0001f1f4")); - shortCodeToEmoji->insert(QString("flag_ru"), QString("\U0001f1f7\U0001f1fa")); - shortCodeToEmoji->insert(QString("flag_rw"), QString("\U0001f1f7\U0001f1fc")); - shortCodeToEmoji->insert(QString("flag_sh"), QString("\U0001f1f8\U0001f1ed")); - shortCodeToEmoji->insert(QString("flag_kn"), QString("\U0001f1f0\U0001f1f3")); - shortCodeToEmoji->insert(QString("flag_lc"), QString("\U0001f1f1\U0001f1e8")); - shortCodeToEmoji->insert(QString("flag_vc"), QString("\U0001f1fb\U0001f1e8")); - shortCodeToEmoji->insert(QString("flag_ws"), QString("\U0001f1fc\U0001f1f8")); - shortCodeToEmoji->insert(QString("flag_sm"), QString("\U0001f1f8\U0001f1f2")); - shortCodeToEmoji->insert(QString("flag_st"), QString("\U0001f1f8\U0001f1f9")); - shortCodeToEmoji->insert(QString("flag_sa"), QString("\U0001f1f8\U0001f1e6")); - shortCodeToEmoji->insert(QString("flag_sn"), QString("\U0001f1f8\U0001f1f3")); - shortCodeToEmoji->insert(QString("flag_rs"), QString("\U0001f1f7\U0001f1f8")); - shortCodeToEmoji->insert(QString("flag_sc"), QString("\U0001f1f8\U0001f1e8")); - shortCodeToEmoji->insert(QString("flag_sl"), QString("\U0001f1f8\U0001f1f1")); - shortCodeToEmoji->insert(QString("flag_sg"), QString("\U0001f1f8\U0001f1ec")); - shortCodeToEmoji->insert(QString("flag_sk"), QString("\U0001f1f8\U0001f1f0")); - shortCodeToEmoji->insert(QString("flag_si"), QString("\U0001f1f8\U0001f1ee")); - shortCodeToEmoji->insert(QString("flag_sb"), QString("\U0001f1f8\U0001f1e7")); - shortCodeToEmoji->insert(QString("flag_so"), QString("\U0001f1f8\U0001f1f4")); - shortCodeToEmoji->insert(QString("flag_za"), QString("\U0001f1ff\U0001f1e6")); - shortCodeToEmoji->insert(QString("flag_kr"), QString("\U0001f1f0\U0001f1f7")); - shortCodeToEmoji->insert(QString("flag_es"), QString("\U0001f1ea\U0001f1f8")); - shortCodeToEmoji->insert(QString("flag_lk"), QString("\U0001f1f1\U0001f1f0")); - shortCodeToEmoji->insert(QString("flag_sd"), QString("\U0001f1f8\U0001f1e9")); - shortCodeToEmoji->insert(QString("flag_sr"), QString("\U0001f1f8\U0001f1f7")); - shortCodeToEmoji->insert(QString("flag_sz"), QString("\U0001f1f8\U0001f1ff")); - shortCodeToEmoji->insert(QString("flag_se"), QString("\U0001f1f8\U0001f1ea")); - shortCodeToEmoji->insert(QString("flag_ch"), QString("\U0001f1e8\U0001f1ed")); - shortCodeToEmoji->insert(QString("flag_sy"), QString("\U0001f1f8\U0001f1fe")); - shortCodeToEmoji->insert(QString("flag_tw"), QString("\U0001f1f9\U0001f1fc")); - shortCodeToEmoji->insert(QString("flag_tj"), QString("\U0001f1f9\U0001f1ef")); - shortCodeToEmoji->insert(QString("flag_tz"), QString("\U0001f1f9\U0001f1ff")); - shortCodeToEmoji->insert(QString("flag_th"), QString("\U0001f1f9\U0001f1ed")); - shortCodeToEmoji->insert(QString("flag_tl"), QString("\U0001f1f9\U0001f1f1")); - shortCodeToEmoji->insert(QString("flag_tg"), QString("\U0001f1f9\U0001f1ec")); - shortCodeToEmoji->insert(QString("flag_to"), QString("\U0001f1f9\U0001f1f4")); - shortCodeToEmoji->insert(QString("flag_tt"), QString("\U0001f1f9\U0001f1f9")); - shortCodeToEmoji->insert(QString("flag_tn"), QString("\U0001f1f9\U0001f1f3")); - shortCodeToEmoji->insert(QString("flag_tr"), QString("\U0001f1f9\U0001f1f7")); - shortCodeToEmoji->insert(QString("flag_tm"), QString("\U0001f1f9\U0001f1f2")); - shortCodeToEmoji->insert(QString("flag_tv"), QString("\U0001f1f9\U0001f1fb")); - shortCodeToEmoji->insert(QString("flag_ug"), QString("\U0001f1fa\U0001f1ec")); - shortCodeToEmoji->insert(QString("flag_ua"), QString("\U0001f1fa\U0001f1e6")); - shortCodeToEmoji->insert(QString("flag_ae"), QString("\U0001f1e6\U0001f1ea")); - shortCodeToEmoji->insert(QString("flag_gb"), QString("\U0001f1ec\U0001f1e7")); - shortCodeToEmoji->insert(QString("flag_us"), QString("\U0001f1fa\U0001f1f8")); - shortCodeToEmoji->insert(QString("flag_vi"), QString("\U0001f1fb\U0001f1ee")); - shortCodeToEmoji->insert(QString("flag_uy"), QString("\U0001f1fa\U0001f1fe")); - shortCodeToEmoji->insert(QString("flag_uz"), QString("\U0001f1fa\U0001f1ff")); - shortCodeToEmoji->insert(QString("flag_vu"), QString("\U0001f1fb\U0001f1fa")); - shortCodeToEmoji->insert(QString("flag_va"), QString("\U0001f1fb\U0001f1e6")); - shortCodeToEmoji->insert(QString("flag_ve"), QString("\U0001f1fb\U0001f1ea")); - shortCodeToEmoji->insert(QString("flag_vn"), QString("\U0001f1fb\U0001f1f3")); - shortCodeToEmoji->insert(QString("flag_wf"), QString("\U0001f1fc\U0001f1eb")); - shortCodeToEmoji->insert(QString("flag_eh"), QString("\U0001f1ea\U0001f1ed")); - shortCodeToEmoji->insert(QString("flag_ye"), QString("\U0001f1fe\U0001f1ea")); - shortCodeToEmoji->insert(QString("flag_zm"), QString("\U0001f1ff\U0001f1f2")); - shortCodeToEmoji->insert(QString("flag_zw"), QString("\U0001f1ff\U0001f1fc")); - shortCodeToEmoji->insert(QString("flag_re"), QString("\U0001f1f7\U0001f1ea")); - shortCodeToEmoji->insert(QString("flag_ax"), QString("\U0001f1e6\U0001f1fd")); - shortCodeToEmoji->insert(QString("flag_ta"), QString("\U0001f1f9\U0001f1e6")); - shortCodeToEmoji->insert(QString("flag_io"), QString("\U0001f1ee\U0001f1f4")); - shortCodeToEmoji->insert(QString("flag_bq"), QString("\U0001f1e7\U0001f1f6")); - shortCodeToEmoji->insert(QString("flag_cx"), QString("\U0001f1e8\U0001f1fd")); - shortCodeToEmoji->insert(QString("flag_cc"), QString("\U0001f1e8\U0001f1e8")); - shortCodeToEmoji->insert(QString("flag_gg"), QString("\U0001f1ec\U0001f1ec")); - shortCodeToEmoji->insert(QString("flag_im"), QString("\U0001f1ee\U0001f1f2")); - shortCodeToEmoji->insert(QString("flag_yt"), QString("\U0001f1fe\U0001f1f9")); - shortCodeToEmoji->insert(QString("flag_nf"), QString("\U0001f1f3\U0001f1eb")); - shortCodeToEmoji->insert(QString("flag_pn"), QString("\U0001f1f5\U0001f1f3")); - shortCodeToEmoji->insert(QString("flag_bl"), QString("\U0001f1e7\U0001f1f1")); - shortCodeToEmoji->insert(QString("flag_pm"), QString("\U0001f1f5\U0001f1f2")); - shortCodeToEmoji->insert(QString("flag_gs"), QString("\U0001f1ec\U0001f1f8")); - shortCodeToEmoji->insert(QString("flag_tk"), QString("\U0001f1f9\U0001f1f0")); - shortCodeToEmoji->insert(QString("flag_bv"), QString("\U0001f1e7\U0001f1fb")); - shortCodeToEmoji->insert(QString("flag_hm"), QString("\U0001f1ed\U0001f1f2")); - shortCodeToEmoji->insert(QString("flag_sj"), QString("\U0001f1f8\U0001f1ef")); - shortCodeToEmoji->insert(QString("flag_um"), QString("\U0001f1fa\U0001f1f2")); - shortCodeToEmoji->insert(QString("flag_ic"), QString("\U0001f1ee\U0001f1e8")); - shortCodeToEmoji->insert(QString("flag_ea"), QString("\U0001f1ea\U0001f1e6")); - shortCodeToEmoji->insert(QString("flag_cp"), QString("\U0001f1e8\U0001f1f5")); - shortCodeToEmoji->insert(QString("flag_dg"), QString("\U0001f1e9\U0001f1ec")); - shortCodeToEmoji->insert(QString("flag_as"), QString("\U0001f1e6\U0001f1f8")); - shortCodeToEmoji->insert(QString("flag_aq"), QString("\U0001f1e6\U0001f1f6")); - shortCodeToEmoji->insert(QString("flag_vg"), QString("\U0001f1fb\U0001f1ec")); - shortCodeToEmoji->insert(QString("flag_ck"), QString("\U0001f1e8\U0001f1f0")); - shortCodeToEmoji->insert(QString("flag_cw"), QString("\U0001f1e8\U0001f1fc")); - shortCodeToEmoji->insert(QString("flag_eu"), QString("\U0001f1ea\U0001f1fa")); - shortCodeToEmoji->insert(QString("flag_gf"), QString("\U0001f1ec\U0001f1eb")); - shortCodeToEmoji->insert(QString("flag_tf"), QString("\U0001f1f9\U0001f1eb")); - shortCodeToEmoji->insert(QString("flag_gp"), QString("\U0001f1ec\U0001f1f5")); - shortCodeToEmoji->insert(QString("flag_mq"), QString("\U0001f1f2\U0001f1f6")); - shortCodeToEmoji->insert(QString("flag_mp"), QString("\U0001f1f2\U0001f1f5")); - shortCodeToEmoji->insert(QString("flag_sx"), QString("\U0001f1f8\U0001f1fd")); - shortCodeToEmoji->insert(QString("flag_ss"), QString("\U0001f1f8\U0001f1f8")); - shortCodeToEmoji->insert(QString("flag_tc"), QString("\U0001f1f9\U0001f1e8")); - shortCodeToEmoji->insert(QString("flag_mf"), QString("\U0001f1f2\U0001f1eb")); - shortCodeToEmoji->insert(QString("raised_hands_tone1"), QString("\U0001f64c\U0001f3fb")); - shortCodeToEmoji->insert(QString("raised_hands_tone2"), QString("\U0001f64c\U0001f3fc")); - shortCodeToEmoji->insert(QString("raised_hands_tone3"), QString("\U0001f64c\U0001f3fd")); - shortCodeToEmoji->insert(QString("raised_hands_tone4"), QString("\U0001f64c\U0001f3fe")); - shortCodeToEmoji->insert(QString("raised_hands_tone5"), QString("\U0001f64c\U0001f3ff")); - shortCodeToEmoji->insert(QString("clap_tone1"), QString("\U0001f44f\U0001f3fb")); - shortCodeToEmoji->insert(QString("clap_tone2"), QString("\U0001f44f\U0001f3fc")); - shortCodeToEmoji->insert(QString("clap_tone3"), QString("\U0001f44f\U0001f3fd")); - shortCodeToEmoji->insert(QString("clap_tone4"), QString("\U0001f44f\U0001f3fe")); - shortCodeToEmoji->insert(QString("clap_tone5"), QString("\U0001f44f\U0001f3ff")); - shortCodeToEmoji->insert(QString("wave_tone1"), QString("\U0001f44b\U0001f3fb")); - shortCodeToEmoji->insert(QString("wave_tone2"), QString("\U0001f44b\U0001f3fc")); - shortCodeToEmoji->insert(QString("wave_tone3"), QString("\U0001f44b\U0001f3fd")); - shortCodeToEmoji->insert(QString("wave_tone4"), QString("\U0001f44b\U0001f3fe")); - shortCodeToEmoji->insert(QString("wave_tone5"), QString("\U0001f44b\U0001f3ff")); - shortCodeToEmoji->insert(QString("thumbsup_tone1"), QString("\U0001f44d\U0001f3fb")); - shortCodeToEmoji->insert(QString("thumbsup_tone2"), QString("\U0001f44d\U0001f3fc")); - shortCodeToEmoji->insert(QString("thumbsup_tone3"), QString("\U0001f44d\U0001f3fd")); - shortCodeToEmoji->insert(QString("thumbsup_tone4"), QString("\U0001f44d\U0001f3fe")); - shortCodeToEmoji->insert(QString("thumbsup_tone5"), QString("\U0001f44d\U0001f3ff")); - shortCodeToEmoji->insert(QString("thumbsdown_tone1"), QString("\U0001f44e\U0001f3fb")); - shortCodeToEmoji->insert(QString("thumbsdown_tone2"), QString("\U0001f44e\U0001f3fc")); - shortCodeToEmoji->insert(QString("thumbsdown_tone3"), QString("\U0001f44e\U0001f3fd")); - shortCodeToEmoji->insert(QString("thumbsdown_tone4"), QString("\U0001f44e\U0001f3fe")); - shortCodeToEmoji->insert(QString("thumbsdown_tone5"), QString("\U0001f44e\U0001f3ff")); - shortCodeToEmoji->insert(QString("punch_tone1"), QString("\U0001f44a\U0001f3fb")); - shortCodeToEmoji->insert(QString("punch_tone2"), QString("\U0001f44a\U0001f3fc")); - shortCodeToEmoji->insert(QString("punch_tone3"), QString("\U0001f44a\U0001f3fd")); - shortCodeToEmoji->insert(QString("punch_tone4"), QString("\U0001f44a\U0001f3fe")); - shortCodeToEmoji->insert(QString("punch_tone5"), QString("\U0001f44a\U0001f3ff")); - shortCodeToEmoji->insert(QString("fist_tone1"), QString("\U0000270a\U0001f3fb")); - shortCodeToEmoji->insert(QString("fist_tone2"), QString("\U0000270a\U0001f3fc")); - shortCodeToEmoji->insert(QString("fist_tone3"), QString("\U0000270a\U0001f3fd")); - shortCodeToEmoji->insert(QString("fist_tone4"), QString("\U0000270a\U0001f3fe")); - shortCodeToEmoji->insert(QString("fist_tone5"), QString("\U0000270a\U0001f3ff")); - shortCodeToEmoji->insert(QString("v_tone1"), QString("\U0000270c\U0001f3fb")); - shortCodeToEmoji->insert(QString("v_tone2"), QString("\U0000270c\U0001f3fc")); - shortCodeToEmoji->insert(QString("v_tone3"), QString("\U0000270c\U0001f3fd")); - shortCodeToEmoji->insert(QString("v_tone4"), QString("\U0000270c\U0001f3fe")); - shortCodeToEmoji->insert(QString("v_tone5"), QString("\U0000270c\U0001f3ff")); - shortCodeToEmoji->insert(QString("ok_hand_tone1"), QString("\U0001f44c\U0001f3fb")); - shortCodeToEmoji->insert(QString("ok_hand_tone2"), QString("\U0001f44c\U0001f3fc")); - shortCodeToEmoji->insert(QString("ok_hand_tone3"), QString("\U0001f44c\U0001f3fd")); - shortCodeToEmoji->insert(QString("ok_hand_tone4"), QString("\U0001f44c\U0001f3fe")); - shortCodeToEmoji->insert(QString("ok_hand_tone5"), QString("\U0001f44c\U0001f3ff")); - shortCodeToEmoji->insert(QString("raised_hand_tone1"), QString("\U0000270b\U0001f3fb")); - shortCodeToEmoji->insert(QString("raised_hand_tone2"), QString("\U0000270b\U0001f3fc")); - shortCodeToEmoji->insert(QString("raised_hand_tone3"), QString("\U0000270b\U0001f3fd")); - shortCodeToEmoji->insert(QString("raised_hand_tone4"), QString("\U0000270b\U0001f3fe")); - shortCodeToEmoji->insert(QString("raised_hand_tone5"), QString("\U0000270b\U0001f3ff")); - shortCodeToEmoji->insert(QString("open_hands_tone1"), QString("\U0001f450\U0001f3fb")); - shortCodeToEmoji->insert(QString("open_hands_tone2"), QString("\U0001f450\U0001f3fc")); - shortCodeToEmoji->insert(QString("open_hands_tone3"), QString("\U0001f450\U0001f3fd")); - shortCodeToEmoji->insert(QString("open_hands_tone4"), QString("\U0001f450\U0001f3fe")); - shortCodeToEmoji->insert(QString("open_hands_tone5"), QString("\U0001f450\U0001f3ff")); - shortCodeToEmoji->insert(QString("muscle_tone1"), QString("\U0001f4aa\U0001f3fb")); - shortCodeToEmoji->insert(QString("muscle_tone2"), QString("\U0001f4aa\U0001f3fc")); - shortCodeToEmoji->insert(QString("muscle_tone3"), QString("\U0001f4aa\U0001f3fd")); - shortCodeToEmoji->insert(QString("muscle_tone4"), QString("\U0001f4aa\U0001f3fe")); - shortCodeToEmoji->insert(QString("muscle_tone5"), QString("\U0001f4aa\U0001f3ff")); - shortCodeToEmoji->insert(QString("pray_tone1"), QString("\U0001f64f\U0001f3fb")); - shortCodeToEmoji->insert(QString("pray_tone2"), QString("\U0001f64f\U0001f3fc")); - shortCodeToEmoji->insert(QString("pray_tone3"), QString("\U0001f64f\U0001f3fd")); - shortCodeToEmoji->insert(QString("pray_tone4"), QString("\U0001f64f\U0001f3fe")); - shortCodeToEmoji->insert(QString("pray_tone5"), QString("\U0001f64f\U0001f3ff")); - shortCodeToEmoji->insert(QString("point_up_tone1"), QString("\U0000261d\U0001f3fb")); - shortCodeToEmoji->insert(QString("point_up_tone2"), QString("\U0000261d\U0001f3fc")); - shortCodeToEmoji->insert(QString("point_up_tone3"), QString("\U0000261d\U0001f3fd")); - shortCodeToEmoji->insert(QString("point_up_tone4"), QString("\U0000261d\U0001f3fe")); - shortCodeToEmoji->insert(QString("point_up_tone5"), QString("\U0000261d\U0001f3ff")); - shortCodeToEmoji->insert(QString("point_up_2_tone1"), QString("\U0001f446\U0001f3fb")); - shortCodeToEmoji->insert(QString("point_up_2_tone2"), QString("\U0001f446\U0001f3fc")); - shortCodeToEmoji->insert(QString("point_up_2_tone3"), QString("\U0001f446\U0001f3fd")); - shortCodeToEmoji->insert(QString("point_up_2_tone4"), QString("\U0001f446\U0001f3fe")); - shortCodeToEmoji->insert(QString("point_up_2_tone5"), QString("\U0001f446\U0001f3ff")); - shortCodeToEmoji->insert(QString("point_down_tone1"), QString("\U0001f447\U0001f3fb")); - shortCodeToEmoji->insert(QString("point_down_tone2"), QString("\U0001f447\U0001f3fc")); - shortCodeToEmoji->insert(QString("point_down_tone3"), QString("\U0001f447\U0001f3fd")); - shortCodeToEmoji->insert(QString("point_down_tone4"), QString("\U0001f447\U0001f3fe")); - shortCodeToEmoji->insert(QString("point_down_tone5"), QString("\U0001f447\U0001f3ff")); - shortCodeToEmoji->insert(QString("point_left_tone1"), QString("\U0001f448\U0001f3fb")); - shortCodeToEmoji->insert(QString("point_left_tone2"), QString("\U0001f448\U0001f3fc")); - shortCodeToEmoji->insert(QString("point_left_tone3"), QString("\U0001f448\U0001f3fd")); - shortCodeToEmoji->insert(QString("point_left_tone4"), QString("\U0001f448\U0001f3fe")); - shortCodeToEmoji->insert(QString("point_left_tone5"), QString("\U0001f448\U0001f3ff")); - shortCodeToEmoji->insert(QString("point_right_tone1"), QString("\U0001f449\U0001f3fb")); - shortCodeToEmoji->insert(QString("point_right_tone2"), QString("\U0001f449\U0001f3fc")); - shortCodeToEmoji->insert(QString("point_right_tone3"), QString("\U0001f449\U0001f3fd")); - shortCodeToEmoji->insert(QString("point_right_tone4"), QString("\U0001f449\U0001f3fe")); - shortCodeToEmoji->insert(QString("point_right_tone5"), QString("\U0001f449\U0001f3ff")); - shortCodeToEmoji->insert(QString("middle_finger_tone1"), QString("\U0001f595\U0001f3fb")); - shortCodeToEmoji->insert(QString("middle_finger_tone2"), QString("\U0001f595\U0001f3fc")); - shortCodeToEmoji->insert(QString("middle_finger_tone3"), QString("\U0001f595\U0001f3fd")); - shortCodeToEmoji->insert(QString("middle_finger_tone4"), QString("\U0001f595\U0001f3fe")); - shortCodeToEmoji->insert(QString("middle_finger_tone5"), QString("\U0001f595\U0001f3ff")); - shortCodeToEmoji->insert(QString("hand_splayed_tone1"), QString("\U0001f590\U0001f3fb")); - shortCodeToEmoji->insert(QString("hand_splayed_tone2"), QString("\U0001f590\U0001f3fc")); - shortCodeToEmoji->insert(QString("hand_splayed_tone3"), QString("\U0001f590\U0001f3fd")); - shortCodeToEmoji->insert(QString("hand_splayed_tone4"), QString("\U0001f590\U0001f3fe")); - shortCodeToEmoji->insert(QString("hand_splayed_tone5"), QString("\U0001f590\U0001f3ff")); - shortCodeToEmoji->insert(QString("metal_tone1"), QString("\U0001f918\U0001f3fb")); - shortCodeToEmoji->insert(QString("metal_tone2"), QString("\U0001f918\U0001f3fc")); - shortCodeToEmoji->insert(QString("metal_tone3"), QString("\U0001f918\U0001f3fd")); - shortCodeToEmoji->insert(QString("metal_tone4"), QString("\U0001f918\U0001f3fe")); - shortCodeToEmoji->insert(QString("metal_tone5"), QString("\U0001f918\U0001f3ff")); - shortCodeToEmoji->insert(QString("vulcan_tone1"), QString("\U0001f596\U0001f3fb")); - shortCodeToEmoji->insert(QString("vulcan_tone2"), QString("\U0001f596\U0001f3fc")); - shortCodeToEmoji->insert(QString("vulcan_tone3"), QString("\U0001f596\U0001f3fd")); - shortCodeToEmoji->insert(QString("vulcan_tone4"), QString("\U0001f596\U0001f3fe")); - shortCodeToEmoji->insert(QString("vulcan_tone5"), QString("\U0001f596\U0001f3ff")); - shortCodeToEmoji->insert(QString("writing_hand_tone1"), QString("\U0000270d\U0001f3fb")); - shortCodeToEmoji->insert(QString("writing_hand_tone2"), QString("\U0000270d\U0001f3fc")); - shortCodeToEmoji->insert(QString("writing_hand_tone3"), QString("\U0000270d\U0001f3fd")); - shortCodeToEmoji->insert(QString("writing_hand_tone4"), QString("\U0000270d\U0001f3fe")); - shortCodeToEmoji->insert(QString("writing_hand_tone5"), QString("\U0000270d\U0001f3ff")); - shortCodeToEmoji->insert(QString("nail_care_tone1"), QString("\U0001f485\U0001f3fb")); - shortCodeToEmoji->insert(QString("nail_care_tone2"), QString("\U0001f485\U0001f3fc")); - shortCodeToEmoji->insert(QString("nail_care_tone3"), QString("\U0001f485\U0001f3fd")); - shortCodeToEmoji->insert(QString("nail_care_tone4"), QString("\U0001f485\U0001f3fe")); - shortCodeToEmoji->insert(QString("nail_care_tone5"), QString("\U0001f485\U0001f3ff")); - shortCodeToEmoji->insert(QString("ear_tone1"), QString("\U0001f442\U0001f3fb")); - shortCodeToEmoji->insert(QString("ear_tone2"), QString("\U0001f442\U0001f3fc")); - shortCodeToEmoji->insert(QString("ear_tone3"), QString("\U0001f442\U0001f3fd")); - shortCodeToEmoji->insert(QString("ear_tone4"), QString("\U0001f442\U0001f3fe")); - shortCodeToEmoji->insert(QString("ear_tone5"), QString("\U0001f442\U0001f3ff")); - shortCodeToEmoji->insert(QString("nose_tone1"), QString("\U0001f443\U0001f3fb")); - shortCodeToEmoji->insert(QString("nose_tone2"), QString("\U0001f443\U0001f3fc")); - shortCodeToEmoji->insert(QString("nose_tone3"), QString("\U0001f443\U0001f3fd")); - shortCodeToEmoji->insert(QString("nose_tone4"), QString("\U0001f443\U0001f3fe")); - shortCodeToEmoji->insert(QString("nose_tone5"), QString("\U0001f443\U0001f3ff")); - shortCodeToEmoji->insert(QString("baby_tone1"), QString("\U0001f476\U0001f3fb")); - shortCodeToEmoji->insert(QString("baby_tone2"), QString("\U0001f476\U0001f3fc")); - shortCodeToEmoji->insert(QString("baby_tone3"), QString("\U0001f476\U0001f3fd")); - shortCodeToEmoji->insert(QString("baby_tone4"), QString("\U0001f476\U0001f3fe")); - shortCodeToEmoji->insert(QString("baby_tone5"), QString("\U0001f476\U0001f3ff")); - shortCodeToEmoji->insert(QString("boy_tone1"), QString("\U0001f466\U0001f3fb")); - shortCodeToEmoji->insert(QString("boy_tone2"), QString("\U0001f466\U0001f3fc")); - shortCodeToEmoji->insert(QString("boy_tone3"), QString("\U0001f466\U0001f3fd")); - shortCodeToEmoji->insert(QString("boy_tone4"), QString("\U0001f466\U0001f3fe")); - shortCodeToEmoji->insert(QString("boy_tone5"), QString("\U0001f466\U0001f3ff")); - shortCodeToEmoji->insert(QString("girl_tone1"), QString("\U0001f467\U0001f3fb")); - shortCodeToEmoji->insert(QString("girl_tone2"), QString("\U0001f467\U0001f3fc")); - shortCodeToEmoji->insert(QString("girl_tone3"), QString("\U0001f467\U0001f3fd")); - shortCodeToEmoji->insert(QString("girl_tone4"), QString("\U0001f467\U0001f3fe")); - shortCodeToEmoji->insert(QString("girl_tone5"), QString("\U0001f467\U0001f3ff")); - shortCodeToEmoji->insert(QString("man_tone1"), QString("\U0001f468\U0001f3fb")); - shortCodeToEmoji->insert(QString("man_tone2"), QString("\U0001f468\U0001f3fc")); - shortCodeToEmoji->insert(QString("man_tone3"), QString("\U0001f468\U0001f3fd")); - shortCodeToEmoji->insert(QString("man_tone4"), QString("\U0001f468\U0001f3fe")); - shortCodeToEmoji->insert(QString("man_tone5"), QString("\U0001f468\U0001f3ff")); - shortCodeToEmoji->insert(QString("woman_tone1"), QString("\U0001f469\U0001f3fb")); - shortCodeToEmoji->insert(QString("woman_tone2"), QString("\U0001f469\U0001f3fc")); - shortCodeToEmoji->insert(QString("woman_tone3"), QString("\U0001f469\U0001f3fd")); - shortCodeToEmoji->insert(QString("woman_tone4"), QString("\U0001f469\U0001f3fe")); - shortCodeToEmoji->insert(QString("woman_tone5"), QString("\U0001f469\U0001f3ff")); - shortCodeToEmoji->insert(QString("person_with_blond_hair_tone1"), QString("\U0001f471\U0001f3fb")); - shortCodeToEmoji->insert(QString("person_with_blond_hair_tone2"), QString("\U0001f471\U0001f3fc")); - shortCodeToEmoji->insert(QString("person_with_blond_hair_tone3"), QString("\U0001f471\U0001f3fd")); - shortCodeToEmoji->insert(QString("person_with_blond_hair_tone4"), QString("\U0001f471\U0001f3fe")); - shortCodeToEmoji->insert(QString("person_with_blond_hair_tone5"), QString("\U0001f471\U0001f3ff")); - shortCodeToEmoji->insert(QString("older_man_tone1"), QString("\U0001f474\U0001f3fb")); - shortCodeToEmoji->insert(QString("older_man_tone2"), QString("\U0001f474\U0001f3fc")); - shortCodeToEmoji->insert(QString("older_man_tone3"), QString("\U0001f474\U0001f3fd")); - shortCodeToEmoji->insert(QString("older_man_tone4"), QString("\U0001f474\U0001f3fe")); - shortCodeToEmoji->insert(QString("older_man_tone5"), QString("\U0001f474\U0001f3ff")); - shortCodeToEmoji->insert(QString("older_woman_tone1"), QString("\U0001f475\U0001f3fb")); - shortCodeToEmoji->insert(QString("older_woman_tone2"), QString("\U0001f475\U0001f3fc")); - shortCodeToEmoji->insert(QString("older_woman_tone3"), QString("\U0001f475\U0001f3fd")); - shortCodeToEmoji->insert(QString("older_woman_tone4"), QString("\U0001f475\U0001f3fe")); - shortCodeToEmoji->insert(QString("older_woman_tone5"), QString("\U0001f475\U0001f3ff")); - shortCodeToEmoji->insert(QString("man_with_gua_pi_mao_tone1"), QString("\U0001f472\U0001f3fb")); - shortCodeToEmoji->insert(QString("man_with_gua_pi_mao_tone2"), QString("\U0001f472\U0001f3fc")); - shortCodeToEmoji->insert(QString("man_with_gua_pi_mao_tone3"), QString("\U0001f472\U0001f3fd")); - shortCodeToEmoji->insert(QString("man_with_gua_pi_mao_tone4"), QString("\U0001f472\U0001f3fe")); - shortCodeToEmoji->insert(QString("man_with_gua_pi_mao_tone5"), QString("\U0001f472\U0001f3ff")); - shortCodeToEmoji->insert(QString("man_with_turban_tone1"), QString("\U0001f473\U0001f3fb")); - shortCodeToEmoji->insert(QString("man_with_turban_tone2"), QString("\U0001f473\U0001f3fc")); - shortCodeToEmoji->insert(QString("man_with_turban_tone3"), QString("\U0001f473\U0001f3fd")); - shortCodeToEmoji->insert(QString("man_with_turban_tone4"), QString("\U0001f473\U0001f3fe")); - shortCodeToEmoji->insert(QString("man_with_turban_tone5"), QString("\U0001f473\U0001f3ff")); - shortCodeToEmoji->insert(QString("cop_tone1"), QString("\U0001f46e\U0001f3fb")); - shortCodeToEmoji->insert(QString("cop_tone2"), QString("\U0001f46e\U0001f3fc")); - shortCodeToEmoji->insert(QString("cop_tone3"), QString("\U0001f46e\U0001f3fd")); - shortCodeToEmoji->insert(QString("cop_tone4"), QString("\U0001f46e\U0001f3fe")); - shortCodeToEmoji->insert(QString("cop_tone5"), QString("\U0001f46e\U0001f3ff")); - shortCodeToEmoji->insert(QString("construction_worker_tone1"), QString("\U0001f477\U0001f3fb")); - shortCodeToEmoji->insert(QString("construction_worker_tone2"), QString("\U0001f477\U0001f3fc")); - shortCodeToEmoji->insert(QString("construction_worker_tone3"), QString("\U0001f477\U0001f3fd")); - shortCodeToEmoji->insert(QString("construction_worker_tone4"), QString("\U0001f477\U0001f3fe")); - shortCodeToEmoji->insert(QString("construction_worker_tone5"), QString("\U0001f477\U0001f3ff")); - shortCodeToEmoji->insert(QString("guardsman_tone1"), QString("\U0001f482\U0001f3fb")); - shortCodeToEmoji->insert(QString("guardsman_tone2"), QString("\U0001f482\U0001f3fc")); - shortCodeToEmoji->insert(QString("guardsman_tone3"), QString("\U0001f482\U0001f3fd")); - shortCodeToEmoji->insert(QString("guardsman_tone4"), QString("\U0001f482\U0001f3fe")); - shortCodeToEmoji->insert(QString("guardsman_tone5"), QString("\U0001f482\U0001f3ff")); - shortCodeToEmoji->insert(QString("santa_tone1"), QString("\U0001f385\U0001f3fb")); - shortCodeToEmoji->insert(QString("santa_tone2"), QString("\U0001f385\U0001f3fc")); - shortCodeToEmoji->insert(QString("santa_tone3"), QString("\U0001f385\U0001f3fd")); - shortCodeToEmoji->insert(QString("santa_tone4"), QString("\U0001f385\U0001f3fe")); - shortCodeToEmoji->insert(QString("santa_tone5"), QString("\U0001f385\U0001f3ff")); - shortCodeToEmoji->insert(QString("angel_tone1"), QString("\U0001f47c\U0001f3fb")); - shortCodeToEmoji->insert(QString("angel_tone2"), QString("\U0001f47c\U0001f3fc")); - shortCodeToEmoji->insert(QString("angel_tone3"), QString("\U0001f47c\U0001f3fd")); - shortCodeToEmoji->insert(QString("angel_tone4"), QString("\U0001f47c\U0001f3fe")); - shortCodeToEmoji->insert(QString("angel_tone5"), QString("\U0001f47c\U0001f3ff")); - shortCodeToEmoji->insert(QString("princess_tone1"), QString("\U0001f478\U0001f3fb")); - shortCodeToEmoji->insert(QString("princess_tone2"), QString("\U0001f478\U0001f3fc")); - shortCodeToEmoji->insert(QString("princess_tone3"), QString("\U0001f478\U0001f3fd")); - shortCodeToEmoji->insert(QString("princess_tone4"), QString("\U0001f478\U0001f3fe")); - shortCodeToEmoji->insert(QString("princess_tone5"), QString("\U0001f478\U0001f3ff")); - shortCodeToEmoji->insert(QString("bride_with_veil_tone1"), QString("\U0001f470\U0001f3fb")); - shortCodeToEmoji->insert(QString("bride_with_veil_tone2"), QString("\U0001f470\U0001f3fc")); - shortCodeToEmoji->insert(QString("bride_with_veil_tone3"), QString("\U0001f470\U0001f3fd")); - shortCodeToEmoji->insert(QString("bride_with_veil_tone4"), QString("\U0001f470\U0001f3fe")); - shortCodeToEmoji->insert(QString("bride_with_veil_tone5"), QString("\U0001f470\U0001f3ff")); - shortCodeToEmoji->insert(QString("walking_tone1"), QString("\U0001f6b6\U0001f3fb")); - shortCodeToEmoji->insert(QString("walking_tone2"), QString("\U0001f6b6\U0001f3fc")); - shortCodeToEmoji->insert(QString("walking_tone3"), QString("\U0001f6b6\U0001f3fd")); - shortCodeToEmoji->insert(QString("walking_tone4"), QString("\U0001f6b6\U0001f3fe")); - shortCodeToEmoji->insert(QString("walking_tone5"), QString("\U0001f6b6\U0001f3ff")); - shortCodeToEmoji->insert(QString("runner_tone1"), QString("\U0001f3c3\U0001f3fb")); - shortCodeToEmoji->insert(QString("runner_tone2"), QString("\U0001f3c3\U0001f3fc")); - shortCodeToEmoji->insert(QString("runner_tone3"), QString("\U0001f3c3\U0001f3fd")); - shortCodeToEmoji->insert(QString("runner_tone4"), QString("\U0001f3c3\U0001f3fe")); - shortCodeToEmoji->insert(QString("runner_tone5"), QString("\U0001f3c3\U0001f3ff")); - shortCodeToEmoji->insert(QString("dancer_tone1"), QString("\U0001f483\U0001f3fb")); - shortCodeToEmoji->insert(QString("dancer_tone2"), QString("\U0001f483\U0001f3fc")); - shortCodeToEmoji->insert(QString("dancer_tone3"), QString("\U0001f483\U0001f3fd")); - shortCodeToEmoji->insert(QString("dancer_tone4"), QString("\U0001f483\U0001f3fe")); - shortCodeToEmoji->insert(QString("dancer_tone5"), QString("\U0001f483\U0001f3ff")); - shortCodeToEmoji->insert(QString("bow_tone1"), QString("\U0001f647\U0001f3fb")); - shortCodeToEmoji->insert(QString("bow_tone2"), QString("\U0001f647\U0001f3fc")); - shortCodeToEmoji->insert(QString("bow_tone3"), QString("\U0001f647\U0001f3fd")); - shortCodeToEmoji->insert(QString("bow_tone4"), QString("\U0001f647\U0001f3fe")); - shortCodeToEmoji->insert(QString("bow_tone5"), QString("\U0001f647\U0001f3ff")); - shortCodeToEmoji->insert(QString("information_desk_person_tone1"), QString("\U0001f481\U0001f3fb")); - shortCodeToEmoji->insert(QString("information_desk_person_tone2"), QString("\U0001f481\U0001f3fc")); - shortCodeToEmoji->insert(QString("information_desk_person_tone3"), QString("\U0001f481\U0001f3fd")); - shortCodeToEmoji->insert(QString("information_desk_person_tone4"), QString("\U0001f481\U0001f3fe")); - shortCodeToEmoji->insert(QString("information_desk_person_tone5"), QString("\U0001f481\U0001f3ff")); - shortCodeToEmoji->insert(QString("no_good_tone1"), QString("\U0001f645\U0001f3fb")); - shortCodeToEmoji->insert(QString("no_good_tone2"), QString("\U0001f645\U0001f3fc")); - shortCodeToEmoji->insert(QString("no_good_tone3"), QString("\U0001f645\U0001f3fd")); - shortCodeToEmoji->insert(QString("no_good_tone4"), QString("\U0001f645\U0001f3fe")); - shortCodeToEmoji->insert(QString("no_good_tone5"), QString("\U0001f645\U0001f3ff")); - shortCodeToEmoji->insert(QString("ok_woman_tone1"), QString("\U0001f646\U0001f3fb")); - shortCodeToEmoji->insert(QString("ok_woman_tone2"), QString("\U0001f646\U0001f3fc")); - shortCodeToEmoji->insert(QString("ok_woman_tone3"), QString("\U0001f646\U0001f3fd")); - shortCodeToEmoji->insert(QString("ok_woman_tone4"), QString("\U0001f646\U0001f3fe")); - shortCodeToEmoji->insert(QString("ok_woman_tone5"), QString("\U0001f646\U0001f3ff")); - shortCodeToEmoji->insert(QString("raising_hand_tone1"), QString("\U0001f64b\U0001f3fb")); - shortCodeToEmoji->insert(QString("raising_hand_tone2"), QString("\U0001f64b\U0001f3fc")); - shortCodeToEmoji->insert(QString("raising_hand_tone3"), QString("\U0001f64b\U0001f3fd")); - shortCodeToEmoji->insert(QString("raising_hand_tone4"), QString("\U0001f64b\U0001f3fe")); - shortCodeToEmoji->insert(QString("raising_hand_tone5"), QString("\U0001f64b\U0001f3ff")); - shortCodeToEmoji->insert(QString("person_with_pouting_face_tone1"), QString("\U0001f64e\U0001f3fb")); - shortCodeToEmoji->insert(QString("person_with_pouting_face_tone2"), QString("\U0001f64e\U0001f3fc")); - shortCodeToEmoji->insert(QString("person_with_pouting_face_tone3"), QString("\U0001f64e\U0001f3fd")); - shortCodeToEmoji->insert(QString("person_with_pouting_face_tone4"), QString("\U0001f64e\U0001f3fe")); - shortCodeToEmoji->insert(QString("person_with_pouting_face_tone5"), QString("\U0001f64e\U0001f3ff")); - shortCodeToEmoji->insert(QString("person_frowning_tone1"), QString("\U0001f64d\U0001f3fb")); - shortCodeToEmoji->insert(QString("person_frowning_tone2"), QString("\U0001f64d\U0001f3fc")); - shortCodeToEmoji->insert(QString("person_frowning_tone3"), QString("\U0001f64d\U0001f3fd")); - shortCodeToEmoji->insert(QString("person_frowning_tone4"), QString("\U0001f64d\U0001f3fe")); - shortCodeToEmoji->insert(QString("person_frowning_tone5"), QString("\U0001f64d\U0001f3ff")); - shortCodeToEmoji->insert(QString("haircut_tone1"), QString("\U0001f487\U0001f3fb")); - shortCodeToEmoji->insert(QString("haircut_tone2"), QString("\U0001f487\U0001f3fc")); - shortCodeToEmoji->insert(QString("haircut_tone3"), QString("\U0001f487\U0001f3fd")); - shortCodeToEmoji->insert(QString("haircut_tone4"), QString("\U0001f487\U0001f3fe")); - shortCodeToEmoji->insert(QString("haircut_tone5"), QString("\U0001f487\U0001f3ff")); - shortCodeToEmoji->insert(QString("massage_tone1"), QString("\U0001f486\U0001f3fb")); - shortCodeToEmoji->insert(QString("massage_tone2"), QString("\U0001f486\U0001f3fc")); - shortCodeToEmoji->insert(QString("massage_tone3"), QString("\U0001f486\U0001f3fd")); - shortCodeToEmoji->insert(QString("massage_tone4"), QString("\U0001f486\U0001f3fe")); - shortCodeToEmoji->insert(QString("massage_tone5"), QString("\U0001f486\U0001f3ff")); - shortCodeToEmoji->insert(QString("rowboat_tone1"), QString("\U0001f6a3\U0001f3fb")); - shortCodeToEmoji->insert(QString("rowboat_tone2"), QString("\U0001f6a3\U0001f3fc")); - shortCodeToEmoji->insert(QString("rowboat_tone3"), QString("\U0001f6a3\U0001f3fd")); - shortCodeToEmoji->insert(QString("rowboat_tone4"), QString("\U0001f6a3\U0001f3fe")); - shortCodeToEmoji->insert(QString("rowboat_tone5"), QString("\U0001f6a3\U0001f3ff")); - shortCodeToEmoji->insert(QString("swimmer_tone1"), QString("\U0001f3ca\U0001f3fb")); - shortCodeToEmoji->insert(QString("swimmer_tone2"), QString("\U0001f3ca\U0001f3fc")); - shortCodeToEmoji->insert(QString("swimmer_tone3"), QString("\U0001f3ca\U0001f3fd")); - shortCodeToEmoji->insert(QString("swimmer_tone4"), QString("\U0001f3ca\U0001f3fe")); - shortCodeToEmoji->insert(QString("swimmer_tone5"), QString("\U0001f3ca\U0001f3ff")); - shortCodeToEmoji->insert(QString("surfer_tone1"), QString("\U0001f3c4\U0001f3fb")); - shortCodeToEmoji->insert(QString("surfer_tone2"), QString("\U0001f3c4\U0001f3fc")); - shortCodeToEmoji->insert(QString("surfer_tone3"), QString("\U0001f3c4\U0001f3fd")); - shortCodeToEmoji->insert(QString("surfer_tone4"), QString("\U0001f3c4\U0001f3fe")); - shortCodeToEmoji->insert(QString("surfer_tone5"), QString("\U0001f3c4\U0001f3ff")); - shortCodeToEmoji->insert(QString("bath_tone1"), QString("\U0001f6c0\U0001f3fb")); - shortCodeToEmoji->insert(QString("bath_tone2"), QString("\U0001f6c0\U0001f3fc")); - shortCodeToEmoji->insert(QString("bath_tone3"), QString("\U0001f6c0\U0001f3fd")); - shortCodeToEmoji->insert(QString("bath_tone4"), QString("\U0001f6c0\U0001f3fe")); - shortCodeToEmoji->insert(QString("bath_tone5"), QString("\U0001f6c0\U0001f3ff")); - shortCodeToEmoji->insert(QString("basketball_player_tone1"), QString("\U000026f9\U0001f3fb")); - shortCodeToEmoji->insert(QString("basketball_player_tone2"), QString("\U000026f9\U0001f3fc")); - shortCodeToEmoji->insert(QString("basketball_player_tone3"), QString("\U000026f9\U0001f3fd")); - shortCodeToEmoji->insert(QString("basketball_player_tone4"), QString("\U000026f9\U0001f3fe")); - shortCodeToEmoji->insert(QString("basketball_player_tone5"), QString("\U000026f9\U0001f3ff")); - shortCodeToEmoji->insert(QString("lifter_tone1"), QString("\U0001f3cb\U0001f3fb")); - shortCodeToEmoji->insert(QString("lifter_tone2"), QString("\U0001f3cb\U0001f3fc")); - shortCodeToEmoji->insert(QString("lifter_tone3"), QString("\U0001f3cb\U0001f3fd")); - shortCodeToEmoji->insert(QString("lifter_tone4"), QString("\U0001f3cb\U0001f3fe")); - shortCodeToEmoji->insert(QString("lifter_tone5"), QString("\U0001f3cb\U0001f3ff")); - shortCodeToEmoji->insert(QString("bicyclist_tone1"), QString("\U0001f6b4\U0001f3fb")); - shortCodeToEmoji->insert(QString("bicyclist_tone2"), QString("\U0001f6b4\U0001f3fc")); - shortCodeToEmoji->insert(QString("bicyclist_tone3"), QString("\U0001f6b4\U0001f3fd")); - shortCodeToEmoji->insert(QString("bicyclist_tone4"), QString("\U0001f6b4\U0001f3fe")); - shortCodeToEmoji->insert(QString("bicyclist_tone5"), QString("\U0001f6b4\U0001f3ff")); - shortCodeToEmoji->insert(QString("mountain_bicyclist_tone1"), QString("\U0001f6b5\U0001f3fb")); - shortCodeToEmoji->insert(QString("mountain_bicyclist_tone2"), QString("\U0001f6b5\U0001f3fc")); - shortCodeToEmoji->insert(QString("mountain_bicyclist_tone3"), QString("\U0001f6b5\U0001f3fd")); - shortCodeToEmoji->insert(QString("mountain_bicyclist_tone4"), QString("\U0001f6b5\U0001f3fe")); - shortCodeToEmoji->insert(QString("mountain_bicyclist_tone5"), QString("\U0001f6b5\U0001f3ff")); - shortCodeToEmoji->insert(QString("horse_racing_tone1"), QString("\U0001f3c7\U0001f3fb")); - shortCodeToEmoji->insert(QString("horse_racing_tone2"), QString("\U0001f3c7\U0001f3fc")); - shortCodeToEmoji->insert(QString("horse_racing_tone3"), QString("\U0001f3c7\U0001f3fd")); - shortCodeToEmoji->insert(QString("horse_racing_tone4"), QString("\U0001f3c7\U0001f3fe")); - shortCodeToEmoji->insert(QString("horse_racing_tone5"), QString("\U0001f3c7\U0001f3ff")); - shortCodeToEmoji->insert(QString("spy_tone1"), QString("\U0001f575\U0001f3fb")); - shortCodeToEmoji->insert(QString("spy_tone2"), QString("\U0001f575\U0001f3fc")); - shortCodeToEmoji->insert(QString("spy_tone3"), QString("\U0001f575\U0001f3fd")); - shortCodeToEmoji->insert(QString("spy_tone4"), QString("\U0001f575\U0001f3fe")); - shortCodeToEmoji->insert(QString("spy_tone5"), QString("\U0001f575\U0001f3ff")); - shortCodeToEmoji->insert(QString("tone1"), QString("\U0001f3fb")); - shortCodeToEmoji->insert(QString("tone2"), QString("\U0001f3fc")); - shortCodeToEmoji->insert(QString("tone3"), QString("\U0001f3fd")); - shortCodeToEmoji->insert(QString("tone4"), QString("\U0001f3fe")); - shortCodeToEmoji->insert(QString("tone5"), QString("\U0001f3ff")); - shortCodeToEmoji->insert(QString("prince_tone1"), QString("\U0001f934\U0001f3fb")); - shortCodeToEmoji->insert(QString("prince_tone2"), QString("\U0001f934\U0001f3fc")); - shortCodeToEmoji->insert(QString("prince_tone3"), QString("\U0001f934\U0001f3fd")); - shortCodeToEmoji->insert(QString("prince_tone4"), QString("\U0001f934\U0001f3fe")); - shortCodeToEmoji->insert(QString("prince_tone5"), QString("\U0001f934\U0001f3ff")); - shortCodeToEmoji->insert(QString("mrs_claus_tone1"), QString("\U0001f936\U0001f3fb")); - shortCodeToEmoji->insert(QString("mrs_claus_tone2"), QString("\U0001f936\U0001f3fc")); - shortCodeToEmoji->insert(QString("mrs_claus_tone3"), QString("\U0001f936\U0001f3fd")); - shortCodeToEmoji->insert(QString("mrs_claus_tone4"), QString("\U0001f936\U0001f3fe")); - shortCodeToEmoji->insert(QString("mrs_claus_tone5"), QString("\U0001f936\U0001f3ff")); - shortCodeToEmoji->insert(QString("man_in_tuxedo_tone1"), QString("\U0001f935\U0001f3fb")); - shortCodeToEmoji->insert(QString("man_in_tuxedo_tone2"), QString("\U0001f935\U0001f3fc")); - shortCodeToEmoji->insert(QString("man_in_tuxedo_tone3"), QString("\U0001f935\U0001f3fd")); - shortCodeToEmoji->insert(QString("man_in_tuxedo_tone4"), QString("\U0001f935\U0001f3fe")); - shortCodeToEmoji->insert(QString("man_in_tuxedo_tone5"), QString("\U0001f935\U0001f3ff")); - shortCodeToEmoji->insert(QString("shrug_tone1"), QString("\U0001f937\U0001f3fb")); - shortCodeToEmoji->insert(QString("shrug_tone2"), QString("\U0001f937\U0001f3fc")); - shortCodeToEmoji->insert(QString("shrug_tone3"), QString("\U0001f937\U0001f3fd")); - shortCodeToEmoji->insert(QString("shrug_tone4"), QString("\U0001f937\U0001f3fe")); - shortCodeToEmoji->insert(QString("shrug_tone5"), QString("\U0001f937\U0001f3ff")); - shortCodeToEmoji->insert(QString("face_palm_tone1"), QString("\U0001f926\U0001f3fb")); - shortCodeToEmoji->insert(QString("face_palm_tone2"), QString("\U0001f926\U0001f3fc")); - shortCodeToEmoji->insert(QString("face_palm_tone3"), QString("\U0001f926\U0001f3fd")); - shortCodeToEmoji->insert(QString("face_palm_tone4"), QString("\U0001f926\U0001f3fe")); - shortCodeToEmoji->insert(QString("face_palm_tone5"), QString("\U0001f926\U0001f3ff")); - shortCodeToEmoji->insert(QString("pregnant_woman_tone1"), QString("\U0001f930\U0001f3fb")); - shortCodeToEmoji->insert(QString("pregnant_woman_tone2"), QString("\U0001f930\U0001f3fc")); - shortCodeToEmoji->insert(QString("pregnant_woman_tone3"), QString("\U0001f930\U0001f3fd")); - shortCodeToEmoji->insert(QString("pregnant_woman_tone4"), QString("\U0001f930\U0001f3fe")); - shortCodeToEmoji->insert(QString("pregnant_woman_tone5"), QString("\U0001f930\U0001f3ff")); - shortCodeToEmoji->insert(QString("man_dancing_tone1"), QString("\U0001f57a\U0001f3fb")); - shortCodeToEmoji->insert(QString("man_dancing_tone2"), QString("\U0001f57a\U0001f3fc")); - shortCodeToEmoji->insert(QString("man_dancing_tone3"), QString("\U0001f57a\U0001f3fd")); - shortCodeToEmoji->insert(QString("man_dancing_tone4"), QString("\U0001f57a\U0001f3fe")); - shortCodeToEmoji->insert(QString("man_dancing_tone5"), QString("\U0001f57a\U0001f3ff")); - shortCodeToEmoji->insert(QString("selfie_tone1"), QString("\U0001f933\U0001f3fb")); - shortCodeToEmoji->insert(QString("selfie_tone2"), QString("\U0001f933\U0001f3fc")); - shortCodeToEmoji->insert(QString("selfie_tone3"), QString("\U0001f933\U0001f3fd")); - shortCodeToEmoji->insert(QString("selfie_tone4"), QString("\U0001f933\U0001f3fe")); - shortCodeToEmoji->insert(QString("selfie_tone5"), QString("\U0001f933\U0001f3ff")); - shortCodeToEmoji->insert(QString("fingers_crossed_tone1"), QString("\U0001f91e\U0001f3fb")); - shortCodeToEmoji->insert(QString("fingers_crossed_tone2"), QString("\U0001f91e\U0001f3fc")); - shortCodeToEmoji->insert(QString("fingers_crossed_tone3"), QString("\U0001f91e\U0001f3fd")); - shortCodeToEmoji->insert(QString("fingers_crossed_tone4"), QString("\U0001f91e\U0001f3fe")); - shortCodeToEmoji->insert(QString("fingers_crossed_tone5"), QString("\U0001f91e\U0001f3ff")); - shortCodeToEmoji->insert(QString("call_me_tone1"), QString("\U0001f919\U0001f3fb")); - shortCodeToEmoji->insert(QString("call_me_tone2"), QString("\U0001f919\U0001f3fc")); - shortCodeToEmoji->insert(QString("call_me_tone3"), QString("\U0001f919\U0001f3fd")); - shortCodeToEmoji->insert(QString("call_me_tone4"), QString("\U0001f919\U0001f3fe")); - shortCodeToEmoji->insert(QString("call_me_tone5"), QString("\U0001f919\U0001f3ff")); - shortCodeToEmoji->insert(QString("left_facing_fist_tone1"), QString("\U0001f91b\U0001f3fb")); - shortCodeToEmoji->insert(QString("left_facing_fist_tone2"), QString("\U0001f91b\U0001f3fc")); - shortCodeToEmoji->insert(QString("left_facing_fist_tone3"), QString("\U0001f91b\U0001f3fd")); - shortCodeToEmoji->insert(QString("left_facing_fist_tone4"), QString("\U0001f91b\U0001f3fe")); - shortCodeToEmoji->insert(QString("left_facing_fist_tone5"), QString("\U0001f91b\U0001f3ff")); - shortCodeToEmoji->insert(QString("right_facing_fist_tone1"), QString("\U0001f91c\U0001f3fb")); - shortCodeToEmoji->insert(QString("right_facing_fist_tone2"), QString("\U0001f91c\U0001f3fc")); - shortCodeToEmoji->insert(QString("right_facing_fist_tone3"), QString("\U0001f91c\U0001f3fd")); - shortCodeToEmoji->insert(QString("right_facing_fist_tone4"), QString("\U0001f91c\U0001f3fe")); - shortCodeToEmoji->insert(QString("right_facing_fist_tone5"), QString("\U0001f91c\U0001f3ff")); - shortCodeToEmoji->insert(QString("raised_back_of_hand_tone1"), QString("\U0001f91a\U0001f3fb")); - shortCodeToEmoji->insert(QString("raised_back_of_hand_tone2"), QString("\U0001f91a\U0001f3fc")); - shortCodeToEmoji->insert(QString("raised_back_of_hand_tone3"), QString("\U0001f91a\U0001f3fd")); - shortCodeToEmoji->insert(QString("raised_back_of_hand_tone4"), QString("\U0001f91a\U0001f3fe")); - shortCodeToEmoji->insert(QString("raised_back_of_hand_tone5"), QString("\U0001f91a\U0001f3ff")); - shortCodeToEmoji->insert(QString("handshake_tone1"), QString("\U0001f91d\U0001f3fb")); - shortCodeToEmoji->insert(QString("handshake_tone2"), QString("\U0001f91d\U0001f3fc")); - shortCodeToEmoji->insert(QString("handshake_tone3"), QString("\U0001f91d\U0001f3fd")); - shortCodeToEmoji->insert(QString("handshake_tone4"), QString("\U0001f91d\U0001f3fe")); - shortCodeToEmoji->insert(QString("handshake_tone5"), QString("\U0001f91d\U0001f3ff")); - shortCodeToEmoji->insert(QString("cartwheel_tone1"), QString("\U0001f938\U0001f3fb")); - shortCodeToEmoji->insert(QString("cartwheel_tone2"), QString("\U0001f938\U0001f3fc")); - shortCodeToEmoji->insert(QString("cartwheel_tone3"), QString("\U0001f938\U0001f3fd")); - shortCodeToEmoji->insert(QString("cartwheel_tone4"), QString("\U0001f938\U0001f3fe")); - shortCodeToEmoji->insert(QString("cartwheel_tone5"), QString("\U0001f938\U0001f3ff")); - shortCodeToEmoji->insert(QString("wrestlers_tone1"), QString("\U0001f93c\U0001f3fb")); - shortCodeToEmoji->insert(QString("wrestlers_tone2"), QString("\U0001f93c\U0001f3fc")); - shortCodeToEmoji->insert(QString("wrestlers_tone3"), QString("\U0001f93c\U0001f3fd")); - shortCodeToEmoji->insert(QString("wrestlers_tone4"), QString("\U0001f93c\U0001f3fe")); - shortCodeToEmoji->insert(QString("wrestlers_tone5"), QString("\U0001f93c\U0001f3ff")); - shortCodeToEmoji->insert(QString("water_polo_tone1"), QString("\U0001f93d\U0001f3fb")); - shortCodeToEmoji->insert(QString("water_polo_tone2"), QString("\U0001f93d\U0001f3fc")); - shortCodeToEmoji->insert(QString("water_polo_tone3"), QString("\U0001f93d\U0001f3fd")); - shortCodeToEmoji->insert(QString("water_polo_tone4"), QString("\U0001f93d\U0001f3fe")); - shortCodeToEmoji->insert(QString("water_polo_tone5"), QString("\U0001f93d\U0001f3ff")); - shortCodeToEmoji->insert(QString("handball_tone1"), QString("\U0001f93e\U0001f3fb")); - shortCodeToEmoji->insert(QString("handball_tone2"), QString("\U0001f93e\U0001f3fc")); - shortCodeToEmoji->insert(QString("handball_tone3"), QString("\U0001f93e\U0001f3fd")); - shortCodeToEmoji->insert(QString("handball_tone4"), QString("\U0001f93e\U0001f3fe")); - shortCodeToEmoji->insert(QString("handball_tone5"), QString("\U0001f93e\U0001f3ff")); - shortCodeToEmoji->insert(QString("juggling_tone1"), QString("\U0001f939\U0001f3fb")); - shortCodeToEmoji->insert(QString("juggling_tone2"), QString("\U0001f939\U0001f3fc")); - shortCodeToEmoji->insert(QString("juggling_tone3"), QString("\U0001f939\U0001f3fd")); - shortCodeToEmoji->insert(QString("juggling_tone4"), QString("\U0001f939\U0001f3fe")); - shortCodeToEmoji->insert(QString("juggling_tone5"), QString("\U0001f939\U0001f3ff")); - shortCodeToEmoji->insert(QString("speech_left"), QString("\U0001f5e8")); - shortCodeToEmoji->insert(QString("eject"), QString("\U000023cf")); - shortCodeToEmoji->insert(QString("gay_pride_flag"), QString("\U0001f3f3\U0001f308")); - shortCodeToEmoji->insert(QString("cowboy"), QString("\U0001f920")); - shortCodeToEmoji->insert(QString("clown"), QString("\U0001f921")); - shortCodeToEmoji->insert(QString("nauseated_face"), QString("\U0001f922")); - shortCodeToEmoji->insert(QString("rofl"), QString("\U0001f923")); - shortCodeToEmoji->insert(QString("drooling_face"), QString("\U0001f924")); - shortCodeToEmoji->insert(QString("lying_face"), QString("\U0001f925")); - shortCodeToEmoji->insert(QString("sneezing_face"), QString("\U0001f927")); - shortCodeToEmoji->insert(QString("prince"), QString("\U0001f934")); - shortCodeToEmoji->insert(QString("man_in_tuxedo"), QString("\U0001f935")); - shortCodeToEmoji->insert(QString("mrs_claus"), QString("\U0001f936")); - shortCodeToEmoji->insert(QString("face_palm"), QString("\U0001f926")); - shortCodeToEmoji->insert(QString("shrug"), QString("\U0001f937")); - shortCodeToEmoji->insert(QString("pregnant_woman"), QString("\U0001f930")); - shortCodeToEmoji->insert(QString("selfie"), QString("\U0001f933")); - shortCodeToEmoji->insert(QString("man_dancing"), QString("\U0001f57a")); - shortCodeToEmoji->insert(QString("call_me"), QString("\U0001f919")); - shortCodeToEmoji->insert(QString("raised_back_of_hand"), QString("\U0001f91a")); - shortCodeToEmoji->insert(QString("left_facing_fist"), QString("\U0001f91b")); - shortCodeToEmoji->insert(QString("right_facing_fist"), QString("\U0001f91c")); - shortCodeToEmoji->insert(QString("handshake"), QString("\U0001f91d")); - shortCodeToEmoji->insert(QString("fingers_crossed"), QString("\U0001f91e")); - shortCodeToEmoji->insert(QString("black_heart"), QString("\U0001f5a4")); - shortCodeToEmoji->insert(QString("eagle"), QString("\U0001f985")); - shortCodeToEmoji->insert(QString("duck"), QString("\U0001f986")); - shortCodeToEmoji->insert(QString("bat"), QString("\U0001f987")); - shortCodeToEmoji->insert(QString("shark"), QString("\U0001f988")); - shortCodeToEmoji->insert(QString("owl"), QString("\U0001f989")); - shortCodeToEmoji->insert(QString("fox"), QString("\U0001f98a")); - shortCodeToEmoji->insert(QString("butterfly"), QString("\U0001f98b")); - shortCodeToEmoji->insert(QString("deer"), QString("\U0001f98c")); - shortCodeToEmoji->insert(QString("gorilla"), QString("\U0001f98d")); - shortCodeToEmoji->insert(QString("lizard"), QString("\U0001f98e")); - shortCodeToEmoji->insert(QString("rhino"), QString("\U0001f98f")); - shortCodeToEmoji->insert(QString("wilted_rose"), QString("\U0001f940")); - shortCodeToEmoji->insert(QString("croissant"), QString("\U0001f950")); - shortCodeToEmoji->insert(QString("avocado"), QString("\U0001f951")); - shortCodeToEmoji->insert(QString("cucumber"), QString("\U0001f952")); - shortCodeToEmoji->insert(QString("bacon"), QString("\U0001f953")); - shortCodeToEmoji->insert(QString("potato"), QString("\U0001f954")); - shortCodeToEmoji->insert(QString("carrot"), QString("\U0001f955")); - shortCodeToEmoji->insert(QString("french_bread"), QString("\U0001f956")); - shortCodeToEmoji->insert(QString("salad"), QString("\U0001f957")); - shortCodeToEmoji->insert(QString("shallow_pan_of_food"), QString("\U0001f958")); - shortCodeToEmoji->insert(QString("stuffed_flatbread"), QString("\U0001f959")); - shortCodeToEmoji->insert(QString("champagne_glass"), QString("\U0001f942")); - shortCodeToEmoji->insert(QString("tumbler_glass"), QString("\U0001f943")); - shortCodeToEmoji->insert(QString("spoon"), QString("\U0001f944")); - shortCodeToEmoji->insert(QString("octagonal_sign"), QString("\U0001f6d1")); - shortCodeToEmoji->insert(QString("shopping_cart"), QString("\U0001f6d2")); - shortCodeToEmoji->insert(QString("scooter"), QString("\U0001f6f4")); - shortCodeToEmoji->insert(QString("motor_scooter"), QString("\U0001f6f5")); - shortCodeToEmoji->insert(QString("canoe"), QString("\U0001f6f6")); - shortCodeToEmoji->insert(QString("cartwheel"), QString("\U0001f938")); - shortCodeToEmoji->insert(QString("juggling"), QString("\U0001f939")); - shortCodeToEmoji->insert(QString("wrestlers"), QString("\U0001f93c")); - shortCodeToEmoji->insert(QString("boxing_glove"), QString("\U0001f94a")); - shortCodeToEmoji->insert(QString("martial_arts_uniform"), QString("\U0001f94b")); - shortCodeToEmoji->insert(QString("water_polo"), QString("\U0001f93d")); - shortCodeToEmoji->insert(QString("handball"), QString("\U0001f93e")); - shortCodeToEmoji->insert(QString("goal"), QString("\U0001f945")); - shortCodeToEmoji->insert(QString("fencer"), QString("\U0001f93a")); - shortCodeToEmoji->insert(QString("first_place"), QString("\U0001f947")); - shortCodeToEmoji->insert(QString("second_place"), QString("\U0001f948")); - shortCodeToEmoji->insert(QString("third_place"), QString("\U0001f949")); - shortCodeToEmoji->insert(QString("drum"), QString("\U0001f941")); - shortCodeToEmoji->insert(QString("shrimp"), QString("\U0001f990")); - shortCodeToEmoji->insert(QString("squid"), QString("\U0001f991")); - shortCodeToEmoji->insert(QString("egg"), QString("\U0001f95a")); - shortCodeToEmoji->insert(QString("milk"), QString("\U0001f95b")); - shortCodeToEmoji->insert(QString("peanuts"), QString("\U0001f95c")); - shortCodeToEmoji->insert(QString("kiwi"), QString("\U0001f95d")); - shortCodeToEmoji->insert(QString("pancakes"), QString("\U0001f95e")); - shortCodeToEmoji->insert(QString("regional_indicator_z"), QString("\U0001f1ff")); - shortCodeToEmoji->insert(QString("regional_indicator_y"), QString("\U0001f1fe")); - shortCodeToEmoji->insert(QString("regional_indicator_x"), QString("\U0001f1fd")); - shortCodeToEmoji->insert(QString("regional_indicator_w"), QString("\U0001f1fc")); - shortCodeToEmoji->insert(QString("regional_indicator_v"), QString("\U0001f1fb")); - shortCodeToEmoji->insert(QString("regional_indicator_u"), QString("\U0001f1fa")); - shortCodeToEmoji->insert(QString("regional_indicator_t"), QString("\U0001f1f9")); - shortCodeToEmoji->insert(QString("regional_indicator_s"), QString("\U0001f1f8")); - shortCodeToEmoji->insert(QString("regional_indicator_r"), QString("\U0001f1f7")); - shortCodeToEmoji->insert(QString("regional_indicator_q"), QString("\U0001f1f6")); - shortCodeToEmoji->insert(QString("regional_indicator_p"), QString("\U0001f1f5")); - shortCodeToEmoji->insert(QString("regional_indicator_o"), QString("\U0001f1f4")); - shortCodeToEmoji->insert(QString("regional_indicator_n"), QString("\U0001f1f3")); - shortCodeToEmoji->insert(QString("regional_indicator_m"), QString("\U0001f1f2")); - shortCodeToEmoji->insert(QString("regional_indicator_l"), QString("\U0001f1f1")); - shortCodeToEmoji->insert(QString("regional_indicator_k"), QString("\U0001f1f0")); - shortCodeToEmoji->insert(QString("regional_indicator_j"), QString("\U0001f1ef")); - shortCodeToEmoji->insert(QString("regional_indicator_i"), QString("\U0001f1ee")); - shortCodeToEmoji->insert(QString("regional_indicator_h"), QString("\U0001f1ed")); - shortCodeToEmoji->insert(QString("regional_indicator_g"), QString("\U0001f1ec")); - shortCodeToEmoji->insert(QString("regional_indicator_f"), QString("\U0001f1eb")); - shortCodeToEmoji->insert(QString("regional_indicator_e"), QString("\U0001f1ea")); - shortCodeToEmoji->insert(QString("regional_indicator_d"), QString("\U0001f1e9")); - shortCodeToEmoji->insert(QString("regional_indicator_c"), QString("\U0001f1e8")); - shortCodeToEmoji->insert(QString("regional_indicator_b"), QString("\U0001f1e7")); - shortCodeToEmoji->insert(QString("regional_indicator_a"), QString("\U0001f1e6")); + QFile file(":/emojidata.txt"); + file.open(QFile::ReadOnly); + QTextStream in(&file); -// for (auto emoji : shortCodeToEmoji) -// { -// emojiToShortCode.insert(QString(emoji.Value), (emoji.Key)); -// } + uint emotes[4]; -// for (auto emoji : shortCodeToEmoji) -// { -// firstEmojiChars.GetOrAdd(emoji[0], []c => new ConcurrentDictionary())[emoji] = null; -// } + while (!in.atEnd()) + { + QString line = in.readLine(); + + if (line.length() < 3 || line.at(0) == '#') continue; + + QStringList a = line.split(' '); + if (a.length() < 2) continue; + + QStringList b = a.at(1).split('-'); + if (b.length() < 1) continue; + + int i = 0; + + for (const QString& item : b) + { + emotes[i++] = QString(item).toUInt(nullptr, 16); + } + + shortCodeToEmoji->insert(a.at(0), Emojis::EmojiData { QString::fromUcs4(emotes, i), a.at(1) }); + } + + for (auto const& emoji : shortCodeToEmoji->toStdMap()) + { + emojiToShortCode->insert(emoji.second.value, emoji.first); + } + + for (auto const& emoji : shortCodeToEmoji->toStdMap()) + { + auto iter = firstEmojiChars->find(emoji.first.at(0)); + + if (iter != firstEmojiChars->end()) + { + iter.value().insert(emoji.second.value, emoji.second.value); + continue; + } + + firstEmojiChars->insert(emoji.first.at(0), QMap{{ emoji.second.value, emoji.second.code }}); + } } diff --git a/emojis.h b/emojis.h index e5f207094..d4582973a 100644 --- a/emojis.h +++ b/emojis.h @@ -4,22 +4,34 @@ #include #include #include +#include + #include "lazyloadedimage.h" #include "concurrentmap.h" class Emojis { public: - std::vector> parseEmotes(const QString& value); + static void parseEmojis(std::vector>& vector, const QString& text); static void initEmojis(); + static QString replaceShortCodes(const QString& text); + + struct EmojiData { + QString value; + QString code; + }; + private: + static QRegularExpression* findShortCodesRegex; - static QMap* shortCodeToEmoji; + static QMap* shortCodeToEmoji; static QMap* emojiToShortCode; - static QMap>* firstEmojiChars; + static QMap>* firstEmojiChars; + + static ConcurrentMap* imageCache; Emojis() {} }; diff --git a/emotes.cpp b/emotes.cpp index e0483a515..9b9a31a2a 100644 --- a/emotes.cpp +++ b/emotes.cpp @@ -5,9 +5,9 @@ ConcurrentMap* Emotes::m_bttvEmotes ConcurrentMap* Emotes::m_ffzEmotes = new ConcurrentMap(); ConcurrentMap* Emotes::m_chatterinoEmotes = new ConcurrentMap(); ConcurrentMap* Emotes::m_bttvChannelEmoteFromCaches = new ConcurrentMap(); -ConcurrentMap* Emotes::m_fFzChannelEmoteFromCaches = new ConcurrentMap(); +ConcurrentMap* Emotes::m_ffzChannelEmoteFromCaches = new ConcurrentMap(); ConcurrentMap* Emotes::m_twitchEmoteFromCache = new ConcurrentMap(); -ConcurrentMap* Emotes::m_miscImageFromCache = new ConcurrentMap(); +ConcurrentMap* Emotes::m_miscImageFromCache = new ConcurrentMap(); LazyLoadedImage* Emotes::m_cheerBadge100000 = new LazyLoadedImage(new QImage(":/cheer100000")); LazyLoadedImage* Emotes::m_cheerBadge10000 = new LazyLoadedImage(new QImage(":/cheer10000")); diff --git a/emotes.h b/emotes.h index 8494c5703..389729e8b 100644 --- a/emotes.h +++ b/emotes.h @@ -15,9 +15,9 @@ public: static ConcurrentMap& ffzEmotes() { return *m_ffzEmotes ; } static ConcurrentMap& chatterinoEmotes() { return *m_chatterinoEmotes ; } static ConcurrentMap& bttvChannelEmoteFromCaches() { return *m_bttvChannelEmoteFromCaches; } - static ConcurrentMap& fFzChannelEmoteFromCaches() { return *m_fFzChannelEmoteFromCaches ; } + static ConcurrentMap& ffzChannelEmoteFromCaches() { return *m_ffzChannelEmoteFromCaches ; } static ConcurrentMap& twitchEmoteFromCache() { return *m_twitchEmoteFromCache ; } - static ConcurrentMap& miscImageFromCache() { return *m_miscImageFromCache ; } + static ConcurrentMap& miscImageFromCache() { return *m_miscImageFromCache ; } static void loadGlobalEmotes(); @@ -34,9 +34,9 @@ private: static ConcurrentMap* m_ffzEmotes; static ConcurrentMap* m_chatterinoEmotes; static ConcurrentMap* m_bttvChannelEmoteFromCaches; - static ConcurrentMap* m_fFzChannelEmoteFromCaches; + static ConcurrentMap* m_ffzChannelEmoteFromCaches; static ConcurrentMap* m_twitchEmoteFromCache; - static ConcurrentMap* m_miscImageFromCache; + static ConcurrentMap* m_miscImageFromCache; static LazyLoadedImage* m_cheerBadge100000; static LazyLoadedImage* m_cheerBadge10000 ; diff --git a/main.cpp b/main.cpp index d9b1d9ca5..83a1e734b 100644 --- a/main.cpp +++ b/main.cpp @@ -3,6 +3,7 @@ #include "colorscheme.h" #include "ircmanager.h" #include "emojis.h" +#include int main(int argc, char *argv[]) { diff --git a/message.cpp b/message.cpp index 40aba459a..dafbfcc20 100644 --- a/message.cpp +++ b/message.cpp @@ -2,8 +2,13 @@ #include "qcolor.h" #include "colorscheme.h" #include "emotes.h" +#include "emojis.h" +#include "link.h" +#include "appsettings.h" +#include "ircmanager.h" #include +#include #include LazyLoadedImage* Message::badgeStaff = new LazyLoadedImage(new QImage(":/images/staff_bg.png")); @@ -14,6 +19,8 @@ LazyLoadedImage* Message::badgeTurbo = new LazyLoadedImage(new QImage(":/i LazyLoadedImage* Message::badgeBroadcaster = new LazyLoadedImage(new QImage(":/images/broadcaster_bg.png")); LazyLoadedImage* Message::badgePremium = new LazyLoadedImage(new QImage(":/images/twitchprime_bg.png")); +QRegularExpression* Message::cheerRegex = new QRegularExpression("cheer[1-9][0-9]*"); + Message::Message(const QString &text) { @@ -112,7 +119,7 @@ Message::Message(const IrcPrivateMessage& ircMessage, const Channel& channel, bo if (includeChannel) { QString channelName("#" + channel.name()); - words->append(Word(channelName, Word::Misc, ColorScheme::instance().SystemMessageColor, QString(channelName), QString(), Link(Link::ShowMessage, channel.name() + "\n" + m_id))); + words->append(Word(channelName, Word::Misc, ColorScheme::instance().SystemMessageColor, QString(channelName), QString(), Link(Link::Url, channel.name() + "\n" + m_id))); } // username @@ -141,6 +148,21 @@ Message::Message(const IrcPrivateMessage& ircMessage, const Channel& channel, bo bool hasLocalizedName = QString::compare(displayName, ircMessage.account()) == 0; QString userDisplayString = displayName + (hasLocalizedName ? (" (" + ircMessage.account() + ")") : QString()); + if (isSentWhisper) + { + userDisplayString = IrcManager::account->username() + " -> "; + } + + if (isReceivedWhisper) + { + userDisplayString += " -> " + IrcManager::account->username(); + } + + if (!ircMessage.isAction()) + { + userDisplayString += ": "; + } + words->append(Word(userDisplayString, Word::Username, usernameColor, userDisplayString, QString())); // highlights @@ -222,10 +244,108 @@ Message::Message(const IrcPrivateMessage& ircMessage, const Channel& channel, bo } // split words + std::vector> parsed; + + Emojis::parseEmojis(parsed, split); + + for (const std::tuple& tuple : parsed) + { + LazyLoadedImage* image = std::get<0>(tuple); + if (image == NULL) + { + QString string = std::get<1>(tuple); + + // cheers + if (!bits.isEmpty() && string.length() >= 6 && cheerRegex->match(string).isValid()) + { + auto cheer = string.mid(5).toInt(); + + QString color; + + QColor bitsColor; + + if (cheer >= 10000) + { + color = "red"; + bitsColor = QColor::fromHslF(0, 1, 0.5); + } + else if (cheer >= 5000) + { + color = "blue"; + bitsColor = QColor::fromHslF(0.61, 1, 0.4); + } + else if (cheer >= 1000) + { + color = "green"; + bitsColor = QColor::fromHslF(0.5, 1, 0.5); + } + else if (cheer >= 100) + { + color = "purple"; + bitsColor = QColor::fromHslF(0.8, 1, 0.5); + } + else + { + color = "gray"; + bitsColor = QColor::fromHslF(0.5f, 0.5f, 0.5f); + } + + QString bitsLinkAnimated = QString("http://static-cdn.jtvnw.net/bits/dark/animated/" + color + "/1"); + QString bitsLink = QString("http://static-cdn.jtvnw.net/bits/dark/static/" + color + "/1"); + + LazyLoadedImage* imageAnimated = Emotes::miscImageFromCache().getOrAdd(bitsLinkAnimated, [&bitsLinkAnimated]{ return new LazyLoadedImage(bitsLinkAnimated); }); + LazyLoadedImage* image = Emotes::miscImageFromCache().getOrAdd(bitsLink, [&bitsLink]{ return new LazyLoadedImage(bitsLink); }); + + words->append(Word(imageAnimated, Word::BitsAnimated, QString("cheer"), QString("Twitch Cheer"), Link(Link::Url, QString("https://blog.twitch.tv/introducing-cheering-celebrate-together-da62af41fac6")))); + words->append(Word(image, Word::Bits, QString("cheer"), QString("Twitch Cheer"), Link(Link::Url, QString("https://blog.twitch.tv/introducing-cheering-celebrate-together-da62af41fac6")))); + + words->append(Word(QString("x" + string.mid(5)), Word::BitsAmount, bitsColor, QString(string.mid(5)), QString("Twitch Cheer"), Link(Link::Url, QString("https://blog.twitch.tv/introducing-cheering-celebrate-together-da62af41fac6")))); + } + + continue; + + // bttv / ffz emotes + LazyLoadedImage* bttvEmote; + + if ( + #warning "xD ignored emotes" + Emotes::bttvEmotes().tryGet(string, bttvEmote) || + channel.bttvChannelEmotes().tryGet(string, bttvEmote) || + Emotes::ffzEmotes().tryGet(string, bttvEmote) || + channel.ffzChannelEmotes().tryGet(string, bttvEmote) || + Emotes::chatterinoEmotes().tryGet(string, bttvEmote)) + { + words->append(Word(bttvEmote, Word::BttvEmoteImage, bttvEmote->name(), bttvEmote->tooltip(), Link(Link::Url, bttvEmote->url()))); + + continue; + } + + // actually just a word + QString link = matchLink(string); + + words->append(Word(string, Word::Text, textColor, string, QString(), link.isEmpty() ? Link() : Link(Link::Url, link))); + } + } + + i += split.length() + 1; } + + this->words() = words; + +#warning "xD" +// if (!isReceivedWhisper && AppSettings.HighlightIgnoredUsers.ContainsKey(Username)) +// { +// HighlightTab = false; +// } } bool Message::sortTwitchEmotes(const std::pair& a, const std::pair& b) { return a.first < b.first; } + +QString Message::matchLink(const QString &string) +{ +#warning "xD" + return QString(); +} diff --git a/message.h b/message.h index c4be59eed..a0a18b117 100644 --- a/message.h +++ b/message.h @@ -24,35 +24,35 @@ public: Message(const IrcPrivateMessage& ircMessage, const Channel& Channel, bool enablePingSound = true, bool isReceivedWhisper = false, bool isSentWhisper = false, bool includeChannel = false); - bool canHighlightTab() { + bool canHighlightTab() const { return m_highlightTab; } - const QString& timeoutUser() { + const QString& timeoutUser() const { return m_timeoutUser; } - int timeoutCount() { + int timeoutCount() const { return m_timeoutCount; } - const QString& userName() { + const QString& userName() const { return m_userName; } - const QString& displayName() { + const QString& displayName() const { return m_displayName; } - QList words() { + QList words() const { return m_words; } - bool disabled() { + bool disabled() const { return m_disabled; } - const QString& id() { + const QString& id() const { return m_id; } @@ -65,6 +65,8 @@ private: static LazyLoadedImage* badgeBroadcaster; static LazyLoadedImage* badgePremium; + static QRegularExpression* cheerRegex; + bool m_highlightTab = false; QString m_timeoutUser = ""; int m_timeoutCount = 0; @@ -77,6 +79,8 @@ private: QList m_words; + static QString matchLink(const QString& string); + static bool sortTwitchEmotes(const std::pair& a, const std::pair& b); }; diff --git a/resources.qrc b/resources.qrc index 2a1347a8c..774b93bb3 100644 --- a/resources.qrc +++ b/resources.qrc @@ -24,5 +24,6 @@ images/moderator_bg.png images/staff_bg.png images/turbo_bg.png + emojidata.txt diff --git a/word.h b/word.h index 5f23174d5..920d8c6a2 100644 --- a/word.h +++ b/word.h @@ -51,70 +51,79 @@ public: | BadgeCheer, Username = 0x800000, + BitsAmount = 0x1000000, - Default = TimestampNoSeconds | Badges | Username | Bits | FfzEmoteImage | BttvEmoteImage | BttvGifEmoteImage | TwitchEmoteImage + Default = TimestampNoSeconds | Badges | Username | Bits | FfzEmoteImage | BttvEmoteImage | BttvGifEmoteImage | TwitchEmoteImage | BitsAmount }; explicit Word(LazyLoadedImage* m_image, Type type, const QString& copytext, const QString& tooltip, const Link& link = Link()); explicit Word(const QString& m_text, Type type, const QColor& color, const QString& copytext, const QString& tooltip, const Link& link = Link()); - LazyLoadedImage& getImage() { + LazyLoadedImage& getImage() const { return *m_image; } - const QString& getText() { + const QString& getText() const { return m_text; } - int width() { + int width() const { return m_width; } - int height() { + int height() const { return m_height; } - int x() { + int x() const { return m_x; } - int y() { + int y() const { return m_y; } - QRect rect() { + int right() const { + return m_x + m_width; + } + + int bottom() const { + return m_y + m_height; + } + + QRect rect() const { return QRect(m_x, m_y, m_width, m_height); } - bool isImage() { + bool isImage() const { return m_isImage; } - const QString& copyText() { + const QString& copyText() const { return m_copyText; } - bool hasTrailingSpace() { + bool hasTrailingSpace() const { return m_hasTrailingSpace; } - QFont& getFont() { + QFont& getFont() const { return Fonts::getFont(m_font); } - Type type() { + Type type() const { return m_type; } - const QString& tooltip() { + const QString& tooltip() const { return m_tooltip; } - const QColor& color() { + const QColor& color() const { return m_color; } - const Link& link() { + const Link& link() const { return m_link; }