diff --git a/snakefire/emoji.py b/snakefire/emoji.py
new file mode 100644
index 0000000..3557dd9
--- /dev/null
+++ b/snakefire/emoji.py
@@ -0,0 +1,946 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+#
+# Copyright (c) 2012, lepture.com
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following
+# disclaimer in the documentation and/or other materials provided
+# with the distribution.
+# * Neither the name of the author nor the names of its contributors
+# may be used to endorse or promote products derived from this
+# software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+import json
+import re
+import urllib2
+
+
+class Emoji:
+ def __init__(self):
+ try:
+ response = urllib2.urlopen('https://api.github.com/emojis')
+ self.emojis = json.loads(response.read())
+ except:
+ self.emojis = {
+ "+1": "https://assets-cdn.github.com/images/icons/emoji/+1.png?v5",
+ "-1": "https://assets-cdn.github.com/images/icons/emoji/-1.png?v5",
+ "100": "https://assets-cdn.github.com/images/icons/emoji/100.png?v5",
+ "1234": "https://assets-cdn.github.com/images/icons/emoji/1234.png?v5",
+ "8ball": "https://assets-cdn.github.com/images/icons/emoji/8ball.png?v5",
+ "a": "https://assets-cdn.github.com/images/icons/emoji/a.png?v5",
+ "ab": "https://assets-cdn.github.com/images/icons/emoji/ab.png?v5",
+ "abc": "https://assets-cdn.github.com/images/icons/emoji/abc.png?v5",
+ "abcd": "https://assets-cdn.github.com/images/icons/emoji/abcd.png?v5",
+ "accept": "https://assets-cdn.github.com/images/icons/emoji/accept.png?v5",
+ "aerial_tramway": "https://assets-cdn.github.com/images/icons/emoji/aerial_tramway.png?v5",
+ "airplane": "https://assets-cdn.github.com/images/icons/emoji/airplane.png?v5",
+ "alarm_clock": "https://assets-cdn.github.com/images/icons/emoji/alarm_clock.png?v5",
+ "alien": "https://assets-cdn.github.com/images/icons/emoji/alien.png?v5",
+ "ambulance": "https://assets-cdn.github.com/images/icons/emoji/ambulance.png?v5",
+ "anchor": "https://assets-cdn.github.com/images/icons/emoji/anchor.png?v5",
+ "angel": "https://assets-cdn.github.com/images/icons/emoji/angel.png?v5",
+ "anger": "https://assets-cdn.github.com/images/icons/emoji/anger.png?v5",
+ "angry": "https://assets-cdn.github.com/images/icons/emoji/angry.png?v5",
+ "anguished": "https://assets-cdn.github.com/images/icons/emoji/anguished.png?v5",
+ "ant": "https://assets-cdn.github.com/images/icons/emoji/ant.png?v5",
+ "apple": "https://assets-cdn.github.com/images/icons/emoji/apple.png?v5",
+ "aquarius": "https://assets-cdn.github.com/images/icons/emoji/aquarius.png?v5",
+ "aries": "https://assets-cdn.github.com/images/icons/emoji/aries.png?v5",
+ "arrow_backward": "https://assets-cdn.github.com/images/icons/emoji/arrow_backward.png?v5",
+ "arrow_double_down": "https://assets-cdn.github.com/images/icons/emoji/arrow_double_down.png?v5",
+ "arrow_double_up": "https://assets-cdn.github.com/images/icons/emoji/arrow_double_up.png?v5",
+ "arrow_down": "https://assets-cdn.github.com/images/icons/emoji/arrow_down.png?v5",
+ "arrow_down_small": "https://assets-cdn.github.com/images/icons/emoji/arrow_down_small.png?v5",
+ "arrow_forward": "https://assets-cdn.github.com/images/icons/emoji/arrow_forward.png?v5",
+ "arrow_heading_down": "https://assets-cdn.github.com/images/icons/emoji/arrow_heading_down.png?v5",
+ "arrow_heading_up": "https://assets-cdn.github.com/images/icons/emoji/arrow_heading_up.png?v5",
+ "arrow_left": "https://assets-cdn.github.com/images/icons/emoji/arrow_left.png?v5",
+ "arrow_lower_left": "https://assets-cdn.github.com/images/icons/emoji/arrow_lower_left.png?v5",
+ "arrow_lower_right": "https://assets-cdn.github.com/images/icons/emoji/arrow_lower_right.png?v5",
+ "arrow_right": "https://assets-cdn.github.com/images/icons/emoji/arrow_right.png?v5",
+ "arrow_right_hook": "https://assets-cdn.github.com/images/icons/emoji/arrow_right_hook.png?v5",
+ "arrow_up": "https://assets-cdn.github.com/images/icons/emoji/arrow_up.png?v5",
+ "arrow_up_down": "https://assets-cdn.github.com/images/icons/emoji/arrow_up_down.png?v5",
+ "arrow_up_small": "https://assets-cdn.github.com/images/icons/emoji/arrow_up_small.png?v5",
+ "arrow_upper_left": "https://assets-cdn.github.com/images/icons/emoji/arrow_upper_left.png?v5",
+ "arrow_upper_right": "https://assets-cdn.github.com/images/icons/emoji/arrow_upper_right.png?v5",
+ "arrows_clockwise": "https://assets-cdn.github.com/images/icons/emoji/arrows_clockwise.png?v5",
+ "arrows_counterclockwise": "https://assets-cdn.github.com/images/icons/emoji/arrows_counterclockwise.png?v5",
+ "art": "https://assets-cdn.github.com/images/icons/emoji/art.png?v5",
+ "articulated_lorry": "https://assets-cdn.github.com/images/icons/emoji/articulated_lorry.png?v5",
+ "astonished": "https://assets-cdn.github.com/images/icons/emoji/astonished.png?v5",
+ "athletic_shoe": "https://assets-cdn.github.com/images/icons/emoji/athletic_shoe.png?v5",
+ "atm": "https://assets-cdn.github.com/images/icons/emoji/atm.png?v5",
+ "b": "https://assets-cdn.github.com/images/icons/emoji/b.png?v5",
+ "baby": "https://assets-cdn.github.com/images/icons/emoji/baby.png?v5",
+ "baby_bottle": "https://assets-cdn.github.com/images/icons/emoji/baby_bottle.png?v5",
+ "baby_chick": "https://assets-cdn.github.com/images/icons/emoji/baby_chick.png?v5",
+ "baby_symbol": "https://assets-cdn.github.com/images/icons/emoji/baby_symbol.png?v5",
+ "back": "https://assets-cdn.github.com/images/icons/emoji/back.png?v5",
+ "baggage_claim": "https://assets-cdn.github.com/images/icons/emoji/baggage_claim.png?v5",
+ "balloon": "https://assets-cdn.github.com/images/icons/emoji/balloon.png?v5",
+ "ballot_box_with_check": "https://assets-cdn.github.com/images/icons/emoji/ballot_box_with_check.png?v5",
+ "bamboo": "https://assets-cdn.github.com/images/icons/emoji/bamboo.png?v5",
+ "banana": "https://assets-cdn.github.com/images/icons/emoji/banana.png?v5",
+ "bangbang": "https://assets-cdn.github.com/images/icons/emoji/bangbang.png?v5",
+ "bank": "https://assets-cdn.github.com/images/icons/emoji/bank.png?v5",
+ "bar_chart": "https://assets-cdn.github.com/images/icons/emoji/bar_chart.png?v5",
+ "barber": "https://assets-cdn.github.com/images/icons/emoji/barber.png?v5",
+ "baseball": "https://assets-cdn.github.com/images/icons/emoji/baseball.png?v5",
+ "basketball": "https://assets-cdn.github.com/images/icons/emoji/basketball.png?v5",
+ "bath": "https://assets-cdn.github.com/images/icons/emoji/bath.png?v5",
+ "bathtub": "https://assets-cdn.github.com/images/icons/emoji/bathtub.png?v5",
+ "battery": "https://assets-cdn.github.com/images/icons/emoji/battery.png?v5",
+ "bear": "https://assets-cdn.github.com/images/icons/emoji/bear.png?v5",
+ "bee": "https://assets-cdn.github.com/images/icons/emoji/bee.png?v5",
+ "beer": "https://assets-cdn.github.com/images/icons/emoji/beer.png?v5",
+ "beers": "https://assets-cdn.github.com/images/icons/emoji/beers.png?v5",
+ "beetle": "https://assets-cdn.github.com/images/icons/emoji/beetle.png?v5",
+ "beginner": "https://assets-cdn.github.com/images/icons/emoji/beginner.png?v5",
+ "bell": "https://assets-cdn.github.com/images/icons/emoji/bell.png?v5",
+ "bento": "https://assets-cdn.github.com/images/icons/emoji/bento.png?v5",
+ "bicyclist": "https://assets-cdn.github.com/images/icons/emoji/bicyclist.png?v5",
+ "bike": "https://assets-cdn.github.com/images/icons/emoji/bike.png?v5",
+ "bikini": "https://assets-cdn.github.com/images/icons/emoji/bikini.png?v5",
+ "bird": "https://assets-cdn.github.com/images/icons/emoji/bird.png?v5",
+ "birthday": "https://assets-cdn.github.com/images/icons/emoji/birthday.png?v5",
+ "black_circle": "https://assets-cdn.github.com/images/icons/emoji/black_circle.png?v5",
+ "black_joker": "https://assets-cdn.github.com/images/icons/emoji/black_joker.png?v5",
+ "black_large_square": "https://assets-cdn.github.com/images/icons/emoji/black_large_square.png?v5",
+ "black_medium_small_square": "https://assets-cdn.github.com/images/icons/emoji/black_medium_small_square.png?v5",
+ "black_medium_square": "https://assets-cdn.github.com/images/icons/emoji/black_medium_square.png?v5",
+ "black_nib": "https://assets-cdn.github.com/images/icons/emoji/black_nib.png?v5",
+ "black_small_square": "https://assets-cdn.github.com/images/icons/emoji/black_small_square.png?v5",
+ "black_square_button": "https://assets-cdn.github.com/images/icons/emoji/black_square_button.png?v5",
+ "blossom": "https://assets-cdn.github.com/images/icons/emoji/blossom.png?v5",
+ "blowfish": "https://assets-cdn.github.com/images/icons/emoji/blowfish.png?v5",
+ "blue_book": "https://assets-cdn.github.com/images/icons/emoji/blue_book.png?v5",
+ "blue_car": "https://assets-cdn.github.com/images/icons/emoji/blue_car.png?v5",
+ "blue_heart": "https://assets-cdn.github.com/images/icons/emoji/blue_heart.png?v5",
+ "blush": "https://assets-cdn.github.com/images/icons/emoji/blush.png?v5",
+ "boar": "https://assets-cdn.github.com/images/icons/emoji/boar.png?v5",
+ "boat": "https://assets-cdn.github.com/images/icons/emoji/boat.png?v5",
+ "bomb": "https://assets-cdn.github.com/images/icons/emoji/bomb.png?v5",
+ "book": "https://assets-cdn.github.com/images/icons/emoji/book.png?v5",
+ "bookmark": "https://assets-cdn.github.com/images/icons/emoji/bookmark.png?v5",
+ "bookmark_tabs": "https://assets-cdn.github.com/images/icons/emoji/bookmark_tabs.png?v5",
+ "books": "https://assets-cdn.github.com/images/icons/emoji/books.png?v5",
+ "boom": "https://assets-cdn.github.com/images/icons/emoji/boom.png?v5",
+ "boot": "https://assets-cdn.github.com/images/icons/emoji/boot.png?v5",
+ "bouquet": "https://assets-cdn.github.com/images/icons/emoji/bouquet.png?v5",
+ "bow": "https://assets-cdn.github.com/images/icons/emoji/bow.png?v5",
+ "bowling": "https://assets-cdn.github.com/images/icons/emoji/bowling.png?v5",
+ "bowtie": "https://assets-cdn.github.com/images/icons/emoji/bowtie.png?v5",
+ "boy": "https://assets-cdn.github.com/images/icons/emoji/boy.png?v5",
+ "bread": "https://assets-cdn.github.com/images/icons/emoji/bread.png?v5",
+ "bride_with_veil": "https://assets-cdn.github.com/images/icons/emoji/bride_with_veil.png?v5",
+ "bridge_at_night": "https://assets-cdn.github.com/images/icons/emoji/bridge_at_night.png?v5",
+ "briefcase": "https://assets-cdn.github.com/images/icons/emoji/briefcase.png?v5",
+ "broken_heart": "https://assets-cdn.github.com/images/icons/emoji/broken_heart.png?v5",
+ "bug": "https://assets-cdn.github.com/images/icons/emoji/bug.png?v5",
+ "bulb": "https://assets-cdn.github.com/images/icons/emoji/bulb.png?v5",
+ "bullettrain_front": "https://assets-cdn.github.com/images/icons/emoji/bullettrain_front.png?v5",
+ "bullettrain_side": "https://assets-cdn.github.com/images/icons/emoji/bullettrain_side.png?v5",
+ "bus": "https://assets-cdn.github.com/images/icons/emoji/bus.png?v5",
+ "busstop": "https://assets-cdn.github.com/images/icons/emoji/busstop.png?v5",
+ "bust_in_silhouette": "https://assets-cdn.github.com/images/icons/emoji/bust_in_silhouette.png?v5",
+ "busts_in_silhouette": "https://assets-cdn.github.com/images/icons/emoji/busts_in_silhouette.png?v5",
+ "cactus": "https://assets-cdn.github.com/images/icons/emoji/cactus.png?v5",
+ "cake": "https://assets-cdn.github.com/images/icons/emoji/cake.png?v5",
+ "calendar": "https://assets-cdn.github.com/images/icons/emoji/calendar.png?v5",
+ "calling": "https://assets-cdn.github.com/images/icons/emoji/calling.png?v5",
+ "camel": "https://assets-cdn.github.com/images/icons/emoji/camel.png?v5",
+ "camera": "https://assets-cdn.github.com/images/icons/emoji/camera.png?v5",
+ "cancer": "https://assets-cdn.github.com/images/icons/emoji/cancer.png?v5",
+ "candy": "https://assets-cdn.github.com/images/icons/emoji/candy.png?v5",
+ "capital_abcd": "https://assets-cdn.github.com/images/icons/emoji/capital_abcd.png?v5",
+ "capricorn": "https://assets-cdn.github.com/images/icons/emoji/capricorn.png?v5",
+ "car": "https://assets-cdn.github.com/images/icons/emoji/car.png?v5",
+ "card_index": "https://assets-cdn.github.com/images/icons/emoji/card_index.png?v5",
+ "carousel_horse": "https://assets-cdn.github.com/images/icons/emoji/carousel_horse.png?v5",
+ "cat": "https://assets-cdn.github.com/images/icons/emoji/cat.png?v5",
+ "cat2": "https://assets-cdn.github.com/images/icons/emoji/cat2.png?v5",
+ "cd": "https://assets-cdn.github.com/images/icons/emoji/cd.png?v5",
+ "chart": "https://assets-cdn.github.com/images/icons/emoji/chart.png?v5",
+ "chart_with_downwards_trend": "https://assets-cdn.github.com/images/icons/emoji/chart_with_downwards_trend.png?v5",
+ "chart_with_upwards_trend": "https://assets-cdn.github.com/images/icons/emoji/chart_with_upwards_trend.png?v5",
+ "checkered_flag": "https://assets-cdn.github.com/images/icons/emoji/checkered_flag.png?v5",
+ "cherries": "https://assets-cdn.github.com/images/icons/emoji/cherries.png?v5",
+ "cherry_blossom": "https://assets-cdn.github.com/images/icons/emoji/cherry_blossom.png?v5",
+ "chestnut": "https://assets-cdn.github.com/images/icons/emoji/chestnut.png?v5",
+ "chicken": "https://assets-cdn.github.com/images/icons/emoji/chicken.png?v5",
+ "children_crossing": "https://assets-cdn.github.com/images/icons/emoji/children_crossing.png?v5",
+ "chocolate_bar": "https://assets-cdn.github.com/images/icons/emoji/chocolate_bar.png?v5",
+ "christmas_tree": "https://assets-cdn.github.com/images/icons/emoji/christmas_tree.png?v5",
+ "church": "https://assets-cdn.github.com/images/icons/emoji/church.png?v5",
+ "cinema": "https://assets-cdn.github.com/images/icons/emoji/cinema.png?v5",
+ "circus_tent": "https://assets-cdn.github.com/images/icons/emoji/circus_tent.png?v5",
+ "city_sunrise": "https://assets-cdn.github.com/images/icons/emoji/city_sunrise.png?v5",
+ "city_sunset": "https://assets-cdn.github.com/images/icons/emoji/city_sunset.png?v5",
+ "cl": "https://assets-cdn.github.com/images/icons/emoji/cl.png?v5",
+ "clap": "https://assets-cdn.github.com/images/icons/emoji/clap.png?v5",
+ "clapper": "https://assets-cdn.github.com/images/icons/emoji/clapper.png?v5",
+ "clipboard": "https://assets-cdn.github.com/images/icons/emoji/clipboard.png?v5",
+ "clock1": "https://assets-cdn.github.com/images/icons/emoji/clock1.png?v5",
+ "clock10": "https://assets-cdn.github.com/images/icons/emoji/clock10.png?v5",
+ "clock1030": "https://assets-cdn.github.com/images/icons/emoji/clock1030.png?v5",
+ "clock11": "https://assets-cdn.github.com/images/icons/emoji/clock11.png?v5",
+ "clock1130": "https://assets-cdn.github.com/images/icons/emoji/clock1130.png?v5",
+ "clock12": "https://assets-cdn.github.com/images/icons/emoji/clock12.png?v5",
+ "clock1230": "https://assets-cdn.github.com/images/icons/emoji/clock1230.png?v5",
+ "clock130": "https://assets-cdn.github.com/images/icons/emoji/clock130.png?v5",
+ "clock2": "https://assets-cdn.github.com/images/icons/emoji/clock2.png?v5",
+ "clock230": "https://assets-cdn.github.com/images/icons/emoji/clock230.png?v5",
+ "clock3": "https://assets-cdn.github.com/images/icons/emoji/clock3.png?v5",
+ "clock330": "https://assets-cdn.github.com/images/icons/emoji/clock330.png?v5",
+ "clock4": "https://assets-cdn.github.com/images/icons/emoji/clock4.png?v5",
+ "clock430": "https://assets-cdn.github.com/images/icons/emoji/clock430.png?v5",
+ "clock5": "https://assets-cdn.github.com/images/icons/emoji/clock5.png?v5",
+ "clock530": "https://assets-cdn.github.com/images/icons/emoji/clock530.png?v5",
+ "clock6": "https://assets-cdn.github.com/images/icons/emoji/clock6.png?v5",
+ "clock630": "https://assets-cdn.github.com/images/icons/emoji/clock630.png?v5",
+ "clock7": "https://assets-cdn.github.com/images/icons/emoji/clock7.png?v5",
+ "clock730": "https://assets-cdn.github.com/images/icons/emoji/clock730.png?v5",
+ "clock8": "https://assets-cdn.github.com/images/icons/emoji/clock8.png?v5",
+ "clock830": "https://assets-cdn.github.com/images/icons/emoji/clock830.png?v5",
+ "clock9": "https://assets-cdn.github.com/images/icons/emoji/clock9.png?v5",
+ "clock930": "https://assets-cdn.github.com/images/icons/emoji/clock930.png?v5",
+ "closed_book": "https://assets-cdn.github.com/images/icons/emoji/closed_book.png?v5",
+ "closed_lock_with_key": "https://assets-cdn.github.com/images/icons/emoji/closed_lock_with_key.png?v5",
+ "closed_umbrella": "https://assets-cdn.github.com/images/icons/emoji/closed_umbrella.png?v5",
+ "cloud": "https://assets-cdn.github.com/images/icons/emoji/cloud.png?v5",
+ "clubs": "https://assets-cdn.github.com/images/icons/emoji/clubs.png?v5",
+ "cn": "https://assets-cdn.github.com/images/icons/emoji/cn.png?v5",
+ "cocktail": "https://assets-cdn.github.com/images/icons/emoji/cocktail.png?v5",
+ "coffee": "https://assets-cdn.github.com/images/icons/emoji/coffee.png?v5",
+ "cold_sweat": "https://assets-cdn.github.com/images/icons/emoji/cold_sweat.png?v5",
+ "collision": "https://assets-cdn.github.com/images/icons/emoji/collision.png?v5",
+ "computer": "https://assets-cdn.github.com/images/icons/emoji/computer.png?v5",
+ "confetti_ball": "https://assets-cdn.github.com/images/icons/emoji/confetti_ball.png?v5",
+ "confounded": "https://assets-cdn.github.com/images/icons/emoji/confounded.png?v5",
+ "confused": "https://assets-cdn.github.com/images/icons/emoji/confused.png?v5",
+ "congratulations": "https://assets-cdn.github.com/images/icons/emoji/congratulations.png?v5",
+ "construction": "https://assets-cdn.github.com/images/icons/emoji/construction.png?v5",
+ "construction_worker": "https://assets-cdn.github.com/images/icons/emoji/construction_worker.png?v5",
+ "convenience_store": "https://assets-cdn.github.com/images/icons/emoji/convenience_store.png?v5",
+ "cookie": "https://assets-cdn.github.com/images/icons/emoji/cookie.png?v5",
+ "cool": "https://assets-cdn.github.com/images/icons/emoji/cool.png?v5",
+ "cop": "https://assets-cdn.github.com/images/icons/emoji/cop.png?v5",
+ "copyright": "https://assets-cdn.github.com/images/icons/emoji/copyright.png?v5",
+ "corn": "https://assets-cdn.github.com/images/icons/emoji/corn.png?v5",
+ "couple": "https://assets-cdn.github.com/images/icons/emoji/couple.png?v5",
+ "couple_with_heart": "https://assets-cdn.github.com/images/icons/emoji/couple_with_heart.png?v5",
+ "couplekiss": "https://assets-cdn.github.com/images/icons/emoji/couplekiss.png?v5",
+ "cow": "https://assets-cdn.github.com/images/icons/emoji/cow.png?v5",
+ "cow2": "https://assets-cdn.github.com/images/icons/emoji/cow2.png?v5",
+ "credit_card": "https://assets-cdn.github.com/images/icons/emoji/credit_card.png?v5",
+ "crescent_moon": "https://assets-cdn.github.com/images/icons/emoji/crescent_moon.png?v5",
+ "crocodile": "https://assets-cdn.github.com/images/icons/emoji/crocodile.png?v5",
+ "crossed_flags": "https://assets-cdn.github.com/images/icons/emoji/crossed_flags.png?v5",
+ "crown": "https://assets-cdn.github.com/images/icons/emoji/crown.png?v5",
+ "cry": "https://assets-cdn.github.com/images/icons/emoji/cry.png?v5",
+ "crying_cat_face": "https://assets-cdn.github.com/images/icons/emoji/crying_cat_face.png?v5",
+ "crystal_ball": "https://assets-cdn.github.com/images/icons/emoji/crystal_ball.png?v5",
+ "cupid": "https://assets-cdn.github.com/images/icons/emoji/cupid.png?v5",
+ "curly_loop": "https://assets-cdn.github.com/images/icons/emoji/curly_loop.png?v5",
+ "currency_exchange": "https://assets-cdn.github.com/images/icons/emoji/currency_exchange.png?v5",
+ "curry": "https://assets-cdn.github.com/images/icons/emoji/curry.png?v5",
+ "custard": "https://assets-cdn.github.com/images/icons/emoji/custard.png?v5",
+ "customs": "https://assets-cdn.github.com/images/icons/emoji/customs.png?v5",
+ "cyclone": "https://assets-cdn.github.com/images/icons/emoji/cyclone.png?v5",
+ "dancer": "https://assets-cdn.github.com/images/icons/emoji/dancer.png?v5",
+ "dancers": "https://assets-cdn.github.com/images/icons/emoji/dancers.png?v5",
+ "dango": "https://assets-cdn.github.com/images/icons/emoji/dango.png?v5",
+ "dart": "https://assets-cdn.github.com/images/icons/emoji/dart.png?v5",
+ "dash": "https://assets-cdn.github.com/images/icons/emoji/dash.png?v5",
+ "date": "https://assets-cdn.github.com/images/icons/emoji/date.png?v5",
+ "de": "https://assets-cdn.github.com/images/icons/emoji/de.png?v5",
+ "deciduous_tree": "https://assets-cdn.github.com/images/icons/emoji/deciduous_tree.png?v5",
+ "department_store": "https://assets-cdn.github.com/images/icons/emoji/department_store.png?v5",
+ "diamond_shape_with_a_dot_inside": "https://assets-cdn.github.com/images/icons/emoji/diamond_shape_with_a_dot_inside.png?v5",
+ "diamonds": "https://assets-cdn.github.com/images/icons/emoji/diamonds.png?v5",
+ "disappointed": "https://assets-cdn.github.com/images/icons/emoji/disappointed.png?v5",
+ "disappointed_relieved": "https://assets-cdn.github.com/images/icons/emoji/disappointed_relieved.png?v5",
+ "dizzy": "https://assets-cdn.github.com/images/icons/emoji/dizzy.png?v5",
+ "dizzy_face": "https://assets-cdn.github.com/images/icons/emoji/dizzy_face.png?v5",
+ "do_not_litter": "https://assets-cdn.github.com/images/icons/emoji/do_not_litter.png?v5",
+ "dog": "https://assets-cdn.github.com/images/icons/emoji/dog.png?v5",
+ "dog2": "https://assets-cdn.github.com/images/icons/emoji/dog2.png?v5",
+ "dollar": "https://assets-cdn.github.com/images/icons/emoji/dollar.png?v5",
+ "dolls": "https://assets-cdn.github.com/images/icons/emoji/dolls.png?v5",
+ "dolphin": "https://assets-cdn.github.com/images/icons/emoji/dolphin.png?v5",
+ "door": "https://assets-cdn.github.com/images/icons/emoji/door.png?v5",
+ "doughnut": "https://assets-cdn.github.com/images/icons/emoji/doughnut.png?v5",
+ "dragon": "https://assets-cdn.github.com/images/icons/emoji/dragon.png?v5",
+ "dragon_face": "https://assets-cdn.github.com/images/icons/emoji/dragon_face.png?v5",
+ "dress": "https://assets-cdn.github.com/images/icons/emoji/dress.png?v5",
+ "dromedary_camel": "https://assets-cdn.github.com/images/icons/emoji/dromedary_camel.png?v5",
+ "droplet": "https://assets-cdn.github.com/images/icons/emoji/droplet.png?v5",
+ "dvd": "https://assets-cdn.github.com/images/icons/emoji/dvd.png?v5",
+ "e-mail": "https://assets-cdn.github.com/images/icons/emoji/e-mail.png?v5",
+ "ear": "https://assets-cdn.github.com/images/icons/emoji/ear.png?v5",
+ "ear_of_rice": "https://assets-cdn.github.com/images/icons/emoji/ear_of_rice.png?v5",
+ "earth_africa": "https://assets-cdn.github.com/images/icons/emoji/earth_africa.png?v5",
+ "earth_americas": "https://assets-cdn.github.com/images/icons/emoji/earth_americas.png?v5",
+ "earth_asia": "https://assets-cdn.github.com/images/icons/emoji/earth_asia.png?v5",
+ "egg": "https://assets-cdn.github.com/images/icons/emoji/egg.png?v5",
+ "eggplant": "https://assets-cdn.github.com/images/icons/emoji/eggplant.png?v5",
+ "eight": "https://assets-cdn.github.com/images/icons/emoji/eight.png?v5",
+ "eight_pointed_black_star": "https://assets-cdn.github.com/images/icons/emoji/eight_pointed_black_star.png?v5",
+ "eight_spoked_asterisk": "https://assets-cdn.github.com/images/icons/emoji/eight_spoked_asterisk.png?v5",
+ "electric_plug": "https://assets-cdn.github.com/images/icons/emoji/electric_plug.png?v5",
+ "elephant": "https://assets-cdn.github.com/images/icons/emoji/elephant.png?v5",
+ "email": "https://assets-cdn.github.com/images/icons/emoji/email.png?v5",
+ "end": "https://assets-cdn.github.com/images/icons/emoji/end.png?v5",
+ "envelope": "https://assets-cdn.github.com/images/icons/emoji/envelope.png?v5",
+ "envelope_with_arrow": "https://assets-cdn.github.com/images/icons/emoji/envelope_with_arrow.png?v5",
+ "es": "https://assets-cdn.github.com/images/icons/emoji/es.png?v5",
+ "euro": "https://assets-cdn.github.com/images/icons/emoji/euro.png?v5",
+ "european_castle": "https://assets-cdn.github.com/images/icons/emoji/european_castle.png?v5",
+ "european_post_office": "https://assets-cdn.github.com/images/icons/emoji/european_post_office.png?v5",
+ "evergreen_tree": "https://assets-cdn.github.com/images/icons/emoji/evergreen_tree.png?v5",
+ "exclamation": "https://assets-cdn.github.com/images/icons/emoji/exclamation.png?v5",
+ "expressionless": "https://assets-cdn.github.com/images/icons/emoji/expressionless.png?v5",
+ "eyeglasses": "https://assets-cdn.github.com/images/icons/emoji/eyeglasses.png?v5",
+ "eyes": "https://assets-cdn.github.com/images/icons/emoji/eyes.png?v5",
+ "facepunch": "https://assets-cdn.github.com/images/icons/emoji/facepunch.png?v5",
+ "factory": "https://assets-cdn.github.com/images/icons/emoji/factory.png?v5",
+ "fallen_leaf": "https://assets-cdn.github.com/images/icons/emoji/fallen_leaf.png?v5",
+ "family": "https://assets-cdn.github.com/images/icons/emoji/family.png?v5",
+ "fast_forward": "https://assets-cdn.github.com/images/icons/emoji/fast_forward.png?v5",
+ "fax": "https://assets-cdn.github.com/images/icons/emoji/fax.png?v5",
+ "fearful": "https://assets-cdn.github.com/images/icons/emoji/fearful.png?v5",
+ "feelsgood": "https://assets-cdn.github.com/images/icons/emoji/feelsgood.png?v5",
+ "feet": "https://assets-cdn.github.com/images/icons/emoji/feet.png?v5",
+ "ferris_wheel": "https://assets-cdn.github.com/images/icons/emoji/ferris_wheel.png?v5",
+ "file_folder": "https://assets-cdn.github.com/images/icons/emoji/file_folder.png?v5",
+ "finnadie": "https://assets-cdn.github.com/images/icons/emoji/finnadie.png?v5",
+ "fire": "https://assets-cdn.github.com/images/icons/emoji/fire.png?v5",
+ "fire_engine": "https://assets-cdn.github.com/images/icons/emoji/fire_engine.png?v5",
+ "fireworks": "https://assets-cdn.github.com/images/icons/emoji/fireworks.png?v5",
+ "first_quarter_moon": "https://assets-cdn.github.com/images/icons/emoji/first_quarter_moon.png?v5",
+ "first_quarter_moon_with_face": "https://assets-cdn.github.com/images/icons/emoji/first_quarter_moon_with_face.png?v5",
+ "fish": "https://assets-cdn.github.com/images/icons/emoji/fish.png?v5",
+ "fish_cake": "https://assets-cdn.github.com/images/icons/emoji/fish_cake.png?v5",
+ "fishing_pole_and_fish": "https://assets-cdn.github.com/images/icons/emoji/fishing_pole_and_fish.png?v5",
+ "fist": "https://assets-cdn.github.com/images/icons/emoji/fist.png?v5",
+ "five": "https://assets-cdn.github.com/images/icons/emoji/five.png?v5",
+ "flags": "https://assets-cdn.github.com/images/icons/emoji/flags.png?v5",
+ "flashlight": "https://assets-cdn.github.com/images/icons/emoji/flashlight.png?v5",
+ "flipper": "https://assets-cdn.github.com/images/icons/emoji/flipper.png?v5",
+ "floppy_disk": "https://assets-cdn.github.com/images/icons/emoji/floppy_disk.png?v5",
+ "flower_playing_cards": "https://assets-cdn.github.com/images/icons/emoji/flower_playing_cards.png?v5",
+ "flushed": "https://assets-cdn.github.com/images/icons/emoji/flushed.png?v5",
+ "foggy": "https://assets-cdn.github.com/images/icons/emoji/foggy.png?v5",
+ "football": "https://assets-cdn.github.com/images/icons/emoji/football.png?v5",
+ "footprints": "https://assets-cdn.github.com/images/icons/emoji/footprints.png?v5",
+ "fork_and_knife": "https://assets-cdn.github.com/images/icons/emoji/fork_and_knife.png?v5",
+ "fountain": "https://assets-cdn.github.com/images/icons/emoji/fountain.png?v5",
+ "four": "https://assets-cdn.github.com/images/icons/emoji/four.png?v5",
+ "four_leaf_clover": "https://assets-cdn.github.com/images/icons/emoji/four_leaf_clover.png?v5",
+ "fr": "https://assets-cdn.github.com/images/icons/emoji/fr.png?v5",
+ "free": "https://assets-cdn.github.com/images/icons/emoji/free.png?v5",
+ "fried_shrimp": "https://assets-cdn.github.com/images/icons/emoji/fried_shrimp.png?v5",
+ "fries": "https://assets-cdn.github.com/images/icons/emoji/fries.png?v5",
+ "frog": "https://assets-cdn.github.com/images/icons/emoji/frog.png?v5",
+ "frowning": "https://assets-cdn.github.com/images/icons/emoji/frowning.png?v5",
+ "fu": "https://assets-cdn.github.com/images/icons/emoji/fu.png?v5",
+ "fuelpump": "https://assets-cdn.github.com/images/icons/emoji/fuelpump.png?v5",
+ "full_moon": "https://assets-cdn.github.com/images/icons/emoji/full_moon.png?v5",
+ "full_moon_with_face": "https://assets-cdn.github.com/images/icons/emoji/full_moon_with_face.png?v5",
+ "game_die": "https://assets-cdn.github.com/images/icons/emoji/game_die.png?v5",
+ "gb": "https://assets-cdn.github.com/images/icons/emoji/gb.png?v5",
+ "gem": "https://assets-cdn.github.com/images/icons/emoji/gem.png?v5",
+ "gemini": "https://assets-cdn.github.com/images/icons/emoji/gemini.png?v5",
+ "ghost": "https://assets-cdn.github.com/images/icons/emoji/ghost.png?v5",
+ "gift": "https://assets-cdn.github.com/images/icons/emoji/gift.png?v5",
+ "gift_heart": "https://assets-cdn.github.com/images/icons/emoji/gift_heart.png?v5",
+ "girl": "https://assets-cdn.github.com/images/icons/emoji/girl.png?v5",
+ "globe_with_meridians": "https://assets-cdn.github.com/images/icons/emoji/globe_with_meridians.png?v5",
+ "goat": "https://assets-cdn.github.com/images/icons/emoji/goat.png?v5",
+ "goberserk": "https://assets-cdn.github.com/images/icons/emoji/goberserk.png?v5",
+ "godmode": "https://assets-cdn.github.com/images/icons/emoji/godmode.png?v5",
+ "golf": "https://assets-cdn.github.com/images/icons/emoji/golf.png?v5",
+ "grapes": "https://assets-cdn.github.com/images/icons/emoji/grapes.png?v5",
+ "green_apple": "https://assets-cdn.github.com/images/icons/emoji/green_apple.png?v5",
+ "green_book": "https://assets-cdn.github.com/images/icons/emoji/green_book.png?v5",
+ "green_heart": "https://assets-cdn.github.com/images/icons/emoji/green_heart.png?v5",
+ "grey_exclamation": "https://assets-cdn.github.com/images/icons/emoji/grey_exclamation.png?v5",
+ "grey_question": "https://assets-cdn.github.com/images/icons/emoji/grey_question.png?v5",
+ "grimacing": "https://assets-cdn.github.com/images/icons/emoji/grimacing.png?v5",
+ "grin": "https://assets-cdn.github.com/images/icons/emoji/grin.png?v5",
+ "grinning": "https://assets-cdn.github.com/images/icons/emoji/grinning.png?v5",
+ "guardsman": "https://assets-cdn.github.com/images/icons/emoji/guardsman.png?v5",
+ "guitar": "https://assets-cdn.github.com/images/icons/emoji/guitar.png?v5",
+ "gun": "https://assets-cdn.github.com/images/icons/emoji/gun.png?v5",
+ "haircut": "https://assets-cdn.github.com/images/icons/emoji/haircut.png?v5",
+ "hamburger": "https://assets-cdn.github.com/images/icons/emoji/hamburger.png?v5",
+ "hammer": "https://assets-cdn.github.com/images/icons/emoji/hammer.png?v5",
+ "hamster": "https://assets-cdn.github.com/images/icons/emoji/hamster.png?v5",
+ "hand": "https://assets-cdn.github.com/images/icons/emoji/hand.png?v5",
+ "handbag": "https://assets-cdn.github.com/images/icons/emoji/handbag.png?v5",
+ "hankey": "https://assets-cdn.github.com/images/icons/emoji/hankey.png?v5",
+ "hash": "https://assets-cdn.github.com/images/icons/emoji/hash.png?v5",
+ "hatched_chick": "https://assets-cdn.github.com/images/icons/emoji/hatched_chick.png?v5",
+ "hatching_chick": "https://assets-cdn.github.com/images/icons/emoji/hatching_chick.png?v5",
+ "headphones": "https://assets-cdn.github.com/images/icons/emoji/headphones.png?v5",
+ "hear_no_evil": "https://assets-cdn.github.com/images/icons/emoji/hear_no_evil.png?v5",
+ "heart": "https://assets-cdn.github.com/images/icons/emoji/heart.png?v5",
+ "heart_decoration": "https://assets-cdn.github.com/images/icons/emoji/heart_decoration.png?v5",
+ "heart_eyes": "https://assets-cdn.github.com/images/icons/emoji/heart_eyes.png?v5",
+ "heart_eyes_cat": "https://assets-cdn.github.com/images/icons/emoji/heart_eyes_cat.png?v5",
+ "heartbeat": "https://assets-cdn.github.com/images/icons/emoji/heartbeat.png?v5",
+ "heartpulse": "https://assets-cdn.github.com/images/icons/emoji/heartpulse.png?v5",
+ "hearts": "https://assets-cdn.github.com/images/icons/emoji/hearts.png?v5",
+ "heavy_check_mark": "https://assets-cdn.github.com/images/icons/emoji/heavy_check_mark.png?v5",
+ "heavy_division_sign": "https://assets-cdn.github.com/images/icons/emoji/heavy_division_sign.png?v5",
+ "heavy_dollar_sign": "https://assets-cdn.github.com/images/icons/emoji/heavy_dollar_sign.png?v5",
+ "heavy_exclamation_mark": "https://assets-cdn.github.com/images/icons/emoji/heavy_exclamation_mark.png?v5",
+ "heavy_minus_sign": "https://assets-cdn.github.com/images/icons/emoji/heavy_minus_sign.png?v5",
+ "heavy_multiplication_x": "https://assets-cdn.github.com/images/icons/emoji/heavy_multiplication_x.png?v5",
+ "heavy_plus_sign": "https://assets-cdn.github.com/images/icons/emoji/heavy_plus_sign.png?v5",
+ "helicopter": "https://assets-cdn.github.com/images/icons/emoji/helicopter.png?v5",
+ "herb": "https://assets-cdn.github.com/images/icons/emoji/herb.png?v5",
+ "hibiscus": "https://assets-cdn.github.com/images/icons/emoji/hibiscus.png?v5",
+ "high_brightness": "https://assets-cdn.github.com/images/icons/emoji/high_brightness.png?v5",
+ "high_heel": "https://assets-cdn.github.com/images/icons/emoji/high_heel.png?v5",
+ "hocho": "https://assets-cdn.github.com/images/icons/emoji/hocho.png?v5",
+ "honey_pot": "https://assets-cdn.github.com/images/icons/emoji/honey_pot.png?v5",
+ "honeybee": "https://assets-cdn.github.com/images/icons/emoji/honeybee.png?v5",
+ "horse": "https://assets-cdn.github.com/images/icons/emoji/horse.png?v5",
+ "horse_racing": "https://assets-cdn.github.com/images/icons/emoji/horse_racing.png?v5",
+ "hospital": "https://assets-cdn.github.com/images/icons/emoji/hospital.png?v5",
+ "hotel": "https://assets-cdn.github.com/images/icons/emoji/hotel.png?v5",
+ "hotsprings": "https://assets-cdn.github.com/images/icons/emoji/hotsprings.png?v5",
+ "hourglass": "https://assets-cdn.github.com/images/icons/emoji/hourglass.png?v5",
+ "hourglass_flowing_sand": "https://assets-cdn.github.com/images/icons/emoji/hourglass_flowing_sand.png?v5",
+ "house": "https://assets-cdn.github.com/images/icons/emoji/house.png?v5",
+ "house_with_garden": "https://assets-cdn.github.com/images/icons/emoji/house_with_garden.png?v5",
+ "hurtrealbad": "https://assets-cdn.github.com/images/icons/emoji/hurtrealbad.png?v5",
+ "hushed": "https://assets-cdn.github.com/images/icons/emoji/hushed.png?v5",
+ "ice_cream": "https://assets-cdn.github.com/images/icons/emoji/ice_cream.png?v5",
+ "icecream": "https://assets-cdn.github.com/images/icons/emoji/icecream.png?v5",
+ "id": "https://assets-cdn.github.com/images/icons/emoji/id.png?v5",
+ "ideograph_advantage": "https://assets-cdn.github.com/images/icons/emoji/ideograph_advantage.png?v5",
+ "imp": "https://assets-cdn.github.com/images/icons/emoji/imp.png?v5",
+ "inbox_tray": "https://assets-cdn.github.com/images/icons/emoji/inbox_tray.png?v5",
+ "incoming_envelope": "https://assets-cdn.github.com/images/icons/emoji/incoming_envelope.png?v5",
+ "information_desk_person": "https://assets-cdn.github.com/images/icons/emoji/information_desk_person.png?v5",
+ "information_source": "https://assets-cdn.github.com/images/icons/emoji/information_source.png?v5",
+ "innocent": "https://assets-cdn.github.com/images/icons/emoji/innocent.png?v5",
+ "interrobang": "https://assets-cdn.github.com/images/icons/emoji/interrobang.png?v5",
+ "iphone": "https://assets-cdn.github.com/images/icons/emoji/iphone.png?v5",
+ "it": "https://assets-cdn.github.com/images/icons/emoji/it.png?v5",
+ "izakaya_lantern": "https://assets-cdn.github.com/images/icons/emoji/izakaya_lantern.png?v5",
+ "jack_o_lantern": "https://assets-cdn.github.com/images/icons/emoji/jack_o_lantern.png?v5",
+ "japan": "https://assets-cdn.github.com/images/icons/emoji/japan.png?v5",
+ "japanese_castle": "https://assets-cdn.github.com/images/icons/emoji/japanese_castle.png?v5",
+ "japanese_goblin": "https://assets-cdn.github.com/images/icons/emoji/japanese_goblin.png?v5",
+ "japanese_ogre": "https://assets-cdn.github.com/images/icons/emoji/japanese_ogre.png?v5",
+ "jeans": "https://assets-cdn.github.com/images/icons/emoji/jeans.png?v5",
+ "joy": "https://assets-cdn.github.com/images/icons/emoji/joy.png?v5",
+ "joy_cat": "https://assets-cdn.github.com/images/icons/emoji/joy_cat.png?v5",
+ "jp": "https://assets-cdn.github.com/images/icons/emoji/jp.png?v5",
+ "key": "https://assets-cdn.github.com/images/icons/emoji/key.png?v5",
+ "keycap_ten": "https://assets-cdn.github.com/images/icons/emoji/keycap_ten.png?v5",
+ "kimono": "https://assets-cdn.github.com/images/icons/emoji/kimono.png?v5",
+ "kiss": "https://assets-cdn.github.com/images/icons/emoji/kiss.png?v5",
+ "kissing": "https://assets-cdn.github.com/images/icons/emoji/kissing.png?v5",
+ "kissing_cat": "https://assets-cdn.github.com/images/icons/emoji/kissing_cat.png?v5",
+ "kissing_closed_eyes": "https://assets-cdn.github.com/images/icons/emoji/kissing_closed_eyes.png?v5",
+ "kissing_heart": "https://assets-cdn.github.com/images/icons/emoji/kissing_heart.png?v5",
+ "kissing_smiling_eyes": "https://assets-cdn.github.com/images/icons/emoji/kissing_smiling_eyes.png?v5",
+ "koala": "https://assets-cdn.github.com/images/icons/emoji/koala.png?v5",
+ "koko": "https://assets-cdn.github.com/images/icons/emoji/koko.png?v5",
+ "kr": "https://assets-cdn.github.com/images/icons/emoji/kr.png?v5",
+ "lantern": "https://assets-cdn.github.com/images/icons/emoji/lantern.png?v5",
+ "large_blue_circle": "https://assets-cdn.github.com/images/icons/emoji/large_blue_circle.png?v5",
+ "large_blue_diamond": "https://assets-cdn.github.com/images/icons/emoji/large_blue_diamond.png?v5",
+ "large_orange_diamond": "https://assets-cdn.github.com/images/icons/emoji/large_orange_diamond.png?v5",
+ "last_quarter_moon": "https://assets-cdn.github.com/images/icons/emoji/last_quarter_moon.png?v5",
+ "last_quarter_moon_with_face": "https://assets-cdn.github.com/images/icons/emoji/last_quarter_moon_with_face.png?v5",
+ "laughing": "https://assets-cdn.github.com/images/icons/emoji/laughing.png?v5",
+ "leaves": "https://assets-cdn.github.com/images/icons/emoji/leaves.png?v5",
+ "ledger": "https://assets-cdn.github.com/images/icons/emoji/ledger.png?v5",
+ "left_luggage": "https://assets-cdn.github.com/images/icons/emoji/left_luggage.png?v5",
+ "left_right_arrow": "https://assets-cdn.github.com/images/icons/emoji/left_right_arrow.png?v5",
+ "leftwards_arrow_with_hook": "https://assets-cdn.github.com/images/icons/emoji/leftwards_arrow_with_hook.png?v5",
+ "lemon": "https://assets-cdn.github.com/images/icons/emoji/lemon.png?v5",
+ "leo": "https://assets-cdn.github.com/images/icons/emoji/leo.png?v5",
+ "leopard": "https://assets-cdn.github.com/images/icons/emoji/leopard.png?v5",
+ "libra": "https://assets-cdn.github.com/images/icons/emoji/libra.png?v5",
+ "light_rail": "https://assets-cdn.github.com/images/icons/emoji/light_rail.png?v5",
+ "link": "https://assets-cdn.github.com/images/icons/emoji/link.png?v5",
+ "lips": "https://assets-cdn.github.com/images/icons/emoji/lips.png?v5",
+ "lipstick": "https://assets-cdn.github.com/images/icons/emoji/lipstick.png?v5",
+ "lock": "https://assets-cdn.github.com/images/icons/emoji/lock.png?v5",
+ "lock_with_ink_pen": "https://assets-cdn.github.com/images/icons/emoji/lock_with_ink_pen.png?v5",
+ "lollipop": "https://assets-cdn.github.com/images/icons/emoji/lollipop.png?v5",
+ "loop": "https://assets-cdn.github.com/images/icons/emoji/loop.png?v5",
+ "loud_sound": "https://assets-cdn.github.com/images/icons/emoji/loud_sound.png?v5",
+ "loudspeaker": "https://assets-cdn.github.com/images/icons/emoji/loudspeaker.png?v5",
+ "love_hotel": "https://assets-cdn.github.com/images/icons/emoji/love_hotel.png?v5",
+ "love_letter": "https://assets-cdn.github.com/images/icons/emoji/love_letter.png?v5",
+ "low_brightness": "https://assets-cdn.github.com/images/icons/emoji/low_brightness.png?v5",
+ "m": "https://assets-cdn.github.com/images/icons/emoji/m.png?v5",
+ "mag": "https://assets-cdn.github.com/images/icons/emoji/mag.png?v5",
+ "mag_right": "https://assets-cdn.github.com/images/icons/emoji/mag_right.png?v5",
+ "mahjong": "https://assets-cdn.github.com/images/icons/emoji/mahjong.png?v5",
+ "mailbox": "https://assets-cdn.github.com/images/icons/emoji/mailbox.png?v5",
+ "mailbox_closed": "https://assets-cdn.github.com/images/icons/emoji/mailbox_closed.png?v5",
+ "mailbox_with_mail": "https://assets-cdn.github.com/images/icons/emoji/mailbox_with_mail.png?v5",
+ "mailbox_with_no_mail": "https://assets-cdn.github.com/images/icons/emoji/mailbox_with_no_mail.png?v5",
+ "man": "https://assets-cdn.github.com/images/icons/emoji/man.png?v5",
+ "man_with_gua_pi_mao": "https://assets-cdn.github.com/images/icons/emoji/man_with_gua_pi_mao.png?v5",
+ "man_with_turban": "https://assets-cdn.github.com/images/icons/emoji/man_with_turban.png?v5",
+ "mans_shoe": "https://assets-cdn.github.com/images/icons/emoji/mans_shoe.png?v5",
+ "maple_leaf": "https://assets-cdn.github.com/images/icons/emoji/maple_leaf.png?v5",
+ "mask": "https://assets-cdn.github.com/images/icons/emoji/mask.png?v5",
+ "massage": "https://assets-cdn.github.com/images/icons/emoji/massage.png?v5",
+ "meat_on_bone": "https://assets-cdn.github.com/images/icons/emoji/meat_on_bone.png?v5",
+ "mega": "https://assets-cdn.github.com/images/icons/emoji/mega.png?v5",
+ "melon": "https://assets-cdn.github.com/images/icons/emoji/melon.png?v5",
+ "memo": "https://assets-cdn.github.com/images/icons/emoji/memo.png?v5",
+ "mens": "https://assets-cdn.github.com/images/icons/emoji/mens.png?v5",
+ "metal": "https://assets-cdn.github.com/images/icons/emoji/metal.png?v5",
+ "metro": "https://assets-cdn.github.com/images/icons/emoji/metro.png?v5",
+ "microphone": "https://assets-cdn.github.com/images/icons/emoji/microphone.png?v5",
+ "microscope": "https://assets-cdn.github.com/images/icons/emoji/microscope.png?v5",
+ "milky_way": "https://assets-cdn.github.com/images/icons/emoji/milky_way.png?v5",
+ "minibus": "https://assets-cdn.github.com/images/icons/emoji/minibus.png?v5",
+ "minidisc": "https://assets-cdn.github.com/images/icons/emoji/minidisc.png?v5",
+ "mobile_phone_off": "https://assets-cdn.github.com/images/icons/emoji/mobile_phone_off.png?v5",
+ "money_with_wings": "https://assets-cdn.github.com/images/icons/emoji/money_with_wings.png?v5",
+ "moneybag": "https://assets-cdn.github.com/images/icons/emoji/moneybag.png?v5",
+ "monkey": "https://assets-cdn.github.com/images/icons/emoji/monkey.png?v5",
+ "monkey_face": "https://assets-cdn.github.com/images/icons/emoji/monkey_face.png?v5",
+ "monorail": "https://assets-cdn.github.com/images/icons/emoji/monorail.png?v5",
+ "moon": "https://assets-cdn.github.com/images/icons/emoji/moon.png?v5",
+ "mortar_board": "https://assets-cdn.github.com/images/icons/emoji/mortar_board.png?v5",
+ "mount_fuji": "https://assets-cdn.github.com/images/icons/emoji/mount_fuji.png?v5",
+ "mountain_bicyclist": "https://assets-cdn.github.com/images/icons/emoji/mountain_bicyclist.png?v5",
+ "mountain_cableway": "https://assets-cdn.github.com/images/icons/emoji/mountain_cableway.png?v5",
+ "mountain_railway": "https://assets-cdn.github.com/images/icons/emoji/mountain_railway.png?v5",
+ "mouse": "https://assets-cdn.github.com/images/icons/emoji/mouse.png?v5",
+ "mouse2": "https://assets-cdn.github.com/images/icons/emoji/mouse2.png?v5",
+ "movie_camera": "https://assets-cdn.github.com/images/icons/emoji/movie_camera.png?v5",
+ "moyai": "https://assets-cdn.github.com/images/icons/emoji/moyai.png?v5",
+ "muscle": "https://assets-cdn.github.com/images/icons/emoji/muscle.png?v5",
+ "mushroom": "https://assets-cdn.github.com/images/icons/emoji/mushroom.png?v5",
+ "musical_keyboard": "https://assets-cdn.github.com/images/icons/emoji/musical_keyboard.png?v5",
+ "musical_note": "https://assets-cdn.github.com/images/icons/emoji/musical_note.png?v5",
+ "musical_score": "https://assets-cdn.github.com/images/icons/emoji/musical_score.png?v5",
+ "mute": "https://assets-cdn.github.com/images/icons/emoji/mute.png?v5",
+ "nail_care": "https://assets-cdn.github.com/images/icons/emoji/nail_care.png?v5",
+ "name_badge": "https://assets-cdn.github.com/images/icons/emoji/name_badge.png?v5",
+ "neckbeard": "https://assets-cdn.github.com/images/icons/emoji/neckbeard.png?v5",
+ "necktie": "https://assets-cdn.github.com/images/icons/emoji/necktie.png?v5",
+ "negative_squared_cross_mark": "https://assets-cdn.github.com/images/icons/emoji/negative_squared_cross_mark.png?v5",
+ "neutral_face": "https://assets-cdn.github.com/images/icons/emoji/neutral_face.png?v5",
+ "new": "https://assets-cdn.github.com/images/icons/emoji/new.png?v5",
+ "new_moon": "https://assets-cdn.github.com/images/icons/emoji/new_moon.png?v5",
+ "new_moon_with_face": "https://assets-cdn.github.com/images/icons/emoji/new_moon_with_face.png?v5",
+ "newspaper": "https://assets-cdn.github.com/images/icons/emoji/newspaper.png?v5",
+ "ng": "https://assets-cdn.github.com/images/icons/emoji/ng.png?v5",
+ "night_with_stars": "https://assets-cdn.github.com/images/icons/emoji/night_with_stars.png?v5",
+ "nine": "https://assets-cdn.github.com/images/icons/emoji/nine.png?v5",
+ "no_bell": "https://assets-cdn.github.com/images/icons/emoji/no_bell.png?v5",
+ "no_bicycles": "https://assets-cdn.github.com/images/icons/emoji/no_bicycles.png?v5",
+ "no_entry": "https://assets-cdn.github.com/images/icons/emoji/no_entry.png?v5",
+ "no_entry_sign": "https://assets-cdn.github.com/images/icons/emoji/no_entry_sign.png?v5",
+ "no_good": "https://assets-cdn.github.com/images/icons/emoji/no_good.png?v5",
+ "no_mobile_phones": "https://assets-cdn.github.com/images/icons/emoji/no_mobile_phones.png?v5",
+ "no_mouth": "https://assets-cdn.github.com/images/icons/emoji/no_mouth.png?v5",
+ "no_pedestrians": "https://assets-cdn.github.com/images/icons/emoji/no_pedestrians.png?v5",
+ "no_smoking": "https://assets-cdn.github.com/images/icons/emoji/no_smoking.png?v5",
+ "non-potable_water": "https://assets-cdn.github.com/images/icons/emoji/non-potable_water.png?v5",
+ "nose": "https://assets-cdn.github.com/images/icons/emoji/nose.png?v5",
+ "notebook": "https://assets-cdn.github.com/images/icons/emoji/notebook.png?v5",
+ "notebook_with_decorative_cover": "https://assets-cdn.github.com/images/icons/emoji/notebook_with_decorative_cover.png?v5",
+ "notes": "https://assets-cdn.github.com/images/icons/emoji/notes.png?v5",
+ "nut_and_bolt": "https://assets-cdn.github.com/images/icons/emoji/nut_and_bolt.png?v5",
+ "o": "https://assets-cdn.github.com/images/icons/emoji/o.png?v5",
+ "o2": "https://assets-cdn.github.com/images/icons/emoji/o2.png?v5",
+ "ocean": "https://assets-cdn.github.com/images/icons/emoji/ocean.png?v5",
+ "octocat": "https://assets-cdn.github.com/images/icons/emoji/octocat.png?v5",
+ "octopus": "https://assets-cdn.github.com/images/icons/emoji/octopus.png?v5",
+ "oden": "https://assets-cdn.github.com/images/icons/emoji/oden.png?v5",
+ "office": "https://assets-cdn.github.com/images/icons/emoji/office.png?v5",
+ "ok": "https://assets-cdn.github.com/images/icons/emoji/ok.png?v5",
+ "ok_hand": "https://assets-cdn.github.com/images/icons/emoji/ok_hand.png?v5",
+ "ok_woman": "https://assets-cdn.github.com/images/icons/emoji/ok_woman.png?v5",
+ "older_man": "https://assets-cdn.github.com/images/icons/emoji/older_man.png?v5",
+ "older_woman": "https://assets-cdn.github.com/images/icons/emoji/older_woman.png?v5",
+ "on": "https://assets-cdn.github.com/images/icons/emoji/on.png?v5",
+ "oncoming_automobile": "https://assets-cdn.github.com/images/icons/emoji/oncoming_automobile.png?v5",
+ "oncoming_bus": "https://assets-cdn.github.com/images/icons/emoji/oncoming_bus.png?v5",
+ "oncoming_police_car": "https://assets-cdn.github.com/images/icons/emoji/oncoming_police_car.png?v5",
+ "oncoming_taxi": "https://assets-cdn.github.com/images/icons/emoji/oncoming_taxi.png?v5",
+ "one": "https://assets-cdn.github.com/images/icons/emoji/one.png?v5",
+ "open_book": "https://assets-cdn.github.com/images/icons/emoji/open_book.png?v5",
+ "open_file_folder": "https://assets-cdn.github.com/images/icons/emoji/open_file_folder.png?v5",
+ "open_hands": "https://assets-cdn.github.com/images/icons/emoji/open_hands.png?v5",
+ "open_mouth": "https://assets-cdn.github.com/images/icons/emoji/open_mouth.png?v5",
+ "ophiuchus": "https://assets-cdn.github.com/images/icons/emoji/ophiuchus.png?v5",
+ "orange_book": "https://assets-cdn.github.com/images/icons/emoji/orange_book.png?v5",
+ "outbox_tray": "https://assets-cdn.github.com/images/icons/emoji/outbox_tray.png?v5",
+ "ox": "https://assets-cdn.github.com/images/icons/emoji/ox.png?v5",
+ "package": "https://assets-cdn.github.com/images/icons/emoji/package.png?v5",
+ "page_facing_up": "https://assets-cdn.github.com/images/icons/emoji/page_facing_up.png?v5",
+ "page_with_curl": "https://assets-cdn.github.com/images/icons/emoji/page_with_curl.png?v5",
+ "pager": "https://assets-cdn.github.com/images/icons/emoji/pager.png?v5",
+ "palm_tree": "https://assets-cdn.github.com/images/icons/emoji/palm_tree.png?v5",
+ "panda_face": "https://assets-cdn.github.com/images/icons/emoji/panda_face.png?v5",
+ "paperclip": "https://assets-cdn.github.com/images/icons/emoji/paperclip.png?v5",
+ "parking": "https://assets-cdn.github.com/images/icons/emoji/parking.png?v5",
+ "part_alternation_mark": "https://assets-cdn.github.com/images/icons/emoji/part_alternation_mark.png?v5",
+ "partly_sunny": "https://assets-cdn.github.com/images/icons/emoji/partly_sunny.png?v5",
+ "passport_control": "https://assets-cdn.github.com/images/icons/emoji/passport_control.png?v5",
+ "paw_prints": "https://assets-cdn.github.com/images/icons/emoji/paw_prints.png?v5",
+ "peach": "https://assets-cdn.github.com/images/icons/emoji/peach.png?v5",
+ "pear": "https://assets-cdn.github.com/images/icons/emoji/pear.png?v5",
+ "pencil": "https://assets-cdn.github.com/images/icons/emoji/pencil.png?v5",
+ "pencil2": "https://assets-cdn.github.com/images/icons/emoji/pencil2.png?v5",
+ "penguin": "https://assets-cdn.github.com/images/icons/emoji/penguin.png?v5",
+ "pensive": "https://assets-cdn.github.com/images/icons/emoji/pensive.png?v5",
+ "performing_arts": "https://assets-cdn.github.com/images/icons/emoji/performing_arts.png?v5",
+ "persevere": "https://assets-cdn.github.com/images/icons/emoji/persevere.png?v5",
+ "person_frowning": "https://assets-cdn.github.com/images/icons/emoji/person_frowning.png?v5",
+ "person_with_blond_hair": "https://assets-cdn.github.com/images/icons/emoji/person_with_blond_hair.png?v5",
+ "person_with_pouting_face": "https://assets-cdn.github.com/images/icons/emoji/person_with_pouting_face.png?v5",
+ "phone": "https://assets-cdn.github.com/images/icons/emoji/phone.png?v5",
+ "pig": "https://assets-cdn.github.com/images/icons/emoji/pig.png?v5",
+ "pig2": "https://assets-cdn.github.com/images/icons/emoji/pig2.png?v5",
+ "pig_nose": "https://assets-cdn.github.com/images/icons/emoji/pig_nose.png?v5",
+ "pill": "https://assets-cdn.github.com/images/icons/emoji/pill.png?v5",
+ "pineapple": "https://assets-cdn.github.com/images/icons/emoji/pineapple.png?v5",
+ "pisces": "https://assets-cdn.github.com/images/icons/emoji/pisces.png?v5",
+ "pizza": "https://assets-cdn.github.com/images/icons/emoji/pizza.png?v5",
+ "point_down": "https://assets-cdn.github.com/images/icons/emoji/point_down.png?v5",
+ "point_left": "https://assets-cdn.github.com/images/icons/emoji/point_left.png?v5",
+ "point_right": "https://assets-cdn.github.com/images/icons/emoji/point_right.png?v5",
+ "point_up": "https://assets-cdn.github.com/images/icons/emoji/point_up.png?v5",
+ "point_up_2": "https://assets-cdn.github.com/images/icons/emoji/point_up_2.png?v5",
+ "police_car": "https://assets-cdn.github.com/images/icons/emoji/police_car.png?v5",
+ "poodle": "https://assets-cdn.github.com/images/icons/emoji/poodle.png?v5",
+ "poop": "https://assets-cdn.github.com/images/icons/emoji/poop.png?v5",
+ "post_office": "https://assets-cdn.github.com/images/icons/emoji/post_office.png?v5",
+ "postal_horn": "https://assets-cdn.github.com/images/icons/emoji/postal_horn.png?v5",
+ "postbox": "https://assets-cdn.github.com/images/icons/emoji/postbox.png?v5",
+ "potable_water": "https://assets-cdn.github.com/images/icons/emoji/potable_water.png?v5",
+ "pouch": "https://assets-cdn.github.com/images/icons/emoji/pouch.png?v5",
+ "poultry_leg": "https://assets-cdn.github.com/images/icons/emoji/poultry_leg.png?v5",
+ "pound": "https://assets-cdn.github.com/images/icons/emoji/pound.png?v5",
+ "pouting_cat": "https://assets-cdn.github.com/images/icons/emoji/pouting_cat.png?v5",
+ "pray": "https://assets-cdn.github.com/images/icons/emoji/pray.png?v5",
+ "princess": "https://assets-cdn.github.com/images/icons/emoji/princess.png?v5",
+ "punch": "https://assets-cdn.github.com/images/icons/emoji/punch.png?v5",
+ "purple_heart": "https://assets-cdn.github.com/images/icons/emoji/purple_heart.png?v5",
+ "purse": "https://assets-cdn.github.com/images/icons/emoji/purse.png?v5",
+ "pushpin": "https://assets-cdn.github.com/images/icons/emoji/pushpin.png?v5",
+ "put_litter_in_its_place": "https://assets-cdn.github.com/images/icons/emoji/put_litter_in_its_place.png?v5",
+ "question": "https://assets-cdn.github.com/images/icons/emoji/question.png?v5",
+ "rabbit": "https://assets-cdn.github.com/images/icons/emoji/rabbit.png?v5",
+ "rabbit2": "https://assets-cdn.github.com/images/icons/emoji/rabbit2.png?v5",
+ "racehorse": "https://assets-cdn.github.com/images/icons/emoji/racehorse.png?v5",
+ "radio": "https://assets-cdn.github.com/images/icons/emoji/radio.png?v5",
+ "radio_button": "https://assets-cdn.github.com/images/icons/emoji/radio_button.png?v5",
+ "rage": "https://assets-cdn.github.com/images/icons/emoji/rage.png?v5",
+ "rage1": "https://assets-cdn.github.com/images/icons/emoji/rage1.png?v5",
+ "rage2": "https://assets-cdn.github.com/images/icons/emoji/rage2.png?v5",
+ "rage3": "https://assets-cdn.github.com/images/icons/emoji/rage3.png?v5",
+ "rage4": "https://assets-cdn.github.com/images/icons/emoji/rage4.png?v5",
+ "railway_car": "https://assets-cdn.github.com/images/icons/emoji/railway_car.png?v5",
+ "rainbow": "https://assets-cdn.github.com/images/icons/emoji/rainbow.png?v5",
+ "raised_hand": "https://assets-cdn.github.com/images/icons/emoji/raised_hand.png?v5",
+ "raised_hands": "https://assets-cdn.github.com/images/icons/emoji/raised_hands.png?v5",
+ "raising_hand": "https://assets-cdn.github.com/images/icons/emoji/raising_hand.png?v5",
+ "ram": "https://assets-cdn.github.com/images/icons/emoji/ram.png?v5",
+ "ramen": "https://assets-cdn.github.com/images/icons/emoji/ramen.png?v5",
+ "rat": "https://assets-cdn.github.com/images/icons/emoji/rat.png?v5",
+ "recycle": "https://assets-cdn.github.com/images/icons/emoji/recycle.png?v5",
+ "red_car": "https://assets-cdn.github.com/images/icons/emoji/red_car.png?v5",
+ "red_circle": "https://assets-cdn.github.com/images/icons/emoji/red_circle.png?v5",
+ "registered": "https://assets-cdn.github.com/images/icons/emoji/registered.png?v5",
+ "relaxed": "https://assets-cdn.github.com/images/icons/emoji/relaxed.png?v5",
+ "relieved": "https://assets-cdn.github.com/images/icons/emoji/relieved.png?v5",
+ "repeat": "https://assets-cdn.github.com/images/icons/emoji/repeat.png?v5",
+ "repeat_one": "https://assets-cdn.github.com/images/icons/emoji/repeat_one.png?v5",
+ "restroom": "https://assets-cdn.github.com/images/icons/emoji/restroom.png?v5",
+ "revolving_hearts": "https://assets-cdn.github.com/images/icons/emoji/revolving_hearts.png?v5",
+ "rewind": "https://assets-cdn.github.com/images/icons/emoji/rewind.png?v5",
+ "ribbon": "https://assets-cdn.github.com/images/icons/emoji/ribbon.png?v5",
+ "rice": "https://assets-cdn.github.com/images/icons/emoji/rice.png?v5",
+ "rice_ball": "https://assets-cdn.github.com/images/icons/emoji/rice_ball.png?v5",
+ "rice_cracker": "https://assets-cdn.github.com/images/icons/emoji/rice_cracker.png?v5",
+ "rice_scene": "https://assets-cdn.github.com/images/icons/emoji/rice_scene.png?v5",
+ "ring": "https://assets-cdn.github.com/images/icons/emoji/ring.png?v5",
+ "rocket": "https://assets-cdn.github.com/images/icons/emoji/rocket.png?v5",
+ "roller_coaster": "https://assets-cdn.github.com/images/icons/emoji/roller_coaster.png?v5",
+ "rooster": "https://assets-cdn.github.com/images/icons/emoji/rooster.png?v5",
+ "rose": "https://assets-cdn.github.com/images/icons/emoji/rose.png?v5",
+ "rotating_light": "https://assets-cdn.github.com/images/icons/emoji/rotating_light.png?v5",
+ "round_pushpin": "https://assets-cdn.github.com/images/icons/emoji/round_pushpin.png?v5",
+ "rowboat": "https://assets-cdn.github.com/images/icons/emoji/rowboat.png?v5",
+ "ru": "https://assets-cdn.github.com/images/icons/emoji/ru.png?v5",
+ "rugby_football": "https://assets-cdn.github.com/images/icons/emoji/rugby_football.png?v5",
+ "runner": "https://assets-cdn.github.com/images/icons/emoji/runner.png?v5",
+ "running": "https://assets-cdn.github.com/images/icons/emoji/running.png?v5",
+ "running_shirt_with_sash": "https://assets-cdn.github.com/images/icons/emoji/running_shirt_with_sash.png?v5",
+ "sa": "https://assets-cdn.github.com/images/icons/emoji/sa.png?v5",
+ "sagittarius": "https://assets-cdn.github.com/images/icons/emoji/sagittarius.png?v5",
+ "sailboat": "https://assets-cdn.github.com/images/icons/emoji/sailboat.png?v5",
+ "sake": "https://assets-cdn.github.com/images/icons/emoji/sake.png?v5",
+ "sandal": "https://assets-cdn.github.com/images/icons/emoji/sandal.png?v5",
+ "santa": "https://assets-cdn.github.com/images/icons/emoji/santa.png?v5",
+ "satellite": "https://assets-cdn.github.com/images/icons/emoji/satellite.png?v5",
+ "satisfied": "https://assets-cdn.github.com/images/icons/emoji/satisfied.png?v5",
+ "saxophone": "https://assets-cdn.github.com/images/icons/emoji/saxophone.png?v5",
+ "school": "https://assets-cdn.github.com/images/icons/emoji/school.png?v5",
+ "school_satchel": "https://assets-cdn.github.com/images/icons/emoji/school_satchel.png?v5",
+ "scissors": "https://assets-cdn.github.com/images/icons/emoji/scissors.png?v5",
+ "scorpius": "https://assets-cdn.github.com/images/icons/emoji/scorpius.png?v5",
+ "scream": "https://assets-cdn.github.com/images/icons/emoji/scream.png?v5",
+ "scream_cat": "https://assets-cdn.github.com/images/icons/emoji/scream_cat.png?v5",
+ "scroll": "https://assets-cdn.github.com/images/icons/emoji/scroll.png?v5",
+ "seat": "https://assets-cdn.github.com/images/icons/emoji/seat.png?v5",
+ "secret": "https://assets-cdn.github.com/images/icons/emoji/secret.png?v5",
+ "see_no_evil": "https://assets-cdn.github.com/images/icons/emoji/see_no_evil.png?v5",
+ "seedling": "https://assets-cdn.github.com/images/icons/emoji/seedling.png?v5",
+ "seven": "https://assets-cdn.github.com/images/icons/emoji/seven.png?v5",
+ "shaved_ice": "https://assets-cdn.github.com/images/icons/emoji/shaved_ice.png?v5",
+ "sheep": "https://assets-cdn.github.com/images/icons/emoji/sheep.png?v5",
+ "shell": "https://assets-cdn.github.com/images/icons/emoji/shell.png?v5",
+ "ship": "https://assets-cdn.github.com/images/icons/emoji/ship.png?v5",
+ "shipit": "https://assets-cdn.github.com/images/icons/emoji/shipit.png?v5",
+ "shirt": "https://assets-cdn.github.com/images/icons/emoji/shirt.png?v5",
+ "shit": "https://assets-cdn.github.com/images/icons/emoji/shit.png?v5",
+ "shoe": "https://assets-cdn.github.com/images/icons/emoji/shoe.png?v5",
+ "shower": "https://assets-cdn.github.com/images/icons/emoji/shower.png?v5",
+ "signal_strength": "https://assets-cdn.github.com/images/icons/emoji/signal_strength.png?v5",
+ "six": "https://assets-cdn.github.com/images/icons/emoji/six.png?v5",
+ "six_pointed_star": "https://assets-cdn.github.com/images/icons/emoji/six_pointed_star.png?v5",
+ "ski": "https://assets-cdn.github.com/images/icons/emoji/ski.png?v5",
+ "skull": "https://assets-cdn.github.com/images/icons/emoji/skull.png?v5",
+ "sleeping": "https://assets-cdn.github.com/images/icons/emoji/sleeping.png?v5",
+ "sleepy": "https://assets-cdn.github.com/images/icons/emoji/sleepy.png?v5",
+ "slot_machine": "https://assets-cdn.github.com/images/icons/emoji/slot_machine.png?v5",
+ "small_blue_diamond": "https://assets-cdn.github.com/images/icons/emoji/small_blue_diamond.png?v5",
+ "small_orange_diamond": "https://assets-cdn.github.com/images/icons/emoji/small_orange_diamond.png?v5",
+ "small_red_triangle": "https://assets-cdn.github.com/images/icons/emoji/small_red_triangle.png?v5",
+ "small_red_triangle_down": "https://assets-cdn.github.com/images/icons/emoji/small_red_triangle_down.png?v5",
+ "smile": "https://assets-cdn.github.com/images/icons/emoji/smile.png?v5",
+ "smile_cat": "https://assets-cdn.github.com/images/icons/emoji/smile_cat.png?v5",
+ "smiley": "https://assets-cdn.github.com/images/icons/emoji/smiley.png?v5",
+ "smiley_cat": "https://assets-cdn.github.com/images/icons/emoji/smiley_cat.png?v5",
+ "smiling_imp": "https://assets-cdn.github.com/images/icons/emoji/smiling_imp.png?v5",
+ "smirk": "https://assets-cdn.github.com/images/icons/emoji/smirk.png?v5",
+ "smirk_cat": "https://assets-cdn.github.com/images/icons/emoji/smirk_cat.png?v5",
+ "smoking": "https://assets-cdn.github.com/images/icons/emoji/smoking.png?v5",
+ "snail": "https://assets-cdn.github.com/images/icons/emoji/snail.png?v5",
+ "snake": "https://assets-cdn.github.com/images/icons/emoji/snake.png?v5",
+ "snowboarder": "https://assets-cdn.github.com/images/icons/emoji/snowboarder.png?v5",
+ "snowflake": "https://assets-cdn.github.com/images/icons/emoji/snowflake.png?v5",
+ "snowman": "https://assets-cdn.github.com/images/icons/emoji/snowman.png?v5",
+ "sob": "https://assets-cdn.github.com/images/icons/emoji/sob.png?v5",
+ "soccer": "https://assets-cdn.github.com/images/icons/emoji/soccer.png?v5",
+ "soon": "https://assets-cdn.github.com/images/icons/emoji/soon.png?v5",
+ "sos": "https://assets-cdn.github.com/images/icons/emoji/sos.png?v5",
+ "sound": "https://assets-cdn.github.com/images/icons/emoji/sound.png?v5",
+ "space_invader": "https://assets-cdn.github.com/images/icons/emoji/space_invader.png?v5",
+ "spades": "https://assets-cdn.github.com/images/icons/emoji/spades.png?v5",
+ "spaghetti": "https://assets-cdn.github.com/images/icons/emoji/spaghetti.png?v5",
+ "sparkle": "https://assets-cdn.github.com/images/icons/emoji/sparkle.png?v5",
+ "sparkler": "https://assets-cdn.github.com/images/icons/emoji/sparkler.png?v5",
+ "sparkles": "https://assets-cdn.github.com/images/icons/emoji/sparkles.png?v5",
+ "sparkling_heart": "https://assets-cdn.github.com/images/icons/emoji/sparkling_heart.png?v5",
+ "speak_no_evil": "https://assets-cdn.github.com/images/icons/emoji/speak_no_evil.png?v5",
+ "speaker": "https://assets-cdn.github.com/images/icons/emoji/speaker.png?v5",
+ "speech_balloon": "https://assets-cdn.github.com/images/icons/emoji/speech_balloon.png?v5",
+ "speedboat": "https://assets-cdn.github.com/images/icons/emoji/speedboat.png?v5",
+ "squirrel": "https://assets-cdn.github.com/images/icons/emoji/squirrel.png?v5",
+ "star": "https://assets-cdn.github.com/images/icons/emoji/star.png?v5",
+ "star2": "https://assets-cdn.github.com/images/icons/emoji/star2.png?v5",
+ "stars": "https://assets-cdn.github.com/images/icons/emoji/stars.png?v5",
+ "station": "https://assets-cdn.github.com/images/icons/emoji/station.png?v5",
+ "statue_of_liberty": "https://assets-cdn.github.com/images/icons/emoji/statue_of_liberty.png?v5",
+ "steam_locomotive": "https://assets-cdn.github.com/images/icons/emoji/steam_locomotive.png?v5",
+ "stew": "https://assets-cdn.github.com/images/icons/emoji/stew.png?v5",
+ "straight_ruler": "https://assets-cdn.github.com/images/icons/emoji/straight_ruler.png?v5",
+ "strawberry": "https://assets-cdn.github.com/images/icons/emoji/strawberry.png?v5",
+ "stuck_out_tongue": "https://assets-cdn.github.com/images/icons/emoji/stuck_out_tongue.png?v5",
+ "stuck_out_tongue_closed_eyes": "https://assets-cdn.github.com/images/icons/emoji/stuck_out_tongue_closed_eyes.png?v5",
+ "stuck_out_tongue_winking_eye": "https://assets-cdn.github.com/images/icons/emoji/stuck_out_tongue_winking_eye.png?v5",
+ "sun_with_face": "https://assets-cdn.github.com/images/icons/emoji/sun_with_face.png?v5",
+ "sunflower": "https://assets-cdn.github.com/images/icons/emoji/sunflower.png?v5",
+ "sunglasses": "https://assets-cdn.github.com/images/icons/emoji/sunglasses.png?v5",
+ "sunny": "https://assets-cdn.github.com/images/icons/emoji/sunny.png?v5",
+ "sunrise": "https://assets-cdn.github.com/images/icons/emoji/sunrise.png?v5",
+ "sunrise_over_mountains": "https://assets-cdn.github.com/images/icons/emoji/sunrise_over_mountains.png?v5",
+ "surfer": "https://assets-cdn.github.com/images/icons/emoji/surfer.png?v5",
+ "sushi": "https://assets-cdn.github.com/images/icons/emoji/sushi.png?v5",
+ "suspect": "https://assets-cdn.github.com/images/icons/emoji/suspect.png?v5",
+ "suspension_railway": "https://assets-cdn.github.com/images/icons/emoji/suspension_railway.png?v5",
+ "sweat": "https://assets-cdn.github.com/images/icons/emoji/sweat.png?v5",
+ "sweat_drops": "https://assets-cdn.github.com/images/icons/emoji/sweat_drops.png?v5",
+ "sweat_smile": "https://assets-cdn.github.com/images/icons/emoji/sweat_smile.png?v5",
+ "sweet_potato": "https://assets-cdn.github.com/images/icons/emoji/sweet_potato.png?v5",
+ "swimmer": "https://assets-cdn.github.com/images/icons/emoji/swimmer.png?v5",
+ "symbols": "https://assets-cdn.github.com/images/icons/emoji/symbols.png?v5",
+ "syringe": "https://assets-cdn.github.com/images/icons/emoji/syringe.png?v5",
+ "tada": "https://assets-cdn.github.com/images/icons/emoji/tada.png?v5",
+ "tanabata_tree": "https://assets-cdn.github.com/images/icons/emoji/tanabata_tree.png?v5",
+ "tangerine": "https://assets-cdn.github.com/images/icons/emoji/tangerine.png?v5",
+ "taurus": "https://assets-cdn.github.com/images/icons/emoji/taurus.png?v5",
+ "taxi": "https://assets-cdn.github.com/images/icons/emoji/taxi.png?v5",
+ "tea": "https://assets-cdn.github.com/images/icons/emoji/tea.png?v5",
+ "telephone": "https://assets-cdn.github.com/images/icons/emoji/telephone.png?v5",
+ "telephone_receiver": "https://assets-cdn.github.com/images/icons/emoji/telephone_receiver.png?v5",
+ "telescope": "https://assets-cdn.github.com/images/icons/emoji/telescope.png?v5",
+ "tennis": "https://assets-cdn.github.com/images/icons/emoji/tennis.png?v5",
+ "tent": "https://assets-cdn.github.com/images/icons/emoji/tent.png?v5",
+ "thought_balloon": "https://assets-cdn.github.com/images/icons/emoji/thought_balloon.png?v5",
+ "three": "https://assets-cdn.github.com/images/icons/emoji/three.png?v5",
+ "thumbsdown": "https://assets-cdn.github.com/images/icons/emoji/thumbsdown.png?v5",
+ "thumbsup": "https://assets-cdn.github.com/images/icons/emoji/thumbsup.png?v5",
+ "ticket": "https://assets-cdn.github.com/images/icons/emoji/ticket.png?v5",
+ "tiger": "https://assets-cdn.github.com/images/icons/emoji/tiger.png?v5",
+ "tiger2": "https://assets-cdn.github.com/images/icons/emoji/tiger2.png?v5",
+ "tired_face": "https://assets-cdn.github.com/images/icons/emoji/tired_face.png?v5",
+ "tm": "https://assets-cdn.github.com/images/icons/emoji/tm.png?v5",
+ "toilet": "https://assets-cdn.github.com/images/icons/emoji/toilet.png?v5",
+ "tokyo_tower": "https://assets-cdn.github.com/images/icons/emoji/tokyo_tower.png?v5",
+ "tomato": "https://assets-cdn.github.com/images/icons/emoji/tomato.png?v5",
+ "tongue": "https://assets-cdn.github.com/images/icons/emoji/tongue.png?v5",
+ "top": "https://assets-cdn.github.com/images/icons/emoji/top.png?v5",
+ "tophat": "https://assets-cdn.github.com/images/icons/emoji/tophat.png?v5",
+ "tractor": "https://assets-cdn.github.com/images/icons/emoji/tractor.png?v5",
+ "traffic_light": "https://assets-cdn.github.com/images/icons/emoji/traffic_light.png?v5",
+ "train": "https://assets-cdn.github.com/images/icons/emoji/train.png?v5",
+ "train2": "https://assets-cdn.github.com/images/icons/emoji/train2.png?v5",
+ "tram": "https://assets-cdn.github.com/images/icons/emoji/tram.png?v5",
+ "triangular_flag_on_post": "https://assets-cdn.github.com/images/icons/emoji/triangular_flag_on_post.png?v5",
+ "triangular_ruler": "https://assets-cdn.github.com/images/icons/emoji/triangular_ruler.png?v5",
+ "trident": "https://assets-cdn.github.com/images/icons/emoji/trident.png?v5",
+ "triumph": "https://assets-cdn.github.com/images/icons/emoji/triumph.png?v5",
+ "trolleybus": "https://assets-cdn.github.com/images/icons/emoji/trolleybus.png?v5",
+ "trollface": "https://assets-cdn.github.com/images/icons/emoji/trollface.png?v5",
+ "trophy": "https://assets-cdn.github.com/images/icons/emoji/trophy.png?v5",
+ "tropical_drink": "https://assets-cdn.github.com/images/icons/emoji/tropical_drink.png?v5",
+ "tropical_fish": "https://assets-cdn.github.com/images/icons/emoji/tropical_fish.png?v5",
+ "truck": "https://assets-cdn.github.com/images/icons/emoji/truck.png?v5",
+ "trumpet": "https://assets-cdn.github.com/images/icons/emoji/trumpet.png?v5",
+ "tshirt": "https://assets-cdn.github.com/images/icons/emoji/tshirt.png?v5",
+ "tulip": "https://assets-cdn.github.com/images/icons/emoji/tulip.png?v5",
+ "turtle": "https://assets-cdn.github.com/images/icons/emoji/turtle.png?v5",
+ "tv": "https://assets-cdn.github.com/images/icons/emoji/tv.png?v5",
+ "twisted_rightwards_arrows": "https://assets-cdn.github.com/images/icons/emoji/twisted_rightwards_arrows.png?v5",
+ "two": "https://assets-cdn.github.com/images/icons/emoji/two.png?v5",
+ "two_hearts": "https://assets-cdn.github.com/images/icons/emoji/two_hearts.png?v5",
+ "two_men_holding_hands": "https://assets-cdn.github.com/images/icons/emoji/two_men_holding_hands.png?v5",
+ "two_women_holding_hands": "https://assets-cdn.github.com/images/icons/emoji/two_women_holding_hands.png?v5",
+ "u5272": "https://assets-cdn.github.com/images/icons/emoji/u5272.png?v5",
+ "u5408": "https://assets-cdn.github.com/images/icons/emoji/u5408.png?v5",
+ "u55b6": "https://assets-cdn.github.com/images/icons/emoji/u55b6.png?v5",
+ "u6307": "https://assets-cdn.github.com/images/icons/emoji/u6307.png?v5",
+ "u6708": "https://assets-cdn.github.com/images/icons/emoji/u6708.png?v5",
+ "u6709": "https://assets-cdn.github.com/images/icons/emoji/u6709.png?v5",
+ "u6e80": "https://assets-cdn.github.com/images/icons/emoji/u6e80.png?v5",
+ "u7121": "https://assets-cdn.github.com/images/icons/emoji/u7121.png?v5",
+ "u7533": "https://assets-cdn.github.com/images/icons/emoji/u7533.png?v5",
+ "u7981": "https://assets-cdn.github.com/images/icons/emoji/u7981.png?v5",
+ "u7a7a": "https://assets-cdn.github.com/images/icons/emoji/u7a7a.png?v5",
+ "uk": "https://assets-cdn.github.com/images/icons/emoji/uk.png?v5",
+ "umbrella": "https://assets-cdn.github.com/images/icons/emoji/umbrella.png?v5",
+ "unamused": "https://assets-cdn.github.com/images/icons/emoji/unamused.png?v5",
+ "underage": "https://assets-cdn.github.com/images/icons/emoji/underage.png?v5",
+ "unlock": "https://assets-cdn.github.com/images/icons/emoji/unlock.png?v5",
+ "up": "https://assets-cdn.github.com/images/icons/emoji/up.png?v5",
+ "us": "https://assets-cdn.github.com/images/icons/emoji/us.png?v5",
+ "v": "https://assets-cdn.github.com/images/icons/emoji/v.png?v5",
+ "vertical_traffic_light": "https://assets-cdn.github.com/images/icons/emoji/vertical_traffic_light.png?v5",
+ "vhs": "https://assets-cdn.github.com/images/icons/emoji/vhs.png?v5",
+ "vibration_mode": "https://assets-cdn.github.com/images/icons/emoji/vibration_mode.png?v5",
+ "video_camera": "https://assets-cdn.github.com/images/icons/emoji/video_camera.png?v5",
+ "video_game": "https://assets-cdn.github.com/images/icons/emoji/video_game.png?v5",
+ "violin": "https://assets-cdn.github.com/images/icons/emoji/violin.png?v5",
+ "virgo": "https://assets-cdn.github.com/images/icons/emoji/virgo.png?v5",
+ "volcano": "https://assets-cdn.github.com/images/icons/emoji/volcano.png?v5",
+ "vs": "https://assets-cdn.github.com/images/icons/emoji/vs.png?v5",
+ "walking": "https://assets-cdn.github.com/images/icons/emoji/walking.png?v5",
+ "waning_crescent_moon": "https://assets-cdn.github.com/images/icons/emoji/waning_crescent_moon.png?v5",
+ "waning_gibbous_moon": "https://assets-cdn.github.com/images/icons/emoji/waning_gibbous_moon.png?v5",
+ "warning": "https://assets-cdn.github.com/images/icons/emoji/warning.png?v5",
+ "watch": "https://assets-cdn.github.com/images/icons/emoji/watch.png?v5",
+ "water_buffalo": "https://assets-cdn.github.com/images/icons/emoji/water_buffalo.png?v5",
+ "watermelon": "https://assets-cdn.github.com/images/icons/emoji/watermelon.png?v5",
+ "wave": "https://assets-cdn.github.com/images/icons/emoji/wave.png?v5",
+ "wavy_dash": "https://assets-cdn.github.com/images/icons/emoji/wavy_dash.png?v5",
+ "waxing_crescent_moon": "https://assets-cdn.github.com/images/icons/emoji/waxing_crescent_moon.png?v5",
+ "waxing_gibbous_moon": "https://assets-cdn.github.com/images/icons/emoji/waxing_gibbous_moon.png?v5",
+ "wc": "https://assets-cdn.github.com/images/icons/emoji/wc.png?v5",
+ "weary": "https://assets-cdn.github.com/images/icons/emoji/weary.png?v5",
+ "wedding": "https://assets-cdn.github.com/images/icons/emoji/wedding.png?v5",
+ "whale": "https://assets-cdn.github.com/images/icons/emoji/whale.png?v5",
+ "whale2": "https://assets-cdn.github.com/images/icons/emoji/whale2.png?v5",
+ "wheelchair": "https://assets-cdn.github.com/images/icons/emoji/wheelchair.png?v5",
+ "white_check_mark": "https://assets-cdn.github.com/images/icons/emoji/white_check_mark.png?v5",
+ "white_circle": "https://assets-cdn.github.com/images/icons/emoji/white_circle.png?v5",
+ "white_flower": "https://assets-cdn.github.com/images/icons/emoji/white_flower.png?v5",
+ "white_large_square": "https://assets-cdn.github.com/images/icons/emoji/white_large_square.png?v5",
+ "white_medium_small_square": "https://assets-cdn.github.com/images/icons/emoji/white_medium_small_square.png?v5",
+ "white_medium_square": "https://assets-cdn.github.com/images/icons/emoji/white_medium_square.png?v5",
+ "white_small_square": "https://assets-cdn.github.com/images/icons/emoji/white_small_square.png?v5",
+ "white_square_button": "https://assets-cdn.github.com/images/icons/emoji/white_square_button.png?v5",
+ "wind_chime": "https://assets-cdn.github.com/images/icons/emoji/wind_chime.png?v5",
+ "wine_glass": "https://assets-cdn.github.com/images/icons/emoji/wine_glass.png?v5",
+ "wink": "https://assets-cdn.github.com/images/icons/emoji/wink.png?v5",
+ "wolf": "https://assets-cdn.github.com/images/icons/emoji/wolf.png?v5",
+ "woman": "https://assets-cdn.github.com/images/icons/emoji/woman.png?v5",
+ "womans_clothes": "https://assets-cdn.github.com/images/icons/emoji/womans_clothes.png?v5",
+ "womans_hat": "https://assets-cdn.github.com/images/icons/emoji/womans_hat.png?v5",
+ "womens": "https://assets-cdn.github.com/images/icons/emoji/womens.png?v5",
+ "worried": "https://assets-cdn.github.com/images/icons/emoji/worried.png?v5",
+ "wrench": "https://assets-cdn.github.com/images/icons/emoji/wrench.png?v5",
+ "x": "https://assets-cdn.github.com/images/icons/emoji/x.png?v5",
+ "yellow_heart": "https://assets-cdn.github.com/images/icons/emoji/yellow_heart.png?v5",
+ "yen": "https://assets-cdn.github.com/images/icons/emoji/yen.png?v5",
+ "yum": "https://assets-cdn.github.com/images/icons/emoji/yum.png?v5",
+ "zap": "https://assets-cdn.github.com/images/icons/emoji/zap.png?v5",
+ "zero": "https://assets-cdn.github.com/images/icons/emoji/zero.png?v5",
+ "zzz": "https://assets-cdn.github.com/images/icons/emoji/zzz.png?v5"
+ }
+ self.emoji_keys = set(self.emojis.keys())
+ self.pattern = re.compile(':([a-z0-9\+\-_]+):')
+
+ def make_emoji(self, m):
+ name = m.group(1)
+ if name not in self.emoji_keys:
+ return ':%s:' % name
+ tpl = ('')
+ return tpl % {'name': name, 'url': self.emojis[name]}
+
+ def replace(self, text):
+ if text:
+ text = self.pattern.sub(self.make_emoji, text)
+ return text
diff --git a/snakefire/mainframe.py b/snakefire/mainframe.py
index 121bd34..786ff7b 100644
--- a/snakefire/mainframe.py
+++ b/snakefire/mainframe.py
@@ -9,6 +9,7 @@
import enchant
from snakefire import NOTIFICATIONS_ENABLED, KDE_ENABLED
+from snakefire.emoji import Emoji
from PyQt4 import Qt
from PyQt4 import QtGui
@@ -53,6 +54,7 @@ def __init__(self):
self._settings = {}
self._canConnect = False
self._cfDisconnected()
+ self._emoji = Emoji()
if len(sys.argv) > 1:
self._qsettings = QtCore.QSettings(sys.argv[1], QtCore.QSettings.IniFormat if sys.platform.find("win") == 0 else QtCore.QSettings.NativeFormat)
@@ -498,8 +500,9 @@ def _cfStreamMessage(self, room, message, live=True, updateRoom=True):
alertIsDirectPing = False
if message.is_text() and not message.is_by_current_user():
- alertIsDirectPing = (QtCore.QString(message.body).indexOf(QtCore.QRegExp("\\s*\\b{name}\\b".format(name=QtCore.QRegExp.escape(self._worker.getUser().name)), QtCore.Qt.CaseInsensitive)) == 0)
- alert = self.getSetting("alerts", "notify_ping") if alertIsDirectPing else self._matchesAlert(message.body)
+ content = self._emoji.replace(message.body)
+ alertIsDirectPing = (QtCore.QString(content).indexOf(QtCore.QRegExp("\\s*\\b{name}\\b".format(name=QtCore.QRegExp.escape(self._worker.getUser().name)), QtCore.Qt.CaseInsensitive)) == 0)
+ alert = self.getSetting("alerts", "notify_ping") if alertIsDirectPing else self._matchesAlert(content)
maximumImageWidth = int(view.size().width() * 0.4) # 40% of viewport
renderer = MessageRenderer(
@@ -512,7 +515,8 @@ def _cfStreamMessage(self, room, message, live=True, updateRoom=True):
showTimestamps = self.getSetting("display", "show_message_timestamps"),
alert=alert,
alertIsDirectPing=alertIsDirectPing,
- parent=self
+ parent=self,
+ emoji=self._emoji
)
if renderer.needsThread():
@@ -527,6 +531,7 @@ def _renderMessage(self, html, room, message, live=True, updateRoom=True, alert=
frame = self._rooms[room.id]["frame"]
view = self._rooms[room.id]["view"]
+ content = self._emoji.replace(message.body)
if not frame or not view:
return
@@ -558,7 +563,7 @@ def _renderMessage(self, html, room, message, live=True, updateRoom=True, alert=
self._trayIcon.alert()
if live and ((alert or (not isActiveTab and notifyInactiveTab and message.is_text())) and self.getSetting("alerts", "notify_notify")):
- self._notify(room, unicode(u"{} says: {}".format(message.user.name, message.body)), message.user)
+ self._notify(room, unicode(u"{} says: {}".format(message.user.name, content)), message.user)
if updateRoom:
if (message.is_joining() or message.is_leaving()):
@@ -566,7 +571,7 @@ def _renderMessage(self, html, room, message, live=True, updateRoom=True, alert=
elif message.is_upload():
self.updateRoomUploads(room.id)
elif message.is_topic_change() and not message.is_by_current_user():
- self._cfTopicChanged(room, message.body)
+ self._cfTopicChanged(room, content)
# Respond to direct pings while being away, but only send an auto-response if last one was sent more than 2 minutes ago
if live and alertIsDirectPing and self.getSetting("program", "away") and self._idle:
diff --git a/snakefire/renderers.py b/snakefire/renderers.py
index 6f0918d..76480a1 100644
--- a/snakefire/renderers.py
+++ b/snakefire/renderers.py
@@ -7,6 +7,8 @@
from urlparse import urlparse
+from snakefire.emoji import Emoji
+
class MessageRenderer(QtCore.QThread):
MESSAGES = {
"alert": u'