diff --git a/css/style.css b/css/style.css
index ef26224..c24601f 100644
--- a/css/style.css
+++ b/css/style.css
@@ -721,7 +721,12 @@ input.userMenu-search-field:focus::-ms-input-placeholder {
color: #fff;
opacity: .7;
}
-.post-area-new.open textarea + .post-area-extras
+/*.post-area-new.open textarea + .post-area-extras
+{
+ height: 35px;
+ transition: all .6s linear;
+}*/
+.post-area-new.open > .post-area-extras
{
height: 35px;
transition: all .6s linear;
@@ -1921,6 +1926,59 @@ input.userMenu-search-field:focus::-ms-input-placeholder {
.following ol.following-list .mini-profile-info button {
margin-top: 5px;
}
-.following ol.following-list .mini-profile-info .mini-profile-name {
+/* Autocomplite*/
+ul.dropdown-menu {
+ position: absolute;
+ top: 23px;
+ left: 170px;
+ z-index: 100;
+ display: block;
+ float: left;
+ min-width: 160px;
+ padding: 5px 0;
+ margin: 2px 0 0;
+ list-style: none;
+ background-color: #fff;
+ border: 1px solid rgba(0,0,0, .2);
+ border-radius: 6px;
+ -webkit-border-radius: 6px;
+ -moz-border-radius: 6px;
+ -webkit-box-shadow: 0 5px 10px rgba(0,0,0, .2);
+ -moz-box-shadow: 0 5px 10px rgba(0,0,0, .2);
+ box-shadow: 0 5px 10px rgba(0,0,0, .2);
+
+}
+ul.dropdown-menu li {
+ line-height: 20px;
+
+}
+ul.dropdown-menu > .active > a {
+ color: #fff;
+ text-decoration: none;
+ background-color: #7691ce;
+ background-image: linear-gradient(to bottom, #6f88c1, #7e9bdb);
+ background-repeat: repeat-x;
+
+}
+ul.dropdown-menu > li > a {
+ display: block;
+ padding: 3px 20px;
+ clear: both;
+ font: 13px/20px "Open Sans", sans-serif;
+ white-space: nowrap;
+ -webkit-transition: all 200ms;
+ -moz-transition: all 200ms;
+ -ms-transition: all 200ms;
+ -o-transition: all 200ms;
+ transition: all 200ms;
+}
+ul.dropdown-menu img {
+ width: 25px;
+ height: 25px;
+ margin-right: 10px;
+}
+p.post-text img {
+ width: 25px;
+ height: 25px;
}
\ No newline at end of file
diff --git a/home.html b/home.html
index e870878..1a7b6ca 100644
--- a/home.html
+++ b/home.html
@@ -25,6 +25,8 @@
+
+
diff --git a/img/dm.png b/img/dm.png
index 942516c..90bf505 100644
Binary files a/img/dm.png and b/img/dm.png differ
diff --git a/img/edit.png b/img/edit.png
index 110b144..ce3cbb3 100644
Binary files a/img/edit.png and b/img/edit.png differ
diff --git a/img/emoji/+1.png b/img/emoji/+1.png
new file mode 100644
index 0000000..645f46f
Binary files /dev/null and b/img/emoji/+1.png differ
diff --git a/img/emoji/-1.png b/img/emoji/-1.png
new file mode 100644
index 0000000..74a5005
Binary files /dev/null and b/img/emoji/-1.png differ
diff --git a/img/emoji/100.png b/img/emoji/100.png
new file mode 100644
index 0000000..0f2b392
Binary files /dev/null and b/img/emoji/100.png differ
diff --git a/img/emoji/1234.png b/img/emoji/1234.png
new file mode 100644
index 0000000..c47c2e1
Binary files /dev/null and b/img/emoji/1234.png differ
diff --git a/img/emoji/8ball.png b/img/emoji/8ball.png
new file mode 100644
index 0000000..c2c710d
Binary files /dev/null and b/img/emoji/8ball.png differ
diff --git a/img/emoji/a.png b/img/emoji/a.png
new file mode 100644
index 0000000..9cc3012
Binary files /dev/null and b/img/emoji/a.png differ
diff --git a/img/emoji/ab.png b/img/emoji/ab.png
new file mode 100644
index 0000000..ab0d183
Binary files /dev/null and b/img/emoji/ab.png differ
diff --git a/img/emoji/abc.png b/img/emoji/abc.png
new file mode 100644
index 0000000..505d40a
Binary files /dev/null and b/img/emoji/abc.png differ
diff --git a/img/emoji/abcd.png b/img/emoji/abcd.png
new file mode 100644
index 0000000..5218470
Binary files /dev/null and b/img/emoji/abcd.png differ
diff --git a/img/emoji/accept.png b/img/emoji/accept.png
new file mode 100644
index 0000000..9da160d
Binary files /dev/null and b/img/emoji/accept.png differ
diff --git a/img/emoji/aerial_tramway.png b/img/emoji/aerial_tramway.png
new file mode 100644
index 0000000..d0ac245
Binary files /dev/null and b/img/emoji/aerial_tramway.png differ
diff --git a/img/emoji/airplane.png b/img/emoji/airplane.png
new file mode 100644
index 0000000..8407cb6
Binary files /dev/null and b/img/emoji/airplane.png differ
diff --git a/img/emoji/alarm_clock.png b/img/emoji/alarm_clock.png
new file mode 100644
index 0000000..60ae08f
Binary files /dev/null and b/img/emoji/alarm_clock.png differ
diff --git a/img/emoji/alien.png b/img/emoji/alien.png
new file mode 100644
index 0000000..4aafc44
Binary files /dev/null and b/img/emoji/alien.png differ
diff --git a/img/emoji/ambulance.png b/img/emoji/ambulance.png
new file mode 100644
index 0000000..180bd97
Binary files /dev/null and b/img/emoji/ambulance.png differ
diff --git a/img/emoji/anchor.png b/img/emoji/anchor.png
new file mode 100644
index 0000000..0c5192e
Binary files /dev/null and b/img/emoji/anchor.png differ
diff --git a/img/emoji/angel.png b/img/emoji/angel.png
new file mode 100644
index 0000000..da52c31
Binary files /dev/null and b/img/emoji/angel.png differ
diff --git a/img/emoji/anger.png b/img/emoji/anger.png
new file mode 100644
index 0000000..6fb4dca
Binary files /dev/null and b/img/emoji/anger.png differ
diff --git a/img/emoji/angry.png b/img/emoji/angry.png
new file mode 100644
index 0000000..21f2380
Binary files /dev/null and b/img/emoji/angry.png differ
diff --git a/img/emoji/anguished.png b/img/emoji/anguished.png
new file mode 100644
index 0000000..c625947
Binary files /dev/null and b/img/emoji/anguished.png differ
diff --git a/img/emoji/ant.png b/img/emoji/ant.png
new file mode 100644
index 0000000..9e72539
Binary files /dev/null and b/img/emoji/ant.png differ
diff --git a/img/emoji/apple.png b/img/emoji/apple.png
new file mode 100644
index 0000000..08aa17b
Binary files /dev/null and b/img/emoji/apple.png differ
diff --git a/img/emoji/aquarius.png b/img/emoji/aquarius.png
new file mode 100644
index 0000000..cbff66e
Binary files /dev/null and b/img/emoji/aquarius.png differ
diff --git a/img/emoji/aries.png b/img/emoji/aries.png
new file mode 100644
index 0000000..a8998d8
Binary files /dev/null and b/img/emoji/aries.png differ
diff --git a/img/emoji/arrow_backward.png b/img/emoji/arrow_backward.png
new file mode 100644
index 0000000..38c4a87
Binary files /dev/null and b/img/emoji/arrow_backward.png differ
diff --git a/img/emoji/arrow_double_down.png b/img/emoji/arrow_double_down.png
new file mode 100644
index 0000000..2ecbebc
Binary files /dev/null and b/img/emoji/arrow_double_down.png differ
diff --git a/img/emoji/arrow_double_up.png b/img/emoji/arrow_double_up.png
new file mode 100644
index 0000000..d42979d
Binary files /dev/null and b/img/emoji/arrow_double_up.png differ
diff --git a/img/emoji/arrow_down.png b/img/emoji/arrow_down.png
new file mode 100644
index 0000000..18ec9a6
Binary files /dev/null and b/img/emoji/arrow_down.png differ
diff --git a/img/emoji/arrow_down_small.png b/img/emoji/arrow_down_small.png
new file mode 100644
index 0000000..7fc855c
Binary files /dev/null and b/img/emoji/arrow_down_small.png differ
diff --git a/img/emoji/arrow_forward.png b/img/emoji/arrow_forward.png
new file mode 100644
index 0000000..9578b96
Binary files /dev/null and b/img/emoji/arrow_forward.png differ
diff --git a/img/emoji/arrow_heading_down.png b/img/emoji/arrow_heading_down.png
new file mode 100644
index 0000000..ec73a80
Binary files /dev/null and b/img/emoji/arrow_heading_down.png differ
diff --git a/img/emoji/arrow_heading_up.png b/img/emoji/arrow_heading_up.png
new file mode 100644
index 0000000..c8f670a
Binary files /dev/null and b/img/emoji/arrow_heading_up.png differ
diff --git a/img/emoji/arrow_left.png b/img/emoji/arrow_left.png
new file mode 100644
index 0000000..de9657b
Binary files /dev/null and b/img/emoji/arrow_left.png differ
diff --git a/img/emoji/arrow_lower_left.png b/img/emoji/arrow_lower_left.png
new file mode 100644
index 0000000..a572d40
Binary files /dev/null and b/img/emoji/arrow_lower_left.png differ
diff --git a/img/emoji/arrow_lower_right.png b/img/emoji/arrow_lower_right.png
new file mode 100644
index 0000000..adbc38c
Binary files /dev/null and b/img/emoji/arrow_lower_right.png differ
diff --git a/img/emoji/arrow_right.png b/img/emoji/arrow_right.png
new file mode 100644
index 0000000..4592ce6
Binary files /dev/null and b/img/emoji/arrow_right.png differ
diff --git a/img/emoji/arrow_right_hook.png b/img/emoji/arrow_right_hook.png
new file mode 100644
index 0000000..a5420ac
Binary files /dev/null and b/img/emoji/arrow_right_hook.png differ
diff --git a/img/emoji/arrow_up.png b/img/emoji/arrow_up.png
new file mode 100644
index 0000000..c192430
Binary files /dev/null and b/img/emoji/arrow_up.png differ
diff --git a/img/emoji/arrow_up_down.png b/img/emoji/arrow_up_down.png
new file mode 100644
index 0000000..8c14ab9
Binary files /dev/null and b/img/emoji/arrow_up_down.png differ
diff --git a/img/emoji/arrow_up_small.png b/img/emoji/arrow_up_small.png
new file mode 100644
index 0000000..89e5957
Binary files /dev/null and b/img/emoji/arrow_up_small.png differ
diff --git a/img/emoji/arrow_upper_left.png b/img/emoji/arrow_upper_left.png
new file mode 100644
index 0000000..7ec9793
Binary files /dev/null and b/img/emoji/arrow_upper_left.png differ
diff --git a/img/emoji/arrow_upper_right.png b/img/emoji/arrow_upper_right.png
new file mode 100644
index 0000000..b02865a
Binary files /dev/null and b/img/emoji/arrow_upper_right.png differ
diff --git a/img/emoji/arrows_clockwise.png b/img/emoji/arrows_clockwise.png
new file mode 100644
index 0000000..5f84d7e
Binary files /dev/null and b/img/emoji/arrows_clockwise.png differ
diff --git a/img/emoji/arrows_counterclockwise.png b/img/emoji/arrows_counterclockwise.png
new file mode 100644
index 0000000..99f0aba
Binary files /dev/null and b/img/emoji/arrows_counterclockwise.png differ
diff --git a/img/emoji/art.png b/img/emoji/art.png
new file mode 100644
index 0000000..d45212b
Binary files /dev/null and b/img/emoji/art.png differ
diff --git a/img/emoji/articulated_lorry.png b/img/emoji/articulated_lorry.png
new file mode 100644
index 0000000..81ec1f9
Binary files /dev/null and b/img/emoji/articulated_lorry.png differ
diff --git a/img/emoji/astonished.png b/img/emoji/astonished.png
new file mode 100644
index 0000000..b4b9dbf
Binary files /dev/null and b/img/emoji/astonished.png differ
diff --git a/img/emoji/athletic_shoe.png b/img/emoji/athletic_shoe.png
new file mode 100644
index 0000000..45b82e6
Binary files /dev/null and b/img/emoji/athletic_shoe.png differ
diff --git a/img/emoji/atm.png b/img/emoji/atm.png
new file mode 100644
index 0000000..c2846e7
Binary files /dev/null and b/img/emoji/atm.png differ
diff --git a/img/emoji/b.png b/img/emoji/b.png
new file mode 100644
index 0000000..73e1910
Binary files /dev/null and b/img/emoji/b.png differ
diff --git a/img/emoji/baby.png b/img/emoji/baby.png
new file mode 100644
index 0000000..cb0c341
Binary files /dev/null and b/img/emoji/baby.png differ
diff --git a/img/emoji/baby_bottle.png b/img/emoji/baby_bottle.png
new file mode 100644
index 0000000..92798b1
Binary files /dev/null and b/img/emoji/baby_bottle.png differ
diff --git a/img/emoji/baby_chick.png b/img/emoji/baby_chick.png
new file mode 100644
index 0000000..737ea0a
Binary files /dev/null and b/img/emoji/baby_chick.png differ
diff --git a/img/emoji/baby_symbol.png b/img/emoji/baby_symbol.png
new file mode 100644
index 0000000..305b3e8
Binary files /dev/null and b/img/emoji/baby_symbol.png differ
diff --git a/img/emoji/back.png b/img/emoji/back.png
new file mode 100644
index 0000000..a6318ab
Binary files /dev/null and b/img/emoji/back.png differ
diff --git a/img/emoji/baggage_claim.png b/img/emoji/baggage_claim.png
new file mode 100644
index 0000000..59ae044
Binary files /dev/null and b/img/emoji/baggage_claim.png differ
diff --git a/img/emoji/balloon.png b/img/emoji/balloon.png
new file mode 100644
index 0000000..7fcd450
Binary files /dev/null and b/img/emoji/balloon.png differ
diff --git a/img/emoji/ballot_box_with_check.png b/img/emoji/ballot_box_with_check.png
new file mode 100644
index 0000000..f07a466
Binary files /dev/null and b/img/emoji/ballot_box_with_check.png differ
diff --git a/img/emoji/bamboo.png b/img/emoji/bamboo.png
new file mode 100644
index 0000000..fc858d0
Binary files /dev/null and b/img/emoji/bamboo.png differ
diff --git a/img/emoji/banana.png b/img/emoji/banana.png
new file mode 100644
index 0000000..a0563af
Binary files /dev/null and b/img/emoji/banana.png differ
diff --git a/img/emoji/bangbang.png b/img/emoji/bangbang.png
new file mode 100644
index 0000000..7270f0a
Binary files /dev/null and b/img/emoji/bangbang.png differ
diff --git a/img/emoji/bank.png b/img/emoji/bank.png
new file mode 100644
index 0000000..afff07b
Binary files /dev/null and b/img/emoji/bank.png differ
diff --git a/img/emoji/bar_chart.png b/img/emoji/bar_chart.png
new file mode 100644
index 0000000..a26b5e8
Binary files /dev/null and b/img/emoji/bar_chart.png differ
diff --git a/img/emoji/barber.png b/img/emoji/barber.png
new file mode 100644
index 0000000..a10cb23
Binary files /dev/null and b/img/emoji/barber.png differ
diff --git a/img/emoji/baseball.png b/img/emoji/baseball.png
new file mode 100644
index 0000000..da004e2
Binary files /dev/null and b/img/emoji/baseball.png differ
diff --git a/img/emoji/basketball.png b/img/emoji/basketball.png
new file mode 100644
index 0000000..ef694be
Binary files /dev/null and b/img/emoji/basketball.png differ
diff --git a/img/emoji/bath.png b/img/emoji/bath.png
new file mode 100644
index 0000000..8f75d1d
Binary files /dev/null and b/img/emoji/bath.png differ
diff --git a/img/emoji/bathtub.png b/img/emoji/bathtub.png
new file mode 100644
index 0000000..1c3f844
Binary files /dev/null and b/img/emoji/bathtub.png differ
diff --git a/img/emoji/battery.png b/img/emoji/battery.png
new file mode 100644
index 0000000..9a10daf
Binary files /dev/null and b/img/emoji/battery.png differ
diff --git a/img/emoji/bear.png b/img/emoji/bear.png
new file mode 100644
index 0000000..f5afe92
Binary files /dev/null and b/img/emoji/bear.png differ
diff --git a/img/emoji/bee.png b/img/emoji/bee.png
new file mode 100644
index 0000000..0c5acbb
Binary files /dev/null and b/img/emoji/bee.png differ
diff --git a/img/emoji/beer.png b/img/emoji/beer.png
new file mode 100644
index 0000000..cd78bed
Binary files /dev/null and b/img/emoji/beer.png differ
diff --git a/img/emoji/beers.png b/img/emoji/beers.png
new file mode 100644
index 0000000..0e09b5f
Binary files /dev/null and b/img/emoji/beers.png differ
diff --git a/img/emoji/beetle.png b/img/emoji/beetle.png
new file mode 100644
index 0000000..ef74e64
Binary files /dev/null and b/img/emoji/beetle.png differ
diff --git a/img/emoji/beginner.png b/img/emoji/beginner.png
new file mode 100644
index 0000000..ba7b8b4
Binary files /dev/null and b/img/emoji/beginner.png differ
diff --git a/img/emoji/bell.png b/img/emoji/bell.png
new file mode 100644
index 0000000..69acceb
Binary files /dev/null and b/img/emoji/bell.png differ
diff --git a/img/emoji/bento.png b/img/emoji/bento.png
new file mode 100644
index 0000000..4f7abf0
Binary files /dev/null and b/img/emoji/bento.png differ
diff --git a/img/emoji/bicyclist.png b/img/emoji/bicyclist.png
new file mode 100644
index 0000000..4e3e054
Binary files /dev/null and b/img/emoji/bicyclist.png differ
diff --git a/img/emoji/bike.png b/img/emoji/bike.png
new file mode 100644
index 0000000..6573860
Binary files /dev/null and b/img/emoji/bike.png differ
diff --git a/img/emoji/bikini.png b/img/emoji/bikini.png
new file mode 100644
index 0000000..4ff63b4
Binary files /dev/null and b/img/emoji/bikini.png differ
diff --git a/img/emoji/bird.png b/img/emoji/bird.png
new file mode 100644
index 0000000..e6be8c0
Binary files /dev/null and b/img/emoji/bird.png differ
diff --git a/img/emoji/birthday.png b/img/emoji/birthday.png
new file mode 100644
index 0000000..36e8edc
Binary files /dev/null and b/img/emoji/birthday.png differ
diff --git a/img/emoji/black_circle.png b/img/emoji/black_circle.png
new file mode 100644
index 0000000..c74ee40
Binary files /dev/null and b/img/emoji/black_circle.png differ
diff --git a/img/emoji/black_joker.png b/img/emoji/black_joker.png
new file mode 100644
index 0000000..eb85cdb
Binary files /dev/null and b/img/emoji/black_joker.png differ
diff --git a/img/emoji/black_large_square.png b/img/emoji/black_large_square.png
new file mode 100644
index 0000000..b43f86e
Binary files /dev/null and b/img/emoji/black_large_square.png differ
diff --git a/img/emoji/black_medium_small_square.png b/img/emoji/black_medium_small_square.png
new file mode 100644
index 0000000..906b884
Binary files /dev/null and b/img/emoji/black_medium_small_square.png differ
diff --git a/img/emoji/black_medium_square.png b/img/emoji/black_medium_square.png
new file mode 100644
index 0000000..563add7
Binary files /dev/null and b/img/emoji/black_medium_square.png differ
diff --git a/img/emoji/black_nib.png b/img/emoji/black_nib.png
new file mode 100644
index 0000000..ef224b5
Binary files /dev/null and b/img/emoji/black_nib.png differ
diff --git a/img/emoji/black_small_square.png b/img/emoji/black_small_square.png
new file mode 100644
index 0000000..aa95b9c
Binary files /dev/null and b/img/emoji/black_small_square.png differ
diff --git a/img/emoji/black_square_button.png b/img/emoji/black_square_button.png
new file mode 100644
index 0000000..a611f4e
Binary files /dev/null and b/img/emoji/black_square_button.png differ
diff --git a/img/emoji/blossom.png b/img/emoji/blossom.png
new file mode 100644
index 0000000..55a9735
Binary files /dev/null and b/img/emoji/blossom.png differ
diff --git a/img/emoji/blowfish.png b/img/emoji/blowfish.png
new file mode 100644
index 0000000..d3ad465
Binary files /dev/null and b/img/emoji/blowfish.png differ
diff --git a/img/emoji/blue_book.png b/img/emoji/blue_book.png
new file mode 100644
index 0000000..e2b9e8c
Binary files /dev/null and b/img/emoji/blue_book.png differ
diff --git a/img/emoji/blue_car.png b/img/emoji/blue_car.png
new file mode 100644
index 0000000..905adee
Binary files /dev/null and b/img/emoji/blue_car.png differ
diff --git a/img/emoji/blue_heart.png b/img/emoji/blue_heart.png
new file mode 100644
index 0000000..2b4c2f0
Binary files /dev/null and b/img/emoji/blue_heart.png differ
diff --git a/img/emoji/blush.png b/img/emoji/blush.png
new file mode 100644
index 0000000..51d74a4
Binary files /dev/null and b/img/emoji/blush.png differ
diff --git a/img/emoji/boar.png b/img/emoji/boar.png
new file mode 100644
index 0000000..46524ef
Binary files /dev/null and b/img/emoji/boar.png differ
diff --git a/img/emoji/boat.png b/img/emoji/boat.png
new file mode 100644
index 0000000..9d98279
Binary files /dev/null and b/img/emoji/boat.png differ
diff --git a/img/emoji/bomb.png b/img/emoji/bomb.png
new file mode 100644
index 0000000..3289787
Binary files /dev/null and b/img/emoji/bomb.png differ
diff --git a/img/emoji/book.png b/img/emoji/book.png
new file mode 100644
index 0000000..09c6a15
Binary files /dev/null and b/img/emoji/book.png differ
diff --git a/img/emoji/bookmark.png b/img/emoji/bookmark.png
new file mode 100644
index 0000000..dbee45c
Binary files /dev/null and b/img/emoji/bookmark.png differ
diff --git a/img/emoji/bookmark_tabs.png b/img/emoji/bookmark_tabs.png
new file mode 100644
index 0000000..54b049e
Binary files /dev/null and b/img/emoji/bookmark_tabs.png differ
diff --git a/img/emoji/books.png b/img/emoji/books.png
new file mode 100644
index 0000000..1dbbe7c
Binary files /dev/null and b/img/emoji/books.png differ
diff --git a/img/emoji/boom.png b/img/emoji/boom.png
new file mode 100644
index 0000000..bddeb8f
Binary files /dev/null and b/img/emoji/boom.png differ
diff --git a/img/emoji/boot.png b/img/emoji/boot.png
new file mode 100644
index 0000000..58d0fdb
Binary files /dev/null and b/img/emoji/boot.png differ
diff --git a/img/emoji/bouquet.png b/img/emoji/bouquet.png
new file mode 100644
index 0000000..32a732a
Binary files /dev/null and b/img/emoji/bouquet.png differ
diff --git a/img/emoji/bow.png b/img/emoji/bow.png
new file mode 100644
index 0000000..024cb61
Binary files /dev/null and b/img/emoji/bow.png differ
diff --git a/img/emoji/bowling.png b/img/emoji/bowling.png
new file mode 100644
index 0000000..13d8ece
Binary files /dev/null and b/img/emoji/bowling.png differ
diff --git a/img/emoji/bowtie.png b/img/emoji/bowtie.png
new file mode 100644
index 0000000..3beb161
Binary files /dev/null and b/img/emoji/bowtie.png differ
diff --git a/img/emoji/boy.png b/img/emoji/boy.png
new file mode 100644
index 0000000..25e3be3
Binary files /dev/null and b/img/emoji/boy.png differ
diff --git a/img/emoji/bread.png b/img/emoji/bread.png
new file mode 100644
index 0000000..1e942db
Binary files /dev/null and b/img/emoji/bread.png differ
diff --git a/img/emoji/bride_with_veil.png b/img/emoji/bride_with_veil.png
new file mode 100644
index 0000000..dd0b0cf
Binary files /dev/null and b/img/emoji/bride_with_veil.png differ
diff --git a/img/emoji/bridge_at_night.png b/img/emoji/bridge_at_night.png
new file mode 100644
index 0000000..cd24cb2
Binary files /dev/null and b/img/emoji/bridge_at_night.png differ
diff --git a/img/emoji/briefcase.png b/img/emoji/briefcase.png
new file mode 100644
index 0000000..3cfd6ef
Binary files /dev/null and b/img/emoji/briefcase.png differ
diff --git a/img/emoji/broken_heart.png b/img/emoji/broken_heart.png
new file mode 100644
index 0000000..199894b
Binary files /dev/null and b/img/emoji/broken_heart.png differ
diff --git a/img/emoji/bug.png b/img/emoji/bug.png
new file mode 100644
index 0000000..6ab7adb
Binary files /dev/null and b/img/emoji/bug.png differ
diff --git a/img/emoji/bulb.png b/img/emoji/bulb.png
new file mode 100644
index 0000000..113df95
Binary files /dev/null and b/img/emoji/bulb.png differ
diff --git a/img/emoji/bullettrain_front.png b/img/emoji/bullettrain_front.png
new file mode 100644
index 0000000..16651ac
Binary files /dev/null and b/img/emoji/bullettrain_front.png differ
diff --git a/img/emoji/bullettrain_side.png b/img/emoji/bullettrain_side.png
new file mode 100644
index 0000000..8eca368
Binary files /dev/null and b/img/emoji/bullettrain_side.png differ
diff --git a/img/emoji/bus.png b/img/emoji/bus.png
new file mode 100644
index 0000000..bf74bdf
Binary files /dev/null and b/img/emoji/bus.png differ
diff --git a/img/emoji/busstop.png b/img/emoji/busstop.png
new file mode 100644
index 0000000..9d3e512
Binary files /dev/null and b/img/emoji/busstop.png differ
diff --git a/img/emoji/bust_in_silhouette.png b/img/emoji/bust_in_silhouette.png
new file mode 100644
index 0000000..d131398
Binary files /dev/null and b/img/emoji/bust_in_silhouette.png differ
diff --git a/img/emoji/busts_in_silhouette.png b/img/emoji/busts_in_silhouette.png
new file mode 100644
index 0000000..a52d490
Binary files /dev/null and b/img/emoji/busts_in_silhouette.png differ
diff --git a/img/emoji/cactus.png b/img/emoji/cactus.png
new file mode 100644
index 0000000..5a2c3cc
Binary files /dev/null and b/img/emoji/cactus.png differ
diff --git a/img/emoji/cake.png b/img/emoji/cake.png
new file mode 100644
index 0000000..f1ec88c
Binary files /dev/null and b/img/emoji/cake.png differ
diff --git a/img/emoji/calendar.png b/img/emoji/calendar.png
new file mode 100644
index 0000000..3b20fce
Binary files /dev/null and b/img/emoji/calendar.png differ
diff --git a/img/emoji/calling.png b/img/emoji/calling.png
new file mode 100644
index 0000000..a36a8ee
Binary files /dev/null and b/img/emoji/calling.png differ
diff --git a/img/emoji/camel.png b/img/emoji/camel.png
new file mode 100644
index 0000000..496c186
Binary files /dev/null and b/img/emoji/camel.png differ
diff --git a/img/emoji/camera.png b/img/emoji/camera.png
new file mode 100644
index 0000000..a82953e
Binary files /dev/null and b/img/emoji/camera.png differ
diff --git a/img/emoji/cancer.png b/img/emoji/cancer.png
new file mode 100644
index 0000000..ea43a4a
Binary files /dev/null and b/img/emoji/cancer.png differ
diff --git a/img/emoji/candy.png b/img/emoji/candy.png
new file mode 100644
index 0000000..33722f2
Binary files /dev/null and b/img/emoji/candy.png differ
diff --git a/img/emoji/capital_abcd.png b/img/emoji/capital_abcd.png
new file mode 100644
index 0000000..ffc0cba
Binary files /dev/null and b/img/emoji/capital_abcd.png differ
diff --git a/img/emoji/capricorn.png b/img/emoji/capricorn.png
new file mode 100644
index 0000000..f2044e7
Binary files /dev/null and b/img/emoji/capricorn.png differ
diff --git a/img/emoji/car.png b/img/emoji/car.png
new file mode 100644
index 0000000..34d8d51
Binary files /dev/null and b/img/emoji/car.png differ
diff --git a/img/emoji/card_index.png b/img/emoji/card_index.png
new file mode 100644
index 0000000..374e94e
Binary files /dev/null and b/img/emoji/card_index.png differ
diff --git a/img/emoji/carousel_horse.png b/img/emoji/carousel_horse.png
new file mode 100644
index 0000000..3cacdf2
Binary files /dev/null and b/img/emoji/carousel_horse.png differ
diff --git a/img/emoji/cat.png b/img/emoji/cat.png
new file mode 100644
index 0000000..09b9ef7
Binary files /dev/null and b/img/emoji/cat.png differ
diff --git a/img/emoji/cat2.png b/img/emoji/cat2.png
new file mode 100644
index 0000000..7debb42
Binary files /dev/null and b/img/emoji/cat2.png differ
diff --git a/img/emoji/cd.png b/img/emoji/cd.png
new file mode 100644
index 0000000..d768e06
Binary files /dev/null and b/img/emoji/cd.png differ
diff --git a/img/emoji/chart.png b/img/emoji/chart.png
new file mode 100644
index 0000000..6ae8c9d
Binary files /dev/null and b/img/emoji/chart.png differ
diff --git a/img/emoji/chart_with_downwards_trend.png b/img/emoji/chart_with_downwards_trend.png
new file mode 100644
index 0000000..b364a68
Binary files /dev/null and b/img/emoji/chart_with_downwards_trend.png differ
diff --git a/img/emoji/chart_with_upwards_trend.png b/img/emoji/chart_with_upwards_trend.png
new file mode 100644
index 0000000..900f0fa
Binary files /dev/null and b/img/emoji/chart_with_upwards_trend.png differ
diff --git a/img/emoji/checkered_flag.png b/img/emoji/checkered_flag.png
new file mode 100644
index 0000000..874bd7a
Binary files /dev/null and b/img/emoji/checkered_flag.png differ
diff --git a/img/emoji/cherries.png b/img/emoji/cherries.png
new file mode 100644
index 0000000..196a3e9
Binary files /dev/null and b/img/emoji/cherries.png differ
diff --git a/img/emoji/cherry_blossom.png b/img/emoji/cherry_blossom.png
new file mode 100644
index 0000000..7eecdd9
Binary files /dev/null and b/img/emoji/cherry_blossom.png differ
diff --git a/img/emoji/chestnut.png b/img/emoji/chestnut.png
new file mode 100644
index 0000000..d79321a
Binary files /dev/null and b/img/emoji/chestnut.png differ
diff --git a/img/emoji/chicken.png b/img/emoji/chicken.png
new file mode 100644
index 0000000..6d25c0e
Binary files /dev/null and b/img/emoji/chicken.png differ
diff --git a/img/emoji/children_crossing.png b/img/emoji/children_crossing.png
new file mode 100644
index 0000000..8f5a461
Binary files /dev/null and b/img/emoji/children_crossing.png differ
diff --git a/img/emoji/chocolate_bar.png b/img/emoji/chocolate_bar.png
new file mode 100644
index 0000000..2902c04
Binary files /dev/null and b/img/emoji/chocolate_bar.png differ
diff --git a/img/emoji/christmas_tree.png b/img/emoji/christmas_tree.png
new file mode 100644
index 0000000..d813b95
Binary files /dev/null and b/img/emoji/christmas_tree.png differ
diff --git a/img/emoji/church.png b/img/emoji/church.png
new file mode 100644
index 0000000..4c07c6b
Binary files /dev/null and b/img/emoji/church.png differ
diff --git a/img/emoji/cinema.png b/img/emoji/cinema.png
new file mode 100644
index 0000000..a990ccf
Binary files /dev/null and b/img/emoji/cinema.png differ
diff --git a/img/emoji/circus_tent.png b/img/emoji/circus_tent.png
new file mode 100644
index 0000000..9143749
Binary files /dev/null and b/img/emoji/circus_tent.png differ
diff --git a/img/emoji/city_sunrise.png b/img/emoji/city_sunrise.png
new file mode 100644
index 0000000..d9a6da0
Binary files /dev/null and b/img/emoji/city_sunrise.png differ
diff --git a/img/emoji/city_sunset.png b/img/emoji/city_sunset.png
new file mode 100644
index 0000000..7590534
Binary files /dev/null and b/img/emoji/city_sunset.png differ
diff --git a/img/emoji/cl.png b/img/emoji/cl.png
new file mode 100644
index 0000000..af7ebe8
Binary files /dev/null and b/img/emoji/cl.png differ
diff --git a/img/emoji/clap.png b/img/emoji/clap.png
new file mode 100644
index 0000000..d01c982
Binary files /dev/null and b/img/emoji/clap.png differ
diff --git a/img/emoji/clapper.png b/img/emoji/clapper.png
new file mode 100644
index 0000000..4e1dc11
Binary files /dev/null and b/img/emoji/clapper.png differ
diff --git a/img/emoji/clipboard.png b/img/emoji/clipboard.png
new file mode 100644
index 0000000..70bd526
Binary files /dev/null and b/img/emoji/clipboard.png differ
diff --git a/img/emoji/clock1.png b/img/emoji/clock1.png
new file mode 100644
index 0000000..3ccaecb
Binary files /dev/null and b/img/emoji/clock1.png differ
diff --git a/img/emoji/clock10.png b/img/emoji/clock10.png
new file mode 100644
index 0000000..f690d2b
Binary files /dev/null and b/img/emoji/clock10.png differ
diff --git a/img/emoji/clock1030.png b/img/emoji/clock1030.png
new file mode 100644
index 0000000..8f24998
Binary files /dev/null and b/img/emoji/clock1030.png differ
diff --git a/img/emoji/clock11.png b/img/emoji/clock11.png
new file mode 100644
index 0000000..83bec86
Binary files /dev/null and b/img/emoji/clock11.png differ
diff --git a/img/emoji/clock1130.png b/img/emoji/clock1130.png
new file mode 100644
index 0000000..dd69094
Binary files /dev/null and b/img/emoji/clock1130.png differ
diff --git a/img/emoji/clock12.png b/img/emoji/clock12.png
new file mode 100644
index 0000000..3c44e5f
Binary files /dev/null and b/img/emoji/clock12.png differ
diff --git a/img/emoji/clock1230.png b/img/emoji/clock1230.png
new file mode 100644
index 0000000..a652715
Binary files /dev/null and b/img/emoji/clock1230.png differ
diff --git a/img/emoji/clock130.png b/img/emoji/clock130.png
new file mode 100644
index 0000000..df93920
Binary files /dev/null and b/img/emoji/clock130.png differ
diff --git a/img/emoji/clock2.png b/img/emoji/clock2.png
new file mode 100644
index 0000000..f1472b6
Binary files /dev/null and b/img/emoji/clock2.png differ
diff --git a/img/emoji/clock230.png b/img/emoji/clock230.png
new file mode 100644
index 0000000..52a3a96
Binary files /dev/null and b/img/emoji/clock230.png differ
diff --git a/img/emoji/clock3.png b/img/emoji/clock3.png
new file mode 100644
index 0000000..25eb4ee
Binary files /dev/null and b/img/emoji/clock3.png differ
diff --git a/img/emoji/clock330.png b/img/emoji/clock330.png
new file mode 100644
index 0000000..1dc9628
Binary files /dev/null and b/img/emoji/clock330.png differ
diff --git a/img/emoji/clock4.png b/img/emoji/clock4.png
new file mode 100644
index 0000000..edf9573
Binary files /dev/null and b/img/emoji/clock4.png differ
diff --git a/img/emoji/clock430.png b/img/emoji/clock430.png
new file mode 100644
index 0000000..7758aab
Binary files /dev/null and b/img/emoji/clock430.png differ
diff --git a/img/emoji/clock5.png b/img/emoji/clock5.png
new file mode 100644
index 0000000..137cde9
Binary files /dev/null and b/img/emoji/clock5.png differ
diff --git a/img/emoji/clock530.png b/img/emoji/clock530.png
new file mode 100644
index 0000000..8b90bb4
Binary files /dev/null and b/img/emoji/clock530.png differ
diff --git a/img/emoji/clock6.png b/img/emoji/clock6.png
new file mode 100644
index 0000000..9b5c4f6
Binary files /dev/null and b/img/emoji/clock6.png differ
diff --git a/img/emoji/clock630.png b/img/emoji/clock630.png
new file mode 100644
index 0000000..46f0681
Binary files /dev/null and b/img/emoji/clock630.png differ
diff --git a/img/emoji/clock7.png b/img/emoji/clock7.png
new file mode 100644
index 0000000..7234a1b
Binary files /dev/null and b/img/emoji/clock7.png differ
diff --git a/img/emoji/clock730.png b/img/emoji/clock730.png
new file mode 100644
index 0000000..81743a5
Binary files /dev/null and b/img/emoji/clock730.png differ
diff --git a/img/emoji/clock8.png b/img/emoji/clock8.png
new file mode 100644
index 0000000..ae75bb8
Binary files /dev/null and b/img/emoji/clock8.png differ
diff --git a/img/emoji/clock830.png b/img/emoji/clock830.png
new file mode 100644
index 0000000..c031d81
Binary files /dev/null and b/img/emoji/clock830.png differ
diff --git a/img/emoji/clock9.png b/img/emoji/clock9.png
new file mode 100644
index 0000000..a432b0c
Binary files /dev/null and b/img/emoji/clock9.png differ
diff --git a/img/emoji/clock930.png b/img/emoji/clock930.png
new file mode 100644
index 0000000..688e420
Binary files /dev/null and b/img/emoji/clock930.png differ
diff --git a/img/emoji/closed_book.png b/img/emoji/closed_book.png
new file mode 100644
index 0000000..3530779
Binary files /dev/null and b/img/emoji/closed_book.png differ
diff --git a/img/emoji/closed_lock_with_key.png b/img/emoji/closed_lock_with_key.png
new file mode 100644
index 0000000..e6fdf6c
Binary files /dev/null and b/img/emoji/closed_lock_with_key.png differ
diff --git a/img/emoji/closed_umbrella.png b/img/emoji/closed_umbrella.png
new file mode 100644
index 0000000..c335293
Binary files /dev/null and b/img/emoji/closed_umbrella.png differ
diff --git a/img/emoji/cloud.png b/img/emoji/cloud.png
new file mode 100644
index 0000000..ad4b125
Binary files /dev/null and b/img/emoji/cloud.png differ
diff --git a/img/emoji/clubs.png b/img/emoji/clubs.png
new file mode 100644
index 0000000..97f6693
Binary files /dev/null and b/img/emoji/clubs.png differ
diff --git a/img/emoji/cn.png b/img/emoji/cn.png
new file mode 100644
index 0000000..7760b43
Binary files /dev/null and b/img/emoji/cn.png differ
diff --git a/img/emoji/cocktail.png b/img/emoji/cocktail.png
new file mode 100644
index 0000000..28b45ea
Binary files /dev/null and b/img/emoji/cocktail.png differ
diff --git a/img/emoji/coffee.png b/img/emoji/coffee.png
new file mode 100644
index 0000000..68c630a
Binary files /dev/null and b/img/emoji/coffee.png differ
diff --git a/img/emoji/cold_sweat.png b/img/emoji/cold_sweat.png
new file mode 100644
index 0000000..19e1d48
Binary files /dev/null and b/img/emoji/cold_sweat.png differ
diff --git a/img/emoji/collision.png b/img/emoji/collision.png
new file mode 100644
index 0000000..bddeb8f
Binary files /dev/null and b/img/emoji/collision.png differ
diff --git a/img/emoji/computer.png b/img/emoji/computer.png
new file mode 100644
index 0000000..d4d2687
Binary files /dev/null and b/img/emoji/computer.png differ
diff --git a/img/emoji/confetti_ball.png b/img/emoji/confetti_ball.png
new file mode 100644
index 0000000..adc2db4
Binary files /dev/null and b/img/emoji/confetti_ball.png differ
diff --git a/img/emoji/confounded.png b/img/emoji/confounded.png
new file mode 100644
index 0000000..50f9c24
Binary files /dev/null and b/img/emoji/confounded.png differ
diff --git a/img/emoji/confused.png b/img/emoji/confused.png
new file mode 100644
index 0000000..2b85df8
Binary files /dev/null and b/img/emoji/confused.png differ
diff --git a/img/emoji/congratulations.png b/img/emoji/congratulations.png
new file mode 100644
index 0000000..dcbb1d2
Binary files /dev/null and b/img/emoji/congratulations.png differ
diff --git a/img/emoji/construction.png b/img/emoji/construction.png
new file mode 100644
index 0000000..6f17f9d
Binary files /dev/null and b/img/emoji/construction.png differ
diff --git a/img/emoji/construction_worker.png b/img/emoji/construction_worker.png
new file mode 100644
index 0000000..db43830
Binary files /dev/null and b/img/emoji/construction_worker.png differ
diff --git a/img/emoji/convenience_store.png b/img/emoji/convenience_store.png
new file mode 100644
index 0000000..9f78463
Binary files /dev/null and b/img/emoji/convenience_store.png differ
diff --git a/img/emoji/cookie.png b/img/emoji/cookie.png
new file mode 100644
index 0000000..177d0f9
Binary files /dev/null and b/img/emoji/cookie.png differ
diff --git a/img/emoji/cool.png b/img/emoji/cool.png
new file mode 100644
index 0000000..e04e98e
Binary files /dev/null and b/img/emoji/cool.png differ
diff --git a/img/emoji/cop.png b/img/emoji/cop.png
new file mode 100644
index 0000000..43a5a84
Binary files /dev/null and b/img/emoji/cop.png differ
diff --git a/img/emoji/copyright.png b/img/emoji/copyright.png
new file mode 100644
index 0000000..d59f580
Binary files /dev/null and b/img/emoji/copyright.png differ
diff --git a/img/emoji/corn.png b/img/emoji/corn.png
new file mode 100644
index 0000000..fe5d8b1
Binary files /dev/null and b/img/emoji/corn.png differ
diff --git a/img/emoji/couple.png b/img/emoji/couple.png
new file mode 100644
index 0000000..9e51f40
Binary files /dev/null and b/img/emoji/couple.png differ
diff --git a/img/emoji/couple_with_heart.png b/img/emoji/couple_with_heart.png
new file mode 100644
index 0000000..d5d2054
Binary files /dev/null and b/img/emoji/couple_with_heart.png differ
diff --git a/img/emoji/couplekiss.png b/img/emoji/couplekiss.png
new file mode 100644
index 0000000..5226739
Binary files /dev/null and b/img/emoji/couplekiss.png differ
diff --git a/img/emoji/cow.png b/img/emoji/cow.png
new file mode 100644
index 0000000..12e1ab6
Binary files /dev/null and b/img/emoji/cow.png differ
diff --git a/img/emoji/cow2.png b/img/emoji/cow2.png
new file mode 100644
index 0000000..594c921
Binary files /dev/null and b/img/emoji/cow2.png differ
diff --git a/img/emoji/credit_card.png b/img/emoji/credit_card.png
new file mode 100644
index 0000000..cdf6d88
Binary files /dev/null and b/img/emoji/credit_card.png differ
diff --git a/img/emoji/crescent_moon.png b/img/emoji/crescent_moon.png
new file mode 100644
index 0000000..afdb450
Binary files /dev/null and b/img/emoji/crescent_moon.png differ
diff --git a/img/emoji/crocodile.png b/img/emoji/crocodile.png
new file mode 100644
index 0000000..7435d5a
Binary files /dev/null and b/img/emoji/crocodile.png differ
diff --git a/img/emoji/crossed_flags.png b/img/emoji/crossed_flags.png
new file mode 100644
index 0000000..1de95c8
Binary files /dev/null and b/img/emoji/crossed_flags.png differ
diff --git a/img/emoji/crown.png b/img/emoji/crown.png
new file mode 100644
index 0000000..c7244f5
Binary files /dev/null and b/img/emoji/crown.png differ
diff --git a/img/emoji/cry.png b/img/emoji/cry.png
new file mode 100644
index 0000000..1477916
Binary files /dev/null and b/img/emoji/cry.png differ
diff --git a/img/emoji/crying_cat_face.png b/img/emoji/crying_cat_face.png
new file mode 100644
index 0000000..91afc07
Binary files /dev/null and b/img/emoji/crying_cat_face.png differ
diff --git a/img/emoji/crystal_ball.png b/img/emoji/crystal_ball.png
new file mode 100644
index 0000000..6d2c6c4
Binary files /dev/null and b/img/emoji/crystal_ball.png differ
diff --git a/img/emoji/cupid.png b/img/emoji/cupid.png
new file mode 100644
index 0000000..87a4185
Binary files /dev/null and b/img/emoji/cupid.png differ
diff --git a/img/emoji/curly_loop.png b/img/emoji/curly_loop.png
new file mode 100644
index 0000000..7dd841d
Binary files /dev/null and b/img/emoji/curly_loop.png differ
diff --git a/img/emoji/currency_exchange.png b/img/emoji/currency_exchange.png
new file mode 100644
index 0000000..6ebebe7
Binary files /dev/null and b/img/emoji/currency_exchange.png differ
diff --git a/img/emoji/curry.png b/img/emoji/curry.png
new file mode 100644
index 0000000..b30b9c0
Binary files /dev/null and b/img/emoji/curry.png differ
diff --git a/img/emoji/custard.png b/img/emoji/custard.png
new file mode 100644
index 0000000..6555ffa
Binary files /dev/null and b/img/emoji/custard.png differ
diff --git a/img/emoji/customs.png b/img/emoji/customs.png
new file mode 100644
index 0000000..92691e3
Binary files /dev/null and b/img/emoji/customs.png differ
diff --git a/img/emoji/cyclone.png b/img/emoji/cyclone.png
new file mode 100644
index 0000000..abed669
Binary files /dev/null and b/img/emoji/cyclone.png differ
diff --git a/img/emoji/dancer.png b/img/emoji/dancer.png
new file mode 100644
index 0000000..74b3e28
Binary files /dev/null and b/img/emoji/dancer.png differ
diff --git a/img/emoji/dancers.png b/img/emoji/dancers.png
new file mode 100644
index 0000000..2dfb451
Binary files /dev/null and b/img/emoji/dancers.png differ
diff --git a/img/emoji/dango.png b/img/emoji/dango.png
new file mode 100644
index 0000000..a9ab0fa
Binary files /dev/null and b/img/emoji/dango.png differ
diff --git a/img/emoji/dart.png b/img/emoji/dart.png
new file mode 100644
index 0000000..0438fe5
Binary files /dev/null and b/img/emoji/dart.png differ
diff --git a/img/emoji/dash.png b/img/emoji/dash.png
new file mode 100644
index 0000000..ebb1a3a
Binary files /dev/null and b/img/emoji/dash.png differ
diff --git a/img/emoji/date.png b/img/emoji/date.png
new file mode 100644
index 0000000..0a95479
Binary files /dev/null and b/img/emoji/date.png differ
diff --git a/img/emoji/de.png b/img/emoji/de.png
new file mode 100644
index 0000000..3448f7a
Binary files /dev/null and b/img/emoji/de.png differ
diff --git a/img/emoji/deciduous_tree.png b/img/emoji/deciduous_tree.png
new file mode 100644
index 0000000..e3f86c4
Binary files /dev/null and b/img/emoji/deciduous_tree.png differ
diff --git a/img/emoji/department_store.png b/img/emoji/department_store.png
new file mode 100644
index 0000000..68d959c
Binary files /dev/null and b/img/emoji/department_store.png differ
diff --git a/img/emoji/diamond_shape_with_a_dot_inside.png b/img/emoji/diamond_shape_with_a_dot_inside.png
new file mode 100644
index 0000000..8a3f2c6
Binary files /dev/null and b/img/emoji/diamond_shape_with_a_dot_inside.png differ
diff --git a/img/emoji/diamonds.png b/img/emoji/diamonds.png
new file mode 100644
index 0000000..68410a7
Binary files /dev/null and b/img/emoji/diamonds.png differ
diff --git a/img/emoji/disappointed.png b/img/emoji/disappointed.png
new file mode 100644
index 0000000..ccb5673
Binary files /dev/null and b/img/emoji/disappointed.png differ
diff --git a/img/emoji/disappointed_relieved.png b/img/emoji/disappointed_relieved.png
new file mode 100644
index 0000000..d807315
Binary files /dev/null and b/img/emoji/disappointed_relieved.png differ
diff --git a/img/emoji/dizzy.png b/img/emoji/dizzy.png
new file mode 100644
index 0000000..bec5aae
Binary files /dev/null and b/img/emoji/dizzy.png differ
diff --git a/img/emoji/dizzy_face.png b/img/emoji/dizzy_face.png
new file mode 100644
index 0000000..be551e1
Binary files /dev/null and b/img/emoji/dizzy_face.png differ
diff --git a/img/emoji/do_not_litter.png b/img/emoji/do_not_litter.png
new file mode 100644
index 0000000..38c7ae7
Binary files /dev/null and b/img/emoji/do_not_litter.png differ
diff --git a/img/emoji/dog.png b/img/emoji/dog.png
new file mode 100644
index 0000000..389a02b
Binary files /dev/null and b/img/emoji/dog.png differ
diff --git a/img/emoji/dog2.png b/img/emoji/dog2.png
new file mode 100644
index 0000000..c7f6a24
Binary files /dev/null and b/img/emoji/dog2.png differ
diff --git a/img/emoji/dollar.png b/img/emoji/dollar.png
new file mode 100644
index 0000000..79946ac
Binary files /dev/null and b/img/emoji/dollar.png differ
diff --git a/img/emoji/dolls.png b/img/emoji/dolls.png
new file mode 100644
index 0000000..47ce339
Binary files /dev/null and b/img/emoji/dolls.png differ
diff --git a/img/emoji/dolphin.png b/img/emoji/dolphin.png
new file mode 100644
index 0000000..9326077
Binary files /dev/null and b/img/emoji/dolphin.png differ
diff --git a/img/emoji/door.png b/img/emoji/door.png
new file mode 100644
index 0000000..83c819a
Binary files /dev/null and b/img/emoji/door.png differ
diff --git a/img/emoji/doughnut.png b/img/emoji/doughnut.png
new file mode 100644
index 0000000..28e3056
Binary files /dev/null and b/img/emoji/doughnut.png differ
diff --git a/img/emoji/dragon.png b/img/emoji/dragon.png
new file mode 100644
index 0000000..6e23a59
Binary files /dev/null and b/img/emoji/dragon.png differ
diff --git a/img/emoji/dragon_face.png b/img/emoji/dragon_face.png
new file mode 100644
index 0000000..e5e556b
Binary files /dev/null and b/img/emoji/dragon_face.png differ
diff --git a/img/emoji/dress.png b/img/emoji/dress.png
new file mode 100644
index 0000000..a30004a
Binary files /dev/null and b/img/emoji/dress.png differ
diff --git a/img/emoji/dromedary_camel.png b/img/emoji/dromedary_camel.png
new file mode 100644
index 0000000..c8c7b9f
Binary files /dev/null and b/img/emoji/dromedary_camel.png differ
diff --git a/img/emoji/droplet.png b/img/emoji/droplet.png
new file mode 100644
index 0000000..ff763c2
Binary files /dev/null and b/img/emoji/droplet.png differ
diff --git a/img/emoji/dvd.png b/img/emoji/dvd.png
new file mode 100644
index 0000000..a90f435
Binary files /dev/null and b/img/emoji/dvd.png differ
diff --git a/img/emoji/e-mail.png b/img/emoji/e-mail.png
new file mode 100644
index 0000000..9836962
Binary files /dev/null and b/img/emoji/e-mail.png differ
diff --git a/img/emoji/ear.png b/img/emoji/ear.png
new file mode 100644
index 0000000..d642722
Binary files /dev/null and b/img/emoji/ear.png differ
diff --git a/img/emoji/ear_of_rice.png b/img/emoji/ear_of_rice.png
new file mode 100644
index 0000000..e1ad953
Binary files /dev/null and b/img/emoji/ear_of_rice.png differ
diff --git a/img/emoji/earth_africa.png b/img/emoji/earth_africa.png
new file mode 100644
index 0000000..acf29c0
Binary files /dev/null and b/img/emoji/earth_africa.png differ
diff --git a/img/emoji/earth_americas.png b/img/emoji/earth_americas.png
new file mode 100644
index 0000000..8dc9797
Binary files /dev/null and b/img/emoji/earth_americas.png differ
diff --git a/img/emoji/earth_asia.png b/img/emoji/earth_asia.png
new file mode 100644
index 0000000..95ec357
Binary files /dev/null and b/img/emoji/earth_asia.png differ
diff --git a/img/emoji/egg.png b/img/emoji/egg.png
new file mode 100644
index 0000000..c3de6ae
Binary files /dev/null and b/img/emoji/egg.png differ
diff --git a/img/emoji/eggplant.png b/img/emoji/eggplant.png
new file mode 100644
index 0000000..5544b09
Binary files /dev/null and b/img/emoji/eggplant.png differ
diff --git a/img/emoji/eight.png b/img/emoji/eight.png
new file mode 100644
index 0000000..4262841
Binary files /dev/null and b/img/emoji/eight.png differ
diff --git a/img/emoji/eight_pointed_black_star.png b/img/emoji/eight_pointed_black_star.png
new file mode 100644
index 0000000..f474596
Binary files /dev/null and b/img/emoji/eight_pointed_black_star.png differ
diff --git a/img/emoji/eight_spoked_asterisk.png b/img/emoji/eight_spoked_asterisk.png
new file mode 100644
index 0000000..946a203
Binary files /dev/null and b/img/emoji/eight_spoked_asterisk.png differ
diff --git a/img/emoji/electric_plug.png b/img/emoji/electric_plug.png
new file mode 100644
index 0000000..3c0dfbd
Binary files /dev/null and b/img/emoji/electric_plug.png differ
diff --git a/img/emoji/elephant.png b/img/emoji/elephant.png
new file mode 100644
index 0000000..22de783
Binary files /dev/null and b/img/emoji/elephant.png differ
diff --git a/img/emoji/email.png b/img/emoji/email.png
new file mode 100644
index 0000000..3631861
Binary files /dev/null and b/img/emoji/email.png differ
diff --git a/img/emoji/end.png b/img/emoji/end.png
new file mode 100644
index 0000000..c73d048
Binary files /dev/null and b/img/emoji/end.png differ
diff --git a/img/emoji/envelope.png b/img/emoji/envelope.png
new file mode 100644
index 0000000..3631861
Binary files /dev/null and b/img/emoji/envelope.png differ
diff --git a/img/emoji/envelope_with_arrow.png b/img/emoji/envelope_with_arrow.png
new file mode 100644
index 0000000..34b58c1
Binary files /dev/null and b/img/emoji/envelope_with_arrow.png differ
diff --git a/img/emoji/es.png b/img/emoji/es.png
new file mode 100644
index 0000000..275c725
Binary files /dev/null and b/img/emoji/es.png differ
diff --git a/img/emoji/euro.png b/img/emoji/euro.png
new file mode 100644
index 0000000..f9e8a00
Binary files /dev/null and b/img/emoji/euro.png differ
diff --git a/img/emoji/european_castle.png b/img/emoji/european_castle.png
new file mode 100644
index 0000000..917ba44
Binary files /dev/null and b/img/emoji/european_castle.png differ
diff --git a/img/emoji/european_post_office.png b/img/emoji/european_post_office.png
new file mode 100644
index 0000000..e680200
Binary files /dev/null and b/img/emoji/european_post_office.png differ
diff --git a/img/emoji/evergreen_tree.png b/img/emoji/evergreen_tree.png
new file mode 100644
index 0000000..ae8ad10
Binary files /dev/null and b/img/emoji/evergreen_tree.png differ
diff --git a/img/emoji/exclamation.png b/img/emoji/exclamation.png
new file mode 100644
index 0000000..4c560f5
Binary files /dev/null and b/img/emoji/exclamation.png differ
diff --git a/img/emoji/expressionless.png b/img/emoji/expressionless.png
new file mode 100644
index 0000000..0fe2c80
Binary files /dev/null and b/img/emoji/expressionless.png differ
diff --git a/img/emoji/eyeglasses.png b/img/emoji/eyeglasses.png
new file mode 100644
index 0000000..a3cf75a
Binary files /dev/null and b/img/emoji/eyeglasses.png differ
diff --git a/img/emoji/eyes.png b/img/emoji/eyes.png
new file mode 100644
index 0000000..6ec5f60
Binary files /dev/null and b/img/emoji/eyes.png differ
diff --git a/img/emoji/facepunch.png b/img/emoji/facepunch.png
new file mode 100644
index 0000000..bd94512
Binary files /dev/null and b/img/emoji/facepunch.png differ
diff --git a/img/emoji/factory.png b/img/emoji/factory.png
new file mode 100644
index 0000000..709dc05
Binary files /dev/null and b/img/emoji/factory.png differ
diff --git a/img/emoji/fallen_leaf.png b/img/emoji/fallen_leaf.png
new file mode 100644
index 0000000..d49f9c1
Binary files /dev/null and b/img/emoji/fallen_leaf.png differ
diff --git a/img/emoji/family.png b/img/emoji/family.png
new file mode 100644
index 0000000..b4b365f
Binary files /dev/null and b/img/emoji/family.png differ
diff --git a/img/emoji/fast_forward.png b/img/emoji/fast_forward.png
new file mode 100644
index 0000000..83006c4
Binary files /dev/null and b/img/emoji/fast_forward.png differ
diff --git a/img/emoji/fax.png b/img/emoji/fax.png
new file mode 100644
index 0000000..221b906
Binary files /dev/null and b/img/emoji/fax.png differ
diff --git a/img/emoji/fearful.png b/img/emoji/fearful.png
new file mode 100644
index 0000000..da337cb
Binary files /dev/null and b/img/emoji/fearful.png differ
diff --git a/img/emoji/feelsgood.png b/img/emoji/feelsgood.png
new file mode 100644
index 0000000..361f969
Binary files /dev/null and b/img/emoji/feelsgood.png differ
diff --git a/img/emoji/feet.png b/img/emoji/feet.png
new file mode 100644
index 0000000..1ffc3b9
Binary files /dev/null and b/img/emoji/feet.png differ
diff --git a/img/emoji/ferris_wheel.png b/img/emoji/ferris_wheel.png
new file mode 100644
index 0000000..b363ca2
Binary files /dev/null and b/img/emoji/ferris_wheel.png differ
diff --git a/img/emoji/file_folder.png b/img/emoji/file_folder.png
new file mode 100644
index 0000000..36b0b89
Binary files /dev/null and b/img/emoji/file_folder.png differ
diff --git a/img/emoji/finnadie.png b/img/emoji/finnadie.png
new file mode 100644
index 0000000..bfc5a0d
Binary files /dev/null and b/img/emoji/finnadie.png differ
diff --git a/img/emoji/fire.png b/img/emoji/fire.png
new file mode 100644
index 0000000..8bc28c0
Binary files /dev/null and b/img/emoji/fire.png differ
diff --git a/img/emoji/fire_engine.png b/img/emoji/fire_engine.png
new file mode 100644
index 0000000..208ccda
Binary files /dev/null and b/img/emoji/fire_engine.png differ
diff --git a/img/emoji/fireworks.png b/img/emoji/fireworks.png
new file mode 100644
index 0000000..b4eccd5
Binary files /dev/null and b/img/emoji/fireworks.png differ
diff --git a/img/emoji/first_quarter_moon.png b/img/emoji/first_quarter_moon.png
new file mode 100644
index 0000000..a957755
Binary files /dev/null and b/img/emoji/first_quarter_moon.png differ
diff --git a/img/emoji/first_quarter_moon_with_face.png b/img/emoji/first_quarter_moon_with_face.png
new file mode 100644
index 0000000..73f293a
Binary files /dev/null and b/img/emoji/first_quarter_moon_with_face.png differ
diff --git a/img/emoji/fish.png b/img/emoji/fish.png
new file mode 100644
index 0000000..58a2450
Binary files /dev/null and b/img/emoji/fish.png differ
diff --git a/img/emoji/fish_cake.png b/img/emoji/fish_cake.png
new file mode 100644
index 0000000..a8f2261
Binary files /dev/null and b/img/emoji/fish_cake.png differ
diff --git a/img/emoji/fishing_pole_and_fish.png b/img/emoji/fishing_pole_and_fish.png
new file mode 100644
index 0000000..3aebcf6
Binary files /dev/null and b/img/emoji/fishing_pole_and_fish.png differ
diff --git a/img/emoji/fist.png b/img/emoji/fist.png
new file mode 100644
index 0000000..e6174a6
Binary files /dev/null and b/img/emoji/fist.png differ
diff --git a/img/emoji/five.png b/img/emoji/five.png
new file mode 100644
index 0000000..0356795
Binary files /dev/null and b/img/emoji/five.png differ
diff --git a/img/emoji/flags.png b/img/emoji/flags.png
new file mode 100644
index 0000000..540164e
Binary files /dev/null and b/img/emoji/flags.png differ
diff --git a/img/emoji/flashlight.png b/img/emoji/flashlight.png
new file mode 100644
index 0000000..a383e9a
Binary files /dev/null and b/img/emoji/flashlight.png differ
diff --git a/img/emoji/floppy_disk.png b/img/emoji/floppy_disk.png
new file mode 100644
index 0000000..a6b73ef
Binary files /dev/null and b/img/emoji/floppy_disk.png differ
diff --git a/img/emoji/flower_playing_cards.png b/img/emoji/flower_playing_cards.png
new file mode 100644
index 0000000..e3fdcdc
Binary files /dev/null and b/img/emoji/flower_playing_cards.png differ
diff --git a/img/emoji/flushed.png b/img/emoji/flushed.png
new file mode 100644
index 0000000..83b462b
Binary files /dev/null and b/img/emoji/flushed.png differ
diff --git a/img/emoji/foggy.png b/img/emoji/foggy.png
new file mode 100644
index 0000000..078efaf
Binary files /dev/null and b/img/emoji/foggy.png differ
diff --git a/img/emoji/football.png b/img/emoji/football.png
new file mode 100644
index 0000000..0e4e168
Binary files /dev/null and b/img/emoji/football.png differ
diff --git a/img/emoji/footprints.png b/img/emoji/footprints.png
new file mode 100644
index 0000000..1b0147b
Binary files /dev/null and b/img/emoji/footprints.png differ
diff --git a/img/emoji/fork_and_knife.png b/img/emoji/fork_and_knife.png
new file mode 100644
index 0000000..e39eb04
Binary files /dev/null and b/img/emoji/fork_and_knife.png differ
diff --git a/img/emoji/fountain.png b/img/emoji/fountain.png
new file mode 100644
index 0000000..4579c98
Binary files /dev/null and b/img/emoji/fountain.png differ
diff --git a/img/emoji/four.png b/img/emoji/four.png
new file mode 100644
index 0000000..6143e57
Binary files /dev/null and b/img/emoji/four.png differ
diff --git a/img/emoji/four_leaf_clover.png b/img/emoji/four_leaf_clover.png
new file mode 100644
index 0000000..f2014be
Binary files /dev/null and b/img/emoji/four_leaf_clover.png differ
diff --git a/img/emoji/fr.png b/img/emoji/fr.png
new file mode 100644
index 0000000..36ce9a0
Binary files /dev/null and b/img/emoji/fr.png differ
diff --git a/img/emoji/free.png b/img/emoji/free.png
new file mode 100644
index 0000000..2bc72f9
Binary files /dev/null and b/img/emoji/free.png differ
diff --git a/img/emoji/fried_shrimp.png b/img/emoji/fried_shrimp.png
new file mode 100644
index 0000000..c8c284b
Binary files /dev/null and b/img/emoji/fried_shrimp.png differ
diff --git a/img/emoji/fries.png b/img/emoji/fries.png
new file mode 100644
index 0000000..ffda5a1
Binary files /dev/null and b/img/emoji/fries.png differ
diff --git a/img/emoji/frog.png b/img/emoji/frog.png
new file mode 100644
index 0000000..7357ed5
Binary files /dev/null and b/img/emoji/frog.png differ
diff --git a/img/emoji/frowning.png b/img/emoji/frowning.png
new file mode 100644
index 0000000..4f42045
Binary files /dev/null and b/img/emoji/frowning.png differ
diff --git a/img/emoji/fu.png b/img/emoji/fu.png
new file mode 100644
index 0000000..1f7eade
Binary files /dev/null and b/img/emoji/fu.png differ
diff --git a/img/emoji/fuelpump.png b/img/emoji/fuelpump.png
new file mode 100644
index 0000000..54c29ae
Binary files /dev/null and b/img/emoji/fuelpump.png differ
diff --git a/img/emoji/full_moon.png b/img/emoji/full_moon.png
new file mode 100644
index 0000000..caa198e
Binary files /dev/null and b/img/emoji/full_moon.png differ
diff --git a/img/emoji/full_moon_with_face.png b/img/emoji/full_moon_with_face.png
new file mode 100644
index 0000000..01a657b
Binary files /dev/null and b/img/emoji/full_moon_with_face.png differ
diff --git a/img/emoji/game_die.png b/img/emoji/game_die.png
new file mode 100644
index 0000000..4136e78
Binary files /dev/null and b/img/emoji/game_die.png differ
diff --git a/img/emoji/gb.png b/img/emoji/gb.png
new file mode 100644
index 0000000..71ad973
Binary files /dev/null and b/img/emoji/gb.png differ
diff --git a/img/emoji/gem.png b/img/emoji/gem.png
new file mode 100644
index 0000000..b506b8b
Binary files /dev/null and b/img/emoji/gem.png differ
diff --git a/img/emoji/gemini.png b/img/emoji/gemini.png
new file mode 100644
index 0000000..6fe140d
Binary files /dev/null and b/img/emoji/gemini.png differ
diff --git a/img/emoji/ghost.png b/img/emoji/ghost.png
new file mode 100644
index 0000000..671dd0c
Binary files /dev/null and b/img/emoji/ghost.png differ
diff --git a/img/emoji/gift.png b/img/emoji/gift.png
new file mode 100644
index 0000000..552cfdc
Binary files /dev/null and b/img/emoji/gift.png differ
diff --git a/img/emoji/gift_heart.png b/img/emoji/gift_heart.png
new file mode 100644
index 0000000..253dc91
Binary files /dev/null and b/img/emoji/gift_heart.png differ
diff --git a/img/emoji/girl.png b/img/emoji/girl.png
new file mode 100644
index 0000000..17ffbe8
Binary files /dev/null and b/img/emoji/girl.png differ
diff --git a/img/emoji/globe_with_meridians.png b/img/emoji/globe_with_meridians.png
new file mode 100644
index 0000000..b198646
Binary files /dev/null and b/img/emoji/globe_with_meridians.png differ
diff --git a/img/emoji/goat.png b/img/emoji/goat.png
new file mode 100644
index 0000000..4be9cf3
Binary files /dev/null and b/img/emoji/goat.png differ
diff --git a/img/emoji/goberserk.png b/img/emoji/goberserk.png
new file mode 100644
index 0000000..6ea0da2
Binary files /dev/null and b/img/emoji/goberserk.png differ
diff --git a/img/emoji/godmode.png b/img/emoji/godmode.png
new file mode 100644
index 0000000..26c0271
Binary files /dev/null and b/img/emoji/godmode.png differ
diff --git a/img/emoji/golf.png b/img/emoji/golf.png
new file mode 100644
index 0000000..cba2116
Binary files /dev/null and b/img/emoji/golf.png differ
diff --git a/img/emoji/grapes.png b/img/emoji/grapes.png
new file mode 100644
index 0000000..f58cfe4
Binary files /dev/null and b/img/emoji/grapes.png differ
diff --git a/img/emoji/green_apple.png b/img/emoji/green_apple.png
new file mode 100644
index 0000000..337205c
Binary files /dev/null and b/img/emoji/green_apple.png differ
diff --git a/img/emoji/green_book.png b/img/emoji/green_book.png
new file mode 100644
index 0000000..e86651e
Binary files /dev/null and b/img/emoji/green_book.png differ
diff --git a/img/emoji/green_heart.png b/img/emoji/green_heart.png
new file mode 100644
index 0000000..7289cb8
Binary files /dev/null and b/img/emoji/green_heart.png differ
diff --git a/img/emoji/grey_exclamation.png b/img/emoji/grey_exclamation.png
new file mode 100644
index 0000000..b698eab
Binary files /dev/null and b/img/emoji/grey_exclamation.png differ
diff --git a/img/emoji/grey_question.png b/img/emoji/grey_question.png
new file mode 100644
index 0000000..57db41e
Binary files /dev/null and b/img/emoji/grey_question.png differ
diff --git a/img/emoji/grimacing.png b/img/emoji/grimacing.png
new file mode 100644
index 0000000..b3fcbd7
Binary files /dev/null and b/img/emoji/grimacing.png differ
diff --git a/img/emoji/grin.png b/img/emoji/grin.png
new file mode 100644
index 0000000..591cfce
Binary files /dev/null and b/img/emoji/grin.png differ
diff --git a/img/emoji/grinning.png b/img/emoji/grinning.png
new file mode 100644
index 0000000..43ecff0
Binary files /dev/null and b/img/emoji/grinning.png differ
diff --git a/img/emoji/guardsman.png b/img/emoji/guardsman.png
new file mode 100644
index 0000000..a5f0704
Binary files /dev/null and b/img/emoji/guardsman.png differ
diff --git a/img/emoji/guitar.png b/img/emoji/guitar.png
new file mode 100644
index 0000000..ac29315
Binary files /dev/null and b/img/emoji/guitar.png differ
diff --git a/img/emoji/gun.png b/img/emoji/gun.png
new file mode 100644
index 0000000..410788c
Binary files /dev/null and b/img/emoji/gun.png differ
diff --git a/img/emoji/haircut.png b/img/emoji/haircut.png
new file mode 100644
index 0000000..244fab2
Binary files /dev/null and b/img/emoji/haircut.png differ
diff --git a/img/emoji/hamburger.png b/img/emoji/hamburger.png
new file mode 100644
index 0000000..409c48d
Binary files /dev/null and b/img/emoji/hamburger.png differ
diff --git a/img/emoji/hammer.png b/img/emoji/hammer.png
new file mode 100644
index 0000000..dd88923
Binary files /dev/null and b/img/emoji/hammer.png differ
diff --git a/img/emoji/hamster.png b/img/emoji/hamster.png
new file mode 100644
index 0000000..ddf98a7
Binary files /dev/null and b/img/emoji/hamster.png differ
diff --git a/img/emoji/hand.png b/img/emoji/hand.png
new file mode 100644
index 0000000..5e45c25
Binary files /dev/null and b/img/emoji/hand.png differ
diff --git a/img/emoji/handbag.png b/img/emoji/handbag.png
new file mode 100644
index 0000000..f84a6a8
Binary files /dev/null and b/img/emoji/handbag.png differ
diff --git a/img/emoji/hankey.png b/img/emoji/hankey.png
new file mode 100644
index 0000000..73a4dc8
Binary files /dev/null and b/img/emoji/hankey.png differ
diff --git a/img/emoji/hash.png b/img/emoji/hash.png
new file mode 100644
index 0000000..ff62a11
Binary files /dev/null and b/img/emoji/hash.png differ
diff --git a/img/emoji/hatched_chick.png b/img/emoji/hatched_chick.png
new file mode 100644
index 0000000..39c25bc
Binary files /dev/null and b/img/emoji/hatched_chick.png differ
diff --git a/img/emoji/hatching_chick.png b/img/emoji/hatching_chick.png
new file mode 100644
index 0000000..eb2aad1
Binary files /dev/null and b/img/emoji/hatching_chick.png differ
diff --git a/img/emoji/headphones.png b/img/emoji/headphones.png
new file mode 100644
index 0000000..5e9cd24
Binary files /dev/null and b/img/emoji/headphones.png differ
diff --git a/img/emoji/hear_no_evil.png b/img/emoji/hear_no_evil.png
new file mode 100644
index 0000000..97a41fe
Binary files /dev/null and b/img/emoji/hear_no_evil.png differ
diff --git a/img/emoji/heart.png b/img/emoji/heart.png
new file mode 100644
index 0000000..82d0e00
Binary files /dev/null and b/img/emoji/heart.png differ
diff --git a/img/emoji/heart_decoration.png b/img/emoji/heart_decoration.png
new file mode 100644
index 0000000..dbe63f9
Binary files /dev/null and b/img/emoji/heart_decoration.png differ
diff --git a/img/emoji/heart_eyes.png b/img/emoji/heart_eyes.png
new file mode 100644
index 0000000..09f191e
Binary files /dev/null and b/img/emoji/heart_eyes.png differ
diff --git a/img/emoji/heart_eyes_cat.png b/img/emoji/heart_eyes_cat.png
new file mode 100644
index 0000000..eeba240
Binary files /dev/null and b/img/emoji/heart_eyes_cat.png differ
diff --git a/img/emoji/heartbeat.png b/img/emoji/heartbeat.png
new file mode 100644
index 0000000..bcc7e33
Binary files /dev/null and b/img/emoji/heartbeat.png differ
diff --git a/img/emoji/heartpulse.png b/img/emoji/heartpulse.png
new file mode 100644
index 0000000..a7491cb
Binary files /dev/null and b/img/emoji/heartpulse.png differ
diff --git a/img/emoji/hearts.png b/img/emoji/hearts.png
new file mode 100644
index 0000000..c5f1136
Binary files /dev/null and b/img/emoji/hearts.png differ
diff --git a/img/emoji/heavy_check_mark.png b/img/emoji/heavy_check_mark.png
new file mode 100644
index 0000000..d0f010b
Binary files /dev/null and b/img/emoji/heavy_check_mark.png differ
diff --git a/img/emoji/heavy_division_sign.png b/img/emoji/heavy_division_sign.png
new file mode 100644
index 0000000..ba19d4b
Binary files /dev/null and b/img/emoji/heavy_division_sign.png differ
diff --git a/img/emoji/heavy_dollar_sign.png b/img/emoji/heavy_dollar_sign.png
new file mode 100644
index 0000000..67dfa07
Binary files /dev/null and b/img/emoji/heavy_dollar_sign.png differ
diff --git a/img/emoji/heavy_exclamation_mark.png b/img/emoji/heavy_exclamation_mark.png
new file mode 100644
index 0000000..4c560f5
Binary files /dev/null and b/img/emoji/heavy_exclamation_mark.png differ
diff --git a/img/emoji/heavy_minus_sign.png b/img/emoji/heavy_minus_sign.png
new file mode 100644
index 0000000..2514594
Binary files /dev/null and b/img/emoji/heavy_minus_sign.png differ
diff --git a/img/emoji/heavy_multiplication_x.png b/img/emoji/heavy_multiplication_x.png
new file mode 100644
index 0000000..d6a4307
Binary files /dev/null and b/img/emoji/heavy_multiplication_x.png differ
diff --git a/img/emoji/heavy_plus_sign.png b/img/emoji/heavy_plus_sign.png
new file mode 100644
index 0000000..5cbbd27
Binary files /dev/null and b/img/emoji/heavy_plus_sign.png differ
diff --git a/img/emoji/helicopter.png b/img/emoji/helicopter.png
new file mode 100644
index 0000000..71bdf08
Binary files /dev/null and b/img/emoji/helicopter.png differ
diff --git a/img/emoji/herb.png b/img/emoji/herb.png
new file mode 100644
index 0000000..de1ff1b
Binary files /dev/null and b/img/emoji/herb.png differ
diff --git a/img/emoji/hibiscus.png b/img/emoji/hibiscus.png
new file mode 100644
index 0000000..cf4853a
Binary files /dev/null and b/img/emoji/hibiscus.png differ
diff --git a/img/emoji/high_brightness.png b/img/emoji/high_brightness.png
new file mode 100644
index 0000000..ba9de7d
Binary files /dev/null and b/img/emoji/high_brightness.png differ
diff --git a/img/emoji/high_heel.png b/img/emoji/high_heel.png
new file mode 100644
index 0000000..eff02a6
Binary files /dev/null and b/img/emoji/high_heel.png differ
diff --git a/img/emoji/hocho.png b/img/emoji/hocho.png
new file mode 100644
index 0000000..52cdd03
Binary files /dev/null and b/img/emoji/hocho.png differ
diff --git a/img/emoji/honey_pot.png b/img/emoji/honey_pot.png
new file mode 100644
index 0000000..7327889
Binary files /dev/null and b/img/emoji/honey_pot.png differ
diff --git a/img/emoji/honeybee.png b/img/emoji/honeybee.png
new file mode 100644
index 0000000..ac72356
Binary files /dev/null and b/img/emoji/honeybee.png differ
diff --git a/img/emoji/horse.png b/img/emoji/horse.png
new file mode 100644
index 0000000..78d580a
Binary files /dev/null and b/img/emoji/horse.png differ
diff --git a/img/emoji/horse_racing.png b/img/emoji/horse_racing.png
new file mode 100644
index 0000000..4ab4df2
Binary files /dev/null and b/img/emoji/horse_racing.png differ
diff --git a/img/emoji/hospital.png b/img/emoji/hospital.png
new file mode 100644
index 0000000..c05c493
Binary files /dev/null and b/img/emoji/hospital.png differ
diff --git a/img/emoji/hotel.png b/img/emoji/hotel.png
new file mode 100644
index 0000000..d29f276
Binary files /dev/null and b/img/emoji/hotel.png differ
diff --git a/img/emoji/hotsprings.png b/img/emoji/hotsprings.png
new file mode 100644
index 0000000..a0bc9d7
Binary files /dev/null and b/img/emoji/hotsprings.png differ
diff --git a/img/emoji/hourglass.png b/img/emoji/hourglass.png
new file mode 100644
index 0000000..405aab4
Binary files /dev/null and b/img/emoji/hourglass.png differ
diff --git a/img/emoji/hourglass_flowing_sand.png b/img/emoji/hourglass_flowing_sand.png
new file mode 100644
index 0000000..6611486
Binary files /dev/null and b/img/emoji/hourglass_flowing_sand.png differ
diff --git a/img/emoji/house.png b/img/emoji/house.png
new file mode 100644
index 0000000..74fc5c5
Binary files /dev/null and b/img/emoji/house.png differ
diff --git a/img/emoji/house_with_garden.png b/img/emoji/house_with_garden.png
new file mode 100644
index 0000000..6261cd3
Binary files /dev/null and b/img/emoji/house_with_garden.png differ
diff --git a/img/emoji/hurtrealbad.png b/img/emoji/hurtrealbad.png
new file mode 100644
index 0000000..146ef1a
Binary files /dev/null and b/img/emoji/hurtrealbad.png differ
diff --git a/img/emoji/hushed.png b/img/emoji/hushed.png
new file mode 100644
index 0000000..1c54ba1
Binary files /dev/null and b/img/emoji/hushed.png differ
diff --git a/img/emoji/ice_cream.png b/img/emoji/ice_cream.png
new file mode 100644
index 0000000..190be01
Binary files /dev/null and b/img/emoji/ice_cream.png differ
diff --git a/img/emoji/icecream.png b/img/emoji/icecream.png
new file mode 100644
index 0000000..34e5465
Binary files /dev/null and b/img/emoji/icecream.png differ
diff --git a/img/emoji/id.png b/img/emoji/id.png
new file mode 100644
index 0000000..94ed02b
Binary files /dev/null and b/img/emoji/id.png differ
diff --git a/img/emoji/ideograph_advantage.png b/img/emoji/ideograph_advantage.png
new file mode 100644
index 0000000..e79af78
Binary files /dev/null and b/img/emoji/ideograph_advantage.png differ
diff --git a/img/emoji/imp.png b/img/emoji/imp.png
new file mode 100644
index 0000000..f6d7356
Binary files /dev/null and b/img/emoji/imp.png differ
diff --git a/img/emoji/inbox_tray.png b/img/emoji/inbox_tray.png
new file mode 100644
index 0000000..e2df0f8
Binary files /dev/null and b/img/emoji/inbox_tray.png differ
diff --git a/img/emoji/incoming_envelope.png b/img/emoji/incoming_envelope.png
new file mode 100644
index 0000000..afc8271
Binary files /dev/null and b/img/emoji/incoming_envelope.png differ
diff --git a/img/emoji/information_desk_person.png b/img/emoji/information_desk_person.png
new file mode 100644
index 0000000..52c0a50
Binary files /dev/null and b/img/emoji/information_desk_person.png differ
diff --git a/img/emoji/information_source.png b/img/emoji/information_source.png
new file mode 100644
index 0000000..bed202b
Binary files /dev/null and b/img/emoji/information_source.png differ
diff --git a/img/emoji/innocent.png b/img/emoji/innocent.png
new file mode 100644
index 0000000..7b8cfb0
Binary files /dev/null and b/img/emoji/innocent.png differ
diff --git a/img/emoji/interrobang.png b/img/emoji/interrobang.png
new file mode 100644
index 0000000..4bc27cf
Binary files /dev/null and b/img/emoji/interrobang.png differ
diff --git a/img/emoji/iphone.png b/img/emoji/iphone.png
new file mode 100644
index 0000000..eabad4b
Binary files /dev/null and b/img/emoji/iphone.png differ
diff --git a/img/emoji/it.png b/img/emoji/it.png
new file mode 100644
index 0000000..9086d51
Binary files /dev/null and b/img/emoji/it.png differ
diff --git a/img/emoji/izakaya_lantern.png b/img/emoji/izakaya_lantern.png
new file mode 100644
index 0000000..18730ad
Binary files /dev/null and b/img/emoji/izakaya_lantern.png differ
diff --git a/img/emoji/jack_o_lantern.png b/img/emoji/jack_o_lantern.png
new file mode 100644
index 0000000..2df7931
Binary files /dev/null and b/img/emoji/jack_o_lantern.png differ
diff --git a/img/emoji/japan.png b/img/emoji/japan.png
new file mode 100644
index 0000000..4bf81c4
Binary files /dev/null and b/img/emoji/japan.png differ
diff --git a/img/emoji/japanese_castle.png b/img/emoji/japanese_castle.png
new file mode 100644
index 0000000..af2282c
Binary files /dev/null and b/img/emoji/japanese_castle.png differ
diff --git a/img/emoji/japanese_goblin.png b/img/emoji/japanese_goblin.png
new file mode 100644
index 0000000..fb92bdb
Binary files /dev/null and b/img/emoji/japanese_goblin.png differ
diff --git a/img/emoji/japanese_ogre.png b/img/emoji/japanese_ogre.png
new file mode 100644
index 0000000..b6c282f
Binary files /dev/null and b/img/emoji/japanese_ogre.png differ
diff --git a/img/emoji/jeans.png b/img/emoji/jeans.png
new file mode 100644
index 0000000..d721cea
Binary files /dev/null and b/img/emoji/jeans.png differ
diff --git a/img/emoji/joy.png b/img/emoji/joy.png
new file mode 100644
index 0000000..2beae51
Binary files /dev/null and b/img/emoji/joy.png differ
diff --git a/img/emoji/joy_cat.png b/img/emoji/joy_cat.png
new file mode 100644
index 0000000..3317670
Binary files /dev/null and b/img/emoji/joy_cat.png differ
diff --git a/img/emoji/jp.png b/img/emoji/jp.png
new file mode 100644
index 0000000..d188fd0
Binary files /dev/null and b/img/emoji/jp.png differ
diff --git a/img/emoji/key.png b/img/emoji/key.png
new file mode 100644
index 0000000..09e207a
Binary files /dev/null and b/img/emoji/key.png differ
diff --git a/img/emoji/keycap_ten.png b/img/emoji/keycap_ten.png
new file mode 100644
index 0000000..71dac1c
Binary files /dev/null and b/img/emoji/keycap_ten.png differ
diff --git a/img/emoji/kimono.png b/img/emoji/kimono.png
new file mode 100644
index 0000000..34ffe13
Binary files /dev/null and b/img/emoji/kimono.png differ
diff --git a/img/emoji/kiss.png b/img/emoji/kiss.png
new file mode 100644
index 0000000..d4795a0
Binary files /dev/null and b/img/emoji/kiss.png differ
diff --git a/img/emoji/kissing.png b/img/emoji/kissing.png
new file mode 100644
index 0000000..093f475
Binary files /dev/null and b/img/emoji/kissing.png differ
diff --git a/img/emoji/kissing_cat.png b/img/emoji/kissing_cat.png
new file mode 100644
index 0000000..8eddb29
Binary files /dev/null and b/img/emoji/kissing_cat.png differ
diff --git a/img/emoji/kissing_closed_eyes.png b/img/emoji/kissing_closed_eyes.png
new file mode 100644
index 0000000..5a57ce0
Binary files /dev/null and b/img/emoji/kissing_closed_eyes.png differ
diff --git a/img/emoji/kissing_heart.png b/img/emoji/kissing_heart.png
new file mode 100644
index 0000000..78630b4
Binary files /dev/null and b/img/emoji/kissing_heart.png differ
diff --git a/img/emoji/kissing_smiling_eyes.png b/img/emoji/kissing_smiling_eyes.png
new file mode 100644
index 0000000..ed519f4
Binary files /dev/null and b/img/emoji/kissing_smiling_eyes.png differ
diff --git a/img/emoji/koala.png b/img/emoji/koala.png
new file mode 100644
index 0000000..e17bd3c
Binary files /dev/null and b/img/emoji/koala.png differ
diff --git a/img/emoji/koko.png b/img/emoji/koko.png
new file mode 100644
index 0000000..b042e77
Binary files /dev/null and b/img/emoji/koko.png differ
diff --git a/img/emoji/kr.png b/img/emoji/kr.png
new file mode 100644
index 0000000..5e9d007
Binary files /dev/null and b/img/emoji/kr.png differ
diff --git a/img/emoji/lantern.png b/img/emoji/lantern.png
new file mode 100644
index 0000000..18730ad
Binary files /dev/null and b/img/emoji/lantern.png differ
diff --git a/img/emoji/large_blue_circle.png b/img/emoji/large_blue_circle.png
new file mode 100644
index 0000000..709ecb9
Binary files /dev/null and b/img/emoji/large_blue_circle.png differ
diff --git a/img/emoji/large_blue_diamond.png b/img/emoji/large_blue_diamond.png
new file mode 100644
index 0000000..41e59a3
Binary files /dev/null and b/img/emoji/large_blue_diamond.png differ
diff --git a/img/emoji/large_orange_diamond.png b/img/emoji/large_orange_diamond.png
new file mode 100644
index 0000000..43be53b
Binary files /dev/null and b/img/emoji/large_orange_diamond.png differ
diff --git a/img/emoji/last_quarter_moon.png b/img/emoji/last_quarter_moon.png
new file mode 100644
index 0000000..8a692c2
Binary files /dev/null and b/img/emoji/last_quarter_moon.png differ
diff --git a/img/emoji/last_quarter_moon_with_face.png b/img/emoji/last_quarter_moon_with_face.png
new file mode 100644
index 0000000..9ece82d
Binary files /dev/null and b/img/emoji/last_quarter_moon_with_face.png differ
diff --git a/img/emoji/laughing.png b/img/emoji/laughing.png
new file mode 100644
index 0000000..597e760
Binary files /dev/null and b/img/emoji/laughing.png differ
diff --git a/img/emoji/leaves.png b/img/emoji/leaves.png
new file mode 100644
index 0000000..509cbe3
Binary files /dev/null and b/img/emoji/leaves.png differ
diff --git a/img/emoji/ledger.png b/img/emoji/ledger.png
new file mode 100644
index 0000000..7b26266
Binary files /dev/null and b/img/emoji/ledger.png differ
diff --git a/img/emoji/left_luggage.png b/img/emoji/left_luggage.png
new file mode 100644
index 0000000..87f928a
Binary files /dev/null and b/img/emoji/left_luggage.png differ
diff --git a/img/emoji/left_right_arrow.png b/img/emoji/left_right_arrow.png
new file mode 100644
index 0000000..04ae97e
Binary files /dev/null and b/img/emoji/left_right_arrow.png differ
diff --git a/img/emoji/leftwards_arrow_with_hook.png b/img/emoji/leftwards_arrow_with_hook.png
new file mode 100644
index 0000000..bc45dfe
Binary files /dev/null and b/img/emoji/leftwards_arrow_with_hook.png differ
diff --git a/img/emoji/lemon.png b/img/emoji/lemon.png
new file mode 100644
index 0000000..839a91f
Binary files /dev/null and b/img/emoji/lemon.png differ
diff --git a/img/emoji/leo.png b/img/emoji/leo.png
new file mode 100644
index 0000000..2be6f5b
Binary files /dev/null and b/img/emoji/leo.png differ
diff --git a/img/emoji/leopard.png b/img/emoji/leopard.png
new file mode 100644
index 0000000..3ad4167
Binary files /dev/null and b/img/emoji/leopard.png differ
diff --git a/img/emoji/libra.png b/img/emoji/libra.png
new file mode 100644
index 0000000..8cbd940
Binary files /dev/null and b/img/emoji/libra.png differ
diff --git a/img/emoji/light_rail.png b/img/emoji/light_rail.png
new file mode 100644
index 0000000..bcfe801
Binary files /dev/null and b/img/emoji/light_rail.png differ
diff --git a/img/emoji/link.png b/img/emoji/link.png
new file mode 100644
index 0000000..0239e48
Binary files /dev/null and b/img/emoji/link.png differ
diff --git a/img/emoji/lips.png b/img/emoji/lips.png
new file mode 100644
index 0000000..eadf98f
Binary files /dev/null and b/img/emoji/lips.png differ
diff --git a/img/emoji/lipstick.png b/img/emoji/lipstick.png
new file mode 100644
index 0000000..82f990c
Binary files /dev/null and b/img/emoji/lipstick.png differ
diff --git a/img/emoji/lock.png b/img/emoji/lock.png
new file mode 100644
index 0000000..4892b02
Binary files /dev/null and b/img/emoji/lock.png differ
diff --git a/img/emoji/lock_with_ink_pen.png b/img/emoji/lock_with_ink_pen.png
new file mode 100644
index 0000000..375e67e
Binary files /dev/null and b/img/emoji/lock_with_ink_pen.png differ
diff --git a/img/emoji/lollipop.png b/img/emoji/lollipop.png
new file mode 100644
index 0000000..a842e13
Binary files /dev/null and b/img/emoji/lollipop.png differ
diff --git a/img/emoji/loop.png b/img/emoji/loop.png
new file mode 100644
index 0000000..ef34df3
Binary files /dev/null and b/img/emoji/loop.png differ
diff --git a/img/emoji/loudspeaker.png b/img/emoji/loudspeaker.png
new file mode 100644
index 0000000..ebc2d3b
Binary files /dev/null and b/img/emoji/loudspeaker.png differ
diff --git a/img/emoji/love_hotel.png b/img/emoji/love_hotel.png
new file mode 100644
index 0000000..44d7db8
Binary files /dev/null and b/img/emoji/love_hotel.png differ
diff --git a/img/emoji/love_letter.png b/img/emoji/love_letter.png
new file mode 100644
index 0000000..372336e
Binary files /dev/null and b/img/emoji/love_letter.png differ
diff --git a/img/emoji/low_brightness.png b/img/emoji/low_brightness.png
new file mode 100644
index 0000000..ea15bde
Binary files /dev/null and b/img/emoji/low_brightness.png differ
diff --git a/img/emoji/m.png b/img/emoji/m.png
new file mode 100644
index 0000000..7424665
Binary files /dev/null and b/img/emoji/m.png differ
diff --git a/img/emoji/mag.png b/img/emoji/mag.png
new file mode 100644
index 0000000..bb18f75
Binary files /dev/null and b/img/emoji/mag.png differ
diff --git a/img/emoji/mag_right.png b/img/emoji/mag_right.png
new file mode 100644
index 0000000..6e6cf11
Binary files /dev/null and b/img/emoji/mag_right.png differ
diff --git a/img/emoji/mahjong.png b/img/emoji/mahjong.png
new file mode 100644
index 0000000..58eb3c4
Binary files /dev/null and b/img/emoji/mahjong.png differ
diff --git a/img/emoji/mailbox.png b/img/emoji/mailbox.png
new file mode 100644
index 0000000..658abe2
Binary files /dev/null and b/img/emoji/mailbox.png differ
diff --git a/img/emoji/mailbox_closed.png b/img/emoji/mailbox_closed.png
new file mode 100644
index 0000000..0697733
Binary files /dev/null and b/img/emoji/mailbox_closed.png differ
diff --git a/img/emoji/mailbox_with_mail.png b/img/emoji/mailbox_with_mail.png
new file mode 100644
index 0000000..dae3459
Binary files /dev/null and b/img/emoji/mailbox_with_mail.png differ
diff --git a/img/emoji/mailbox_with_no_mail.png b/img/emoji/mailbox_with_no_mail.png
new file mode 100644
index 0000000..7c4edd0
Binary files /dev/null and b/img/emoji/mailbox_with_no_mail.png differ
diff --git a/img/emoji/man.png b/img/emoji/man.png
new file mode 100644
index 0000000..c4a4217
Binary files /dev/null and b/img/emoji/man.png differ
diff --git a/img/emoji/man_with_gua_pi_mao.png b/img/emoji/man_with_gua_pi_mao.png
new file mode 100644
index 0000000..fa124e4
Binary files /dev/null and b/img/emoji/man_with_gua_pi_mao.png differ
diff --git a/img/emoji/man_with_turban.png b/img/emoji/man_with_turban.png
new file mode 100644
index 0000000..8a0bda1
Binary files /dev/null and b/img/emoji/man_with_turban.png differ
diff --git a/img/emoji/mans_shoe.png b/img/emoji/mans_shoe.png
new file mode 100644
index 0000000..d3b8e13
Binary files /dev/null and b/img/emoji/mans_shoe.png differ
diff --git a/img/emoji/maple_leaf.png b/img/emoji/maple_leaf.png
new file mode 100644
index 0000000..4e9b472
Binary files /dev/null and b/img/emoji/maple_leaf.png differ
diff --git a/img/emoji/mask.png b/img/emoji/mask.png
new file mode 100644
index 0000000..6f85c20
Binary files /dev/null and b/img/emoji/mask.png differ
diff --git a/img/emoji/massage.png b/img/emoji/massage.png
new file mode 100644
index 0000000..dd30d15
Binary files /dev/null and b/img/emoji/massage.png differ
diff --git a/img/emoji/meat_on_bone.png b/img/emoji/meat_on_bone.png
new file mode 100644
index 0000000..0a61e39
Binary files /dev/null and b/img/emoji/meat_on_bone.png differ
diff --git a/img/emoji/mega.png b/img/emoji/mega.png
new file mode 100644
index 0000000..da30fd7
Binary files /dev/null and b/img/emoji/mega.png differ
diff --git a/img/emoji/melon.png b/img/emoji/melon.png
new file mode 100644
index 0000000..11c13cb
Binary files /dev/null and b/img/emoji/melon.png differ
diff --git a/img/emoji/memo.png b/img/emoji/memo.png
new file mode 100644
index 0000000..fc97ddb
Binary files /dev/null and b/img/emoji/memo.png differ
diff --git a/img/emoji/mens.png b/img/emoji/mens.png
new file mode 100644
index 0000000..3c57308
Binary files /dev/null and b/img/emoji/mens.png differ
diff --git a/img/emoji/metal.png b/img/emoji/metal.png
new file mode 100644
index 0000000..94f1fda
Binary files /dev/null and b/img/emoji/metal.png differ
diff --git a/img/emoji/metro.png b/img/emoji/metro.png
new file mode 100644
index 0000000..4513c0e
Binary files /dev/null and b/img/emoji/metro.png differ
diff --git a/img/emoji/microphone.png b/img/emoji/microphone.png
new file mode 100644
index 0000000..f2e7da9
Binary files /dev/null and b/img/emoji/microphone.png differ
diff --git a/img/emoji/microscope.png b/img/emoji/microscope.png
new file mode 100644
index 0000000..f11d54c
Binary files /dev/null and b/img/emoji/microscope.png differ
diff --git a/img/emoji/milky_way.png b/img/emoji/milky_way.png
new file mode 100644
index 0000000..f6b5319
Binary files /dev/null and b/img/emoji/milky_way.png differ
diff --git a/img/emoji/minibus.png b/img/emoji/minibus.png
new file mode 100644
index 0000000..c52cef2
Binary files /dev/null and b/img/emoji/minibus.png differ
diff --git a/img/emoji/minidisc.png b/img/emoji/minidisc.png
new file mode 100644
index 0000000..e19cc5d
Binary files /dev/null and b/img/emoji/minidisc.png differ
diff --git a/img/emoji/mobile_phone_off.png b/img/emoji/mobile_phone_off.png
new file mode 100644
index 0000000..2edde8f
Binary files /dev/null and b/img/emoji/mobile_phone_off.png differ
diff --git a/img/emoji/money_with_wings.png b/img/emoji/money_with_wings.png
new file mode 100644
index 0000000..135e398
Binary files /dev/null and b/img/emoji/money_with_wings.png differ
diff --git a/img/emoji/moneybag.png b/img/emoji/moneybag.png
new file mode 100644
index 0000000..5546c04
Binary files /dev/null and b/img/emoji/moneybag.png differ
diff --git a/img/emoji/monkey.png b/img/emoji/monkey.png
new file mode 100644
index 0000000..6407035
Binary files /dev/null and b/img/emoji/monkey.png differ
diff --git a/img/emoji/monkey_face.png b/img/emoji/monkey_face.png
new file mode 100644
index 0000000..6964cf4
Binary files /dev/null and b/img/emoji/monkey_face.png differ
diff --git a/img/emoji/monorail.png b/img/emoji/monorail.png
new file mode 100644
index 0000000..913d300
Binary files /dev/null and b/img/emoji/monorail.png differ
diff --git a/img/emoji/moon.png b/img/emoji/moon.png
new file mode 100644
index 0000000..8cdfdf1
Binary files /dev/null and b/img/emoji/moon.png differ
diff --git a/img/emoji/mortar_board.png b/img/emoji/mortar_board.png
new file mode 100644
index 0000000..2e811b0
Binary files /dev/null and b/img/emoji/mortar_board.png differ
diff --git a/img/emoji/mount_fuji.png b/img/emoji/mount_fuji.png
new file mode 100644
index 0000000..ba9d91a
Binary files /dev/null and b/img/emoji/mount_fuji.png differ
diff --git a/img/emoji/mountain_bicyclist.png b/img/emoji/mountain_bicyclist.png
new file mode 100644
index 0000000..0d8d477
Binary files /dev/null and b/img/emoji/mountain_bicyclist.png differ
diff --git a/img/emoji/mountain_cableway.png b/img/emoji/mountain_cableway.png
new file mode 100644
index 0000000..3f77461
Binary files /dev/null and b/img/emoji/mountain_cableway.png differ
diff --git a/img/emoji/mountain_railway.png b/img/emoji/mountain_railway.png
new file mode 100644
index 0000000..ad7568e
Binary files /dev/null and b/img/emoji/mountain_railway.png differ
diff --git a/img/emoji/mouse.png b/img/emoji/mouse.png
new file mode 100644
index 0000000..8ff162e
Binary files /dev/null and b/img/emoji/mouse.png differ
diff --git a/img/emoji/mouse2.png b/img/emoji/mouse2.png
new file mode 100644
index 0000000..2d777e5
Binary files /dev/null and b/img/emoji/mouse2.png differ
diff --git a/img/emoji/movie_camera.png b/img/emoji/movie_camera.png
new file mode 100644
index 0000000..f4db0bd
Binary files /dev/null and b/img/emoji/movie_camera.png differ
diff --git a/img/emoji/moyai.png b/img/emoji/moyai.png
new file mode 100644
index 0000000..61a1a9c
Binary files /dev/null and b/img/emoji/moyai.png differ
diff --git a/img/emoji/muscle.png b/img/emoji/muscle.png
new file mode 100644
index 0000000..19f92ef
Binary files /dev/null and b/img/emoji/muscle.png differ
diff --git a/img/emoji/mushroom.png b/img/emoji/mushroom.png
new file mode 100644
index 0000000..5eeed8e
Binary files /dev/null and b/img/emoji/mushroom.png differ
diff --git a/img/emoji/musical_keyboard.png b/img/emoji/musical_keyboard.png
new file mode 100644
index 0000000..aeb41ee
Binary files /dev/null and b/img/emoji/musical_keyboard.png differ
diff --git a/img/emoji/musical_note.png b/img/emoji/musical_note.png
new file mode 100644
index 0000000..42a3d5a
Binary files /dev/null and b/img/emoji/musical_note.png differ
diff --git a/img/emoji/musical_score.png b/img/emoji/musical_score.png
new file mode 100644
index 0000000..c99e338
Binary files /dev/null and b/img/emoji/musical_score.png differ
diff --git a/img/emoji/mute.png b/img/emoji/mute.png
new file mode 100644
index 0000000..4cf67c3
Binary files /dev/null and b/img/emoji/mute.png differ
diff --git a/img/emoji/nail_care.png b/img/emoji/nail_care.png
new file mode 100644
index 0000000..60a0441
Binary files /dev/null and b/img/emoji/nail_care.png differ
diff --git a/img/emoji/name_badge.png b/img/emoji/name_badge.png
new file mode 100644
index 0000000..2b712dc
Binary files /dev/null and b/img/emoji/name_badge.png differ
diff --git a/img/emoji/neckbeard.png b/img/emoji/neckbeard.png
new file mode 100644
index 0000000..6352548
Binary files /dev/null and b/img/emoji/neckbeard.png differ
diff --git a/img/emoji/necktie.png b/img/emoji/necktie.png
new file mode 100644
index 0000000..80461c6
Binary files /dev/null and b/img/emoji/necktie.png differ
diff --git a/img/emoji/negative_squared_cross_mark.png b/img/emoji/negative_squared_cross_mark.png
new file mode 100644
index 0000000..b47a0ce
Binary files /dev/null and b/img/emoji/negative_squared_cross_mark.png differ
diff --git a/img/emoji/neutral_face.png b/img/emoji/neutral_face.png
new file mode 100644
index 0000000..40aa85a
Binary files /dev/null and b/img/emoji/neutral_face.png differ
diff --git a/img/emoji/new.png b/img/emoji/new.png
new file mode 100644
index 0000000..33ad4cb
Binary files /dev/null and b/img/emoji/new.png differ
diff --git a/img/emoji/new_moon.png b/img/emoji/new_moon.png
new file mode 100644
index 0000000..2b57b31
Binary files /dev/null and b/img/emoji/new_moon.png differ
diff --git a/img/emoji/new_moon_with_face.png b/img/emoji/new_moon_with_face.png
new file mode 100644
index 0000000..cc18279
Binary files /dev/null and b/img/emoji/new_moon_with_face.png differ
diff --git a/img/emoji/newspaper.png b/img/emoji/newspaper.png
new file mode 100644
index 0000000..1235a63
Binary files /dev/null and b/img/emoji/newspaper.png differ
diff --git a/img/emoji/ng.png b/img/emoji/ng.png
new file mode 100644
index 0000000..2ca180a
Binary files /dev/null and b/img/emoji/ng.png differ
diff --git a/img/emoji/nine.png b/img/emoji/nine.png
new file mode 100644
index 0000000..1270c13
Binary files /dev/null and b/img/emoji/nine.png differ
diff --git a/img/emoji/no_bell.png b/img/emoji/no_bell.png
new file mode 100644
index 0000000..613b81c
Binary files /dev/null and b/img/emoji/no_bell.png differ
diff --git a/img/emoji/no_bicycles.png b/img/emoji/no_bicycles.png
new file mode 100644
index 0000000..4b26216
Binary files /dev/null and b/img/emoji/no_bicycles.png differ
diff --git a/img/emoji/no_entry.png b/img/emoji/no_entry.png
new file mode 100644
index 0000000..79b6be8
Binary files /dev/null and b/img/emoji/no_entry.png differ
diff --git a/img/emoji/no_entry_sign.png b/img/emoji/no_entry_sign.png
new file mode 100644
index 0000000..a8444d1
Binary files /dev/null and b/img/emoji/no_entry_sign.png differ
diff --git a/img/emoji/no_good.png b/img/emoji/no_good.png
new file mode 100644
index 0000000..d459a35
Binary files /dev/null and b/img/emoji/no_good.png differ
diff --git a/img/emoji/no_mobile_phones.png b/img/emoji/no_mobile_phones.png
new file mode 100644
index 0000000..41df57c
Binary files /dev/null and b/img/emoji/no_mobile_phones.png differ
diff --git a/img/emoji/no_mouth.png b/img/emoji/no_mouth.png
new file mode 100644
index 0000000..aebce6f
Binary files /dev/null and b/img/emoji/no_mouth.png differ
diff --git a/img/emoji/no_pedestrians.png b/img/emoji/no_pedestrians.png
new file mode 100644
index 0000000..c35f530
Binary files /dev/null and b/img/emoji/no_pedestrians.png differ
diff --git a/img/emoji/no_smoking.png b/img/emoji/no_smoking.png
new file mode 100644
index 0000000..e720129
Binary files /dev/null and b/img/emoji/no_smoking.png differ
diff --git a/img/emoji/non-potable_water.png b/img/emoji/non-potable_water.png
new file mode 100644
index 0000000..1b29d35
Binary files /dev/null and b/img/emoji/non-potable_water.png differ
diff --git a/img/emoji/nose.png b/img/emoji/nose.png
new file mode 100644
index 0000000..ad17c16
Binary files /dev/null and b/img/emoji/nose.png differ
diff --git a/img/emoji/notebook.png b/img/emoji/notebook.png
new file mode 100644
index 0000000..07ea608
Binary files /dev/null and b/img/emoji/notebook.png differ
diff --git a/img/emoji/notebook_with_decorative_cover.png b/img/emoji/notebook_with_decorative_cover.png
new file mode 100644
index 0000000..ad3eb02
Binary files /dev/null and b/img/emoji/notebook_with_decorative_cover.png differ
diff --git a/img/emoji/notes.png b/img/emoji/notes.png
new file mode 100644
index 0000000..592d11f
Binary files /dev/null and b/img/emoji/notes.png differ
diff --git a/img/emoji/nut_and_bolt.png b/img/emoji/nut_and_bolt.png
new file mode 100644
index 0000000..bddfa72
Binary files /dev/null and b/img/emoji/nut_and_bolt.png differ
diff --git a/img/emoji/o.png b/img/emoji/o.png
new file mode 100644
index 0000000..0ededeb
Binary files /dev/null and b/img/emoji/o.png differ
diff --git a/img/emoji/o2.png b/img/emoji/o2.png
new file mode 100644
index 0000000..3c8f971
Binary files /dev/null and b/img/emoji/o2.png differ
diff --git a/img/emoji/ocean.png b/img/emoji/ocean.png
new file mode 100644
index 0000000..f8d520c
Binary files /dev/null and b/img/emoji/ocean.png differ
diff --git a/img/emoji/octocat.png b/img/emoji/octocat.png
new file mode 100644
index 0000000..361f682
Binary files /dev/null and b/img/emoji/octocat.png differ
diff --git a/img/emoji/octopus.png b/img/emoji/octopus.png
new file mode 100644
index 0000000..52ce64b
Binary files /dev/null and b/img/emoji/octopus.png differ
diff --git a/img/emoji/oden.png b/img/emoji/oden.png
new file mode 100644
index 0000000..b0f218e
Binary files /dev/null and b/img/emoji/oden.png differ
diff --git a/img/emoji/office.png b/img/emoji/office.png
new file mode 100644
index 0000000..b97e1af
Binary files /dev/null and b/img/emoji/office.png differ
diff --git a/img/emoji/ok.png b/img/emoji/ok.png
new file mode 100644
index 0000000..f7cd45b
Binary files /dev/null and b/img/emoji/ok.png differ
diff --git a/img/emoji/ok_hand.png b/img/emoji/ok_hand.png
new file mode 100644
index 0000000..f261d93
Binary files /dev/null and b/img/emoji/ok_hand.png differ
diff --git a/img/emoji/ok_woman.png b/img/emoji/ok_woman.png
new file mode 100644
index 0000000..e8b9819
Binary files /dev/null and b/img/emoji/ok_woman.png differ
diff --git a/img/emoji/older_man.png b/img/emoji/older_man.png
new file mode 100644
index 0000000..1f725f8
Binary files /dev/null and b/img/emoji/older_man.png differ
diff --git a/img/emoji/older_woman.png b/img/emoji/older_woman.png
new file mode 100644
index 0000000..f839565
Binary files /dev/null and b/img/emoji/older_woman.png differ
diff --git a/img/emoji/on.png b/img/emoji/on.png
new file mode 100644
index 0000000..47160cd
Binary files /dev/null and b/img/emoji/on.png differ
diff --git a/img/emoji/oncoming_automobile.png b/img/emoji/oncoming_automobile.png
new file mode 100644
index 0000000..cb46de2
Binary files /dev/null and b/img/emoji/oncoming_automobile.png differ
diff --git a/img/emoji/oncoming_bus.png b/img/emoji/oncoming_bus.png
new file mode 100644
index 0000000..24c3db4
Binary files /dev/null and b/img/emoji/oncoming_bus.png differ
diff --git a/img/emoji/oncoming_police_car.png b/img/emoji/oncoming_police_car.png
new file mode 100644
index 0000000..af20e7e
Binary files /dev/null and b/img/emoji/oncoming_police_car.png differ
diff --git a/img/emoji/oncoming_taxi.png b/img/emoji/oncoming_taxi.png
new file mode 100644
index 0000000..6f139c2
Binary files /dev/null and b/img/emoji/oncoming_taxi.png differ
diff --git a/img/emoji/one.png b/img/emoji/one.png
new file mode 100644
index 0000000..e507da0
Binary files /dev/null and b/img/emoji/one.png differ
diff --git a/img/emoji/open_book.png b/img/emoji/open_book.png
new file mode 100644
index 0000000..09c6a15
Binary files /dev/null and b/img/emoji/open_book.png differ
diff --git a/img/emoji/open_file_folder.png b/img/emoji/open_file_folder.png
new file mode 100644
index 0000000..2bbbbf5
Binary files /dev/null and b/img/emoji/open_file_folder.png differ
diff --git a/img/emoji/open_hands.png b/img/emoji/open_hands.png
new file mode 100644
index 0000000..d6f93d8
Binary files /dev/null and b/img/emoji/open_hands.png differ
diff --git a/img/emoji/open_mouth.png b/img/emoji/open_mouth.png
new file mode 100644
index 0000000..6d8e864
Binary files /dev/null and b/img/emoji/open_mouth.png differ
diff --git a/img/emoji/ophiuchus.png b/img/emoji/ophiuchus.png
new file mode 100644
index 0000000..0bba5b8
Binary files /dev/null and b/img/emoji/ophiuchus.png differ
diff --git a/img/emoji/orange_book.png b/img/emoji/orange_book.png
new file mode 100644
index 0000000..77ebdee
Binary files /dev/null and b/img/emoji/orange_book.png differ
diff --git a/img/emoji/outbox_tray.png b/img/emoji/outbox_tray.png
new file mode 100644
index 0000000..7ad15e6
Binary files /dev/null and b/img/emoji/outbox_tray.png differ
diff --git a/img/emoji/ox.png b/img/emoji/ox.png
new file mode 100644
index 0000000..4f5bb0b
Binary files /dev/null and b/img/emoji/ox.png differ
diff --git a/img/emoji/package.png b/img/emoji/package.png
new file mode 100644
index 0000000..9aee704
Binary files /dev/null and b/img/emoji/package.png differ
diff --git a/img/emoji/page_facing_up.png b/img/emoji/page_facing_up.png
new file mode 100644
index 0000000..de0eeec
Binary files /dev/null and b/img/emoji/page_facing_up.png differ
diff --git a/img/emoji/page_with_curl.png b/img/emoji/page_with_curl.png
new file mode 100644
index 0000000..bf8f979
Binary files /dev/null and b/img/emoji/page_with_curl.png differ
diff --git a/img/emoji/pager.png b/img/emoji/pager.png
new file mode 100644
index 0000000..48d25b4
Binary files /dev/null and b/img/emoji/pager.png differ
diff --git a/img/emoji/palm_tree.png b/img/emoji/palm_tree.png
new file mode 100644
index 0000000..d534785
Binary files /dev/null and b/img/emoji/palm_tree.png differ
diff --git a/img/emoji/panda_face.png b/img/emoji/panda_face.png
new file mode 100644
index 0000000..a794fb1
Binary files /dev/null and b/img/emoji/panda_face.png differ
diff --git a/img/emoji/paperclip.png b/img/emoji/paperclip.png
new file mode 100644
index 0000000..0d3df94
Binary files /dev/null and b/img/emoji/paperclip.png differ
diff --git a/img/emoji/parking.png b/img/emoji/parking.png
new file mode 100644
index 0000000..c24af81
Binary files /dev/null and b/img/emoji/parking.png differ
diff --git a/img/emoji/part_alternation_mark.png b/img/emoji/part_alternation_mark.png
new file mode 100644
index 0000000..45dc9b8
Binary files /dev/null and b/img/emoji/part_alternation_mark.png differ
diff --git a/img/emoji/partly_sunny.png b/img/emoji/partly_sunny.png
new file mode 100644
index 0000000..020dd5f
Binary files /dev/null and b/img/emoji/partly_sunny.png differ
diff --git a/img/emoji/passport_control.png b/img/emoji/passport_control.png
new file mode 100644
index 0000000..675b76d
Binary files /dev/null and b/img/emoji/passport_control.png differ
diff --git a/img/emoji/paw_prints.png b/img/emoji/paw_prints.png
new file mode 100644
index 0000000..1ffc3b9
Binary files /dev/null and b/img/emoji/paw_prints.png differ
diff --git a/img/emoji/peach.png b/img/emoji/peach.png
new file mode 100644
index 0000000..ee2139e
Binary files /dev/null and b/img/emoji/peach.png differ
diff --git a/img/emoji/pear.png b/img/emoji/pear.png
new file mode 100644
index 0000000..f57143d
Binary files /dev/null and b/img/emoji/pear.png differ
diff --git a/img/emoji/pencil.png b/img/emoji/pencil.png
new file mode 100644
index 0000000..fc97ddb
Binary files /dev/null and b/img/emoji/pencil.png differ
diff --git a/img/emoji/pencil2.png b/img/emoji/pencil2.png
new file mode 100644
index 0000000..01e8330
Binary files /dev/null and b/img/emoji/pencil2.png differ
diff --git a/img/emoji/penguin.png b/img/emoji/penguin.png
new file mode 100644
index 0000000..687261c
Binary files /dev/null and b/img/emoji/penguin.png differ
diff --git a/img/emoji/pensive.png b/img/emoji/pensive.png
new file mode 100644
index 0000000..1d841c8
Binary files /dev/null and b/img/emoji/pensive.png differ
diff --git a/img/emoji/performing_arts.png b/img/emoji/performing_arts.png
new file mode 100644
index 0000000..899fbe5
Binary files /dev/null and b/img/emoji/performing_arts.png differ
diff --git a/img/emoji/persevere.png b/img/emoji/persevere.png
new file mode 100644
index 0000000..7976ed8
Binary files /dev/null and b/img/emoji/persevere.png differ
diff --git a/img/emoji/person_frowning.png b/img/emoji/person_frowning.png
new file mode 100644
index 0000000..6f34d5e
Binary files /dev/null and b/img/emoji/person_frowning.png differ
diff --git a/img/emoji/person_with_blond_hair.png b/img/emoji/person_with_blond_hair.png
new file mode 100644
index 0000000..d42d562
Binary files /dev/null and b/img/emoji/person_with_blond_hair.png differ
diff --git a/img/emoji/person_with_pouting_face.png b/img/emoji/person_with_pouting_face.png
new file mode 100644
index 0000000..c4a95c3
Binary files /dev/null and b/img/emoji/person_with_pouting_face.png differ
diff --git a/img/emoji/phone.png b/img/emoji/phone.png
new file mode 100644
index 0000000..815c33b
Binary files /dev/null and b/img/emoji/phone.png differ
diff --git a/img/emoji/pig.png b/img/emoji/pig.png
new file mode 100644
index 0000000..f7f273c
Binary files /dev/null and b/img/emoji/pig.png differ
diff --git a/img/emoji/pig2.png b/img/emoji/pig2.png
new file mode 100644
index 0000000..6e3749d
Binary files /dev/null and b/img/emoji/pig2.png differ
diff --git a/img/emoji/pig_nose.png b/img/emoji/pig_nose.png
new file mode 100644
index 0000000..2b14feb
Binary files /dev/null and b/img/emoji/pig_nose.png differ
diff --git a/img/emoji/pill.png b/img/emoji/pill.png
new file mode 100644
index 0000000..e3d16b4
Binary files /dev/null and b/img/emoji/pill.png differ
diff --git a/img/emoji/pineapple.png b/img/emoji/pineapple.png
new file mode 100644
index 0000000..d6f8e28
Binary files /dev/null and b/img/emoji/pineapple.png differ
diff --git a/img/emoji/pisces.png b/img/emoji/pisces.png
new file mode 100644
index 0000000..27eaafd
Binary files /dev/null and b/img/emoji/pisces.png differ
diff --git a/img/emoji/pizza.png b/img/emoji/pizza.png
new file mode 100644
index 0000000..c2a132a
Binary files /dev/null and b/img/emoji/pizza.png differ
diff --git a/img/emoji/point_down.png b/img/emoji/point_down.png
new file mode 100644
index 0000000..658c6d9
Binary files /dev/null and b/img/emoji/point_down.png differ
diff --git a/img/emoji/point_left.png b/img/emoji/point_left.png
new file mode 100644
index 0000000..d7d1906
Binary files /dev/null and b/img/emoji/point_left.png differ
diff --git a/img/emoji/point_right.png b/img/emoji/point_right.png
new file mode 100644
index 0000000..e3d9ca4
Binary files /dev/null and b/img/emoji/point_right.png differ
diff --git a/img/emoji/point_up.png b/img/emoji/point_up.png
new file mode 100644
index 0000000..01896e2
Binary files /dev/null and b/img/emoji/point_up.png differ
diff --git a/img/emoji/point_up_2.png b/img/emoji/point_up_2.png
new file mode 100644
index 0000000..e11e0b3
Binary files /dev/null and b/img/emoji/point_up_2.png differ
diff --git a/img/emoji/police_car.png b/img/emoji/police_car.png
new file mode 100644
index 0000000..b8f1727
Binary files /dev/null and b/img/emoji/police_car.png differ
diff --git a/img/emoji/poodle.png b/img/emoji/poodle.png
new file mode 100644
index 0000000..adac80b
Binary files /dev/null and b/img/emoji/poodle.png differ
diff --git a/img/emoji/poop.png b/img/emoji/poop.png
new file mode 100644
index 0000000..de27bcc
Binary files /dev/null and b/img/emoji/poop.png differ
diff --git a/img/emoji/post_office.png b/img/emoji/post_office.png
new file mode 100644
index 0000000..43b59e3
Binary files /dev/null and b/img/emoji/post_office.png differ
diff --git a/img/emoji/postal_horn.png b/img/emoji/postal_horn.png
new file mode 100644
index 0000000..5b7ed85
Binary files /dev/null and b/img/emoji/postal_horn.png differ
diff --git a/img/emoji/postbox.png b/img/emoji/postbox.png
new file mode 100644
index 0000000..dc0ae12
Binary files /dev/null and b/img/emoji/postbox.png differ
diff --git a/img/emoji/potable_water.png b/img/emoji/potable_water.png
new file mode 100644
index 0000000..e9fd560
Binary files /dev/null and b/img/emoji/potable_water.png differ
diff --git a/img/emoji/pouch.png b/img/emoji/pouch.png
new file mode 100644
index 0000000..7964f12
Binary files /dev/null and b/img/emoji/pouch.png differ
diff --git a/img/emoji/poultry_leg.png b/img/emoji/poultry_leg.png
new file mode 100644
index 0000000..fd8353d
Binary files /dev/null and b/img/emoji/poultry_leg.png differ
diff --git a/img/emoji/pound.png b/img/emoji/pound.png
new file mode 100644
index 0000000..67fdf23
Binary files /dev/null and b/img/emoji/pound.png differ
diff --git a/img/emoji/pouting_cat.png b/img/emoji/pouting_cat.png
new file mode 100644
index 0000000..4325fd4
Binary files /dev/null and b/img/emoji/pouting_cat.png differ
diff --git a/img/emoji/pray.png b/img/emoji/pray.png
new file mode 100644
index 0000000..f86c992
Binary files /dev/null and b/img/emoji/pray.png differ
diff --git a/img/emoji/princess.png b/img/emoji/princess.png
new file mode 100644
index 0000000..fffef75
Binary files /dev/null and b/img/emoji/princess.png differ
diff --git a/img/emoji/punch.png b/img/emoji/punch.png
new file mode 100644
index 0000000..b095653
Binary files /dev/null and b/img/emoji/punch.png differ
diff --git a/img/emoji/purple_heart.png b/img/emoji/purple_heart.png
new file mode 100644
index 0000000..d5f8750
Binary files /dev/null and b/img/emoji/purple_heart.png differ
diff --git a/img/emoji/purse.png b/img/emoji/purse.png
new file mode 100644
index 0000000..56926fb
Binary files /dev/null and b/img/emoji/purse.png differ
diff --git a/img/emoji/pushpin.png b/img/emoji/pushpin.png
new file mode 100644
index 0000000..540c4ec
Binary files /dev/null and b/img/emoji/pushpin.png differ
diff --git a/img/emoji/put_litter_in_its_place.png b/img/emoji/put_litter_in_its_place.png
new file mode 100644
index 0000000..c2e350c
Binary files /dev/null and b/img/emoji/put_litter_in_its_place.png differ
diff --git a/img/emoji/question.png b/img/emoji/question.png
new file mode 100644
index 0000000..e8a8dc8
Binary files /dev/null and b/img/emoji/question.png differ
diff --git a/img/emoji/rabbit.png b/img/emoji/rabbit.png
new file mode 100644
index 0000000..21f676c
Binary files /dev/null and b/img/emoji/rabbit.png differ
diff --git a/img/emoji/rabbit2.png b/img/emoji/rabbit2.png
new file mode 100644
index 0000000..840b471
Binary files /dev/null and b/img/emoji/rabbit2.png differ
diff --git a/img/emoji/racehorse.png b/img/emoji/racehorse.png
new file mode 100644
index 0000000..2cdbbc7
Binary files /dev/null and b/img/emoji/racehorse.png differ
diff --git a/img/emoji/radio.png b/img/emoji/radio.png
new file mode 100644
index 0000000..ea589ef
Binary files /dev/null and b/img/emoji/radio.png differ
diff --git a/img/emoji/radio_button.png b/img/emoji/radio_button.png
new file mode 100644
index 0000000..3f6e1bf
Binary files /dev/null and b/img/emoji/radio_button.png differ
diff --git a/img/emoji/rage.png b/img/emoji/rage.png
new file mode 100644
index 0000000..6b4e2b2
Binary files /dev/null and b/img/emoji/rage.png differ
diff --git a/img/emoji/rage1.png b/img/emoji/rage1.png
new file mode 100644
index 0000000..65c2cc8
Binary files /dev/null and b/img/emoji/rage1.png differ
diff --git a/img/emoji/rage2.png b/img/emoji/rage2.png
new file mode 100644
index 0000000..8806499
Binary files /dev/null and b/img/emoji/rage2.png differ
diff --git a/img/emoji/rage3.png b/img/emoji/rage3.png
new file mode 100644
index 0000000..58764cb
Binary files /dev/null and b/img/emoji/rage3.png differ
diff --git a/img/emoji/rage4.png b/img/emoji/rage4.png
new file mode 100644
index 0000000..c726c94
Binary files /dev/null and b/img/emoji/rage4.png differ
diff --git a/img/emoji/railway_car.png b/img/emoji/railway_car.png
new file mode 100644
index 0000000..41fde8f
Binary files /dev/null and b/img/emoji/railway_car.png differ
diff --git a/img/emoji/rainbow.png b/img/emoji/rainbow.png
new file mode 100644
index 0000000..5fc39b0
Binary files /dev/null and b/img/emoji/rainbow.png differ
diff --git a/img/emoji/raised_hand.png b/img/emoji/raised_hand.png
new file mode 100644
index 0000000..5e45c25
Binary files /dev/null and b/img/emoji/raised_hand.png differ
diff --git a/img/emoji/raised_hands.png b/img/emoji/raised_hands.png
new file mode 100644
index 0000000..e03142b
Binary files /dev/null and b/img/emoji/raised_hands.png differ
diff --git a/img/emoji/raising_hand.png b/img/emoji/raising_hand.png
new file mode 100644
index 0000000..5f7ec4c
Binary files /dev/null and b/img/emoji/raising_hand.png differ
diff --git a/img/emoji/ram.png b/img/emoji/ram.png
new file mode 100644
index 0000000..4277611
Binary files /dev/null and b/img/emoji/ram.png differ
diff --git a/img/emoji/ramen.png b/img/emoji/ramen.png
new file mode 100644
index 0000000..4c1d2e0
Binary files /dev/null and b/img/emoji/ramen.png differ
diff --git a/img/emoji/rat.png b/img/emoji/rat.png
new file mode 100644
index 0000000..1c463df
Binary files /dev/null and b/img/emoji/rat.png differ
diff --git a/img/emoji/recycle.png b/img/emoji/recycle.png
new file mode 100644
index 0000000..99104c0
Binary files /dev/null and b/img/emoji/recycle.png differ
diff --git a/img/emoji/red_car.png b/img/emoji/red_car.png
new file mode 100644
index 0000000..d854242
Binary files /dev/null and b/img/emoji/red_car.png differ
diff --git a/img/emoji/red_circle.png b/img/emoji/red_circle.png
new file mode 100644
index 0000000..caebdd2
Binary files /dev/null and b/img/emoji/red_circle.png differ
diff --git a/img/emoji/registered.png b/img/emoji/registered.png
new file mode 100644
index 0000000..e539410
Binary files /dev/null and b/img/emoji/registered.png differ
diff --git a/img/emoji/relaxed.png b/img/emoji/relaxed.png
new file mode 100644
index 0000000..b6d9a3b
Binary files /dev/null and b/img/emoji/relaxed.png differ
diff --git a/img/emoji/relieved.png b/img/emoji/relieved.png
new file mode 100644
index 0000000..c11a404
Binary files /dev/null and b/img/emoji/relieved.png differ
diff --git a/img/emoji/repeat.png b/img/emoji/repeat.png
new file mode 100644
index 0000000..458ab92
Binary files /dev/null and b/img/emoji/repeat.png differ
diff --git a/img/emoji/repeat_one.png b/img/emoji/repeat_one.png
new file mode 100644
index 0000000..3c47bcc
Binary files /dev/null and b/img/emoji/repeat_one.png differ
diff --git a/img/emoji/restroom.png b/img/emoji/restroom.png
new file mode 100644
index 0000000..769996f
Binary files /dev/null and b/img/emoji/restroom.png differ
diff --git a/img/emoji/revolving_hearts.png b/img/emoji/revolving_hearts.png
new file mode 100644
index 0000000..ea3317c
Binary files /dev/null and b/img/emoji/revolving_hearts.png differ
diff --git a/img/emoji/rewind.png b/img/emoji/rewind.png
new file mode 100644
index 0000000..0ac8a42
Binary files /dev/null and b/img/emoji/rewind.png differ
diff --git a/img/emoji/ribbon.png b/img/emoji/ribbon.png
new file mode 100644
index 0000000..63ee5ba
Binary files /dev/null and b/img/emoji/ribbon.png differ
diff --git a/img/emoji/rice.png b/img/emoji/rice.png
new file mode 100644
index 0000000..84d2b8e
Binary files /dev/null and b/img/emoji/rice.png differ
diff --git a/img/emoji/rice_ball.png b/img/emoji/rice_ball.png
new file mode 100644
index 0000000..654062e
Binary files /dev/null and b/img/emoji/rice_ball.png differ
diff --git a/img/emoji/rice_cracker.png b/img/emoji/rice_cracker.png
new file mode 100644
index 0000000..954c901
Binary files /dev/null and b/img/emoji/rice_cracker.png differ
diff --git a/img/emoji/rice_scene.png b/img/emoji/rice_scene.png
new file mode 100644
index 0000000..a183c4f
Binary files /dev/null and b/img/emoji/rice_scene.png differ
diff --git a/img/emoji/ring.png b/img/emoji/ring.png
new file mode 100644
index 0000000..8a57fd6
Binary files /dev/null and b/img/emoji/ring.png differ
diff --git a/img/emoji/rocket.png b/img/emoji/rocket.png
new file mode 100644
index 0000000..783078d
Binary files /dev/null and b/img/emoji/rocket.png differ
diff --git a/img/emoji/roller_coaster.png b/img/emoji/roller_coaster.png
new file mode 100644
index 0000000..4050d33
Binary files /dev/null and b/img/emoji/roller_coaster.png differ
diff --git a/img/emoji/rooster.png b/img/emoji/rooster.png
new file mode 100644
index 0000000..fab23ad
Binary files /dev/null and b/img/emoji/rooster.png differ
diff --git a/img/emoji/rose.png b/img/emoji/rose.png
new file mode 100644
index 0000000..3bcbc88
Binary files /dev/null and b/img/emoji/rose.png differ
diff --git a/img/emoji/rotating_light.png b/img/emoji/rotating_light.png
new file mode 100644
index 0000000..20e645b
Binary files /dev/null and b/img/emoji/rotating_light.png differ
diff --git a/img/emoji/round_pushpin.png b/img/emoji/round_pushpin.png
new file mode 100644
index 0000000..e498e92
Binary files /dev/null and b/img/emoji/round_pushpin.png differ
diff --git a/img/emoji/rowboat.png b/img/emoji/rowboat.png
new file mode 100644
index 0000000..bbbff2c
Binary files /dev/null and b/img/emoji/rowboat.png differ
diff --git a/img/emoji/ru.png b/img/emoji/ru.png
new file mode 100644
index 0000000..7f006e5
Binary files /dev/null and b/img/emoji/ru.png differ
diff --git a/img/emoji/rugby_football.png b/img/emoji/rugby_football.png
new file mode 100644
index 0000000..bea1c0b
Binary files /dev/null and b/img/emoji/rugby_football.png differ
diff --git a/img/emoji/runner.png b/img/emoji/runner.png
new file mode 100644
index 0000000..4fc3005
Binary files /dev/null and b/img/emoji/runner.png differ
diff --git a/img/emoji/running.png b/img/emoji/running.png
new file mode 100644
index 0000000..4fc3005
Binary files /dev/null and b/img/emoji/running.png differ
diff --git a/img/emoji/running_shirt_with_sash.png b/img/emoji/running_shirt_with_sash.png
new file mode 100644
index 0000000..d8b129a
Binary files /dev/null and b/img/emoji/running_shirt_with_sash.png differ
diff --git a/img/emoji/sa.png b/img/emoji/sa.png
new file mode 100644
index 0000000..387f098
Binary files /dev/null and b/img/emoji/sa.png differ
diff --git a/img/emoji/sagittarius.png b/img/emoji/sagittarius.png
new file mode 100644
index 0000000..8b5435b
Binary files /dev/null and b/img/emoji/sagittarius.png differ
diff --git a/img/emoji/sailboat.png b/img/emoji/sailboat.png
new file mode 100644
index 0000000..ebbde01
Binary files /dev/null and b/img/emoji/sailboat.png differ
diff --git a/img/emoji/sake.png b/img/emoji/sake.png
new file mode 100644
index 0000000..dace568
Binary files /dev/null and b/img/emoji/sake.png differ
diff --git a/img/emoji/sandal.png b/img/emoji/sandal.png
new file mode 100644
index 0000000..728130c
Binary files /dev/null and b/img/emoji/sandal.png differ
diff --git a/img/emoji/santa.png b/img/emoji/santa.png
new file mode 100644
index 0000000..f90f9ff
Binary files /dev/null and b/img/emoji/santa.png differ
diff --git a/img/emoji/satellite.png b/img/emoji/satellite.png
new file mode 100644
index 0000000..b7a2f39
Binary files /dev/null and b/img/emoji/satellite.png differ
diff --git a/img/emoji/satisfied.png b/img/emoji/satisfied.png
new file mode 100644
index 0000000..597e760
Binary files /dev/null and b/img/emoji/satisfied.png differ
diff --git a/img/emoji/saxophone.png b/img/emoji/saxophone.png
new file mode 100644
index 0000000..855eb28
Binary files /dev/null and b/img/emoji/saxophone.png differ
diff --git a/img/emoji/school.png b/img/emoji/school.png
new file mode 100644
index 0000000..afd922b
Binary files /dev/null and b/img/emoji/school.png differ
diff --git a/img/emoji/school_satchel.png b/img/emoji/school_satchel.png
new file mode 100644
index 0000000..00a33e5
Binary files /dev/null and b/img/emoji/school_satchel.png differ
diff --git a/img/emoji/scissors.png b/img/emoji/scissors.png
new file mode 100644
index 0000000..be91604
Binary files /dev/null and b/img/emoji/scissors.png differ
diff --git a/img/emoji/scorpius.png b/img/emoji/scorpius.png
new file mode 100644
index 0000000..39f6c5d
Binary files /dev/null and b/img/emoji/scorpius.png differ
diff --git a/img/emoji/scream.png b/img/emoji/scream.png
new file mode 100644
index 0000000..a4db796
Binary files /dev/null and b/img/emoji/scream.png differ
diff --git a/img/emoji/scream_cat.png b/img/emoji/scream_cat.png
new file mode 100644
index 0000000..d94cd34
Binary files /dev/null and b/img/emoji/scream_cat.png differ
diff --git a/img/emoji/scroll.png b/img/emoji/scroll.png
new file mode 100644
index 0000000..c5a10e6
Binary files /dev/null and b/img/emoji/scroll.png differ
diff --git a/img/emoji/seat.png b/img/emoji/seat.png
new file mode 100644
index 0000000..d1cb864
Binary files /dev/null and b/img/emoji/seat.png differ
diff --git a/img/emoji/secret.png b/img/emoji/secret.png
new file mode 100644
index 0000000..82e383a
Binary files /dev/null and b/img/emoji/secret.png differ
diff --git a/img/emoji/see_no_evil.png b/img/emoji/see_no_evil.png
new file mode 100644
index 0000000..0890a62
Binary files /dev/null and b/img/emoji/see_no_evil.png differ
diff --git a/img/emoji/seedling.png b/img/emoji/seedling.png
new file mode 100644
index 0000000..0c16668
Binary files /dev/null and b/img/emoji/seedling.png differ
diff --git a/img/emoji/seven.png b/img/emoji/seven.png
new file mode 100644
index 0000000..731c39a
Binary files /dev/null and b/img/emoji/seven.png differ
diff --git a/img/emoji/shaved_ice.png b/img/emoji/shaved_ice.png
new file mode 100644
index 0000000..bfb1501
Binary files /dev/null and b/img/emoji/shaved_ice.png differ
diff --git a/img/emoji/sheep.png b/img/emoji/sheep.png
new file mode 100644
index 0000000..c7277d2
Binary files /dev/null and b/img/emoji/sheep.png differ
diff --git a/img/emoji/shell.png b/img/emoji/shell.png
new file mode 100644
index 0000000..3145b56
Binary files /dev/null and b/img/emoji/shell.png differ
diff --git a/img/emoji/ship.png b/img/emoji/ship.png
new file mode 100644
index 0000000..6c876c5
Binary files /dev/null and b/img/emoji/ship.png differ
diff --git a/img/emoji/shipit.png b/img/emoji/shipit.png
new file mode 100644
index 0000000..a58a47f
Binary files /dev/null and b/img/emoji/shipit.png differ
diff --git a/img/emoji/shirt.png b/img/emoji/shirt.png
new file mode 100644
index 0000000..ab5504b
Binary files /dev/null and b/img/emoji/shirt.png differ
diff --git a/img/emoji/shit.png b/img/emoji/shit.png
new file mode 100644
index 0000000..73a4dc8
Binary files /dev/null and b/img/emoji/shit.png differ
diff --git a/img/emoji/shoe.png b/img/emoji/shoe.png
new file mode 100644
index 0000000..506f713
Binary files /dev/null and b/img/emoji/shoe.png differ
diff --git a/img/emoji/shower.png b/img/emoji/shower.png
new file mode 100644
index 0000000..78eb2d5
Binary files /dev/null and b/img/emoji/shower.png differ
diff --git a/img/emoji/signal_strength.png b/img/emoji/signal_strength.png
new file mode 100644
index 0000000..a4bd23e
Binary files /dev/null and b/img/emoji/signal_strength.png differ
diff --git a/img/emoji/six.png b/img/emoji/six.png
new file mode 100644
index 0000000..b41893d
Binary files /dev/null and b/img/emoji/six.png differ
diff --git a/img/emoji/six_pointed_star.png b/img/emoji/six_pointed_star.png
new file mode 100644
index 0000000..010f8f5
Binary files /dev/null and b/img/emoji/six_pointed_star.png differ
diff --git a/img/emoji/ski.png b/img/emoji/ski.png
new file mode 100644
index 0000000..98f5cb0
Binary files /dev/null and b/img/emoji/ski.png differ
diff --git a/img/emoji/skull.png b/img/emoji/skull.png
new file mode 100644
index 0000000..a5aba07
Binary files /dev/null and b/img/emoji/skull.png differ
diff --git a/img/emoji/sleeping.png b/img/emoji/sleeping.png
new file mode 100644
index 0000000..a82046d
Binary files /dev/null and b/img/emoji/sleeping.png differ
diff --git a/img/emoji/sleepy.png b/img/emoji/sleepy.png
new file mode 100644
index 0000000..98bc7ab
Binary files /dev/null and b/img/emoji/sleepy.png differ
diff --git a/img/emoji/slot_machine.png b/img/emoji/slot_machine.png
new file mode 100644
index 0000000..cb3c0b2
Binary files /dev/null and b/img/emoji/slot_machine.png differ
diff --git a/img/emoji/small_blue_diamond.png b/img/emoji/small_blue_diamond.png
new file mode 100644
index 0000000..03517cd
Binary files /dev/null and b/img/emoji/small_blue_diamond.png differ
diff --git a/img/emoji/small_orange_diamond.png b/img/emoji/small_orange_diamond.png
new file mode 100644
index 0000000..04941d3
Binary files /dev/null and b/img/emoji/small_orange_diamond.png differ
diff --git a/img/emoji/small_red_triangle.png b/img/emoji/small_red_triangle.png
new file mode 100644
index 0000000..289fbd5
Binary files /dev/null and b/img/emoji/small_red_triangle.png differ
diff --git a/img/emoji/small_red_triangle_down.png b/img/emoji/small_red_triangle_down.png
new file mode 100644
index 0000000..94832f0
Binary files /dev/null and b/img/emoji/small_red_triangle_down.png differ
diff --git a/img/emoji/smile.png b/img/emoji/smile.png
new file mode 100644
index 0000000..e3b549c
Binary files /dev/null and b/img/emoji/smile.png differ
diff --git a/img/emoji/smile_cat.png b/img/emoji/smile_cat.png
new file mode 100644
index 0000000..ad333ba
Binary files /dev/null and b/img/emoji/smile_cat.png differ
diff --git a/img/emoji/smiley.png b/img/emoji/smiley.png
new file mode 100644
index 0000000..4ce7ab9
Binary files /dev/null and b/img/emoji/smiley.png differ
diff --git a/img/emoji/smiley_cat.png b/img/emoji/smiley_cat.png
new file mode 100644
index 0000000..dbf1b02
Binary files /dev/null and b/img/emoji/smiley_cat.png differ
diff --git a/img/emoji/smiling_imp.png b/img/emoji/smiling_imp.png
new file mode 100644
index 0000000..0ba7528
Binary files /dev/null and b/img/emoji/smiling_imp.png differ
diff --git a/img/emoji/smirk.png b/img/emoji/smirk.png
new file mode 100644
index 0000000..641b96f
Binary files /dev/null and b/img/emoji/smirk.png differ
diff --git a/img/emoji/smirk_cat.png b/img/emoji/smirk_cat.png
new file mode 100644
index 0000000..86cf239
Binary files /dev/null and b/img/emoji/smirk_cat.png differ
diff --git a/img/emoji/smoking.png b/img/emoji/smoking.png
new file mode 100644
index 0000000..cbc277f
Binary files /dev/null and b/img/emoji/smoking.png differ
diff --git a/img/emoji/snail.png b/img/emoji/snail.png
new file mode 100644
index 0000000..e75e69a
Binary files /dev/null and b/img/emoji/snail.png differ
diff --git a/img/emoji/snake.png b/img/emoji/snake.png
new file mode 100644
index 0000000..ef58933
Binary files /dev/null and b/img/emoji/snake.png differ
diff --git a/img/emoji/snowboarder.png b/img/emoji/snowboarder.png
new file mode 100644
index 0000000..3082a2a
Binary files /dev/null and b/img/emoji/snowboarder.png differ
diff --git a/img/emoji/snowflake.png b/img/emoji/snowflake.png
new file mode 100644
index 0000000..56ff503
Binary files /dev/null and b/img/emoji/snowflake.png differ
diff --git a/img/emoji/snowman.png b/img/emoji/snowman.png
new file mode 100644
index 0000000..0ae3e15
Binary files /dev/null and b/img/emoji/snowman.png differ
diff --git a/img/emoji/sob.png b/img/emoji/sob.png
new file mode 100644
index 0000000..71aecbe
Binary files /dev/null and b/img/emoji/sob.png differ
diff --git a/img/emoji/soccer.png b/img/emoji/soccer.png
new file mode 100644
index 0000000..1e118b5
Binary files /dev/null and b/img/emoji/soccer.png differ
diff --git a/img/emoji/soon.png b/img/emoji/soon.png
new file mode 100644
index 0000000..c34f182
Binary files /dev/null and b/img/emoji/soon.png differ
diff --git a/img/emoji/sos.png b/img/emoji/sos.png
new file mode 100644
index 0000000..e3e16ef
Binary files /dev/null and b/img/emoji/sos.png differ
diff --git a/img/emoji/sound.png b/img/emoji/sound.png
new file mode 100644
index 0000000..6aa4dbf
Binary files /dev/null and b/img/emoji/sound.png differ
diff --git a/img/emoji/space_invader.png b/img/emoji/space_invader.png
new file mode 100644
index 0000000..dd42aa9
Binary files /dev/null and b/img/emoji/space_invader.png differ
diff --git a/img/emoji/spades.png b/img/emoji/spades.png
new file mode 100644
index 0000000..262dfd2
Binary files /dev/null and b/img/emoji/spades.png differ
diff --git a/img/emoji/spaghetti.png b/img/emoji/spaghetti.png
new file mode 100644
index 0000000..6cf02b3
Binary files /dev/null and b/img/emoji/spaghetti.png differ
diff --git a/img/emoji/sparkle.png b/img/emoji/sparkle.png
new file mode 100644
index 0000000..27a5f19
Binary files /dev/null and b/img/emoji/sparkle.png differ
diff --git a/img/emoji/sparkler.png b/img/emoji/sparkler.png
new file mode 100644
index 0000000..0c2e930
Binary files /dev/null and b/img/emoji/sparkler.png differ
diff --git a/img/emoji/sparkles.png b/img/emoji/sparkles.png
new file mode 100644
index 0000000..45c1226
Binary files /dev/null and b/img/emoji/sparkles.png differ
diff --git a/img/emoji/sparkling_heart.png b/img/emoji/sparkling_heart.png
new file mode 100644
index 0000000..6b6d90c
Binary files /dev/null and b/img/emoji/sparkling_heart.png differ
diff --git a/img/emoji/speak_no_evil.png b/img/emoji/speak_no_evil.png
new file mode 100644
index 0000000..641b706
Binary files /dev/null and b/img/emoji/speak_no_evil.png differ
diff --git a/img/emoji/speaker.png b/img/emoji/speaker.png
new file mode 100644
index 0000000..efedb74
Binary files /dev/null and b/img/emoji/speaker.png differ
diff --git a/img/emoji/speech_balloon.png b/img/emoji/speech_balloon.png
new file mode 100644
index 0000000..2896c27
Binary files /dev/null and b/img/emoji/speech_balloon.png differ
diff --git a/img/emoji/speedboat.png b/img/emoji/speedboat.png
new file mode 100644
index 0000000..fe7f00b
Binary files /dev/null and b/img/emoji/speedboat.png differ
diff --git a/img/emoji/squirrel.png b/img/emoji/squirrel.png
new file mode 100644
index 0000000..2ee328f
Binary files /dev/null and b/img/emoji/squirrel.png differ
diff --git a/img/emoji/star.png b/img/emoji/star.png
new file mode 100644
index 0000000..1bfddc8
Binary files /dev/null and b/img/emoji/star.png differ
diff --git a/img/emoji/star2.png b/img/emoji/star2.png
new file mode 100644
index 0000000..8b40ff4
Binary files /dev/null and b/img/emoji/star2.png differ
diff --git a/img/emoji/stars.png b/img/emoji/stars.png
new file mode 100644
index 0000000..dd437bc
Binary files /dev/null and b/img/emoji/stars.png differ
diff --git a/img/emoji/station.png b/img/emoji/station.png
new file mode 100644
index 0000000..eb00d09
Binary files /dev/null and b/img/emoji/station.png differ
diff --git a/img/emoji/statue_of_liberty.png b/img/emoji/statue_of_liberty.png
new file mode 100644
index 0000000..53c046c
Binary files /dev/null and b/img/emoji/statue_of_liberty.png differ
diff --git a/img/emoji/steam_locomotive.png b/img/emoji/steam_locomotive.png
new file mode 100644
index 0000000..a9c64e4
Binary files /dev/null and b/img/emoji/steam_locomotive.png differ
diff --git a/img/emoji/stew.png b/img/emoji/stew.png
new file mode 100644
index 0000000..f61d29e
Binary files /dev/null and b/img/emoji/stew.png differ
diff --git a/img/emoji/straight_ruler.png b/img/emoji/straight_ruler.png
new file mode 100644
index 0000000..bbfc88a
Binary files /dev/null and b/img/emoji/straight_ruler.png differ
diff --git a/img/emoji/strawberry.png b/img/emoji/strawberry.png
new file mode 100644
index 0000000..0cef252
Binary files /dev/null and b/img/emoji/strawberry.png differ
diff --git a/img/emoji/stuck_out_tongue.png b/img/emoji/stuck_out_tongue.png
new file mode 100644
index 0000000..17c8987
Binary files /dev/null and b/img/emoji/stuck_out_tongue.png differ
diff --git a/img/emoji/stuck_out_tongue_closed_eyes.png b/img/emoji/stuck_out_tongue_closed_eyes.png
new file mode 100644
index 0000000..a4fce08
Binary files /dev/null and b/img/emoji/stuck_out_tongue_closed_eyes.png differ
diff --git a/img/emoji/stuck_out_tongue_winking_eye.png b/img/emoji/stuck_out_tongue_winking_eye.png
new file mode 100644
index 0000000..ea9aeb9
Binary files /dev/null and b/img/emoji/stuck_out_tongue_winking_eye.png differ
diff --git a/img/emoji/sun_with_face.png b/img/emoji/sun_with_face.png
new file mode 100644
index 0000000..ee27663
Binary files /dev/null and b/img/emoji/sun_with_face.png differ
diff --git a/img/emoji/sunflower.png b/img/emoji/sunflower.png
new file mode 100644
index 0000000..d9bad19
Binary files /dev/null and b/img/emoji/sunflower.png differ
diff --git a/img/emoji/sunglasses.png b/img/emoji/sunglasses.png
new file mode 100644
index 0000000..b75aa44
Binary files /dev/null and b/img/emoji/sunglasses.png differ
diff --git a/img/emoji/sunny.png b/img/emoji/sunny.png
new file mode 100644
index 0000000..10d95e4
Binary files /dev/null and b/img/emoji/sunny.png differ
diff --git a/img/emoji/sunrise.png b/img/emoji/sunrise.png
new file mode 100644
index 0000000..5841e3f
Binary files /dev/null and b/img/emoji/sunrise.png differ
diff --git a/img/emoji/sunrise_over_mountains.png b/img/emoji/sunrise_over_mountains.png
new file mode 100644
index 0000000..c31c05e
Binary files /dev/null and b/img/emoji/sunrise_over_mountains.png differ
diff --git a/img/emoji/surfer.png b/img/emoji/surfer.png
new file mode 100644
index 0000000..f9ef0b8
Binary files /dev/null and b/img/emoji/surfer.png differ
diff --git a/img/emoji/sushi.png b/img/emoji/sushi.png
new file mode 100644
index 0000000..be8416e
Binary files /dev/null and b/img/emoji/sushi.png differ
diff --git a/img/emoji/suspect.png b/img/emoji/suspect.png
new file mode 100644
index 0000000..58e8921
Binary files /dev/null and b/img/emoji/suspect.png differ
diff --git a/img/emoji/suspension_railway.png b/img/emoji/suspension_railway.png
new file mode 100644
index 0000000..3461136
Binary files /dev/null and b/img/emoji/suspension_railway.png differ
diff --git a/img/emoji/sweat.png b/img/emoji/sweat.png
new file mode 100644
index 0000000..f277617
Binary files /dev/null and b/img/emoji/sweat.png differ
diff --git a/img/emoji/sweat_drops.png b/img/emoji/sweat_drops.png
new file mode 100644
index 0000000..a83b3e9
Binary files /dev/null and b/img/emoji/sweat_drops.png differ
diff --git a/img/emoji/sweat_smile.png b/img/emoji/sweat_smile.png
new file mode 100644
index 0000000..0854262
Binary files /dev/null and b/img/emoji/sweat_smile.png differ
diff --git a/img/emoji/sweet_potato.png b/img/emoji/sweet_potato.png
new file mode 100644
index 0000000..033d38b
Binary files /dev/null and b/img/emoji/sweet_potato.png differ
diff --git a/img/emoji/swimmer.png b/img/emoji/swimmer.png
new file mode 100644
index 0000000..be4338f
Binary files /dev/null and b/img/emoji/swimmer.png differ
diff --git a/img/emoji/symbols.png b/img/emoji/symbols.png
new file mode 100644
index 0000000..16bc1da
Binary files /dev/null and b/img/emoji/symbols.png differ
diff --git a/img/emoji/syringe.png b/img/emoji/syringe.png
new file mode 100644
index 0000000..7314255
Binary files /dev/null and b/img/emoji/syringe.png differ
diff --git a/img/emoji/tada.png b/img/emoji/tada.png
new file mode 100644
index 0000000..511d18d
Binary files /dev/null and b/img/emoji/tada.png differ
diff --git a/img/emoji/tanabata_tree.png b/img/emoji/tanabata_tree.png
new file mode 100644
index 0000000..0307791
Binary files /dev/null and b/img/emoji/tanabata_tree.png differ
diff --git a/img/emoji/tangerine.png b/img/emoji/tangerine.png
new file mode 100644
index 0000000..2a81eb2
Binary files /dev/null and b/img/emoji/tangerine.png differ
diff --git a/img/emoji/taurus.png b/img/emoji/taurus.png
new file mode 100644
index 0000000..4fa0da3
Binary files /dev/null and b/img/emoji/taurus.png differ
diff --git a/img/emoji/taxi.png b/img/emoji/taxi.png
new file mode 100644
index 0000000..a4df1aa
Binary files /dev/null and b/img/emoji/taxi.png differ
diff --git a/img/emoji/tea.png b/img/emoji/tea.png
new file mode 100644
index 0000000..ad6300c
Binary files /dev/null and b/img/emoji/tea.png differ
diff --git a/img/emoji/telephone.png b/img/emoji/telephone.png
new file mode 100644
index 0000000..349863e
Binary files /dev/null and b/img/emoji/telephone.png differ
diff --git a/img/emoji/telephone_receiver.png b/img/emoji/telephone_receiver.png
new file mode 100644
index 0000000..81c2e14
Binary files /dev/null and b/img/emoji/telephone_receiver.png differ
diff --git a/img/emoji/telescope.png b/img/emoji/telescope.png
new file mode 100644
index 0000000..fad8a8d
Binary files /dev/null and b/img/emoji/telescope.png differ
diff --git a/img/emoji/tennis.png b/img/emoji/tennis.png
new file mode 100644
index 0000000..b394216
Binary files /dev/null and b/img/emoji/tennis.png differ
diff --git a/img/emoji/tent.png b/img/emoji/tent.png
new file mode 100644
index 0000000..741830e
Binary files /dev/null and b/img/emoji/tent.png differ
diff --git a/img/emoji/thought_balloon.png b/img/emoji/thought_balloon.png
new file mode 100644
index 0000000..81dc60b
Binary files /dev/null and b/img/emoji/thought_balloon.png differ
diff --git a/img/emoji/three.png b/img/emoji/three.png
new file mode 100644
index 0000000..55644c9
Binary files /dev/null and b/img/emoji/three.png differ
diff --git a/img/emoji/thumbsdown.png b/img/emoji/thumbsdown.png
new file mode 100644
index 0000000..74a5005
Binary files /dev/null and b/img/emoji/thumbsdown.png differ
diff --git a/img/emoji/thumbsup.png b/img/emoji/thumbsup.png
new file mode 100644
index 0000000..63a12bd
Binary files /dev/null and b/img/emoji/thumbsup.png differ
diff --git a/img/emoji/ticket.png b/img/emoji/ticket.png
new file mode 100644
index 0000000..256c27c
Binary files /dev/null and b/img/emoji/ticket.png differ
diff --git a/img/emoji/tiger.png b/img/emoji/tiger.png
new file mode 100644
index 0000000..d6cc84a
Binary files /dev/null and b/img/emoji/tiger.png differ
diff --git a/img/emoji/tiger2.png b/img/emoji/tiger2.png
new file mode 100644
index 0000000..b0c7d8d
Binary files /dev/null and b/img/emoji/tiger2.png differ
diff --git a/img/emoji/tired_face.png b/img/emoji/tired_face.png
new file mode 100644
index 0000000..703bd57
Binary files /dev/null and b/img/emoji/tired_face.png differ
diff --git a/img/emoji/tm.png b/img/emoji/tm.png
new file mode 100644
index 0000000..03cf197
Binary files /dev/null and b/img/emoji/tm.png differ
diff --git a/img/emoji/toilet.png b/img/emoji/toilet.png
new file mode 100644
index 0000000..f438ed3
Binary files /dev/null and b/img/emoji/toilet.png differ
diff --git a/img/emoji/tokyo_tower.png b/img/emoji/tokyo_tower.png
new file mode 100644
index 0000000..f9e1124
Binary files /dev/null and b/img/emoji/tokyo_tower.png differ
diff --git a/img/emoji/tomato.png b/img/emoji/tomato.png
new file mode 100644
index 0000000..1a5a727
Binary files /dev/null and b/img/emoji/tomato.png differ
diff --git a/img/emoji/tongue.png b/img/emoji/tongue.png
new file mode 100644
index 0000000..eb9a158
Binary files /dev/null and b/img/emoji/tongue.png differ
diff --git a/img/emoji/top.png b/img/emoji/top.png
new file mode 100644
index 0000000..76ef276
Binary files /dev/null and b/img/emoji/top.png differ
diff --git a/img/emoji/tophat.png b/img/emoji/tophat.png
new file mode 100644
index 0000000..91e0b2f
Binary files /dev/null and b/img/emoji/tophat.png differ
diff --git a/img/emoji/tractor.png b/img/emoji/tractor.png
new file mode 100644
index 0000000..48927c2
Binary files /dev/null and b/img/emoji/tractor.png differ
diff --git a/img/emoji/traffic_light.png b/img/emoji/traffic_light.png
new file mode 100644
index 0000000..48cb518
Binary files /dev/null and b/img/emoji/traffic_light.png differ
diff --git a/img/emoji/train.png b/img/emoji/train.png
new file mode 100644
index 0000000..2236115
Binary files /dev/null and b/img/emoji/train.png differ
diff --git a/img/emoji/train2.png b/img/emoji/train2.png
new file mode 100644
index 0000000..9c0d3ab
Binary files /dev/null and b/img/emoji/train2.png differ
diff --git a/img/emoji/tram.png b/img/emoji/tram.png
new file mode 100644
index 0000000..5eb29fb
Binary files /dev/null and b/img/emoji/tram.png differ
diff --git a/img/emoji/triangular_flag_on_post.png b/img/emoji/triangular_flag_on_post.png
new file mode 100644
index 0000000..6f74b12
Binary files /dev/null and b/img/emoji/triangular_flag_on_post.png differ
diff --git a/img/emoji/triangular_ruler.png b/img/emoji/triangular_ruler.png
new file mode 100644
index 0000000..79ba4ca
Binary files /dev/null and b/img/emoji/triangular_ruler.png differ
diff --git a/img/emoji/trident.png b/img/emoji/trident.png
new file mode 100644
index 0000000..125d81b
Binary files /dev/null and b/img/emoji/trident.png differ
diff --git a/img/emoji/triumph.png b/img/emoji/triumph.png
new file mode 100644
index 0000000..bf8165c
Binary files /dev/null and b/img/emoji/triumph.png differ
diff --git a/img/emoji/trolleybus.png b/img/emoji/trolleybus.png
new file mode 100644
index 0000000..5a56f14
Binary files /dev/null and b/img/emoji/trolleybus.png differ
diff --git a/img/emoji/trollface.png b/img/emoji/trollface.png
new file mode 100644
index 0000000..eb222e2
Binary files /dev/null and b/img/emoji/trollface.png differ
diff --git a/img/emoji/trophy.png b/img/emoji/trophy.png
new file mode 100644
index 0000000..b97f258
Binary files /dev/null and b/img/emoji/trophy.png differ
diff --git a/img/emoji/tropical_drink.png b/img/emoji/tropical_drink.png
new file mode 100644
index 0000000..55ca9ee
Binary files /dev/null and b/img/emoji/tropical_drink.png differ
diff --git a/img/emoji/tropical_fish.png b/img/emoji/tropical_fish.png
new file mode 100644
index 0000000..b47b7c4
Binary files /dev/null and b/img/emoji/tropical_fish.png differ
diff --git a/img/emoji/truck.png b/img/emoji/truck.png
new file mode 100644
index 0000000..de6cff0
Binary files /dev/null and b/img/emoji/truck.png differ
diff --git a/img/emoji/trumpet.png b/img/emoji/trumpet.png
new file mode 100644
index 0000000..66ef737
Binary files /dev/null and b/img/emoji/trumpet.png differ
diff --git a/img/emoji/tshirt.png b/img/emoji/tshirt.png
new file mode 100644
index 0000000..ab5504b
Binary files /dev/null and b/img/emoji/tshirt.png differ
diff --git a/img/emoji/tulip.png b/img/emoji/tulip.png
new file mode 100644
index 0000000..75daf7d
Binary files /dev/null and b/img/emoji/tulip.png differ
diff --git a/img/emoji/turtle.png b/img/emoji/turtle.png
new file mode 100644
index 0000000..f0f8f7d
Binary files /dev/null and b/img/emoji/turtle.png differ
diff --git a/img/emoji/tv.png b/img/emoji/tv.png
new file mode 100644
index 0000000..415d3f7
Binary files /dev/null and b/img/emoji/tv.png differ
diff --git a/img/emoji/twisted_rightwards_arrows.png b/img/emoji/twisted_rightwards_arrows.png
new file mode 100644
index 0000000..25cde18
Binary files /dev/null and b/img/emoji/twisted_rightwards_arrows.png differ
diff --git a/img/emoji/two.png b/img/emoji/two.png
new file mode 100644
index 0000000..c191f8a
Binary files /dev/null and b/img/emoji/two.png differ
diff --git a/img/emoji/two_hearts.png b/img/emoji/two_hearts.png
new file mode 100644
index 0000000..7afaefa
Binary files /dev/null and b/img/emoji/two_hearts.png differ
diff --git a/img/emoji/two_men_holding_hands.png b/img/emoji/two_men_holding_hands.png
new file mode 100644
index 0000000..96dab43
Binary files /dev/null and b/img/emoji/two_men_holding_hands.png differ
diff --git a/img/emoji/two_women_holding_hands.png b/img/emoji/two_women_holding_hands.png
new file mode 100644
index 0000000..f2bfc8c
Binary files /dev/null and b/img/emoji/two_women_holding_hands.png differ
diff --git a/img/emoji/u5272.png b/img/emoji/u5272.png
new file mode 100644
index 0000000..2148253
Binary files /dev/null and b/img/emoji/u5272.png differ
diff --git a/img/emoji/u5408.png b/img/emoji/u5408.png
new file mode 100644
index 0000000..03ab0d8
Binary files /dev/null and b/img/emoji/u5408.png differ
diff --git a/img/emoji/u55b6.png b/img/emoji/u55b6.png
new file mode 100644
index 0000000..6e47ed4
Binary files /dev/null and b/img/emoji/u55b6.png differ
diff --git a/img/emoji/u6307.png b/img/emoji/u6307.png
new file mode 100644
index 0000000..e82e199
Binary files /dev/null and b/img/emoji/u6307.png differ
diff --git a/img/emoji/u6708.png b/img/emoji/u6708.png
new file mode 100644
index 0000000..146f08f
Binary files /dev/null and b/img/emoji/u6708.png differ
diff --git a/img/emoji/u6709.png b/img/emoji/u6709.png
new file mode 100644
index 0000000..4793e9e
Binary files /dev/null and b/img/emoji/u6709.png differ
diff --git a/img/emoji/u6e80.png b/img/emoji/u6e80.png
new file mode 100644
index 0000000..a5ca061
Binary files /dev/null and b/img/emoji/u6e80.png differ
diff --git a/img/emoji/u7121.png b/img/emoji/u7121.png
new file mode 100644
index 0000000..c107e26
Binary files /dev/null and b/img/emoji/u7121.png differ
diff --git a/img/emoji/u7533.png b/img/emoji/u7533.png
new file mode 100644
index 0000000..fc4a990
Binary files /dev/null and b/img/emoji/u7533.png differ
diff --git a/img/emoji/u7981.png b/img/emoji/u7981.png
new file mode 100644
index 0000000..7d35135
Binary files /dev/null and b/img/emoji/u7981.png differ
diff --git a/img/emoji/u7a7a.png b/img/emoji/u7a7a.png
new file mode 100644
index 0000000..c05f5cf
Binary files /dev/null and b/img/emoji/u7a7a.png differ
diff --git a/img/emoji/uk.png b/img/emoji/uk.png
new file mode 100644
index 0000000..71ad973
Binary files /dev/null and b/img/emoji/uk.png differ
diff --git a/img/emoji/umbrella.png b/img/emoji/umbrella.png
new file mode 100644
index 0000000..252738b
Binary files /dev/null and b/img/emoji/umbrella.png differ
diff --git a/img/emoji/unamused.png b/img/emoji/unamused.png
new file mode 100644
index 0000000..769e8d5
Binary files /dev/null and b/img/emoji/unamused.png differ
diff --git a/img/emoji/underage.png b/img/emoji/underage.png
new file mode 100644
index 0000000..a789b3c
Binary files /dev/null and b/img/emoji/underage.png differ
diff --git a/img/emoji/unlock.png b/img/emoji/unlock.png
new file mode 100644
index 0000000..22b429c
Binary files /dev/null and b/img/emoji/unlock.png differ
diff --git a/img/emoji/up.png b/img/emoji/up.png
new file mode 100644
index 0000000..829219a
Binary files /dev/null and b/img/emoji/up.png differ
diff --git a/img/emoji/us.png b/img/emoji/us.png
new file mode 100644
index 0000000..877862b
Binary files /dev/null and b/img/emoji/us.png differ
diff --git a/img/emoji/v.png b/img/emoji/v.png
new file mode 100644
index 0000000..f61267c
Binary files /dev/null and b/img/emoji/v.png differ
diff --git a/img/emoji/vertical_traffic_light.png b/img/emoji/vertical_traffic_light.png
new file mode 100644
index 0000000..a4352cb
Binary files /dev/null and b/img/emoji/vertical_traffic_light.png differ
diff --git a/img/emoji/vhs.png b/img/emoji/vhs.png
new file mode 100644
index 0000000..129109c
Binary files /dev/null and b/img/emoji/vhs.png differ
diff --git a/img/emoji/vibration_mode.png b/img/emoji/vibration_mode.png
new file mode 100644
index 0000000..ce4ce31
Binary files /dev/null and b/img/emoji/vibration_mode.png differ
diff --git a/img/emoji/video_camera.png b/img/emoji/video_camera.png
new file mode 100644
index 0000000..0990228
Binary files /dev/null and b/img/emoji/video_camera.png differ
diff --git a/img/emoji/video_game.png b/img/emoji/video_game.png
new file mode 100644
index 0000000..59d45ba
Binary files /dev/null and b/img/emoji/video_game.png differ
diff --git a/img/emoji/violin.png b/img/emoji/violin.png
new file mode 100644
index 0000000..b45171a
Binary files /dev/null and b/img/emoji/violin.png differ
diff --git a/img/emoji/virgo.png b/img/emoji/virgo.png
new file mode 100644
index 0000000..59d91dd
Binary files /dev/null and b/img/emoji/virgo.png differ
diff --git a/img/emoji/volcano.png b/img/emoji/volcano.png
new file mode 100644
index 0000000..9b43453
Binary files /dev/null and b/img/emoji/volcano.png differ
diff --git a/img/emoji/vs.png b/img/emoji/vs.png
new file mode 100644
index 0000000..8636388
Binary files /dev/null and b/img/emoji/vs.png differ
diff --git a/img/emoji/walking.png b/img/emoji/walking.png
new file mode 100644
index 0000000..7ee68ac
Binary files /dev/null and b/img/emoji/walking.png differ
diff --git a/img/emoji/waning_crescent_moon.png b/img/emoji/waning_crescent_moon.png
new file mode 100644
index 0000000..9f423b4
Binary files /dev/null and b/img/emoji/waning_crescent_moon.png differ
diff --git a/img/emoji/waning_gibbous_moon.png b/img/emoji/waning_gibbous_moon.png
new file mode 100644
index 0000000..f6af4c9
Binary files /dev/null and b/img/emoji/waning_gibbous_moon.png differ
diff --git a/img/emoji/warning.png b/img/emoji/warning.png
new file mode 100644
index 0000000..5907af2
Binary files /dev/null and b/img/emoji/warning.png differ
diff --git a/img/emoji/watch.png b/img/emoji/watch.png
new file mode 100644
index 0000000..d503bb8
Binary files /dev/null and b/img/emoji/watch.png differ
diff --git a/img/emoji/water_buffalo.png b/img/emoji/water_buffalo.png
new file mode 100644
index 0000000..3bcde3e
Binary files /dev/null and b/img/emoji/water_buffalo.png differ
diff --git a/img/emoji/watermelon.png b/img/emoji/watermelon.png
new file mode 100644
index 0000000..fc212be
Binary files /dev/null and b/img/emoji/watermelon.png differ
diff --git a/img/emoji/wave.png b/img/emoji/wave.png
new file mode 100644
index 0000000..e78402e
Binary files /dev/null and b/img/emoji/wave.png differ
diff --git a/img/emoji/wavy_dash.png b/img/emoji/wavy_dash.png
new file mode 100644
index 0000000..a3738e9
Binary files /dev/null and b/img/emoji/wavy_dash.png differ
diff --git a/img/emoji/waxing_crescent_moon.png b/img/emoji/waxing_crescent_moon.png
new file mode 100644
index 0000000..c8f13dd
Binary files /dev/null and b/img/emoji/waxing_crescent_moon.png differ
diff --git a/img/emoji/waxing_gibbous_moon.png b/img/emoji/waxing_gibbous_moon.png
new file mode 100644
index 0000000..8cdfdf1
Binary files /dev/null and b/img/emoji/waxing_gibbous_moon.png differ
diff --git a/img/emoji/wc.png b/img/emoji/wc.png
new file mode 100644
index 0000000..a716918
Binary files /dev/null and b/img/emoji/wc.png differ
diff --git a/img/emoji/weary.png b/img/emoji/weary.png
new file mode 100644
index 0000000..8eae074
Binary files /dev/null and b/img/emoji/weary.png differ
diff --git a/img/emoji/wedding.png b/img/emoji/wedding.png
new file mode 100644
index 0000000..ead19d5
Binary files /dev/null and b/img/emoji/wedding.png differ
diff --git a/img/emoji/whale.png b/img/emoji/whale.png
new file mode 100644
index 0000000..00c425a
Binary files /dev/null and b/img/emoji/whale.png differ
diff --git a/img/emoji/whale2.png b/img/emoji/whale2.png
new file mode 100644
index 0000000..9f6261e
Binary files /dev/null and b/img/emoji/whale2.png differ
diff --git a/img/emoji/wheelchair.png b/img/emoji/wheelchair.png
new file mode 100644
index 0000000..eddcdd7
Binary files /dev/null and b/img/emoji/wheelchair.png differ
diff --git a/img/emoji/white_check_mark.png b/img/emoji/white_check_mark.png
new file mode 100644
index 0000000..61dc058
Binary files /dev/null and b/img/emoji/white_check_mark.png differ
diff --git a/img/emoji/white_circle.png b/img/emoji/white_circle.png
new file mode 100644
index 0000000..e34997c
Binary files /dev/null and b/img/emoji/white_circle.png differ
diff --git a/img/emoji/white_flower.png b/img/emoji/white_flower.png
new file mode 100644
index 0000000..c0929d0
Binary files /dev/null and b/img/emoji/white_flower.png differ
diff --git a/img/emoji/white_large_square.png b/img/emoji/white_large_square.png
new file mode 100644
index 0000000..919cc24
Binary files /dev/null and b/img/emoji/white_large_square.png differ
diff --git a/img/emoji/white_medium_small_square.png b/img/emoji/white_medium_small_square.png
new file mode 100644
index 0000000..cc46ccf
Binary files /dev/null and b/img/emoji/white_medium_small_square.png differ
diff --git a/img/emoji/white_medium_square.png b/img/emoji/white_medium_square.png
new file mode 100644
index 0000000..e6086fb
Binary files /dev/null and b/img/emoji/white_medium_square.png differ
diff --git a/img/emoji/white_small_square.png b/img/emoji/white_small_square.png
new file mode 100644
index 0000000..266a6a7
Binary files /dev/null and b/img/emoji/white_small_square.png differ
diff --git a/img/emoji/white_square_button.png b/img/emoji/white_square_button.png
new file mode 100644
index 0000000..6ca09af
Binary files /dev/null and b/img/emoji/white_square_button.png differ
diff --git a/img/emoji/wind_chime.png b/img/emoji/wind_chime.png
new file mode 100644
index 0000000..c54745f
Binary files /dev/null and b/img/emoji/wind_chime.png differ
diff --git a/img/emoji/wine_glass.png b/img/emoji/wine_glass.png
new file mode 100644
index 0000000..7ecc896
Binary files /dev/null and b/img/emoji/wine_glass.png differ
diff --git a/img/emoji/wink.png b/img/emoji/wink.png
new file mode 100644
index 0000000..6b946d8
Binary files /dev/null and b/img/emoji/wink.png differ
diff --git a/img/emoji/wolf.png b/img/emoji/wolf.png
new file mode 100644
index 0000000..c60c968
Binary files /dev/null and b/img/emoji/wolf.png differ
diff --git a/img/emoji/woman.png b/img/emoji/woman.png
new file mode 100644
index 0000000..6bf0d2b
Binary files /dev/null and b/img/emoji/woman.png differ
diff --git a/img/emoji/womans_clothes.png b/img/emoji/womans_clothes.png
new file mode 100644
index 0000000..aa297c7
Binary files /dev/null and b/img/emoji/womans_clothes.png differ
diff --git a/img/emoji/womans_hat.png b/img/emoji/womans_hat.png
new file mode 100644
index 0000000..4cb2e6a
Binary files /dev/null and b/img/emoji/womans_hat.png differ
diff --git a/img/emoji/womens.png b/img/emoji/womens.png
new file mode 100644
index 0000000..9c1deaf
Binary files /dev/null and b/img/emoji/womens.png differ
diff --git a/img/emoji/worried.png b/img/emoji/worried.png
new file mode 100644
index 0000000..276291a
Binary files /dev/null and b/img/emoji/worried.png differ
diff --git a/img/emoji/wrench.png b/img/emoji/wrench.png
new file mode 100644
index 0000000..9e131a9
Binary files /dev/null and b/img/emoji/wrench.png differ
diff --git a/img/emoji/x.png b/img/emoji/x.png
new file mode 100644
index 0000000..0adf9f0
Binary files /dev/null and b/img/emoji/x.png differ
diff --git a/img/emoji/yellow_heart.png b/img/emoji/yellow_heart.png
new file mode 100644
index 0000000..cb98c5b
Binary files /dev/null and b/img/emoji/yellow_heart.png differ
diff --git a/img/emoji/yen.png b/img/emoji/yen.png
new file mode 100644
index 0000000..b2259d6
Binary files /dev/null and b/img/emoji/yen.png differ
diff --git a/img/emoji/yum.png b/img/emoji/yum.png
new file mode 100644
index 0000000..5963398
Binary files /dev/null and b/img/emoji/yum.png differ
diff --git a/img/emoji/zap.png b/img/emoji/zap.png
new file mode 100644
index 0000000..260c531
Binary files /dev/null and b/img/emoji/zap.png differ
diff --git a/img/emoji/zero.png b/img/emoji/zero.png
new file mode 100644
index 0000000..9551453
Binary files /dev/null and b/img/emoji/zero.png differ
diff --git a/img/emoji/zzz.png b/img/emoji/zzz.png
new file mode 100644
index 0000000..93739dc
Binary files /dev/null and b/img/emoji/zzz.png differ
diff --git a/img/ext-link.png b/img/ext-link.png
index 13d77d5..244f510 100644
Binary files a/img/ext-link.png and b/img/ext-link.png differ
diff --git a/img/following.png b/img/following.png
index 9e3441a..d5f3904 100644
Binary files a/img/following.png and b/img/following.png differ
diff --git a/img/grayed_avatar_placeholder_24.png b/img/grayed_avatar_placeholder_24.png
index f32036f..f12a6e7 100644
Binary files a/img/grayed_avatar_placeholder_24.png and b/img/grayed_avatar_placeholder_24.png differ
diff --git a/img/messages.png b/img/messages.png
index aa58c99..d0eadcc 100644
Binary files a/img/messages.png and b/img/messages.png differ
diff --git a/img/pen.png b/img/pen.png
index 0a68636..1383c71 100644
Binary files a/img/pen.png and b/img/pen.png differ
diff --git a/img/tornado_avatar.png b/img/tornado_avatar.png
index cefafd3..e50a5aa 100644
Binary files a/img/tornado_avatar.png and b/img/tornado_avatar.png differ
diff --git a/img/twister_mini.png b/img/twister_mini.png
index 8a9b0bb..f243292 100644
Binary files a/img/twister_mini.png and b/img/twister_mini.png differ
diff --git a/js/calm.js b/js/calm.js
index fef9eb4..b1050b2 100644
--- a/js/calm.js
+++ b/js/calm.js
@@ -121,6 +121,62 @@ function keysSend() {
})
}
+
+function autocompleteAndEmoji() {
+ var storFollArr = JSON.parse(localStorage[localStorage.defaultScreenName]), suggests = [];
+
+ for(var i = 0; i < storFollArr.followingUsers.length; i++){
+ if(storFollArr.followingUsers[i] == localStorage.defaultScreenName) continue;
+ suggests.push(storFollArr.followingUsers[i]);
+ }
+ suggests.reverse();
+ $('textarea').textcomplete([
+ { // html
+ mentions: suggests,
+ match: /\B@(\w*)$/,
+ search: function (term, callback) {
+ callback($.map(this.mentions, function (mention) {
+ return mention.indexOf(term) === 0 ? mention : null;
+ }));
+ },
+ index: 1,
+ replace: function (mention) {
+ return '@' + mention + ' ';
+ }
+ }
+])
+ $('textarea').textcomplete([
+ { // emoji strategy
+ match: /\B:([\-+\w]*)$/,
+ search: function (term, callback) {
+ callback($.map(emojies, function (emoji) {
+ return emoji.indexOf(term) === 0 ? emoji : null;
+ }));
+ },
+ template: function (value) {
+ return '' + value;
+ },
+ replace: function (value) {
+ return ':' + value + ': ';
+ },
+ index: 1,
+ maxCount: 5
+ }
+]);
+}
+
+
+function replaceEmoji() {
+ var exp = /\B:[A-Za-z0-9_+-]+:\B/gi;
+ $('.post-text').each(function(){
+ var string = $(this).text();
+ $(this).html(string.replace(exp, function(match){
+ var clearMatch = match.replace(/:/gi,'');
+ if(emojies.indexOf(clearMatch) < 0) return match;
+ return ''
+ }));
+ })
+}
function InitOptions () {
soundNotifOptions();
volumeControl();
@@ -128,4 +184,6 @@ function InitOptions () {
}
function homeIntInit () {
modalDMIntr ();
+ setTimeout(autocompleteAndEmoji, 500);
+ setTimeout(replaceEmoji, 500)
}
\ No newline at end of file
diff --git a/js/emoji.js b/js/emoji.js
new file mode 100644
index 0000000..7cefe25
--- /dev/null
+++ b/js/emoji.js
@@ -0,0 +1,168 @@
+var emojies = [
+ '+1', '-1', '100', '1234', '8ball', 'a', 'ab', 'abc', 'abcd', 'accept',
+ 'aerial_tramway', 'airplane', 'alarm_clock', 'alien', 'ambulance', 'anchor',
+ 'angel', 'anger', 'angry', 'anguished', 'ant', 'apple', 'aquarius', 'aries',
+ 'arrow_backward', 'arrow_double_down', 'arrow_double_up', 'arrow_down',
+ 'arrow_down_small', 'arrow_forward', 'arrow_heading_down',
+ 'arrow_heading_up', 'arrow_left', 'arrow_lower_left', 'arrow_lower_right',
+ 'arrow_right', 'arrow_right_hook', 'arrow_up', 'arrow_up_down',
+ 'arrow_up_small', 'arrow_upper_left', 'arrow_upper_right',
+ 'arrows_clockwise', 'arrows_counterclockwise', 'art', 'articulated_lorry',
+ 'astonished', 'athletic_shoe', 'atm', 'b', 'baby', 'baby_bottle',
+ 'baby_chick', 'baby_symbol', 'back', 'baggage_claim', 'balloon',
+ 'ballot_box_with_check', 'bamboo', 'banana', 'bangbang', 'bank', 'bar_chart',
+ 'barber', 'baseball', 'basketball', 'bath', 'bathtub', 'battery', 'bear',
+ 'bee', 'beer', 'beers', 'beetle', 'beginner', 'bell', 'bento', 'bicyclist',
+ 'bike', 'bikini', 'bird', 'birthday', 'black_circle', 'black_joker',
+ 'black_large_square', 'black_medium_small_square', 'black_medium_square',
+ 'black_nib', 'black_small_square', 'black_square_button', 'blossom',
+ 'blowfish', 'blue_book', 'blue_car', 'blue_heart', 'blush', 'boar', 'boat',
+ 'bomb', 'book', 'bookmark', 'bookmark_tabs', 'books', 'boom', 'boot',
+ 'bouquet', 'bow', 'bowling', 'bowtie', 'boy', 'bread', 'bride_with_veil',
+ 'bridge_at_night', 'briefcase', 'broken_heart', 'bug', 'bulb',
+ 'bullettrain_front', 'bullettrain_side', 'bus', 'busstop',
+ 'bust_in_silhouette', 'busts_in_silhouette', 'cactus', 'cake', 'calendar',
+ 'calling', 'camel', 'camera', 'cancer', 'candy', 'capital_abcd', 'capricorn',
+ 'car', 'card_index', 'carousel_horse', 'cat', 'cat2', 'cd', 'chart',
+ 'chart_with_downwards_trend', 'chart_with_upwards_trend', 'checkered_flag',
+ 'cherries', 'cherry_blossom', 'chestnut', 'chicken', 'children_crossing',
+ 'chocolate_bar', 'christmas_tree', 'church', 'cinema', 'circus_tent',
+ 'city_sunrise', 'city_sunset', 'cl', 'clap', 'clapper', 'clipboard',
+ 'clock1', 'clock10', 'clock1030', 'clock11', 'clock1130', 'clock12',
+ 'clock1230', 'clock130', 'clock2', 'clock230', 'clock3', 'clock330',
+ 'clock4', 'clock430', 'clock5', 'clock530', 'clock6', 'clock630', 'clock7',
+ 'clock730', 'clock8', 'clock830', 'clock9', 'clock930', 'closed_book',
+ 'closed_lock_with_key', 'closed_umbrella', 'cloud', 'clubs', 'cn',
+ 'cocktail', 'coffee', 'cold_sweat', 'collision', 'computer', 'confetti_ball',
+ 'confounded', 'confused', 'congratulations', 'construction',
+ 'construction_worker', 'convenience_store', 'cookie', 'cool', 'cop',
+ 'copyright', 'corn', 'couple', 'couple_with_heart', 'couplekiss', 'cow',
+ 'cow2', 'credit_card', 'crescent_moon', 'crocodile', 'crossed_flags',
+ 'crown', 'cry', 'crying_cat_face', 'crystal_ball', 'cupid', 'curly_loop',
+ 'currency_exchange', 'curry', 'custard', 'customs', 'cyclone', 'dancer',
+ 'dancers', 'dango', 'dart', 'dash', 'date', 'de', 'deciduous_tree',
+ 'department_store', 'diamond_shape_with_a_dot_inside', 'diamonds',
+ 'disappointed', 'disappointed_relieved', 'dizzy', 'dizzy_face',
+ 'do_not_litter', 'dog', 'dog2', 'dollar', 'dolls', 'dolphin', 'door',
+ 'doughnut', 'dragon', 'dragon_face', 'dress', 'dromedary_camel', 'droplet',
+ 'dvd', 'e-mail', 'ear', 'ear_of_rice', 'earth_africa', 'earth_americas',
+ 'earth_asia', 'egg', 'eggplant', 'eight', 'eight_pointed_black_star',
+ 'eight_spoked_asterisk', 'electric_plug', 'elephant', 'email', 'end',
+ 'envelope', 'envelope_with_arrow', 'es', 'euro', 'european_castle',
+ 'european_post_office', 'evergreen_tree', 'exclamation', 'expressionless',
+ 'eyeglasses', 'eyes', 'facepunch', 'factory', 'fallen_leaf', 'family',
+ 'fast_forward', 'fax', 'fearful', 'feelsgood', 'feet', 'ferris_wheel',
+ 'file_folder', 'finnadie', 'fire', 'fire_engine', 'fireworks',
+ 'first_quarter_moon', 'first_quarter_moon_with_face', 'fish', 'fish_cake',
+ 'fishing_pole_and_fish', 'fist', 'five', 'flags', 'flashlight',
+ 'floppy_disk', 'flower_playing_cards', 'flushed', 'foggy', 'football',
+ 'footprints', 'fork_and_knife', 'fountain', 'four', 'four_leaf_clover', 'fr',
+ 'free', 'fried_shrimp', 'fries', 'frog', 'frowning', 'fu', 'fuelpump',
+ 'full_moon', 'full_moon_with_face', 'game_die', 'gb', 'gem', 'gemini',
+ 'ghost', 'gift', 'gift_heart', 'girl', 'globe_with_meridians', 'goat',
+ 'goberserk', 'godmode', 'golf', 'grapes', 'green_apple', 'green_book',
+ 'green_heart', 'grey_exclamation', 'grey_question', 'grimacing', 'grin',
+ 'grinning', 'guardsman', 'guitar', 'gun', 'haircut', 'hamburger', 'hammer',
+ 'hamster', 'hand', 'handbag', 'hankey', 'hash', 'hatched_chick',
+ 'hatching_chick', 'headphones', 'hear_no_evil', 'heart', 'heart_decoration',
+ 'heart_eyes', 'heart_eyes_cat', 'heartbeat', 'heartpulse', 'hearts',
+ 'heavy_check_mark', 'heavy_division_sign', 'heavy_dollar_sign',
+ 'heavy_exclamation_mark', 'heavy_minus_sign', 'heavy_multiplication_x',
+ 'heavy_plus_sign', 'helicopter', 'herb', 'hibiscus', 'high_brightness',
+ 'high_heel', 'hocho', 'honey_pot', 'honeybee', 'horse', 'horse_racing',
+ 'hospital', 'hotel', 'hotsprings', 'hourglass', 'hourglass_flowing_sand',
+ 'house', 'house_with_garden', 'hurtrealbad', 'hushed', 'ice_cream',
+ 'icecream', 'id', 'ideograph_advantage', 'imp', 'inbox_tray',
+ 'incoming_envelope', 'information_desk_person', 'information_source',
+ 'innocent', 'interrobang', 'iphone', 'it', 'izakaya_lantern',
+ 'jack_o_lantern', 'japan', 'japanese_castle', 'japanese_goblin',
+ 'japanese_ogre', 'jeans', 'joy', 'joy_cat', 'jp', 'key', 'keycap_ten',
+ 'kimono', 'kiss', 'kissing', 'kissing_cat', 'kissing_closed_eyes',
+ 'kissing_heart', 'kissing_smiling_eyes', 'koala', 'koko', 'kr', 'lantern',
+ 'large_blue_circle', 'large_blue_diamond', 'large_orange_diamond',
+ 'last_quarter_moon', 'last_quarter_moon_with_face', 'laughing', 'leaves',
+ 'ledger', 'left_luggage', 'left_right_arrow', 'leftwards_arrow_with_hook',
+ 'lemon', 'leo', 'leopard', 'libra', 'light_rail', 'link', 'lips', 'lipstick',
+ 'lock', 'lock_with_ink_pen', 'lollipop', 'loop', 'loudspeaker', 'love_hotel',
+ 'love_letter', 'low_brightness', 'm', 'mag', 'mag_right', 'mahjong',
+ 'mailbox', 'mailbox_closed', 'mailbox_with_mail', 'mailbox_with_no_mail',
+ 'man', 'man_with_gua_pi_mao', 'man_with_turban', 'mans_shoe', 'maple_leaf',
+ 'mask', 'massage', 'meat_on_bone', 'mega', 'melon', 'memo', 'mens', 'metal',
+ 'metro', 'microphone', 'microscope', 'milky_way', 'minibus', 'minidisc',
+ 'mobile_phone_off', 'money_with_wings', 'moneybag', 'monkey', 'monkey_face',
+ 'monorail', 'moon', 'mortar_board', 'mount_fuji', 'mountain_bicyclist',
+ 'mountain_cableway', 'mountain_railway', 'mouse', 'mouse2', 'movie_camera',
+ 'moyai', 'muscle', 'mushroom', 'musical_keyboard', 'musical_note',
+ 'musical_score', 'mute', 'nail_care', 'name_badge', 'neckbeard', 'necktie',
+ 'negative_squared_cross_mark', 'neutral_face', 'new', 'new_moon',
+ 'new_moon_with_face', 'newspaper', 'ng', 'nine', 'no_bell', 'no_bicycles',
+ 'no_entry', 'no_entry_sign', 'no_good', 'no_mobile_phones', 'no_mouth',
+ 'no_pedestrians', 'no_smoking', 'non-potable_water', 'nose', 'notebook',
+ 'notebook_with_decorative_cover', 'notes', 'nut_and_bolt', 'o', 'o2',
+ 'ocean', 'octocat', 'octopus', 'oden', 'office', 'ok', 'ok_hand', 'ok_woman',
+ 'older_man', 'older_woman', 'on', 'oncoming_automobile', 'oncoming_bus',
+ 'oncoming_police_car', 'oncoming_taxi', 'one', 'open_book',
+ 'open_file_folder', 'open_hands', 'open_mouth', 'ophiuchus', 'orange_book',
+ 'outbox_tray', 'ox', 'package', 'page_facing_up', 'page_with_curl', 'pager',
+ 'palm_tree', 'panda_face', 'paperclip', 'parking', 'part_alternation_mark',
+ 'partly_sunny', 'passport_control', 'paw_prints', 'peach', 'pear', 'pencil',
+ 'pencil2', 'penguin', 'pensive', 'performing_arts', 'persevere',
+ 'person_frowning', 'person_with_blond_hair', 'person_with_pouting_face',
+ 'phone', 'pig', 'pig2', 'pig_nose', 'pill', 'pineapple', 'pisces', 'pizza',
+ 'point_down', 'point_left', 'point_right', 'point_up', 'point_up_2',
+ 'police_car', 'poodle', 'poop', 'post_office', 'postal_horn', 'postbox',
+ 'potable_water', 'pouch', 'poultry_leg', 'pound', 'pouting_cat', 'pray',
+ 'princess', 'punch', 'purple_heart', 'purse', 'pushpin',
+ 'put_litter_in_its_place', 'question', 'rabbit', 'rabbit2', 'racehorse',
+ 'radio', 'radio_button', 'rage', 'rage1', 'rage2', 'rage3', 'rage4',
+ 'railway_car', 'rainbow', 'raised_hand', 'raised_hands', 'raising_hand',
+ 'ram', 'ramen', 'rat', 'recycle', 'red_car', 'red_circle', 'registered',
+ 'relaxed', 'relieved', 'repeat', 'repeat_one', 'restroom',
+ 'revolving_hearts', 'rewind', 'ribbon', 'rice', 'rice_ball', 'rice_cracker',
+ 'rice_scene', 'ring', 'rocket', 'roller_coaster', 'rooster', 'rose',
+ 'rotating_light', 'round_pushpin', 'rowboat', 'ru', 'rugby_football',
+ 'runner', 'running', 'running_shirt_with_sash', 'sa', 'sagittarius',
+ 'sailboat', 'sake', 'sandal', 'santa', 'satellite', 'satisfied', 'saxophone',
+ 'school', 'school_satchel', 'scissors', 'scorpius', 'scream', 'scream_cat',
+ 'scroll', 'seat', 'secret', 'see_no_evil', 'seedling', 'seven', 'shaved_ice',
+ 'sheep', 'shell', 'ship', 'shipit', 'shirt', 'shit', 'shoe', 'shower',
+ 'signal_strength', 'six', 'six_pointed_star', 'ski', 'skull', 'sleeping',
+ 'sleepy', 'slot_machine', 'small_blue_diamond', 'small_orange_diamond',
+ 'small_red_triangle', 'small_red_triangle_down', 'smile', 'smile_cat',
+ 'smiley', 'smiley_cat', 'smiling_imp', 'smirk', 'smirk_cat', 'smoking',
+ 'snail', 'snake', 'snowboarder', 'snowflake', 'snowman', 'sob', 'soccer',
+ 'soon', 'sos', 'sound', 'space_invader', 'spades', 'spaghetti', 'sparkle',
+ 'sparkler', 'sparkles', 'sparkling_heart', 'speak_no_evil', 'speaker',
+ 'speech_balloon', 'speedboat', 'squirrel', 'star', 'star2', 'stars',
+ 'station', 'statue_of_liberty', 'steam_locomotive', 'stew', 'straight_ruler',
+ 'strawberry', 'stuck_out_tongue', 'stuck_out_tongue_closed_eyes',
+ 'stuck_out_tongue_winking_eye', 'sun_with_face', 'sunflower', 'sunglasses',
+ 'sunny', 'sunrise', 'sunrise_over_mountains', 'surfer', 'sushi', 'suspect',
+ 'suspension_railway', 'sweat', 'sweat_drops', 'sweat_smile', 'sweet_potato',
+ 'swimmer', 'symbols', 'syringe', 'tada', 'tanabata_tree', 'tangerine',
+ 'taurus', 'taxi', 'tea', 'telephone', 'telephone_receiver', 'telescope',
+ 'tennis', 'tent', 'thought_balloon', 'three', 'thumbsdown', 'thumbsup',
+ 'ticket', 'tiger', 'tiger2', 'tired_face', 'tm', 'toilet', 'tokyo_tower',
+ 'tomato', 'tongue', 'top', 'tophat', 'tractor', 'traffic_light', 'train',
+ 'train2', 'tram', 'triangular_flag_on_post', 'triangular_ruler', 'trident',
+ 'triumph', 'trolleybus', 'trollface', 'trophy', 'tropical_drink',
+ 'tropical_fish', 'truck', 'trumpet', 'tshirt', 'tulip', 'turtle', 'tv',
+ 'twisted_rightwards_arrows', 'two', 'two_hearts', 'two_men_holding_hands',
+ 'two_women_holding_hands', 'u5272', 'u5408', 'u55b6', 'u6307', 'u6708',
+ 'u6709', 'u6e80', 'u7121', 'u7533', 'u7981', 'u7a7a', 'uk', 'umbrella',
+ 'unamused', 'underage', 'unlock', 'up', 'us', 'v', 'vertical_traffic_light',
+ 'vhs', 'vibration_mode', 'video_camera', 'video_game', 'violin', 'virgo',
+ 'volcano', 'vs', 'walking', 'waning_crescent_moon', 'waning_gibbous_moon',
+ 'warning', 'watch', 'water_buffalo', 'watermelon', 'wave', 'wavy_dash',
+ 'waxing_crescent_moon', 'waxing_gibbous_moon', 'wc', 'weary', 'wedding',
+ 'whale', 'whale2', 'wheelchair', 'white_check_mark', 'white_circle',
+ 'white_flower', 'white_large_square', 'white_medium_small_square',
+ 'white_medium_square', 'white_small_square', 'white_square_button',
+ 'wind_chime', 'wine_glass', 'wink', 'wolf', 'woman', 'womans_clothes',
+ 'womans_hat', 'womens', 'worried', 'wrench', 'x', 'yellow_heart', 'yen',
+ 'yum', 'zap', 'zero', 'zzz'
+], emojiesParse = [];
+
+ for(var i = 0; i
+
+
+ // Get current selection
+ var sel = $("textarea").getSelection()
+
+ // Replace current selection
+ $("input").replaceSelection("foo");
+
+ // Count characters
+ alert($("textarea").countCharacters());
+
+ // Set max length without callback function
+ $("textarea").setMaxLength(7);
+
+ // Set max length with callback function which will be called when limit is exceeded
+ $("textarea").setMaxLength(10, function() {
+ alert("hello")
+ });
+
+ // Removing limit:
+ $("textarea").setMaxLength(-1);
+
+ // Insert text at current caret position
+ $("#textarea").insertAtCaretPos("hello");
+
+ // Set caret position (1 = beginning, -1 = end)
+ $("#textArea").setCaretPos(10);
+
+ // Set Selection
+ $("#textArea").setSelection(10,15);
+
+ */
+var caretPositionAmp;
+
+jQuery.fn.extend({
+ getSelection: function() { // function for getting selection, and position of the selected text
+ var input = this.jquery ? this[0] : this;
+ var start;
+ var end;
+ var part;
+ var number = 0;
+ input.onmousedown = function() { // for IE because it loses caret position when focus changed
+ if (document.selection && typeof(input.selectionStart) != "number") {
+ document.selection.empty();
+ } else {
+ window.getSelection().removeAllRanges();
+ }
+ }
+ if (document.selection) {
+ // part for IE and Opera
+ var s = document.selection.createRange();
+ var minus = 0;
+ var position = 0;
+ var minusEnd = 0;
+ var re;
+ var rc;
+ if (input.value.match(/\n/g) != null) {
+ number = input.value.match(/\n/g).length;// number of EOL simbols
+ }
+ if (s.text) {
+ part = s.text;
+ // OPERA support
+ if (typeof(input.selectionStart) == "number") {
+ start = input.selectionStart;
+ end = input.selectionEnd;
+ // return null if the selected text not from the needed area
+ if (start == end) {
+ return { start: start, end: end, text: s.text, length: end - start };
+ }
+ } else {
+ // IE support
+ var firstRe;
+ var secondRe;
+ re = input.createTextRange();
+ rc = re.duplicate();
+ firstRe = re.text;
+ re.moveToBookmark(s.getBookmark());
+ secondRe = re.text;
+ rc.setEndPoint("EndToStart", re);
+ // return null if the selectyed text not from the needed area
+ if (firstRe == secondRe && firstRe != s.text) {
+ return this;
+ }
+ start = rc.text.length;
+ end = rc.text.length + s.text.length;
+ }
+ // remove all EOL to have the same start and end positons as in MOZILLA
+ if (number > 0) {
+ for (var i = 0; i <= number; i++) {
+ var w = input.value.indexOf("\n", position);
+ if (w != -1 && w < start) {
+ position = w + 1;
+ minus++;
+ minusEnd = minus;
+ } else if (w != -1 && w >= start && w <= end) {
+ if (w == start + 1) {
+ minus--;
+ minusEnd--;
+ position = w + 1;
+ continue;
+ }
+ position = w + 1;
+ minusEnd++;
+ } else {
+ i = number;
+ }
+ }
+ }
+ if (s.text.indexOf("\n", 0) == 1) {
+ minusEnd = minusEnd + 2;
+ }
+ start = start - minus;
+ end = end - minusEnd;
+
+ return { start: start, end: end, text: s.text, length: end - start };
+ }
+ input.focus ();
+ if (typeof(input.selectionStart) == "number") {
+ start = input.selectionStart;
+ } else {
+ s = document.selection.createRange();
+ re = input.createTextRange();
+ rc = re.duplicate();
+ re.moveToBookmark(s.getBookmark());
+ rc.setEndPoint("EndToStart", re);
+ start = rc.text.length;
+ }
+ if (number > 0) {
+ for (var i = 0; i <= number; i++) {
+ var w = input.value.indexOf("\n", position);
+ if (w != -1 && w < start) {
+ position = w + 1;
+ minus++;
+ } else {
+ i = number;
+ }
+ }
+ }
+ start = start - minus;
+ return { start: start, end: start, text: s.text, length: 0 };
+ } else if (typeof(input.selectionStart) == "number" ) {
+ start = input.selectionStart;
+ end = input.selectionEnd;
+ part = input.value.substring(input.selectionStart, input.selectionEnd);
+ return { start: start, end: end, text: part, length: end - start };
+ } else { return { start: undefined, end: undefined, text: undefined, length: undefined }; }
+ },
+
+ // function for the replacement of the selected text
+ replaceSelection: function(inputStr) {
+ var input = this.jquery ? this[0] : this;
+ //part for IE and Opera
+ var start;
+ var end;
+ var position = 0;
+ var rc;
+ var re;
+ var number = 0;
+ var minus = 0;
+ var mozScrollFix = ( input.scrollTop == undefined ) ? 0 : input.scrollTop;
+ if (document.selection && typeof(input.selectionStart) != "number") {
+ var s = document.selection.createRange();
+
+ // IE support
+ if (typeof(input.selectionStart) != "number") { // return null if the selected text not from the needed area
+ var firstRe;
+ var secondRe;
+ re = input.createTextRange();
+ rc = re.duplicate();
+ firstRe = re.text;
+ re.moveToBookmark(s.getBookmark());
+ secondRe = re.text;
+ rc.setEndPoint("EndToStart", re);
+ if (firstRe == secondRe && firstRe != s.text) {
+ return this;
+ }
+ }
+ if (s.text) {
+ part = s.text;
+ if (input.value.match(/\n/g) != null) {
+ number = input.value.match(/\n/g).length;// number of EOL simbols
+ }
+ // IE support
+ start = rc.text.length;
+ // remove all EOL to have the same start and end positons as in MOZILLA
+ if (number > 0) {
+ for (var i = 0; i <= number; i++) {
+ var w = input.value.indexOf("\n", position);
+ if (w != -1 && w < start) {
+ position = w + 1;
+ minus++;
+
+ } else {
+ i = number;
+ }
+ }
+ }
+ s.text = inputStr;
+ caretPositionAmp = rc.text.length + inputStr.length;
+ re.move("character", caretPositionAmp);
+ document.selection.empty();
+ input.blur();
+ }
+ return this;
+ } else if (typeof(input.selectionStart) == "number" && // MOZILLA support
+ input.selectionStart != input.selectionEnd) {
+
+ start = input.selectionStart;
+ end = input.selectionEnd;
+ input.value = input.value.substr(0, start) + inputStr + input.value.substr(end);
+ position = start + inputStr.length;
+ input.setSelectionRange(position, position);
+ input.scrollTop = mozScrollFix;
+ return this;
+ }
+ return this;
+ },
+
+ //Set Selection in text
+ setSelection: function(startPosition, endPosition) {
+ startPosition = parseInt(startPosition);
+ endPosition = parseInt(endPosition);
+
+ var input = this.jquery ? this[0] : this;
+ input.focus ();
+ if (typeof(input.selectionStart) != "number") {
+ re = input.createTextRange();
+ if (re.text.length < endPosition) {
+ endPosition = re.text.length+1;
+ }
+ }
+ if (endPosition < startPosition) {
+ return this;
+ }
+ if (document.selection) {
+ var number = 0;
+ var plus = 0;
+ var position = 0;
+ var plusEnd = 0;
+ if (typeof(input.selectionStart) != "number") { // IE
+ re.collapse(true);
+ re.moveEnd('character', endPosition);
+ re.moveStart('character', startPosition);
+ re.select();
+ return this;
+ } else if (typeof(input.selectionStart) == "number") { // Opera
+ if (input.value.match(/\n/g) != null) {
+ number = input.value.match(/\n/g).length;// number of EOL simbols
+ }
+ if (number > 0) {
+ for (var i = 0; i <= number; i++) {
+ var w = input.value.indexOf("\n", position);
+ if (w != -1 && w < startPosition) {
+ position = w + 1;
+ plus++;
+ plusEnd = plus;
+ } else if (w != -1 && w >= startPosition && w <= endPosition) {
+ if (w == startPosition + 1) {
+ plus--;
+ plusEnd--;
+ position = w + 1;
+ continue;
+ }
+ position = w + 1;
+ plusEnd++;
+ } else {
+ i = number;
+ }
+ }
+ }
+ startPosition = startPosition +plus;
+ endPosition = endPosition + plusEnd;
+ input.selectionStart = startPosition;
+ input.selectionEnd = endPosition;
+ return this;
+ } else {
+ return this;
+ }
+ }
+ else if (input.selectionStart) { // MOZILLA support
+ input.focus ();
+ input.selectionStart = startPosition;
+ input.selectionEnd = endPosition;
+ return this;
+ }
+ },
+
+ // insert text at current caret position
+ insertAtCaretPos: function(inputStr) {
+ var input = this.jquery ? this[0] : this;
+ var start;
+ var end;
+ var position;
+ var s;
+ var re;
+ var rc;
+ var point;
+ var minus = 0;
+ var number = 0;
+ var mozScrollFix = ( input.scrollTop == undefined ) ? 0 : input.scrollTop;
+ input.focus();
+ if (document.selection && typeof(input.selectionStart) != "number") {
+ if (input.value.match(/\n/g) != null) {
+ number = input.value.match(/\n/g).length;// number of EOL simbols
+ }
+ point = parseInt(caretPositionAmp);
+ if (number > 0) {
+ for (var i = 0; i <= number; i++) {
+ var w = input.value.indexOf("\n", position);
+ if (w != -1 && w <= point) {
+ position = w + 1;
+ point = point - 1;
+ minus++;
+ }
+ }
+ }
+ }
+ caretPositionAmp = parseInt(caretPositionAmp);
+ // IE
+ input.onmouseup = function() { // for IE because it loses caret position when focus changed
+ if (document.selection && typeof(input.selectionStart) != "number") {
+ input.focus();
+ s = document.selection.createRange();
+ re = input.createTextRange();
+ rc = re.duplicate();
+ re.moveToBookmark(s.getBookmark());
+ rc.setEndPoint("EndToStart", re);
+ caretPositionAmp = rc.text.length;
+ }
+ }
+
+ if (document.selection && typeof(input.selectionStart) != "number") {
+ s = document.selection.createRange();
+ if (s.text.length != 0) {
+ return this;
+ }
+ re = input.createTextRange();
+ textLength = re.text.length;
+ rc = re.duplicate();
+ re.moveToBookmark(s.getBookmark());
+ rc.setEndPoint("EndToStart", re);
+ start = rc.text.length;
+ if (caretPositionAmp > 0 && start ==0) {
+ minus = caretPositionAmp - minus;
+ re.move("character", minus);
+ re.select();
+ s = document.selection.createRange();
+ caretPositionAmp += inputStr.length;
+ } else if (!(caretPositionAmp >= 0) && textLength ==0) {
+ s = document.selection.createRange();
+ caretPositionAmp = inputStr.length + textLength;
+ } else if (!(caretPositionAmp >= 0) && start ==0) {
+ re.move("character", textLength);
+ re.select();
+ s = document.selection.createRange();
+ caretPositionAmp = inputStr.length + textLength;
+ } else if (!(caretPositionAmp >= 0) && start > 0) {
+ re.move("character", 0);
+ document.selection.empty();
+ re.select();
+ s = document.selection.createRange();
+ caretPositionAmp = start + inputStr.length;
+ } else if (caretPositionAmp >= 0 && caretPositionAmp == textLength) {
+ if (textLength != 0) {
+ re.move("character", textLength);
+ re.select();
+ } else {
+ re.move("character", 0);
+ }
+ s = document.selection.createRange();
+ caretPositionAmp = inputStr.length + textLength;
+ } else if (caretPositionAmp >= 0 && start != 0 && caretPositionAmp >= start) {
+ minus = caretPositionAmp - start;
+ re.move("character", minus);
+ document.selection.empty();
+ re.select();
+ s = document.selection.createRange();
+ caretPositionAmp = caretPositionAmp + inputStr.length;
+ } else if (caretPositionAmp >= 0 && start != 0 && caretPositionAmp < start) {
+ re.move("character", 0);
+ document.selection.empty();
+ re.select();
+ s = document.selection.createRange();
+ caretPositionAmp = caretPositionAmp + inputStr.length;
+ } else {
+ document.selection.empty();
+ re.select();
+ s = document.selection.createRange();
+ caretPositionAmp = caretPositionAmp + inputStr.length;
+ }
+ s.text = inputStr;
+ input.focus();
+
+ return this;
+ } else if (typeof(input.selectionStart) == "number" && // MOZILLA support
+ input.selectionStart == input.selectionEnd) {
+ position = input.selectionStart + inputStr.length;
+ start = input.selectionStart;
+ end = input.selectionEnd;
+ input.value = input.value.substr(0, start) + inputStr + input.value.substr(end);
+ input.setSelectionRange(position, position);
+ input.scrollTop = mozScrollFix;
+ return this;
+ }
+ return this;
+ },
+
+
+ // Set caret position
+ setCaretPos: function(inputStr) {
+
+ var input = this.jquery ? this[0] : this;
+ var s;
+ var re;
+ var position;
+ var number = 0;
+ var minus = 0;
+ var w;
+ input.focus();
+ if (parseInt(inputStr) == 0) {
+ return this;
+ }
+ //if (document.selection && typeof(input.selectionStart) == "number") {
+ if (parseInt(inputStr) > 0) {
+ inputStr = parseInt(inputStr) - 1;
+ if (document.selection && typeof(input.selectionStart) == "number" && input.selectionStart == input.selectionEnd) {
+ if (input.value.match(/\n/g) != null) {
+ number = input.value.match(/\n/g).length;// number of EOL simbols
+ }
+ if (number > 0) {
+ for (var i = 0; i <= number; i++) {
+ w = input.value.indexOf("\n", position);
+ if (w != -1 && w <= inputStr) {
+ position = w + 1;
+ inputStr = parseInt(inputStr) + 1;
+ }
+ }
+ }
+ }
+ }
+ else if (parseInt(inputStr) < 0) {
+ inputStr = parseInt(inputStr) + 1;
+ if (document.selection && typeof(input.selectionStart) != "number") {
+ inputStr = input.value.length + parseInt(inputStr);
+ if (input.value.match(/\n/g) != null) {
+ number = input.value.match(/\n/g).length;// number of EOL simbols
+ }
+ if (number > 0) {
+ for (var i = 0; i <= number; i++) {
+ w = input.value.indexOf("\n", position);
+ if (w != -1 && w <= inputStr) {
+ position = w + 1;
+ inputStr = parseInt(inputStr) - 1;
+ minus += 1;
+ }
+ }
+ inputStr = inputStr + minus - number;
+ }
+ } else if (document.selection && typeof(input.selectionStart) == "number") {
+ inputStr = input.value.length + parseInt(inputStr);
+ if (input.value.match(/\n/g) != null) {
+ number = input.value.match(/\n/g).length;// number of EOL simbols
+ }
+ if (number > 0) {
+ inputStr = parseInt(inputStr) - number;
+ for (var i = 0; i <= number; i++) {
+ w = input.value.indexOf("\n", position);
+ if (w != -1 && w <= (inputStr)) {
+ position = w + 1;
+ inputStr = parseInt(inputStr) + 1;
+ minus += 1;
+ }
+ }
+ }
+ } else { inputStr = input.value.length + parseInt(inputStr); }
+ } else { return this; }
+ // IE
+ if (document.selection && typeof(input.selectionStart) != "number") {
+ s = document.selection.createRange();
+ if (s.text != 0) {
+ return this;
+ }
+ re = input.createTextRange();
+ re.collapse(true);
+ re.moveEnd('character', inputStr);
+ re.moveStart('character', inputStr);
+ re.select();
+ caretPositionAmp = inputStr;
+
+ return this;
+ } else if (typeof(input.selectionStart) == "number" && // MOZILLA support
+ input.selectionStart == input.selectionEnd) {
+ input.setSelectionRange(inputStr, inputStr);
+ return this;
+ }
+ return this;
+
+ },
+
+ countCharacters: function(str) {
+ var input = this.jquery ? this[0] : this;
+ if (input.value.match(/\r/g) != null) {
+ return input.value.length - input.value.match(/\r/g).length;
+ }
+ return input.value.length;
+ },
+
+ setMaxLength: function(max, f) {
+ this.each(function() {
+ var input = this.jquery ? this[0] : this;
+ var type = input.type;
+ var isSelected;
+ var maxCharacters;
+ // remove limit if input is a negative number
+ if (parseInt(max) < 0) {
+ max=100000000;
+ }
+ if (type == "text") {
+ input.maxLength = max;
+ }
+ if (type == "textarea" || type == "text") {
+ input.onkeypress = function(e) {
+ var spacesR = input.value.match(/\r/g);
+ maxCharacters = max;
+ if (spacesR != null) {
+ maxCharacters = parseInt(maxCharacters) + spacesR.length;
+ }
+ // get event
+ var key = e || event;
+ var keyCode = key.keyCode;
+ // check if any part of text is selected
+ if (document.selection) {
+ isSelected = document.selection.createRange().text.length > 0;
+ } else {
+ isSelected = input.selectionStart != input.selectionEnd;
+ }
+ if (input.value.length >= maxCharacters && (keyCode > 47 || keyCode == 32 ||
+ keyCode == 0 || keyCode == 13) && !key.ctrlKey && !key.altKey && !isSelected) {
+ input.value = input.value.substring(0,maxCharacters);
+ if (typeof(f) == "function") { f() } //callback function
+ return false;
+ }
+ }
+ input.onkeyup = function() {
+ var spacesR = input.value.match(/\r/g);
+ var plus = 0;
+ var position = 0;
+ maxCharacters = max;
+ if (spacesR != null) {
+ for (var i = 0; i <= spacesR.length; i++) {
+ if (input.value.indexOf("\n", position) <= parseInt(max)) {
+ plus++;
+ position = input.value.indexOf("\n", position) + 1;
+ }
+ }
+ maxCharacters = parseInt(max) + plus;
+ }
+ if (input.value.length > maxCharacters) {
+ input.value = input.value.substring(0, maxCharacters);
+ if (typeof(f) == "function") { f() }
+ return this;
+ }
+ }
+ } else { return this; }
+ })
+ return this;
+ }
+});
diff --git a/js/jquery.asuggest.js b/js/jquery.asuggest.js
new file mode 100644
index 0000000..332b3dd
--- /dev/null
+++ b/js/jquery.asuggest.js
@@ -0,0 +1,231 @@
+/*
+ * jQuery textarea suggest plugin
+ *
+ * Copyright (c) 2009-2010 Roman Imankulov
+ *
+ * Dual licensed under the MIT and GPL licenses:
+ * http://www.opensource.org/licenses/mit-license.php
+ * http://www.gnu.org/licenses/gpl.html
+ *
+ * Requires:
+ * - jQuery (tested with 1.3.x and 1.4.x)
+ * - jquery.a-tools >= 1.4.1 (http://plugins.jquery.com/project/a-tools)
+ */
+
+/*globals jQuery,document */
+
+(function ($) {
+ // workaround for Opera browser
+ if (navigator.userAgent.match(/opera/i)) {
+ $(document).keypress(function (e) {
+ if ($.asuggestFocused) {
+ $.asuggestFocused.focus();
+ $.asuggestFocused = null;
+ e.preventDefault();
+ e.stopPropagation();
+ }
+ });
+ }
+
+ $.asuggestKeys = {
+ UNKNOWN: 0,
+ SHIFT: 16,
+ CTRL: 17,
+ ALT: 18,
+ LEFT: 37,
+ UP: 38,
+ RIGHT: 39,
+ DOWN: 40,
+ DEL: 46,
+ TAB: 9,
+ RETURN: 13,
+ ESC: 27,
+ COMMA: 188,
+ PAGEUP: 33,
+ PAGEDOWN: 34,
+ BACKSPACE: 8,
+ SPACE: 32
+ };
+ $.asuggestFocused = null;
+
+ $.fn.asuggest = function (suggests, options) {
+ return this.each(function () {
+ $.makeSuggest(this, suggests, options);
+ });
+ };
+
+ $.fn.asuggest.defaults = {
+ 'delimiters': '\n ',
+ 'minChunkSize': 1,
+ 'cycleOnTab': true,
+ 'autoComplete': true,
+ 'endingSymbols': ' ',
+ 'stopSuggestionKeys': [$.asuggestKeys.RETURN, $.asuggestKeys.SPACE],
+ 'ignoreCase': false
+ };
+
+ /* Make suggest:
+ *
+ * create and return jQuery object on the top of DOM object
+ * and store suggests as part of this object
+ *
+ * @param area: HTML DOM element to add suggests to
+ * @param suggests: The array of suggest strings
+ * @param options: The options object
+ */
+ $.makeSuggest = function (area, suggests, options) {
+ options = $.extend({}, $.fn.asuggest.defaults, options);
+
+ var KEY = $.asuggestKeys,
+ $area = $(area);
+ $area.suggests = suggests;
+ $area.options = options;
+
+ /* Internal method: get the chunk of text before the cursor */
+ $area.getChunk = function () {
+ var delimiters = this.options.delimiters.split(''), // array of chars
+ textBeforeCursor = this.val().substr(0, this.getSelection().start),
+ indexOfDelimiter = -1,
+ i,
+ d,
+ idx;
+ for (i = 0; i < delimiters.length; i++) {
+ d = delimiters[i];
+ idx = textBeforeCursor.lastIndexOf(d);
+ if (idx > indexOfDelimiter) {
+ indexOfDelimiter = idx;
+ }
+ }
+ if (indexOfDelimiter < 0) {
+ return textBeforeCursor;
+ } else {
+ return textBeforeCursor.substr(indexOfDelimiter + 1);
+ }
+ };
+
+ /* Internal method: get completion.
+ * If performCycle is true then analyze getChunk() and and getSelection()
+ */
+ $area.getCompletion = function (performCycle) {
+ var text = this.getChunk(),
+ selectionText = this.getSelection().text,
+ suggests = this.suggests,
+ foundAlreadySelectedValue = false,
+ firstMatchedValue = null,
+ i,
+ suggest;
+ // search the variant
+ for (i = 0; i < suggests.length; i++) {
+ suggest = suggests[i];
+ if ($area.options.ignoreCase) {
+ suggest = suggest.toLowerCase();
+ text = text.toLowerCase();
+ }
+ // some variant is found
+ if (suggest.indexOf(text) === 0) {
+ if (performCycle) {
+ if (text + selectionText === suggest) {
+ foundAlreadySelectedValue = true;
+ } else if (foundAlreadySelectedValue) {
+ return suggest.substr(text.length);
+ } else if (firstMatchedValue === null) {
+ firstMatchedValue = suggest;
+ }
+ } else {
+ return suggest.substr(text.length);
+ }
+ }
+ }
+ if (performCycle && firstMatchedValue) {
+ return firstMatchedValue.substr(text.length);
+ } else {
+ return null;
+ }
+ };
+
+ $area.updateSelection = function (completion) {
+ if (completion) {
+ var _selectionStart = $area.getSelection().start,
+ _selectionEnd = _selectionStart + completion.length;
+ if ($area.getSelection().text === "") {
+ if ($area.val().length === _selectionStart) { // Weird IE workaround, I really have no idea why it works
+ $area.setCaretPos(_selectionStart + 10000);
+ }
+ $area.insertAtCaretPos(completion);
+ } else {
+ $area.replaceSelection(completion);
+ }
+ $area.setSelection(_selectionStart, _selectionEnd);
+ }
+ };
+
+ $area.unbind('keydown.asuggest').bind('keydown.asuggest', function (e) {
+ if (e.keyCode === KEY.TAB) {
+ if ($area.options.cycleOnTab) {
+ var chunk = $area.getChunk();
+ if (chunk.length >= $area.options.minChunkSize) {
+ $area.updateSelection($area.getCompletion(true));
+ }
+ e.preventDefault();
+ e.stopPropagation();
+ $area.focus();
+ $.asuggestFocused = this;
+ return false;
+ }
+ }
+ // Check for conditions to stop suggestion
+ if ($area.getSelection().length &&
+ $.inArray(e.keyCode, $area.options.stopSuggestionKeys) !== -1) {
+ // apply suggestion. Clean up selection and insert a space
+ var _selectionEnd = $area.getSelection().end +
+ $area.options.endingSymbols.length;
+ var _text = $area.getSelection().text +
+ $area.options.endingSymbols;
+ $area.replaceSelection(_text);
+ $area.setSelection(_selectionEnd, _selectionEnd);
+ e.preventDefault();
+ e.stopPropagation();
+ this.focus();
+ $.asuggestFocused = this;
+ return false;
+ }
+ });
+
+ $area.unbind('keyup.asuggest').bind('keyup.asuggest', function (e) {
+ var hasSpecialKeys = e.altKey || e.metaKey || e.ctrlKey,
+ hasSpecialKeysOrShift = hasSpecialKeys || e.shiftKey;
+ switch (e.keyCode) {
+ case KEY.UNKNOWN: // Special key released
+ case KEY.SHIFT:
+ case KEY.CTRL:
+ case KEY.ALT:
+ case KEY.RETURN: // we don't want to suggest when RETURN key has pressed (another IE workaround)
+ break;
+ case KEY.TAB:
+ if (!hasSpecialKeysOrShift && $area.options.cycleOnTab) {
+ break;
+ }
+ case KEY.ESC:
+ case KEY.BACKSPACE:
+ case KEY.DEL:
+ case KEY.UP:
+ case KEY.DOWN:
+ case KEY.LEFT:
+ case KEY.RIGHT:
+ if (!hasSpecialKeysOrShift && $area.options.autoComplete) {
+ $area.replaceSelection("");
+ }
+ break;
+ default:
+ if (!hasSpecialKeys && $area.options.autoComplete) {
+ var chunk = $area.getChunk();
+ if (chunk.length >= $area.options.minChunkSize) {
+ $area.updateSelection($area.getCompletion(false));
+ }
+ }
+ break;
+ }
+ });
+ return $area;
+ };
+}(jQuery));
diff --git a/js/jquery.textcomplete.js b/js/jquery.textcomplete.js
new file mode 100644
index 0000000..62653a5
--- /dev/null
+++ b/js/jquery.textcomplete.js
@@ -0,0 +1,553 @@
+/*!
+ * jQuery.textcomplete.js
+ *
+ * Repositiory: https://github.com/yuku-t/jquery-textcomplete
+ * License: MIT
+ * Author: Yuku Takahashi
+ */
+
+;(function ($) {
+
+ 'use strict';
+
+ /**
+ * Exclusive execution control utility.
+ */
+ var lock = function (func) {
+ var free, locked;
+ free = function () { locked = false; };
+ return function () {
+ var args;
+ if (locked) return;
+ locked = true;
+ args = toArray(arguments);
+ args.unshift(free);
+ func.apply(this, args);
+ };
+ };
+
+ /**
+ * Convert arguments into a real array.
+ */
+ var toArray = function (args) {
+ var result;
+ result = Array.prototype.slice.call(args);
+ return result;
+ };
+
+ /**
+ * Get the styles of any element from property names.
+ */
+ var getStyles = (function () {
+ var color;
+ color = $('').css(['color']).color;
+ if (typeof color !== 'undefined') {
+ return function ($el, properties) {
+ return $el.css(properties);
+ };
+ } else { // for jQuery 1.8 or below
+ return function ($el, properties) {
+ var styles;
+ styles = {};
+ $.each(properties, function (i, property) {
+ styles[property] = $el.css(property);
+ });
+ return styles;
+ };
+ }
+ })();
+
+ /**
+ * Default template function.
+ */
+ var identity = function (obj) { return obj; };
+
+ /**
+ * Memoize a search function.
+ */
+ var memoize = function (func) {
+ var memo = {};
+ return function (term, callback) {
+ if (memo[term]) {
+ callback(memo[term]);
+ } else {
+ func.call(this, term, function (data) {
+ memo[term] = (memo[term] || []).concat(data);
+ callback.apply(null, arguments);
+ });
+ }
+ };
+ };
+
+ /**
+ * Determine if the array contains a given value.
+ */
+ var include = function (array, value) {
+ var i, l;
+ if (array.indexOf) return array.indexOf(value) != -1;
+ for (i = 0, l = array.length; i < l; i++) {
+ if (array[i] === value) return true;
+ }
+ return false;
+ };
+
+ /**
+ * Textarea manager class.
+ */
+ var Completer = (function () {
+ var html, css, $baseWrapper, $baseList, _id;
+
+ html = {
+ wrapper: '',
+ list: ''
+ };
+ css = {
+ wrapper: {
+ position: 'relative'
+ },
+ list: {
+ position: 'absolute',
+ top: 0,
+ left: 0,
+ zIndex: '100',
+ display: 'none'
+ }
+ };
+ $baseWrapper = $(html.wrapper).css(css.wrapper);
+ $baseList = $(html.list).css(css.list);
+ _id = 0;
+
+ function Completer($el) {
+ var focus;
+ this.el = $el.get(0); // textarea element
+ focus = this.el === document.activeElement;
+ // Cannot wrap $el at initialize method lazily due to Firefox's behavior.
+ this.$el = wrapElement($el); // Focus is lost
+ this.id = 'textComplete' + _id++;
+ this.strategies = [];
+ if (focus) {
+ this.initialize();
+ this.$el.focus();
+ } else {
+ this.$el.one('focus.textComplete', $.proxy(this.initialize, this));
+ }
+ }
+
+ /**
+ * Completer's public methods
+ */
+ $.extend(Completer.prototype, {
+
+ /**
+ * Prepare ListView and bind events.
+ */
+ initialize: function () {
+ var $list, globalEvents;
+ $list = $baseList.clone();
+ this.listView = new ListView($list, this);
+ this.$el
+ .before($list)
+ .on({
+ 'keyup.textComplete': $.proxy(this.onKeyup, this),
+ 'keydown.textComplete': $.proxy(this.listView.onKeydown,
+ this.listView)
+ });
+ globalEvents = {};
+ globalEvents['click.' + this.id] = $.proxy(this.onClickDocument, this);
+ globalEvents['keyup.' + this.id] = $.proxy(this.onKeyupDocument, this);
+ $(document).on(globalEvents);
+ },
+
+ /**
+ * Register strategies to the completer.
+ */
+ register: function (strategies) {
+ this.strategies = this.strategies.concat(strategies);
+ },
+
+ /**
+ * Show autocomplete list next to the caret.
+ */
+ renderList: function (data) {
+ if (this.clearAtNext) {
+ this.listView.clear();
+ this.clearAtNext = false;
+ }
+ if (data.length) {
+ if (!this.listView.shown) {
+ this.listView
+ .setPosition(this.getCaretPosition())
+ .clear()
+ .activate();
+ this.listView.strategy = this.strategy;
+ }
+ data = data.slice(0, this.strategy.maxCount);
+ this.listView.render(data);
+ }
+
+ if (!this.listView.data.length && this.listView.shown) {
+ this.listView.deactivate();
+ }
+ },
+
+ searchCallbackFactory: function (free) {
+ var self = this;
+ return function (data, keep) {
+ self.renderList(data);
+ if (!keep) {
+ // This is the last callback for this search.
+ free();
+ self.clearAtNext = true;
+ }
+ };
+ },
+
+ /**
+ * Keyup event handler.
+ */
+ onKeyup: function (e) {
+ var searchQuery, term;
+ if (this.skipSearch(e)) { return; }
+
+ searchQuery = this.extractSearchQuery(this.getTextFromHeadToCaret());
+ if (searchQuery.length) {
+ term = searchQuery[1];
+ if (this.term === term) return; // Ignore shift-key or something.
+ this.term = term;
+ this.search(searchQuery);
+ } else {
+ this.term = null;
+ this.listView.deactivate();
+ }
+ },
+
+ /**
+ * Suppress searching if it returns true.
+ */
+ skipSearch: function (e) {
+ if (this.skipNextKeyup) {
+ this.skipNextKeyup = false;
+ return true;
+ }
+ switch (e.keyCode) {
+ case 40:
+ case 38:
+ return true;
+ }
+ },
+
+ onSelect: function (value) {
+ var pre, post, newSubStr;
+ pre = this.getTextFromHeadToCaret();
+ post = this.el.value.substring(this.el.selectionEnd);
+
+ newSubStr = this.strategy.replace(value);
+ if ($.isArray(newSubStr)) {
+ post = newSubStr[1] + post;
+ newSubStr = newSubStr[0];
+ }
+ pre = pre.replace(this.strategy.match, newSubStr);
+ this.$el.val(pre + post)
+ .trigger('change')
+ .trigger('textComplete:select', value);
+ this.el.focus();
+ this.el.selectionStart = this.el.selectionEnd = pre.length;
+ this.skipNextKeyup = true;
+ },
+
+ /**
+ * Global click event handler.
+ */
+ onClickDocument: function (e) {
+ if (e.originalEvent && !e.originalEvent.keepTextCompleteDropdown) {
+ this.listView.deactivate();
+ }
+ },
+
+ /**
+ * Global keyup event handler.
+ */
+ onKeyupDocument: function (e) {
+ if (this.listView.shown && e.keyCode === 27) { // ESC
+ this.listView.deactivate();
+ this.$el.focus();
+ }
+ },
+
+ /**
+ * Remove all event handlers and the wrapper element.
+ */
+ destroy: function () {
+ var $wrapper;
+ this.$el.off('.textComplete');
+ $(document).off('.' + this.id);
+ if (this.listView) { this.listView.destroy(); }
+ $wrapper = this.$el.parent();
+ $wrapper.after(this.$el).remove();
+ this.$el.data('textComplete', void 0);
+ this.$el = null;
+ },
+
+ // Helper methods
+ // ==============
+
+ /**
+ * Returns caret's relative coordinates from textarea's left top corner.
+ */
+ getCaretPosition: function () {
+ // Browser native API does not provide the way to know the position of
+ // caret in pixels, so that here we use a kind of hack to accomplish
+ // the aim. First of all it puts a div element and completely copies
+ // the textarea's style to the element, then it inserts the text and a
+ // span element into the textarea.
+ // Consequently, the span element's position is the thing what we want.
+
+ if (this.el.selectionEnd === 0) return;
+ var properties, css, $div, $span, position, dir;
+
+ dir = this.$el.attr('dir') || this.$el.css('direction');
+ properties = ['border-width', 'font-family', 'font-size', 'font-style',
+ 'font-variant', 'font-weight', 'height', 'letter-spacing',
+ 'word-spacing', 'line-height', 'text-decoration', 'text-align',
+ 'width', 'padding-top', 'padding-right', 'padding-bottom',
+ 'padding-left', 'margin-top', 'margin-right', 'margin-bottom',
+ 'margin-left'
+ ];
+ css = $.extend({
+ position: 'absolute',
+ overflow: 'auto',
+ 'white-space': 'pre-wrap',
+ top: 0,
+ left: -9999,
+ direction: dir
+ }, getStyles(this.$el, properties));
+
+ $div = $('').css(css).text(this.getTextFromHeadToCaret());
+ $span = $('').text('.').appendTo($div);
+ this.$el.before($div);
+ position = $span.position();
+ position.top += $span.height() - this.$el.scrollTop();
+ if (dir === 'rtl') { position.left -= this.listView.$el.width(); }
+ $div.remove();
+ return position;
+ },
+
+ getTextFromHeadToCaret: function () {
+ var text, selectionEnd, range;
+ selectionEnd = this.el.selectionEnd;
+ if (typeof selectionEnd === 'number') {
+ text = this.el.value.substring(0, selectionEnd);
+ } else if (document.selection) {
+ range = this.el.createTextRange();
+ range.moveStart('character', 0);
+ range.moveEnd('textedit');
+ text = range.text;
+ }
+ return text;
+ },
+
+ /**
+ * Parse the value of textarea and extract search query.
+ */
+ extractSearchQuery: function (text) {
+ // If a search query found, it returns used strategy and the query
+ // term. If the caret is currently in a code block or search query does
+ // not found, it returns an empty array.
+
+ var i, l, strategy, match;
+ for (i = 0, l = this.strategies.length; i < l; i++) {
+ strategy = this.strategies[i];
+ match = text.match(strategy.match);
+ if (match) { return [strategy, match[strategy.index]]; }
+ }
+ return [];
+ },
+
+ search: lock(function (free, searchQuery) {
+ var term;
+ this.strategy = searchQuery[0];
+ term = searchQuery[1];
+ this.strategy.search(term, this.searchCallbackFactory(free));
+ })
+ });
+
+ /**
+ * Completer's private functions
+ */
+ var wrapElement = function ($el) {
+ return $el.wrap($baseWrapper.clone().css('display', $el.css('display')));
+ };
+
+ return Completer;
+ })();
+
+ /**
+ * Dropdown menu manager class.
+ */
+ var ListView = (function () {
+
+ function ListView($el, completer) {
+ this.data = [];
+ this.$el = $el;
+ this.index = 0;
+ this.completer = completer;
+
+ this.$el.on('click.textComplete', 'li.textcomplete-item',
+ $.proxy(this.onClick, this));
+ }
+
+ $.extend(ListView.prototype, {
+ shown: false,
+
+ render: function (data) {
+ var html, i, l, index, val;
+
+ html = '';
+ for (i = 0, l = data.length; i < l; i++) {
+ val = data[i];
+ if (include(this.data, val)) continue;
+ index = this.data.length;
+ this.data.push(val);
+ html += '';
+ html += this.strategy.template(val);
+ html += '';
+ if (this.data.length === this.strategy.maxCount) break;
+ }
+ this.$el.append(html);
+ if (!this.data.length) {
+ this.deactivate();
+ } else {
+ this.activateIndexedItem();
+ }
+ },
+
+ clear: function () {
+ this.data = [];
+ this.$el.html('');
+ this.index = 0;
+ return this;
+ },
+
+ activateIndexedItem: function () {
+ this.$el.find('.active').removeClass('active');
+ this.getActiveItem().addClass('active');
+ },
+
+ getActiveItem: function () {
+ return $(this.$el.children().get(this.index));
+ },
+
+ activate: function () {
+ if (!this.shown) {
+ this.$el.show();
+ this.completer.$el.trigger('textComplete:show');
+ this.shown = true;
+ }
+ return this;
+ },
+
+ deactivate: function () {
+ if (this.shown) {
+ this.$el.hide();
+ this.completer.$el.trigger('textComplete:hide');
+ this.shown = false;
+ this.data = this.index = null;
+ }
+ return this;
+ },
+
+ setPosition: function (position) {
+ this.$el.css(position);
+ return this;
+ },
+
+ select: function (index) {
+ var self = this;
+ this.completer.onSelect(this.data[index]);
+ // Deactive at next tick to allow other event handlers to know whether
+ // the dropdown has been shown or not.
+ setTimeout(function () { self.deactivate(); }, 0);
+ },
+
+ onKeydown: function (e) {
+ if (!this.shown) return;
+ if (e.keyCode === 38) { // UP
+ e.preventDefault();
+ if (this.index === 0) {
+ this.index = this.data.length-1;
+ } else {
+ this.index -= 1;
+ }
+ this.activateIndexedItem();
+ } else if (e.keyCode === 40) { // DOWN
+ e.preventDefault();
+ if (this.index === this.data.length - 1) {
+ this.index = 0;
+ } else {
+ this.index += 1;
+ }
+ this.activateIndexedItem();
+ } else if (e.keyCode === 13 || e.keyCode === 9) { // ENTER or TAB
+ e.preventDefault();
+ this.select(parseInt(this.getActiveItem().data('index'), 10));
+ }
+ },
+
+ onClick: function (e) {
+ var $e = $(e.target);
+ e.originalEvent.keepTextCompleteDropdown = true;
+ if (!$e.hasClass('textcomplete-item')) {
+ $e = $e.parents('li.textcomplete-item');
+ }
+ this.select(parseInt($e.data('index'), 10));
+ },
+
+ destroy: function () {
+ this.deactivate();
+ this.$el.off('click.textComplete').remove();
+ this.$el = null;
+ }
+ });
+
+ return ListView;
+ })();
+
+ $.fn.textcomplete = function (strategies) {
+ var i, l, strategy, dataKey;
+
+ dataKey = 'textComplete';
+
+ if (strategies === 'destroy') {
+ return this.each(function () {
+ var completer = $(this).data(dataKey);
+ if (completer) { completer.destroy(); }
+ });
+ }
+
+ for (i = 0, l = strategies.length; i < l; i++) {
+ strategy = strategies[i];
+ if (!strategy.template) {
+ strategy.template = identity;
+ }
+ if (strategy.index == null) {
+ strategy.index = 2;
+ }
+ if (strategy.cache) {
+ strategy.search = memoize(strategy.search);
+ }
+ strategy.maxCount || (strategy.maxCount = 10);
+ }
+
+ return this.each(function () {
+ var $this, completer;
+ $this = $(this);
+ completer = $this.data(dataKey);
+ if (!completer) {
+ completer = new Completer($this);
+ $this.data(dataKey, completer);
+ }
+ completer.register(strategies);
+ });
+ };
+
+})(window.jQuery || window.Zepto);